@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,744 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical channel names and payload contracts for the Clio event bus.
|
|
3
|
+
*
|
|
4
|
+
* Add new channels here. Downstream code imports from this file rather than
|
|
5
|
+
* hard-coding string literals so renames are a single edit and typos fail fast.
|
|
6
|
+
*
|
|
7
|
+
* Every channel has a payload type registered in {@link BusPayloadMap}; the
|
|
8
|
+
* shared bus types `emit`/`on` against that map, so payload drift between an
|
|
9
|
+
* emitter and this file is a compile error. The types describe what in-process
|
|
10
|
+
* emitters send; the bus performs no runtime validation, so subscribers that
|
|
11
|
+
* consume data which crossed a process boundary (worker/ACP event streams)
|
|
12
|
+
* must keep validating at runtime.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import type { AgentAudience } from "../domains/agents/spec.js";
|
|
16
|
+
import type { ConfigDiff } from "../domains/config/classify.js";
|
|
17
|
+
import type {
|
|
18
|
+
DispatchRequestOrigin,
|
|
19
|
+
RunKind,
|
|
20
|
+
RunLineage,
|
|
21
|
+
RunOutcome,
|
|
22
|
+
RunOutcomeCode,
|
|
23
|
+
ToolActivitySummary,
|
|
24
|
+
} from "../domains/dispatch/types.js";
|
|
25
|
+
import type { MiddlewareHook } from "../domains/middleware/types.js";
|
|
26
|
+
import type { TargetStatus } from "../domains/providers/contract.js";
|
|
27
|
+
import type { CostProvenance } from "../domains/providers/index.js";
|
|
28
|
+
import type { ClioSettings } from "./config.js";
|
|
29
|
+
import type { SkillActivation } from "./skill-activation.js";
|
|
30
|
+
import type { TerminationPhase } from "./termination.js";
|
|
31
|
+
|
|
32
|
+
export const BusChannels = {
|
|
33
|
+
SessionStart: "session.start",
|
|
34
|
+
SessionEnd: "session.end",
|
|
35
|
+
SessionParked: "session.parked",
|
|
36
|
+
SessionResumed: "session.resumed",
|
|
37
|
+
SessionTurnSwitched: "session.turn_switched",
|
|
38
|
+
DomainLoaded: "domain.loaded",
|
|
39
|
+
DomainFailed: "domain.failed",
|
|
40
|
+
ConfigHotReload: "config.hotReload",
|
|
41
|
+
ConfigNextTurn: "config.nextTurn",
|
|
42
|
+
ConfigRestartRequired: "config.restartRequired",
|
|
43
|
+
ConfigReloadFailed: "config.reloadFailed",
|
|
44
|
+
PermissionRequested: "permission.requested",
|
|
45
|
+
PermissionResolved: "permission.resolved",
|
|
46
|
+
SafetyClassified: "safety.classified",
|
|
47
|
+
SafetyBlocked: "safety.blocked",
|
|
48
|
+
SafetyAllowed: "safety.allowed",
|
|
49
|
+
LoopBlocked: "safety.loopBlocked",
|
|
50
|
+
ToolBudgetExceeded: "safety.toolBudgetExceeded",
|
|
51
|
+
ProviderHealth: "provider.health",
|
|
52
|
+
RuntimeNotice: "runtime.notice",
|
|
53
|
+
DispatchEnqueued: "dispatch.enqueued",
|
|
54
|
+
DispatchStarted: "dispatch.started",
|
|
55
|
+
DispatchProgress: "dispatch.progress",
|
|
56
|
+
DispatchCompleted: "dispatch.completed",
|
|
57
|
+
DispatchFailed: "dispatch.failed",
|
|
58
|
+
CompactionBegin: "compaction.begin",
|
|
59
|
+
CompactionEnd: "compaction.end",
|
|
60
|
+
MiddlewareHookFailed: "middleware.hookFailed",
|
|
61
|
+
ContextActivity: "context.activity",
|
|
62
|
+
ContextWarning: "context.warning",
|
|
63
|
+
ContextPruned: "context.pruned",
|
|
64
|
+
AgentStatusChanged: "agent.status.changed",
|
|
65
|
+
RunAborted: "run.aborted",
|
|
66
|
+
BudgetAlert: "budget.alert",
|
|
67
|
+
ShutdownRequested: "shutdown.requested",
|
|
68
|
+
ShutdownDrained: "shutdown.drained",
|
|
69
|
+
ShutdownTerminated: "shutdown.terminated",
|
|
70
|
+
ShutdownPersisted: "shutdown.persisted",
|
|
71
|
+
} as const;
|
|
72
|
+
|
|
73
|
+
export type BusChannel = (typeof BusChannels)[keyof typeof BusChannels];
|
|
74
|
+
|
|
75
|
+
/** Collision, capacity, or stress category for a {@link RuntimeNoticePayload}. */
|
|
76
|
+
export type RuntimeNoticeKind = "will-not-fit" | "about-to-evict" | "swap" | "co-resident" | "stress" | "degraded";
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Model-residency notice published on {@link BusChannels.RuntimeNotice} by the
|
|
80
|
+
* capacity-aware residency reconciler (src/engine/apis/residency.ts). Notices
|
|
81
|
+
* are informational and non-blocking: a notice never cancels a turn. `kind` is
|
|
82
|
+
* the collision or stress category, `detail` carries the numeric capacity and
|
|
83
|
+
* footprint facts when the runtime exposed them, and `message` is the rendered
|
|
84
|
+
* operator-facing line. A genuine VRAM miss surfaces a `will-not-fit` notice
|
|
85
|
+
* carrying the same content the turn fails with, instead of a bare SDK error.
|
|
86
|
+
* `degraded` reports a live turn whose token rate collapsed (see
|
|
87
|
+
* src/engine/apis/degraded-inference.ts), which is how a silent spill to CPU
|
|
88
|
+
* becomes visible while it is happening.
|
|
89
|
+
*/
|
|
90
|
+
export interface RuntimeNoticePayload {
|
|
91
|
+
kind: RuntimeNoticeKind;
|
|
92
|
+
level: "info" | "warning" | "error";
|
|
93
|
+
targetId: string;
|
|
94
|
+
runtimeId: string;
|
|
95
|
+
model: string;
|
|
96
|
+
message: string;
|
|
97
|
+
detail?: Record<string, number | string | boolean>;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Window-resolution warning published on {@link BusChannels.ContextWarning}.
|
|
102
|
+
* Emitted on transitions only: `warning` carries the text when a warning
|
|
103
|
+
* appears or changes, and `null` when a prior warning clears.
|
|
104
|
+
*/
|
|
105
|
+
export interface ContextWarningPayload {
|
|
106
|
+
warning: string | null;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export type ContextActivityKind = "context-init" | "context-clear" | "context-refresh" | "context-wiki" | "compaction";
|
|
110
|
+
export type ContextActivityPhase = "scan" | "codewiki" | "generate" | "clio-md" | "state" | "done";
|
|
111
|
+
export type ContextActivityStatus = "started" | "running" | "completed" | "failed";
|
|
112
|
+
|
|
113
|
+
/** Structured progress for context operations. Interactive renders this as a live context island. */
|
|
114
|
+
export interface ContextActivityPayload {
|
|
115
|
+
kind: ContextActivityKind;
|
|
116
|
+
phase: ContextActivityPhase;
|
|
117
|
+
status: ContextActivityStatus;
|
|
118
|
+
message: string;
|
|
119
|
+
at: number;
|
|
120
|
+
current?: number;
|
|
121
|
+
total?: number;
|
|
122
|
+
detail?: string;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Where a loop block sits on the identical-call escalation:
|
|
127
|
+
* - `"block"`: a per-call block below the per-turn budget. The interactive
|
|
128
|
+
* layer renders a warn notice; the denial reason flows back to the model.
|
|
129
|
+
* - `"lockout"`: the per-turn budget is reached. Tool use is disabled for the
|
|
130
|
+
* rest of the turn so the model answers from what it already gathered; the
|
|
131
|
+
* turn is NOT cancelled. Orchestrator surfaces with the synthesis lockout.
|
|
132
|
+
* - `"stop"`: the post-lockout backstop fired (the model kept calling tools),
|
|
133
|
+
* or a surface without the synthesis lockout reached the budget. The turn is
|
|
134
|
+
* cancelled with the durable closing message.
|
|
135
|
+
*/
|
|
136
|
+
export type LoopBlockedDisposition = "block" | "lockout" | "stop";
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Payload published on {@link BusChannels.LoopBlocked} when the interactive
|
|
140
|
+
* loop guard blocks a verbatim-repeated tool call before execution. The
|
|
141
|
+
* interactive layer renders a warn notice per block, a distinct notice on
|
|
142
|
+
* `"lockout"`, and cancels the active turn only on `"stop"`. The backend never
|
|
143
|
+
* imports TUI code; this event is the only seam between them.
|
|
144
|
+
*/
|
|
145
|
+
export interface LoopBlockedPayload {
|
|
146
|
+
tool: string;
|
|
147
|
+
/** Identical-call observations inside the detector's sliding window. */
|
|
148
|
+
repeatCount: number;
|
|
149
|
+
/** Loop blocks accumulated in the current user turn, this one included. */
|
|
150
|
+
blocksThisTurn: number;
|
|
151
|
+
/** Per-turn block budget, carried so renderers never hardcode the threshold. */
|
|
152
|
+
budget: number;
|
|
153
|
+
/**
|
|
154
|
+
* True when the turn must stop (equivalently `disposition === "stop"`).
|
|
155
|
+
* A `"lockout"` sets this false: the turn keeps running with tools disabled
|
|
156
|
+
* so the model can synthesize a final answer.
|
|
157
|
+
*/
|
|
158
|
+
interrupted: boolean;
|
|
159
|
+
/** Escalation stage of this block; see {@link LoopBlockedDisposition}. */
|
|
160
|
+
disposition: LoopBlockedDisposition;
|
|
161
|
+
at: number;
|
|
162
|
+
turnId?: string;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Payload published on {@link BusChannels.ToolBudgetExceeded} when the
|
|
167
|
+
* orchestrator loop guard observes too many tool calls inside a single user
|
|
168
|
+
* turn. Unlike {@link LoopBlockedPayload}, which fires only on verbatim-repeated
|
|
169
|
+
* calls, this counts every distinct tool-call attempt in the turn so a weak
|
|
170
|
+
* model spraying near-duplicate commands is caught. At the soft budget the
|
|
171
|
+
* guard injects a re-plan directive and the interactive layer renders a warn
|
|
172
|
+
* notice; when `interrupted` is true the hard ceiling is reached and the layer
|
|
173
|
+
* cancels the active turn with an error notice. The backend never imports TUI
|
|
174
|
+
* code; this event is the only seam between them.
|
|
175
|
+
*/
|
|
176
|
+
export interface ToolBudgetExceededPayload {
|
|
177
|
+
tool: string;
|
|
178
|
+
/** Distinct tool-call attempts observed in the current user turn, this one included. */
|
|
179
|
+
callsThisTurn: number;
|
|
180
|
+
/** Soft per-turn budget that triggers the re-plan nudge. */
|
|
181
|
+
softBudget: number;
|
|
182
|
+
/** Hard per-turn ceiling that interrupts the turn. */
|
|
183
|
+
hardCeiling: number;
|
|
184
|
+
/** True when the hard ceiling is reached and the turn must stop. */
|
|
185
|
+
interrupted: boolean;
|
|
186
|
+
at: number;
|
|
187
|
+
turnId?: string;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Payload published on {@link BusChannels.BudgetAlert} when a dispatch enqueue
|
|
192
|
+
* meets ("at") or crosses ("over") the session cost ceiling. Informational in
|
|
193
|
+
* v0.x: scheduling never rejects the enqueue, so the interactive notice is the
|
|
194
|
+
* operator's only signal.
|
|
195
|
+
*/
|
|
196
|
+
export interface BudgetAlertPayload {
|
|
197
|
+
level: "at" | "over";
|
|
198
|
+
currentUsd: number;
|
|
199
|
+
ceilingUsd: number;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Payload published on {@link BusChannels.SafetyBlocked} when the safety
|
|
204
|
+
* policy engine blocks a tool call outright. The transcript already carries
|
|
205
|
+
* the rejection text the model sees; this event carries the policy dimension
|
|
206
|
+
* (which rule and action class fired, from which policy source).
|
|
207
|
+
*/
|
|
208
|
+
export interface SafetyBlockedPayload {
|
|
209
|
+
tool: string;
|
|
210
|
+
actionClass: string;
|
|
211
|
+
ruleId?: string | undefined;
|
|
212
|
+
posture?: string | undefined;
|
|
213
|
+
rejection?: { short: string; detail: string; hints: ReadonlyArray<string> } | undefined;
|
|
214
|
+
policySource: string;
|
|
215
|
+
reasonCode: string;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/** Where a {@link BusChannels.RunAborted} event originated. */
|
|
219
|
+
export type RunAbortSource = "dispatch_abort" | "dispatch_drain" | "stream_cancel" | "loop_guard";
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Payload published on {@link BusChannels.RunAborted}. Dispatch emits
|
|
223
|
+
* dispatch_abort/dispatch_drain with run lineage; the chat loop emits
|
|
224
|
+
* stream_cancel for an operator Esc/Ctrl+C and loop_guard when the loop guard
|
|
225
|
+
* stops a runaway turn. Subscribers must not collapse the sources: a drained
|
|
226
|
+
* dispatch run, a user-cancelled stream, and a guard-stopped loop are different
|
|
227
|
+
* operator situations.
|
|
228
|
+
*/
|
|
229
|
+
export interface RunAbortedPayload {
|
|
230
|
+
source: RunAbortSource;
|
|
231
|
+
runId: string | null;
|
|
232
|
+
startedAt: string | null;
|
|
233
|
+
elapsedMs: number | null;
|
|
234
|
+
at?: number;
|
|
235
|
+
reason?: string;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
const RUN_ABORT_SOURCES: ReadonlySet<string> = new Set<RunAbortSource>([
|
|
239
|
+
"dispatch_abort",
|
|
240
|
+
"dispatch_drain",
|
|
241
|
+
"stream_cancel",
|
|
242
|
+
"loop_guard",
|
|
243
|
+
]);
|
|
244
|
+
|
|
245
|
+
export function isRunAbortedPayload(value: unknown): value is RunAbortedPayload {
|
|
246
|
+
if (!value || typeof value !== "object") return false;
|
|
247
|
+
const p = value as Record<string, unknown>;
|
|
248
|
+
if (typeof p.source !== "string" || !RUN_ABORT_SOURCES.has(p.source)) return false;
|
|
249
|
+
if (p.runId !== null && typeof p.runId !== "string") return false;
|
|
250
|
+
if (p.startedAt !== null && typeof p.startedAt !== "string") return false;
|
|
251
|
+
if (p.elapsedMs !== null && typeof p.elapsedMs !== "number") return false;
|
|
252
|
+
if (p.reason !== undefined && typeof p.reason !== "string") return false;
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/** Payload published on {@link BusChannels.ContextPruned} after compaction reclaims tokens. */
|
|
257
|
+
export interface ContextPrunedPayload {
|
|
258
|
+
stage: "mask_observations" | "llm_summary";
|
|
259
|
+
tokensBefore: number;
|
|
260
|
+
tokensAfter: number;
|
|
261
|
+
trigger: string;
|
|
262
|
+
snapshotIdBefore: string | null;
|
|
263
|
+
snapshotIdAfter: string;
|
|
264
|
+
at: number;
|
|
265
|
+
/** Used/window ratio at trigger time; mask stage only. */
|
|
266
|
+
pressure?: number | null;
|
|
267
|
+
maskedObservations?: number;
|
|
268
|
+
/** Thinking blocks stripped from stale assistant messages; mask stage only. */
|
|
269
|
+
maskedThinkingBlocks?: number;
|
|
270
|
+
maskedThinkingChars?: number;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// ---------------------------------------------------------------------------
|
|
274
|
+
// Session and domain lifecycle
|
|
275
|
+
// ---------------------------------------------------------------------------
|
|
276
|
+
|
|
277
|
+
/** Published on {@link BusChannels.SessionStart} once the orchestrator boots. */
|
|
278
|
+
export interface SessionStartPayload {
|
|
279
|
+
at: number;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/** Published on {@link BusChannels.SessionEnd} just before process.exit. */
|
|
283
|
+
export interface SessionEndPayload {
|
|
284
|
+
exitCode: number;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
export type SessionParkReason = "create_new" | "resume_other" | "fork" | "switch_branch" | "close" | "shutdown";
|
|
288
|
+
export type SessionResumeVia = "resume" | "switch_branch";
|
|
289
|
+
|
|
290
|
+
/** Published on {@link BusChannels.SessionParked} when the current session is replaced or closed. */
|
|
291
|
+
export interface SessionParkedPayload {
|
|
292
|
+
sessionId: string;
|
|
293
|
+
reason: SessionParkReason;
|
|
294
|
+
at: number;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/** Published on {@link BusChannels.SessionResumed} when an existing session is reopened. */
|
|
298
|
+
export interface SessionResumedPayload {
|
|
299
|
+
sessionId: string;
|
|
300
|
+
via: SessionResumeVia;
|
|
301
|
+
at: number;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Published on {@link BusChannels.SessionTurnSwitched} when `/tree` moves the
|
|
306
|
+
* active append point inside the current session without changing which
|
|
307
|
+
* session is open. Nothing else observes that move: unlike resume/fork, the
|
|
308
|
+
* session id in `getSessionId()` callbacks stays the same, so anything keyed
|
|
309
|
+
* on session id alone (the task board cache among them) needs this signal to
|
|
310
|
+
* know its fold is stale.
|
|
311
|
+
*/
|
|
312
|
+
export interface SessionTurnSwitchedPayload {
|
|
313
|
+
sessionId: string;
|
|
314
|
+
turnId: string;
|
|
315
|
+
at: number;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/** Published on {@link BusChannels.DomainLoaded} per successfully started domain. */
|
|
319
|
+
export interface DomainLoadedPayload {
|
|
320
|
+
name: string;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/** Published on {@link BusChannels.DomainFailed} right before the loader throws. */
|
|
324
|
+
export interface DomainFailedPayload {
|
|
325
|
+
name: string;
|
|
326
|
+
/** The caught value as-is; loaders catch unknown and rethrow after emitting. */
|
|
327
|
+
error: unknown;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// ---------------------------------------------------------------------------
|
|
331
|
+
// Config
|
|
332
|
+
// ---------------------------------------------------------------------------
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Published on {@link BusChannels.ConfigHotReload}, {@link BusChannels.ConfigNextTurn},
|
|
336
|
+
* and {@link BusChannels.ConfigRestartRequired}. One shape for all three: the
|
|
337
|
+
* channel encodes the change class, the diff says which paths moved, and
|
|
338
|
+
* `settings` is the freshly validated snapshot.
|
|
339
|
+
*/
|
|
340
|
+
export interface ConfigChangePayload {
|
|
341
|
+
diff: ConfigDiff;
|
|
342
|
+
settings: Readonly<ClioSettings>;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Published on {@link BusChannels.ConfigReloadFailed} when a settings file
|
|
347
|
+
* change is rejected at runtime and the previous good snapshot stays active.
|
|
348
|
+
* Emitted on transitions only, like {@link ContextWarningPayload}: `message`
|
|
349
|
+
* carries one already-formatted operator line while the failure stands, and
|
|
350
|
+
* `null` once a later reload succeeds and the prior failure clears.
|
|
351
|
+
*
|
|
352
|
+
* The message is pre-formatted by `formatSettingsFailure` (core/config.ts)
|
|
353
|
+
* because the config domain must not import TUI code and the renderer must
|
|
354
|
+
* not learn the settings schema. One line, no stack, no error dump: this
|
|
355
|
+
* event exists so nothing writes an inspected Error over the live frame.
|
|
356
|
+
*/
|
|
357
|
+
export interface ConfigReloadFailedPayload {
|
|
358
|
+
message: string | null;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// ---------------------------------------------------------------------------
|
|
362
|
+
// Safety and permissions
|
|
363
|
+
// ---------------------------------------------------------------------------
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Published on {@link BusChannels.SafetyClassified} for every policy
|
|
367
|
+
* evaluation, regardless of verdict.
|
|
368
|
+
*/
|
|
369
|
+
export interface SafetyClassifiedPayload {
|
|
370
|
+
tool: string;
|
|
371
|
+
actionClass: string;
|
|
372
|
+
reasons: ReadonlyArray<string>;
|
|
373
|
+
ruleId?: string | undefined;
|
|
374
|
+
posture?: string | undefined;
|
|
375
|
+
policySource: string;
|
|
376
|
+
reasonCode: string;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Published on {@link BusChannels.PermissionRequested} when policy parks a
|
|
381
|
+
* tool call pending operator confirmation.
|
|
382
|
+
*/
|
|
383
|
+
export interface PermissionRequestedPayload {
|
|
384
|
+
tool: string;
|
|
385
|
+
actionClass: string;
|
|
386
|
+
origin?: string | undefined;
|
|
387
|
+
axis?: string | undefined;
|
|
388
|
+
reasons?: ReadonlyArray<string> | undefined;
|
|
389
|
+
ruleId?: string | undefined;
|
|
390
|
+
posture?: string | undefined;
|
|
391
|
+
rejection?: { short: string; detail: string; hints: ReadonlyArray<string> } | undefined;
|
|
392
|
+
policySource?: string | undefined;
|
|
393
|
+
reasonCode?: string | undefined;
|
|
394
|
+
/**
|
|
395
|
+
* Worker permission escalation provenance. Present only when dispatch
|
|
396
|
+
* republishes an escalate-posture worker's parked ask; absent for
|
|
397
|
+
* main-agent asks. `requestedBy` carries the worker run id so the
|
|
398
|
+
* interactive layer can label the overlay and route the operator decision
|
|
399
|
+
* back through resolveWorkerPermission.
|
|
400
|
+
*/
|
|
401
|
+
requestedBy?: string | undefined;
|
|
402
|
+
requestId?: string | undefined;
|
|
403
|
+
agentId?: string | undefined;
|
|
404
|
+
summary?: string | undefined;
|
|
405
|
+
/** Sanitized one-line preview of the call's object (command, path, or compact args). */
|
|
406
|
+
target?: string | undefined;
|
|
407
|
+
timeoutMs?: number | undefined;
|
|
408
|
+
escalation?: boolean | undefined;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Published on {@link BusChannels.PermissionResolved} when a parked call is
|
|
413
|
+
* granted, denied, or expires internally (operator decision, headless
|
|
414
|
+
* auto-deny, delegated-agent denial, or internal expiry). Only `status` is
|
|
415
|
+
* guaranteed; emitters attach whatever provenance they have.
|
|
416
|
+
*/
|
|
417
|
+
export interface PermissionResolvedPayload {
|
|
418
|
+
status: "granted" | "denied" | "expired";
|
|
419
|
+
requestId?: string | undefined;
|
|
420
|
+
origin?: string | undefined;
|
|
421
|
+
decidedBy?: string | undefined;
|
|
422
|
+
tool?: string | undefined;
|
|
423
|
+
actionClass?: string | undefined;
|
|
424
|
+
reason?: string | undefined;
|
|
425
|
+
requestedBy?: string | undefined;
|
|
426
|
+
at?: number | undefined;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/** Published on {@link BusChannels.SafetyAllowed} when policy allows a call outright. */
|
|
430
|
+
export interface SafetyAllowedPayload {
|
|
431
|
+
tool: string;
|
|
432
|
+
actionClass: string;
|
|
433
|
+
posture?: string | undefined;
|
|
434
|
+
ruleId?: string | undefined;
|
|
435
|
+
policySource: string;
|
|
436
|
+
reasonCode: string;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
// ---------------------------------------------------------------------------
|
|
440
|
+
// Providers
|
|
441
|
+
// ---------------------------------------------------------------------------
|
|
442
|
+
|
|
443
|
+
/** Published on {@link BusChannels.ProviderHealth} after every target probe/disconnect. */
|
|
444
|
+
export interface ProviderHealthPayload {
|
|
445
|
+
id: string;
|
|
446
|
+
status: TargetStatus;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
// ---------------------------------------------------------------------------
|
|
450
|
+
// Dispatch
|
|
451
|
+
// ---------------------------------------------------------------------------
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Identity fields shared by every dispatch lifecycle event. `agentAudience`
|
|
455
|
+
* is only known on the worker path; the ACP path omits it. `requestOrigin`
|
|
456
|
+
* is always sent by enqueue/start but conditionally by retry/heartbeat.
|
|
457
|
+
*/
|
|
458
|
+
export interface DispatchRunIdentity {
|
|
459
|
+
runId: string;
|
|
460
|
+
agentId: string;
|
|
461
|
+
/** Exact dispatched task. UI projections must sanitize and bound it before rendering. */
|
|
462
|
+
task?: string | undefined;
|
|
463
|
+
agentAudience?: AgentAudience | undefined;
|
|
464
|
+
requestOrigin?: DispatchRequestOrigin | undefined;
|
|
465
|
+
targetId: string;
|
|
466
|
+
wireModelId: string;
|
|
467
|
+
runtimeId: string;
|
|
468
|
+
runtimeKind: RunKind;
|
|
469
|
+
/** Fleet node id the run was placed on; absent renders as the local node. */
|
|
470
|
+
node?: string | undefined;
|
|
471
|
+
/** Review/compete gate role and cycle, for fleet board badges. */
|
|
472
|
+
gate?: { role: string; cycle: number } | undefined;
|
|
473
|
+
/** Dead-node failover hops recorded on this run's chain so far. */
|
|
474
|
+
rerouteCount?: number | undefined;
|
|
475
|
+
/** Model context window in tokens, for the per-worker context meter. */
|
|
476
|
+
contextWindow?: number | undefined;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
/** Published on {@link BusChannels.DispatchEnqueued} once the ledger row exists. */
|
|
480
|
+
export interface DispatchEnqueuedPayload extends DispatchRunIdentity {
|
|
481
|
+
requestOrigin: DispatchRequestOrigin;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
/**
|
|
485
|
+
* Published on {@link BusChannels.DispatchStarted} once the child process is
|
|
486
|
+
* live.
|
|
487
|
+
*
|
|
488
|
+
* `assignmentId` and `attempt` are required, on the same terms as
|
|
489
|
+
* {@link DispatchTerminalStats}: a surface that draws one entry per logical
|
|
490
|
+
* work item has to key on the assignment, and a spawn path that forgot to send
|
|
491
|
+
* it would silently split a failover into two entries. Both come straight off
|
|
492
|
+
* the run's {@link RunLineage} (`rootRunId` / `attempt`), so no emitter has to
|
|
493
|
+
* derive them.
|
|
494
|
+
*/
|
|
495
|
+
export interface DispatchStartedPayload extends DispatchEnqueuedPayload {
|
|
496
|
+
pid: number | null;
|
|
497
|
+
/** Exact spawned argv encoded as JSON, for safe pid/command identity checks. */
|
|
498
|
+
processCommand?: string | undefined;
|
|
499
|
+
/** Logical work item this attempt belongs to; retries and failovers share it. */
|
|
500
|
+
assignmentId: string;
|
|
501
|
+
/** 0 on the first attempt, incremented once per retry. */
|
|
502
|
+
attempt: number;
|
|
503
|
+
/**
|
|
504
|
+
* Tool call whose execution spawned this run. Present only on agent-origin
|
|
505
|
+
* runs whose caller knew its own call id, which is what lets a transcript
|
|
506
|
+
* nest the worker under the tool segment that started it instead of
|
|
507
|
+
* appending it wherever the turn happens to be.
|
|
508
|
+
*/
|
|
509
|
+
parentToolCallId?: string | undefined;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
/**
|
|
513
|
+
* Published on {@link BusChannels.DispatchProgress} for every non-heartbeat
|
|
514
|
+
* worker/ACP event plus heartbeat status transitions. The dispatch domain
|
|
515
|
+
* owns publication so attached, detached, batched, and retry runs expose the
|
|
516
|
+
* same live stream exactly once. Lightweight contract fakes may still omit
|
|
517
|
+
* all identity fields except runId/agentId.
|
|
518
|
+
*
|
|
519
|
+
* `event` is intentionally untyped: it is the worker/ACP event stream, which
|
|
520
|
+
* crosses a process boundary, so subscribers must validate its shape.
|
|
521
|
+
*/
|
|
522
|
+
export interface DispatchProgressPayload {
|
|
523
|
+
runId: string;
|
|
524
|
+
agentId: string;
|
|
525
|
+
task?: string | undefined;
|
|
526
|
+
agentAudience?: AgentAudience | undefined;
|
|
527
|
+
requestOrigin?: DispatchRequestOrigin | undefined;
|
|
528
|
+
targetId?: string | undefined;
|
|
529
|
+
wireModelId?: string | undefined;
|
|
530
|
+
runtimeId?: string | undefined;
|
|
531
|
+
runtimeKind?: RunKind | undefined;
|
|
532
|
+
event: unknown;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
/**
|
|
536
|
+
* Telemetry and provenance attached by the two run finalizers (worker and
|
|
537
|
+
* ACP). Required on {@link DispatchCompletedPayload} so dropping a field from
|
|
538
|
+
* one finalizer is a compile error; optional on {@link DispatchFailedPayload}
|
|
539
|
+
* because the retry-denied emitter has no run to report on.
|
|
540
|
+
*/
|
|
541
|
+
export interface DispatchTerminalStats {
|
|
542
|
+
lineage: RunLineage;
|
|
543
|
+
tokenCount: number;
|
|
544
|
+
inputTokenCount: number;
|
|
545
|
+
outputTokenCount: number;
|
|
546
|
+
cacheReadTokenCount: number;
|
|
547
|
+
cacheWriteTokenCount: number;
|
|
548
|
+
reasoningTokenCount: number;
|
|
549
|
+
staticShellHash: string | null;
|
|
550
|
+
sessionShellHash: string | null;
|
|
551
|
+
dynamicHash: string | null;
|
|
552
|
+
costUsd: number;
|
|
553
|
+
costProvenance?: CostProvenance;
|
|
554
|
+
durationMs: number;
|
|
555
|
+
exitCode: number;
|
|
556
|
+
/** Honest activity record aggregated from the run's tool telemetry; null when the receipt predates it. */
|
|
557
|
+
toolActivity: ToolActivitySummary | null;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
/** Published on {@link BusChannels.DispatchCompleted} when a run finalizes as succeeded. */
|
|
561
|
+
export interface DispatchCompletedPayload extends DispatchRunIdentity, DispatchTerminalStats {
|
|
562
|
+
requestOrigin: DispatchRequestOrigin;
|
|
563
|
+
outcome: RunOutcome;
|
|
564
|
+
outcomeCode: RunOutcomeCode | null;
|
|
565
|
+
outcomeDetail: string | null;
|
|
566
|
+
/**
|
|
567
|
+
* Worker skill activations collected into the run receipt. Present only
|
|
568
|
+
* when the run activated at least one skill (native/subprocess runners;
|
|
569
|
+
* ACP delegation collects none). The orchestrator folds these into the
|
|
570
|
+
* session ledger tagged with the runId.
|
|
571
|
+
*/
|
|
572
|
+
skillActivations?: ReadonlyArray<SkillActivation>;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* Published on {@link BusChannels.DispatchFailed} for every non-succeeded
|
|
577
|
+
* terminal outcome. `reason` carries the resolved outcome (or the synthetic
|
|
578
|
+
* "retry_denied" when a retry never reached admission); the board maps it to
|
|
579
|
+
* a presentation status, so emitters must not collapse the taxonomy.
|
|
580
|
+
*/
|
|
581
|
+
export interface DispatchFailedPayload extends DispatchRunIdentity, Partial<DispatchTerminalStats> {
|
|
582
|
+
outcome: RunOutcome;
|
|
583
|
+
outcomeCode?: RunOutcomeCode | null;
|
|
584
|
+
outcomeDetail: string | null;
|
|
585
|
+
reason: RunOutcome | "retry_denied";
|
|
586
|
+
/**
|
|
587
|
+
* Worker skill activations collected into the run receipt, on the same
|
|
588
|
+
* terms as {@link DispatchCompletedPayload}. A run that loaded a skill and
|
|
589
|
+
* then failed is exactly when the operator needs to know which skill and
|
|
590
|
+
* which copy of it, so the failing path records them too.
|
|
591
|
+
*/
|
|
592
|
+
skillActivations?: ReadonlyArray<SkillActivation>;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
// ---------------------------------------------------------------------------
|
|
596
|
+
// Compaction
|
|
597
|
+
// ---------------------------------------------------------------------------
|
|
598
|
+
|
|
599
|
+
/** Published on {@link BusChannels.CompactionBegin} and {@link BusChannels.CompactionEnd}. */
|
|
600
|
+
export interface CompactionPayload {
|
|
601
|
+
trigger: string;
|
|
602
|
+
at: number;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
// ---------------------------------------------------------------------------
|
|
606
|
+
// Middleware
|
|
607
|
+
// ---------------------------------------------------------------------------
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* Published on {@link BusChannels.MiddlewareHookFailed} when a middleware hook
|
|
611
|
+
* registration misbehaves: `hook_failed` for a thrown evaluate (its effects
|
|
612
|
+
* are discarded and the turn proceeds), `budget_exceeded` for a soft
|
|
613
|
+
* wall-time overrun (effects still apply). Diagnostics only; nothing
|
|
614
|
+
* subscribing here may decide anything.
|
|
615
|
+
*/
|
|
616
|
+
export interface MiddlewareHookFailedPayload {
|
|
617
|
+
kind: "hook_failed" | "budget_exceeded";
|
|
618
|
+
registrationId: string;
|
|
619
|
+
hook: MiddlewareHook;
|
|
620
|
+
at: number;
|
|
621
|
+
/** Error text; hook_failed only. */
|
|
622
|
+
message?: string | undefined;
|
|
623
|
+
/** Measured and allowed wall time in ms; budget_exceeded only. */
|
|
624
|
+
elapsedMs?: number | undefined;
|
|
625
|
+
budgetMs?: number | undefined;
|
|
626
|
+
/**
|
|
627
|
+
* budget_exceeded only. True when the overrun is steady-state slowness (≥N of
|
|
628
|
+
* the last M post-warmup calls over budget), not a lone spike. The interactive
|
|
629
|
+
* notice surfaces only on steady-state; every post-warmup overrun is still
|
|
630
|
+
* published for telemetry regardless.
|
|
631
|
+
*/
|
|
632
|
+
steadyStateWarn?: boolean | undefined;
|
|
633
|
+
/** Rolling-window stats; budget_exceeded only. */
|
|
634
|
+
p50Ms?: number | undefined;
|
|
635
|
+
p95Ms?: number | undefined;
|
|
636
|
+
overCount?: number | undefined;
|
|
637
|
+
windowSamples?: number | undefined;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
// ---------------------------------------------------------------------------
|
|
641
|
+
// Agent status
|
|
642
|
+
// ---------------------------------------------------------------------------
|
|
643
|
+
|
|
644
|
+
/**
|
|
645
|
+
* Status phases for the interactive agent loop. Owned here (not in
|
|
646
|
+
* src/interactive) because the phase taxonomy rides the bus into the safety
|
|
647
|
+
* domain's audit trail; src/interactive/status/types.ts re-exports it.
|
|
648
|
+
*/
|
|
649
|
+
export type StatusPhase =
|
|
650
|
+
| "idle"
|
|
651
|
+
| "preparing"
|
|
652
|
+
| "waiting_model"
|
|
653
|
+
| "thinking"
|
|
654
|
+
| "writing"
|
|
655
|
+
| "tool_running"
|
|
656
|
+
| "tool_blocked"
|
|
657
|
+
| "retrying"
|
|
658
|
+
| "compacting"
|
|
659
|
+
| "dispatching"
|
|
660
|
+
| "stuck"
|
|
661
|
+
| "ended";
|
|
662
|
+
|
|
663
|
+
export type WatchdogTier = 0 | 1 | 2 | 3 | 4;
|
|
664
|
+
|
|
665
|
+
/** Published on {@link BusChannels.AgentStatusChanged} on every phase transition. */
|
|
666
|
+
export interface AgentStatusChangedPayload {
|
|
667
|
+
runId: string | null;
|
|
668
|
+
phase: StatusPhase;
|
|
669
|
+
prevPhase: StatusPhase;
|
|
670
|
+
at: number;
|
|
671
|
+
elapsedFromStart: number;
|
|
672
|
+
watchdogTier: WatchdogTier;
|
|
673
|
+
metadata?: { toolName?: string; attempt?: number; reason?: string; agentName?: string } | undefined;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
// ---------------------------------------------------------------------------
|
|
677
|
+
// Shutdown
|
|
678
|
+
// ---------------------------------------------------------------------------
|
|
679
|
+
|
|
680
|
+
/** Published on {@link BusChannels.ShutdownRequested} as draining begins. */
|
|
681
|
+
export interface ShutdownRequestedPayload {
|
|
682
|
+
phase: TerminationPhase;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
/** Channels that mark a phase transition and carry no data. */
|
|
686
|
+
export type EmptyPayload = Record<string, never>;
|
|
687
|
+
|
|
688
|
+
// ---------------------------------------------------------------------------
|
|
689
|
+
// Payload map
|
|
690
|
+
// ---------------------------------------------------------------------------
|
|
691
|
+
|
|
692
|
+
/**
|
|
693
|
+
* Per-channel payload contract. {@link SafeEventBus} types `emit`/`on`
|
|
694
|
+
* against this map: emitters get payload checking, handlers get a typed
|
|
695
|
+
* parameter. Compile-time only; see the module doc for the runtime-boundary
|
|
696
|
+
* policy.
|
|
697
|
+
*/
|
|
698
|
+
export type BusPayloadMap = {
|
|
699
|
+
[BusChannels.SessionStart]: SessionStartPayload;
|
|
700
|
+
[BusChannels.SessionEnd]: SessionEndPayload;
|
|
701
|
+
[BusChannels.SessionParked]: SessionParkedPayload;
|
|
702
|
+
[BusChannels.SessionResumed]: SessionResumedPayload;
|
|
703
|
+
[BusChannels.SessionTurnSwitched]: SessionTurnSwitchedPayload;
|
|
704
|
+
[BusChannels.DomainLoaded]: DomainLoadedPayload;
|
|
705
|
+
[BusChannels.DomainFailed]: DomainFailedPayload;
|
|
706
|
+
[BusChannels.ConfigHotReload]: ConfigChangePayload;
|
|
707
|
+
[BusChannels.ConfigNextTurn]: ConfigChangePayload;
|
|
708
|
+
[BusChannels.ConfigRestartRequired]: ConfigChangePayload;
|
|
709
|
+
[BusChannels.ConfigReloadFailed]: ConfigReloadFailedPayload;
|
|
710
|
+
[BusChannels.PermissionRequested]: PermissionRequestedPayload;
|
|
711
|
+
[BusChannels.PermissionResolved]: PermissionResolvedPayload;
|
|
712
|
+
[BusChannels.SafetyClassified]: SafetyClassifiedPayload;
|
|
713
|
+
[BusChannels.SafetyBlocked]: SafetyBlockedPayload;
|
|
714
|
+
[BusChannels.SafetyAllowed]: SafetyAllowedPayload;
|
|
715
|
+
[BusChannels.LoopBlocked]: LoopBlockedPayload;
|
|
716
|
+
[BusChannels.ToolBudgetExceeded]: ToolBudgetExceededPayload;
|
|
717
|
+
[BusChannels.ProviderHealth]: ProviderHealthPayload;
|
|
718
|
+
[BusChannels.RuntimeNotice]: RuntimeNoticePayload;
|
|
719
|
+
[BusChannels.DispatchEnqueued]: DispatchEnqueuedPayload;
|
|
720
|
+
[BusChannels.DispatchStarted]: DispatchStartedPayload;
|
|
721
|
+
[BusChannels.DispatchProgress]: DispatchProgressPayload;
|
|
722
|
+
[BusChannels.DispatchCompleted]: DispatchCompletedPayload;
|
|
723
|
+
[BusChannels.DispatchFailed]: DispatchFailedPayload;
|
|
724
|
+
[BusChannels.CompactionBegin]: CompactionPayload;
|
|
725
|
+
[BusChannels.CompactionEnd]: CompactionPayload;
|
|
726
|
+
[BusChannels.MiddlewareHookFailed]: MiddlewareHookFailedPayload;
|
|
727
|
+
[BusChannels.ContextActivity]: ContextActivityPayload;
|
|
728
|
+
[BusChannels.ContextWarning]: ContextWarningPayload;
|
|
729
|
+
[BusChannels.ContextPruned]: ContextPrunedPayload;
|
|
730
|
+
[BusChannels.AgentStatusChanged]: AgentStatusChangedPayload;
|
|
731
|
+
[BusChannels.RunAborted]: RunAbortedPayload;
|
|
732
|
+
[BusChannels.BudgetAlert]: BudgetAlertPayload;
|
|
733
|
+
[BusChannels.ShutdownRequested]: ShutdownRequestedPayload;
|
|
734
|
+
[BusChannels.ShutdownDrained]: EmptyPayload;
|
|
735
|
+
[BusChannels.ShutdownTerminated]: EmptyPayload;
|
|
736
|
+
[BusChannels.ShutdownPersisted]: EmptyPayload;
|
|
737
|
+
};
|
|
738
|
+
|
|
739
|
+
type AssertNever<T extends never> = T;
|
|
740
|
+
/**
|
|
741
|
+
* Compile-time exhaustiveness tripwire: adding a member to BusChannels
|
|
742
|
+
* without registering its payload in BusPayloadMap fails to typecheck here.
|
|
743
|
+
*/
|
|
744
|
+
export type BusPayloadMapCoversAllChannels = AssertNever<Exclude<BusChannel, keyof BusPayloadMap>>;
|