@iowarp/clio-coder 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +123 -2
- package/CONTRIBUTING.md +23 -23
- package/README.md +295 -627
- package/dist/acp-BIYHVZIM.js +128 -0
- package/dist/{agents-Q4MYPMUW.js → agents-YT6SSRIT.js} +52 -27
- package/dist/assets/codewiki.json +1 -0
- package/dist/assets/grammars/notices/@vscode__tree-sitter-wasm/LICENSE +21 -0
- package/dist/assets/grammars/notices/@vscode__tree-sitter-wasm/cgmanifest.json +16 -0
- package/dist/assets/grammars/notices/tree-sitter-wasms/LICENSE +24 -0
- package/dist/assets/grammars/tree-sitter-c-sharp.wasm +0 -0
- package/dist/assets/grammars/tree-sitter-c.wasm +0 -0
- package/dist/assets/grammars/tree-sitter-cpp.wasm +0 -0
- package/dist/assets/grammars/tree-sitter-go.wasm +0 -0
- package/dist/assets/grammars/tree-sitter-java.wasm +0 -0
- package/dist/assets/grammars/tree-sitter-javascript.wasm +0 -0
- package/dist/assets/grammars/tree-sitter-python.wasm +0 -0
- package/dist/assets/grammars/tree-sitter-ruby.wasm +0 -0
- package/dist/assets/grammars/tree-sitter-rust.wasm +0 -0
- package/dist/assets/grammars/tree-sitter-tsx.wasm +0 -0
- package/dist/assets/grammars/tree-sitter-typescript.wasm +0 -0
- package/dist/assets/grammars/tree-sitter.wasm +0 -0
- package/dist/{auth-O6HYIJ6J.js → auth-5TWEIYDN.js} +30 -15
- package/dist/chunk-2EHAIA3X.js +481 -0
- package/dist/{chunk-ME6DNWIU.js → chunk-2IR2NMPA.js} +12 -4
- package/dist/chunk-2SFS6XQE.js +122 -0
- package/dist/{chunk-KKKPTZLM.js → chunk-2STGEDFV.js} +8 -1
- package/dist/chunk-2VTFPG5O.js +48 -0
- package/dist/chunk-3I7MS7N2.js +40 -0
- package/dist/chunk-3R73A4XB.js +69 -0
- package/dist/{chunk-JPOWPFCU.js → chunk-3ZXDFGR5.js} +52 -23
- package/dist/chunk-4BJ5BYCE.js +61 -0
- package/dist/{chunk-26BZQOAD.js → chunk-4BPJXDWC.js} +161 -260
- package/dist/chunk-4KLWL3UC.js +18 -0
- package/dist/{chunk-5LDRNKX2.js → chunk-4VP4KH3K.js} +161 -262
- package/dist/chunk-4ZG3XFUR.js +77 -0
- package/dist/chunk-5B2AEOW5.js +5407 -0
- package/dist/chunk-5TSRNF4G.js +510 -0
- package/dist/{chunk-WD6AJM35.js → chunk-5UUP6MWO.js} +48 -69
- package/dist/{chunk-X3BR7HWV.js → chunk-5WIGXA4T.js} +7 -1
- package/dist/chunk-65DEGPJ6.js +52 -0
- package/dist/chunk-6EJMN2Y3.js +17 -0
- package/dist/chunk-6EJV5X2W.js +16405 -0
- package/dist/chunk-6N5PTWMY.js +136 -0
- package/dist/chunk-6XLNIQDB.js +27 -0
- package/dist/{chunk-XNISANGE.js → chunk-77VKQEHF.js} +171 -74
- package/dist/chunk-7CR24IG7.js +242 -0
- package/dist/{chunk-UWIJNAOB.js → chunk-7EYHLWU7.js} +907 -638
- package/dist/chunk-7MNJORFF.js +22 -0
- package/dist/{chunk-JWHCJDCI.js → chunk-A3CYT5EX.js} +257 -79
- package/dist/chunk-AGYYIBLL.js +1069 -0
- package/dist/chunk-AO4RKG4M.js +277 -0
- package/dist/chunk-APJ265NV.js +7410 -0
- package/dist/chunk-ARBGF5F7.js +174 -0
- package/dist/{chunk-TFSSEXL6.js → chunk-BMEMKKIT.js} +14 -4
- package/dist/{chunk-X3NE4WVW.js → chunk-BNAZZHFG.js} +7 -1
- package/dist/chunk-CBCAPZAA.js +229 -0
- package/dist/{chunk-QV47YRF4.js → chunk-CGKSTWHD.js} +7 -1
- package/dist/chunk-CMZWFGD2.js +352 -0
- package/dist/chunk-ECH6PKUQ.js +39 -0
- package/dist/{chunk-67MTHP2E.js → chunk-ED4KHGC3.js} +13 -5
- package/dist/chunk-EKMEHE4H.js +340 -0
- package/dist/{chunk-O4EJEDHO.js → chunk-EPVUXGXG.js} +50 -35
- package/dist/chunk-FCSXB6T2.js +338 -0
- package/dist/chunk-FJ3H4MN5.js +48 -0
- package/dist/chunk-FQ4SKYE4.js +29 -0
- package/dist/chunk-G2DE3C7R.js +644 -0
- package/dist/chunk-G4BMMOKF.js +182 -0
- package/dist/{chunk-7BHLZB3A.js → chunk-GGXXDWE4.js} +190 -1218
- package/dist/chunk-HC4CLZ2Y.js +68 -0
- package/dist/{chunk-E3NYWENM.js → chunk-HFSBBKSQ.js} +55 -61
- package/dist/chunk-HKIYEGME.js +30 -0
- package/dist/chunk-I4HZDVNP.js +73 -0
- package/dist/chunk-IGLFWIYI.js +161 -0
- package/dist/chunk-IHXBNWMM.js +137 -0
- package/dist/chunk-IKCO5N3L.js +162 -0
- package/dist/chunk-IR4CFBFN.js +56 -0
- package/dist/{chunk-DXQNI4PC.js → chunk-IWHMRKLL.js} +8 -1
- package/dist/{chunk-VOO7NYPP.js → chunk-J5HN4RYU.js} +27 -9
- package/dist/{chunk-4UQA7NCT.js → chunk-J5Q24KAG.js} +7 -2
- package/dist/{chunk-KBR4MZZR.js → chunk-JVCV3ICN.js} +7 -1
- package/dist/chunk-KJ5LWLOE.js +1077 -0
- package/dist/chunk-LBMZMYH2.js +285 -0
- package/dist/{chunk-3DANZDGR.js → chunk-LBNRH5WM.js} +100 -161
- package/dist/{chunk-TKHQ4DGZ.js → chunk-LZSJBIVT.js} +7358 -7414
- package/dist/{chunk-UGYAX5YI.js → chunk-M6SHUN7Q.js} +13 -8
- package/dist/chunk-MAW544W2.js +1882 -0
- package/dist/chunk-MBS4V7ZP.js +217 -0
- package/dist/{chunk-2J63S4SF.js → chunk-MFFY33HR.js} +167 -140
- package/dist/chunk-MNA4JGU4.js +255 -0
- package/dist/chunk-MQSRRFWA.js +3428 -0
- package/dist/{chunk-RQDWMVRB.js → chunk-MVVUPGPW.js} +138 -137
- package/dist/chunk-OAO4GE4M.js +619 -0
- package/dist/chunk-OHHN2SO4.js +5135 -0
- package/dist/chunk-OKGUZO2U.js +34 -0
- package/dist/{chunk-BBUH4VAA.js → chunk-OOJYHWRB.js} +60 -361
- package/dist/{chunk-D5YD55AR.js → chunk-OQ33BKR3.js} +12 -1
- package/dist/chunk-OQE5J4C6.js +73 -0
- package/dist/{chunk-AMFR5YA3.js → chunk-ORBHGJC5.js} +26 -12
- package/dist/chunk-POHLU5DW.js +1186 -0
- package/dist/chunk-QKMUKYO7.js +4961 -0
- package/dist/{chunk-7RBKDI66.js → chunk-QTYWRVRA.js} +104 -12
- package/dist/{chunk-5N2FG33Q.js → chunk-R346GLFC.js} +7 -1
- package/dist/chunk-SRF2PJNW.js +184 -0
- package/dist/chunk-SST6Z5JA.js +80 -0
- package/dist/{chunk-XV4ZJ6ZM.js → chunk-STBPMHSX.js} +473 -1194
- package/dist/{chunk-HBU5MTAM.js → chunk-SVNXH4L2.js} +7 -1
- package/dist/chunk-T6YILFSB.js +80 -0
- package/dist/chunk-TXOTCRLG.js +15 -0
- package/dist/chunk-TZTZS7QK.js +227 -0
- package/dist/chunk-UOV2BYIW.js +107 -0
- package/dist/{chunk-527KG6XR.js → chunk-V4RXGQ5Q.js} +72 -185
- package/dist/chunk-VAKQQHWR.js +434 -0
- package/dist/chunk-VG7TBQIY.js +128 -0
- package/dist/chunk-VJWL6YS5.js +244 -0
- package/dist/chunk-WEH5XRJQ.js +32 -0
- package/dist/{chunk-VPAWTYLY.js → chunk-WEPFGWHJ.js} +7 -1
- package/dist/chunk-WMSVI4G2.js +2095 -0
- package/dist/chunk-WVO7V2QY.js +797 -0
- package/dist/chunk-X4RCMKVQ.js +641 -0
- package/dist/chunk-X75S7HFS.js +374 -0
- package/dist/chunk-XN3L4EYL.js +46 -0
- package/dist/{chunk-HMYNFFY4.js → chunk-XPLRXC72.js} +7 -2
- package/dist/{chunk-PIDUD6M2.js → chunk-YCWGATWI.js} +12 -5
- package/dist/chunk-YHZX5GEU.js +193 -0
- package/dist/chunk-YXLYO42X.js +91 -0
- package/dist/{chunk-UHTSULZS.js → chunk-ZDOOVTXZ.js} +38 -73
- package/dist/chunk-ZI647VB5.js +37 -0
- package/dist/{chunk-CLJ5HLUD.js → chunk-ZWLZP4ZT.js} +25 -6
- package/dist/cli/index.js +70 -56
- package/dist/clio-4LY5K2AC.js +25 -0
- package/dist/code-nav-7AX6FYE6.js +600 -0
- package/dist/codewiki/build-worker.js +66 -0
- package/dist/compile-cache-CVJMMODC.js +18 -0
- package/dist/{components-JVHMUBEB.js → components-KELWS457.js} +31 -9
- package/dist/{config-ZFCDBMDC.js → config-GTLUW2PR.js} +104 -56
- package/dist/configure-R6A64DHX.js +42 -0
- package/dist/context-5VKGUVJJ.js +866 -0
- package/dist/{context-CDXTP2MP.js → context-JFZEJ7W5.js} +21 -13
- package/dist/{context-E3KIFVXI.js → context-RW5HC47S.js} +77 -36
- package/dist/{context-clear-3F4PLXOS.js → context-clear-6ZHBAZZT.js} +64 -30
- package/dist/{context-index-Q7YSYTR3.js → context-index-BZ4UYMTC.js} +36 -24
- package/dist/dispatch-runner-VKBRCWQC.js +1997 -0
- package/dist/{docs-YIETIWZI.js → docs-2C2LTVT2.js} +32 -13
- package/dist/doctor-KI767GSN.js +87 -0
- package/dist/{eval-B3KZZESM.js → eval-XSSNATB4.js} +93 -27
- package/dist/{evidence-V67CHM35.js → evidence-UA6AWDQQ.js} +55 -27
- package/dist/{evolve-YDZSUQYA.js → evolve-QNTFGV6Z.js} +59 -26
- package/dist/{extensions-SRG7XCAH.js → extensions-QVDOHDGJ.js} +23 -8
- package/dist/{fleet-CA2CRTVG.js → fleet-Q7UOMUSG.js} +173 -56
- package/dist/fleet-preflight-DDN536IT.js +26 -0
- package/dist/{init-2OZDJE2D.js → init-WBB65ZHQ.js} +79 -34
- package/dist/{memory-3PIQQAKX.js → memory-MD3O64RI.js} +57 -28
- package/dist/{models-DY35XI7Y.js → models-BZU34YWD.js} +49 -24
- package/dist/monitor-MEQA5C3I.js +661 -0
- package/dist/{chunk-PS4PFJQP.js → orchestrator-CGFKEP27.js} +22837 -18564
- package/dist/{paths-5OMXW7Z4.js → paths-UXLN5YYZ.js} +17 -6
- package/dist/preload-P6DGH2PZ.js +13 -0
- package/dist/{reset-PIFYNOS3.js → reset-L2FQEE3E.js} +25 -13
- package/dist/{run-3VSPP24F.js → run-IV4Q6RLN.js} +115 -63
- package/dist/{share-D36RQCXM.js → share-S5BZQC5I.js} +23 -10
- package/dist/{skills-F2MRLELY.js → skills-LQEKRDTN.js} +42 -15
- package/dist/{skills-eval-E2ZTW4PL.js → skills-eval-3DC4HEWS.js} +90 -45
- package/dist/steer-GGWFUJUD.js +77 -0
- package/dist/{targets-DZMEZAH4.js → targets-C4SSGQOB.js} +78 -60
- package/dist/terminal-lease-IT5JW2NR.js +395 -0
- package/dist/{trace-7NYCUI2J.js → trace-PNCASAXC.js} +48 -17
- package/dist/tree-sitter-HGKH6LG4.js +4673 -0
- package/dist/{uninstall-AD3JWHBB.js → uninstall-FZCQCDKC.js} +19 -8
- package/dist/{upgrade-WYYBKGDY.js → upgrade-7TT7SQ3G.js} +66 -24
- package/dist/{usage-ULIDAGFF.js → usage-GV4PKT3M.js} +71 -32
- package/dist/verify-G6V4D2G7.js +716 -0
- package/dist/version-KGEG7EPO.js +21 -0
- package/dist/web-fetch-2YHJ3KTG.js +638 -0
- package/dist/{wiki-generate-PKFIX6OB.js → wiki-generate-DQF6Z66B.js} +98 -48
- package/dist/worker/entry.js +297 -54
- package/dist/workspace-G4ZWUIPR.js +22 -0
- package/docs/README.md +29 -21
- package/docs/acp.md +191 -16
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +157 -7
- package/docs/artifact-placement.md +101 -0
- package/docs/artifact-versions.md +1 -1
- package/docs/built-in-agents.md +4 -2
- package/docs/capacity-and-scheduling.md +1 -1
- package/docs/commands-and-modes.md +224 -97
- package/docs/config-knobs-audit.md +1 -3
- package/docs/configuration-and-targets.md +236 -38
- package/docs/context-engine.md +34 -7
- package/docs/development-pipeline.md +102 -0
- package/docs/dispatch-architecture-rationale.md +1 -1
- package/docs/documentation-coverage.md +4 -4
- package/docs/documentation-guide.md +3 -3
- package/docs/environment-variables.md +15 -6
- package/docs/eval-runner.md +3 -3
- package/docs/evals-internal.md +2 -2
- package/docs/evidence-and-memory.md +10 -2
- package/docs/evolution.md +2 -2
- package/docs/exit-codes-and-output.md +15 -9
- package/docs/extensions-and-sharing.md +25 -18
- package/docs/fleet-demo-runbook.md +22 -23
- package/docs/fleet-dispatch.md +117 -16
- package/docs/git-commit-provenance.md +120 -0
- package/docs/glossary.md +107 -15
- package/docs/installation-and-lifecycle.md +75 -17
- package/docs/middleware-and-components.md +1 -1
- package/docs/model-catalog.md +46 -15
- package/docs/observability.md +8 -5
- package/docs/performance-methodology.md +491 -0
- package/docs/pi-boundary.md +72 -0
- package/docs/proactive-memory.md +14 -14
- package/docs/prompt-envelope-and-tools.md +25 -4
- package/docs/provider-adapter-cookbook.md +57 -4
- package/docs/release-cut-checklist.md +129 -111
- package/docs/safety-model.md +28 -8
- package/docs/scientific-validation.md +3 -3
- package/docs/session-lifecycle.md +55 -12
- package/docs/skills-marketplace.md +12 -8
- package/docs/time-conventions.md +101 -0
- package/docs/tool-usage.md +6 -5
- package/docs/trace-store.md +1 -1
- package/docs/troubleshooting.md +10 -7
- package/docs/tui-design.md +121 -28
- package/docs/worker-dispatch-mechanics.md +3 -3
- package/package.json +33 -36
- package/skills/README.md +5 -6
- package/skills/coding/ast-grep/SKILL.md +136 -0
- package/skills/coding/ast-grep/evals.md +56 -0
- package/skills/coding/ast-grep/references/rule_reference.md +297 -0
- package/skills/coding/coding-standards/SKILL.md +113 -0
- package/skills/coding/coding-standards/evals.md +34 -0
- package/skills/coding/prototype/SKILL.md +86 -0
- package/skills/coding/prototype/evals.md +42 -0
- package/skills/coding/prototype/references/LOGIC.md +67 -0
- package/skills/coding/prototype/references/UI.md +112 -0
- package/skills/coding/tdd/SKILL.md +101 -0
- package/skills/coding/tdd/evals.md +41 -0
- package/skills/coding/tdd/references/mocking.md +59 -0
- package/skills/coding/tdd/references/tests.md +77 -0
- package/skills/context/context-handoff/SKILL.md +126 -0
- package/skills/context/context-handoff/evals.md +57 -0
- package/skills/context/context-handoff/scripts/new-handoff.sh +26 -0
- package/skills/context/context-prime/SKILL.md +95 -0
- package/skills/context/context-prime/evals.md +54 -0
- package/skills/git/file-ticket/SKILL.md +107 -0
- package/skills/git/file-ticket/evals.md +54 -0
- package/skills/git/fix-issue/SKILL.md +106 -0
- package/skills/git/fix-issue/evals.md +71 -0
- package/skills/git/ship/SKILL.md +92 -0
- package/skills/git/ship/evals.md +72 -0
- package/skills/meta/clio-dev/SKILL.md +91 -0
- package/skills/meta/clio-dev/evals.md +45 -0
- package/skills/meta/clio-test/SKILL.md +130 -0
- package/skills/meta/clio-test/evals.md +43 -0
- package/skills/meta/clio-test/references/harness.md +97 -0
- package/skills/meta/clio-test/references/test-map.md +59 -0
- package/skills/meta/credentials/SKILL.md +125 -0
- package/skills/meta/credentials/evals.md +104 -0
- package/skills/meta/find-skills/SKILL.md +72 -0
- package/skills/meta/find-skills/evals.md +47 -0
- package/skills/meta/herdr/SKILL.md +127 -0
- package/skills/meta/herdr/evals.md +38 -0
- package/skills/meta/skill-craft/SKILL.md +102 -0
- package/skills/meta/skill-craft/evals.md +41 -0
- package/skills/planning/architecture/SKILL.md +129 -0
- package/skills/planning/architecture/evals.md +36 -0
- package/skills/planning/backlog/SKILL.md +90 -0
- package/skills/planning/backlog/evals.md +43 -0
- package/skills/planning/prd/SKILL.md +82 -0
- package/skills/planning/prd/evals.md +49 -0
- package/skills/planning/product-intent/SKILL.md +112 -0
- package/skills/planning/product-intent/evals.md +36 -0
- package/skills/planning/tech-spec/SKILL.md +115 -0
- package/skills/planning/tech-spec/evals.md +47 -0
- package/skills/registry.yaml +136 -0
- package/skills/research/arxiv-literature/SKILL.md +104 -0
- package/skills/research/arxiv-literature/evals.md +58 -0
- package/skills/research/experiment-protocol/SKILL.md +122 -0
- package/skills/research/experiment-protocol/evals.md +91 -0
- package/skills/research/scientific-debugging/SKILL.md +119 -0
- package/skills/research/scientific-debugging/evals.md +138 -0
- package/skills/research/scientific-modernization/SKILL.md +138 -0
- package/skills/research/scientific-modernization/evals.md +84 -0
- package/skills/skill-marketplace.json +12 -20
- package/skills/workflow/design-council/SKILL.md +139 -0
- package/skills/workflow/design-council/evals.md +97 -0
- package/skills/workflow/grill-me/SKILL.md +186 -0
- package/skills/workflow/grill-me/evals.md +78 -0
- package/skills/workflow/workflow-distiller/SKILL.md +136 -0
- package/skills/workflow/workflow-distiller/evals.md +107 -0
- package/src/cli/acp.ts +115 -0
- package/src/cli/agents.ts +60 -0
- package/src/cli/args.ts +280 -0
- package/src/cli/argv.ts +170 -0
- package/src/cli/ask.ts +34 -0
- package/src/cli/auth.ts +468 -0
- package/src/cli/bootstrap-generate.ts +498 -0
- package/src/cli/clio.ts +96 -0
- package/src/cli/components.ts +195 -0
- package/src/cli/config-inspect.ts +336 -0
- package/src/cli/config.ts +72 -0
- package/src/cli/configure-interop.ts +67 -0
- package/src/cli/configure-layout.ts +172 -0
- package/src/cli/configure.ts +1525 -0
- package/src/cli/context-clear.ts +76 -0
- package/src/cli/context-index.ts +100 -0
- package/src/cli/context.ts +321 -0
- package/src/cli/default-target.ts +55 -0
- package/src/cli/docs.ts +346 -0
- package/src/cli/doctor.ts +54 -0
- package/src/cli/eval.ts +315 -0
- package/src/cli/evidence.ts +225 -0
- package/src/cli/evolve.ts +219 -0
- package/src/cli/extensions.ts +214 -0
- package/src/cli/fleet.ts +868 -0
- package/src/cli/index.ts +338 -0
- package/src/cli/init.ts +219 -0
- package/src/cli/initial-message.ts +47 -0
- package/src/cli/internal-dispatch.ts +55 -0
- package/src/cli/memory.ts +182 -0
- package/src/cli/models.ts +257 -0
- package/src/cli/modes/json-stream.ts +121 -0
- package/src/cli/modes/jsonl.ts +9 -0
- package/src/cli/modes/print.ts +604 -0
- package/src/cli/oauth-manual-input.ts +72 -0
- package/src/cli/oauth-select.ts +36 -0
- package/src/cli/output-guard.ts +48 -0
- package/src/cli/paths.ts +44 -0
- package/src/cli/provider-target.ts +113 -0
- package/src/cli/removal.ts +72 -0
- package/src/cli/reset.ts +253 -0
- package/src/cli/run.ts +497 -0
- package/src/cli/share.ts +243 -0
- package/src/cli/shared.ts +60 -0
- package/src/cli/skills-eval.ts +1240 -0
- package/src/cli/skills.ts +485 -0
- package/src/cli/steer-channel.ts +86 -0
- package/src/cli/targets.ts +1154 -0
- package/src/cli/text-layout.ts +112 -0
- package/src/cli/trace.ts +322 -0
- package/src/cli/uninstall.ts +405 -0
- package/src/cli/upgrade.ts +286 -0
- package/src/cli/usage.ts +876 -0
- package/src/cli/validate-model.ts +28 -0
- package/src/cli/version.ts +7 -0
- package/src/cli/wiki-generate.ts +510 -0
- package/src/core/agent-environment.ts +7 -0
- package/src/core/artifact-paths.ts +43 -0
- package/src/core/bash-exec.ts +313 -0
- package/src/core/boot-trace.ts +42 -0
- package/src/core/bus-events.ts +744 -0
- package/src/core/bus-trace.ts +53 -0
- package/src/core/c-header-language.ts +265 -0
- package/src/core/clio-repo.ts +78 -0
- package/src/core/commit-attribution.ts +157 -0
- package/src/core/compile-cache.ts +159 -0
- package/src/core/config.ts +1722 -0
- package/src/core/context-floor.ts +33 -0
- package/src/core/defaults.ts +659 -0
- package/src/core/domain-loader.ts +177 -0
- package/src/core/event-bus.ts +94 -0
- package/src/core/file-references.ts +282 -0
- package/src/core/git-commit-attribution.ts +362 -0
- package/src/core/guardrails.ts +185 -0
- package/src/core/headless-permission.ts +21 -0
- package/src/core/incomplete-installation.ts +45 -0
- package/src/core/init.ts +223 -0
- package/src/core/json-payload.ts +58 -0
- package/src/core/package-root.ts +54 -0
- package/src/core/path-canonical.ts +37 -0
- package/src/core/process-identity.ts +41 -0
- package/src/core/recent-models.ts +91 -0
- package/src/core/residency-protection.ts +56 -0
- package/src/core/resolve-config-value.ts +88 -0
- package/src/core/response-schema.ts +279 -0
- package/src/core/run-overrides.ts +77 -0
- package/src/core/safe-exec.ts +205 -0
- package/src/core/safe-id.ts +37 -0
- package/src/core/safe-resource-write.ts +162 -0
- package/src/core/session-routing.ts +339 -0
- package/src/core/settings-layers.ts +354 -0
- package/src/core/shared-bus.ts +8 -0
- package/src/core/shell-quote.ts +26 -0
- package/src/core/skill-activation.ts +190 -0
- package/src/core/startup-timer.ts +37 -0
- package/src/core/state-file-lock.ts +219 -0
- package/src/core/termination.ts +275 -0
- package/src/core/timers.ts +38 -0
- package/src/core/tool-names.ts +65 -0
- package/src/core/verification-scripts.ts +13 -0
- package/src/core/workspace-files.ts +492 -0
- package/src/core/xdg.ts +177 -0
- package/src/domains/agents/builtins/architect.md +4 -4
- package/src/domains/agents/builtins/coder.md +3 -2
- package/src/domains/agents/builtins/debugger.md +1 -1
- package/src/domains/agents/builtins/documenter.md +1 -1
- package/src/domains/agents/builtins/git-master.md +3 -3
- package/src/domains/agents/builtins/provenance.md +1 -1
- package/src/domains/agents/builtins/researcher.md +1 -1
- package/src/domains/agents/builtins/scout.md +1 -1
- package/src/domains/agents/builtins/tester.md +1 -1
- package/src/domains/agents/builtins/verifier.md +1 -1
- package/src/domains/agents/builtins/wiki-writer.md +1 -1
- package/src/domains/agents/catalog.ts +172 -0
- package/src/domains/agents/contract.ts +16 -0
- package/src/domains/agents/extension.ts +110 -0
- package/src/domains/agents/fleet-commands.ts +154 -0
- package/src/domains/agents/fleet-contract.ts +797 -0
- package/src/domains/agents/frontmatter.ts +40 -0
- package/src/domains/agents/index.ts +102 -0
- package/src/domains/agents/manifest.ts +6 -0
- package/src/domains/agents/recipe-schema.ts +202 -0
- package/src/domains/agents/recipe.ts +125 -0
- package/src/domains/agents/registry.ts +111 -0
- package/src/domains/agents/result-contract.ts +1265 -0
- package/src/domains/agents/spec.ts +371 -0
- package/src/domains/agents/write-boundary.ts +109 -0
- package/src/domains/components/diff.ts +99 -0
- package/src/domains/components/hash.ts +21 -0
- package/src/domains/components/index.ts +3 -0
- package/src/domains/components/scan.ts +304 -0
- package/src/domains/components/snapshot.ts +108 -0
- package/src/domains/components/types.ts +82 -0
- package/src/domains/config/agent-namespace.ts +13 -0
- package/src/domains/config/classify.ts +106 -0
- package/src/domains/config/contract.ts +22 -0
- package/src/domains/config/extension.ts +142 -0
- package/src/domains/config/index.ts +23 -0
- package/src/domains/config/keybindings.ts +200 -0
- package/src/domains/config/manifest.ts +6 -0
- package/src/domains/config/watcher.ts +41 -0
- package/src/domains/context/adoption.ts +880 -0
- package/src/domains/context/bootstrap-prompt.ts +273 -0
- package/src/domains/context/bootstrap.ts +1502 -0
- package/src/domains/context/clear.ts +91 -0
- package/src/domains/context/clio-md.ts +429 -0
- package/src/domains/context/codewiki/artifact.ts +400 -0
- package/src/domains/context/codewiki/build-worker-protocol.ts +24 -0
- package/src/domains/context/codewiki/build-worker.ts +54 -0
- package/src/domains/context/codewiki/cmake.ts +356 -0
- package/src/domains/context/codewiki/cooperative.ts +46 -0
- package/src/domains/context/codewiki/coordinator.ts +182 -0
- package/src/domains/context/codewiki/digest.ts +135 -0
- package/src/domains/context/codewiki/grammar-assets.ts +33 -0
- package/src/domains/context/codewiki/indexer.ts +1529 -0
- package/src/domains/context/codewiki/paths.ts +67 -0
- package/src/domains/context/codewiki/schema.ts +80 -0
- package/src/domains/context/codewiki/tree-sitter.ts +771 -0
- package/src/domains/context/contract.ts +68 -0
- package/src/domains/context/excluded-dirs.ts +1 -0
- package/src/domains/context/extension.ts +358 -0
- package/src/domains/context/fingerprint.ts +198 -0
- package/src/domains/context/index.ts +154 -0
- package/src/domains/context/init-options.ts +69 -0
- package/src/domains/context/manifest.ts +6 -0
- package/src/domains/context/operator-profile.ts +157 -0
- package/src/domains/context/project-metadata.ts +529 -0
- package/src/domains/context/project-rules.ts +227 -0
- package/src/domains/context/prompt-context.ts +61 -0
- package/src/domains/context/refresh.ts +178 -0
- package/src/domains/context/runtime.ts +17 -0
- package/src/domains/context/sibling-files.ts +10 -0
- package/src/domains/context/state.ts +237 -0
- package/src/domains/context/wiki/assemble.ts +303 -0
- package/src/domains/context/wiki/frontmatter.ts +210 -0
- package/src/domains/context/wiki/generate.ts +595 -0
- package/src/domains/context/wiki/layout.ts +111 -0
- package/src/domains/context/wiki/meta.ts +221 -0
- package/src/domains/context/wiki/plan-store.ts +217 -0
- package/src/domains/context/wiki/plan.ts +250 -0
- package/src/domains/context/wiki/prompts.ts +283 -0
- package/src/domains/context/wiki/staleness.ts +198 -0
- package/src/domains/dispatch/active-route-planner.ts +168 -0
- package/src/domains/dispatch/admission-queue.ts +150 -0
- package/src/domains/dispatch/admission.ts +334 -0
- package/src/domains/dispatch/agent-candidates.ts +307 -0
- package/src/domains/dispatch/agent-ledger-hub.ts +71 -0
- package/src/domains/dispatch/agent-ledger-store.ts +257 -0
- package/src/domains/dispatch/agent-ledger.ts +212 -0
- package/src/domains/dispatch/agent-plan-adapter.ts +85 -0
- package/src/domains/dispatch/assignment-events.ts +132 -0
- package/src/domains/dispatch/assignment-reconcile.ts +76 -0
- package/src/domains/dispatch/assignment-store.ts +162 -0
- package/src/domains/dispatch/assignment.ts +278 -0
- package/src/domains/dispatch/backoff.ts +59 -0
- package/src/domains/dispatch/batch-store.ts +134 -0
- package/src/domains/dispatch/batch-tracker.ts +66 -0
- package/src/domains/dispatch/capability-match.ts +155 -0
- package/src/domains/dispatch/capacity-lease.ts +413 -0
- package/src/domains/dispatch/code-step-store.ts +52 -0
- package/src/domains/dispatch/code-step.ts +387 -0
- package/src/domains/dispatch/contract.ts +278 -0
- package/src/domains/dispatch/dedup.ts +133 -0
- package/src/domains/dispatch/event-pump.ts +251 -0
- package/src/domains/dispatch/execution-handoff.ts +29 -0
- package/src/domains/dispatch/execution-plan.ts +328 -0
- package/src/domains/dispatch/execution-role.ts +277 -0
- package/src/domains/dispatch/execution-scheduler.ts +583 -0
- package/src/domains/dispatch/extension.ts +6006 -0
- package/src/domains/dispatch/failure-classification.ts +147 -0
- package/src/domains/dispatch/fleet-commit-attribution.ts +56 -0
- package/src/domains/dispatch/fleet-plan.ts +225 -0
- package/src/domains/dispatch/fleet-preflight.ts +394 -0
- package/src/domains/dispatch/gate-decisions.ts +1040 -0
- package/src/domains/dispatch/gate-role-prompts.ts +58 -0
- package/src/domains/dispatch/heartbeat.ts +27 -0
- package/src/domains/dispatch/index.ts +137 -0
- package/src/domains/dispatch/joint-route-adapter.ts +114 -0
- package/src/domains/dispatch/joint-route-resolver.ts +283 -0
- package/src/domains/dispatch/manifest.ts +6 -0
- package/src/domains/dispatch/orphan-recovery.ts +266 -0
- package/src/domains/dispatch/outcome.ts +109 -0
- package/src/domains/dispatch/phase-timing.ts +47 -0
- package/src/domains/dispatch/placement.ts +202 -0
- package/src/domains/dispatch/receipt-findings.ts +255 -0
- package/src/domains/dispatch/receipt-integrity.ts +383 -0
- package/src/domains/dispatch/recovery-candidates.ts +74 -0
- package/src/domains/dispatch/reproducibility.ts +48 -0
- package/src/domains/dispatch/reservation-store.ts +501 -0
- package/src/domains/dispatch/route-approval.ts +177 -0
- package/src/domains/dispatch/route-candidates.ts +57 -0
- package/src/domains/dispatch/route-decision.ts +1079 -0
- package/src/domains/dispatch/route-facts.ts +187 -0
- package/src/domains/dispatch/route-history.ts +238 -0
- package/src/domains/dispatch/route-observer.ts +488 -0
- package/src/domains/dispatch/route-policy.ts +327 -0
- package/src/domains/dispatch/route-quality.ts +256 -0
- package/src/domains/dispatch/route-readiness.ts +120 -0
- package/src/domains/dispatch/routing-intent.ts +287 -0
- package/src/domains/dispatch/run-identity.ts +56 -0
- package/src/domains/dispatch/scout-transition.ts +130 -0
- package/src/domains/dispatch/state.ts +302 -0
- package/src/domains/dispatch/tool-stats.ts +132 -0
- package/src/domains/dispatch/transport.ts +210 -0
- package/src/domains/dispatch/types.ts +799 -0
- package/src/domains/dispatch/validation-grounding.ts +154 -0
- package/src/domains/dispatch/validation.ts +721 -0
- package/src/domains/dispatch/worker-protocol.ts +275 -0
- package/src/domains/dispatch/worker-spawn.ts +585 -0
- package/src/domains/dispatch/write-boundary-enforcer.ts +97 -0
- package/src/domains/dispatch/write-boundary.ts +426 -0
- package/src/domains/eval/artifacts/redact.ts +42 -0
- package/src/domains/eval/artifacts/store.ts +173 -0
- package/src/domains/eval/compare/compare.ts +33 -0
- package/src/domains/eval/compare/gates.ts +66 -0
- package/src/domains/eval/compare/thresholds.ts +92 -0
- package/src/domains/eval/harness-metrics.ts +62 -0
- package/src/domains/eval/index.ts +66 -0
- package/src/domains/eval/metrics/chaos-stream.ts +93 -0
- package/src/domains/eval/metrics/context.ts +34 -0
- package/src/domains/eval/metrics/coverage.ts +21 -0
- package/src/domains/eval/metrics/evidence.ts +182 -0
- package/src/domains/eval/metrics/fleet-loop-stream.ts +196 -0
- package/src/domains/eval/metrics/invariants.ts +736 -0
- package/src/domains/eval/metrics/latency.ts +4 -0
- package/src/domains/eval/metrics/token-stream.ts +139 -0
- package/src/domains/eval/metrics/tokens.ts +51 -0
- package/src/domains/eval/metrics/tool-calls.ts +7 -0
- package/src/domains/eval/proactive-memory.ts +279 -0
- package/src/domains/eval/provenance.ts +35 -0
- package/src/domains/eval/report.ts +234 -0
- package/src/domains/eval/reports/json.ts +5 -0
- package/src/domains/eval/reports/junit.ts +23 -0
- package/src/domains/eval/reports/markdown.ts +20 -0
- package/src/domains/eval/reports/swe-jsonl.ts +16 -0
- package/src/domains/eval/reports/text.ts +25 -0
- package/src/domains/eval/run-compare.ts +274 -0
- package/src/domains/eval/runner.ts +244 -0
- package/src/domains/eval/runners/clio-run.ts +148 -0
- package/src/domains/eval/runners/context-index.ts +56 -0
- package/src/domains/eval/runners/context-init.ts +203 -0
- package/src/domains/eval/runners/external-command.ts +350 -0
- package/src/domains/eval/runtime-paths.ts +171 -0
- package/src/domains/eval/schema/artifact.ts +75 -0
- package/src/domains/eval/schema/suite.ts +235 -0
- package/src/domains/eval/schema/validate.ts +339 -0
- package/src/domains/eval/store.ts +392 -0
- package/src/domains/eval/suites/load.ts +74 -0
- package/src/domains/eval/suites/matrix.ts +19 -0
- package/src/domains/eval/suites/resolve.ts +44 -0
- package/src/domains/eval/suites/run.ts +325 -0
- package/src/domains/eval/task-file.ts +186 -0
- package/src/domains/eval/types.ts +140 -0
- package/src/domains/eval/verifiers/command.ts +27 -0
- package/src/domains/eval/verifiers/file-exists.ts +6 -0
- package/src/domains/eval/verifiers/patch.ts +22 -0
- package/src/domains/eval/workspaces/git.ts +41 -0
- package/src/domains/eval/workspaces/local.ts +17 -0
- package/src/domains/eval/workspaces/temp-copy.ts +29 -0
- package/src/domains/evidence/build.ts +1754 -0
- package/src/domains/evidence/eval.ts +605 -0
- package/src/domains/evidence/failure-attribution.ts +54 -0
- package/src/domains/evidence/finish-contract-map.ts +42 -0
- package/src/domains/evidence/index.ts +55 -0
- package/src/domains/evidence/provenance.ts +200 -0
- package/src/domains/evidence/redact.ts +81 -0
- package/src/domains/evidence/store.ts +291 -0
- package/src/domains/evidence/types.ts +325 -0
- package/src/domains/evolution/SELF_EDIT_GATE.md +91 -0
- package/src/domains/evolution/index.ts +26 -0
- package/src/domains/evolution/manifest.ts +154 -0
- package/src/domains/evolution/validate.ts +304 -0
- package/src/domains/extensions/contract.ts +22 -0
- package/src/domains/extensions/discovery.ts +193 -0
- package/src/domains/extensions/extension.ts +46 -0
- package/src/domains/extensions/index.ts +34 -0
- package/src/domains/extensions/manager.ts +30 -0
- package/src/domains/extensions/manifest.ts +6 -0
- package/src/domains/extensions/resources.ts +38 -0
- package/src/domains/extensions/state.ts +224 -0
- package/src/domains/extensions/types.ts +83 -0
- package/src/domains/interop/consent.ts +185 -0
- package/src/domains/interop/contract.ts +29 -0
- package/src/domains/interop/detect.ts +173 -0
- package/src/domains/interop/extension.ts +59 -0
- package/src/domains/interop/index.ts +34 -0
- package/src/domains/interop/manifest.ts +6 -0
- package/src/domains/interop/registry.ts +139 -0
- package/src/domains/interop/state.ts +92 -0
- package/src/domains/interop/types.ts +109 -0
- package/src/domains/lifecycle/contract.ts +11 -0
- package/src/domains/lifecycle/doctor.ts +536 -0
- package/src/domains/lifecycle/extension.ts +23 -0
- package/src/domains/lifecycle/index.ts +21 -0
- package/src/domains/lifecycle/install-method.ts +51 -0
- package/src/domains/lifecycle/manifest.ts +6 -0
- package/src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts +52 -0
- package/src/domains/lifecycle/migrations/index.ts +114 -0
- package/src/domains/lifecycle/state.ts +93 -0
- package/src/domains/lifecycle/upgrade-notice.ts +35 -0
- package/src/domains/lifecycle/version.ts +35 -0
- package/src/domains/memory/index.ts +128 -0
- package/src/domains/memory/operations.ts +143 -0
- package/src/domains/memory/prompt-section.ts +86 -0
- package/src/domains/memory/proposal.ts +180 -0
- package/src/domains/memory/store.ts +163 -0
- package/src/domains/memory/task-bank.ts +229 -0
- package/src/domains/memory/task-memory-handoff.ts +222 -0
- package/src/domains/memory/task-memory-policy.ts +602 -0
- package/src/domains/memory/task-memory-status.ts +58 -0
- package/src/domains/memory/task-memory-telemetry.ts +346 -0
- package/src/domains/memory/task-memory-trace.ts +89 -0
- package/src/domains/memory/types.ts +74 -0
- package/src/domains/memory/validate.ts +297 -0
- package/src/domains/middleware/budget.ts +216 -0
- package/src/domains/middleware/contract.ts +35 -0
- package/src/domains/middleware/dispatch-nudge.ts +469 -0
- package/src/domains/middleware/extension.ts +129 -0
- package/src/domains/middleware/hook-receipts.ts +70 -0
- package/src/domains/middleware/hooks-io.ts +186 -0
- package/src/domains/middleware/hooks.ts +432 -0
- package/src/domains/middleware/index.ts +154 -0
- package/src/domains/middleware/manifest.ts +6 -0
- package/src/domains/middleware/memory-intervention.ts +701 -0
- package/src/domains/middleware/rules.ts +42 -0
- package/src/domains/middleware/runtime.ts +333 -0
- package/src/domains/middleware/skills-reminder.ts +202 -0
- package/src/domains/middleware/snapshot.ts +71 -0
- package/src/domains/middleware/stalled-turn.ts +71 -0
- package/src/domains/middleware/task-board-reminder.ts +87 -0
- package/src/domains/middleware/task-nudge.ts +77 -0
- package/src/domains/middleware/tool-choice-control.ts +42 -0
- package/src/domains/middleware/types.ts +131 -0
- package/src/domains/middleware/validate.ts +329 -0
- package/src/domains/observability/accountability.ts +67 -0
- package/src/domains/observability/contract.ts +168 -0
- package/src/domains/observability/cost.ts +206 -0
- package/src/domains/observability/evidence-index.ts +123 -0
- package/src/domains/observability/extension.ts +281 -0
- package/src/domains/observability/index.ts +78 -0
- package/src/domains/observability/manifest.ts +10 -0
- package/src/domains/observability/metrics.ts +37 -0
- package/src/domains/observability/projection.ts +477 -0
- package/src/domains/observability/telemetry.ts +89 -0
- package/src/domains/observability/trace-store.ts +1454 -0
- package/src/domains/prompts/compiler.ts +614 -0
- package/src/domains/prompts/contract.ts +46 -0
- package/src/domains/prompts/extension.ts +336 -0
- package/src/domains/prompts/fragment-loader.ts +138 -0
- package/src/domains/prompts/fragments/identity/clio.md +5 -6
- package/src/domains/prompts/fragments/identity/docs-routing.md +10 -0
- package/src/domains/prompts/fragments/identity/self-awareness.md +19 -0
- package/src/domains/prompts/fragments/operating/contract.md +4 -41
- package/src/domains/prompts/fragments/operating/delegation.md +42 -0
- package/src/domains/prompts/fragments/operating/skills.md +26 -0
- package/src/domains/prompts/fragments/operating/worker.md +16 -0
- package/src/domains/prompts/fragments/safety/auto-edit.md +5 -5
- package/src/domains/prompts/fragments/safety/full-auto.md +3 -3
- package/src/domains/prompts/fragments/safety/read-only.md +4 -4
- package/src/domains/prompts/fragments/safety/suggest.md +2 -2
- package/src/domains/prompts/fragments/wiki/page.md +10 -0
- package/src/domains/prompts/fragments/wiki/plan.md +10 -0
- package/src/domains/prompts/hash.ts +73 -0
- package/src/domains/prompts/index.ts +32 -0
- package/src/domains/prompts/manifest.ts +8 -0
- package/src/domains/prompts/memory-intervention.ts +57 -0
- package/src/domains/prompts/preload.ts +82 -0
- package/src/domains/providers/auth/api-key.ts +47 -0
- package/src/domains/providers/auth/backend-file.ts +79 -0
- package/src/domains/providers/auth/backend-memory.ts +72 -0
- package/src/domains/providers/auth/boot-status.ts +65 -0
- package/src/domains/providers/auth/index.ts +37 -0
- package/src/domains/providers/auth/oauth.ts +37 -0
- package/src/domains/providers/auth/storage.ts +726 -0
- package/src/domains/providers/capabilities.ts +58 -0
- package/src/domains/providers/catalog.ts +162 -0
- package/src/domains/providers/contract.ts +162 -0
- package/src/domains/providers/credentials.ts +20 -0
- package/src/domains/providers/eligibility.ts +24 -0
- package/src/domains/providers/errors.ts +64 -0
- package/src/domains/providers/extension.ts +548 -0
- package/src/domains/providers/index.ts +142 -0
- package/src/domains/providers/knowledge-base-path.ts +102 -0
- package/src/domains/providers/manifest.ts +6 -0
- package/src/domains/providers/model-capabilities.ts +136 -0
- package/src/domains/providers/model-discovery.ts +144 -0
- package/src/domains/providers/model-family.ts +32 -0
- package/src/domains/providers/model-runtime-capabilities.ts +723 -0
- package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +120 -37
- package/src/domains/providers/plugins.ts +61 -0
- package/src/domains/providers/probe/fingerprint.ts +64 -0
- package/src/domains/providers/probe/http.ts +114 -0
- package/src/domains/providers/probe/reasoning.ts +111 -0
- package/src/domains/providers/registry.ts +187 -0
- package/src/domains/providers/resolver.ts +156 -0
- package/src/domains/providers/runtime-resolution.ts +720 -0
- package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +90 -0
- package/src/domains/providers/runtimes/boot-manifest.ts +55 -0
- package/src/domains/providers/runtimes/builtins.ts +78 -0
- package/src/domains/providers/runtimes/claude/claude-code.ts +38 -0
- package/src/domains/providers/runtimes/claude/claude-sdk.ts +38 -0
- package/src/domains/providers/runtimes/claude/common.ts +55 -0
- package/src/domains/providers/runtimes/cloud/alcf.ts +171 -0
- package/src/domains/providers/runtimes/cloud/anthropic-max.ts +71 -0
- package/src/domains/providers/runtimes/cloud/anthropic.ts +43 -0
- package/src/domains/providers/runtimes/cloud/bedrock.ts +35 -0
- package/src/domains/providers/runtimes/cloud/deepseek.ts +50 -0
- package/src/domains/providers/runtimes/cloud/google.ts +41 -0
- package/src/domains/providers/runtimes/cloud/groq.ts +46 -0
- package/src/domains/providers/runtimes/cloud/mistral.ts +46 -0
- package/src/domains/providers/runtimes/cloud/openai-codex.ts +49 -0
- package/src/domains/providers/runtimes/cloud/openai.ts +46 -0
- package/src/domains/providers/runtimes/cloud/openrouter.ts +111 -0
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +423 -0
- package/src/domains/providers/runtimes/common/local-synth.ts +164 -0
- package/src/domains/providers/runtimes/common/probe-helpers.ts +474 -0
- package/src/domains/providers/runtimes/local-native/lemonade-anthropic.ts +27 -0
- package/src/domains/providers/runtimes/local-native/lemonade-openai.ts +26 -0
- package/src/domains/providers/runtimes/local-native/llamacpp-anthropic.ts +88 -0
- package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +207 -0
- package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +180 -0
- package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +126 -0
- package/src/domains/providers/runtimes/local-native/llamacpp.ts +98 -0
- package/src/domains/providers/runtimes/local-native/lmstudio.ts +241 -0
- package/src/domains/providers/runtimes/local-native/ollama-native.ts +117 -0
- package/src/domains/providers/runtimes/local-native/sglang.ts +26 -0
- package/src/domains/providers/runtimes/local-native/vllm.ts +27 -0
- package/src/domains/providers/runtimes/protocol/anthropic-compat.ts +104 -0
- package/src/domains/providers/runtimes/protocol/anthropic-messages.ts +28 -0
- package/src/domains/providers/runtimes/protocol/bedrock.ts +26 -0
- package/src/domains/providers/runtimes/protocol/google.ts +27 -0
- package/src/domains/providers/runtimes/protocol/openai-compat.ts +145 -0
- package/src/domains/providers/support.ts +241 -0
- package/src/domains/providers/thinking-control-policy.ts +85 -0
- package/src/domains/providers/types/capability-flags.ts +114 -0
- package/src/domains/providers/types/cost-provenance.ts +7 -0
- package/src/domains/providers/types/inference.ts +41 -0
- package/src/domains/providers/types/knowledge-base.ts +156 -0
- package/src/domains/providers/types/local-model-quirks.ts +216 -0
- package/src/domains/providers/types/runtime-descriptor.ts +181 -0
- package/src/domains/providers/types/target-descriptor.ts +60 -0
- package/src/domains/resources/collision.ts +92 -0
- package/src/domains/resources/common-loader.ts +140 -0
- package/src/domains/resources/contract.ts +24 -0
- package/src/domains/resources/extension.ts +59 -0
- package/src/domains/resources/index.ts +74 -0
- package/src/domains/resources/loader.ts +85 -0
- package/src/domains/resources/manifest.ts +6 -0
- package/src/domains/resources/prompts/loader.ts +246 -0
- package/src/domains/resources/prompts/substitute.ts +1 -0
- package/src/domains/resources/skills/content-hash.ts +107 -0
- package/src/domains/resources/skills/evals.ts +175 -0
- package/src/domains/resources/skills/install.ts +427 -0
- package/src/domains/resources/skills/loader.ts +985 -0
- package/src/domains/resources/skills/marketplace.ts +301 -0
- package/src/domains/resources/skills/provenance-pin.ts +115 -0
- package/src/domains/safety/action-classifier.ts +270 -0
- package/src/domains/safety/approval-axis.ts +23 -0
- package/src/domains/safety/audit.ts +493 -0
- package/src/domains/safety/autonomy.ts +174 -0
- package/src/domains/safety/call-target.ts +59 -0
- package/src/domains/safety/contract.ts +65 -0
- package/src/domains/safety/damage-control.ts +44 -0
- package/src/domains/safety/default-path-policy.ts +117 -0
- package/src/domains/safety/extension.ts +383 -0
- package/src/domains/safety/finish-contract-registration.ts +128 -0
- package/src/domains/safety/finish-contract.ts +554 -0
- package/src/domains/safety/index.ts +44 -0
- package/src/domains/safety/loop-detector.ts +143 -0
- package/src/domains/safety/manifest.ts +6 -0
- package/src/domains/safety/path-policy.ts +164 -0
- package/src/domains/safety/policy-engine.ts +994 -0
- package/src/domains/safety/project-policy.ts +391 -0
- package/src/domains/safety/protected-artifacts-registration.ts +189 -0
- package/src/domains/safety/protected-artifacts.ts +993 -0
- package/src/domains/safety/rejection-feedback.ts +102 -0
- package/src/domains/safety/rigor.ts +72 -0
- package/src/domains/safety/rule-compiler.ts +48 -0
- package/src/domains/safety/rule-pack-loader.ts +92 -0
- package/src/domains/safety/run-effects.ts +197 -0
- package/src/domains/safety/scope.ts +61 -0
- package/src/domains/scheduling/budget.ts +35 -0
- package/src/domains/scheduling/cluster.ts +175 -0
- package/src/domains/scheduling/contract.ts +30 -0
- package/src/domains/scheduling/extension.ts +91 -0
- package/src/domains/scheduling/index.ts +12 -0
- package/src/domains/scheduling/manifest.ts +6 -0
- package/src/domains/session/archive-readers.ts +208 -0
- package/src/domains/session/checkpoint.ts +38 -0
- package/src/domains/session/compaction/auto.ts +89 -0
- package/src/domains/session/compaction/branch-summary.ts +187 -0
- package/src/domains/session/compaction/compact.ts +493 -0
- package/src/domains/session/compaction/cut-point.ts +172 -0
- package/src/domains/session/compaction/defaults.ts +34 -0
- package/src/domains/session/compaction/mask-observations.ts +265 -0
- package/src/domains/session/compaction/session-entries.ts +18 -0
- package/src/domains/session/compaction/tokens.ts +148 -0
- package/src/domains/session/context-accounting.ts +583 -0
- package/src/domains/session/context-ledger.ts +362 -0
- package/src/domains/session/contract.ts +159 -0
- package/src/domains/session/cwd-fallback.ts +65 -0
- package/src/domains/session/decision-board.ts +190 -0
- package/src/domains/session/entries.ts +572 -0
- package/src/domains/session/extension.ts +403 -0
- package/src/domains/session/history.ts +172 -0
- package/src/domains/session/index.ts +84 -0
- package/src/domains/session/manager.ts +128 -0
- package/src/domains/session/manifest.ts +6 -0
- package/src/domains/session/migrations/index.ts +27 -0
- package/src/domains/session/prompt-manifest.ts +173 -0
- package/src/domains/session/protected-artifact-journal.ts +241 -0
- package/src/domains/session/protected-artifacts.ts +90 -0
- package/src/domains/session/retry.ts +230 -0
- package/src/domains/session/session-artifacts.ts +107 -0
- package/src/domains/session/task-board.ts +569 -0
- package/src/domains/session/tree/active-path.ts +137 -0
- package/src/domains/session/tree/fork.ts +159 -0
- package/src/domains/session/tree/manager.ts +128 -0
- package/src/domains/session/tree/navigator.ts +177 -0
- package/src/domains/session/tree/preview.ts +259 -0
- package/src/domains/session/usage.ts +148 -0
- package/src/domains/session/workspace/git-probe.ts +167 -0
- package/src/domains/session/workspace/index.ts +4 -0
- package/src/domains/session/workspace/project-type.ts +217 -0
- package/src/domains/session/workspace/snapshot.ts +74 -0
- package/src/domains/share/archive.ts +684 -0
- package/src/domains/share/contract.ts +9 -0
- package/src/domains/share/extension.ts +26 -0
- package/src/domains/share/index.ts +28 -0
- package/src/domains/share/manifest.ts +6 -0
- package/src/domains/user-tasks/store.ts +297 -0
- package/src/engine/acp/adapter.ts +397 -0
- package/src/engine/acp/errors.ts +128 -0
- package/src/engine/acp/event-mapper.ts +154 -0
- package/src/engine/acp/server.ts +2238 -0
- package/src/engine/acp/tool-mediator.ts +686 -0
- package/src/engine/acp/transport.ts +775 -0
- package/src/engine/acp/types.ts +196 -0
- package/src/engine/agent.ts +29 -0
- package/src/engine/ai.ts +207 -0
- package/src/engine/alcf-oauth.ts +205 -0
- package/src/engine/antigravity/subprocess-runtime.ts +205 -0
- package/src/engine/api-registry.ts +223 -0
- package/src/engine/apis/degraded-inference.ts +95 -0
- package/src/engine/apis/index.ts +16 -0
- package/src/engine/apis/llamacpp-residency.ts +292 -0
- package/src/engine/apis/lmstudio-residency.ts +76 -0
- package/src/engine/apis/lmstudio.ts +243 -0
- package/src/engine/apis/ollama-native.ts +528 -0
- package/src/engine/apis/openai-completions.ts +795 -0
- package/src/engine/apis/output-budget.ts +99 -0
- package/src/engine/apis/residency-lock.ts +29 -0
- package/src/engine/apis/residency.ts +776 -0
- package/src/engine/apis/resident-models.ts +42 -0
- package/src/engine/apis/sampling-overrides.ts +38 -0
- package/src/engine/apis/types.ts +16 -0
- package/src/engine/claude/sdk-runtime.ts +685 -0
- package/src/engine/claude/session-id.ts +5 -0
- package/src/engine/claude/subprocess-runtime.ts +316 -0
- package/src/engine/claude/tool-safety.ts +400 -0
- package/src/engine/env-api-keys.ts +98 -0
- package/src/engine/external-subprocess.ts +23 -0
- package/src/engine/gemma-channel-filter.ts +223 -0
- package/src/engine/harmony-response.ts +165 -0
- package/src/engine/instrumented-tui.ts +192 -0
- package/src/engine/loop-guard.ts +1127 -0
- package/src/engine/messages.ts +14 -0
- package/src/engine/models.ts +42 -0
- package/src/engine/oauth.ts +196 -0
- package/src/engine/pi-mono-names.ts +13 -0
- package/src/engine/prompt-templates.ts +1 -0
- package/src/engine/provider-payload.ts +272 -0
- package/src/engine/select-list.ts +53 -0
- package/src/engine/session.ts +834 -0
- package/src/engine/strip-tokenizer-sentinels.ts +125 -0
- package/src/engine/truncate.ts +9 -0
- package/src/engine/tui.ts +111 -0
- package/src/engine/types.ts +63 -0
- package/src/engine/worker-events.ts +100 -0
- package/src/engine/worker-runtime-capabilities.ts +5 -0
- package/src/engine/worker-runtime.ts +1022 -0
- package/src/engine/worker-tools.ts +208 -0
- package/src/entry/boot-options.ts +50 -0
- package/src/entry/orchestrator.ts +2011 -0
- package/src/interactive/application-controller.ts +433 -0
- package/src/interactive/bus-notices.ts +265 -0
- package/src/interactive/chat-loop-messages.ts +626 -0
- package/src/interactive/chat-loop-policy.ts +18 -0
- package/src/interactive/chat-loop.ts +1090 -0
- package/src/interactive/chat-panel.ts +1820 -0
- package/src/interactive/chat-renderer.ts +1228 -0
- package/src/interactive/clio-editor.ts +161 -0
- package/src/interactive/command-fallbacks.ts +23 -0
- package/src/interactive/command-output.ts +85 -0
- package/src/interactive/context-activity.ts +203 -0
- package/src/interactive/context-meter.ts +223 -0
- package/src/interactive/context-overlay.ts +246 -0
- package/src/interactive/cost-overlay.ts +279 -0
- package/src/interactive/dispatch-board.ts +1319 -0
- package/src/interactive/dispatch-steering.ts +86 -0
- package/src/interactive/editor-bash.ts +46 -0
- package/src/interactive/editor-steer.ts +51 -0
- package/src/interactive/editor-submit.ts +507 -0
- package/src/interactive/export-html/ansi-to-html.ts +161 -0
- package/src/interactive/export-html/index.ts +51 -0
- package/src/interactive/export-html/template.ts +45 -0
- package/src/interactive/export-html/tool-renderer.ts +54 -0
- package/src/interactive/external-editor.ts +67 -0
- package/src/interactive/follow-up-queue-panel.ts +75 -0
- package/src/interactive/footer/dashboard.ts +538 -0
- package/src/interactive/footer/notifications.ts +275 -0
- package/src/interactive/footer/widgets.ts +1264 -0
- package/src/interactive/footer-panel.ts +187 -0
- package/src/interactive/format-time.ts +97 -0
- package/src/interactive/index.ts +11 -0
- package/src/interactive/interactive-application.ts +939 -0
- package/src/interactive/interactive-event-projection.ts +385 -0
- package/src/interactive/interactive-input-runtime.ts +307 -0
- package/src/interactive/interactive-presentation.ts +584 -0
- package/src/interactive/interactive-shell.ts +388 -0
- package/src/interactive/interactive-slash-runtime.ts +554 -0
- package/src/interactive/interactive-subscriptions.ts +111 -0
- package/src/interactive/interactive-tickers.ts +183 -0
- package/src/interactive/keybinding-manager.ts +496 -0
- package/src/interactive/layout.ts +57 -0
- package/src/interactive/leader-key.ts +143 -0
- package/src/interactive/loop-guard-interrupt.ts +101 -0
- package/src/interactive/memory-overlay.ts +280 -0
- package/src/interactive/overlay-ask-user-lifecycle.ts +110 -0
- package/src/interactive/overlay-auth-lifecycle.ts +308 -0
- package/src/interactive/overlay-frame.ts +502 -0
- package/src/interactive/overlay-general-openers.ts +274 -0
- package/src/interactive/overlay-key-routing.ts +216 -0
- package/src/interactive/overlay-lifecycle.ts +426 -0
- package/src/interactive/overlay-model-selectors.ts +127 -0
- package/src/interactive/overlay-permission-lifecycle.ts +345 -0
- package/src/interactive/overlay-resource-openers.ts +112 -0
- package/src/interactive/overlay-session-lifecycle.ts +327 -0
- package/src/interactive/overlay-transitions.ts +57 -0
- package/src/interactive/overlays/agents.ts +69 -0
- package/src/interactive/overlays/ask-user.ts +921 -0
- package/src/interactive/overlays/auth-dialog.ts +221 -0
- package/src/interactive/overlays/context-reset.ts +108 -0
- package/src/interactive/overlays/cwd-fallback.ts +141 -0
- package/src/interactive/overlays/decisions.ts +300 -0
- package/src/interactive/overlays/extensions.ts +54 -0
- package/src/interactive/overlays/help-reference.ts +145 -0
- package/src/interactive/overlays/interop.ts +139 -0
- package/src/interactive/overlays/keybinding-detail.ts +90 -0
- package/src/interactive/overlays/list-overlay.ts +606 -0
- package/src/interactive/overlays/message-picker.ts +155 -0
- package/src/interactive/overlays/model-selector.ts +1109 -0
- package/src/interactive/overlays/prompts.ts +72 -0
- package/src/interactive/overlays/session-selector-search.ts +31 -0
- package/src/interactive/overlays/session-selector.ts +284 -0
- package/src/interactive/overlays/settings.ts +3451 -0
- package/src/interactive/overlays/skills-hub.ts +237 -0
- package/src/interactive/overlays/tree-selector.ts +422 -0
- package/src/interactive/permission-overlay.ts +170 -0
- package/src/interactive/render-trace.ts +534 -0
- package/src/interactive/renderers/branch-summary.ts +86 -0
- package/src/interactive/renderers/code-ink.ts +420 -0
- package/src/interactive/renderers/compaction-summary.ts +112 -0
- package/src/interactive/renderers/diff.ts +137 -0
- package/src/interactive/renderers/mermaid.ts +53 -0
- package/src/interactive/renderers/notice.ts +28 -0
- package/src/interactive/renderers/retry-status.ts +31 -0
- package/src/interactive/renderers/structured.ts +89 -0
- package/src/interactive/renderers/tool-execution.ts +1357 -0
- package/src/interactive/renderers/worker-entry.ts +280 -0
- package/src/interactive/session-last-turn.ts +186 -0
- package/src/interactive/session-switch-settlement.ts +10 -0
- package/src/interactive/session-transcript.ts +105 -0
- package/src/interactive/session-usage-reseed.ts +74 -0
- package/src/interactive/slash-autocomplete.ts +256 -0
- package/src/interactive/slash-commands.ts +1407 -0
- package/src/interactive/slash-spec.ts +424 -0
- package/src/interactive/status/controller.ts +260 -0
- package/src/interactive/status/index.ts +23 -0
- package/src/interactive/status/state-machine.ts +530 -0
- package/src/interactive/status/summary.ts +170 -0
- package/src/interactive/status/types.ts +121 -0
- package/src/interactive/status/verbs.ts +163 -0
- package/src/interactive/status/watchdog.ts +24 -0
- package/src/interactive/stdout-backpressure.ts +99 -0
- package/src/interactive/stream-pacer.ts +530 -0
- package/src/interactive/stream-pacing-policy.ts +66 -0
- package/src/interactive/tasks-overlay.ts +540 -0
- package/src/interactive/terminal-lease.ts +485 -0
- package/src/interactive/theme/components.ts +55 -0
- package/src/interactive/theme/glyphs.ts +70 -0
- package/src/interactive/theme/index.ts +15 -0
- package/src/interactive/theme/labels.ts +88 -0
- package/src/interactive/theme/rules.ts +138 -0
- package/src/interactive/theme/segments.ts +88 -0
- package/src/interactive/theme/tokens.ts +121 -0
- package/src/interactive/thinking-level-policy.ts +6 -0
- package/src/interactive/tool-prose-loop.ts +122 -0
- package/src/interactive/tool-prose-registration.ts +48 -0
- package/src/interactive/turn-context.ts +855 -0
- package/src/interactive/turn-middleware.ts +283 -0
- package/src/interactive/turn-persistence.ts +458 -0
- package/src/interactive/turn-queues.ts +181 -0
- package/src/interactive/turn-recovery.ts +323 -0
- package/src/interactive/turn-runtime.ts +869 -0
- package/src/interactive/turn-state.ts +133 -0
- package/src/interactive/view/artifacts.ts +1452 -0
- package/src/interactive/view/view-overlay.ts +735 -0
- package/src/interactive/welcome-dashboard.ts +537 -0
- package/src/interactive/worker-receipts.ts +143 -0
- package/src/interactive/worker-replay.ts +111 -0
- package/src/interactive/worker-share.ts +100 -0
- package/src/interactive/worker-stream.ts +446 -0
- package/src/interactive/workspace-facts.ts +141 -0
- package/src/tools/agent-tools.ts +402 -0
- package/src/tools/artifact.ts +103 -0
- package/src/tools/ask-user.ts +666 -0
- package/src/tools/bash.ts +204 -0
- package/src/tools/bootstrap.ts +77 -0
- package/src/tools/builtin-tool-catalog.ts +265 -0
- package/src/tools/codewiki/code-nav-surface.ts +29 -0
- package/src/tools/codewiki/code-nav.ts +549 -0
- package/src/tools/codewiki/shared.ts +118 -0
- package/src/tools/compete-worktrees.ts +898 -0
- package/src/tools/context/docs-engine.ts +630 -0
- package/src/tools/context/index.ts +514 -0
- package/src/tools/context/surface.ts +19 -0
- package/src/tools/core-bootstrap.ts +168 -0
- package/src/tools/credential-present.ts +151 -0
- package/src/tools/dispatch-admission.ts +533 -0
- package/src/tools/dispatch-arguments.ts +228 -0
- package/src/tools/dispatch-background.ts +54 -0
- package/src/tools/dispatch-event-text.ts +6 -0
- package/src/tools/dispatch-plan.ts +746 -0
- package/src/tools/dispatch-run-events.ts +238 -0
- package/src/tools/dispatch-runner.ts +2370 -0
- package/src/tools/dispatch-scout-admission.ts +295 -0
- package/src/tools/dispatch-scout.ts +461 -0
- package/src/tools/dispatch-types.ts +77 -0
- package/src/tools/dispatch.ts +244 -0
- package/src/tools/edit-diff.ts +534 -0
- package/src/tools/edit.ts +128 -0
- package/src/tools/executables.ts +22 -0
- package/src/tools/file-mutation-queue.ts +35 -0
- package/src/tools/find.ts +294 -0
- package/src/tools/grep.ts +495 -0
- package/src/tools/ignore-policy.ts +169 -0
- package/src/tools/lazy-tool.ts +60 -0
- package/src/tools/ledger.ts +206 -0
- package/src/tools/ls.ts +110 -0
- package/src/tools/monitor-surface.ts +36 -0
- package/src/tools/monitor.ts +767 -0
- package/src/tools/network-policy.ts +29 -0
- package/src/tools/observation.ts +421 -0
- package/src/tools/observers.ts +99 -0
- package/src/tools/path-utils.ts +79 -0
- package/src/tools/policy.ts +154 -0
- package/src/tools/profiles.ts +108 -0
- package/src/tools/read.ts +173 -0
- package/src/tools/registry.ts +1169 -0
- package/src/tools/result-shaping.ts +204 -0
- package/src/tools/safe-exec.ts +128 -0
- package/src/tools/spawn-hygiene.ts +182 -0
- package/src/tools/steer-surface.ts +17 -0
- package/src/tools/steer.ts +77 -0
- package/src/tools/tasks.ts +265 -0
- package/src/tools/truncate-utf8.ts +17 -0
- package/src/tools/truncate.ts +43 -0
- package/src/tools/verify/frontend.ts +687 -0
- package/src/tools/verify/index.ts +31 -0
- package/src/tools/verify/scripts.ts +108 -0
- package/src/tools/verify/surface.ts +46 -0
- package/src/tools/web-fetch-surface.ts +23 -0
- package/src/tools/web-fetch.ts +759 -0
- package/src/tools/worker-evidence.ts +215 -0
- package/src/tools/write.ts +57 -0
- package/src/utils/exif-orientation.ts +192 -0
- package/src/utils/git.ts +24 -0
- package/src/utils/image-resize.ts +148 -0
- package/src/utils/photon.ts +103 -0
- package/src/worker/control-lane.ts +22 -0
- package/src/worker/entry.ts +294 -0
- package/src/worker/event-projection.ts +56 -0
- package/src/worker/heartbeat.ts +24 -0
- package/src/worker/ledger-mirror.ts +95 -0
- package/src/worker/ndjson.ts +40 -0
- package/src/worker/protocol.ts +529 -0
- package/src/worker/resource-facts.ts +79 -0
- package/src/worker/runtime-registry.ts +12 -0
- package/src/worker/spec-contract.ts +675 -0
- package/src/worker/stdin-demux.ts +316 -0
- package/dist/acp-UMLFVA3F.js +0 -92
- package/dist/chunk-262G75JS.js +0 -35
- package/dist/chunk-6CWDTGUC.js +0 -20
- package/dist/chunk-BYEU76JP.js +0 -899
- package/dist/chunk-GNGDQYDU.js +0 -34688
- package/dist/chunk-GOTUR54M.js +0 -9
- package/dist/chunk-NI4DEJMC.js +0 -88
- package/dist/chunk-TPOCL34A.js +0 -2876
- package/dist/chunk-UU3R62TT.js +0 -128
- package/dist/clio-KIQ5SNDS.js +0 -53
- package/dist/configure-G4E3A2PG.js +0 -27
- package/dist/doctor-M5HJJZOL.js +0 -61
- package/dist/domains/agents/builtins/architect.md +0 -33
- package/dist/domains/agents/builtins/coder.md +0 -31
- package/dist/domains/agents/builtins/context-bootstrap.md +0 -38
- package/dist/domains/agents/builtins/debugger.md +0 -30
- package/dist/domains/agents/builtins/documenter.md +0 -31
- package/dist/domains/agents/builtins/git-master.md +0 -30
- package/dist/domains/agents/builtins/provenance.md +0 -30
- package/dist/domains/agents/builtins/researcher.md +0 -71
- package/dist/domains/agents/builtins/scout.md +0 -42
- package/dist/domains/agents/builtins/tester.md +0 -31
- package/dist/domains/agents/builtins/verifier.md +0 -30
- package/dist/domains/agents/builtins/wiki-writer.md +0 -41
- package/dist/fleet-preflight-CLIAX7YR.js +0 -21
- package/dist/preload-KZVHET2B.js +0 -11
- package/dist/version-ROZ6CZKH.js +0 -16
- package/docs/html/agents_blueprint.html +0 -936
- package/docs/html/alcf_blueprint.html +0 -324
- package/docs/html/architecture_blueprint.html +0 -850
- package/docs/html/commands_blueprint.html +0 -794
- package/docs/html/config_knobs_audit_blueprint.html +0 -178
- package/docs/html/configuration_blueprint.html +0 -1080
- package/docs/html/context_blueprint.html +0 -603
- package/docs/html/documentation_blueprint.html +0 -832
- package/docs/html/environment_blueprint.html +0 -404
- package/docs/html/eval_blueprint.html +0 -743
- package/docs/html/evals_internal_blueprint.html +0 -190
- package/docs/html/evolution_blueprint.html +0 -674
- package/docs/html/extensions_blueprint.html +0 -2065
- package/docs/html/fleet_dispatch_blueprint.html +0 -286
- package/docs/html/index.html +0 -919
- package/docs/html/lifecycle_blueprint.html +0 -723
- package/docs/html/memory_blueprint.html +0 -699
- package/docs/html/middleware_blueprint.html +0 -664
- package/docs/html/models_blueprint.html +0 -2366
- package/docs/html/observability_blueprint.html +0 -683
- package/docs/html/provider_adapter_blueprint.html +0 -245
- package/docs/html/safety_blueprint.html +0 -1386
- package/docs/html/shared.css +0 -571
- package/docs/html/shared.js +0 -143
- package/docs/html/skills_blueprint.html +0 -671
- package/docs/html/soak_blueprint.html +0 -182
- package/docs/html/tool_usage_blueprint.html +0 -350
- package/docs/html/tools_blueprint.html +0 -2249
- package/docs/html/trace_blueprint.html +0 -235
- package/docs/html/tui_design_blueprint.html +0 -314
- package/docs/html/validation_blueprint.html +0 -961
- package/docs/html/worker_dispatch_blueprint.html +0 -231
- package/skills/git/commit-crafting/SKILL.md +0 -79
- package/skills/git/commit-crafting/evals.md +0 -92
- package/skills/git/create-pr/SKILL.md +0 -116
- package/skills/git/create-pr/evals.md +0 -114
- package/skills/git/investigate-issue/SKILL.md +0 -139
- package/skills/git/investigate-issue/evals.md +0 -94
- package/skills/git/review-changes/SKILL.md +0 -103
- package/skills/git/review-changes/evals.md +0 -85
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grill-me
|
|
3
|
+
description: Use when the user wants a plan, design, or idea stress-tested through a phased one-question-at-a-time interview before any code is written, or when intent is too ambiguous to plan from. Scans available context first, reviews known facts, fills missing decisions, respects stop signals, and ends with a compact decision log. Triggers on "grill me", "interview me", "stress-test this plan", "poke holes in this".
|
|
4
|
+
version: 0.3.2
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- read
|
|
8
|
+
- grep
|
|
9
|
+
- ls
|
|
10
|
+
- find
|
|
11
|
+
- git
|
|
12
|
+
- context
|
|
13
|
+
- code_nav
|
|
14
|
+
- ask_user
|
|
15
|
+
clio:
|
|
16
|
+
registry-id: iowarp/clio-coder
|
|
17
|
+
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/workflow/grill-me
|
|
18
|
+
audit: pass
|
|
19
|
+
provenance: designed
|
|
20
|
+
eval-status: smoke-checked
|
|
21
|
+
model-size: large
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Grill Me
|
|
25
|
+
|
|
26
|
+
Run a rigorous, repo-aware interview that turns a vague plan into explicit
|
|
27
|
+
decisions. The point is not to interrogate for sport; it is to surface hidden
|
|
28
|
+
branches before anyone writes code.
|
|
29
|
+
|
|
30
|
+
## Operating Contract
|
|
31
|
+
|
|
32
|
+
- Use `ask_user` for the interview whenever it is active.
|
|
33
|
+
- For every interview round, call `ask_user` with `mode: "single_question"` and
|
|
34
|
+
exactly one question.
|
|
35
|
+
- On the first ask for a normal grill-me run, set `max_rounds` to a bounded
|
|
36
|
+
value, usually `12` and at most `16` unless the user explicitly asked for a
|
|
37
|
+
very deep interview.
|
|
38
|
+
- Put your recommended answer first when options are natural. Include 2-3 real
|
|
39
|
+
alternatives with short tradeoff descriptions.
|
|
40
|
+
- The user answers in natural language. You translate answers into compact
|
|
41
|
+
decision keys and rationale when you call `ask_user` with `action: "complete"`.
|
|
42
|
+
- If `ask_user` is unavailable, ask in plain text, still one question at a
|
|
43
|
+
time, and keep an internal decision log.
|
|
44
|
+
|
|
45
|
+
## Phase Map
|
|
46
|
+
|
|
47
|
+
Walk phases in order unless the user names a narrower target. Do not skip the
|
|
48
|
+
scan. A phase can be "review" when context already contains a plausible answer
|
|
49
|
+
or "fill" when the decision is genuinely missing.
|
|
50
|
+
|
|
51
|
+
| Phase | Scope | Default mode |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| 0 | Scan available context: user prompt, named files, repo structure, git state, existing plans/specs | No questions unless the subject is missing |
|
|
54
|
+
| 1 | Frame: user, problem, outcome, non-goals, success criteria | Fill or review |
|
|
55
|
+
| 2 | Current state: existing code, constraints, conventions, integration points, prior attempts | Review |
|
|
56
|
+
| 3 | Shape: data model, API/UX surface, ownership boundaries, naming, compatibility | Fill |
|
|
57
|
+
| 4 | Risk: failure modes, migrations, rollout, test strategy, observability, reversibility | Fill |
|
|
58
|
+
| 5 | Delivery: first slice, done-when checks, deferrals, handoff target (`prd`, `cut-it`, or direct implementation) | Review then complete |
|
|
59
|
+
|
|
60
|
+
## Workflow
|
|
61
|
+
|
|
62
|
+
### Step 1 - Scan
|
|
63
|
+
|
|
64
|
+
Read what the user already gave you. If the task references files, plans, code,
|
|
65
|
+
tests, or project conventions, inspect them before asking. Prefer
|
|
66
|
+
`context(scope="workspace")`, `grep`, `read`, and codewiki tools over guessing.
|
|
67
|
+
|
|
68
|
+
Privately build a phase map:
|
|
69
|
+
|
|
70
|
+
- known facts
|
|
71
|
+
- assumptions worth challenging
|
|
72
|
+
- missing decisions
|
|
73
|
+
- dependencies between decisions
|
|
74
|
+
- likely deferrals and why they might be safe
|
|
75
|
+
|
|
76
|
+
Never spend the user's attention on facts that the repo answers. If you found
|
|
77
|
+
the answer in code, summarize it briefly and ask only whether it should remain
|
|
78
|
+
true.
|
|
79
|
+
|
|
80
|
+
### Step 2 - Choose Review Or Fill
|
|
81
|
+
|
|
82
|
+
For each phase:
|
|
83
|
+
|
|
84
|
+
- **Review mode**: context already has an answer. Present the finding in one or
|
|
85
|
+
two sentences, then ask a targeted question such as "Is this still accurate?"
|
|
86
|
+
or "Should we keep this constraint?"
|
|
87
|
+
- **Fill mode**: context is sparse or ambiguous. Ask the highest-leverage
|
|
88
|
+
missing decision first.
|
|
89
|
+
|
|
90
|
+
Always resolve root decisions before leaves, in the Question Priority order
|
|
91
|
+
below.
|
|
92
|
+
|
|
93
|
+
### Step 3 - Ask One Question
|
|
94
|
+
|
|
95
|
+
Each `ask_user` round contains one question only:
|
|
96
|
+
|
|
97
|
+
- one stable `header`
|
|
98
|
+
- one concrete question
|
|
99
|
+
- recommended option first when options fit
|
|
100
|
+
- no multi-part wording hidden inside the question
|
|
101
|
+
|
|
102
|
+
Bad: "Who is this for, what should v1 include, and how should we test it?"
|
|
103
|
+
|
|
104
|
+
Good: "Which user should v1 optimize for first?"
|
|
105
|
+
|
|
106
|
+
If an answer is vague, ask a follow-up on the same branch. Do not jump to a new
|
|
107
|
+
branch while the current one is still unresolved.
|
|
108
|
+
|
|
109
|
+
### Step 4 - Respect Stop Signals
|
|
110
|
+
|
|
111
|
+
Stop immediately when the user says "stop", "enough", "later", "done", "next
|
|
112
|
+
time", or cancels the modal. Do not ask another question to confirm stopping.
|
|
113
|
+
|
|
114
|
+
If you have enough decisions to be useful, call:
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"action": "complete",
|
|
119
|
+
"summary": "Short interview closeout.",
|
|
120
|
+
"decisions": [
|
|
121
|
+
{
|
|
122
|
+
"key": "primary_outcome",
|
|
123
|
+
"value": "Smallest useful slice",
|
|
124
|
+
"rationale": "The user prioritized fast validation over broad architecture.",
|
|
125
|
+
"confidence": "high",
|
|
126
|
+
"source_question": "What should this plan optimize for first?"
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Then provide the decision log. If the stop happened before enough context,
|
|
133
|
+
state the partial decisions and the next unresolved root question.
|
|
134
|
+
|
|
135
|
+
### Step 5 - Complete
|
|
136
|
+
|
|
137
|
+
Before final prose, call `ask_user` with `action: "complete"` and a compact
|
|
138
|
+
`decisions` array. Then write the final decision log:
|
|
139
|
+
|
|
140
|
+
```markdown
|
|
141
|
+
## Decision Log - <topic>
|
|
142
|
+
1. <decision> - chosen over <alternative> because <reason>
|
|
143
|
+
2. ...
|
|
144
|
+
|
|
145
|
+
Deferred:
|
|
146
|
+
- <item> - safe because <reason>
|
|
147
|
+
|
|
148
|
+
Open risks:
|
|
149
|
+
- <risk or unresolved branch>
|
|
150
|
+
|
|
151
|
+
Recommended next step:
|
|
152
|
+
- <prd | cut-it | direct implementation> - <why>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Question Priority
|
|
156
|
+
|
|
157
|
+
Use this ordering when several questions are possible:
|
|
158
|
+
|
|
159
|
+
1. User and problem being solved.
|
|
160
|
+
2. Primary success measure.
|
|
161
|
+
3. Explicit non-goals.
|
|
162
|
+
4. Existing constraints from repo or environment.
|
|
163
|
+
5. Data/API/UX boundary.
|
|
164
|
+
6. Failure modes and recovery.
|
|
165
|
+
7. Tests and done-when checks.
|
|
166
|
+
8. First implementation slice.
|
|
167
|
+
9. Naming and polish.
|
|
168
|
+
|
|
169
|
+
## Decision Rules
|
|
170
|
+
|
|
171
|
+
- If the user says "whatever you think", record your recommendation as the
|
|
172
|
+
decision and say so.
|
|
173
|
+
- If two choices are both viable, choose the one that reduces irreversible
|
|
174
|
+
work unless the user explicitly values speed or breadth more.
|
|
175
|
+
- If a decision is safe to defer, record why and what later signal will force
|
|
176
|
+
it.
|
|
177
|
+
- If the plan is too vague to slice or implement, say that clearly and continue
|
|
178
|
+
interviewing instead of fabricating certainty.
|
|
179
|
+
|
|
180
|
+
## Red Flags
|
|
181
|
+
|
|
182
|
+
- Asking multiple questions in one `ask_user` round.
|
|
183
|
+
- Asking about facts discoverable from the repo.
|
|
184
|
+
- Letting `ask_user` hit the round limit without completing the interview.
|
|
185
|
+
- Ending with a summary paragraph instead of the decision log.
|
|
186
|
+
- Treating cancellation as permission to keep asking.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Evals - grill-me
|
|
2
|
+
|
|
3
|
+
Baseline scenarios (run a subagent WITHOUT the skill to capture the gap, then
|
|
4
|
+
WITH the skill to confirm it closes). Rubric is pass/fail per bullet.
|
|
5
|
+
|
|
6
|
+
## S1 - vague feature request
|
|
7
|
+
|
|
8
|
+
Setup: repo with an existing config domain. Prompt: "grill me on adding plugin
|
|
9
|
+
support."
|
|
10
|
+
|
|
11
|
+
Expected:
|
|
12
|
+
|
|
13
|
+
- Scans the existing config/extension code before asking anything the repo can
|
|
14
|
+
answer.
|
|
15
|
+
- Starts with a root decision such as outcome, target user, or scope boundary.
|
|
16
|
+
- Uses `ask_user` with `mode: "single_question"` and exactly one question in
|
|
17
|
+
the round.
|
|
18
|
+
- Puts its recommended answer first when options are supplied.
|
|
19
|
+
- Ends by calling `ask_user` with `action: "complete"` and then writes a
|
|
20
|
+
decision log, not a summary paragraph.
|
|
21
|
+
|
|
22
|
+
## S2 - answerable-from-repo question
|
|
23
|
+
|
|
24
|
+
Setup: plan mentions "the test runner". The repo's package.json defines it.
|
|
25
|
+
|
|
26
|
+
Expected:
|
|
27
|
+
|
|
28
|
+
- Does NOT ask the user which test runner is used; reads package.json instead.
|
|
29
|
+
- States what it found and asks only whether that constraint should remain
|
|
30
|
+
true.
|
|
31
|
+
- Treats the area as review mode, not fill mode.
|
|
32
|
+
|
|
33
|
+
## S3 - user defers
|
|
34
|
+
|
|
35
|
+
Setup: mid-interview, user answers "whatever you think is best."
|
|
36
|
+
|
|
37
|
+
Expected:
|
|
38
|
+
|
|
39
|
+
- Records its own recommendation as the decision and says so explicitly.
|
|
40
|
+
- Does not silently skip the branch.
|
|
41
|
+
- Continues only if another root decision remains.
|
|
42
|
+
|
|
43
|
+
## S4 - long phased interview
|
|
44
|
+
|
|
45
|
+
Setup: prompt asks for a deep stress test of a large design.
|
|
46
|
+
|
|
47
|
+
Expected:
|
|
48
|
+
|
|
49
|
+
- First `ask_user` call sets a bounded `max_rounds` value such as 12 or 16.
|
|
50
|
+
- Still asks one question per round.
|
|
51
|
+
- Completes before the limit when decisions are sufficient.
|
|
52
|
+
- If the limit is near, closes with current decisions and open risks instead
|
|
53
|
+
of continuing to ask.
|
|
54
|
+
|
|
55
|
+
## S5 - stop signal
|
|
56
|
+
|
|
57
|
+
Setup: mid-interview, user says "stop", "enough", "later", or cancels the
|
|
58
|
+
modal.
|
|
59
|
+
|
|
60
|
+
Expected:
|
|
61
|
+
|
|
62
|
+
- Stops immediately and does not ask a confirmation question.
|
|
63
|
+
- Calls `ask_user` complete when possible with partial decisions.
|
|
64
|
+
- Final response includes partial decisions and the next unresolved root
|
|
65
|
+
question.
|
|
66
|
+
|
|
67
|
+
## Baseline failure modes to watch for (RED)
|
|
68
|
+
|
|
69
|
+
- Question batching: more than one question in an `ask_user` round.
|
|
70
|
+
- Interview starts cold without reading repo facts that are clearly relevant.
|
|
71
|
+
- Interview ends when the user gets tired, with no decision log.
|
|
72
|
+
- Asks about facts discoverable via grep/read.
|
|
73
|
+
- Hits the round limit without a useful closeout.
|
|
74
|
+
|
|
75
|
+
## Smoke record (2026-08-13)
|
|
76
|
+
|
|
77
|
+
One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
|
|
78
|
+
(30B local, llamacpp on mini), full-auto sandbox. PASS (smoke). Skill loaded and interviewed; judge emitted nothing (truncation).
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workflow-distiller
|
|
3
|
+
description: Use when a workflow that just happened should become reusable, when the user says "make this a skill", "package what we just did", "turn this into a workflow", or when the same multi-step process has been repeated across sessions. Reconstructs the workflow from the session record, interviews, checks overlap with installed skills, gates on approval, then writes the SKILL.md following skill-craft. Not for authoring a skill from scratch with no prior workflow; write the SKILL.md directly following skill-craft. Not for distilling into an agent recipe; propose that as a follow-up when the workflow is dispatch-shaped.
|
|
4
|
+
version: 0.2.1
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- read
|
|
8
|
+
- grep
|
|
9
|
+
- find
|
|
10
|
+
- ls
|
|
11
|
+
- context
|
|
12
|
+
- write
|
|
13
|
+
- ask_user
|
|
14
|
+
requires:
|
|
15
|
+
- skill:skill-craft
|
|
16
|
+
clio:
|
|
17
|
+
registry-id: iowarp/clio-coder
|
|
18
|
+
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/workflow/workflow-distiller
|
|
19
|
+
audit: pass
|
|
20
|
+
provenance: designed
|
|
21
|
+
eval-status: smoke-checked
|
|
22
|
+
model-size: large
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Workflow Distiller
|
|
26
|
+
|
|
27
|
+
Turn a workflow that actually ran into a reusable skill. The distiller's
|
|
28
|
+
identity is runtime truth: it reconstructs what happened from the visible
|
|
29
|
+
session record, not from anyone's memory of it. Skip the ceremony when there
|
|
30
|
+
is no prior workflow; a from-scratch skill is a SKILL.md written directly,
|
|
31
|
+
following skill-craft. skill-craft also governs how every skill this
|
|
32
|
+
distiller produces is written: description, body, and pruning rules live
|
|
33
|
+
there, not here.
|
|
34
|
+
|
|
35
|
+
## Phase 1 - Reconstruct From Evidence
|
|
36
|
+
|
|
37
|
+
Before asking anything, list the concrete steps that visibly executed in this
|
|
38
|
+
session, in order: tools called, commands run, files touched, dispatches made,
|
|
39
|
+
skills activated. Cite the conversation record for each step. Anything the
|
|
40
|
+
user describes that did not visibly run is tagged `assumption` and becomes an
|
|
41
|
+
interview question. This grounding step is mandatory and comes first; when the
|
|
42
|
+
reconstruction and the user's memory disagree, the reconstruction wins and the
|
|
43
|
+
disagreement is worth a question.
|
|
44
|
+
|
|
45
|
+
## Phase 2 - Interview
|
|
46
|
+
|
|
47
|
+
Use `ask_user` with `mode: "single_question"`, one question per round, bounded
|
|
48
|
+
rounds (default 8, max 12), following the grill-me operating contract:
|
|
49
|
+
recommended answer first when options are natural, stop signals ("stop",
|
|
50
|
+
"enough", "later", cancel) respected immediately, answers translated into
|
|
51
|
+
compact decisions. Question bank, roots before leaves:
|
|
52
|
+
|
|
53
|
+
1. Confirm the reconstruction and resolve tagged assumptions.
|
|
54
|
+
2. Inputs and outputs: what varies between runs, what is fixed.
|
|
55
|
+
3. Recurrence: how often has this actually happened? A workflow that ran once
|
|
56
|
+
is usually not worth a skill; ask early and offer to stop.
|
|
57
|
+
4. Per-step rigidity: must-match versus any-reasonable-approach.
|
|
58
|
+
5. Failure behavior per step: ask the user, retry an alternative, or fail
|
|
59
|
+
loudly.
|
|
60
|
+
6. Scope cuts: what the skill should refuse to do.
|
|
61
|
+
7. Name (lowercase-hyphen).
|
|
62
|
+
|
|
63
|
+
## Phase 3 - Overlap Check
|
|
64
|
+
|
|
65
|
+
Call `context(scope="skills")` with no name to list installed skills. Judge
|
|
66
|
+
overlap per step, not per workflow: if an installed skill's triggers cover a
|
|
67
|
+
step, that step is referenced by name in the new skill body, never
|
|
68
|
+
reimplemented, with a one-line rationale for the dependency. A different end
|
|
69
|
+
goal does not excuse reimplementing a covered step. Record each reference as
|
|
70
|
+
a `requires: [skill:<name>]` entry in the generated skill's frontmatter in
|
|
71
|
+
Phase 5, so the loader warns when the dependency is missing.
|
|
72
|
+
|
|
73
|
+
## Phase 4 - Design Gate
|
|
74
|
+
|
|
75
|
+
Present a compact design summary and wait for explicit approval:
|
|
76
|
+
|
|
77
|
+
```markdown
|
|
78
|
+
## Skill Design - <name>
|
|
79
|
+
Description draft: <triggers only, third person>
|
|
80
|
+
Steps: <step, rigidity, on-failure> per line
|
|
81
|
+
References: <skill:<name>, why> or none
|
|
82
|
+
Scope: project | user (user only if the workflow crosses repositories)
|
|
83
|
+
Validation scenario: <prompt, expected observable behavior>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
No skill file is written before the user approves. "Looks fine, but change X"
|
|
87
|
+
means revise and re-present.
|
|
88
|
+
|
|
89
|
+
## Phase 5 - Create
|
|
90
|
+
|
|
91
|
+
Write `SKILL.md` under `.clio-coder/skills/<approved-name>/`, following skill-craft
|
|
92
|
+
for the frontmatter contract, a triggers-only third-person description, and
|
|
93
|
+
the pruning pass, with `requires: [skill:<name>]` for every skill the overlap
|
|
94
|
+
check referenced. Confirm it loads with `clio-coder skills validate`. Scope
|
|
95
|
+
defaults to project; use the user skill store only when the user said the
|
|
96
|
+
workflow crosses repositories. Placeholders replace every session-specific
|
|
97
|
+
path, name, and value; distill the pattern, not the incident. Keep the
|
|
98
|
+
generated skill under 120 lines; reference instead of inlining. If
|
|
99
|
+
the session repeatedly dispatched the same worker pattern, also offer a recipe
|
|
100
|
+
sketch for the agents surface, but do not write recipe files.
|
|
101
|
+
|
|
102
|
+
## Phase 6 - Validate
|
|
103
|
+
|
|
104
|
+
Record one RED-GREEN scenario agreed with the user: the prompt, and the
|
|
105
|
+
observable behavior that distinguishes with-skill from without. Run it once if
|
|
106
|
+
cheap (a single small headless run); otherwise record it in the skill body's
|
|
107
|
+
example section as the standing validation obligation.
|
|
108
|
+
|
|
109
|
+
## Worked Example
|
|
110
|
+
|
|
111
|
+
Session: the user fetched a CSV export, normalized column names with a small
|
|
112
|
+
script, and verified row counts against the source, three sessions in a row.
|
|
113
|
+
|
|
114
|
+
1. Reconstruct: `bash curl ...` (ran), `write normalize.py` + `bash python3
|
|
115
|
+
normalize.py` (ran), `bash wc -l` comparison (ran). User also mentions "and
|
|
116
|
+
I always spot-check five rows" - not visible this session, tagged
|
|
117
|
+
assumption.
|
|
118
|
+
2. Interview: confirms reconstruction; spot-check confirmed as a real step;
|
|
119
|
+
recurrence "weekly"; normalization must-match, fetch any-approach; failure
|
|
120
|
+
on row-count mismatch must fail loudly; name `csv-ingest`.
|
|
121
|
+
3. Overlap: the `context(scope="skills")` listing shows no fetch or CSV skill
|
|
122
|
+
installed; no references.
|
|
123
|
+
4. Gate: summary presented; user approves after tightening the description.
|
|
124
|
+
5. Create: write `.clio-coder/skills/csv-ingest/SKILL.md`, placeholders for the
|
|
125
|
+
export URL and column map; `clio-coder skills validate` passes.
|
|
126
|
+
6. Validate: scenario "ingest this month's export" must show fetch,
|
|
127
|
+
normalize, count-verify, spot-check in that order; recorded in the body.
|
|
128
|
+
|
|
129
|
+
## Red Flags
|
|
130
|
+
|
|
131
|
+
- Writing any skill before the design gate is approved.
|
|
132
|
+
- A reconstruction that lists steps nothing in the session shows.
|
|
133
|
+
- Reimplementing an installed skill's job instead of referencing it.
|
|
134
|
+
- Session-specific paths or values surviving into the generated skill.
|
|
135
|
+
- Batching interview questions or ignoring a stop signal.
|
|
136
|
+
- Distilling a one-off without asking about recurrence.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Evals - workflow-distiller
|
|
2
|
+
|
|
3
|
+
Baseline scenarios (run a subagent WITHOUT the skill to capture the gap, then
|
|
4
|
+
WITH the skill to confirm it closes). Rubric is pass/fail per bullet.
|
|
5
|
+
|
|
6
|
+
## S1 - "make what we just did a skill"
|
|
7
|
+
|
|
8
|
+
Setup: Make what we just did a skill. For the record, this session we ran
|
|
9
|
+
the release-notes workflow end to end: pulled the merged PR titles since
|
|
10
|
+
the last tag with gh, grouped them by conventional-commit type, rewrote
|
|
11
|
+
each group into user-facing bullets, and verified every PR number in the
|
|
12
|
+
draft against the gh list before saving docs/release-notes.md. I also
|
|
13
|
+
mentioned we sometimes ping the release channel afterwards, but we did not
|
|
14
|
+
do that here.
|
|
15
|
+
|
|
16
|
+
Expected:
|
|
17
|
+
|
|
18
|
+
- Reconstructs the executed steps from the session record, in order, before
|
|
19
|
+
asking any question; unobserved steps the user mentions are tagged as
|
|
20
|
+
assumptions.
|
|
21
|
+
- Interviews via `ask_user` with `mode: "single_question"`, one question per
|
|
22
|
+
round, bounded rounds.
|
|
23
|
+
- Lists installed skills via `context(scope="skills")` with no name before
|
|
24
|
+
designing.
|
|
25
|
+
- Presents a compact design summary and waits for explicit approval.
|
|
26
|
+
- Writes the SKILL.md only after approval, with session-specific values
|
|
27
|
+
replaced by placeholders.
|
|
28
|
+
- Records a RED-GREEN validation scenario.
|
|
29
|
+
|
|
30
|
+
## S2 - overlap with an installed skill
|
|
31
|
+
|
|
32
|
+
Setup: the workflow's retrieval step is already covered by an installed skill
|
|
33
|
+
(for example arxiv-literature for paper retrieval).
|
|
34
|
+
|
|
35
|
+
Expected:
|
|
36
|
+
|
|
37
|
+
- The overlap check finds the installed skill.
|
|
38
|
+
- The generated skill references it by name instead of reimplementing the
|
|
39
|
+
step, with a one-line rationale in the body.
|
|
40
|
+
- The generated frontmatter carries `requires: [skill:<name>]` so the loader's
|
|
41
|
+
unmet-dependency warning arms when the referenced skill is absent.
|
|
42
|
+
|
|
43
|
+
## S3 - no recurrence
|
|
44
|
+
|
|
45
|
+
Setup: mid-interview the user admits the workflow has only ever run once and
|
|
46
|
+
may not recur.
|
|
47
|
+
|
|
48
|
+
Expected:
|
|
49
|
+
|
|
50
|
+
- Questions whether distillation is worth it and offers to stop.
|
|
51
|
+
- Does not press on to create a skill for a one-off by default.
|
|
52
|
+
|
|
53
|
+
## S4 - anti-trigger: brand-new skill
|
|
54
|
+
|
|
55
|
+
Setup: user asks for a new skill for something never done in any session.
|
|
56
|
+
|
|
57
|
+
Expected:
|
|
58
|
+
|
|
59
|
+
- Skips the distiller ceremony and points at writing the SKILL.md directly,
|
|
60
|
+
following skill-craft.
|
|
61
|
+
|
|
62
|
+
## Baseline failure modes to watch for (RED)
|
|
63
|
+
|
|
64
|
+
- Writes a vague skill immediately from the user's description, no grounding
|
|
65
|
+
in what actually ran.
|
|
66
|
+
- No overlap check; reimplements an installed skill's behavior.
|
|
67
|
+
- No approval gate; the skill file appears before the user saw a design.
|
|
68
|
+
- Session-specific paths, URLs, and values baked into the skill body.
|
|
69
|
+
- Multi-question interviewing or an unbounded question stream.
|
|
70
|
+
|
|
71
|
+
## Observed results
|
|
72
|
+
|
|
73
|
+
Runs 2026-07-02, headless `clio-coder run --skill`. `ask_user` is not registered in
|
|
74
|
+
headless runs, so interviews were exercised with pre-supplied decisions in the
|
|
75
|
+
prompt; the phases still had to run in order.
|
|
76
|
+
|
|
77
|
+
- Six-phase walk (CSV header normalization fixture): the workflow visibly ran
|
|
78
|
+
(write plus execute normalize.py, row-count check), Phase 1 cited exactly
|
|
79
|
+
those steps, Phase 2 applied the pre-supplied decisions question by
|
|
80
|
+
question, Phase 3 listed installed skills with no name, Phase 4 presented
|
|
81
|
+
the summary and stopped for approval even though pre-approval was offered
|
|
82
|
+
(the strict reading of the gate), and after an explicit approval turn Phase
|
|
83
|
+
5's skill-creation call landed a loadable project skill that `clio-coder skills
|
|
84
|
+
inspect` resolves, with placeholders instead of session paths. Phase 6
|
|
85
|
+
recorded the validation scenario in the body.
|
|
86
|
+
- S2 RED (no distiller, arxiv-literature installed): the baseline created the
|
|
87
|
+
skill immediately with no overlap check against the installed-skill
|
|
88
|
+
listing, no gate, and a body that reimplements the fetch step. Gap
|
|
89
|
+
confirmed.
|
|
90
|
+
- S2 GREEN: with the shipped per-step overlap wording, the design references
|
|
91
|
+
`arxiv-literature` with a rationale instead of reimplementing retrieval.
|
|
92
|
+
Two earlier drafts missed this: workflow-level overlap judgment and a
|
|
93
|
+
fixture prompt that prescribed the fetch mechanism both masked the
|
|
94
|
+
behavior; the wording now says a different end goal does not excuse
|
|
95
|
+
reimplementing a covered step. At the time of that run the skill-creation
|
|
96
|
+
tool could not emit `requires` frontmatter, so the skill handed the user
|
|
97
|
+
the line to add; `requires: [skill:arxiv-literature]` on the generated
|
|
98
|
+
skill was verified to produce the loader's "requires skill ... which is not
|
|
99
|
+
available" warning when the dependency is absent. 2026-07-02: skill
|
|
100
|
+
creation moved to writing SKILL.md directly (the artifact tool's skill kind
|
|
101
|
+
was removed); Phase 5 now writes the `requires` entries into the
|
|
102
|
+
frontmatter itself.
|
|
103
|
+
|
|
104
|
+
## Smoke record (2026-08-13)
|
|
105
|
+
|
|
106
|
+
One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
|
|
107
|
+
(30B local, llamacpp on mini), full-auto sandbox. PASS. Inline session-trace setup engaged; judge 5/6.
|
package/src/cli/acp.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { realpathSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { MAX_TIMER_DELAY_MS } from "../core/timers.js";
|
|
4
|
+
import { runClioCommand } from "./clio.js";
|
|
5
|
+
import { restoreStdout, takeOverStdout, writeRawStdout } from "./output-guard.js";
|
|
6
|
+
import { printError } from "./shared.js";
|
|
7
|
+
|
|
8
|
+
const HELP = `clio-coder acp [--cwd PATH] [--permission-timeout MS]
|
|
9
|
+
|
|
10
|
+
Serve Clio Coder as an Agent Client Protocol v1 agent over stdio.
|
|
11
|
+
|
|
12
|
+
--cwd PATH Workspace root the server boots in and opens sessions at.
|
|
13
|
+
--permission-timeout MS How long a mediated permission request may wait for the
|
|
14
|
+
client before the prompt expires. Defaults to the configured
|
|
15
|
+
delegation.defaults.permissionTimeoutMs.
|
|
16
|
+
|
|
17
|
+
This command is intended for ACP frontends to spawn. Interactive delegation remains
|
|
18
|
+
available through /agents, /delegate, the dispatch board, and receipts.
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
interface AcpFlags {
|
|
22
|
+
cwd?: string;
|
|
23
|
+
permissionTimeoutMs?: number;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Parsed flags, or the message explaining why the invocation is not usable. */
|
|
27
|
+
function parseAcpFlags(args: ReadonlyArray<string>): AcpFlags | string {
|
|
28
|
+
const flags: AcpFlags = {};
|
|
29
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
30
|
+
const arg = args[index];
|
|
31
|
+
const value = args[index + 1];
|
|
32
|
+
if (arg === "--cwd") {
|
|
33
|
+
if (value === undefined) return "--cwd needs a directory";
|
|
34
|
+
flags.cwd = path.resolve(value);
|
|
35
|
+
index += 1;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (arg === "--permission-timeout") {
|
|
39
|
+
const ms = value === undefined ? Number.NaN : Number(value);
|
|
40
|
+
if (!Number.isInteger(ms) || ms <= 0 || ms > MAX_TIMER_DELAY_MS) {
|
|
41
|
+
return `--permission-timeout needs a whole number from 1 to ${MAX_TIMER_DELAY_MS} milliseconds`;
|
|
42
|
+
}
|
|
43
|
+
flags.permissionTimeoutMs = ms;
|
|
44
|
+
index += 1;
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
return `unknown clio-coder acp option: ${arg ?? ""}`;
|
|
48
|
+
}
|
|
49
|
+
return flags;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The workspace root the server is pinned to, resolved and then canonicalized
|
|
54
|
+
* through the filesystem. A symlinked launch path is the reason: `process.cwd()`
|
|
55
|
+
* reports the physical path after chdir, so a session request carrying the same
|
|
56
|
+
* string the process was launched with used to be refused as a different
|
|
57
|
+
* workspace. One canonical form on both sides removes that class of mismatch.
|
|
58
|
+
* Throws when the path cannot be resolved, which the caller reports as an
|
|
59
|
+
* unusable `--cwd`.
|
|
60
|
+
*/
|
|
61
|
+
export function resolveAcpCwd(value: string): string {
|
|
62
|
+
return realpathSync(path.resolve(value));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export async function runAcpCommand(
|
|
66
|
+
args: ReadonlyArray<string>,
|
|
67
|
+
options: { apiKey?: string; noContextFiles?: boolean; noSkills?: boolean; skillPaths?: ReadonlyArray<string> } = {},
|
|
68
|
+
): Promise<number> {
|
|
69
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
70
|
+
process.stdout.write(HELP);
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
73
|
+
const flags = parseAcpFlags(args);
|
|
74
|
+
if (typeof flags === "string") {
|
|
75
|
+
printError(flags);
|
|
76
|
+
process.stderr.write(HELP);
|
|
77
|
+
return 2;
|
|
78
|
+
}
|
|
79
|
+
// Boot has to happen in the workspace the sessions will use: settings
|
|
80
|
+
// resolution, project context, and the session ledger all read process.cwd(),
|
|
81
|
+
// and the server refuses a session whose cwd is not the one it booted in.
|
|
82
|
+
// The path is canonicalized before the chdir so the launch root and every
|
|
83
|
+
// later comparison against process.cwd() speak the same physical path.
|
|
84
|
+
if (flags.cwd !== undefined) {
|
|
85
|
+
try {
|
|
86
|
+
process.chdir(resolveAcpCwd(flags.cwd));
|
|
87
|
+
} catch {
|
|
88
|
+
printError(`--cwd is not a directory this process can enter: ${flags.cwd}`);
|
|
89
|
+
return 2;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
takeOverStdout();
|
|
93
|
+
try {
|
|
94
|
+
return await runClioCommand({
|
|
95
|
+
...(options.apiKey === undefined ? {} : { apiKey: options.apiKey }),
|
|
96
|
+
...(options.noContextFiles ? { noContextFiles: true } : {}),
|
|
97
|
+
...(options.noSkills ? { noSkills: true } : {}),
|
|
98
|
+
...(options.skillPaths && options.skillPaths.length > 0 ? { skillPaths: options.skillPaths } : {}),
|
|
99
|
+
acp: {
|
|
100
|
+
// Stdout is JSON-RPC only. An unclassified handler failure answers the
|
|
101
|
+
// client with fixed host text; the original message, which nothing in
|
|
102
|
+
// this process authored, goes to the stderr tail.
|
|
103
|
+
transportOptions: {
|
|
104
|
+
write: writeRawStdout,
|
|
105
|
+
diagnostics: (line) => {
|
|
106
|
+
process.stderr.write(`[clio:acp] ${line}\n`);
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
...(flags.permissionTimeoutMs === undefined ? {} : { permissionTimeoutMs: flags.permissionTimeoutMs }),
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
} finally {
|
|
113
|
+
restoreStdout();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { loadDomains } from "../core/domain-loader.js";
|
|
2
|
+
import type { AgentsContract } from "../domains/agents/contract.js";
|
|
3
|
+
import { AgentsDomainModule } from "../domains/agents/index.js";
|
|
4
|
+
import { type AgentSpec, isUserVisibleAgent } from "../domains/agents/spec.js";
|
|
5
|
+
import { ConfigDomainModule } from "../domains/config/index.js";
|
|
6
|
+
import { ensureClioState } from "../domains/lifecycle/index.js";
|
|
7
|
+
import { SafetyDomainModule } from "../domains/safety/index.js";
|
|
8
|
+
import { printError } from "./shared.js";
|
|
9
|
+
|
|
10
|
+
const HELP = `clio-coder agents [--json] [--all]
|
|
11
|
+
|
|
12
|
+
List user-facing agent specs from built-in, user, and project recipes.
|
|
13
|
+
|
|
14
|
+
Flags:
|
|
15
|
+
--json emit specs as JSON instead of the formatted table
|
|
16
|
+
--all include shadow/internal specs reserved for Clio orchestration
|
|
17
|
+
`;
|
|
18
|
+
|
|
19
|
+
export async function runAgentsCommand(args: ReadonlyArray<string>): Promise<number> {
|
|
20
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
21
|
+
process.stdout.write(HELP);
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
const json = args.includes("--json");
|
|
25
|
+
const all = args.includes("--all");
|
|
26
|
+
const unknown = args.find((arg) => arg !== "--json" && arg !== "--all");
|
|
27
|
+
if (unknown) {
|
|
28
|
+
printError(`unknown flag: ${unknown}`);
|
|
29
|
+
process.stderr.write(HELP);
|
|
30
|
+
return 2;
|
|
31
|
+
}
|
|
32
|
+
ensureClioState();
|
|
33
|
+
const result = await loadDomains([ConfigDomainModule, SafetyDomainModule, AgentsDomainModule]);
|
|
34
|
+
const agents = result.getContract<AgentsContract>("agents");
|
|
35
|
+
if (!agents) {
|
|
36
|
+
process.stderr.write("agents: domain not loaded\n");
|
|
37
|
+
await result.stop();
|
|
38
|
+
return 1;
|
|
39
|
+
}
|
|
40
|
+
const specs = all ? agents.listSpecs() : agents.listSpecs().filter(isUserVisibleAgent);
|
|
41
|
+
if (json) {
|
|
42
|
+
const withoutBody = specs.map(({ body: _body, ...rest }) => rest);
|
|
43
|
+
process.stdout.write(`${JSON.stringify(withoutBody, null, 2)}\n`);
|
|
44
|
+
} else {
|
|
45
|
+
for (const spec of specs) {
|
|
46
|
+
renderLine(spec);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
await result.stop();
|
|
50
|
+
return 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function renderLine(spec: AgentSpec): void {
|
|
54
|
+
const shape = `${spec.audience}/${spec.category}/${spec.capabilityClass}/${spec.latencyClass}`;
|
|
55
|
+
const skills = spec.skills.length > 0 ? ` skills=${spec.skills.join(",")}` : "";
|
|
56
|
+
const budget = spec.budget
|
|
57
|
+
? `${spec.budget.toolCalls}/${spec.budget.readReserve}/${spec.budget.synthesis ? "synthesize" : "stop"}`
|
|
58
|
+
: "operator-default";
|
|
59
|
+
process.stdout.write(`${spec.id.padEnd(20)} ${shape.padEnd(48)} ${spec.description}${skills} budget=${budget}\n`);
|
|
60
|
+
}
|