mirror of
https://github.com/qwibitai/nanoclaw.git
synced 2026-07-06 18:52:03 +08:00
f6c13eb6f3
The whole connect+wire procedure now lives in the SKILL.md (operator walkthroughs, prompts, restart, ncl wiring), so the host-side driver is just: render nc:operator via clack notes, ask nc:prompt via clack text/password, run the engine in document order. One function replaces the bespoke per-channel setup/channels/<channel>.ts flows. setup/lib/skill-driver.ts: - clackPrompter(): ask (password for secrets / text; cancel defers) + tell (note). - hostExec(root): returns stdout (so `run capture:<var>` binds it) and puts the project bin/ on PATH so a bare `ncl …` resolves to bin/ncl. - runSkill(skillDir, opts): applySkill wired with the clack prompter, host exec, fork-aware channels remote; accepts `inputs` (fully programmatic) and `skipEffects` (e.g. ['restart'] when the caller restarts once). Returns the ApplyResult; fullyApplied(res) is the success check. - CLI entry: `tsx setup/lib/skill-driver.ts <skillDir>` applies interactively. Tests: drives prompt/operator/wire through an injected prompter; runs fully from inputs; hostExec PATH-resolves a bare command and returns stdout. typecheck + 608 host tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>