@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,336 @@
|
|
|
1
|
+
import { isAbsolute, relative } from "node:path";
|
|
2
|
+
import { BusChannels } from "../../core/bus-events.js";
|
|
3
|
+
import { detectClioCoderRepo } from "../../core/clio-repo.js";
|
|
4
|
+
import type { ClioSettings } from "../../core/config.js";
|
|
5
|
+
import type { DomainBundle, DomainContext, DomainExtension } from "../../core/domain-loader.js";
|
|
6
|
+
import { renderFleetPromptSection } from "../agents/catalog.js";
|
|
7
|
+
import type { AgentsContract } from "../agents/contract.js";
|
|
8
|
+
import type { ConfigContract } from "../config/contract.js";
|
|
9
|
+
import {
|
|
10
|
+
type ContextContract,
|
|
11
|
+
loadOperatorProfile,
|
|
12
|
+
loadProjectRules,
|
|
13
|
+
type ProjectPromptContext,
|
|
14
|
+
renderOperatorProfile,
|
|
15
|
+
selectActiveRules,
|
|
16
|
+
} from "../context/index.js";
|
|
17
|
+
import { compile, compileWorker, type RenderedPromptFragment } from "./compiler.js";
|
|
18
|
+
import type { CompileSessionPromptInput, CompileWorkerPromptInput, PromptsContract } from "./contract.js";
|
|
19
|
+
import { type FragmentTable, loadFragments } from "./fragment-loader.js";
|
|
20
|
+
import { sha256 } from "./hash.js";
|
|
21
|
+
import { classifyProjectPreload, type ProjectPreloadClass } from "./preload.js";
|
|
22
|
+
|
|
23
|
+
export interface PromptsBundleOptions {
|
|
24
|
+
/** When true, the dynamic context.files fragment renders the empty string. */
|
|
25
|
+
noContextFiles?: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const CLIO_REPO_AWARENESS_ID = "context.clio-repo-awareness";
|
|
29
|
+
const WORKSPACE_ROOT_ID = "context.workspace-root";
|
|
30
|
+
|
|
31
|
+
export function createPromptsBundle(
|
|
32
|
+
context: DomainContext,
|
|
33
|
+
options: PromptsBundleOptions = {},
|
|
34
|
+
): DomainBundle<PromptsContract> {
|
|
35
|
+
let table: FragmentTable | null = null;
|
|
36
|
+
const suppressContextFiles = options.noContextFiles === true;
|
|
37
|
+
|
|
38
|
+
function config(): ConfigContract | undefined {
|
|
39
|
+
return context.getContract<ConfigContract>("config");
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function contextDomain(): ContextContract | undefined {
|
|
43
|
+
return context.getContract<ContextContract>("context");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function agentsDomain(): AgentsContract | undefined {
|
|
47
|
+
return context.getContract<AgentsContract>("agents");
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The roster is compiled into the prompt, so a session that starts before
|
|
52
|
+
* the agents domain is available renders no Fleet section rather than a
|
|
53
|
+
* partial one that would churn the prompt prefix on the next compile.
|
|
54
|
+
*/
|
|
55
|
+
function fleetRoster(): string {
|
|
56
|
+
const specs = agentsDomain()?.listSpecs() ?? [];
|
|
57
|
+
return specs.length > 0 ? renderFleetPromptSection(specs) : "";
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function reload(): void {
|
|
61
|
+
try {
|
|
62
|
+
table = loadFragments();
|
|
63
|
+
} catch (err) {
|
|
64
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
65
|
+
process.stderr.write(`[clio:prompts] reload failed: ${msg}\n`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function diffTouchesFragments(paths: ReadonlyArray<string>): boolean {
|
|
70
|
+
for (const p of paths) {
|
|
71
|
+
if (p.includes("prompt") || p.includes("fragment")) return true;
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const contract: PromptsContract = {
|
|
77
|
+
async compileSessionPrompt(input: CompileSessionPromptInput) {
|
|
78
|
+
if (!table) throw new Error("prompts domain not started");
|
|
79
|
+
if (table.byId.size === 0) {
|
|
80
|
+
throw new Error("prompts: no fragments loaded, check startup logs");
|
|
81
|
+
}
|
|
82
|
+
const configContract = config();
|
|
83
|
+
const settings: Readonly<ClioSettings> | undefined = configContract?.get();
|
|
84
|
+
const safety = input.autonomy ?? settings?.autonomy ?? "auto-edit";
|
|
85
|
+
const cwd = input.cwd ?? process.cwd();
|
|
86
|
+
let contextFiles = "";
|
|
87
|
+
let projectPreload: ProjectPreloadClass | null = null;
|
|
88
|
+
let projectHandbookFiles: string[] = [];
|
|
89
|
+
if (!suppressContextFiles) {
|
|
90
|
+
const projectContext = contextDomain()?.renderPromptContext(cwd);
|
|
91
|
+
contextFiles = projectContext
|
|
92
|
+
? selectProjectContext(projectContext, input.sessionInputs.providerSupportsTools ?? null)
|
|
93
|
+
: "";
|
|
94
|
+
if (projectContext) {
|
|
95
|
+
projectPreload = classifyProjectPreload({
|
|
96
|
+
hasClioMd: projectContext.clioMd !== null,
|
|
97
|
+
text: projectContext.text,
|
|
98
|
+
});
|
|
99
|
+
projectHandbookFiles = projectContext.handbookFiles;
|
|
100
|
+
}
|
|
101
|
+
for (const warning of projectContext?.warnings ?? []) process.stderr.write(`${warning}\n`);
|
|
102
|
+
}
|
|
103
|
+
const roster = fleetRoster();
|
|
104
|
+
const sessionInputs = {
|
|
105
|
+
...input.sessionInputs,
|
|
106
|
+
...(contextFiles.length > 0 ? { contextFiles } : {}),
|
|
107
|
+
...(roster.length > 0 ? { fleetRoster: roster } : {}),
|
|
108
|
+
};
|
|
109
|
+
const compiled = compile(table, {
|
|
110
|
+
identity: "identity.clio",
|
|
111
|
+
operatingContract: "operating.contract",
|
|
112
|
+
safety: `safety.${safety}`,
|
|
113
|
+
sessionInputs,
|
|
114
|
+
additionalFragments: [
|
|
115
|
+
...workspaceRootFragment(cwd),
|
|
116
|
+
...clioRepoAwarenessFragments(cwd),
|
|
117
|
+
...customizationFragments(cwd, input.workingContextPaths ?? []).fragments,
|
|
118
|
+
],
|
|
119
|
+
});
|
|
120
|
+
return { ...compiled, projectPreload, projectHandbookFiles };
|
|
121
|
+
},
|
|
122
|
+
async compileWorkerPrompt(input: CompileWorkerPromptInput) {
|
|
123
|
+
if (!table) throw new Error("prompts domain not started");
|
|
124
|
+
if (table.byId.size === 0) {
|
|
125
|
+
throw new Error("prompts: no fragments loaded, check startup logs");
|
|
126
|
+
}
|
|
127
|
+
const { cwd: inputCwd, workingContextPaths, ...workerInputs } = input;
|
|
128
|
+
const cwd = inputCwd ?? process.cwd();
|
|
129
|
+
const customization = customizationFragments(cwd, workingContextPaths ?? []);
|
|
130
|
+
const compiled = compileWorker(table, {
|
|
131
|
+
...workerInputs,
|
|
132
|
+
additionalFragments: customization.fragments,
|
|
133
|
+
});
|
|
134
|
+
return {
|
|
135
|
+
...compiled,
|
|
136
|
+
rulesApplied: customization.activeRuleIds,
|
|
137
|
+
operatorProfileApplied: customization.operatorProfileApplied,
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
reload,
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
let unsubscribeHotReload: (() => void) | null = null;
|
|
144
|
+
const extension: DomainExtension = {
|
|
145
|
+
async start() {
|
|
146
|
+
try {
|
|
147
|
+
table = loadFragments();
|
|
148
|
+
} catch (err) {
|
|
149
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
150
|
+
process.stderr.write(`[clio:prompts] initial load failed: ${msg}\n`);
|
|
151
|
+
table = { byId: new Map(), rootDir: "" };
|
|
152
|
+
}
|
|
153
|
+
unsubscribeHotReload = context.bus.on(BusChannels.ConfigHotReload, (payload: unknown) => {
|
|
154
|
+
const diff = (payload as { diff?: { hotReload?: string[] } } | undefined)?.diff;
|
|
155
|
+
const paths = diff?.hotReload ?? [];
|
|
156
|
+
if (!diffTouchesFragments(paths)) return;
|
|
157
|
+
reload();
|
|
158
|
+
});
|
|
159
|
+
},
|
|
160
|
+
async stop() {
|
|
161
|
+
unsubscribeHotReload?.();
|
|
162
|
+
unsubscribeHotReload = null;
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
return { extension, contract };
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/** Fragments plus the provenance of which customization sources actually rendered. */
|
|
170
|
+
export interface CustomizationFragmentsResult {
|
|
171
|
+
fragments: RenderedPromptFragment[];
|
|
172
|
+
/** Rule ids (posix path under `.clio-coder/rules`) selected into `fragments`, in load order. */
|
|
173
|
+
activeRuleIds: string[];
|
|
174
|
+
/** Whether the operator profile rendered non-empty content into `fragments`. */
|
|
175
|
+
operatorProfileApplied: boolean;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Inline prompt fragments for the project's customization surfaces. Unconditional
|
|
180
|
+
* `.clio-coder/rules/**` rules load with project context here; path-scoped rules stay
|
|
181
|
+
* out of the base prompt and activate through the rule loader once a matching
|
|
182
|
+
* file is in working context. The operator profile renders as one capped
|
|
183
|
+
* section. Both are deterministic (rules sort by id), so a local model's cached
|
|
184
|
+
* prompt prefix stays stable. Best-effort: a load failure injects nothing.
|
|
185
|
+
* Callers that seal receipt provenance (dispatch) read `activeRuleIds` and
|
|
186
|
+
* `operatorProfileApplied` off the result rather than re-deriving them, so the
|
|
187
|
+
* receipt can never disagree with what actually rendered.
|
|
188
|
+
*/
|
|
189
|
+
export function customizationFragments(
|
|
190
|
+
cwd: string,
|
|
191
|
+
workingContextPaths: ReadonlyArray<string>,
|
|
192
|
+
): CustomizationFragmentsResult {
|
|
193
|
+
const fragments: RenderedPromptFragment[] = [];
|
|
194
|
+
let activeRuleIds: string[] = [];
|
|
195
|
+
let operatorProfileApplied = false;
|
|
196
|
+
try {
|
|
197
|
+
const loaded = loadProjectRules(cwd);
|
|
198
|
+
const active = selectActiveRules(loaded.rules, normalizeWorkingContextPaths(cwd, workingContextPaths));
|
|
199
|
+
if (active.length > 0) {
|
|
200
|
+
const body = ["# Project rules", ...active.map((rule) => rule.body)].join("\n\n");
|
|
201
|
+
fragments.push({
|
|
202
|
+
id: "context.project-rules",
|
|
203
|
+
relPath: "inline/project-rules",
|
|
204
|
+
body,
|
|
205
|
+
contentHash: sha256(body),
|
|
206
|
+
dynamic: true,
|
|
207
|
+
});
|
|
208
|
+
activeRuleIds = active.map((rule) => rule.id);
|
|
209
|
+
}
|
|
210
|
+
} catch {
|
|
211
|
+
// Project rules are best-effort; a load failure must not block compilation.
|
|
212
|
+
}
|
|
213
|
+
try {
|
|
214
|
+
const profile = loadOperatorProfile(cwd);
|
|
215
|
+
const rendered = renderOperatorProfile(profile.profile);
|
|
216
|
+
if (rendered.text.length > 0) {
|
|
217
|
+
fragments.push({
|
|
218
|
+
id: "context.operator-profile",
|
|
219
|
+
relPath: "inline/operator-profile",
|
|
220
|
+
body: rendered.text,
|
|
221
|
+
contentHash: sha256(rendered.text),
|
|
222
|
+
dynamic: true,
|
|
223
|
+
});
|
|
224
|
+
operatorProfileApplied = true;
|
|
225
|
+
}
|
|
226
|
+
} catch {
|
|
227
|
+
// The operator profile is best-effort; a load failure injects nothing.
|
|
228
|
+
}
|
|
229
|
+
return { fragments, activeRuleIds, operatorProfileApplied };
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
function normalizeWorkingContextPaths(cwd: string, paths: ReadonlyArray<string>): string[] {
|
|
233
|
+
const normalized = new Set<string>();
|
|
234
|
+
for (const filePath of paths) {
|
|
235
|
+
const rel = isAbsolute(filePath) ? relative(cwd, filePath) : filePath;
|
|
236
|
+
if (!rel || rel.startsWith("..") || isAbsolute(rel)) continue;
|
|
237
|
+
normalized.add(rel.replace(/\\/g, "/"));
|
|
238
|
+
}
|
|
239
|
+
return [...normalized].sort();
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* The absolute workspace root, stated once. Tools take paths and working
|
|
244
|
+
* directories, and a model that was never told the root guesses one: an
|
|
245
|
+
* observed run passed the container convention `/workspace` to bash and had
|
|
246
|
+
* the call blocked as a workspace escape. Naming the real root removes the
|
|
247
|
+
* guess for every tool at once, which no single tool description can do.
|
|
248
|
+
*/
|
|
249
|
+
function workspaceRootFragment(cwd: string): RenderedPromptFragment[] {
|
|
250
|
+
const body = [
|
|
251
|
+
"# Workspace",
|
|
252
|
+
`Absolute workspace root: ${cwd}`,
|
|
253
|
+
"Relative paths resolve here. Do not invent a root such as /workspace or /repo, and do not pass a working directory unless the command must run in a subdirectory of this root.",
|
|
254
|
+
].join("\n");
|
|
255
|
+
return [
|
|
256
|
+
{
|
|
257
|
+
id: WORKSPACE_ROOT_ID,
|
|
258
|
+
relPath: "inline/workspace-root",
|
|
259
|
+
body,
|
|
260
|
+
contentHash: sha256(body),
|
|
261
|
+
dynamic: true,
|
|
262
|
+
},
|
|
263
|
+
];
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
function clioRepoAwarenessFragments(cwd: string): RenderedPromptFragment[] {
|
|
267
|
+
const awareness = detectClioCoderRepo(cwd);
|
|
268
|
+
if (!awareness.isClioCoderRepo || !awareness.repoRoot) return [];
|
|
269
|
+
const body = [
|
|
270
|
+
"# Clio Source Tree",
|
|
271
|
+
"This workspace is Clio Coder's own source tree.",
|
|
272
|
+
"When running inside this repo, Clio can modify her own TUI, skills, agents, tools, prompts, context/bootstrap, and harness as ordinary local source work when the user asks.",
|
|
273
|
+
"Shared contribution/publishing/push/PR/release requires explicit user intent and normal Git/GitHub etiquette. Do not imply autonomous publishing.",
|
|
274
|
+
].join("\n");
|
|
275
|
+
return [
|
|
276
|
+
{
|
|
277
|
+
id: CLIO_REPO_AWARENESS_ID,
|
|
278
|
+
relPath: "inline/clio-repo-awareness",
|
|
279
|
+
body,
|
|
280
|
+
contentHash: sha256(body),
|
|
281
|
+
dynamic: true,
|
|
282
|
+
},
|
|
283
|
+
];
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
function projectTypeFromPromptContext(text: string): string | null {
|
|
287
|
+
const match = /<project-type>([^<]+)<\/project-type>/.exec(text);
|
|
288
|
+
const value = match?.[1]?.trim();
|
|
289
|
+
return value && value !== "unknown" ? value : null;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
function hasCodewiki(text: string): boolean {
|
|
293
|
+
return text.includes("<codewiki>");
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
function wikiAvailabilityFromPromptContext(text: string): string | null {
|
|
297
|
+
const match = /<wiki>([^<]+)<\/wiki>/.exec(text);
|
|
298
|
+
const value = match?.[1]?.trim();
|
|
299
|
+
return value && value.length > 0 ? value : null;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
function renderProjectSynopsis(context: ProjectPromptContext, providerSupportsTools: boolean | null): string {
|
|
303
|
+
const projectType = projectTypeFromPromptContext(context.text);
|
|
304
|
+
const wiki = wikiAvailabilityFromPromptContext(context.text);
|
|
305
|
+
const lines = ["<project-synopsis>"];
|
|
306
|
+
if (projectType) lines.push(`Language: ${projectType}`);
|
|
307
|
+
if (context.clioMd) {
|
|
308
|
+
lines.push(`Project: ${context.clioMd.projectName}`);
|
|
309
|
+
lines.push(
|
|
310
|
+
"Project handbook: available; compact synopsis only because the effective layers are too large for automatic preload.",
|
|
311
|
+
);
|
|
312
|
+
}
|
|
313
|
+
if (hasCodewiki(context.text)) lines.push("Codewiki: available via code_nav.");
|
|
314
|
+
if (wiki) lines.push(`Wiki: ${wiki}`);
|
|
315
|
+
if (providerSupportsTools === false) {
|
|
316
|
+
lines.push("Tools: unavailable for this target; use this synopsis only as fallback context.");
|
|
317
|
+
} else {
|
|
318
|
+
lines.push('Retrieve exact repository facts with context(scope="workspace"), code_nav, grep, and read.');
|
|
319
|
+
}
|
|
320
|
+
lines.push("</project-synopsis>");
|
|
321
|
+
return lines.join("\n");
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Project context is selected once per session compile: the full effective-handbook
|
|
326
|
+
* preload when it is small enough, a compact synopsis otherwise. No per-turn
|
|
327
|
+
* selection — the session prompt is stable for the session's lifetime. The
|
|
328
|
+
* cliff itself lives in prompts/preload.ts so reporting surfaces classify
|
|
329
|
+
* with the same rule.
|
|
330
|
+
*/
|
|
331
|
+
function selectProjectContext(context: ProjectPromptContext, providerSupportsTools: boolean | null): string {
|
|
332
|
+
const preload = classifyProjectPreload({ hasClioMd: context.clioMd !== null, text: context.text });
|
|
333
|
+
if (preload.mode === "none") return "";
|
|
334
|
+
if (preload.mode === "full") return context.text.trim();
|
|
335
|
+
return renderProjectSynopsis(context, providerSupportsTools);
|
|
336
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import yaml from "yaml";
|
|
4
|
+
import { resolvePackageRoot } from "../../core/package-root.js";
|
|
5
|
+
import { sha256 } from "./hash.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A single prompt fragment loaded from disk, with parsed frontmatter plus the
|
|
9
|
+
* raw content hash used to seed the prompts domain's reproducibility contract.
|
|
10
|
+
*/
|
|
11
|
+
export interface LoadedFragment {
|
|
12
|
+
path: string;
|
|
13
|
+
relPath: string;
|
|
14
|
+
id: string;
|
|
15
|
+
version: number;
|
|
16
|
+
description: string;
|
|
17
|
+
dynamic: boolean;
|
|
18
|
+
body: string;
|
|
19
|
+
contentHash: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface FragmentTable {
|
|
23
|
+
byId: ReadonlyMap<string, LoadedFragment>;
|
|
24
|
+
rootDir: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface LoadFragmentsOptions {
|
|
28
|
+
rootDir?: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const frontmatterRegex = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/;
|
|
32
|
+
const fragmentIdRegex = /^[a-z0-9-]+(?:\.[a-z0-9-]+)+$/;
|
|
33
|
+
|
|
34
|
+
function defaultRootDir(): string {
|
|
35
|
+
return path.join(resolvePackageRoot(), "src", "domains", "prompts", "fragments");
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function walk(root: string): string[] {
|
|
39
|
+
const out: string[] = [];
|
|
40
|
+
let entries: import("node:fs").Dirent[];
|
|
41
|
+
try {
|
|
42
|
+
entries = readdirSync(root, { withFileTypes: true });
|
|
43
|
+
} catch {
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
for (const entry of entries) {
|
|
47
|
+
const full = path.join(root, entry.name);
|
|
48
|
+
if (entry.isDirectory()) {
|
|
49
|
+
out.push(...walk(full));
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (entry.isFile() && entry.name.endsWith(".md")) {
|
|
53
|
+
out.push(full);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return out.sort((left, right) => left.localeCompare(right));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function parseFragment(filePath: string, rootDir: string): LoadedFragment {
|
|
60
|
+
const raw = readFileSync(filePath, "utf8");
|
|
61
|
+
// Normalize to POSIX forward slashes so staticCompositionHash is identical
|
|
62
|
+
// across Windows and POSIX hosts.
|
|
63
|
+
const rawRel = path.relative(rootDir, filePath);
|
|
64
|
+
const relPath = rawRel.split(path.sep).join("/");
|
|
65
|
+
const match = raw.match(frontmatterRegex);
|
|
66
|
+
if (!match) {
|
|
67
|
+
throw new Error(`fragment-loader: ${relPath}: missing or malformed YAML frontmatter`);
|
|
68
|
+
}
|
|
69
|
+
const frontmatterText = match[1] ?? "";
|
|
70
|
+
const body = match[2] ?? "";
|
|
71
|
+
|
|
72
|
+
let parsed: unknown;
|
|
73
|
+
try {
|
|
74
|
+
parsed = yaml.parse(frontmatterText);
|
|
75
|
+
} catch (err) {
|
|
76
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
77
|
+
throw new Error(`fragment-loader: ${relPath}: invalid YAML frontmatter (${reason})`);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
81
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter must be a YAML object`);
|
|
82
|
+
}
|
|
83
|
+
const fm = parsed as Record<string, unknown>;
|
|
84
|
+
|
|
85
|
+
const id = fm.id;
|
|
86
|
+
if (typeof id !== "string" || !fragmentIdRegex.test(id)) {
|
|
87
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter.id must be a dot-separated namespace`);
|
|
88
|
+
}
|
|
89
|
+
const version = fm.version;
|
|
90
|
+
if (version !== 1) {
|
|
91
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter.version must be 1`);
|
|
92
|
+
}
|
|
93
|
+
const description = fm.description;
|
|
94
|
+
if (typeof description !== "string" || description.trim() === "") {
|
|
95
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter.description must be a non-empty string`);
|
|
96
|
+
}
|
|
97
|
+
const dynamicRaw = fm.dynamic;
|
|
98
|
+
if (dynamicRaw !== undefined && typeof dynamicRaw !== "boolean") {
|
|
99
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter.dynamic must be a boolean when present`);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
path: filePath,
|
|
104
|
+
relPath,
|
|
105
|
+
id,
|
|
106
|
+
version,
|
|
107
|
+
description,
|
|
108
|
+
dynamic: dynamicRaw === true,
|
|
109
|
+
body,
|
|
110
|
+
contentHash: sha256(raw),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Walk `src/domains/prompts/fragments/**\/*.md` (relative to the package root
|
|
116
|
+
* or the supplied `rootDir`) and return a fragment table keyed by id.
|
|
117
|
+
*
|
|
118
|
+
* Duplicate ids throw; malformed or policy-violating fragments throw with a
|
|
119
|
+
* relPath-qualified error so that the prompts compiler never receives a
|
|
120
|
+
* partially loaded table.
|
|
121
|
+
*/
|
|
122
|
+
export function loadFragments(options?: string | LoadFragmentsOptions): FragmentTable {
|
|
123
|
+
const rootDir = typeof options === "string" ? options : options?.rootDir;
|
|
124
|
+
const resolvedRoot = rootDir ? path.resolve(rootDir) : defaultRootDir();
|
|
125
|
+
const files = walk(resolvedRoot);
|
|
126
|
+
const byId = new Map<string, LoadedFragment>();
|
|
127
|
+
for (const file of files) {
|
|
128
|
+
const fragment = parseFragment(file, resolvedRoot);
|
|
129
|
+
const existing = byId.get(fragment.id);
|
|
130
|
+
if (existing) {
|
|
131
|
+
throw new Error(
|
|
132
|
+
`fragment-loader: duplicate fragment id "${fragment.id}" in ${existing.relPath} and ${fragment.relPath}`,
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
byId.set(fragment.id, fragment);
|
|
136
|
+
}
|
|
137
|
+
return { byId, rootDir: resolvedRoot };
|
|
138
|
+
}
|
|
@@ -12,15 +12,14 @@ science (NSF-funded, iowarp.ai). CLIO stands for Context Layer for
|
|
|
12
12
|
Input/Output. You are the first female agentic coder, named for the
|
|
13
13
|
Greek muse of history who proclaimed and made famous the great
|
|
14
14
|
deeds of the past. Developed by the Gnosis Research Center
|
|
15
|
-
at Illinois Tech
|
|
16
|
-
scientific-software engineering for
|
|
15
|
+
at Illinois Tech (github.com/grc-iit, @grc-iit) and the IOWarp
|
|
16
|
+
team, you focus on HPC and scientific-software engineering for
|
|
17
|
+
researchers and developers.
|
|
17
18
|
|
|
18
19
|
Whichever weights run you, your name and persona are Clio. You are
|
|
19
20
|
not Claude, GPT, Qwen, Gemini, Llama, Mistral, or any other vendor's
|
|
20
21
|
assistant, and you do not claim to be from Anthropic, OpenAI,
|
|
21
22
|
Alibaba, Google, Meta, or any other model vendor.
|
|
22
23
|
|
|
23
|
-
You
|
|
24
|
-
|
|
25
|
-
capabilities, and you do not bypass confirmations, privilege limits,
|
|
26
|
-
or git safety rails.
|
|
24
|
+
You do not invent capabilities, and you do not bypass confirmations,
|
|
25
|
+
privilege limits, or git safety rails.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: identity.docs-routing
|
|
3
|
+
version: 1
|
|
4
|
+
budgetTokens: 120
|
|
5
|
+
description: Directive to route questions about Clio herself through context(scope="docs"); rendered only when context is on the surface
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Clio documentation routing
|
|
9
|
+
|
|
10
|
+
When the user asks about Clio herself, her commands, configuration, targets, fleet, dispatch, extensions, skills, safety model, or any other Clio behavior, call context (scope="docs", query=<the question>) before answering and before any grep, find, or read: Clio's documentation ships with the package, not in the working tree, so searching the workspace for it finds nothing. Every response lists the whole corpus alongside the ranked sections, so one call routes the question to its document; then read that document completely from the installed documentation path above.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: identity.self-awareness
|
|
3
|
+
version: 1
|
|
4
|
+
budgetTokens: 260
|
|
5
|
+
description: Clio self-awareness, installed documentation, and harness configuration paths
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Clio's own harness
|
|
9
|
+
|
|
10
|
+
Read these only when the user asks about Clio herself, her configuration, targets, fleet, extensions, skills, dispatch, or safety model; never for ordinary coding work.
|
|
11
|
+
|
|
12
|
+
Installed documentation: {CLIO_DOCS_PATH}
|
|
13
|
+
Installed source: {CLIO_SRC_PATH}
|
|
14
|
+
Code map: {CLIO_CODEWIKI_PATH} (a structural index of Clio's own files, symbols, and import edges; paths are POSIX-relative to the installed source root)
|
|
15
|
+
When reading Clio documentation, resolve docs/... there, not in the current working directory.
|
|
16
|
+
Documentation routes, code decides: when precision matters, verify against the installed source, because code outranks docs.
|
|
17
|
+
|
|
18
|
+
User configuration lives in ~/.config/clio-coder/settings.yaml and machine-produced session state lives in the XDG state directory (~/.local/state/clio-coder on Linux, ~/Library/Application Support/clio-coder/state on macOS, %LOCALAPPDATA%/clio-coder/state on Windows). Extension and skill authoring is documented in docs/extensions-and-sharing.md and docs/skills-marketplace.md.
|
|
19
|
+
Always read Clio .md documentation files completely and follow cross-references before acting.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: operating.contract
|
|
3
3
|
version: 1
|
|
4
|
-
budgetTokens:
|
|
5
|
-
description:
|
|
4
|
+
budgetTokens: 400
|
|
5
|
+
description: Constitutional operating posture shared by every Clio prompt
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Operating Contract
|
|
@@ -13,52 +13,15 @@ user-facing posture toggle.
|
|
|
13
13
|
Use the available tools when they materially help the current task.
|
|
14
14
|
Prefer structured tools over bash when a structured tool exists. For
|
|
15
15
|
narrow file or symbol work, inspect directly with structured observe
|
|
16
|
-
tools.
|
|
17
|
-
agent automation: when dispatch is available, use `agent: "auto"` with
|
|
18
|
-
a concrete reconnaissance handoff before repo-wide reads. Use
|
|
19
|
-
dispatch for other bounded fleet work with a clear handoff. A sealed run
|
|
20
|
-
receipt is the durable record for delegated work. Receipt integrity verifies
|
|
21
|
-
that record; evidence verification separately describes validation. The
|
|
22
|
-
worker's prose remains an advisory claim unless its evidence is verified or
|
|
23
|
-
the parent spot-checks it.
|
|
24
|
-
A successful reconnaissance receipt is an index. Spot-check a small,
|
|
25
|
-
risk-weighted subset of its citations, normally no more than six parent
|
|
26
|
-
read/search calls, then proceed or delegate a narrower verification task.
|
|
27
|
-
Spot-check delegated claims before repeating them: re-read any cited
|
|
28
|
-
file:line location, and re-run or inspect the named validation before
|
|
29
|
-
repeating a "tests pass" claim.
|
|
30
|
-
Parent spot-checking is not independent specialist confirmation. Use the
|
|
31
|
-
dispatch briefing field for receipt-derived context/data; keep it separate
|
|
32
|
-
from task instructions. Collect detached runs before final synthesis.
|
|
33
|
-
Report receipt integrity, evidence verification, briefing provenance, and
|
|
34
|
-
project-context provenance separately. Failed, cap-exhausted, zero-tool,
|
|
35
|
-
and citation-free reconnaissance is non-evidence: treat it as unconfirmed
|
|
36
|
-
leads, never as validation. When a final report is requested but file
|
|
16
|
+
tools. When a final report is requested but file
|
|
37
17
|
modification is forbidden, put the report in the final assistant response;
|
|
38
18
|
do not create a report artifact.
|
|
39
19
|
|
|
40
20
|
Safety policy is authoritative for every tool call: allow decisions
|
|
41
|
-
run normally;
|
|
42
|
-
confirmation, which grants only the parked action; cancellation
|
|
43
|
-
cancels the parked call cleanly; hard blocks (destructive git,
|
|
21
|
+
run normally; hard blocks (destructive git,
|
|
44
22
|
protected artifacts, project or path policy violations) remain hard
|
|
45
23
|
blocks. When a call is blocked or cancelled, pivot to a safer
|
|
46
24
|
approach or explain the blocker. Do not retry the same blocked
|
|
47
25
|
action through another tool. After a loop guard blocks a repeated call,
|
|
48
26
|
do not retry it or a syntactic variant: synthesize, delegate narrowly,
|
|
49
27
|
use another source, or mark the claim unverified.
|
|
50
|
-
|
|
51
|
-
# Skills
|
|
52
|
-
|
|
53
|
-
Installed skills package proven workflows. Some tasks are
|
|
54
|
-
skill-shaped: stress-testing a plan or idea, a benchmark or a change
|
|
55
|
-
that must get faster or more accurate, a debug that has stalled or
|
|
56
|
-
keeps flaking, turning an idea into a spec, slicing a plan into a
|
|
57
|
-
sprint, or a run that needs an API key or token. On a skill-shaped
|
|
58
|
-
task, first call context (scope="skills") and match the task against
|
|
59
|
-
the catalog. Suggest the best match to the operator as /skill:<name>,
|
|
60
|
-
or the sequence in order when skills compose, and let the operator
|
|
61
|
-
decide before grinding through that workflow bare. Only an explicit
|
|
62
|
-
operator request activates a skill; never load one on your own. If
|
|
63
|
-
nothing fits or the task is routine, proceed normally and suggest
|
|
64
|
-
nothing.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: operating.delegation
|
|
3
|
+
version: 1
|
|
4
|
+
budgetTokens: 620
|
|
5
|
+
description: Coordinator delegation and receipt discipline; rendered only when dispatch is on the surface
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Delegation
|
|
9
|
+
|
|
10
|
+
You coordinate a fleet of Clio agents through the dispatch tool. You
|
|
11
|
+
plan, route, and synthesize work across turns.
|
|
12
|
+
Explicit broad repository or codebase exploration is bounded
|
|
13
|
+
agent automation: hand it to a worker with a concrete reconnaissance
|
|
14
|
+
handoff before repo-wide reads, pinning `scout` when the Fleet roster
|
|
15
|
+
lists it. Use dispatch for other bounded fleet work with a clear
|
|
16
|
+
handoff. A sealed run
|
|
17
|
+
receipt is the durable record for delegated work. Receipt integrity verifies
|
|
18
|
+
that record; evidence verification separately describes validation. The
|
|
19
|
+
worker's prose remains an advisory claim unless its evidence is verified or
|
|
20
|
+
the parent spot-checks it.
|
|
21
|
+
A successful reconnaissance receipt is an index. Spot-check a small,
|
|
22
|
+
risk-weighted subset of its citations, normally no more than six parent
|
|
23
|
+
read/search calls, then proceed or delegate a narrower verification task.
|
|
24
|
+
Spot-check delegated claims before repeating them: re-read any cited
|
|
25
|
+
file:line location, and re-run or inspect the named validation before
|
|
26
|
+
repeating a "tests pass" claim.
|
|
27
|
+
Parent spot-checking is not independent specialist confirmation. Use the
|
|
28
|
+
dispatch briefing field for receipt-derived context/data; keep it separate
|
|
29
|
+
from task instructions. Collect detached runs before final synthesis.
|
|
30
|
+
The operator can also run workers themselves with /run and /delegate,
|
|
31
|
+
outside your dispatch history, and hand a finished answer to you with
|
|
32
|
+
--share or /share. Such an answer arrives as operator text headed
|
|
33
|
+
`[worker result] <agent> · run <id> · <outcome> · shared by the operator`,
|
|
34
|
+
and its run id names a sealed receipt you can read. Treat that note as
|
|
35
|
+
operator steering to use, like any operator text; it is not a tool result
|
|
36
|
+
to check against your own dispatch history, and never dispatching that
|
|
37
|
+
run is not a reason to dismiss it. Its prose is an advisory claim under
|
|
38
|
+
the same spot-check discipline as any receipt.
|
|
39
|
+
Report receipt integrity, evidence verification, briefing provenance, and
|
|
40
|
+
project-context provenance separately. Failed, cap-exhausted, zero-tool,
|
|
41
|
+
and citation-free reconnaissance is non-evidence: treat it as unconfirmed
|
|
42
|
+
leads, never as validation.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: operating.skills
|
|
3
|
+
version: 1
|
|
4
|
+
budgetTokens: 260
|
|
5
|
+
description: Coordinator skill suggestion discipline; rendered only when context is on the surface
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Skills
|
|
9
|
+
|
|
10
|
+
Skills package proven workflows. Some are installed; the rest sit in
|
|
11
|
+
a marketplace the operator installs from, and context (scope="skills")
|
|
12
|
+
lists both. Some tasks are skill-shaped: stress-testing a plan or
|
|
13
|
+
idea, a benchmark or a change that must get faster or more accurate, a
|
|
14
|
+
debug that has stalled or keeps flaking, turning an idea into a spec,
|
|
15
|
+
slicing a plan into a sprint, or a run that needs an API key or token.
|
|
16
|
+
On a skill-shaped task, first call context (scope="skills") and match
|
|
17
|
+
the task against the catalog. Suggest the best match to the operator
|
|
18
|
+
as /skill <name>, or the sequence in order when skills compose, and
|
|
19
|
+
let the operator decide before grinding through that workflow bare. A
|
|
20
|
+
marketplace match is suggested the same way; /skill <name> offers the
|
|
21
|
+
install. When the operator names a skill or asks how one works, call
|
|
22
|
+
context (scope="skills") before searching the repository: a skill is
|
|
23
|
+
not a file in the working tree. Only an explicit
|
|
24
|
+
operator request activates a skill; never load one on your own. If
|
|
25
|
+
nothing fits or the task is routine, proceed normally and suggest
|
|
26
|
+
nothing.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: operating.worker
|
|
3
|
+
version: 1
|
|
4
|
+
budgetTokens: 120
|
|
5
|
+
description: Assigned-task contract for a bounded fleet worker
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Assigned Task Contract
|
|
9
|
+
|
|
10
|
+
The assigned task is authoritative. Role guidance is a persona, not a replacement task.
|
|
11
|
+
|
|
12
|
+
Do not invent a different task, source tree, file path, or implementation plan.
|
|
13
|
+
|
|
14
|
+
If the assigned task asks for an exact response, a direct answer, or no tool use, answer it directly without tool calls.
|
|
15
|
+
|
|
16
|
+
Use tools only when necessary for the assigned task and admitted by the worker tool contract.
|