@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
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { resolvePackageRoot } from "../../core/package-root.js";
|
|
3
|
+
import type { ToolName } from "../../core/tool-names.js";
|
|
4
|
+
import type { AutonomyLevel } from "../safety/autonomy.js";
|
|
5
|
+
import { ceilChars } from "../session/context-accounting.js";
|
|
6
|
+
import type { FragmentTable, LoadedFragment } from "./fragment-loader.js";
|
|
7
|
+
import { sha256 } from "./hash.js";
|
|
8
|
+
import type { ProjectPreloadClass } from "./preload.js";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Session-prompt compiler. The system prompt is compiled once per session
|
|
12
|
+
* from inputs that are constant for the session's lifetime (identity,
|
|
13
|
+
* operating contract, safety level, provider/model, project context, tool
|
|
14
|
+
* surface). Volatile runtime state (thinking level, send heuristics,
|
|
15
|
+
* per-turn requests) never renders into the prompt: the prompt prefix must
|
|
16
|
+
* stay byte-stable so local prefix caches survive across turns and sessions.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/** One per-tool guidance sentence sourced from the tool registry's metadata. */
|
|
20
|
+
export interface ToolPromptHint {
|
|
21
|
+
tool: string;
|
|
22
|
+
hint: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface SessionPromptInputs {
|
|
26
|
+
provider?: string | null;
|
|
27
|
+
model?: string | null;
|
|
28
|
+
contextWindow?: number | null;
|
|
29
|
+
providerSupportsTools?: boolean | null;
|
|
30
|
+
/** Model-stable thinking guidance from local-model quirks (changes only on model change). */
|
|
31
|
+
thinkingGuidance?: string | null;
|
|
32
|
+
/** Canonical names on the frozen direct-tool surface, rendered as a compact harness inventory. */
|
|
33
|
+
toolNames?: ReadonlyArray<string>;
|
|
34
|
+
/**
|
|
35
|
+
* Per-tool prompt hints derived once from the frozen surface at compile
|
|
36
|
+
* time (registry metadata `promptHint`). Rendered into the Tool Contract
|
|
37
|
+
* sorted by tool name so the compiled text is byte-stable per surface.
|
|
38
|
+
*/
|
|
39
|
+
toolPromptHints?: ReadonlyArray<ToolPromptHint>;
|
|
40
|
+
/**
|
|
41
|
+
* Compact fleet roster (`renderFleetPromptSection`) for the sessions that
|
|
42
|
+
* carry the dispatch tool. Rendered only when `dispatch` is on the frozen
|
|
43
|
+
* surface: a roster without the tool to reach it is noise, and the tool
|
|
44
|
+
* without the roster is a guess.
|
|
45
|
+
*/
|
|
46
|
+
fleetRoster?: string;
|
|
47
|
+
contextFiles?: string;
|
|
48
|
+
memorySection?: string;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface CompileInputs {
|
|
52
|
+
identity: string;
|
|
53
|
+
operatingContract: string;
|
|
54
|
+
safety: string;
|
|
55
|
+
sessionInputs: SessionPromptInputs;
|
|
56
|
+
additionalFragments?: ReadonlyArray<RenderedPromptFragment>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** Stable inputs for one mediated fleet worker's canonical system prompt. */
|
|
60
|
+
export interface WorkerPromptInputs {
|
|
61
|
+
/** The autonomy level already clamped by dispatch admission. */
|
|
62
|
+
autonomy: AutonomyLevel;
|
|
63
|
+
/**
|
|
64
|
+
* Whether the selected target can attach canonical Clio tool schemas.
|
|
65
|
+
* `null` means the delegated target's inventory is not observable.
|
|
66
|
+
*/
|
|
67
|
+
providerSupportsTools: boolean | null;
|
|
68
|
+
/** Final canonical names used to attach worker schemas. */
|
|
69
|
+
toolNames: ReadonlyArray<ToolName>;
|
|
70
|
+
/** Registry-owned guidance for the final canonical toolkit. */
|
|
71
|
+
toolPromptHints: ReadonlyArray<ToolPromptHint>;
|
|
72
|
+
/** Whether canonical `context` is present in the final attached schema surface. */
|
|
73
|
+
hasCanonicalContext: boolean;
|
|
74
|
+
/** True only when dispatch has explicitly harness-activated recipe-bound skills. */
|
|
75
|
+
hasBoundSkills: boolean;
|
|
76
|
+
/** Effective approval routing for this worker run. */
|
|
77
|
+
onPermission: "deny" | "fail" | "escalate";
|
|
78
|
+
/** One stable persona: the recipe body or bounded override, including bound-skill mechanics. */
|
|
79
|
+
persona: RenderedPromptFragment;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface FragmentManifestEntry {
|
|
83
|
+
id: string;
|
|
84
|
+
relPath: string;
|
|
85
|
+
contentHash: string;
|
|
86
|
+
dynamic: boolean;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export interface RenderedPromptFragment {
|
|
90
|
+
id: string;
|
|
91
|
+
relPath: string;
|
|
92
|
+
body: string;
|
|
93
|
+
contentHash: string;
|
|
94
|
+
dynamic: boolean;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export interface PromptSection {
|
|
98
|
+
id: string;
|
|
99
|
+
tokenEstimate: number;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface CompiledSessionPrompt {
|
|
103
|
+
systemPrompt: string;
|
|
104
|
+
systemPromptHash: string;
|
|
105
|
+
tokenEstimate: number;
|
|
106
|
+
sections: ReadonlyArray<PromptSection>;
|
|
107
|
+
fragmentManifest: ReadonlyArray<FragmentManifestEntry>;
|
|
108
|
+
/**
|
|
109
|
+
* How the project context entered this prompt (full preload, synopsis, or
|
|
110
|
+
* none). Set by the prompts extension, which owns project-context
|
|
111
|
+
* selection; the pure compiler leaves it absent.
|
|
112
|
+
*/
|
|
113
|
+
projectPreload?: ProjectPreloadClass | null;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export const FLEET_ROUTING_GUIDANCE_MAX_BYTES = 320;
|
|
117
|
+
// Points at the Fleet section rather than describing routing in the abstract:
|
|
118
|
+
// `agent:"auto"` baselines by task shape and can still land on a worker whose
|
|
119
|
+
// capability class is wrong for the job, so a pinned id is the reliable path.
|
|
120
|
+
export const FLEET_ROUTING_GUIDANCE =
|
|
121
|
+
'Fleet routing: pin the `agent` id from the Fleet section above; agent:"auto" baselines from the task text and is a fallback, not a router. Broad repo/codebase exploration goes to a worker before repo-wide reads. Give each dispatch a concrete handoff and synthesize its receipt.';
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Worker-side mirror of the parent's `SPOT_CHECK_GUIDANCE`. The parent sentence
|
|
125
|
+
* demonstrably works: in the E19 drive it is what caught a verifier reporting a
|
|
126
|
+
* quality pass on a typecheck script that does not exist. The same failure
|
|
127
|
+
* happens one level down, where a worker seals a fabricated report or a
|
|
128
|
+
* fabricated `npm test`, so the worker gets the mirror image of that rule. It
|
|
129
|
+
* lives in the shared worker scaffold rather than in each recipe: every
|
|
130
|
+
* dispatched persona inherits this block, and a rule copied into twelve files
|
|
131
|
+
* drifts in eleven of them.
|
|
132
|
+
*/
|
|
133
|
+
export const WORKER_CLAIM_GUIDANCE =
|
|
134
|
+
'Never claim a completion, a validation, or a file change that no tool call in this run supports. If you did not run it or write it here, say "not verified" and report what you did do.';
|
|
135
|
+
|
|
136
|
+
function lookupFragment(table: FragmentTable, id: string, role: string): LoadedFragment {
|
|
137
|
+
const frag = table.byId.get(id);
|
|
138
|
+
if (!frag) {
|
|
139
|
+
throw new Error(`prompts/compiler: ${role} fragment id "${id}" not found`);
|
|
140
|
+
}
|
|
141
|
+
return frag;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* One-sentence autonomy directive. Shared: the session prompt's safety
|
|
146
|
+
* section and the dispatch worker safety-posture message must describe the
|
|
147
|
+
* same enforced behavior, so neither side duplicates this switch.
|
|
148
|
+
*/
|
|
149
|
+
export function safetyOneLiner(level: string): string {
|
|
150
|
+
switch (level) {
|
|
151
|
+
case "read-only":
|
|
152
|
+
return "inspect and answer; mutating calls are auto-denied, so propose changes instead.";
|
|
153
|
+
case "suggest":
|
|
154
|
+
return "every non-read action parks for one-shot operator approval before it runs.";
|
|
155
|
+
case "auto-edit":
|
|
156
|
+
return "workspace edits and recognized commands run; other bash asks for approval.";
|
|
157
|
+
case "full-auto":
|
|
158
|
+
return "act without asking; system_modify still asks and git_destructive is blocked by the safety net.";
|
|
159
|
+
default:
|
|
160
|
+
return "follow the active safety contract.";
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function renderSafetySection(safetyFragment: LoadedFragment, level: string): string {
|
|
165
|
+
const oneLine = `Autonomy: ${level}. ${safetyOneLiner(level)}`;
|
|
166
|
+
const body = safetyFragment.body.trim();
|
|
167
|
+
return body.length > 0 ? `${oneLine}\n\n${body}` : oneLine;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function renderRuntimeBlock(inputs: SessionPromptInputs): string {
|
|
171
|
+
const lines: string[] = ["# Runtime"];
|
|
172
|
+
const provider = inputs.provider ?? "";
|
|
173
|
+
const model = inputs.model ?? "";
|
|
174
|
+
if (provider.length > 0) lines.push(`Provider: ${provider}`);
|
|
175
|
+
if (model.length > 0) lines.push(`Model: ${model}`);
|
|
176
|
+
if (typeof inputs.contextWindow === "number" && inputs.contextWindow > 0) {
|
|
177
|
+
lines.push(`Context window: ${inputs.contextWindow}`);
|
|
178
|
+
}
|
|
179
|
+
const guidance = inputs.thinkingGuidance?.trim();
|
|
180
|
+
if (guidance && guidance.length > 0) {
|
|
181
|
+
lines.push("");
|
|
182
|
+
lines.push(guidance);
|
|
183
|
+
}
|
|
184
|
+
return lines.join("\n");
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Whether the session's frozen surface can reach fleet workers. Read from the
|
|
189
|
+
* tool names and the registry's hints, never from settings: the Fleet section
|
|
190
|
+
* and the Tool Contract's dispatch clauses must appear together or not at all.
|
|
191
|
+
*/
|
|
192
|
+
function sessionCanDispatch(inputs: SessionPromptInputs): boolean {
|
|
193
|
+
if (inputs.providerSupportsTools === false) return false;
|
|
194
|
+
const names = new Set((inputs.toolNames ?? []).map((name) => name.trim()));
|
|
195
|
+
const hinted = new Set((inputs.toolPromptHints ?? []).map((entry) => entry.tool.trim()));
|
|
196
|
+
return names.has("dispatch") || hinted.has("dispatch");
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function renderFleetBlock(inputs: SessionPromptInputs): string {
|
|
200
|
+
if (!sessionCanDispatch(inputs)) return "";
|
|
201
|
+
return inputs.fleetRoster?.trim() ?? "";
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function renderToolContractBlock(inputs: SessionPromptInputs): string {
|
|
205
|
+
if (inputs.providerSupportsTools === false) {
|
|
206
|
+
return [
|
|
207
|
+
"# Tool Contract",
|
|
208
|
+
"Provider tool calls: unavailable.",
|
|
209
|
+
"This target cannot call tools; answer from the visible user request and compact context only.",
|
|
210
|
+
].join("\n");
|
|
211
|
+
}
|
|
212
|
+
const names = [
|
|
213
|
+
...new Set((inputs.toolNames ?? []).map((name) => name.trim()).filter((name) => name.length > 0)),
|
|
214
|
+
].sort();
|
|
215
|
+
const hintedTools = new Set((inputs.toolPromptHints ?? []).map((entry) => entry.tool.trim()));
|
|
216
|
+
const canDispatch = sessionCanDispatch(inputs);
|
|
217
|
+
const canListSkills = names.includes("context") || hintedTools.has("context");
|
|
218
|
+
const inventoryGuidance = [
|
|
219
|
+
// Asked twice in one session which tools it had, a live model gave two
|
|
220
|
+
// different answers and invented `web_find`. The authoritative list is one
|
|
221
|
+
// line above; pointing at it beats letting the model recall the schemas.
|
|
222
|
+
"When answering capability-inventory questions, copy the Direct tools line above verbatim rather than recalling the attached schemas, and make no calls",
|
|
223
|
+
...(canDispatch ? ["add dispatch(list:true) only if agents or the fleet are requested"] : []),
|
|
224
|
+
...(canListSkills ? ['add context(scope="skills") only if skills are requested'] : []),
|
|
225
|
+
].join("; ");
|
|
226
|
+
const lines = [
|
|
227
|
+
"# Tool Contract",
|
|
228
|
+
"The attached schemas are the session's complete direct-tool surface; follow each schema exactly.",
|
|
229
|
+
...(names.length > 0 ? [`Direct tools: ${names.map((name) => `\`${name}\``).join(", ")}.`] : []),
|
|
230
|
+
"Harness model: direct tools are attached schemas; fleet agents are workers behind dispatch; skills are operator-activated workflows reached through context. Keep these capability sets distinct.",
|
|
231
|
+
`${inventoryGuidance}.`,
|
|
232
|
+
"Call tools only for concrete inspection or changes the task requires. If the user asks for a tool-free answer, simply answer without calling tools.",
|
|
233
|
+
'For narrow file or symbol orientation, prefer context(scope="workspace"), code_nav, grep, and read instead of assuming source-tree details were preloaded. When dispatch is available, explicit broad repository/codebase exploration uses agent:"auto" before repo-wide reads.',
|
|
234
|
+
'Routing order: use structured observe tools before bash for narrow inspection; when the request has three or more steps, declare a tasks board (action="plan") before the first edit; treat broad reconnaissance as a bounded agent:"auto" handoff, dispatch other bounded parallel or delegated subwork, and synthesize receipts; validate with verify or git diff before final claims.',
|
|
235
|
+
'When a tool call fails or is rejected, do not retry the same shape blindly: re-read the schema, adjust the arguments, or query context(scope="docs") for that tool\'s usage.',
|
|
236
|
+
'List installed skills with context(scope="skills") only when the task is skill-shaped or the operator asks about skills; if one matches, suggest the operator run /skill:<name>, and never load a skill the operator did not request.',
|
|
237
|
+
];
|
|
238
|
+
// One hint per tool, sorted by tool name: deterministic bytes regardless
|
|
239
|
+
// of surface or registration order, and removing a tool from the surface
|
|
240
|
+
// removes its hint with no compiler edit.
|
|
241
|
+
const seen = new Set<string>();
|
|
242
|
+
const hints = [...(inputs.toolPromptHints ?? [])]
|
|
243
|
+
.map((entry) => ({ tool: entry.tool.trim(), hint: entry.hint.trim() }))
|
|
244
|
+
.filter((entry) => entry.tool.length > 0 && entry.hint.length > 0)
|
|
245
|
+
.sort((a, b) => (a.tool < b.tool ? -1 : a.tool > b.tool ? 1 : 0));
|
|
246
|
+
if (hints.some((entry) => entry.tool === "dispatch")) lines.push(FLEET_ROUTING_GUIDANCE);
|
|
247
|
+
for (const entry of hints) {
|
|
248
|
+
if (seen.has(entry.tool)) continue;
|
|
249
|
+
seen.add(entry.tool);
|
|
250
|
+
lines.push(entry.hint);
|
|
251
|
+
}
|
|
252
|
+
return lines.join("\n");
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function canonicalWorkerTools(inputs: WorkerPromptInputs): string[] {
|
|
256
|
+
return [...new Set(inputs.toolNames.map((name) => name.trim()).filter((name) => name.length > 0))].sort();
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
function workerPermissionSentence(mode: WorkerPromptInputs["onPermission"]): string {
|
|
260
|
+
switch (mode) {
|
|
261
|
+
case "escalate":
|
|
262
|
+
return "Approval-required calls pause for a bounded operator decision before execution.";
|
|
263
|
+
case "deny":
|
|
264
|
+
return "Approval-required calls are denied immediately; they are not parked for an operator.";
|
|
265
|
+
case "fail":
|
|
266
|
+
return "An approval-required call fails and ends the worker run; it is not parked for an operator.";
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
function renderWorkerOperatingContract(operatingContract: LoadedFragment, inputs: WorkerPromptInputs): string {
|
|
271
|
+
const skillsHeading = "\n# Skills\n";
|
|
272
|
+
const skillsAt = operatingContract.body.indexOf(skillsHeading);
|
|
273
|
+
const withoutSkills = skillsAt >= 0 ? operatingContract.body.slice(0, skillsAt) : operatingContract.body;
|
|
274
|
+
const skillAwareBody = inputs.hasCanonicalContext && !inputs.hasBoundSkills ? operatingContract.body : withoutSkills;
|
|
275
|
+
const operatingPermission =
|
|
276
|
+
inputs.autonomy === "read-only"
|
|
277
|
+
? "This read-only worker denies mutating calls without requesting approval."
|
|
278
|
+
: workerPermissionSentence(inputs.onPermission);
|
|
279
|
+
const workerBody = skillAwareBody.replace(
|
|
280
|
+
/Safety policy is authoritative[\s\S]*?Do not retry the same blocked\naction through another tool\./,
|
|
281
|
+
[
|
|
282
|
+
"Safety policy is authoritative for every tool call. Allow decisions run normally.",
|
|
283
|
+
operatingPermission,
|
|
284
|
+
"Hard blocks (destructive git, protected artifacts, project or path policy violations) remain hard blocks. When a call is blocked, pivot to a safer approach or explain the blocker. Do not retry the same blocked action through another tool.",
|
|
285
|
+
].join("\n"),
|
|
286
|
+
);
|
|
287
|
+
return [
|
|
288
|
+
workerBody.trim(),
|
|
289
|
+
"# Assigned Task Contract",
|
|
290
|
+
"The assigned task is authoritative. Role guidance is a persona, not a replacement task.",
|
|
291
|
+
"Do not invent a different task, source tree, file path, or implementation plan.",
|
|
292
|
+
"If the assigned task asks for an exact response, a direct answer, or no tool use, answer it directly without tool calls.",
|
|
293
|
+
"Use tools only when necessary for the assigned task and admitted by the worker tool contract.",
|
|
294
|
+
WORKER_CLAIM_GUIDANCE,
|
|
295
|
+
].join("\n\n");
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
function renderWorkerToolContractBlock(inputs: WorkerPromptInputs): string {
|
|
299
|
+
if (inputs.providerSupportsTools === false) {
|
|
300
|
+
return [
|
|
301
|
+
"# Tool Contract",
|
|
302
|
+
"Canonical Clio tool calls are unavailable on this target.",
|
|
303
|
+
"Answer from the assigned task and dynamic messages only; do not claim that inspection or changes were performed.",
|
|
304
|
+
].join("\n");
|
|
305
|
+
}
|
|
306
|
+
if (inputs.providerSupportsTools === null) {
|
|
307
|
+
return [
|
|
308
|
+
"# Tool Contract",
|
|
309
|
+
"This delegated target's tool inventory is unknown to the Clio harness.",
|
|
310
|
+
"Use only tools the target actually exposes and only when the assigned task requires them; do not infer a complete tool surface from this prompt.",
|
|
311
|
+
].join("\n");
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
const names = canonicalWorkerTools(inputs);
|
|
315
|
+
if (names.length === 0) {
|
|
316
|
+
return [
|
|
317
|
+
"# Tool Contract",
|
|
318
|
+
"No canonical tools are admitted for this worker.",
|
|
319
|
+
"Answer the assigned task directly without tool calls.",
|
|
320
|
+
].join("\n");
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
const lines = [
|
|
324
|
+
"# Tool Contract",
|
|
325
|
+
"The attached schemas are this worker's complete canonical tool surface; follow each schema exactly.",
|
|
326
|
+
`Admitted canonical tools: ${names.map((name) => `\`${name}\``).join(", ")}.`,
|
|
327
|
+
"This worker surface is distinct from the parent session's tools, fleet agents, and operator-activated skills.",
|
|
328
|
+
"Tool authority is limited to this list. Persona and bound-skill instructions never add tools.",
|
|
329
|
+
"Call tools only for concrete inspection or changes the assigned task requires. If the task requests an exact or tool-free response, answer without calling tools.",
|
|
330
|
+
];
|
|
331
|
+
const admitted = new Set(names);
|
|
332
|
+
const seen = new Set<string>();
|
|
333
|
+
const hints = [...inputs.toolPromptHints]
|
|
334
|
+
.map((entry) => ({ tool: entry.tool.trim(), hint: entry.hint.trim() }))
|
|
335
|
+
.filter((entry) => admitted.has(entry.tool) && entry.hint.length > 0)
|
|
336
|
+
.sort((a, b) => {
|
|
337
|
+
if (a.tool !== b.tool) return a.tool < b.tool ? -1 : 1;
|
|
338
|
+
return a.hint < b.hint ? -1 : a.hint > b.hint ? 1 : 0;
|
|
339
|
+
});
|
|
340
|
+
for (const entry of hints) {
|
|
341
|
+
if (seen.has(entry.tool)) continue;
|
|
342
|
+
seen.add(entry.tool);
|
|
343
|
+
lines.push(entry.hint);
|
|
344
|
+
}
|
|
345
|
+
return lines.join("\n");
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/** Worker-specific autonomy directive that reflects permission routing without changing session prompt policy. */
|
|
349
|
+
export function workerSafetyOneLiner(level: AutonomyLevel, mode: WorkerPromptInputs["onPermission"]): string {
|
|
350
|
+
if (level === "read-only") return safetyOneLiner(level);
|
|
351
|
+
const posture = workerPermissionSentence(mode);
|
|
352
|
+
switch (level) {
|
|
353
|
+
case "suggest":
|
|
354
|
+
return `read calls run freely; every non-read action requires approval. ${posture}`;
|
|
355
|
+
case "auto-edit":
|
|
356
|
+
return `workspace edits and recognized commands run; other commands require approval. ${posture}`;
|
|
357
|
+
case "full-auto":
|
|
358
|
+
return `act without asking except for safety-classified approval-required calls. ${posture}`;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
function renderWorkerSafetySection(safetyFragment: LoadedFragment, inputs: WorkerPromptInputs): string {
|
|
363
|
+
const heading = safetyFragment.body.trim().split("\n", 1)[0] ?? "# Safety";
|
|
364
|
+
const lines = [
|
|
365
|
+
`Autonomy: ${inputs.autonomy}. ${workerSafetyOneLiner(inputs.autonomy, inputs.onPermission)}`,
|
|
366
|
+
"",
|
|
367
|
+
heading,
|
|
368
|
+
];
|
|
369
|
+
switch (inputs.autonomy) {
|
|
370
|
+
case "read-only":
|
|
371
|
+
lines.push(
|
|
372
|
+
"Admitted read-class tools run freely. Every mutating call is denied by the harness, and no approval prompt appears.",
|
|
373
|
+
"When a change is needed, propose it concretely instead of attempting it.",
|
|
374
|
+
);
|
|
375
|
+
break;
|
|
376
|
+
case "suggest":
|
|
377
|
+
lines.push(
|
|
378
|
+
"Admitted read-class tools run freely. Every non-read call is approval-required.",
|
|
379
|
+
workerPermissionSentence(inputs.onPermission),
|
|
380
|
+
);
|
|
381
|
+
break;
|
|
382
|
+
case "auto-edit":
|
|
383
|
+
lines.push(
|
|
384
|
+
"Workspace edits and recognized commands run. Other commands and system modifications are approval-required.",
|
|
385
|
+
workerPermissionSentence(inputs.onPermission),
|
|
386
|
+
);
|
|
387
|
+
break;
|
|
388
|
+
case "full-auto":
|
|
389
|
+
lines.push(
|
|
390
|
+
"Writes, dispatches, and ordinary commands run. System modifications and opaque command substitutions remain approval-required.",
|
|
391
|
+
workerPermissionSentence(inputs.onPermission),
|
|
392
|
+
);
|
|
393
|
+
break;
|
|
394
|
+
}
|
|
395
|
+
lines.push("Destructive git and other hard safety blocks remain denied at every autonomy level.");
|
|
396
|
+
return lines.join("\n");
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
function renderRetrievalHintsBlock(inputs: SessionPromptInputs): string {
|
|
400
|
+
if (inputs.providerSupportsTools === false) {
|
|
401
|
+
return [
|
|
402
|
+
"# Retrieval Hints",
|
|
403
|
+
"Repository details are intentionally compact because this target has no tool channel.",
|
|
404
|
+
"Use only facts present in the current turn and say what file-specific context would be needed for precise code work.",
|
|
405
|
+
].join("\n");
|
|
406
|
+
}
|
|
407
|
+
return [
|
|
408
|
+
"# Retrieval Hints",
|
|
409
|
+
"Compact CLIO-CODER.md project instructions may be preloaded above; everything else about the repository must be fetched, not assumed.",
|
|
410
|
+
"For narrow questions about where code, skills, tools, prompts, or harness behavior live, inspect with code_nav, context, grep, or read before answering. For explicit broad repository exploration, hand the search to a reconnaissance worker with dispatch when it is available. Never invent file paths, automatic tool behavior, or mutable repo details from the system prompt.",
|
|
411
|
+
].join("\n");
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
function renderProjectBlock(contextFiles: string | undefined): string {
|
|
415
|
+
const trimmedFiles = contextFiles?.trim() ?? "";
|
|
416
|
+
return trimmedFiles.length === 0 ? "" : `# Project\n\n${trimmedFiles}`;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
function renderMemoryBlock(memorySection: string | undefined): string {
|
|
420
|
+
const trimmed = memorySection?.trim() ?? "";
|
|
421
|
+
return trimmed.length === 0 ? "" : `# Memory\n\n${trimmed}`;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
function estimatePromptTokens(text: string): number {
|
|
425
|
+
return ceilChars(text.trim().length);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Compile the session system prompt. Identity and the operating contract
|
|
430
|
+
* render verbatim from disk fragments; safety renders a one-line directive
|
|
431
|
+
* plus the safety fragment body; everything else renders inline from typed
|
|
432
|
+
* SessionPromptInputs. Output is one string, one sha256, one token estimate,
|
|
433
|
+
* and a flat section breakdown for the /context overlay.
|
|
434
|
+
*/
|
|
435
|
+
export function compile(table: FragmentTable, inputs: CompileInputs): CompiledSessionPrompt {
|
|
436
|
+
const identity = lookupFragment(table, inputs.identity, "identity");
|
|
437
|
+
const operatingContract = lookupFragment(table, inputs.operatingContract, "operating contract");
|
|
438
|
+
const safety = lookupFragment(table, inputs.safety, "safety");
|
|
439
|
+
const autonomyLevel = safety.id.startsWith("safety.") ? safety.id.slice("safety.".length) : safety.id;
|
|
440
|
+
const session = inputs.sessionInputs;
|
|
441
|
+
|
|
442
|
+
const parts: string[] = [];
|
|
443
|
+
const sections: PromptSection[] = [];
|
|
444
|
+
const push = (id: string, body: string): void => {
|
|
445
|
+
const trimmed = body.trim();
|
|
446
|
+
if (trimmed.length === 0) return;
|
|
447
|
+
parts.push(trimmed);
|
|
448
|
+
sections.push({ id, tokenEstimate: estimatePromptTokens(trimmed) });
|
|
449
|
+
};
|
|
450
|
+
|
|
451
|
+
let identityBody = identity.body;
|
|
452
|
+
const selfAwareness = identity.id === "identity.clio" ? table.byId.get("identity.self-awareness") : undefined;
|
|
453
|
+
if (selfAwareness) {
|
|
454
|
+
const packageRoot = resolvePackageRoot();
|
|
455
|
+
const rendered = selfAwareness.body
|
|
456
|
+
.replace("{CLIO_DOCS_PATH}", join(packageRoot, "docs"))
|
|
457
|
+
.replace("{CLIO_SRC_PATH}", join(packageRoot, "src"))
|
|
458
|
+
.replace("{CLIO_CODEWIKI_PATH}", join(packageRoot, "dist", "assets", "codewiki.json"));
|
|
459
|
+
identityBody = `${identity.body.trim()}\n\n${rendered.trim()}`;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
push("identity", identityBody);
|
|
463
|
+
push("operating-contract", operatingContract.body);
|
|
464
|
+
push("safety", renderSafetySection(safety, autonomyLevel));
|
|
465
|
+
push("runtime", renderRuntimeBlock(session));
|
|
466
|
+
push("tool-contract", renderToolContractBlock(session));
|
|
467
|
+
push("fleet", renderFleetBlock(session));
|
|
468
|
+
push("retrieval-hints", renderRetrievalHintsBlock(session));
|
|
469
|
+
push("memory", renderMemoryBlock(session.memorySection));
|
|
470
|
+
push("project-context", renderProjectBlock(session.contextFiles));
|
|
471
|
+
for (const fragment of inputs.additionalFragments ?? []) {
|
|
472
|
+
push(fragment.id, fragment.body);
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
const systemPrompt = parts.join("\n\n");
|
|
476
|
+
const baseFragments = [identity, ...(selfAwareness ? [selfAwareness] : []), operatingContract, safety];
|
|
477
|
+
const fragmentManifest: FragmentManifestEntry[] = baseFragments.map((f) => ({
|
|
478
|
+
id: f.id,
|
|
479
|
+
relPath: f.relPath,
|
|
480
|
+
contentHash: f.contentHash,
|
|
481
|
+
dynamic: f.dynamic,
|
|
482
|
+
}));
|
|
483
|
+
for (const fragment of inputs.additionalFragments ?? []) {
|
|
484
|
+
fragmentManifest.push({
|
|
485
|
+
id: fragment.id,
|
|
486
|
+
relPath: fragment.relPath,
|
|
487
|
+
contentHash: fragment.contentHash,
|
|
488
|
+
dynamic: fragment.dynamic,
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
return {
|
|
493
|
+
systemPrompt,
|
|
494
|
+
systemPromptHash: sha256(systemPrompt),
|
|
495
|
+
tokenEstimate: estimatePromptTokens(systemPrompt),
|
|
496
|
+
sections,
|
|
497
|
+
fragmentManifest,
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
/**
|
|
502
|
+
* Compile the canonical stable prompt for one mediated fleet worker.
|
|
503
|
+
* Dynamic task, project, memory, pipeline, and per-run posture messages do
|
|
504
|
+
* not belong here. The section order is a protocol invariant.
|
|
505
|
+
*/
|
|
506
|
+
export function compileWorker(table: FragmentTable, inputs: WorkerPromptInputs): CompiledSessionPrompt {
|
|
507
|
+
if (inputs.persona.dynamic) {
|
|
508
|
+
throw new Error("prompts/compiler: worker persona must be a stable fragment");
|
|
509
|
+
}
|
|
510
|
+
if (inputs.persona.body.trim().length === 0) {
|
|
511
|
+
throw new Error("prompts/compiler: worker persona must not be empty");
|
|
512
|
+
}
|
|
513
|
+
const contextIsAttached = inputs.providerSupportsTools === true && canonicalWorkerTools(inputs).includes("context");
|
|
514
|
+
if (inputs.hasCanonicalContext !== contextIsAttached) {
|
|
515
|
+
throw new Error("prompts/compiler: hasCanonicalContext must match the final attached canonical tool surface");
|
|
516
|
+
}
|
|
517
|
+
if (inputs.hasBoundSkills && !inputs.hasCanonicalContext) {
|
|
518
|
+
throw new Error("prompts/compiler: bound skills require canonical context in the final attached tool surface");
|
|
519
|
+
}
|
|
520
|
+
const identity = lookupFragment(table, "identity.clio-worker", "worker identity");
|
|
521
|
+
const operatingContract = lookupFragment(table, "operating.contract", "operating contract");
|
|
522
|
+
const safety = lookupFragment(table, `safety.${inputs.autonomy}`, "safety");
|
|
523
|
+
|
|
524
|
+
const parts: string[] = [];
|
|
525
|
+
const sections: PromptSection[] = [];
|
|
526
|
+
const push = (id: string, body: string): void => {
|
|
527
|
+
const trimmed = body.trim();
|
|
528
|
+
if (trimmed.length === 0) return;
|
|
529
|
+
parts.push(trimmed);
|
|
530
|
+
sections.push({ id, tokenEstimate: estimatePromptTokens(trimmed) });
|
|
531
|
+
};
|
|
532
|
+
|
|
533
|
+
push("identity", identity.body);
|
|
534
|
+
push("operating-contract", renderWorkerOperatingContract(operatingContract, inputs));
|
|
535
|
+
push("tool-contract", renderWorkerToolContractBlock(inputs));
|
|
536
|
+
push("safety", renderWorkerSafetySection(safety, inputs));
|
|
537
|
+
push("persona", inputs.persona.body);
|
|
538
|
+
|
|
539
|
+
const systemPrompt = parts.join("\n\n");
|
|
540
|
+
const fragmentManifest: FragmentManifestEntry[] = [identity, operatingContract, safety, inputs.persona].map(
|
|
541
|
+
(fragment) => ({
|
|
542
|
+
id: fragment.id,
|
|
543
|
+
relPath: fragment.relPath,
|
|
544
|
+
contentHash: fragment.contentHash,
|
|
545
|
+
dynamic: fragment.dynamic,
|
|
546
|
+
}),
|
|
547
|
+
);
|
|
548
|
+
|
|
549
|
+
return {
|
|
550
|
+
systemPrompt,
|
|
551
|
+
systemPromptHash: sha256(systemPrompt),
|
|
552
|
+
tokenEstimate: estimatePromptTokens(systemPrompt),
|
|
553
|
+
sections,
|
|
554
|
+
fragmentManifest,
|
|
555
|
+
};
|
|
556
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { CompiledSessionPrompt, SessionPromptInputs, WorkerPromptInputs } from "./compiler.js";
|
|
2
|
+
|
|
3
|
+
export interface CompileSessionPromptInput {
|
|
4
|
+
sessionInputs: SessionPromptInputs;
|
|
5
|
+
autonomy?: string;
|
|
6
|
+
cwd?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Files already present in the session's working context. Project rules with
|
|
9
|
+
* `paths:` frontmatter are selected from this set.
|
|
10
|
+
*/
|
|
11
|
+
workingContextPaths?: ReadonlyArray<string>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type CompileWorkerPromptInput = WorkerPromptInputs;
|
|
15
|
+
|
|
16
|
+
export interface PromptsContract {
|
|
17
|
+
/**
|
|
18
|
+
* Compile the session system prompt. Called once per session (and again
|
|
19
|
+
* only on explicit, logged events: model/target change, autonomy-level
|
|
20
|
+
* change, fragment reload, session switch). Inputs must be constant for
|
|
21
|
+
* the session's lifetime.
|
|
22
|
+
*/
|
|
23
|
+
compileSessionPrompt(input: CompileSessionPromptInput): Promise<CompiledSessionPrompt>;
|
|
24
|
+
|
|
25
|
+
/** Compile the canonical stable harness for one mediated fleet worker. */
|
|
26
|
+
compileWorkerPrompt(input: CompileWorkerPromptInput): Promise<CompiledSessionPrompt>;
|
|
27
|
+
|
|
28
|
+
/** Reload fragment table (triggered by config.hotReload). */
|
|
29
|
+
reload(): void;
|
|
30
|
+
}
|