@iowarp/clio-coder 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +92 -0
- package/CONTRIBUTING.md +59 -36
- package/README.md +404 -472
- package/SECURITY.md +2 -1
- package/dist/{acp-ZILU3AUO.js → acp-TMDQZDIG.js} +7 -7
- package/dist/{agents-HYWGBGQR.js → agents-5N5NG3XG.js} +28 -28
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-N3QT7CBO.js → auth-Z5CCBXKQ.js} +8 -9
- package/dist/{builtins-UJLMOVOV.js → builtins-K6TNDT24.js} +4 -4
- package/dist/{chunk-GVQJ5CCZ.js → chunk-2HFQNRV3.js} +7 -7
- package/dist/{chunk-QMXC4JB7.js → chunk-2NHR3NAY.js} +163 -1401
- package/dist/chunk-2X4RYJTJ.js +39 -0
- package/dist/{chunk-Y45G3AXC.js → chunk-2Z2IKEXI.js} +6 -10
- package/dist/{chunk-EIMVLWB3.js → chunk-34BHNEE3.js} +7 -3
- package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
- package/dist/chunk-3EBYEESD.js +314 -0
- package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
- package/dist/{chunk-AP73CFDC.js → chunk-3KIPBMUA.js} +2 -2
- package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
- package/dist/{chunk-VEGN6WIQ.js → chunk-462T4EGZ.js} +2 -2
- package/dist/{chunk-AFKWHWXF.js → chunk-4JDLP6ZS.js} +33 -16
- package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
- package/dist/{chunk-AKB4GYDL.js → chunk-54ODD65L.js} +5 -5
- package/dist/{chunk-BBTJOK6Y.js → chunk-5KW52TEP.js} +3 -3
- package/dist/{chunk-6CCS4G3W.js → chunk-5PFYMY2V.js} +2 -2
- package/dist/chunk-77QIVUZB.js +1334 -0
- package/dist/{chunk-7OBGU7UB.js → chunk-7BHIY2MW.js} +7 -13
- package/dist/{chunk-3QSOM6PA.js → chunk-AZ4WMN4W.js} +2 -2
- package/dist/{chunk-6NJQITNH.js → chunk-B74PXLU7.js} +6 -3
- package/dist/{chunk-R23Z6K6I.js → chunk-B7HM5Z7T.js} +15 -15
- package/dist/{chunk-R32CLGZ6.js → chunk-BO7Y52RY.js} +81 -20
- package/dist/{chunk-UEDMSP56.js → chunk-BYMNWQ7O.js} +123 -148
- package/dist/{chunk-ZJLUDYFY.js → chunk-CRFOIAX3.js} +4 -4
- package/dist/{chunk-2NM363SV.js → chunk-CYZW7JHJ.js} +7 -7
- package/dist/{chunk-6HMJX2VU.js → chunk-DYHAXKHD.js} +38 -10
- package/dist/{chunk-THYWACCR.js → chunk-DZAW46HP.js} +3 -3
- package/dist/{chunk-FYUN5KZ3.js → chunk-DZEK6CJN.js} +17 -17
- package/dist/{chunk-3I5NY75V.js → chunk-E7GT7O5N.js} +5 -5
- package/dist/{chunk-VKFQTNDV.js → chunk-F2I26BDK.js} +4 -4
- package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
- package/dist/{chunk-IXJT6DCX.js → chunk-FVDGR2ZL.js} +3 -3
- package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
- package/dist/{chunk-7EPLI7VL.js → chunk-HIICAHCJ.js} +2 -2
- package/dist/{chunk-E67WX76H.js → chunk-HKMD33FO.js} +29 -80
- package/dist/chunk-HLAFFSEK.js +360 -0
- package/dist/{chunk-UAPGZHYC.js → chunk-I64IFBLB.js} +9 -2
- package/dist/{chunk-XKA2ICR3.js → chunk-I66ZTYNP.js} +440 -175
- package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
- package/dist/{chunk-PVAMAVBB.js → chunk-IDNA72AH.js} +102 -2
- package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
- package/dist/{chunk-2VG7KLYV.js → chunk-IKSLQ4XV.js} +5460 -3241
- package/dist/{chunk-QKIFBZKT.js → chunk-IMXMHHMQ.js} +166 -25
- package/dist/{chunk-74YWRRU5.js → chunk-JBCS7CRR.js} +2 -2
- package/dist/{chunk-BDPT6GTK.js → chunk-JWJGP5DQ.js} +2 -2
- package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
- package/dist/chunk-KPXDY6QF.js +47 -0
- package/dist/{chunk-ABLSQ6JX.js → chunk-LJID3DYZ.js} +7 -1
- package/dist/{chunk-VKRH2TCS.js → chunk-M2DAX4F6.js} +2 -2
- package/dist/{chunk-6I5ILFOF.js → chunk-M2WXEHER.js} +2 -2
- package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
- package/dist/{chunk-N5UK64DP.js → chunk-MCMZMDAC.js} +2 -2
- package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
- package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
- package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
- package/dist/{chunk-HUAS7ITX.js → chunk-O3YUNJZ2.js} +13 -21
- package/dist/{chunk-MA3H6DM5.js → chunk-P75RZCJW.js} +25 -3
- package/dist/{chunk-IG7BCQBA.js → chunk-PGF63K6I.js} +2 -2
- package/dist/chunk-PJX3WQUQ.js +42 -0
- package/dist/{chunk-6DWBAZ5U.js → chunk-Q4XWMHX6.js} +4 -6
- package/dist/{chunk-OJTRZGR3.js → chunk-QQLGQY2A.js} +8 -8
- package/dist/{chunk-J4HBWF6Y.js → chunk-RLYRBIYQ.js} +115 -20
- package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
- package/dist/{chunk-C537JADH.js → chunk-SSEYRH53.js} +6 -7
- package/dist/chunk-SZAA6XDG.js +30 -0
- package/dist/{chunk-MOPSG2X7.js → chunk-TPEQIQIE.js} +6 -6
- package/dist/{chunk-JA5QWE4Z.js → chunk-UBRFI4HS.js} +1879 -1650
- package/dist/{chunk-BTGG6BG2.js → chunk-UH347SHR.js} +154 -15
- package/dist/{chunk-5YHDIDBP.js → chunk-UH632ZYL.js} +2 -2
- package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
- package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
- package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
- package/dist/{chunk-UXN6JT4W.js → chunk-W4YEMFBX.js} +2 -2
- package/dist/{chunk-TD3PGPQA.js → chunk-W6NIE6OW.js} +2 -2
- package/dist/{chunk-TVH4ONAM.js → chunk-X7IARSHT.js} +3 -3
- package/dist/{chunk-PJJ6MY27.js → chunk-XE3PCIXH.js} +3 -3
- package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
- package/dist/{chunk-SCYB3HA4.js → chunk-XOXV5GKE.js} +51 -16
- package/dist/{chunk-QTFGO774.js → chunk-XQRY4DTA.js} +24 -11
- package/dist/{chunk-BJGUKIG4.js → chunk-YJISEZKC.js} +2 -2
- package/dist/{chunk-GPPB3JBE.js → chunk-ZGNYYXQ6.js} +2 -2
- package/dist/{chunk-SINK3QR6.js → chunk-ZNT2M6TG.js} +7 -7
- package/dist/{chunk-7RY5VZPH.js → chunk-ZW4HH5JJ.js} +6 -6
- package/dist/cli/index.js +33 -32
- package/dist/{clio-IT3G3VQH.js → clio-7VB377CC.js} +7 -7
- package/dist/{code-nav-RK6S7F6E.js → code-nav-YVLCYA7V.js} +85 -17
- package/dist/{config-3QZRWZJF.js → config-4HVOS65E.js} +88 -43
- package/dist/{configure-FL7Y3KJF.js → configure-PIWO7B24.js} +10 -10
- package/dist/{context-5HE7ODYK.js → context-IYEHL3WQ.js} +33 -31
- package/dist/{context-XNHL75JV.js → context-KQYIWPWT.js} +47 -34
- package/dist/{context-KYQFRVDC.js → context-N6ZE3LGJ.js} +11 -11
- package/dist/{context-clear-N545L53A.js → context-clear-G4OGZJDS.js} +33 -31
- package/dist/{context-working-set-QHKXSV2F.js → context-working-set-BWLF6LJP.js} +7 -7
- package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-2QQAITS3.js} +38 -38
- package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
- package/dist/{doctor-ZGPEGHIP.js → doctor-LHBD36VU.js} +23 -22
- package/dist/{eval-GXLL44RD.js → eval-C45FYRJ6.js} +21 -20
- package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-6DEJPLBF.js} +2 -2
- package/dist/{evidence-HWLBRH3Q.js → evidence-6SHONYAF.js} +30 -28
- package/dist/{evolve-FTZBMNVW.js → evolve-KRKMV72X.js} +30 -28
- package/dist/{extensions-VHRBEID7.js → extensions-KPZ2UHBB.js} +5 -3
- package/dist/{fleet-CKZHJWZJ.js → fleet-IVTCKDHT.js} +62 -61
- package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-EDWL3IT7.js} +5 -5
- package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-YP3YEFGK.js} +4 -4
- package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-ZFWKHY2M.js} +16 -14
- package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-FVUNCBML.js} +31 -29
- package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-UN5XED4R.js} +2 -2
- package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-XOWC4HSX.js} +17 -15
- package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-UN3SODEL.js} +30 -28
- package/dist/{fleet-view-WAMJYNDT.js → fleet-view-TWHJKCN6.js} +31 -29
- package/dist/{init-5XQRBOFV.js → init-T2QORQ3Y.js} +50 -49
- package/dist/{interop-34TVO25M.js → interop-IN5I2A66.js} +5 -5
- package/dist/{library-3QY6KF57.js → library-LSCATDLZ.js} +15 -13
- package/dist/{memory-L4UTIIIW.js → memory-HYOKAGGJ.js} +31 -29
- package/dist/{models-ZVX3QOWE.js → models-2GPMFYCM.js} +22 -21
- package/dist/{monitor-CEKVSYTS.js → monitor-E4ASVUJH.js} +34 -32
- package/dist/{orchestrator-77BAP6BC.js → orchestrator-DDMPR3PY.js} +984 -583
- package/dist/{panes-7STHOAUJ.js → panes-E3RUXOW5.js} +4 -4
- package/dist/{panes-SHAUIRXY.js → panes-IXKLOKA2.js} +23 -8
- package/dist/{reset-EOLM7GVE.js → reset-OAQP3W4O.js} +4 -4
- package/dist/{resources-74GKTLSF.js → resources-OTRSN34L.js} +15 -13
- package/dist/{run-HBAUJNNZ.js → run-5DEYH5QK.js} +60 -59
- package/dist/{share-G3APVLVP.js → share-IHWTLO3M.js} +19 -15
- package/dist/{skills-35HHUKCR.js → skills-IYMXMKW4.js} +17 -15
- package/dist/{skills-eval-QN4HSHDC.js → skills-eval-DROHSJAR.js} +36 -36
- package/dist/{skills-inventory-J357J34F.js → skills-inventory-D7X4L4ZX.js} +15 -13
- package/dist/{slash-commands-JZZCQA32.js → slash-commands-QBM7UZ3B.js} +21 -18
- package/dist/{steer-XAVHJM22.js → steer-Z5DO23FJ.js} +2 -2
- package/dist/{targets-DSM6CY3M.js → targets-P2FUC4IL.js} +25 -28
- package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-YREJ3JX2.js} +5 -5
- package/dist/{tools-MKNWVPBH.js → tools-5B7RO6MV.js} +4 -4
- package/dist/{trace-ECQ7TIYZ.js → trace-YMGMUM6A.js} +55 -7
- package/dist/{upgrade-H7TOM7YL.js → upgrade-PXK3S2YM.js} +11 -9
- package/dist/{usage-X52N3IDJ.js → usage-ME5MPXGX.js} +36 -34
- package/dist/{verifiers-EJTVVSMA.js → verifiers-BVZ7IWOO.js} +5 -5
- package/dist/{verify-YJL6XET2.js → verify-5K7ZKQFC.js} +4 -4
- package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
- package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-F5W5QTYY.js} +48 -47
- package/dist/{with-panes-OBOBFIIR.js → with-panes-BYOJCLAM.js} +51 -255
- package/dist/worker/entry.js +45 -30
- package/docs/README.md +176 -81
- package/docs/{acp.md → architecture/acp.md} +36 -20
- package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
- package/docs/{architecture.md → architecture/architecture.md} +43 -22
- package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
- package/docs/architecture/artifact-versions.md +90 -0
- package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
- package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
- package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
- package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
- package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
- package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
- package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
- package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
- package/docs/{observability.md → architecture/observability.md} +26 -13
- package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
- package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
- package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
- package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
- package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
- package/docs/architecture/time-conventions.md +125 -0
- package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
- package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
- package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
- package/docs/{built-in-agents.md → guide/built-in-agents.md} +50 -34
- package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +65 -60
- package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +227 -289
- package/docs/guide/configuration-reference.md +1158 -0
- package/docs/{environment-variables.md → guide/environment-variables.md} +31 -28
- package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
- package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
- package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
- package/docs/{glossary.md → guide/glossary.md} +14 -11
- package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +44 -13
- package/docs/guide/panes-and-files.md +290 -0
- package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
- package/docs/{resource-library.md → guide/resource-library.md} +13 -4
- package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
- package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
- package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
- package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
- package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
- package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
- package/docs/process/documentation-coverage.md +100 -0
- package/docs/process/documentation-guide.md +187 -0
- package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
- package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
- package/docs/{evolution.md → process/evolution.md} +2 -2
- package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
- package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
- package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
- package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
- package/evals/README.md +2 -2
- package/package.json +9 -7
- package/skills/README.md +46 -37
- package/skills/coding/ast-grep/SKILL.md +2 -2
- package/skills/coding/coding-standards/SKILL.md +2 -2
- package/skills/coding/prototype/SKILL.md +2 -2
- package/skills/coding/tdd/SKILL.md +2 -2
- package/skills/context/context-handoff/SKILL.md +2 -2
- package/skills/context/context-prime/SKILL.md +2 -2
- package/skills/git/file-ticket/SKILL.md +2 -2
- package/skills/git/fix-issue/SKILL.md +3 -3
- package/skills/git/resolve-merge-conflicts/SKILL.md +2 -2
- package/skills/git/ship/SKILL.md +2 -2
- package/skills/git/worktree-create/SKILL.md +2 -2
- package/skills/git/worktree-merge/SKILL.md +2 -2
- package/skills/meta/clio-coder-dev/SKILL.md +9 -5
- package/skills/meta/clio-coder-dev/evals.md +3 -2
- package/skills/meta/clio-coder-test/SKILL.md +102 -95
- package/skills/meta/clio-coder-test/evals.md +9 -4
- package/skills/meta/clio-coder-test/references/harness.md +100 -124
- package/skills/meta/clio-coder-test/references/test-map.md +77 -50
- package/skills/meta/credentials/SKILL.md +2 -2
- package/skills/meta/find-skills/SKILL.md +2 -2
- package/skills/meta/herdr/SKILL.md +2 -2
- package/skills/meta/skill-craft/SKILL.md +22 -16
- package/skills/planning/architecture/SKILL.md +2 -2
- package/skills/planning/backlog/SKILL.md +2 -2
- package/skills/planning/prd/SKILL.md +2 -2
- package/skills/planning/product-intent/SKILL.md +2 -2
- package/skills/planning/tech-spec/SKILL.md +2 -2
- package/skills/registry.yaml +62 -62
- package/skills/research/arxiv-literature/SKILL.md +2 -2
- package/skills/research/experiment-protocol/SKILL.md +2 -2
- package/skills/research/scientific-debugging/SKILL.md +2 -2
- package/skills/research/scientific-modernization/SKILL.md +2 -2
- package/skills/skill-marketplace.json +62 -62
- package/skills/workflow/cut-it/SKILL.md +2 -2
- package/skills/workflow/design-council/SKILL.md +2 -2
- package/skills/workflow/grill-me/SKILL.md +2 -2
- package/skills/workflow/workflow-distiller/SKILL.md +2 -2
- package/src/cli/args.ts +2 -2
- package/src/cli/bootstrap-generate.ts +1 -1
- package/src/cli/config-inspect.ts +65 -12
- package/src/cli/configure.ts +0 -4
- package/src/cli/docs.ts +22 -14
- package/src/cli/doctor-naming.ts +5 -5
- package/src/cli/doctor-toolchain.ts +3 -3
- package/src/cli/eval.ts +1 -2
- package/src/cli/extensions.ts +2 -1
- package/src/cli/fleet.ts +1 -1
- package/src/cli/index.ts +2 -1
- package/src/cli/internal-dispatch.ts +3 -4
- package/src/cli/panes.ts +19 -5
- package/src/cli/run.ts +2 -2
- package/src/cli/share.ts +5 -1
- package/src/cli/skills-eval.ts +3 -3
- package/src/cli/targets.ts +2 -6
- package/src/cli/trace.ts +55 -4
- package/src/cli/wiki-generate.ts +1 -1
- package/src/core/artifact-paths.ts +1 -1
- package/src/core/bash-exec.ts +131 -86
- package/src/core/bus-events.ts +51 -6
- package/src/core/config.ts +5 -1
- package/src/core/defaults.ts +7 -4
- package/src/core/dispatch-outcome.ts +16 -0
- package/src/core/guardrails.ts +10 -49
- package/src/core/prompt-hint.ts +9 -0
- package/src/domains/agents/builtins/architect.md +2 -3
- package/src/domains/agents/builtins/coder.md +3 -2
- package/src/domains/agents/builtins/debugger.md +2 -2
- package/src/domains/agents/builtins/documenter.md +2 -2
- package/src/domains/agents/builtins/git-master.md +1 -1
- package/src/domains/agents/builtins/oracle.md +1 -1
- 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 +2 -2
- package/src/domains/agents/builtins/verifier.md +2 -2
- package/src/domains/agents/builtins/wiki-writer.md +1 -1
- package/src/domains/agents/catalog.ts +12 -14
- package/src/domains/agents/contract.ts +2 -0
- package/src/domains/agents/extension.ts +23 -1
- package/src/domains/config/keybindings.ts +8 -0
- package/src/domains/context/extension.ts +0 -3
- package/src/domains/context/working-set/path-index.ts +1 -0
- package/src/domains/dispatch/capability-match.ts +10 -0
- package/src/domains/dispatch/extension.ts +105 -22
- package/src/domains/dispatch/host-verification.ts +435 -39
- package/src/domains/dispatch/intent-requirements.ts +10 -0
- package/src/domains/dispatch/intent.ts +18 -1
- package/src/domains/dispatch/path-scope.ts +235 -24
- package/src/domains/dispatch/run-event-journal.ts +4 -15
- package/src/domains/dispatch/state.ts +2 -3
- package/src/domains/dispatch/transport.ts +45 -21
- package/src/domains/dispatch/types.ts +55 -3
- package/src/domains/eval/artifacts/store.ts +5 -0
- package/src/domains/eval/store.ts +8 -1
- package/src/domains/evidence/trust-status.ts +10 -1
- package/src/domains/extensions/contract.ts +15 -1
- package/src/domains/extensions/discovery.ts +238 -41
- package/src/domains/extensions/extension.ts +105 -6
- package/src/domains/extensions/index.ts +24 -0
- package/src/domains/extensions/integrity.ts +189 -0
- package/src/domains/extensions/manager.ts +17 -1
- package/src/domains/extensions/resource-path.ts +27 -0
- package/src/domains/extensions/resources.ts +18 -38
- package/src/domains/extensions/snapshot-store.ts +39 -0
- package/src/domains/extensions/snapshot.ts +180 -0
- package/src/domains/extensions/state.ts +385 -57
- package/src/domains/extensions/types.ts +118 -1
- package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
- package/src/domains/lifecycle/migrations/index.ts +2 -0
- package/src/domains/lifecycle/naming-resources.ts +19 -4
- package/src/domains/lifecycle/naming-yazi.ts +10 -5
- package/src/domains/middleware/contract.ts +26 -0
- package/src/domains/middleware/extension.ts +24 -24
- package/src/domains/middleware/hook-receipts.ts +27 -4
- package/src/domains/middleware/hooks-io.ts +65 -32
- package/src/domains/middleware/hooks.ts +64 -0
- package/src/domains/middleware/index.ts +28 -4
- package/src/domains/middleware/registrations.ts +326 -0
- package/src/domains/middleware/runtime.ts +28 -0
- package/src/domains/middleware/snapshot.ts +20 -7
- package/src/domains/mux/contract.ts +38 -0
- package/src/domains/mux/detect.ts +6 -13
- package/src/domains/mux/index.ts +1 -1
- package/src/domains/mux/operations.ts +44 -5
- package/src/domains/mux/yazi/assets/yazi.toml +2 -2
- package/src/domains/mux/yazi/session.ts +53 -4
- package/src/domains/mux/yazi/theme.ts +117 -17
- package/src/domains/observability/contract.ts +10 -11
- package/src/domains/observability/extension.ts +11 -3
- package/src/domains/observability/projection.ts +14 -90
- package/src/domains/observability/trace-store.ts +43 -7
- package/src/domains/prompts/compiler.ts +73 -53
- package/src/domains/prompts/contract.ts +15 -3
- package/src/domains/prompts/extension.ts +97 -9
- package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
- package/src/domains/prompts/fragments/identity/clio.md +6 -12
- package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
- package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
- package/src/domains/prompts/fragments/operating/contract.md +7 -15
- package/src/domains/prompts/fragments/operating/delegation.md +32 -34
- package/src/domains/prompts/fragments/operating/skills.md +10 -24
- package/src/domains/prompts/fragments/operating/worker.md +1 -8
- package/src/domains/providers/index.ts +1 -1
- package/src/domains/providers/model-runtime-capabilities.ts +85 -21
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +669 -104
- package/src/domains/providers/runtime-resolution.ts +31 -0
- package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
- package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
- package/src/domains/providers/types/cost-provenance.ts +19 -0
- package/src/domains/providers/types/local-model-quirks.ts +85 -37
- package/src/domains/resources/skills/loader.ts +16 -19
- package/src/domains/safety/call-target.ts +1 -1
- package/src/domains/safety/loop-detector.ts +7 -4
- package/src/domains/session/task-board.ts +10 -9
- package/src/domains/share/archive.ts +164 -7
- package/src/engine/acp/server.ts +62 -9
- package/src/engine/apis/llamacpp-residency.ts +3 -4
- package/src/engine/apis/lmstudio.ts +3 -3
- package/src/engine/apis/ollama-native.ts +6 -6
- package/src/engine/apis/openai-completions.ts +28 -25
- package/src/engine/apis/output-budget.ts +8 -18
- package/src/engine/apis/residency.ts +8 -27
- package/src/engine/gemma-channel-filter.ts +19 -0
- package/src/engine/loop-guard.ts +92 -12
- package/src/engine/worker-runtime.ts +40 -11
- package/src/engine/worker-tools.ts +3 -1
- package/src/entry/extension-hook-sources.ts +28 -0
- package/src/entry/extension-reload.ts +309 -0
- package/src/entry/orchestrator.ts +59 -35
- package/src/interactive/application-controller.ts +2 -1
- package/src/interactive/bus-notices.ts +8 -1
- package/src/interactive/chat-loop-messages.ts +3 -13
- package/src/interactive/chat-loop.ts +10 -1
- package/src/interactive/chat-panel.ts +36 -13
- package/src/interactive/chat-renderer.ts +71 -7
- package/src/interactive/dispatch-board.ts +6 -11
- package/src/interactive/footer/widgets.ts +13 -0
- package/src/interactive/interactive-application.ts +39 -4
- package/src/interactive/interactive-input-runtime.ts +4 -0
- package/src/interactive/interactive-presentation.ts +2 -2
- package/src/interactive/interactive-slash-runtime.ts +2 -0
- package/src/interactive/overlays/extensions.ts +9 -1
- package/src/interactive/overlays/help-reference.ts +13 -0
- package/src/interactive/overlays/settings.ts +27 -16
- package/src/interactive/panes-runtime.ts +111 -35
- package/src/interactive/prompt-cache-identity.ts +88 -0
- package/src/interactive/slash-commands.ts +129 -14
- package/src/interactive/stream-pacing-policy.ts +0 -23
- package/src/interactive/turn-context.ts +30 -15
- package/src/interactive/yazi-bridge.ts +60 -6
- package/src/tools/agent-tools.ts +30 -1
- package/src/tools/artifact.ts +2 -2
- package/src/tools/ask-user.ts +3 -3
- package/src/tools/bash.ts +1 -1
- package/src/tools/bootstrap.ts +4 -0
- package/src/tools/builtin-tool-catalog.ts +52 -22
- package/src/tools/codewiki/code-nav-surface.ts +6 -0
- package/src/tools/codewiki/code-nav.ts +99 -13
- package/src/tools/context/docs-engine.ts +20 -7
- package/src/tools/context/index.ts +29 -12
- package/src/tools/core-bootstrap.ts +28 -6
- package/src/tools/credential-present.ts +1 -2
- package/src/tools/dispatch-arguments.ts +5 -1
- package/src/tools/dispatch-plan.ts +48 -4
- package/src/tools/dispatch-run-events.ts +1 -1
- package/src/tools/dispatch-schema.ts +338 -0
- package/src/tools/dispatch-types.ts +3 -0
- package/src/tools/dispatch.ts +9 -254
- package/src/tools/ledger.ts +3 -5
- package/src/tools/monitor-surface.ts +5 -13
- package/src/tools/observation.ts +4 -5
- package/src/tools/panes-surface.ts +4 -11
- package/src/tools/panes.ts +4 -2
- package/src/tools/policy.ts +15 -2
- package/src/tools/read.ts +5 -6
- package/src/tools/registry.ts +30 -7
- package/src/tools/result-shaping.ts +18 -14
- package/src/tools/steer-surface.ts +1 -1
- package/src/tools/tasks.ts +1 -1
- package/src/tools/truncate.ts +6 -5
- package/src/tools/verify/surface.ts +6 -12
- package/src/tools/web-fetch-surface.ts +1 -3
- package/dist/chunk-5QIAJV2D.js +0 -48
- package/dist/chunk-JZWT5J3Y.js +0 -814
- package/dist/chunk-K7VKOLQQ.js +0 -15
- package/dist/chunk-PMZCIOCJ.js +0 -25
- package/dist/chunk-SUW5DORT.js +0 -819
- package/dist/chunk-UOV2BYIW.js +0 -107
- package/dist/chunk-WR6U3OVP.js +0 -45
- package/docs/artifact-versions.md +0 -67
- package/docs/documentation-coverage.md +0 -46
- package/docs/documentation-guide.md +0 -167
- package/docs/time-conventions.md +0 -101
|
@@ -1,32 +1,39 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
migrateSettingsV1Document
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3KIPBMUA.js";
|
|
5
5
|
import {
|
|
6
6
|
parseAgentRecipeSchema
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-CRFOIAX3.js";
|
|
8
8
|
import {
|
|
9
9
|
parseFleetContract
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-3F7VUY77.js";
|
|
11
11
|
import {
|
|
12
12
|
parseFrontmatter
|
|
13
13
|
} from "./chunk-RKKLTLYB.js";
|
|
14
|
+
import {
|
|
15
|
+
extensionBaseDir,
|
|
16
|
+
extensionContentDigest,
|
|
17
|
+
installExtension,
|
|
18
|
+
listInstalledExtensions,
|
|
19
|
+
loadManifestFromRoot
|
|
20
|
+
} from "./chunk-77QIVUZB.js";
|
|
14
21
|
import {
|
|
15
22
|
assertAgentSpecPolicy,
|
|
16
23
|
normalizeAgentSpec
|
|
17
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-PGF63K6I.js";
|
|
18
25
|
import {
|
|
19
26
|
readSettings,
|
|
20
27
|
settingsPath,
|
|
21
28
|
updateSettings,
|
|
22
29
|
validateSettings
|
|
23
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-34BHNEE3.js";
|
|
24
31
|
import {
|
|
25
32
|
readClioVersion
|
|
26
33
|
} from "./chunk-IWHMRKLL.js";
|
|
27
34
|
import {
|
|
28
35
|
DEFAULT_SETTINGS
|
|
29
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-UXCU4E3T.js";
|
|
30
37
|
import {
|
|
31
38
|
require_dist
|
|
32
39
|
} from "./chunk-APJ265NV.js";
|
|
@@ -47,7 +54,18 @@ import {
|
|
|
47
54
|
init_esm_shims();
|
|
48
55
|
var import_yaml = __toESM(require_dist(), 1);
|
|
49
56
|
import { createHash } from "node:crypto";
|
|
50
|
-
import {
|
|
57
|
+
import {
|
|
58
|
+
existsSync,
|
|
59
|
+
lstatSync,
|
|
60
|
+
mkdirSync,
|
|
61
|
+
mkdtempSync,
|
|
62
|
+
readdirSync,
|
|
63
|
+
readFileSync,
|
|
64
|
+
realpathSync,
|
|
65
|
+
rmSync,
|
|
66
|
+
statSync
|
|
67
|
+
} from "node:fs";
|
|
68
|
+
import { tmpdir } from "node:os";
|
|
51
69
|
import path from "node:path";
|
|
52
70
|
var PROJECT_CONTEXT_FILES = ["CLIO-CODER.md", "AGENTS.md", "CODEX.md", "GEMINI.md", "CLAUDE.md"];
|
|
53
71
|
var SETTINGS_FRAGMENT_PATH = "settings.fragment.yaml";
|
|
@@ -218,7 +236,14 @@ function createShareArchive(options = {}) {
|
|
|
218
236
|
if (includes.includeExtensions) {
|
|
219
237
|
for (const scope of scopes) {
|
|
220
238
|
const root = scope === "user" ? path.join(clioConfigDir(), "extensions") : path.join(cwd, ".clio-coder", "extensions");
|
|
221
|
-
addTree(
|
|
239
|
+
addTree(
|
|
240
|
+
files,
|
|
241
|
+
"extension",
|
|
242
|
+
scope,
|
|
243
|
+
root,
|
|
244
|
+
`${scope}/extensions`,
|
|
245
|
+
(relativePath) => !relativePath.split("/")[0]?.startsWith(".") && path.basename(relativePath) !== "state.json"
|
|
246
|
+
);
|
|
222
247
|
}
|
|
223
248
|
}
|
|
224
249
|
if (includes.includeSettings) {
|
|
@@ -427,6 +452,79 @@ function preflightImportTargets(archive, options) {
|
|
|
427
452
|
if (diagnostics.length > 0) return { targets: [], diagnostics };
|
|
428
453
|
return { targets, diagnostics };
|
|
429
454
|
}
|
|
455
|
+
function withStagedExtensionPackage(input, fn) {
|
|
456
|
+
const stagingParent = mkdtempSync(path.join(tmpdir(), "clio-share-extension-"));
|
|
457
|
+
const root = path.join(stagingParent, input.id);
|
|
458
|
+
try {
|
|
459
|
+
mkdirSync(root, { recursive: true });
|
|
460
|
+
for (const file of input.files) safeResourceWrite(path.join(root, file.relativePath), file.buffer);
|
|
461
|
+
return fn(root);
|
|
462
|
+
} finally {
|
|
463
|
+
rmSync(stagingParent, { recursive: true, force: true });
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
function prepareExtensionPackages(targets, options) {
|
|
467
|
+
const diagnostics = [];
|
|
468
|
+
const grouped = /* @__PURE__ */ new Map();
|
|
469
|
+
for (const target of targets) {
|
|
470
|
+
if (target.entry.type !== "extension") continue;
|
|
471
|
+
const segments = relativePathSegments(target.entry.relativePath);
|
|
472
|
+
const id = segments?.[0];
|
|
473
|
+
const packagePath = segments?.slice(1).join("/");
|
|
474
|
+
if (!id || !packagePath) {
|
|
475
|
+
diagnostics.push({
|
|
476
|
+
type: "error",
|
|
477
|
+
message: `extension archive path must be <id>/<package-path>: ${pathDiagnostic(target.entry)}`,
|
|
478
|
+
path: target.entry.relativePath
|
|
479
|
+
});
|
|
480
|
+
continue;
|
|
481
|
+
}
|
|
482
|
+
const scope = target.scope;
|
|
483
|
+
const key = `${scope}\0${id}`;
|
|
484
|
+
const group = grouped.get(key) ?? { id, scope, files: [] };
|
|
485
|
+
if (group.files.some((file) => file.relativePath === packagePath)) {
|
|
486
|
+
diagnostics.push({ type: "error", message: `duplicate extension archive path ${target.entry.relativePath}` });
|
|
487
|
+
continue;
|
|
488
|
+
}
|
|
489
|
+
group.files.push({ relativePath: packagePath, buffer: target.buffer });
|
|
490
|
+
grouped.set(key, group);
|
|
491
|
+
}
|
|
492
|
+
const packages = [];
|
|
493
|
+
for (const group of [...grouped.values()].sort((a, b) => `${a.scope}/${a.id}`.localeCompare(`${b.scope}/${b.id}`))) {
|
|
494
|
+
try {
|
|
495
|
+
const contentDigest = withStagedExtensionPackage(group, (root) => {
|
|
496
|
+
const candidate = loadManifestFromRoot(root);
|
|
497
|
+
if (!candidate.valid || !candidate.manifest) {
|
|
498
|
+
throw new Error(candidate.diagnostics.map((diagnostic) => diagnostic.message).join("; ") || "manifest is invalid");
|
|
499
|
+
}
|
|
500
|
+
if (candidate.manifest.id !== group.id) {
|
|
501
|
+
throw new Error(`manifest id ${candidate.manifest.id} does not match archive package ${group.id}`);
|
|
502
|
+
}
|
|
503
|
+
return extensionContentDigest(root);
|
|
504
|
+
});
|
|
505
|
+
const cwd = path.resolve(options.cwd ?? process.cwd());
|
|
506
|
+
const targetRoot = path.join(extensionBaseDir(group.scope, cwd), group.id);
|
|
507
|
+
const existing = listInstalledExtensions(cwd, { scope: group.scope, all: true }).find(
|
|
508
|
+
(extension) => extension.id === group.id && extension.rootPath === targetRoot
|
|
509
|
+
);
|
|
510
|
+
const alreadyVerified = existing?.valid === true && existing.provenance?.contentDigest === contentDigest && existing.observedContentDigest === contentDigest;
|
|
511
|
+
if (existsSync(targetRoot) && !alreadyVerified && !options.force) {
|
|
512
|
+
diagnostics.push({
|
|
513
|
+
type: "conflict",
|
|
514
|
+
message: `extension ${group.id} is not already installed with the archive's verified digest; re-run with --force to use the canonical installer`,
|
|
515
|
+
path: targetRoot
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
packages.push({ ...group, contentDigest, install: !alreadyVerified });
|
|
519
|
+
} catch (error) {
|
|
520
|
+
diagnostics.push({
|
|
521
|
+
type: "error",
|
|
522
|
+
message: `extension ${group.id} in share archive is invalid: ${error instanceof Error ? error.message : String(error)}`
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
return { packages, diagnostics };
|
|
527
|
+
}
|
|
430
528
|
function versionDiagnostics(archive) {
|
|
431
529
|
const current = readClioVersion();
|
|
432
530
|
const [curMajor, curMinor] = current.split(".");
|
|
@@ -473,14 +571,21 @@ function prepareShareImport(filePath, options = {}) {
|
|
|
473
571
|
archive: null,
|
|
474
572
|
actions: [],
|
|
475
573
|
diagnostics: [{ type: "error", message: err instanceof Error ? err.message : String(err), path: filePath }],
|
|
476
|
-
targets: []
|
|
574
|
+
targets: [],
|
|
575
|
+
extensionPackages: []
|
|
477
576
|
};
|
|
478
577
|
}
|
|
479
578
|
const diagnostics = [...versionDiagnostics(archive)];
|
|
480
579
|
const actions = [];
|
|
481
580
|
const preflight = preflightImportTargets(archive, options);
|
|
482
581
|
if (preflight.diagnostics.length > 0) {
|
|
483
|
-
return {
|
|
582
|
+
return {
|
|
583
|
+
archive,
|
|
584
|
+
actions: [],
|
|
585
|
+
diagnostics: [...diagnostics, ...preflight.diagnostics],
|
|
586
|
+
targets: [],
|
|
587
|
+
extensionPackages: []
|
|
588
|
+
};
|
|
484
589
|
}
|
|
485
590
|
for (const targetInfo of preflight.targets) {
|
|
486
591
|
const { entry, target, scope, buffer } = targetInfo;
|
|
@@ -523,7 +628,9 @@ function prepareShareImport(filePath, options = {}) {
|
|
|
523
628
|
}
|
|
524
629
|
actions.push({ action: "write", type: entry.type, scope, path: target });
|
|
525
630
|
}
|
|
526
|
-
|
|
631
|
+
const extensions = prepareExtensionPackages(preflight.targets, options);
|
|
632
|
+
diagnostics.push(...extensions.diagnostics);
|
|
633
|
+
return { archive, actions, diagnostics, targets: preflight.targets, extensionPackages: extensions.packages };
|
|
527
634
|
}
|
|
528
635
|
function publicImportPlan(prepared, recovery) {
|
|
529
636
|
return {
|
|
@@ -559,10 +666,42 @@ function importShareArchive(filePath, options = {}) {
|
|
|
559
666
|
};
|
|
560
667
|
let failed;
|
|
561
668
|
try {
|
|
669
|
+
for (const extensionPackage of prepared.extensionPackages) {
|
|
670
|
+
if (!extensionPackage.install) continue;
|
|
671
|
+
const cwd = path.resolve(options.cwd ?? process.cwd());
|
|
672
|
+
failed = path.join(extensionBaseDir(extensionPackage.scope, cwd), extensionPackage.id);
|
|
673
|
+
const result = withStagedExtensionPackage(
|
|
674
|
+
extensionPackage,
|
|
675
|
+
(root) => installExtension(root, {
|
|
676
|
+
cwd,
|
|
677
|
+
scope: extensionPackage.scope,
|
|
678
|
+
...options.force !== void 0 ? { force: options.force } : {}
|
|
679
|
+
})
|
|
680
|
+
);
|
|
681
|
+
for (const backup of [result.recovery?.stateBackup, result.recovery?.packageBackup]) {
|
|
682
|
+
if (backup && !backups.includes(backup)) backups.push(backup);
|
|
683
|
+
}
|
|
684
|
+
const errors = result.diagnostics.filter((diagnostic) => diagnostic.type === "error");
|
|
685
|
+
if (!result.extension || errors.length > 0) {
|
|
686
|
+
throw new Error(errors.map((diagnostic) => diagnostic.message).join("; ") || "canonical install failed");
|
|
687
|
+
}
|
|
688
|
+
if (result.extension.provenance?.contentDigest !== extensionPackage.contentDigest) {
|
|
689
|
+
throw new Error(`canonical install digest mismatch for extension ${extensionPackage.id}`);
|
|
690
|
+
}
|
|
691
|
+
for (const diagnostic of result.diagnostics) {
|
|
692
|
+
prepared.diagnostics.push({
|
|
693
|
+
type: "warning",
|
|
694
|
+
message: diagnostic.message,
|
|
695
|
+
...diagnostic.path ? { path: diagnostic.path } : {}
|
|
696
|
+
});
|
|
697
|
+
}
|
|
698
|
+
if (!written.includes(result.extension.rootPath)) written.push(result.extension.rootPath);
|
|
699
|
+
failed = void 0;
|
|
700
|
+
}
|
|
562
701
|
for (let index = 0; index < prepared.targets.length; index += 1) {
|
|
563
702
|
const targetInfo = prepared.targets[index];
|
|
564
703
|
const action = prepared.actions[index];
|
|
565
|
-
if (!targetInfo || !action || action.action === "skip") continue;
|
|
704
|
+
if (!targetInfo || !action || action.action === "skip" || targetInfo.entry.type === "extension") continue;
|
|
566
705
|
failed = targetInfo.target;
|
|
567
706
|
if (targetInfo.entry.type === "settings") {
|
|
568
707
|
const path2 = mergeSettingsFragment(targetInfo.buffer);
|
|
@@ -577,7 +716,7 @@ function importShareArchive(filePath, options = {}) {
|
|
|
577
716
|
);
|
|
578
717
|
failed = void 0;
|
|
579
718
|
}
|
|
580
|
-
return
|
|
719
|
+
return publicImportPlan(prepared, backups.length > 0 ? { written, backups } : void 0);
|
|
581
720
|
} catch (err) {
|
|
582
721
|
if (failed) {
|
|
583
722
|
const expectedBackup = safeResourceBackupPath(failed);
|
|
@@ -596,7 +735,7 @@ function importShareArchive(filePath, options = {}) {
|
|
|
596
735
|
...prepared.diagnostics,
|
|
597
736
|
{
|
|
598
737
|
type: "error",
|
|
599
|
-
message: `share import failed
|
|
738
|
+
message: `share import failed${failed ? ` while importing ${failed}` : ""}: ${reason}`,
|
|
600
739
|
...failed ? { path: failed } : {}
|
|
601
740
|
}
|
|
602
741
|
]
|
|
@@ -653,4 +792,4 @@ export {
|
|
|
653
792
|
importShareArchive,
|
|
654
793
|
ShareDomainModule
|
|
655
794
|
};
|
|
656
|
-
//# sourceMappingURL=chunk-
|
|
795
|
+
//# sourceMappingURL=chunk-UH347SHR.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
compileExecutionPlan
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DZAW46HP.js";
|
|
5
5
|
import {
|
|
6
6
|
deriveExecutionRole
|
|
7
7
|
} from "./chunk-H7IXIC72.js";
|
|
@@ -94,4 +94,4 @@ function compileScoutTransition(input) {
|
|
|
94
94
|
export {
|
|
95
95
|
compileScoutTransition
|
|
96
96
|
};
|
|
97
|
-
//# sourceMappingURL=chunk-
|
|
97
|
+
//# sourceMappingURL=chunk-UH632ZYL.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-LL4KHSZI.js";
|
|
5
5
|
import {
|
|
6
6
|
GUARDRAIL_DEFAULTS
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-S66XZJOF.js";
|
|
8
8
|
import {
|
|
9
9
|
init_esm_shims
|
|
10
10
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -48,13 +48,13 @@ var DEFAULT_SETTINGS = {
|
|
|
48
48
|
chat: {
|
|
49
49
|
target: null,
|
|
50
50
|
model: null,
|
|
51
|
-
thinkingLevel: "
|
|
51
|
+
thinkingLevel: "low",
|
|
52
52
|
modelPicker: {
|
|
53
53
|
cycleSet: [],
|
|
54
54
|
favorites: [],
|
|
55
55
|
recentLimit: 12
|
|
56
56
|
},
|
|
57
|
-
maxOutputTokens:
|
|
57
|
+
maxOutputTokens: 0,
|
|
58
58
|
prewarm: true,
|
|
59
59
|
retry: {
|
|
60
60
|
enabled: true,
|
|
@@ -92,6 +92,7 @@ var DEFAULT_SETTINGS = {
|
|
|
92
92
|
history: { maxRuns: GUARDRAIL_DEFAULTS.maxDispatchRuns, journal: true }
|
|
93
93
|
},
|
|
94
94
|
context: {
|
|
95
|
+
toolResultMaxBytes: 65536,
|
|
95
96
|
workingSet: DEFAULT_WORKING_SET_SETTINGS,
|
|
96
97
|
compaction: {
|
|
97
98
|
auto: true,
|
|
@@ -172,12 +173,12 @@ targets: []
|
|
|
172
173
|
chat:
|
|
173
174
|
target: null
|
|
174
175
|
model: null
|
|
175
|
-
thinkingLevel:
|
|
176
|
+
thinkingLevel: low
|
|
176
177
|
modelPicker:
|
|
177
178
|
cycleSet: []
|
|
178
179
|
favorites: []
|
|
179
180
|
recentLimit: 12
|
|
180
|
-
maxOutputTokens:
|
|
181
|
+
maxOutputTokens: 0
|
|
181
182
|
prewarm: true
|
|
182
183
|
retry:
|
|
183
184
|
enabled: true
|
|
@@ -216,6 +217,7 @@ fleet:
|
|
|
216
217
|
journal: true
|
|
217
218
|
|
|
218
219
|
context:
|
|
220
|
+
toolResultMaxBytes: 65536
|
|
219
221
|
workingSet:
|
|
220
222
|
enabled: true
|
|
221
223
|
policy: structural-v1
|
|
@@ -298,4 +300,4 @@ export {
|
|
|
298
300
|
DEFAULT_SETTINGS,
|
|
299
301
|
DEFAULT_SETTINGS_YAML
|
|
300
302
|
};
|
|
301
|
-
//# sourceMappingURL=chunk-
|
|
303
|
+
//# sourceMappingURL=chunk-UXCU4E3T.js.map
|
|
@@ -18,20 +18,12 @@ var RUN_EVENT_JOURNAL_DIR = "runs";
|
|
|
18
18
|
var RUN_EVENT_JOURNAL_FILE = "events.ndjson";
|
|
19
19
|
var RUN_EVENT_JOURNAL_CAP_BYTES = 2 * 1024 * 1024;
|
|
20
20
|
var RUN_EVENT_JOURNAL_FLUSH_BYTES = 8 * 1024;
|
|
21
|
-
var RUN_EVENT_JOURNAL_ENV_VAR = "CLIO_CODER_RUN_JOURNAL";
|
|
22
21
|
var configuredEnabled;
|
|
23
22
|
function configureRunEventJournal(enabled) {
|
|
24
23
|
configuredEnabled = enabled;
|
|
25
24
|
}
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
const normalized = raw.trim().toLowerCase();
|
|
29
|
-
if (normalized === "1" || normalized === "true" || normalized === "on") return true;
|
|
30
|
-
if (normalized === "0" || normalized === "false" || normalized === "off") return false;
|
|
31
|
-
return void 0;
|
|
32
|
-
}
|
|
33
|
-
function runEventJournalEnabled(env = process.env) {
|
|
34
|
-
return parseEnvFlag(env[RUN_EVENT_JOURNAL_ENV_VAR]) ?? configuredEnabled ?? true;
|
|
25
|
+
function runEventJournalEnabled() {
|
|
26
|
+
return configuredEnabled ?? true;
|
|
35
27
|
}
|
|
36
28
|
function runEventJournalRoot() {
|
|
37
29
|
return join(clioStateDir(), RUN_EVENT_JOURNAL_DIR);
|
|
@@ -362,4 +354,4 @@ export {
|
|
|
362
354
|
defaultRunEventJournal,
|
|
363
355
|
readRunEventJournal
|
|
364
356
|
};
|
|
365
|
-
//# sourceMappingURL=chunk-
|
|
357
|
+
//# sourceMappingURL=chunk-VIA6RFQZ.js.map
|
|
@@ -137,7 +137,8 @@ CREATE TABLE runs (
|
|
|
137
137
|
started_at TEXT NOT NULL,
|
|
138
138
|
ended_at TEXT,
|
|
139
139
|
total_tokens INTEGER,
|
|
140
|
-
total_cost_usd REAL
|
|
140
|
+
total_cost_usd REAL,
|
|
141
|
+
source TEXT NOT NULL DEFAULT 'dispatch' CHECK(source IN ('dispatch','session'))
|
|
141
142
|
);
|
|
142
143
|
|
|
143
144
|
CREATE TABLE phases (
|
|
@@ -235,6 +236,12 @@ function ensureProcessOwnerColumns(db) {
|
|
|
235
236
|
if (columns.some((column) => column.name === "host")) return;
|
|
236
237
|
db.exec("ALTER TABLE processes ADD COLUMN host TEXT; ALTER TABLE processes ADD COLUMN birth_token TEXT;");
|
|
237
238
|
}
|
|
239
|
+
function ensureRunSourceColumn(db) {
|
|
240
|
+
const columns = db.prepare("PRAGMA table_info(runs)").all();
|
|
241
|
+
if (columns.some((column) => column.name === "source")) return;
|
|
242
|
+
db.exec("ALTER TABLE runs ADD COLUMN source TEXT NOT NULL DEFAULT 'dispatch';");
|
|
243
|
+
db.prepare("UPDATE runs SET source = 'session' WHERE assignment_id = ?").run(SESSION_TRACE_ASSIGNMENT_ID);
|
|
244
|
+
}
|
|
238
245
|
function reconcileAbandonedRuns(db) {
|
|
239
246
|
const owners = db.prepare(`SELECT r.run_id, r.started_at, p.pid, p.host, p.birth_token FROM runs r
|
|
240
247
|
JOIN processes p ON p.id = (SELECT MAX(id) FROM processes WHERE run_id = r.run_id AND host IS NOT NULL)
|
|
@@ -264,6 +271,7 @@ var TraceStore = class {
|
|
|
264
271
|
else if (version !== TRACE_SCHEMA_VERSION) throw new TraceSchemaVersionError(version);
|
|
265
272
|
this.transaction(() => {
|
|
266
273
|
ensureProcessOwnerColumns(this.db);
|
|
274
|
+
ensureRunSourceColumn(this.db);
|
|
267
275
|
reconcileAbandonedRuns(this.db);
|
|
268
276
|
});
|
|
269
277
|
}
|
|
@@ -352,8 +360,8 @@ var TraceStore = class {
|
|
|
352
360
|
upsertRun(input, at = (/* @__PURE__ */ new Date()).toISOString()) {
|
|
353
361
|
this.transaction(() => {
|
|
354
362
|
this.db.prepare(`INSERT INTO runs
|
|
355
|
-
(run_id, assignment_id, request, status, agent, target, model, runtime, node, started_at)
|
|
356
|
-
VALUES (?, ?, ?, 'queued', ?, ?, ?, ?, ?,
|
|
363
|
+
(run_id, assignment_id, request, status, agent, target, model, runtime, node, started_at, source)
|
|
364
|
+
VALUES (?, ?, ?, 'queued', ?, ?, ?, ?, ?, ?, 'dispatch')
|
|
357
365
|
ON CONFLICT(run_id) DO UPDATE SET request=excluded.request, agent=excluded.agent,
|
|
358
366
|
target=excluded.target, model=excluded.model, runtime=excluded.runtime, node=excluded.node`).run(
|
|
359
367
|
input.runId,
|
|
@@ -671,8 +679,8 @@ var TraceStore = class {
|
|
|
671
679
|
startSessionTurn(input) {
|
|
672
680
|
this.transaction(() => {
|
|
673
681
|
this.db.prepare(`INSERT INTO runs
|
|
674
|
-
(run_id, assignment_id, request, status, agent, target, model, runtime, node, started_at)
|
|
675
|
-
VALUES (?, ?, ?, 'running', ?, ?, ?, ?, NULL,
|
|
682
|
+
(run_id, assignment_id, request, status, agent, target, model, runtime, node, started_at, source)
|
|
683
|
+
VALUES (?, ?, ?, 'running', ?, ?, ?, ?, NULL, ?, 'session')
|
|
676
684
|
ON CONFLICT(run_id) DO NOTHING`).run(
|
|
677
685
|
input.runId,
|
|
678
686
|
SESSION_TRACE_ASSIGNMENT_ID,
|
|
@@ -780,17 +788,28 @@ var TraceReader = class {
|
|
|
780
788
|
const mode = this.db.prepare("PRAGMA journal_mode").get();
|
|
781
789
|
if (mode.journal_mode.toLowerCase() !== "wal")
|
|
782
790
|
throw new Error(`trace database journal mode is ${mode.journal_mode}, expected WAL`);
|
|
791
|
+
const runColumns = this.db.prepare("PRAGMA table_info(runs)").all();
|
|
792
|
+
this.runsSourceExpr = runColumns.some((column) => column.name === "source") ? "*" : `*, CASE WHEN assignment_id = '${SESSION_TRACE_ASSIGNMENT_ID}' THEN 'session' ELSE 'dispatch' END AS source`;
|
|
783
793
|
}
|
|
784
794
|
path;
|
|
785
795
|
db;
|
|
796
|
+
/**
|
|
797
|
+
* `runs.source` is an additive column (see ensureRunSourceColumn) a
|
|
798
|
+
* TraceStore writer backfills in place. A read-only reader can open a
|
|
799
|
+
* database no writer has touched since before the column existed — the
|
|
800
|
+
* trace viewer opening a dormant install's trace.sqlite fresh is the
|
|
801
|
+
* realistic case — and cannot ALTER TABLE to fix that itself, so it
|
|
802
|
+
* derives the same value the migration would have written instead.
|
|
803
|
+
*/
|
|
804
|
+
runsSourceExpr;
|
|
786
805
|
close() {
|
|
787
806
|
this.db.close();
|
|
788
807
|
}
|
|
789
808
|
runs(limit = 50) {
|
|
790
|
-
return this.db.prepare(
|
|
809
|
+
return this.db.prepare(`SELECT ${this.runsSourceExpr} FROM runs ORDER BY started_at DESC LIMIT ?`).all(clampInt(limit, 1, 500));
|
|
791
810
|
}
|
|
792
811
|
run(runId) {
|
|
793
|
-
return this.db.prepare(
|
|
812
|
+
return this.db.prepare(`SELECT ${this.runsSourceExpr} FROM runs WHERE run_id=?`).get(runId) ?? null;
|
|
794
813
|
}
|
|
795
814
|
phases(runId) {
|
|
796
815
|
return this.db.prepare("SELECT * FROM phases WHERE run_id=? ORDER BY seq, phase_id").all(runId);
|
|
@@ -1174,4 +1193,4 @@ export {
|
|
|
1174
1193
|
createDispatchTraceMirror,
|
|
1175
1194
|
assertTraceSelectOnly
|
|
1176
1195
|
};
|
|
1177
|
-
//# sourceMappingURL=chunk-
|
|
1196
|
+
//# sourceMappingURL=chunk-VKPAQYEB.js.map
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
init_esm_shims();
|
|
17
17
|
var steerToolSurface = {
|
|
18
18
|
name: ToolNames.Steer,
|
|
19
|
-
description: "
|
|
19
|
+
description: "Guide or cancel a running native worker by run id. Only a detached run can be steered from here, because an ordinary dispatch auto-waits; ACP runs have no input channel.",
|
|
20
20
|
parameters: typebox_exports.Object({
|
|
21
21
|
run_id: typebox_exports.String({ description: "Run id from dispatch output or monitor list." }),
|
|
22
22
|
action: StringEnum(["guide", "cancel"], { description: "What to do." }),
|
|
@@ -29,4 +29,4 @@ var steerToolSurface = {
|
|
|
29
29
|
export {
|
|
30
30
|
steerToolSurface
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=chunk-
|
|
32
|
+
//# sourceMappingURL=chunk-W4YEMFBX.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
normalizeWriteBoundary,
|
|
5
5
|
normalizeWriteBoundaryEntry,
|
|
6
6
|
writeBoundaryCovers
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3F7VUY77.js";
|
|
8
8
|
import {
|
|
9
9
|
asDirectoryPathBoundary,
|
|
10
10
|
pathBoundaryEntryCovers
|
|
@@ -1199,4 +1199,4 @@ export {
|
|
|
1199
1199
|
preflightWriteBoundaries,
|
|
1200
1200
|
createWriteBoundaryEnforcer
|
|
1201
1201
|
};
|
|
1202
|
-
//# sourceMappingURL=chunk-
|
|
1202
|
+
//# sourceMappingURL=chunk-W6NIE6OW.js.map
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-FSP7CMNU.js";
|
|
12
12
|
import {
|
|
13
13
|
protectArtifact
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-IKOZFYBN.js";
|
|
15
15
|
import {
|
|
16
16
|
stripTokenizerSentinels
|
|
17
17
|
} from "./chunk-CFGTUFWB.js";
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
} from "./chunk-MQXIVJ35.js";
|
|
30
30
|
import {
|
|
31
31
|
BusChannels
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-F4EKGO4N.js";
|
|
33
33
|
import {
|
|
34
34
|
clioStateDir,
|
|
35
35
|
stateRootRemoved
|
|
@@ -1481,4 +1481,4 @@ export {
|
|
|
1481
1481
|
ledgerUsageCalls,
|
|
1482
1482
|
SessionDomainModule
|
|
1483
1483
|
};
|
|
1484
|
-
//# sourceMappingURL=chunk-
|
|
1484
|
+
//# sourceMappingURL=chunk-X7IARSHT.js.map
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
listChecks,
|
|
5
5
|
runProjectCheck,
|
|
6
6
|
runScriptCheck
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MCMZMDAC.js";
|
|
8
8
|
import {
|
|
9
9
|
BROWSER_MODES,
|
|
10
10
|
maxOutputArg,
|
|
11
11
|
prepareVerifyArguments,
|
|
12
12
|
timeoutArg,
|
|
13
13
|
verifyToolSurface
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-7BHIY2MW.js";
|
|
15
15
|
import {
|
|
16
16
|
escapeRegExp
|
|
17
17
|
} from "./chunk-VG7TBQIY.js";
|
|
@@ -633,4 +633,4 @@ var verifyTool = {
|
|
|
633
633
|
export {
|
|
634
634
|
verifyTool
|
|
635
635
|
};
|
|
636
|
-
//# sourceMappingURL=chunk-
|
|
636
|
+
//# sourceMappingURL=chunk-XE3PCIXH.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
enabledExtensionResourceRoots
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HLAFFSEK.js";
|
|
5
5
|
import {
|
|
6
6
|
require_dist
|
|
7
7
|
} from "./chunk-APJ265NV.js";
|
|
@@ -120,4 +120,4 @@ export {
|
|
|
120
120
|
splitYamlFrontmatter,
|
|
121
121
|
stringField
|
|
122
122
|
};
|
|
123
|
-
//# sourceMappingURL=chunk-
|
|
123
|
+
//# sourceMappingURL=chunk-XGDPUNND.js.map
|
|
@@ -2,12 +2,12 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
canonicalJson,
|
|
4
4
|
sha256
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-B74PXLU7.js";
|
|
6
6
|
import {
|
|
7
7
|
addResponseModelIdObservationCount,
|
|
8
8
|
emptyResponseModelIdObservationCounts,
|
|
9
9
|
responseModelIdObservationFromRecord
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-X7IARSHT.js";
|
|
11
11
|
import {
|
|
12
12
|
uncachedPrefillTokens
|
|
13
13
|
} from "./chunk-3DPEIQKN.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
} from "./chunk-CWVRRIEI.js";
|
|
21
21
|
import {
|
|
22
22
|
settingsPath
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-34BHNEE3.js";
|
|
24
24
|
import {
|
|
25
25
|
expandConfigPath
|
|
26
26
|
} from "./chunk-336NSSKI.js";
|
|
@@ -154,6 +154,50 @@ function extractMessage(err) {
|
|
|
154
154
|
return "";
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
+
// src/interactive/prompt-cache-identity.ts
|
|
158
|
+
init_esm_shims();
|
|
159
|
+
function attachedToolSchemasFromState(tools) {
|
|
160
|
+
const schemas = [];
|
|
161
|
+
for (const tool of tools) {
|
|
162
|
+
if (!tool || typeof tool !== "object" || Array.isArray(tool)) continue;
|
|
163
|
+
const record = tool;
|
|
164
|
+
schemas.push({
|
|
165
|
+
name: typeof record.name === "string" ? record.name : "",
|
|
166
|
+
description: typeof record.description === "string" ? record.description : "",
|
|
167
|
+
parameters: record.parameters ?? null
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return schemas;
|
|
171
|
+
}
|
|
172
|
+
function attachedToolSchemaBytes(schemas) {
|
|
173
|
+
try {
|
|
174
|
+
const bytes = JSON.stringify(schemas);
|
|
175
|
+
if (bytes === void 0) throw new Error("JSON.stringify returned undefined");
|
|
176
|
+
return bytes;
|
|
177
|
+
} catch (err) {
|
|
178
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
179
|
+
throw new Error(`attached tool schemas are not JSON-serializable: ${reason}`, { cause: err });
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function mainPromptCacheIdentity(input) {
|
|
183
|
+
return sha256(
|
|
184
|
+
canonicalJson({
|
|
185
|
+
version: 2,
|
|
186
|
+
targetId: input.targetId,
|
|
187
|
+
runtimeId: input.runtimeId,
|
|
188
|
+
wireModelId: input.wireModelId,
|
|
189
|
+
autonomy: input.autonomy,
|
|
190
|
+
sessionId: input.sessionId,
|
|
191
|
+
cwd: input.cwd,
|
|
192
|
+
workingContextPaths: [...input.workingContextPaths].sort((a, b) => a.localeCompare(b)),
|
|
193
|
+
contextWindowSource: input.contextWindowSource,
|
|
194
|
+
promptInputEpoch: input.promptInputEpoch,
|
|
195
|
+
sessionInputs: input.sessionInputs,
|
|
196
|
+
attachedToolSchemaBytes: attachedToolSchemaBytes(input.attachedToolSchemas)
|
|
197
|
+
})
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
|
|
157
201
|
// src/interactive/chat-loop-messages.ts
|
|
158
202
|
function notConfiguredNotice() {
|
|
159
203
|
return [
|
|
@@ -272,18 +316,7 @@ function pendingSkillRequestPreamble(requests) {
|
|
|
272
316
|
].join("\n");
|
|
273
317
|
}
|
|
274
318
|
function toolSignatureFromState(tools) {
|
|
275
|
-
|
|
276
|
-
for (const tool of tools) {
|
|
277
|
-
if (!tool || typeof tool !== "object" || Array.isArray(tool)) continue;
|
|
278
|
-
const record = tool;
|
|
279
|
-
schemas.push({
|
|
280
|
-
name: typeof record.name === "string" ? record.name : "",
|
|
281
|
-
description: typeof record.description === "string" ? record.description : "",
|
|
282
|
-
parameters: record.parameters ?? null
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
schemas.sort((a, b) => a.name.localeCompare(b.name));
|
|
286
|
-
return sha256(canonicalJson(schemas));
|
|
319
|
+
return sha256(attachedToolSchemaBytes(attachedToolSchemasFromState(tools)));
|
|
287
320
|
}
|
|
288
321
|
function fallbackIdentityPrompt() {
|
|
289
322
|
return [
|
|
@@ -1117,6 +1150,8 @@ async function expandInlineFileReferencesAsync(input, options = {}) {
|
|
|
1117
1150
|
|
|
1118
1151
|
export {
|
|
1119
1152
|
toContextOverflowError,
|
|
1153
|
+
attachedToolSchemasFromState,
|
|
1154
|
+
mainPromptCacheIdentity,
|
|
1120
1155
|
notConfiguredNotice,
|
|
1121
1156
|
extractText,
|
|
1122
1157
|
extractUserText,
|
|
@@ -1150,4 +1185,4 @@ export {
|
|
|
1150
1185
|
readFileArgsAsync,
|
|
1151
1186
|
expandInlineFileReferencesAsync
|
|
1152
1187
|
};
|
|
1153
|
-
//# sourceMappingURL=chunk-
|
|
1188
|
+
//# sourceMappingURL=chunk-XOXV5GKE.js.map
|