@iowarp/clio-coder 0.3.0 → 0.3.1
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 +33 -0
- package/README.md +50 -53
- package/dist/acp-FPR54DGL.js +138 -0
- package/dist/{agents-Q4MYPMUW.js → agents-OGPIHPJH.js} +33 -25
- 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-IC3K6NIZ.js} +22 -15
- package/dist/{chunk-KKKPTZLM.js → chunk-2STGEDFV.js} +8 -1
- package/dist/chunk-3I7MS7N2.js +40 -0
- package/dist/chunk-3R73A4XB.js +69 -0
- package/dist/{chunk-26BZQOAD.js → chunk-474KN5II.js} +86 -115
- package/dist/{chunk-NI4DEJMC.js → chunk-4QKXUHSR.js} +26 -3
- package/dist/{chunk-X3BR7HWV.js → chunk-5WIGXA4T.js} +7 -1
- package/dist/{chunk-TFSSEXL6.js → chunk-673JJUWJ.js} +14 -4
- package/dist/{chunk-GNGDQYDU.js → chunk-7SS2CTV2.js} +27922 -1249
- package/dist/{chunk-7RBKDI66.js → chunk-ASND7OZK.js} +104 -12
- package/dist/{chunk-X3NE4WVW.js → chunk-BNAZZHFG.js} +7 -1
- package/dist/{chunk-RQDWMVRB.js → chunk-BSU2YIWB.js} +9 -3
- package/dist/{chunk-CLJ5HLUD.js → chunk-C4PTHK7P.js} +24 -5
- package/dist/{chunk-QV47YRF4.js → chunk-CGKSTWHD.js} +7 -1
- package/dist/{chunk-BYEU76JP.js → chunk-DKGKUHFA.js} +34 -9
- package/dist/chunk-EYOKLTMF.js +170 -0
- package/dist/{chunk-PS4PFJQP.js → chunk-FCIH3BIZ.js} +15258 -14130
- package/dist/{chunk-2J63S4SF.js → chunk-FST4FYJB.js} +82 -14
- package/dist/{chunk-3DANZDGR.js → chunk-G34LV2PF.js} +34 -9
- package/dist/{chunk-BBUH4VAA.js → chunk-GAEBEQVI.js} +34 -21
- package/dist/chunk-GB6QRBXN.js +8543 -0
- package/dist/chunk-GEP36Y4X.js +12796 -0
- package/dist/{chunk-TKHQ4DGZ.js → chunk-H6F6BYOH.js} +496 -121
- package/dist/{chunk-UGYAX5YI.js → chunk-HQQID6OA.js} +10 -5
- package/dist/chunk-IHXBNWMM.js +137 -0
- package/dist/{chunk-ME6DNWIU.js → chunk-IS3ONKU3.js} +7 -1
- package/dist/{chunk-DXQNI4PC.js → chunk-IWHMRKLL.js} +8 -1
- package/dist/chunk-K2ITRMHZ.js +642 -0
- package/dist/{chunk-KBR4MZZR.js → chunk-K5XEMXTI.js} +7 -1
- package/dist/{chunk-AMFR5YA3.js → chunk-KKNLWXI6.js} +24 -10
- package/dist/{chunk-JWHCJDCI.js → chunk-KY56HMHH.js} +145 -61
- package/dist/{chunk-E3NYWENM.js → chunk-LU4TK2PR.js} +52 -7
- package/dist/{chunk-UWIJNAOB.js → chunk-M5T5VO65.js} +109 -42
- package/dist/{chunk-JPOWPFCU.js → chunk-MAR7Y6HW.js} +38 -16
- package/dist/chunk-N6F52NLF.js +6951 -0
- package/dist/{chunk-UHTSULZS.js → chunk-NMOX6HFD.js} +20 -7
- package/dist/{chunk-WD6AJM35.js → chunk-OLBBMFRD.js} +30 -13
- package/dist/{chunk-VOO7NYPP.js → chunk-PFEFKVGL.js} +22 -6
- package/dist/{chunk-6CWDTGUC.js → chunk-PIUMUEMV.js} +7 -1
- package/dist/chunk-PV4JUBVJ.js +462 -0
- package/dist/{chunk-527KG6XR.js → chunk-Q3RUPKEJ.js} +22 -4
- package/dist/{chunk-D5YD55AR.js → chunk-Q5WJOSJ7.js} +11 -1
- package/dist/{chunk-5N2FG33Q.js → chunk-R346GLFC.js} +7 -1
- package/dist/{chunk-4UQA7NCT.js → chunk-R5KLMSBV.js} +7 -2
- package/dist/{chunk-PIDUD6M2.js → chunk-RDLVBZEO.js} +11 -6
- package/dist/{chunk-O4EJEDHO.js → chunk-RPTR2H26.js} +40 -31
- package/dist/{chunk-HBU5MTAM.js → chunk-SVNXH4L2.js} +7 -1
- package/dist/{chunk-XNISANGE.js → chunk-TEKV33Q5.js} +122 -57
- package/dist/chunk-TXOTCRLG.js +15 -0
- package/dist/{chunk-VPAWTYLY.js → chunk-WEPFGWHJ.js} +7 -1
- package/dist/{chunk-HMYNFFY4.js → chunk-XPLRXC72.js} +7 -2
- package/dist/{chunk-UU3R62TT.js → chunk-XYWBQRDM.js} +13 -4
- package/dist/{chunk-7BHLZB3A.js → chunk-ZPY3JZ5E.js} +32 -10
- package/dist/cli/index.js +39 -33
- package/dist/clio-BZVGEUFJ.js +58 -0
- package/dist/{components-JVHMUBEB.js → components-DMAOEKFB.js} +26 -9
- package/dist/{config-ZFCDBMDC.js → config-IRUQ7SE4.js} +42 -31
- package/dist/configure-S7S6F6CL.js +32 -0
- package/dist/{context-CDXTP2MP.js → context-3KWFLHJG.js} +17 -11
- package/dist/{context-E3KIFVXI.js → context-5RADCKTR.js} +33 -28
- package/dist/{context-clear-3F4PLXOS.js → context-clear-7TSNPAAI.js} +36 -28
- package/dist/{context-index-Q7YSYTR3.js → context-index-W4RLWOQH.js} +10 -4
- package/dist/{docs-YIETIWZI.js → docs-5AWSPS37.js} +16 -10
- package/dist/doctor-UC5NAJYQ.js +77 -0
- package/dist/{eval-B3KZZESM.js → eval-U6TJHRLX.js} +77 -24
- package/dist/{evidence-V67CHM35.js → evidence-YEGUW4L3.js} +34 -26
- package/dist/{evolve-YDZSUQYA.js → evolve-TXARCTPG.js} +39 -26
- package/dist/{extensions-SRG7XCAH.js → extensions-OZFJ3A3G.js} +13 -7
- package/dist/{fleet-CA2CRTVG.js → fleet-6G3DHNYE.js} +45 -37
- package/dist/fleet-preflight-DSNT37JK.js +23 -0
- package/dist/{init-2OZDJE2D.js → init-KZ5QTF6M.js} +42 -34
- package/dist/{memory-3PIQQAKX.js → memory-73ESV5YC.js} +35 -27
- package/dist/{models-DY35XI7Y.js → models-A4PVNWJK.js} +34 -23
- package/dist/{paths-5OMXW7Z4.js → paths-C4H6IV77.js} +12 -6
- package/dist/preload-6WVMHX3A.js +13 -0
- package/dist/{reset-PIFYNOS3.js → reset-BGW6OGMV.js} +17 -11
- package/dist/{run-3VSPP24F.js → run-YTPEYQOH.js} +60 -48
- package/dist/{share-D36RQCXM.js → share-YIFFV4NQ.js} +16 -10
- package/dist/{skills-F2MRLELY.js → skills-2V6RA3OQ.js} +18 -11
- package/dist/{skills-eval-E2ZTW4PL.js → skills-eval-S2TVJO4F.js} +45 -36
- package/dist/{targets-DZMEZAH4.js → targets-TYXLPB23.js} +61 -59
- package/dist/{trace-7NYCUI2J.js → trace-GGOJ6Q6Z.js} +9 -3
- package/dist/{uninstall-AD3JWHBB.js → uninstall-LLLT4F4W.js} +14 -8
- package/dist/{upgrade-WYYBKGDY.js → upgrade-33G2LMM5.js} +45 -23
- package/dist/{usage-ULIDAGFF.js → usage-ZAFSXKKG.js} +35 -27
- package/dist/version-KGEG7EPO.js +21 -0
- package/dist/{wiki-generate-PKFIX6OB.js → wiki-generate-NUQCVOQ3.js} +55 -45
- package/dist/worker/entry.js +101 -43
- package/docs/README.md +12 -9
- package/docs/acp.md +28 -5
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +23 -2
- 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 +125 -41
- package/docs/configuration-and-targets.md +88 -18
- package/docs/context-engine.md +6 -2
- package/docs/development-pipeline.md +77 -0
- package/docs/documentation-coverage.md +4 -4
- package/docs/documentation-guide.md +3 -3
- package/docs/environment-variables.md +2 -1
- package/docs/eval-runner.md +3 -3
- package/docs/evals-internal.md +2 -2
- package/docs/evidence-and-memory.md +6 -2
- package/docs/evolution.md +1 -1
- package/docs/exit-codes-and-output.md +1 -1
- package/docs/extensions-and-sharing.md +18 -11
- package/docs/fleet-demo-runbook.md +22 -23
- package/docs/fleet-dispatch.md +111 -12
- package/docs/glossary.md +107 -15
- package/docs/html/agents_blueprint.html +3 -3
- package/docs/html/alcf_blueprint.html +3 -3
- package/docs/html/architecture_blueprint.html +3 -3
- package/docs/html/commands_blueprint.html +187 -42
- package/docs/html/configuration_blueprint.html +7 -7
- package/docs/html/context_blueprint.html +3 -3
- package/docs/html/documentation_blueprint.html +1 -1
- package/docs/html/environment_blueprint.html +3 -3
- package/docs/html/eval_blueprint.html +4 -4
- package/docs/html/evals_internal_blueprint.html +3 -3
- package/docs/html/evolution_blueprint.html +3 -3
- package/docs/html/extensions_blueprint.html +3 -3
- package/docs/html/fleet_dispatch_blueprint.html +8 -8
- package/docs/html/index.html +5 -5
- package/docs/html/lifecycle_blueprint.html +4 -4
- package/docs/html/memory_blueprint.html +3 -3
- package/docs/html/middleware_blueprint.html +3 -3
- package/docs/html/models_blueprint.html +2 -2
- package/docs/html/observability_blueprint.html +2 -2
- package/docs/html/provider_adapter_blueprint.html +3 -3
- package/docs/html/safety_blueprint.html +3 -3
- package/docs/html/skills_blueprint.html +2 -2
- package/docs/html/soak_blueprint.html +3 -3
- package/docs/html/tool_usage_blueprint.html +4 -4
- package/docs/html/tools_blueprint.html +2 -2
- package/docs/html/trace_blueprint.html +3 -3
- package/docs/html/tui_design_blueprint.html +100 -40
- package/docs/html/validation_blueprint.html +1 -1
- package/docs/html/worker_dispatch_blueprint.html +3 -3
- package/docs/installation-and-lifecycle.md +62 -11
- package/docs/middleware-and-components.md +1 -1
- package/docs/model-catalog.md +2 -2
- package/docs/observability.md +3 -3
- package/docs/proactive-memory.md +12 -12
- package/docs/prompt-envelope-and-tools.md +2 -2
- package/docs/provider-adapter-cookbook.md +1 -1
- package/docs/release-cut-checklist.md +4 -0
- package/docs/safety-model.md +21 -5
- package/docs/scientific-validation.md +3 -3
- package/docs/session-lifecycle.md +2 -2
- package/docs/skills-marketplace.md +1 -1
- package/docs/time-conventions.md +101 -0
- package/docs/tool-usage.md +5 -4
- package/docs/trace-store.md +1 -1
- package/docs/troubleshooting.md +1 -1
- package/docs/tui-design.md +83 -27
- package/docs/worker-dispatch-mechanics.md +3 -3
- package/package.json +16 -16
- package/skills/README.md +5 -6
- 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/skill-marketplace.json +12 -20
- package/src/cli/acp.ts +88 -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 +34 -0
- package/src/cli/components.ts +195 -0
- package/src/cli/config-inspect.ts +330 -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 +1487 -0
- package/src/cli/context-clear.ts +76 -0
- package/src/cli/context-index.ts +102 -0
- package/src/cli/context.ts +316 -0
- package/src/cli/default-target.ts +63 -0
- package/src/cli/docs.ts +340 -0
- package/src/cli/doctor.ts +54 -0
- package/src/cli/eval.ts +315 -0
- package/src/cli/evidence.ts +222 -0
- package/src/cli/evolve.ts +219 -0
- package/src/cli/extensions.ts +205 -0
- package/src/cli/fleet.ts +827 -0
- package/src/cli/index.ts +309 -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 +180 -0
- package/src/cli/models.ts +257 -0
- package/src/cli/modes/json-stream.ts +85 -0
- package/src/cli/modes/jsonl.ts +9 -0
- package/src/cli/modes/print.ts +589 -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 +1225 -0
- package/src/cli/skills.ts +470 -0
- package/src/cli/steer-channel.ts +86 -0
- package/src/cli/targets.ts +1150 -0
- package/src/cli/text-layout.ts +102 -0
- package/src/cli/trace.ts +274 -0
- package/src/cli/uninstall.ts +405 -0
- package/src/cli/upgrade.ts +270 -0
- package/src/cli/usage.ts +869 -0
- package/src/cli/validate-model.ts +28 -0
- package/src/cli/version.ts +7 -0
- package/src/cli/wiki-generate.ts +509 -0
- package/src/core/artifact-paths.ts +43 -0
- package/src/core/bash-exec.ts +242 -0
- package/src/core/boot-trace.ts +37 -0
- package/src/core/bus-events.ts +728 -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/config.ts +1593 -0
- package/src/core/context-floor.ts +33 -0
- package/src/core/defaults.ts +625 -0
- package/src/core/domain-loader.ts +170 -0
- package/src/core/event-bus.ts +94 -0
- package/src/core/file-references.ts +282 -0
- package/src/core/guardrails.ts +185 -0
- package/src/core/headless-permission.ts +21 -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/release.ts +2 -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 +193 -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 +220 -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 +207 -0
- package/src/core/termination.ts +202 -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 +94 -0
- package/src/domains/config/contract.ts +22 -0
- package/src/domains/config/extension.ts +136 -0
- package/src/domains/config/index.ts +13 -0
- package/src/domains/config/keybindings.ts +164 -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 +1409 -0
- package/src/domains/context/clear.ts +86 -0
- package/src/domains/context/clio-md.ts +327 -0
- package/src/domains/context/codewiki/cmake.ts +356 -0
- package/src/domains/context/codewiki/cooperative.ts +46 -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 +1614 -0
- package/src/domains/context/codewiki/tree-sitter.ts +771 -0
- package/src/domains/context/contract.ts +62 -0
- package/src/domains/context/excluded-dirs.ts +1 -0
- package/src/domains/context/extension.ts +407 -0
- package/src/domains/context/fingerprint.ts +196 -0
- package/src/domains/context/index.ts +164 -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 +510 -0
- package/src/domains/context/project-rules.ts +227 -0
- package/src/domains/context/prompt-context.ts +62 -0
- package/src/domains/context/refresh.ts +170 -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 +590 -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 +270 -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 +368 -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 +5869 -0
- package/src/domains/dispatch/failure-classification.ts +141 -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 +224 -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 +378 -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 +277 -0
- package/src/domains/dispatch/tool-stats.ts +132 -0
- package/src/domains/dispatch/transport.ts +209 -0
- package/src/domains/dispatch/types.ts +785 -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 +566 -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 +141 -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 +1714 -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/index.ts +94 -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 +174 -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 +187 -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 +556 -0
- package/src/domains/prompts/contract.ts +30 -0
- package/src/domains/prompts/extension.ts +304 -0
- package/src/domains/prompts/fragment-loader.ts +139 -0
- package/src/domains/prompts/fragments/identity/clio.md +3 -2
- package/src/domains/prompts/fragments/identity/self-awareness.md +63 -0
- package/src/domains/prompts/fragments/operating/contract.md +10 -1
- 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 +69 -0
- package/src/domains/providers/auth/backend-memory.ts +17 -0
- package/src/domains/providers/auth/index.ts +37 -0
- package/src/domains/providers/auth/oauth.ts +36 -0
- package/src/domains/providers/auth/storage.ts +667 -0
- package/src/domains/providers/capabilities.ts +50 -0
- package/src/domains/providers/catalog.ts +162 -0
- package/src/domains/providers/contract.ts +151 -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 +536 -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 +712 -0
- package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +2 -2
- package/src/domains/providers/plugins.ts +59 -0
- package/src/domains/providers/probe/fingerprint.ts +44 -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 +166 -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/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-logger.ts +32 -0
- package/src/domains/providers/runtimes/common/local-synth.ts +165 -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-native.ts +491 -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 +238 -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 +218 -0
- package/src/domains/providers/types/runtime-descriptor.ts +170 -0
- package/src/domains/providers/types/target-descriptor.ts +38 -0
- package/src/domains/resources/collision.ts +92 -0
- package/src/domains/resources/common-loader.ts +140 -0
- package/src/domains/resources/contract.ts +25 -0
- package/src/domains/resources/extension.ts +61 -0
- package/src/domains/resources/index.ts +74 -0
- package/src/domains/resources/loader.ts +86 -0
- package/src/domains/resources/manifest.ts +6 -0
- package/src/domains/resources/prompts/loader.ts +232 -0
- package/src/domains/resources/prompts/substitute.ts +65 -0
- package/src/domains/resources/skills/content-hash.ts +105 -0
- package/src/domains/resources/skills/evals.ts +175 -0
- package/src/domains/resources/skills/install.ts +410 -0
- package/src/domains/resources/skills/loader.ts +978 -0
- package/src/domains/resources/skills/marketplace.ts +255 -0
- package/src/domains/resources/skills/provenance-pin.ts +115 -0
- package/src/domains/safety/action-classifier.ts +268 -0
- package/src/domains/safety/approval-axis.ts +23 -0
- package/src/domains/safety/audit.ts +487 -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 +186 -0
- package/src/domains/session/compaction/compact.ts +493 -0
- package/src/domains/session/compaction/cut-point.ts +171 -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 +147 -0
- package/src/domains/session/context-accounting.ts +583 -0
- package/src/domains/session/context-ledger.ts +348 -0
- package/src/domains/session/contract.ts +144 -0
- package/src/domains/session/cwd-fallback.ts +65 -0
- package/src/domains/session/entries.ts +509 -0
- package/src/domains/session/extension.ts +322 -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 +238 -0
- package/src/domains/session/task-board.ts +375 -0
- package/src/domains/session/tree/active-path.ts +98 -0
- package/src/domains/session/tree/fork.ts +160 -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 +161 -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/engine/acp/adapter.ts +397 -0
- package/src/engine/acp/errors.ts +32 -0
- package/src/engine/acp/event-mapper.ts +154 -0
- package/src/engine/acp/server.ts +656 -0
- package/src/engine/acp/tool-mediator.ts +686 -0
- package/src/engine/acp/transport.ts +654 -0
- package/src/engine/acp/types.ts +170 -0
- package/src/engine/agent.ts +29 -0
- package/src/engine/ai.ts +202 -0
- package/src/engine/alcf-oauth.ts +198 -0
- package/src/engine/antigravity/subprocess-runtime.ts +205 -0
- package/src/engine/apis/degraded-inference.ts +95 -0
- package/src/engine/apis/index.ts +20 -0
- package/src/engine/apis/llamacpp-residency.ts +252 -0
- package/src/engine/apis/lmstudio-native.ts +1438 -0
- package/src/engine/apis/lmstudio-residency.ts +92 -0
- package/src/engine/apis/ollama-native.ts +507 -0
- package/src/engine/apis/openai-completions.ts +716 -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 +640 -0
- package/src/engine/apis/resident-models.ts +42 -0
- package/src/engine/apis/sampling-overrides.ts +38 -0
- package/src/engine/apis/thinking-replay.ts +11 -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/external-subprocess.ts +23 -0
- package/src/engine/harmony-response.ts +165 -0
- package/src/engine/loop-guard.ts +1127 -0
- package/src/engine/oauth.ts +192 -0
- package/src/engine/pi-mono-names.ts +13 -0
- package/src/engine/provider-payload.ts +315 -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/tui.ts +103 -0
- package/src/engine/types.ts +66 -0
- package/src/engine/worker-events.ts +100 -0
- package/src/engine/worker-runtime.ts +1022 -0
- package/src/engine/worker-tools.ts +203 -0
- package/src/entry/orchestrator.ts +1873 -0
- package/src/interactive/application-controller.ts +346 -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 +865 -0
- package/src/interactive/chat-panel.ts +1694 -0
- package/src/interactive/chat-renderer.ts +1038 -0
- package/src/interactive/clio-editor.ts +166 -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 +220 -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 +303 -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 +534 -0
- package/src/interactive/footer/notifications.ts +275 -0
- package/src/interactive/footer/widgets.ts +1246 -0
- package/src/interactive/footer-panel.ts +187 -0
- package/src/interactive/format-time.ts +85 -0
- package/src/interactive/index.ts +11 -0
- package/src/interactive/interactive-application.ts +755 -0
- package/src/interactive/interactive-event-projection.ts +380 -0
- package/src/interactive/interactive-input-runtime.ts +261 -0
- package/src/interactive/interactive-presentation.ts +452 -0
- package/src/interactive/interactive-shell.ts +134 -0
- package/src/interactive/interactive-slash-runtime.ts +492 -0
- package/src/interactive/interactive-subscriptions.ts +111 -0
- package/src/interactive/interactive-tickers.ts +152 -0
- package/src/interactive/keybinding-manager.ts +496 -0
- package/src/interactive/layout.ts +20 -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 +217 -0
- package/src/interactive/overlay-key-routing.ts +213 -0
- package/src/interactive/overlay-lifecycle.ts +413 -0
- package/src/interactive/overlay-model-selectors.ts +127 -0
- package/src/interactive/overlay-permission-lifecycle.ts +344 -0
- package/src/interactive/overlay-resource-openers.ts +112 -0
- package/src/interactive/overlay-session-lifecycle.ts +270 -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/extensions.ts +54 -0
- package/src/interactive/overlays/help-reference.ts +140 -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 +1091 -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 +266 -0
- package/src/interactive/overlays/settings.ts +3363 -0
- package/src/interactive/overlays/skills-hub.ts +237 -0
- package/src/interactive/overlays/tree-selector.ts +387 -0
- package/src/interactive/permission-overlay.ts +170 -0
- package/src/interactive/render-trace.ts +125 -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 +126 -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 +1104 -0
- package/src/interactive/renderers/worker-entry.ts +264 -0
- package/src/interactive/session-last-turn.ts +186 -0
- package/src/interactive/session-transcript.ts +105 -0
- package/src/interactive/session-usage-reseed.ts +74 -0
- package/src/interactive/slash-autocomplete.ts +364 -0
- package/src/interactive/slash-commands.ts +1319 -0
- package/src/interactive/slash-spec.ts +453 -0
- package/src/interactive/status/controller.ts +256 -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/tasks-overlay.ts +186 -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 +854 -0
- package/src/interactive/turn-middleware.ts +283 -0
- package/src/interactive/turn-persistence.ts +441 -0
- package/src/interactive/turn-queues.ts +169 -0
- package/src/interactive/turn-recovery.ts +306 -0
- package/src/interactive/turn-runtime.ts +802 -0
- package/src/interactive/turn-state.ts +123 -0
- package/src/interactive/view/artifacts.ts +1342 -0
- package/src/interactive/view/view-overlay.ts +732 -0
- package/src/interactive/welcome-dashboard.ts +536 -0
- package/src/interactive/worker-receipts.ts +94 -0
- package/src/interactive/worker-replay.ts +111 -0
- package/src/interactive/worker-share.ts +100 -0
- package/src/interactive/worker-stream.ts +442 -0
- package/src/interactive/workspace-facts.ts +141 -0
- package/src/tools/agent-tools.ts +382 -0
- package/src/tools/artifact.ts +103 -0
- package/src/tools/ask-user.ts +656 -0
- package/src/tools/bash.ts +176 -0
- package/src/tools/bootstrap.ts +474 -0
- package/src/tools/codewiki/code-nav.ts +563 -0
- package/src/tools/codewiki/shared.ts +115 -0
- package/src/tools/compete-worktrees.ts +898 -0
- package/src/tools/context/docs-engine.ts +619 -0
- package/src/tools/context/index.ts +435 -0
- package/src/tools/credential-present.ts +151 -0
- package/src/tools/dispatch-arguments.ts +228 -0
- package/src/tools/dispatch-plan.ts +741 -0
- package/src/tools/dispatch-scout.ts +461 -0
- package/src/tools/dispatch.ts +3338 -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 +292 -0
- package/src/tools/grep.ts +495 -0
- package/src/tools/ignore-policy.ts +169 -0
- package/src/tools/ledger.ts +206 -0
- package/src/tools/ls.ts +110 -0
- package/src/tools/monitor.ts +797 -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 +1157 -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.ts +88 -0
- package/src/tools/string-enum.ts +15 -0
- package/src/tools/tasks.ts +168 -0
- package/src/tools/truncate-utf8.ts +17 -0
- package/src/tools/truncate.ts +202 -0
- package/src/tools/verify/frontend.ts +685 -0
- package/src/tools/verify/index.ts +66 -0
- package/src/tools/verify/scripts.ts +108 -0
- package/src/tools/web-fetch.ts +777 -0
- package/src/tools/worker-evidence.ts +215 -0
- package/src/tools/write.ts +52 -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 +257 -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 +654 -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-5LDRNKX2.js +0 -1063
- package/dist/chunk-67MTHP2E.js +0 -135
- package/dist/chunk-GOTUR54M.js +0 -9
- package/dist/chunk-TPOCL34A.js +0 -2876
- package/dist/chunk-XV4ZJ6ZM.js +0 -3177
- 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/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
package/src/core/xdg.ts
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, statSync } from "node:fs";
|
|
2
|
+
import { homedir, platform } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Resolve per-platform config/data/state/cache directories for Clio.
|
|
7
|
+
*
|
|
8
|
+
* This is the single resolution order, documented once:
|
|
9
|
+
* 1. Platform defaults.
|
|
10
|
+
* Linux: XDG Base Directory spec (XDG_CONFIG_HOME, XDG_DATA_HOME,
|
|
11
|
+
* XDG_STATE_HOME, XDG_CACHE_HOME).
|
|
12
|
+
* macOS: ~/Library/Application Support/clio-coder/{config,data,state} and
|
|
13
|
+
* ~/Library/Caches/clio-coder.
|
|
14
|
+
* Windows: %APPDATA%/clio-coder/{config,data} and %LOCALAPPDATA%/clio-coder/{state,cache}.
|
|
15
|
+
* Every root is distinct on every platform; no root nests inside another.
|
|
16
|
+
* 2. CLIO_CODER_HOME replaces all four roots symmetrically with
|
|
17
|
+
* CLIO_CODER_HOME/{config,data,state,cache}.
|
|
18
|
+
* 3. CLIO_CODER_CONFIG_DIR / CLIO_CODER_DATA_DIR / CLIO_CODER_STATE_DIR / CLIO_CODER_CACHE_DIR each
|
|
19
|
+
* override their one root and beat CLIO_CODER_HOME (most specific wins).
|
|
20
|
+
*
|
|
21
|
+
* Role contents: config holds user-authored files (settings, credentials,
|
|
22
|
+
* agents, skills, prompts, extensions, runtimes); data holds durable artifacts
|
|
23
|
+
* (memory, evidence, evals); state holds machine-produced session state
|
|
24
|
+
* (sessions, audit, receipts, runs.json, recent-models.json, install.json,
|
|
25
|
+
* interviews, scratch); cache holds disposable derived files.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
export interface ClioDirs {
|
|
29
|
+
config: string;
|
|
30
|
+
data: string;
|
|
31
|
+
state: string;
|
|
32
|
+
cache: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
let cachedConfigDir: string | undefined;
|
|
36
|
+
let cachedDataDir: string | undefined;
|
|
37
|
+
let cachedStateDir: string | undefined;
|
|
38
|
+
let cachedCacheDir: string | undefined;
|
|
39
|
+
|
|
40
|
+
function envOrNull(key: string): string | null {
|
|
41
|
+
const v = process.env[key]?.trim();
|
|
42
|
+
return v && v.length > 0 ? v : null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function platformDefaults(): ClioDirs {
|
|
46
|
+
const p = platform();
|
|
47
|
+
const h = homedir();
|
|
48
|
+
if (p === "win32") {
|
|
49
|
+
const appData = process.env.APPDATA ?? join(h, "AppData", "Roaming");
|
|
50
|
+
const localAppData = process.env.LOCALAPPDATA ?? join(h, "AppData", "Local");
|
|
51
|
+
return {
|
|
52
|
+
config: join(appData, "clio-coder", "config"),
|
|
53
|
+
data: join(appData, "clio-coder", "data"),
|
|
54
|
+
state: join(localAppData, "clio-coder", "state"),
|
|
55
|
+
cache: join(localAppData, "clio-coder", "cache"),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (p === "darwin") {
|
|
59
|
+
const base = join(h, "Library", "Application Support", "clio-coder");
|
|
60
|
+
return {
|
|
61
|
+
config: join(base, "config"),
|
|
62
|
+
data: join(base, "data"),
|
|
63
|
+
state: join(base, "state"),
|
|
64
|
+
cache: join(h, "Library", "Caches", "clio-coder"),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const xdgConfig = process.env.XDG_CONFIG_HOME ?? join(h, ".config");
|
|
68
|
+
const xdgData = process.env.XDG_DATA_HOME ?? join(h, ".local", "share");
|
|
69
|
+
const xdgState = process.env.XDG_STATE_HOME ?? join(h, ".local", "state");
|
|
70
|
+
const xdgCache = process.env.XDG_CACHE_HOME ?? join(h, ".cache");
|
|
71
|
+
return {
|
|
72
|
+
config: join(xdgConfig, "clio-coder"),
|
|
73
|
+
data: join(xdgData, "clio-coder"),
|
|
74
|
+
state: join(xdgState, "clio-coder"),
|
|
75
|
+
cache: join(xdgCache, "clio-coder"),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function ensureDir(dir: string): string {
|
|
80
|
+
try {
|
|
81
|
+
mkdirSync(dir, { recursive: true });
|
|
82
|
+
} catch (err) {
|
|
83
|
+
const e = err as NodeJS.ErrnoException;
|
|
84
|
+
if (e.code !== "EEXIST") throw err;
|
|
85
|
+
}
|
|
86
|
+
const s = statSync(dir);
|
|
87
|
+
if (!s.isDirectory()) throw new Error(`Expected directory at ${dir}`);
|
|
88
|
+
return dir;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function clioHomeOrNull(): string | null {
|
|
92
|
+
return envOrNull("CLIO_CODER_HOME");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function resolveRole(specificVar: string, role: keyof ClioDirs, defaults: ClioDirs): string {
|
|
96
|
+
const specific = envOrNull(specificVar);
|
|
97
|
+
if (specific) return specific;
|
|
98
|
+
const home = clioHomeOrNull();
|
|
99
|
+
if (home) return join(home, role);
|
|
100
|
+
return defaults[role];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function resolveClioDirs(): ClioDirs {
|
|
104
|
+
const defaults = platformDefaults();
|
|
105
|
+
return {
|
|
106
|
+
config: resolveRole("CLIO_CODER_CONFIG_DIR", "config", defaults),
|
|
107
|
+
data: resolveRole("CLIO_CODER_DATA_DIR", "data", defaults),
|
|
108
|
+
state: resolveRole("CLIO_CODER_STATE_DIR", "state", defaults),
|
|
109
|
+
cache: resolveRole("CLIO_CODER_CACHE_DIR", "cache", defaults),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export function clioConfigDir(): string {
|
|
114
|
+
if (cachedConfigDir) return cachedConfigDir;
|
|
115
|
+
cachedConfigDir = ensureDir(resolveClioDirs().config);
|
|
116
|
+
return cachedConfigDir;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export function clioDataDir(): string {
|
|
120
|
+
if (cachedDataDir) return cachedDataDir;
|
|
121
|
+
cachedDataDir = ensureDir(resolveClioDirs().data);
|
|
122
|
+
return cachedDataDir;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export function clioStateDir(): string {
|
|
126
|
+
if (cachedStateDir) return cachedStateDir;
|
|
127
|
+
cachedStateDir = ensureDir(resolveClioDirs().state);
|
|
128
|
+
return cachedStateDir;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export function clioCacheDir(): string {
|
|
132
|
+
if (cachedCacheDir) return cachedCacheDir;
|
|
133
|
+
cachedCacheDir = ensureDir(resolveClioDirs().cache);
|
|
134
|
+
return cachedCacheDir;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export function clioStatePath(): string {
|
|
138
|
+
return cachedStateDir ?? resolveClioDirs().state;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* True when the state root this process resolved is no longer on disk.
|
|
143
|
+
*
|
|
144
|
+
* `clio-coder uninstall` removes the whole root while processes holding session
|
|
145
|
+
* writers, ledgers and audit files are still running, and every writer under
|
|
146
|
+
* the root mkdirs its parent back: `safeResourceWrite` does it before the temp
|
|
147
|
+
* file, the state file lock does it before the critical section, the audit
|
|
148
|
+
* writer does it before opening the day's file. A write landing after the
|
|
149
|
+
* removal therefore recreated the state home, so an uninstall that reported
|
|
150
|
+
* success left one behind and the next `clio-coder` start read state from a home that
|
|
151
|
+
* was supposed to be gone. The live case was the shutdown checkpoint, roughly
|
|
152
|
+
* two minutes late, rebuilding the root around a meta.json and tree.json that
|
|
153
|
+
* announced `lastCheckpointReason: shutdown`.
|
|
154
|
+
*
|
|
155
|
+
* "Removed" and "never created" are not the same thing, and only the first is a
|
|
156
|
+
* reason to refuse a write. With no cached root this process has not resolved
|
|
157
|
+
* one yet, so a writer creating it is an ordinary first run; the audit writer
|
|
158
|
+
* reaches its first row before anything else has called `clioStateDir()`, and
|
|
159
|
+
* treating that as an uninstall silently disabled audit on a fresh install.
|
|
160
|
+
* Reads the cache directly rather than `clioStateDir()` because the latter
|
|
161
|
+
* creates the directory it is being asked about.
|
|
162
|
+
*
|
|
163
|
+
* Every writer under the state root calls this before it touches disk, and
|
|
164
|
+
* again inside whatever lock it holds, because the removal can land while the
|
|
165
|
+
* call waits for a sibling process to leave its critical section.
|
|
166
|
+
*/
|
|
167
|
+
export function stateRootRemoved(): boolean {
|
|
168
|
+
if (cachedStateDir === undefined) return false;
|
|
169
|
+
return !existsSync(cachedStateDir);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export function resetXdgCache(): void {
|
|
173
|
+
cachedConfigDir = undefined;
|
|
174
|
+
cachedDataDir = undefined;
|
|
175
|
+
cachedStateDir = undefined;
|
|
176
|
+
cachedCacheDir = undefined;
|
|
177
|
+
}
|
|
@@ -4,7 +4,7 @@ name: Architect
|
|
|
4
4
|
description: Designs coding changes across boundaries, contracts, migrations, and validation gates; slices an existing plan into an executable dependency-ordered sprint via its bound cut-it skill.
|
|
5
5
|
tools:
|
|
6
6
|
required: [artifact, context]
|
|
7
|
-
optional: [read, grep, find, ls, code_nav, git]
|
|
7
|
+
optional: [read, grep, find, ls, code_nav, git, ledger]
|
|
8
8
|
skills: [cut-it]
|
|
9
9
|
audience: base
|
|
10
10
|
category: plan
|
|
@@ -12,7 +12,7 @@ capabilityClass: artifact-write
|
|
|
12
12
|
latencyClass: deep
|
|
13
13
|
projectContextTier: bounded
|
|
14
14
|
budget: {toolCalls: 32, readReserve: 5, synthesis: true}
|
|
15
|
-
resultContract: {kind: architect-plan, path: PLAN.md}
|
|
15
|
+
resultContract: {kind: architect-plan, path: .clio-coder/artifacts/PLAN.md}
|
|
16
16
|
tags: [architecture, boundaries, migration]
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -27,7 +27,7 @@ Use codewiki tools only when the assignment is navigation-heavy. Otherwise rely
|
|
|
27
27
|
Prefer extending existing contracts over adding abstractions unless the new surface removes real complexity.
|
|
28
28
|
Separate the required implementation slice from optional follow-up work.
|
|
29
29
|
Call out prompt, safety, persistence, worker-runtime, and test consequences when they apply.
|
|
30
|
-
Use `artifact` (kind="plan") only when the result should become a reviewable
|
|
30
|
+
Use `artifact` (kind="plan") only when the result should become a reviewable plan document.
|
|
31
31
|
When the operator wants an executable sprint rather than a design narrative, load `cut-it` via `context` (scope="skills") and emit dependency-ordered slices with done-when criteria.
|
|
32
32
|
Do not edit source files, tests, configs, or generated artifacts from this role.
|
|
33
|
-
Write the plan with `artifact` (kind="plan") at
|
|
33
|
+
Write the plan with `artifact` (kind="plan") and no path argument, which lands it at `.clio-coder/artifacts/PLAN.md`. That integrity-recorded artifact is this role's result contract; your final response carries no schema, so close with a short pointer at the plan you wrote.
|
|
@@ -4,8 +4,8 @@ name: Coder
|
|
|
4
4
|
description: Implements bounded code changes, repairs, and behavior-preserving refactors.
|
|
5
5
|
tools:
|
|
6
6
|
required: [read, {anyOf: [write, edit]}, context]
|
|
7
|
-
optional: [grep, find, ls, web_fetch, git, verify, code_nav, bash]
|
|
8
|
-
skills: [
|
|
7
|
+
optional: [grep, find, ls, web_fetch, git, verify, code_nav, bash, ledger]
|
|
8
|
+
skills: [fix-issue, ship]
|
|
9
9
|
audience: base
|
|
10
10
|
category: implement
|
|
11
11
|
capabilityClass: workspace-edit
|
|
@@ -29,3 +29,4 @@ Run the narrowest useful validation first, then broaden when risk or shared beha
|
|
|
29
29
|
Use `git` (op=diff) before finishing to verify the diff matches the task.
|
|
30
30
|
If a requested simplification would change behavior, stop and report the boundary.
|
|
31
31
|
Your entire final response is one JSON object and nothing else, with no prose or code fence around it: `{"mutatedPaths":["..."],"validations":[{"name":"...","passed":true,"evidence":"..."}]}`. Report every mutation and at least one concrete validation result.
|
|
32
|
+
`validations` is never empty and never a list of strings. Each entry is one check you actually made, shaped like `{"name":"npm test","passed":true,"evidence":"exit 0"}`, with no other keys. When the task changed nothing, the read or command you did run is still the validation: name it and quote what it showed.
|
|
@@ -4,7 +4,7 @@ name: Debugger
|
|
|
4
4
|
description: Diagnoses failing code, tests, receipts, or runtime behavior without making edits.
|
|
5
5
|
tools:
|
|
6
6
|
required: [verify]
|
|
7
|
-
optional: [read, grep, find, ls, git, code_nav]
|
|
7
|
+
optional: [read, grep, find, ls, git, code_nav, ledger]
|
|
8
8
|
skills: []
|
|
9
9
|
audience: base
|
|
10
10
|
category: quality
|
|
@@ -4,7 +4,7 @@ name: Documenter
|
|
|
4
4
|
description: Updates developer-facing docs, examples, and concise operational runbooks.
|
|
5
5
|
tools:
|
|
6
6
|
required: [read, {anyOf: [write, edit]}]
|
|
7
|
-
optional: [grep, find, ls, git, verify, code_nav, context]
|
|
7
|
+
optional: [grep, find, ls, git, verify, code_nav, context, ledger]
|
|
8
8
|
skills: []
|
|
9
9
|
audience: base
|
|
10
10
|
category: implement
|
|
@@ -4,8 +4,8 @@ name: Git Master
|
|
|
4
4
|
description: Executes bounded git operations end-to-end. Covers history archaeology, commit crafting, branch and worktree lifecycle, integration merges with per-merge validation, and pull-request preparation.
|
|
5
5
|
tools:
|
|
6
6
|
required: [read, {anyOf: [write, edit]}, context, git]
|
|
7
|
-
optional: [bash, grep, find, ls, code_nav]
|
|
8
|
-
skills: [
|
|
7
|
+
optional: [bash, grep, find, ls, code_nav, ledger]
|
|
8
|
+
skills: [fix-issue, ship, worktree-create, worktree-merge]
|
|
9
9
|
audience: base
|
|
10
10
|
category: implement
|
|
11
11
|
capabilityClass: workspace-edit
|
|
@@ -21,7 +21,7 @@ tags: [git, commit, worktree, merge, pr, history]
|
|
|
21
21
|
You are Git Master, the base agent for repository state operations.
|
|
22
22
|
Start by restating the assigned git task and the exact end state it must produce.
|
|
23
23
|
Inspect before mutating: `git` (op=status) and op=diff before any add, commit, merge, or worktree change; read `git log` before any history claim.
|
|
24
|
-
Load the bound skill that matches the task (
|
|
24
|
+
Load the bound skill that matches the task (fix-issue, ship, worktree-create, worktree-merge) and follow its steps instead of improvising the workflow.
|
|
25
25
|
Local operations only, unless the task explicitly orders otherwise: never push, open a PR, tag, publish, or alter remotes on your own judgment; when a task stops at a boundary, report the boundary.
|
|
26
26
|
Never run destructive history commands (`reset --hard`, `push --force`, `clean -fd`, branch -D on unmerged work) unless the task names the exact command and target.
|
|
27
27
|
Stage files by explicit path after reviewing the untracked list; never blind `git add -A` past unreviewed or secret-shaped files.
|
|
@@ -4,7 +4,7 @@ name: Provenance
|
|
|
4
4
|
description: Shadow evidence, receipt, diff, and telemetry reader for source-backed handoffs.
|
|
5
5
|
tools:
|
|
6
6
|
required: [read]
|
|
7
|
-
optional: [grep, find, ls, git]
|
|
7
|
+
optional: [grep, find, ls, git, ledger]
|
|
8
8
|
skills: []
|
|
9
9
|
audience: shadow
|
|
10
10
|
category: operations
|
|
@@ -4,7 +4,7 @@ name: Researcher
|
|
|
4
4
|
description: Shadow external-source researcher for coding decisions, official docs, standards, release notes, and academic papers.
|
|
5
5
|
tools:
|
|
6
6
|
required: [read]
|
|
7
|
-
optional: [web_fetch, context]
|
|
7
|
+
optional: [web_fetch, context, ledger]
|
|
8
8
|
skills: []
|
|
9
9
|
audience: shadow
|
|
10
10
|
category: research
|
|
@@ -4,7 +4,7 @@ name: Scout
|
|
|
4
4
|
description: Use for any broad repository reconnaissance, codebase orientation, structure/entry-point mapping, or multi-file symbol hunting; returns cited findings fast without spending main-context tool calls.
|
|
5
5
|
tools:
|
|
6
6
|
required: [read]
|
|
7
|
-
optional: [grep, find, ls, context, code_nav, git]
|
|
7
|
+
optional: [grep, find, ls, context, code_nav, git, ledger]
|
|
8
8
|
skills: []
|
|
9
9
|
audience: shadow
|
|
10
10
|
category: explore
|
|
@@ -4,7 +4,7 @@ name: Tester
|
|
|
4
4
|
description: Adds focused deterministic tests for regressions and missing coverage.
|
|
5
5
|
tools:
|
|
6
6
|
required: [read, {anyOf: [write, edit]}]
|
|
7
|
-
optional: [grep, find, ls, git, verify, code_nav]
|
|
7
|
+
optional: [grep, find, ls, git, verify, code_nav, ledger]
|
|
8
8
|
skills: []
|
|
9
9
|
audience: base
|
|
10
10
|
category: quality
|
|
@@ -4,7 +4,7 @@ name: Verifier
|
|
|
4
4
|
description: Independently runs and reports test, lint, build, review, and release gates.
|
|
5
5
|
tools:
|
|
6
6
|
required: [verify]
|
|
7
|
-
optional: [read, grep, find, ls, git, code_nav]
|
|
7
|
+
optional: [read, grep, find, ls, git, code_nav, ledger]
|
|
8
8
|
skills: []
|
|
9
9
|
audience: base
|
|
10
10
|
category: quality
|
|
@@ -4,7 +4,7 @@ name: Wiki Writer
|
|
|
4
4
|
description: Plans one repository wiki, or researches and writes one wiki page, against a supplied plan.
|
|
5
5
|
tools:
|
|
6
6
|
required: [read, {anyOf: [write, edit]}]
|
|
7
|
-
optional: [grep, find, ls, code_nav, context]
|
|
7
|
+
optional: [grep, find, ls, code_nav, context, ledger]
|
|
8
8
|
skills: []
|
|
9
9
|
audience: base
|
|
10
10
|
category: implement
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import type { AgentRecipe } from "./recipe.js";
|
|
2
|
+
import { type AgentSpec, isUserVisibleAgent, normalizeAgentSpec } from "./spec.js";
|
|
3
|
+
|
|
4
|
+
const DEFAULT_DISPATCH_AGENT_ID = "coder";
|
|
5
|
+
|
|
6
|
+
export interface AgentCatalogSections {
|
|
7
|
+
stable: string;
|
|
8
|
+
volatile: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function renderAgentCatalogSections(recipes: ReadonlyArray<AgentRecipe>): AgentCatalogSections {
|
|
12
|
+
return renderAgentCatalogSectionsFromSpecs(recipes.map(normalizeAgentSpec));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** Keeps one roster line short enough that the whole fleet block stays near its token budget. */
|
|
16
|
+
const FLEET_PROMPT_PURPOSE_MAX_CHARS = 64;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The delegation default stated as a rule the model can evaluate against the
|
|
20
|
+
* task in front of it. The E19 drive found the previous phrasing lost to
|
|
21
|
+
* inertia every time: an incentive ("dispatch is the cheap path") is not a
|
|
22
|
+
* test, so a model that had already started reading simply kept reading. A
|
|
23
|
+
* threshold it can count against is.
|
|
24
|
+
*/
|
|
25
|
+
export const FLEET_DELEGATION_RULE =
|
|
26
|
+
"Delegate when the task has two or more independent file-scoped subtasks, or any broad exploration. You keep synthesis and validation; a single narrow change stays with you.";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* S3 handed two files to a worker, then edited both itself before dispatching,
|
|
30
|
+
* reverted one, and disclosed neither. The delegation rule above says what to
|
|
31
|
+
* hand off; this says what handing off costs you.
|
|
32
|
+
*/
|
|
33
|
+
export const FLEET_HANDOFF_RULE =
|
|
34
|
+
"A file you assigned to a worker is not yours to edit while its dispatch is pending or after it succeeds; if you already changed it, say so in your report.";
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* R5's admission correctly refused a verifier for mutation work and named the
|
|
38
|
+
* mismatch, and the final answer to the operator never mentioned it. A refusal
|
|
39
|
+
* the operator cannot see reads as a silent agent swap.
|
|
40
|
+
*/
|
|
41
|
+
export const FLEET_REFUSAL_DISCLOSURE =
|
|
42
|
+
"When admission refuses a dispatch, report the refusal and the reason it gave; never substitute another agent without saying why.";
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* R6 issued five near-identical `tester` dispatches because each differed
|
|
46
|
+
* textually, so a string-identity rule never fired. The test that catches that
|
|
47
|
+
* run is about the work, and the model needs somewhere else to go than a sixth
|
|
48
|
+
* dispatch.
|
|
49
|
+
*/
|
|
50
|
+
export const FLEET_ANTI_CHURN_RULE =
|
|
51
|
+
"A dispatch with the same target files and the same goal as one you already ran is a repeat however differently you word it: read that run's receipt, or run the check yourself, instead of dispatching again.";
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* `agent:"auto"` baselines from task text alone and cannot see the shape of a
|
|
55
|
+
* probe, so the jobs it most often misroutes are named against the roster ids
|
|
56
|
+
* directly below this line.
|
|
57
|
+
*/
|
|
58
|
+
export const FLEET_SPECIALIST_ROUTING =
|
|
59
|
+
"Pick by job: receipts, diffs, or telemetry -> provenance; external docs -> researcher; broad recon -> scout; tests -> tester; gates or review -> verifier.";
|
|
60
|
+
|
|
61
|
+
function fleetPromptPurpose(description: string): string {
|
|
62
|
+
const trimmed = description.trim().replace(/\s+/gu, " ");
|
|
63
|
+
if (trimmed.length === 0) return "";
|
|
64
|
+
// One sentence is the useful unit: recipe descriptions put the agent's job
|
|
65
|
+
// first and its qualifications after the first period.
|
|
66
|
+
const stop = trimmed.indexOf(". ");
|
|
67
|
+
const sentence = stop > 0 ? trimmed.slice(0, stop) : trimmed.replace(/\.$/u, "");
|
|
68
|
+
if (sentence.length <= FLEET_PROMPT_PURPOSE_MAX_CHARS) return sentence;
|
|
69
|
+
const cut = sentence.lastIndexOf(" ", FLEET_PROMPT_PURPOSE_MAX_CHARS);
|
|
70
|
+
return `${sentence.slice(0, cut > 0 ? cut : FLEET_PROMPT_PURPOSE_MAX_CHARS).trimEnd()}...`;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function fleetPromptLine(spec: AgentSpec): string {
|
|
74
|
+
const budget = spec.budget ? `${spec.budget.toolCalls} calls` : "default budget";
|
|
75
|
+
const purpose = fleetPromptPurpose(spec.description);
|
|
76
|
+
return `- ${spec.id} (${spec.capabilityClass}, ${budget})${purpose.length > 0 ? `: ${purpose}` : ""}`;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Compact roster for the compiled session prompt. The full catalog above is a
|
|
81
|
+
* tool result the model has to ask for; this is the same roster small enough to
|
|
82
|
+
* live in the prompt, so choosing a specialist never costs a round trip. Shadow
|
|
83
|
+
* agents are listed because they are dispatchable, marked so the model does not
|
|
84
|
+
* offer them to the operator as `/run` choices. Byte-stable for a given spec
|
|
85
|
+
* set: the prompt prefix must not churn between turns.
|
|
86
|
+
*/
|
|
87
|
+
export function renderFleetPromptSection(input: ReadonlyArray<AgentSpec>): string {
|
|
88
|
+
const specs = input.slice().sort((a, b) => {
|
|
89
|
+
const category = a.category.localeCompare(b.category);
|
|
90
|
+
return category === 0 ? a.id.localeCompare(b.id) : category;
|
|
91
|
+
});
|
|
92
|
+
const publicSpecs = specs.filter(isUserVisibleAgent);
|
|
93
|
+
const shadowSpecs = specs.filter((spec) => spec.audience === "shadow");
|
|
94
|
+
if (publicSpecs.length === 0 && shadowSpecs.length === 0) return "";
|
|
95
|
+
|
|
96
|
+
const lines: string[] = [
|
|
97
|
+
"# Fleet",
|
|
98
|
+
FLEET_DELEGATION_RULE,
|
|
99
|
+
FLEET_HANDOFF_RULE,
|
|
100
|
+
FLEET_ANTI_CHURN_RULE,
|
|
101
|
+
FLEET_REFUSAL_DISCLOSURE,
|
|
102
|
+
`Workers you reach with \`dispatch\`, by \`agent\` id (default ${DEFAULT_DISPATCH_AGENT_ID}). Capability class is what a worker may do: a read-only worker cannot edit.`,
|
|
103
|
+
FLEET_SPECIALIST_ROUTING,
|
|
104
|
+
];
|
|
105
|
+
if (publicSpecs.length > 0) {
|
|
106
|
+
lines.push("", "Operator-facing:", ...publicSpecs.map(fleetPromptLine));
|
|
107
|
+
}
|
|
108
|
+
if (shadowSpecs.length > 0) {
|
|
109
|
+
// Dispatchable, but never a `/run` suggestion: they are plumbing.
|
|
110
|
+
lines.push("", "Internal specialists, dispatch-only:", ...shadowSpecs.map(fleetPromptLine));
|
|
111
|
+
}
|
|
112
|
+
return lines.join("\n");
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Spec-based roster used when the caller already holds normalized specs.
|
|
117
|
+
* `AgentsContract.listSpecs()` includes ACP delegation agents synthesized from
|
|
118
|
+
* settings.delegation.agents[], which never exist as recipe files; rendering
|
|
119
|
+
* from specs keeps those dispatchable targets discoverable in the fleet block.
|
|
120
|
+
*/
|
|
121
|
+
export function renderAgentCatalogSectionsFromSpecs(input: ReadonlyArray<AgentSpec>): AgentCatalogSections {
|
|
122
|
+
const specs = input.slice().sort((a, b) => {
|
|
123
|
+
const category = a.category.localeCompare(b.category);
|
|
124
|
+
return category === 0 ? a.id.localeCompare(b.id) : category;
|
|
125
|
+
});
|
|
126
|
+
const publicSpecs = specs.filter(isUserVisibleAgent);
|
|
127
|
+
const shadowSpecs = specs.filter((spec) => spec.audience === "shadow");
|
|
128
|
+
|
|
129
|
+
const lines: string[] = [
|
|
130
|
+
"Clio manages a small fleet of coding agents. Recipes are Markdown files; normalized specs carry audience, category, capability, tools, skills, latency, and worker-budget hints.",
|
|
131
|
+
"Use the `dispatch` tool to invoke one by `agent_id` when delegation helps.",
|
|
132
|
+
`Default dispatch agent: ${DEFAULT_DISPATCH_AGENT_ID}.`,
|
|
133
|
+
"User-facing agents are base/custom. Shadow agents are internal helpers for context, research, and provenance; do not recommend them as normal `/run` choices.",
|
|
134
|
+
"Prefer fast read-only agents for orientation, verification agents for gates, and workspace-edit agents only for bounded coding tasks.",
|
|
135
|
+
"When a task matches a skill named on an agent line (skills=...), prefer the recipe that binds it; its worker is told to load bound skills for the run.",
|
|
136
|
+
'After a dispatch succeeds, synthesize from the sealed receipt; the worker\'s prose is an advisory claim until its verification state is verified. Spot-check delegated claims before repeating them: re-read any cited file:line location, and re-run or inspect the named validation before repeating a "tests pass" claim.',
|
|
137
|
+
FLEET_ANTI_CHURN_RULE,
|
|
138
|
+
];
|
|
139
|
+
|
|
140
|
+
if (publicSpecs.length > 0) {
|
|
141
|
+
lines.push("", "User-facing agents:");
|
|
142
|
+
for (const spec of publicSpecs) {
|
|
143
|
+
const description = spec.description.trim();
|
|
144
|
+
const suffix = description.length > 0 ? ` - ${description}` : "";
|
|
145
|
+
lines.push(formatSpecLine(spec, suffix));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (shadowSpecs.length > 0) {
|
|
149
|
+
lines.push("", "Shadow agents for internal orchestration:");
|
|
150
|
+
for (const spec of shadowSpecs) {
|
|
151
|
+
const description = spec.description.trim();
|
|
152
|
+
const suffix = description.length > 0 ? ` - ${description}` : "";
|
|
153
|
+
lines.push(formatSpecLine(spec, suffix));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return { stable: lines.join("\n"), volatile: "" };
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function formatSpecLine(spec: AgentSpec, suffix: string): string {
|
|
161
|
+
const tags = spec.tags.length > 0 ? `, tags=${spec.tags.join("/")}` : "";
|
|
162
|
+
const skills = spec.skills.length > 0 ? `, skills=${spec.skills.join("/")}` : "";
|
|
163
|
+
const budget = spec.budget
|
|
164
|
+
? `, budget=${spec.budget.toolCalls}/${spec.budget.readReserve}/${spec.budget.synthesis ? "synthesize" : "stop"}`
|
|
165
|
+
: ", budget=operator-default";
|
|
166
|
+
return `- ${spec.name} [${spec.id}] (${spec.audience}, ${spec.category}, ${spec.capabilityClass}, ${spec.latencyClass}, ${spec.source}${tags}${skills}${budget})${suffix}`;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export function renderAgentCatalog(recipes: ReadonlyArray<AgentRecipe>): string {
|
|
170
|
+
const sections = renderAgentCatalogSections(recipes);
|
|
171
|
+
return [sections.stable, sections.volatile].filter((part) => part.trim().length > 0).join("\n\n");
|
|
172
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AgentRecipe } from "./recipe.js";
|
|
2
|
+
import type { AgentRecipeDiagnostic } from "./registry.js";
|
|
3
|
+
import type { AgentSpec } from "./spec.js";
|
|
4
|
+
|
|
5
|
+
export interface AgentsContract {
|
|
6
|
+
/** Raw recipes as loaded from Markdown files. */
|
|
7
|
+
list(): ReadonlyArray<AgentRecipe>;
|
|
8
|
+
get(id: string): AgentRecipe | null;
|
|
9
|
+
/** Structured quarantine diagnostics; malformed recipes never appear in list/get. */
|
|
10
|
+
diagnostics(): ReadonlyArray<AgentRecipeDiagnostic>;
|
|
11
|
+
/** Normalized, policy-bearing specs for catalog and dispatch consumers. */
|
|
12
|
+
listSpecs(): ReadonlyArray<AgentSpec>;
|
|
13
|
+
getSpec(id: string): AgentSpec | null;
|
|
14
|
+
/** Discover all agents: builtins + user + project. */
|
|
15
|
+
reload(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import type { DomainBundle, DomainContext, DomainExtension } from "../../core/domain-loader.js";
|
|
3
|
+
import { resolvePackageRoot } from "../../core/package-root.js";
|
|
4
|
+
import { clioConfigDir } from "../../core/xdg.js";
|
|
5
|
+
import { assertAgentIdNamespace } from "../config/agent-namespace.js";
|
|
6
|
+
import type { ConfigContract } from "../config/contract.js";
|
|
7
|
+
import type { AgentsContract } from "./contract.js";
|
|
8
|
+
import type { AgentRecipe } from "./recipe.js";
|
|
9
|
+
import { type AgentRecipeDiagnostic, loadRecipesFromDir, mergeRecipes } from "./registry.js";
|
|
10
|
+
import { type AgentSpec, normalizeAgentSpec } from "./spec.js";
|
|
11
|
+
|
|
12
|
+
export function createAgentsBundle(_context: DomainContext): DomainBundle<AgentsContract> {
|
|
13
|
+
let recipes: ReadonlyArray<AgentRecipe> = [];
|
|
14
|
+
let specs: ReadonlyArray<AgentSpec> = [];
|
|
15
|
+
let diagnostics: ReadonlyArray<AgentRecipeDiagnostic> = [];
|
|
16
|
+
|
|
17
|
+
function discover(): void {
|
|
18
|
+
const builtinDir = path.join(resolvePackageRoot(), "src", "domains", "agents", "builtins");
|
|
19
|
+
const userDir = path.join(clioConfigDir(), "agents");
|
|
20
|
+
const projectDir = path.join(process.cwd(), ".clio-coder", "agents");
|
|
21
|
+
const nextDiagnostics: AgentRecipeDiagnostic[] = [];
|
|
22
|
+
const builtin = loadRecipesFromDir({ dir: builtinDir, source: "builtin" }, nextDiagnostics);
|
|
23
|
+
const user = loadRecipesFromDir({ dir: userDir, source: "user" }, nextDiagnostics);
|
|
24
|
+
const project = loadRecipesFromDir({ dir: projectDir, source: "project" }, nextDiagnostics);
|
|
25
|
+
const merged = mergeRecipes(builtin, user, project);
|
|
26
|
+
const config = _context.getContract<ConfigContract>("config");
|
|
27
|
+
assertAgentIdNamespace(merged, config?.get()?.delegation?.agents ?? []);
|
|
28
|
+
recipes = merged;
|
|
29
|
+
specs = recipes.map(normalizeAgentSpec);
|
|
30
|
+
diagnostics = nextDiagnostics;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const extension: DomainExtension = {
|
|
34
|
+
async start() {
|
|
35
|
+
discover();
|
|
36
|
+
},
|
|
37
|
+
async stop() {},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const contract: AgentsContract = {
|
|
41
|
+
list() {
|
|
42
|
+
return recipes;
|
|
43
|
+
},
|
|
44
|
+
get(id: string): AgentRecipe | null {
|
|
45
|
+
return recipes.find((r) => r.id === id) ?? null;
|
|
46
|
+
},
|
|
47
|
+
diagnostics() {
|
|
48
|
+
return diagnostics.map((diagnostic) => ({ ...diagnostic }));
|
|
49
|
+
},
|
|
50
|
+
listSpecs() {
|
|
51
|
+
const config = _context.getContract<ConfigContract>("config");
|
|
52
|
+
const delegationAgents = config?.get()?.delegation?.agents ?? [];
|
|
53
|
+
const delegationSpecs = delegationAgents.map((agent) => ({
|
|
54
|
+
version: 1 as const,
|
|
55
|
+
id: agent.id,
|
|
56
|
+
name: agent.id,
|
|
57
|
+
description: `External ACP delegation agent: ${agent.command} ${(agent.args ?? []).join(" ")}`,
|
|
58
|
+
source: "custom" as const,
|
|
59
|
+
filepath: "settings.yaml",
|
|
60
|
+
tools: [],
|
|
61
|
+
toolRequirements: { required: [], optional: [] },
|
|
62
|
+
category: "explore" as const,
|
|
63
|
+
capabilityClass: "orchestration" as const,
|
|
64
|
+
latencyClass: "deep" as const,
|
|
65
|
+
projectContextTier: "none" as const,
|
|
66
|
+
audience: "custom" as const,
|
|
67
|
+
tags: ["delegation", "acp"],
|
|
68
|
+
skills: [],
|
|
69
|
+
resultContract: { kind: "external-delegation" } as const,
|
|
70
|
+
budget: { toolCalls: 1, readReserve: 0, synthesis: false },
|
|
71
|
+
body: "External ACP delegation.",
|
|
72
|
+
}));
|
|
73
|
+
return [...specs, ...delegationSpecs];
|
|
74
|
+
},
|
|
75
|
+
getSpec(id: string): AgentSpec | null {
|
|
76
|
+
const found = specs.find((r) => r.id === id);
|
|
77
|
+
if (found) return found;
|
|
78
|
+
const config = _context.getContract<ConfigContract>("config");
|
|
79
|
+
const agent = config?.get()?.delegation?.agents?.find((entry) => entry.id === id);
|
|
80
|
+
if (agent) {
|
|
81
|
+
return {
|
|
82
|
+
version: 1 as const,
|
|
83
|
+
id: agent.id,
|
|
84
|
+
name: agent.id,
|
|
85
|
+
description: `External ACP delegation agent: ${agent.command} ${(agent.args ?? []).join(" ")}`,
|
|
86
|
+
source: "custom" as const,
|
|
87
|
+
filepath: "settings.yaml",
|
|
88
|
+
tools: [],
|
|
89
|
+
toolRequirements: { required: [], optional: [] },
|
|
90
|
+
category: "explore" as const,
|
|
91
|
+
capabilityClass: "orchestration" as const,
|
|
92
|
+
latencyClass: "deep" as const,
|
|
93
|
+
projectContextTier: "none" as const,
|
|
94
|
+
audience: "custom" as const,
|
|
95
|
+
tags: ["delegation", "acp"],
|
|
96
|
+
skills: [],
|
|
97
|
+
resultContract: { kind: "external-delegation" } as const,
|
|
98
|
+
budget: { toolCalls: 1, readReserve: 0, synthesis: false },
|
|
99
|
+
body: "External ACP delegation.",
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
},
|
|
104
|
+
reload() {
|
|
105
|
+
discover();
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
return { extension, contract };
|
|
110
|
+
}
|