@iowarp/clio-coder 0.3.3 → 0.3.6
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 +74 -0
- package/CONTRIBUTING.md +7 -7
- package/README.md +3 -3
- package/dist/{acp-P2AQILE2.js → acp-2BEHC4DL.js} +9 -8
- package/dist/{agents-72W3BI7I.js → agents-LNNFTM53.js} +29 -24
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-5TWEIYDN.js → auth-KXXFI2VS.js} +14 -10
- package/dist/{chunk-GGXXDWE4.js → chunk-22NAGB7X.js} +2 -2
- package/dist/{chunk-YCWGATWI.js → chunk-24I7BN55.js} +2 -2
- package/dist/{chunk-EKMEHE4H.js → chunk-33YXPOE3.js} +2 -3
- package/dist/chunk-3BPUFZDL.js +37 -0
- package/dist/chunk-43AOLP7E.js +375 -0
- package/dist/{chunk-ZDOOVTXZ.js → chunk-4OC57DA6.js} +27 -4
- package/dist/{chunk-6SGHMWE3.js → chunk-5JGRAMKL.js} +5 -5
- package/dist/{chunk-V6RTAOC2.js → chunk-6US73PDB.js} +572 -51
- package/dist/{chunk-5UFT4SUX.js → chunk-6XXKFVSN.js} +3 -3
- package/dist/{chunk-A3CYT5EX.js → chunk-AD2SYQYC.js} +55 -2
- package/dist/chunk-AOCYTWAV.js +449 -0
- package/dist/chunk-CFGTUFWB.js +67 -0
- package/dist/chunk-CJUB2JJ2.js +1478 -0
- package/dist/{chunk-FNTMWMX5.js → chunk-CKXWIANG.js} +14 -12
- package/dist/{chunk-PIWWS5BL.js → chunk-CYQKWTG3.js} +63 -78
- package/dist/{chunk-LZSJBIVT.js → chunk-DJVECN66.js} +271 -762
- package/dist/{chunk-CBCAPZAA.js → chunk-E25LMLRW.js} +2 -2
- package/dist/{chunk-ZWMF7253.js → chunk-E2ER4LJF.js} +304 -9
- package/dist/{chunk-STBPMHSX.js → chunk-EKY57CSP.js} +51 -84
- package/dist/{chunk-DUYJ5IO6.js → chunk-EYPA3EGJ.js} +12 -4
- package/dist/{chunk-M6SHUN7Q.js → chunk-FO5ZOVUY.js} +2 -2
- package/dist/chunk-FYYLNIL5.js +313 -0
- package/dist/{chunk-OQ33BKR3.js → chunk-G7MUEIGA.js} +3 -60
- package/dist/chunk-GEYXPTRF.js +613 -0
- package/dist/chunk-GOXNB3AO.js +261 -0
- package/dist/{chunk-G4BMMOKF.js → chunk-HVDIIIQW.js} +2 -2
- package/dist/chunk-HWUFFB6L.js +83 -0
- package/dist/{chunk-4XUGQOHA.js → chunk-K7T3E2SR.js} +15 -8
- package/dist/chunk-K7VKOLQQ.js +15 -0
- package/dist/{chunk-UFIIWP2H.js → chunk-KHSFENX2.js} +8 -8
- package/dist/{chunk-BMEMKKIT.js → chunk-KOHPCX4K.js} +2 -2
- package/dist/chunk-LCGCVYZ4.js +57 -0
- package/dist/chunk-LL4KHSZI.js +22 -0
- package/dist/{chunk-PAJK6MAQ.js → chunk-LYF7OHWH.js} +42 -15
- package/dist/{chunk-POHLU5DW.js → chunk-M6L6IDJG.js} +3 -3
- package/dist/{chunk-5UUP6MWO.js → chunk-MV3K5QF2.js} +5 -436
- package/dist/{chunk-X4RCMKVQ.js → chunk-NDINPTJ4.js} +2 -2
- package/dist/{chunk-TZK7PACC.js → chunk-NILBFAPG.js} +14 -8
- package/dist/chunk-ODFEOB4F.js +1082 -0
- package/dist/{chunk-AGYYIBLL.js → chunk-OH3TOQTB.js} +6 -2
- package/dist/chunk-OZNBF4L3.js +23 -0
- package/dist/{chunk-DSELYM6W.js → chunk-PBTHKCPN.js} +30 -10
- package/dist/{verify-375KUB3Y.js → chunk-PCZJO5TI.js} +127 -42
- package/dist/{chunk-ED4KHGC3.js → chunk-PPAMZ32Z.js} +9 -2
- package/dist/{chunk-SRDMMSEP.js → chunk-QM3F2GKX.js} +1063 -1645
- package/dist/{chunk-X6IAEBZR.js → chunk-QNQHSOLF.js} +7 -7
- package/dist/{chunk-OC7FIQPC.js → chunk-R46L2BIR.js} +10 -7
- package/dist/{chunk-2TLUCQVG.js → chunk-RD5U66HV.js} +3 -3
- package/dist/{chunk-6N5PTWMY.js → chunk-RY3LY4J5.js} +50 -13
- package/dist/{chunk-OKGUZO2U.js → chunk-SPULKLCF.js} +4 -3
- package/dist/{chunk-OOJYHWRB.js → chunk-TSHXZTOQ.js} +6 -5
- package/dist/chunk-TZSKNMZG.js +434 -0
- package/dist/{chunk-7MNJORFF.js → chunk-UL3WSD3F.js} +6 -1
- package/dist/{chunk-VJWL6YS5.js → chunk-UUVG37B4.js} +2 -2
- package/dist/{chunk-COU2UHX6.js → chunk-VEZEGCGW.js} +170 -2
- package/dist/chunk-W6GROXXM.js +69 -0
- package/dist/{chunk-OAO4GE4M.js → chunk-WHGPSPT5.js} +2 -2
- package/dist/chunk-WHJYKASB.js +677 -0
- package/dist/{chunk-ORBHGJC5.js → chunk-WR67VIZY.js} +3 -3
- package/dist/{chunk-YHZX5GEU.js → chunk-XAKHZX5N.js} +2 -2
- package/dist/{chunk-TZTZS7QK.js → chunk-XE2VEJHX.js} +5 -3
- package/dist/{chunk-LM5TQCJZ.js → chunk-XF5N4U5A.js} +8 -7
- package/dist/{chunk-LWLEKMDQ.js → chunk-XXQNGV4M.js} +1073 -552
- package/dist/{chunk-KZWTDYJF.js → chunk-XYDYPRZI.js} +7 -7
- package/dist/chunk-ZGVHUX3M.js +66 -0
- package/dist/{chunk-LW6DSM3M.js → chunk-ZRGEBJ4T.js} +1192 -1119
- package/dist/{chunk-2DJ2KNFG.js → chunk-ZXF4XRKW.js} +202 -40
- package/dist/chunk-ZZMN5OM4.js +122 -0
- package/dist/cli/index.js +34 -30
- package/dist/{clio-JOU4FXVA.js → clio-M2KGYUFZ.js} +7 -6
- package/dist/{code-nav-7AX6FYE6.js → code-nav-GQNL7XA6.js} +8 -6
- package/dist/codewiki/build-worker.js +4 -4
- package/dist/{components-KELWS457.js → components-5TTYYX6G.js} +3 -3
- package/dist/{config-XCDVKR23.js → config-XUUYQIWO.js} +47 -35
- package/dist/{configure-4GAP54ZW.js → configure-IHJ7YOMV.js} +18 -15
- package/dist/{context-77FM5DV5.js → context-74JLXAWD.js} +18 -10
- package/dist/{context-4UOGGLQ5.js → context-75MIWW3U.js} +41 -29
- package/dist/{context-5VKGUVJJ.js → context-ZQ7SIFJV.js} +85 -9
- package/dist/{context-clear-XXJRLCJJ.js → context-clear-GYKWNUML.js} +41 -29
- package/dist/{context-index-BZ4UYMTC.js → context-index-SSR5ECNE.js} +3 -3
- package/dist/context-working-set-UX5KEP4J.js +1553 -0
- package/dist/{dispatch-runner-QPRDDBDX.js → dispatch-runner-GIJBHNFL.js} +47 -32
- package/dist/{docs-2C2LTVT2.js → docs-6FZSCG5B.js} +3 -3
- package/dist/{doctor-HR46URBJ.js → doctor-SVJ5BZCW.js} +12 -12
- package/dist/{eval-XSSNATB4.js → eval-CG6LLBLD.js} +54 -238
- package/dist/{evidence-6HG2PY2B.js → evidence-ZYFIEN42.js} +57 -28
- package/dist/{evolve-K7YU3NCY.js → evolve-QGEXEMDW.js} +36 -25
- package/dist/{extensions-QVDOHDGJ.js → extensions-ADGNCJJD.js} +3 -3
- package/dist/{fleet-VY3HHKN6.js → fleet-S5R4ZOQY.js} +73 -44
- package/dist/{fleet-preflight-DDN536IT.js → fleet-preflight-BHSNPBMH.js} +3 -3
- package/dist/{init-JYGXI3FK.js → init-5DRU55YR.js} +49 -37
- package/dist/memory-7YKKR6UC.js +467 -0
- package/dist/{models-I5QWSEOM.js → models-ZPOLRU2C.js} +24 -21
- package/dist/{monitor-GE4ID3IA.js → monitor-US5F5YGZ.js} +73 -46
- package/dist/{orchestrator-EM5MC3HM.js → orchestrator-E2AL4T5N.js} +1624 -1007
- package/dist/{paths-UXLN5YYZ.js → paths-E7KYAQWE.js} +3 -3
- package/dist/{reset-L2FQEE3E.js → reset-KZ652EK6.js} +6 -5
- package/dist/{run-ZU3QMZPZ.js → run-SRNBKDWD.js} +76 -54
- package/dist/{share-S5BZQC5I.js → share-CGZE33UP.js} +7 -6
- package/dist/{skills-X5VXCRNQ.js → skills-S2X4DLY5.js} +4 -4
- package/dist/{skills-eval-WKIHWTHR.js → skills-eval-W2GGIC4R.js} +40 -29
- package/dist/{targets-SNCPI2NR.js → targets-54SWINWB.js} +28 -23
- package/dist/{terminal-lease-BNAHVHBS.js → terminal-lease-SAIF2OGY.js} +6 -4
- package/dist/{uninstall-FZCQCDKC.js → uninstall-BVLWXKBT.js} +3 -3
- package/dist/{upgrade-JQHHPQ4K.js → upgrade-JKAR27XC.js} +20 -19
- package/dist/{usage-OR4O5SMZ.js → usage-MSAWCLX4.js} +79 -36
- package/dist/verifiers-NCBTHHN2.js +1220 -0
- package/dist/verify-X5HDROLA.js +25 -0
- package/dist/{wiki-generate-UEXP2ARI.js → wiki-generate-GUSOQ6ZP.js} +50 -37
- package/dist/worker/entry.js +90 -70
- package/dist/{workspace-G4ZWUIPR.js → workspace-ZJ6BFM3Q.js} +4 -4
- package/docs/README.md +8 -7
- package/docs/acp.md +1 -1
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +2 -2
- package/docs/artifact-placement.md +1 -2
- package/docs/artifact-versions.md +1 -1
- package/docs/built-in-agents.md +1 -1
- package/docs/capacity-and-scheduling.md +1 -1
- package/docs/commands-and-modes.md +60 -26
- package/docs/config-knobs-audit.md +1 -2
- package/docs/configuration-and-targets.md +26 -1
- package/docs/context-engine.md +67 -13
- package/docs/context-working-set.md +194 -0
- package/docs/development-pipeline.md +1 -1
- package/docs/documentation-coverage.md +6 -6
- package/docs/documentation-guide.md +7 -6
- package/docs/environment-variables.md +2 -1
- package/docs/eval-runner.md +1 -1
- package/docs/evals-internal.md +4 -32
- package/docs/evidence-and-memory.md +139 -7
- package/docs/evolution.md +1 -1
- package/docs/exit-codes-and-output.md +1 -1
- package/docs/extensions-and-sharing.md +2 -2
- package/docs/fleet-dispatch.md +49 -8
- package/docs/glossary.md +21 -1
- package/docs/installation-and-lifecycle.md +2 -2
- package/docs/middleware-and-components.md +19 -2
- package/docs/model-catalog.md +7 -9
- package/docs/observability.md +4 -4
- package/docs/proactive-memory.md +26 -16
- package/docs/prompt-envelope-and-tools.md +7 -5
- package/docs/provider-adapter-cookbook.md +1 -1
- package/docs/release-cut-checklist.md +43 -40
- package/docs/safety-model.md +49 -8
- package/docs/scientific-validation.md +21 -3
- package/docs/session-lifecycle.md +3 -3
- package/docs/skills-marketplace.md +1 -1
- package/docs/tool-usage.md +79 -12
- package/docs/trace-store.md +1 -1
- package/docs/troubleshooting.md +1 -1
- package/docs/tui-design.md +38 -4
- package/docs/worker-dispatch-mechanics.md +11 -1
- package/package.json +13 -13
- package/skills/meta/clio-test/SKILL.md +20 -17
- package/skills/meta/clio-test/evals.md +3 -3
- package/skills/meta/clio-test/references/harness.md +35 -6
- package/skills/meta/clio-test/references/test-map.md +20 -10
- package/skills/registry.yaml +2 -2
- package/skills/skill-marketplace.json +1 -1
- package/src/cli/agents.ts +2 -3
- package/src/cli/argv.ts +14 -1
- package/src/cli/context-working-set.ts +513 -0
- package/src/cli/context.ts +8 -0
- package/src/cli/evidence.ts +20 -2
- package/src/cli/fleet.ts +15 -0
- package/src/cli/index.ts +5 -1
- package/src/cli/memory.ts +272 -10
- package/src/cli/modes/json-stream.ts +2 -2
- package/src/cli/modes/print.ts +12 -1
- package/src/cli/run.ts +22 -2
- package/src/cli/targets.ts +12 -3
- package/src/cli/usage.ts +55 -7
- package/src/cli/verifiers.ts +325 -0
- package/src/core/bash-exec.ts +39 -14
- package/src/core/bus-events.ts +22 -4
- package/src/core/config.ts +54 -0
- package/src/core/defaults.ts +50 -3
- package/src/core/response-model-id.ts +134 -0
- package/src/core/toml.ts +62 -0
- package/src/core/verification-scripts.ts +6 -0
- package/src/core/workspace-files.ts +0 -1
- package/src/domains/agents/builtins/architect.md +1 -1
- package/src/domains/agents/builtins/verifier.md +3 -0
- package/src/domains/agents/catalog.ts +5 -4
- package/src/domains/agents/recipe.ts +54 -14
- package/src/domains/agents/result-contract.ts +7 -4
- package/src/domains/config/classify.ts +1 -0
- package/src/domains/context/bootstrap.ts +36 -27
- package/src/domains/context/project-metadata.ts +19 -63
- package/src/domains/context/prompt-context.ts +8 -0
- package/src/domains/context/working-set/contract.ts +161 -0
- package/src/domains/context/working-set/defaults.ts +28 -0
- package/src/domains/context/working-set/engine.ts +203 -0
- package/src/domains/context/working-set/fold.ts +62 -0
- package/src/domains/context/working-set/horizon.ts +38 -0
- package/src/domains/context/working-set/marker.ts +103 -0
- package/src/domains/context/working-set/path-index.ts +436 -0
- package/src/domains/context/working-set/payload.ts +152 -0
- package/src/domains/context/working-set/policies/age-horizon.ts +55 -0
- package/src/domains/context/working-set/policies/index.ts +20 -0
- package/src/domains/context/working-set/policies/structural.ts +160 -0
- package/src/domains/context/working-set/project.ts +132 -0
- package/src/domains/context/working-set/protect.ts +109 -0
- package/src/domains/context/working-set/recall.ts +177 -0
- package/src/domains/context/working-set/replay/controls.ts +112 -0
- package/src/domains/context/working-set/replay/load-clio.ts +199 -0
- package/src/domains/context/working-set/replay/metrics.ts +185 -0
- package/src/domains/context/working-set/replay/reference-graph.ts +79 -0
- package/src/domains/context/working-set/replay/report.ts +139 -0
- package/src/domains/context/working-set/replay/runner.ts +325 -0
- package/src/domains/context/working-set/replay/synthetic.ts +422 -0
- package/src/domains/context/working-set/replay/trace.ts +21 -0
- package/src/domains/context/working-set/visible.ts +54 -0
- package/src/domains/dispatch/budget-envelope.ts +396 -0
- package/src/domains/dispatch/contract.ts +2 -0
- package/src/domains/dispatch/extension.ts +81 -27
- package/src/domains/dispatch/orphan-recovery.ts +1 -0
- package/src/domains/dispatch/receipt-integrity.ts +4 -0
- package/src/domains/dispatch/state.ts +1 -0
- package/src/domains/dispatch/types.ts +10 -3
- package/src/domains/dispatch/validation.ts +14 -0
- package/src/domains/dispatch/worker-spawn.ts +14 -3
- package/src/domains/eval/metrics/evidence.ts +0 -116
- package/src/domains/eval/metrics/invariants.ts +1 -1
- package/src/domains/eval/runners/clio-run.ts +1 -10
- package/src/domains/eval/runners/external-command.ts +2 -29
- package/src/domains/eval/schema/suite.ts +0 -7
- package/src/domains/eval/suites/run.ts +1 -7
- package/src/domains/evidence/build.ts +112 -45
- package/src/domains/evidence/eval.ts +24 -7
- package/src/domains/evidence/index.ts +53 -0
- package/src/domains/evidence/ordering.ts +12 -0
- package/src/domains/evidence/run-trust.ts +221 -0
- package/src/domains/evidence/store.ts +46 -6
- package/src/domains/evidence/trust-status.ts +854 -0
- package/src/domains/evidence/types.ts +26 -0
- package/src/domains/memory/index.ts +22 -0
- package/src/domains/memory/operations.ts +58 -1
- package/src/domains/memory/promotion.ts +281 -0
- package/src/domains/memory/prompt-section.ts +25 -5
- package/src/domains/memory/proposal.ts +51 -7
- package/src/domains/memory/task-bank.ts +3 -2
- package/src/domains/memory/task-memory-handoff.ts +181 -24
- package/src/domains/memory/task-memory-policy.ts +3 -1
- package/src/domains/memory/types.ts +37 -0
- package/src/domains/memory/validate.ts +178 -0
- package/src/domains/middleware/memory-intervention.ts +38 -25
- package/src/domains/middleware/runtime.ts +6 -0
- package/src/domains/middleware/skills-reminder.ts +19 -4
- package/src/domains/middleware/stalled-turn.ts +208 -5
- package/src/domains/middleware/types.ts +10 -0
- package/src/domains/observability/contract.ts +6 -1
- package/src/domains/observability/cost.ts +20 -4
- package/src/domains/observability/extension.ts +2 -2
- package/src/domains/providers/index.ts +3 -0
- package/src/domains/providers/model-discovery.ts +9 -0
- package/src/domains/providers/runtime-resolution.ts +38 -1
- package/src/domains/providers/runtimes/common/probe-helpers.ts +97 -16
- package/src/domains/providers/types/context-window-slots.ts +18 -0
- package/src/domains/providers/types/runtime-descriptor.ts +3 -1
- package/src/domains/safety/autonomy.ts +1 -1
- package/src/domains/safety/call-target.ts +211 -14
- package/src/domains/safety/decision-presentation.ts +268 -0
- package/src/domains/safety/default-path-policy.ts +8 -0
- package/src/domains/safety/finish-contract.ts +4 -3
- package/src/domains/safety/policy-engine.ts +48 -6
- package/src/domains/safety/redaction.ts +73 -0
- package/src/domains/session/compaction/compact.ts +23 -1
- package/src/domains/session/compaction/cut-point.ts +2 -0
- package/src/domains/session/compaction/tokens.ts +16 -1
- package/src/domains/session/context-ledger.ts +12 -1
- package/src/domains/session/decision-board.ts +4 -0
- package/src/domains/session/entries.ts +110 -1
- package/src/domains/session/history.ts +68 -19
- package/src/domains/session/manager.ts +9 -2
- package/src/domains/session/migrations/index.ts +22 -3
- package/src/domains/session/usage.ts +24 -7
- package/src/engine/acp/event-mapper.ts +7 -0
- package/src/engine/acp/server.ts +32 -2
- package/src/engine/agent.ts +18 -1
- package/src/engine/apis/lmstudio.ts +25 -4
- package/src/engine/apis/openai-completions.ts +147 -22
- package/src/engine/claude/sdk-runtime.ts +8 -2
- package/src/engine/claude/tool-safety.ts +13 -0
- package/src/engine/loop-guard.ts +27 -3
- package/src/engine/session.ts +9 -3
- package/src/engine/worker-events.ts +4 -3
- package/src/engine/worker-runtime.ts +59 -54
- package/src/entry/orchestrator.ts +34 -5
- package/src/interactive/chat-loop-messages.ts +40 -6
- package/src/interactive/chat-loop.ts +13 -0
- package/src/interactive/chat-panel.ts +17 -1
- package/src/interactive/chat-renderer.ts +49 -24
- package/src/interactive/clio-editor.ts +44 -7
- package/src/interactive/context-meter.ts +10 -0
- package/src/interactive/context-overlay.ts +120 -7
- package/src/interactive/context-recall-command.ts +110 -0
- package/src/interactive/cost-overlay.ts +39 -8
- package/src/interactive/dispatch-board.ts +212 -35
- package/src/interactive/footer/widgets.ts +13 -0
- package/src/interactive/interactive-application.ts +6 -1
- package/src/interactive/interactive-input-runtime.ts +11 -1
- package/src/interactive/interactive-presentation.ts +11 -1
- package/src/interactive/interactive-slash-runtime.ts +37 -1
- package/src/interactive/memory-overlay.ts +89 -4
- package/src/interactive/model-session-replay.ts +21 -0
- package/src/interactive/overlay-ask-user-lifecycle.ts +1 -1
- package/src/interactive/overlay-frame.ts +5 -2
- package/src/interactive/overlay-general-openers.ts +46 -1
- package/src/interactive/overlay-key-routing.ts +41 -1
- package/src/interactive/overlay-lifecycle.ts +11 -4
- package/src/interactive/overlay-permission-lifecycle.ts +23 -8
- package/src/interactive/overlay-session-lifecycle.ts +8 -4
- package/src/interactive/overlay-transitions.ts +11 -0
- package/src/interactive/overlays/ask-user.ts +74 -30
- package/src/interactive/overlays/decisions.ts +3 -1
- package/src/interactive/permission-hint.ts +35 -0
- package/src/interactive/permission-overlay.ts +95 -45
- package/src/interactive/renderers/tool-execution.ts +37 -51
- package/src/interactive/session-last-turn.ts +8 -1
- package/src/interactive/session-transcript.ts +2 -2
- package/src/interactive/session-usage-reseed.ts +36 -10
- package/src/interactive/slash-commands.ts +31 -4
- package/src/interactive/status/summary.ts +5 -0
- package/src/interactive/status/types.ts +5 -0
- package/src/interactive/terminal-lease.ts +1 -0
- package/src/interactive/turn-context.ts +333 -110
- package/src/interactive/turn-middleware.ts +7 -6
- package/src/interactive/turn-runtime.ts +37 -8
- package/src/interactive/turn-state.ts +3 -0
- package/src/interactive/worker-progress.ts +440 -0
- package/src/interactive/worker-stream.ts +51 -110
- package/src/tools/agent-tools.ts +39 -7
- package/src/tools/ask-user.ts +21 -1
- package/src/tools/bash.ts +144 -82
- package/src/tools/builtin-tool-catalog.ts +11 -5
- package/src/tools/context/index.ts +107 -5
- package/src/tools/context/surface.ts +3 -2
- package/src/tools/core-bootstrap.ts +21 -0
- package/src/tools/dispatch-arguments.ts +8 -0
- package/src/tools/dispatch-event-text.ts +19 -0
- package/src/tools/dispatch-runner.ts +9 -7
- package/src/tools/dispatch.ts +24 -1
- package/src/tools/monitor.ts +43 -20
- package/src/tools/registry.ts +72 -10
- package/src/tools/result-disposition.ts +706 -0
- package/src/tools/result-shaping.ts +321 -20
- package/src/tools/safe-exec.ts +2 -0
- package/src/tools/verify/authoring.ts +1120 -0
- package/src/tools/verify/catalog.ts +346 -0
- package/src/tools/verify/index.ts +13 -3
- package/src/tools/verify/scripts.ts +135 -37
- package/src/tools/verify/surface.ts +9 -5
- package/src/tools/worker-evidence.ts +54 -12
- package/src/worker/spec-contract.ts +43 -3
- package/dist/chunk-J7CWMCQD.js +0 -255
- package/dist/chunk-T6YILFSB.js +0 -80
- package/dist/chunk-VAKQQHWR.js +0 -434
- package/dist/chunk-VPAYEGVX.js +0 -184
- package/dist/chunk-XBXAASKX.js +0 -18
- package/dist/memory-WFZMGYHX.js +0 -236
- package/src/domains/eval/metrics/chaos-stream.ts +0 -93
|
@@ -3,7 +3,7 @@ import { collectSessionEntries } from "../domains/session/compaction/session-ent
|
|
|
3
3
|
import type { SessionContract, SessionEntry } from "../domains/session/index.js";
|
|
4
4
|
import { openSession, sessionPaths } from "../engine/session.js";
|
|
5
5
|
import type { ChatLoop } from "./chat-loop.js";
|
|
6
|
-
import {
|
|
6
|
+
import { buildModelReplayAgentMessagesFromTurns } from "./model-session-replay.js";
|
|
7
7
|
|
|
8
8
|
type SessionOwner = Pick<SessionContract, "create" | "current">;
|
|
9
9
|
type SessionChat = Pick<ChatLoop, "resetForSession">;
|
|
@@ -87,7 +87,7 @@ export function createSessionTranscript(deps: SessionTranscriptDeps): SessionTra
|
|
|
87
87
|
const turns = deps.readSessionEntries();
|
|
88
88
|
deps.chat.resetForSession(
|
|
89
89
|
leafTurnId,
|
|
90
|
-
|
|
90
|
+
buildModelReplayAgentMessagesFromTurns(turns, {
|
|
91
91
|
...(leafTurnId ? { activeLeafTurnId: leafTurnId } : {}),
|
|
92
92
|
}),
|
|
93
93
|
);
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
* only the sink wiring between that fold and the observability projection.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import {
|
|
18
|
+
addResponseModelIdObservationCount,
|
|
19
|
+
emptyResponseModelIdObservationCounts,
|
|
20
|
+
type ResponseModelIdObservationCounts,
|
|
21
|
+
} from "../core/response-model-id.js";
|
|
17
22
|
import { ledgerUsageCalls, type SessionEntry, type SessionUsageDefaults } from "../domains/session/index.js";
|
|
18
23
|
import { filterEntriesToActivePath } from "../domains/session/tree/active-path.js";
|
|
19
24
|
|
|
@@ -22,7 +27,7 @@ export interface SessionUsageSink {
|
|
|
22
27
|
resetSession(): void;
|
|
23
28
|
recordTokens(
|
|
24
29
|
providerId: string,
|
|
25
|
-
|
|
30
|
+
attributedModelId: string,
|
|
26
31
|
tokens: number,
|
|
27
32
|
costUsd?: number,
|
|
28
33
|
breakdown?: {
|
|
@@ -35,6 +40,10 @@ export interface SessionUsageSink {
|
|
|
35
40
|
apiCalls?: number;
|
|
36
41
|
},
|
|
37
42
|
costProvenance?: never,
|
|
43
|
+
modelIdFacts?: {
|
|
44
|
+
requestedModelIds: ReadonlyArray<string>;
|
|
45
|
+
responseModelIdObservationCounts: Readonly<ResponseModelIdObservationCounts>;
|
|
46
|
+
},
|
|
38
47
|
): void;
|
|
39
48
|
}
|
|
40
49
|
|
|
@@ -61,14 +70,31 @@ export function reseedSessionUsageFromLedger(
|
|
|
61
70
|
sink.resetSession();
|
|
62
71
|
const scoped = filterEntriesToActivePath(entries, activeLeafTurnId ?? undefined);
|
|
63
72
|
for (const call of ledgerUsageCalls(scoped, defaults)) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
const responseModelIdObservationCounts = emptyResponseModelIdObservationCounts();
|
|
74
|
+
addResponseModelIdObservationCount(
|
|
75
|
+
responseModelIdObservationCounts,
|
|
76
|
+
call.responseModelIdObservation,
|
|
77
|
+
call.apiCalls ?? 1,
|
|
78
|
+
);
|
|
79
|
+
sink.recordTokens(
|
|
80
|
+
call.providerId,
|
|
81
|
+
call.attributedModelId,
|
|
82
|
+
call.totalTokens,
|
|
83
|
+
call.costUsd,
|
|
84
|
+
{
|
|
85
|
+
input: call.input,
|
|
86
|
+
output: call.output,
|
|
87
|
+
cacheRead: call.cacheRead,
|
|
88
|
+
cacheWrite: call.cacheWrite,
|
|
89
|
+
reasoningTokens: call.reasoningTokens,
|
|
90
|
+
totalTokens: call.totalTokens,
|
|
91
|
+
apiCalls: call.apiCalls ?? 1,
|
|
92
|
+
},
|
|
93
|
+
undefined,
|
|
94
|
+
{
|
|
95
|
+
requestedModelIds: [call.requestedModelId],
|
|
96
|
+
responseModelIdObservationCounts,
|
|
97
|
+
},
|
|
98
|
+
);
|
|
73
99
|
}
|
|
74
100
|
}
|
|
@@ -44,6 +44,8 @@ type SlashCommandVariant =
|
|
|
44
44
|
| { kind: "init"; options: InitCommandOptions }
|
|
45
45
|
| { kind: "context-clear"; options: ContextClearCommandOptions }
|
|
46
46
|
| { kind: "context-refresh" }
|
|
47
|
+
/** `ref` is the turnId an `[evicted ...]` marker names. */
|
|
48
|
+
| { kind: "context-recall"; ref: string }
|
|
47
49
|
| { kind: "skill-selector" }
|
|
48
50
|
| { kind: "skill-invocation"; text: string }
|
|
49
51
|
| { kind: "prompts" }
|
|
@@ -343,6 +345,13 @@ export interface SlashCommandContext {
|
|
|
343
345
|
* Optional until the host wires onContextRefresh.
|
|
344
346
|
*/
|
|
345
347
|
runContextRefresh?: () => void;
|
|
348
|
+
/**
|
|
349
|
+
* Read an evicted tool-result body back into the transcript by ref, and
|
|
350
|
+
* record the `contextRecall` entry. Transcript-only: an operator recall
|
|
351
|
+
* answers the person, so the body never becomes model context. Optional
|
|
352
|
+
* until the host wires a session.
|
|
353
|
+
*/
|
|
354
|
+
runContextRecall?: (ref: string) => void;
|
|
346
355
|
openSkillsHub?: () => void;
|
|
347
356
|
listPrompts: () => ResourceList<PromptTemplate>;
|
|
348
357
|
/**
|
|
@@ -384,7 +393,7 @@ export interface SlashCommandContext {
|
|
|
384
393
|
done(id: string): UserTask;
|
|
385
394
|
drop(id: string): UserTask;
|
|
386
395
|
};
|
|
387
|
-
/** Open
|
|
396
|
+
/** Open `/memory` for approved lessons, the live task bank, and reviewed promotion. */
|
|
388
397
|
openMemory: () => void;
|
|
389
398
|
/** Opt-in import from the newest structured handoff; absent when the host has no task bank. */
|
|
390
399
|
seedTaskMemory?: () => TaskMemorySeedCommandResult;
|
|
@@ -481,6 +490,13 @@ const COMPACT_POSITIONALS: ReadonlyArray<CommandPositionalSpec> = [
|
|
|
481
490
|
{ name: "instructions", required: false, rest: true },
|
|
482
491
|
];
|
|
483
492
|
|
|
493
|
+
/**
|
|
494
|
+
* `/context recall <ref>` takes exactly one ref, not a rest tail: a ref is a
|
|
495
|
+
* single turnId, and a second token is a mistake worth reporting rather than
|
|
496
|
+
* text to fold into the first.
|
|
497
|
+
*/
|
|
498
|
+
const RECALL_POSITIONALS: ReadonlyArray<CommandPositionalSpec> = [{ name: "ref", required: true }];
|
|
499
|
+
|
|
484
500
|
/**
|
|
485
501
|
* A registered command whose arguments do not parse is a mistake to report,
|
|
486
502
|
* not a chat message to send. Falling through to `unknown` submitted the raw
|
|
@@ -859,11 +875,12 @@ export const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [
|
|
|
859
875
|
},
|
|
860
876
|
{
|
|
861
877
|
name: "context",
|
|
862
|
-
description: "Context hub: window overlay plus compact, init, refresh, and reset",
|
|
878
|
+
description: "Context hub: window overlay plus compact, recall, init, refresh, and reset",
|
|
863
879
|
group: "Inspect",
|
|
864
|
-
kinds: ["context-view", "compact", "init", "context-clear", "context-refresh"],
|
|
880
|
+
kinds: ["context-view", "compact", "context-recall", "init", "context-clear", "context-refresh"],
|
|
865
881
|
subcommandDescriptions: {
|
|
866
882
|
compact: "Compact session context",
|
|
883
|
+
recall: "Recall an evicted result",
|
|
867
884
|
init: "Initialize project context",
|
|
868
885
|
refresh: "Refresh project context",
|
|
869
886
|
reset: "Reset project context",
|
|
@@ -871,6 +888,7 @@ export const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [
|
|
|
871
888
|
args: {
|
|
872
889
|
subcommands: {
|
|
873
890
|
compact: { positionals: [...COMPACT_POSITIONALS] },
|
|
891
|
+
recall: { positionals: [...RECALL_POSITIONALS] },
|
|
874
892
|
init: {},
|
|
875
893
|
refresh: {},
|
|
876
894
|
reset: {},
|
|
@@ -881,6 +899,8 @@ export const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [
|
|
|
881
899
|
switch (parsed.subcommand) {
|
|
882
900
|
case "compact":
|
|
883
901
|
return { kind: "compact", instructions: parsed.rest };
|
|
902
|
+
case "recall":
|
|
903
|
+
return { kind: "context-recall", ref: parsed.positionals[0] ?? "" };
|
|
884
904
|
case "init":
|
|
885
905
|
return { kind: "init", options: {} };
|
|
886
906
|
case "refresh":
|
|
@@ -899,6 +919,13 @@ export const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [
|
|
|
899
919
|
case "compact":
|
|
900
920
|
ctx.runCompact(command.instructions);
|
|
901
921
|
return;
|
|
922
|
+
case "context-recall":
|
|
923
|
+
if (ctx.runContextRecall) {
|
|
924
|
+
ctx.runContextRecall(command.ref);
|
|
925
|
+
} else {
|
|
926
|
+
ctx.notice("error", "context recall is not wired; no session is bound to this process");
|
|
927
|
+
}
|
|
928
|
+
return;
|
|
902
929
|
case "init":
|
|
903
930
|
ctx.runInit(command.options);
|
|
904
931
|
return;
|
|
@@ -1009,7 +1036,7 @@ export const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [
|
|
|
1009
1036
|
},
|
|
1010
1037
|
{
|
|
1011
1038
|
name: "memory",
|
|
1012
|
-
description: "Inspect
|
|
1039
|
+
description: "Inspect, promote, or seed task memory",
|
|
1013
1040
|
group: "Inspect",
|
|
1014
1041
|
kinds: ["memory", "memory-seed"],
|
|
1015
1042
|
subcommandDescriptions: { seed: "Seed the task bank from the newest handoff" },
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { responseModelIdObservationFromRecord } from "../../core/response-model-id.js";
|
|
1
2
|
import { estimateReasoningTextTokens, extractReasoningTokens } from "../../domains/session/context-accounting.js";
|
|
2
3
|
import type { AgentMessage } from "../../engine/types.js";
|
|
3
4
|
import type { ReasoningTokenProvenance, RunTally, TurnStopReason, TurnSummary, WatchdogTier } from "./types.js";
|
|
@@ -65,6 +66,7 @@ export function emptyRunTally(): RunTally {
|
|
|
65
66
|
hadEstimatedReasoning: false,
|
|
66
67
|
toolCount: 0,
|
|
67
68
|
toolErrorCount: 0,
|
|
69
|
+
responseModelIdObservation: { state: "not-observed" },
|
|
68
70
|
};
|
|
69
71
|
}
|
|
70
72
|
|
|
@@ -85,8 +87,10 @@ export function foldMessageIntoRunTally(tally: RunTally, message: AgentMessage):
|
|
|
85
87
|
}
|
|
86
88
|
if (message.role !== "assistant") return tally;
|
|
87
89
|
const usage = (message as { usage?: UsageLike }).usage;
|
|
90
|
+
const record = message as unknown as Record<string, unknown>;
|
|
88
91
|
const next: RunTally = {
|
|
89
92
|
...tally,
|
|
93
|
+
responseModelIdObservation: responseModelIdObservationFromRecord(record, "not-observed"),
|
|
90
94
|
inputTokens: tally.inputTokens + (usage ? finite(usage.input) : 0),
|
|
91
95
|
outputTokens: tally.outputTokens + (usage ? finite(usage.output) : 0),
|
|
92
96
|
cacheReadTokens: tally.cacheReadTokens + (usage ? finite(usage.cacheRead) : 0),
|
|
@@ -145,6 +149,7 @@ export function summaryFromRunTally(tally: RunTally, input: SummaryFromTallyInpu
|
|
|
145
149
|
...(input.stopDetail !== undefined ? { stopDetail: input.stopDetail } : {}),
|
|
146
150
|
watchdogPeak: input.watchdogPeak,
|
|
147
151
|
truncated: input.truncated === true,
|
|
152
|
+
responseModelIdObservation: tally.responseModelIdObservation,
|
|
148
153
|
};
|
|
149
154
|
if (tally.hadProviderReasoning || tally.hadEstimatedReasoning) {
|
|
150
155
|
summary.reasoningTokens = tally.reasoningTokens;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { StatusPhase, WatchdogTier } from "../../core/bus-events.js";
|
|
2
|
+
import type { ResponseModelIdObservation } from "../../core/response-model-id.js";
|
|
2
3
|
|
|
3
4
|
// StatusPhase, WatchdogTier, and AgentStatusChangedPayload moved to
|
|
4
5
|
// src/core/bus-events.ts (the phase taxonomy rides the agent.status.changed
|
|
@@ -29,6 +30,8 @@ export interface DispatchOverlay {
|
|
|
29
30
|
export interface TurnSummary {
|
|
30
31
|
elapsedMs: number;
|
|
31
32
|
modelId: string;
|
|
33
|
+
/** Direct response model-id observation for the last API call in the turn. */
|
|
34
|
+
responseModelIdObservation: ResponseModelIdObservation;
|
|
32
35
|
targetId: string;
|
|
33
36
|
inputTokens: number;
|
|
34
37
|
outputTokens: number;
|
|
@@ -70,6 +73,8 @@ export interface RunTally {
|
|
|
70
73
|
hadEstimatedReasoning: boolean;
|
|
71
74
|
toolCount: number;
|
|
72
75
|
toolErrorCount: number;
|
|
76
|
+
/** Direct response model-id observation for the last assistant call folded. */
|
|
77
|
+
responseModelIdObservation: ResponseModelIdObservation;
|
|
73
78
|
}
|
|
74
79
|
|
|
75
80
|
export interface OverlayFrame {
|
|
@@ -189,6 +189,7 @@ export function createProcessTerminalLease(options: CreateProcessTerminalLeaseOp
|
|
|
189
189
|
getModelLabel: () => editorChrome.getModelLabel(),
|
|
190
190
|
getThinkingLabel: () => editorChrome.getThinkingLabel(),
|
|
191
191
|
isStreaming: () => editorChrome.isStreaming?.() ?? false,
|
|
192
|
+
isAwaitingApproval: () => editorChrome.isAwaitingApproval?.() ?? false,
|
|
192
193
|
willEnterSteer: (text) => editorChrome.willEnterSteer?.(text) ?? false,
|
|
193
194
|
getSubmitKeyLabel: () => editorChrome.getSubmitKeyLabel?.() ?? "Enter",
|
|
194
195
|
getNewlineKeyLabel: () => editorChrome.getNewlineKeyLabel?.() ?? "Shift+Enter",
|