mirror of
https://github.com/qwibitai/nanoclaw.git
synced 2026-07-06 18:52:03 +08:00
79060c5407
Step 1 of the skill-engine seam plan (docs/skill-engine-seam.md §8.1): - New core interface (§2): InputMeta + ApplyEvent types; ApplyOptions.resolveInput (replaces Prompter.ask) and ApplyOptions.onEvent (replaces StepReporter + Prompter.tell). The engine prefers the new seams when present and falls back to the legacy prompter/reporter otherwise (transitional — deleted in step 3). - Awaited-event ordering (§2.3): every onEvent call is awaited before the next directive; a handler throw is the standard bounce path, including on operator events (blocked latch cascades). - Validate-at-bind (§4): normalize-then-validate at the single bind point for inputs, resolveInput answers, and legacy prompter answers alike. A mismatch leaves the var unbound and records `<var>: invalid value (does not match validate:<re>)` in deferred — never the value (secrets can't leak), never a fallthrough from invalid inputs to resolveInput. - stepLabel null semantics re-documented (§2): a step-cost/interactivity declaration, not spinner advice. - §4 fixture sweep: Option-A slack inputs (signing_secret, owner_handle) + the userId assertion updated to validate-passing values; teams deferWire app_password to a 20+-char value. Assertion structure unchanged. Suite: 699 passed | 1 skipped (was 680 | 1). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>