@iowarp/clio-coder 0.4.0 → 0.4.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 +39 -0
- package/README.md +116 -16
- package/dist/{acp-G5WJBNCT.js → acp-ZILU3AUO.js} +14 -14
- package/dist/{agents-FMV2Q5G4.js → agents-HYWGBGQR.js} +40 -29
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-3IDSJEIK.js → auth-N3QT7CBO.js} +21 -19
- package/dist/{builtins-XCZWXSC7.js → builtins-UJLMOVOV.js} +6 -6
- package/dist/{chunk-PQEFIJ36.js → chunk-2LEAKD4C.js} +1 -2
- package/dist/{chunk-3BT2XMV4.js → chunk-2NM363SV.js} +50 -57
- package/dist/{chunk-J4W7KFM7.js → chunk-2VG7KLYV.js} +24 -279
- package/dist/{chunk-SST6Z5JA.js → chunk-336NSSKI.js} +1 -1
- package/dist/{chunk-K5C3NCBD.js → chunk-3I5NY75V.js} +5 -5
- package/dist/{chunk-VAZSBTKF.js → chunk-3QSOM6PA.js} +2 -2
- package/dist/{chunk-TZ3SGWZZ.js → chunk-5QIAJV2D.js} +2 -2
- package/dist/{chunk-OQBA45DZ.js → chunk-5YHDIDBP.js} +2 -2
- package/dist/{chunk-NHLBIGRH.js → chunk-6CCS4G3W.js} +40 -17
- package/dist/{chunk-2JDWVJND.js → chunk-6DWBAZ5U.js} +2 -2
- package/dist/{chunk-LDQ2ZF2M.js → chunk-6FN3E6KX.js} +5 -5
- package/dist/{chunk-X3YGUTOB.js → chunk-6HMJX2VU.js} +59 -59
- package/dist/{chunk-VEO4AP2K.js → chunk-6I5ILFOF.js} +3 -2
- package/dist/{chunk-B7OBL7PK.js → chunk-6NJQITNH.js} +18 -11
- package/dist/{chunk-IQ7KR472.js → chunk-6VC4OV3Z.js} +6 -3
- package/dist/{chunk-P3FOHJT4.js → chunk-72GZI5EV.js} +2 -2
- package/dist/{chunk-AB44T6BB.js → chunk-74YWRRU5.js} +8 -7
- package/dist/{chunk-SJ5ZKQ4S.js → chunk-7EPLI7VL.js} +2 -2
- package/dist/{chunk-HWHKMHUA.js → chunk-7OBGU7UB.js} +3 -3
- package/dist/{chunk-2OQE55CK.js → chunk-7PWAODYW.js} +2 -2
- package/dist/{chunk-IBEBSCYA.js → chunk-7RY5VZPH.js} +42 -33
- package/dist/{chunk-LQ3DZAMX.js → chunk-ABLSQ6JX.js} +2 -2
- package/dist/{chunk-QLFS5GO2.js → chunk-AFKWHWXF.js} +12 -22
- package/dist/{chunk-FWDFM5ZU.js → chunk-AK5XEFVZ.js} +3 -3
- package/dist/{chunk-O6TL7WWY.js → chunk-AKB4GYDL.js} +4 -4
- package/dist/chunk-AP73CFDC.js +308 -0
- package/dist/{chunk-JDG2WCRO.js → chunk-BBTJOK6Y.js} +5 -5
- package/dist/{chunk-SP2RXXYO.js → chunk-BDPT6GTK.js} +10 -10
- package/dist/{chunk-NQQH3YT7.js → chunk-BJGUKIG4.js} +3 -3
- package/dist/{chunk-O4XIVISU.js → chunk-BTGG6BG2.js} +79 -38
- package/dist/chunk-BTK3SSSK.js +67 -0
- package/dist/{chunk-M6L6IDJG.js → chunk-BWH6N36D.js} +1 -1
- package/dist/chunk-BWW4HLO4.js +301 -0
- package/dist/{chunk-I5VEOC6I.js → chunk-C537JADH.js} +10 -10
- package/dist/{chunk-HI63TFOG.js → chunk-CDNVLKUX.js} +3 -3
- package/dist/{chunk-UM7N4G5A.js → chunk-CWVRRIEI.js} +2 -2
- package/dist/{chunk-BKFM6EJV.js → chunk-D4CJV46V.js} +2 -2
- package/dist/chunk-D7E7WCDF.js +27 -0
- package/dist/{chunk-WZR7K7ZX.js → chunk-E67WX76H.js} +6 -6
- package/dist/{chunk-FQ4SKYE4.js → chunk-EBY63B7G.js} +2 -5
- package/dist/chunk-EIMVLWB3.js +1842 -0
- package/dist/{chunk-RAPCMZL4.js → chunk-FSP7CMNU.js} +9 -1
- package/dist/{chunk-MLKNTWH2.js → chunk-FYUN5KZ3.js} +21 -21
- package/dist/{chunk-YJX4SHTD.js → chunk-GIZNH63R.js} +1 -1
- package/dist/{chunk-X75E3D2N.js → chunk-GPPB3JBE.js} +18 -16
- package/dist/{chunk-GR5G2PVF.js → chunk-GVQJ5CCZ.js} +15 -10
- package/dist/chunk-HJWWJ6IL.js +184 -0
- package/dist/{chunk-VO67MWHC.js → chunk-HRQMFLJP.js} +3 -3
- package/dist/{chunk-VYMXRQI6.js → chunk-HUAS7ITX.js} +89 -93
- package/dist/{chunk-BKFJHQCA.js → chunk-I66EAJFY.js} +2 -2
- package/dist/{chunk-DYJP44XW.js → chunk-IG7BCQBA.js} +1 -1
- package/dist/{chunk-32KWKNSF.js → chunk-IXJT6DCX.js} +3 -3
- package/dist/{chunk-C2LTL2W6.js → chunk-J4HBWF6Y.js} +360 -172
- package/dist/chunk-J5LZHVIT.js +284 -0
- package/dist/{chunk-QLL7ILRG.js → chunk-JA5QWE4Z.js} +510 -202
- package/dist/{chunk-BBVJUZHB.js → chunk-JIEGK6UF.js} +5 -173
- package/dist/{chunk-36EJLSQQ.js → chunk-JZWT5J3Y.js} +4 -4
- package/dist/{chunk-HZHHCK24.js → chunk-K6BF4U2H.js} +476 -322
- package/dist/{chunk-Z2RR6MAK.js → chunk-MA3H6DM5.js} +6 -6
- package/dist/{chunk-CODPRO7Q.js → chunk-MOPSG2X7.js} +6 -6
- package/dist/{chunk-76ONBSIA.js → chunk-MQXIVJ35.js} +14 -5
- package/dist/{chunk-YDFRH54B.js → chunk-N5UK64DP.js} +4 -4
- package/dist/chunk-NDDGJUXD.js +81 -0
- package/dist/{chunk-4ZG3XFUR.js → chunk-NLFAQR7Z.js} +12 -1
- package/dist/{chunk-VO2LKSTM.js → chunk-O42A54GG.js} +2 -2
- package/dist/{chunk-W5VSYASO.js → chunk-OJTRZGR3.js} +46 -87
- package/dist/{chunk-NHCZP4K7.js → chunk-PBP4B7XR.js} +2 -2
- package/dist/{chunk-3URVFKWK.js → chunk-PJJ6MY27.js} +5 -5
- package/dist/{chunk-ZGVHUX3M.js → chunk-PMZVFWSR.js} +2 -2
- package/dist/{chunk-GKF55TAZ.js → chunk-PVAMAVBB.js} +3 -2
- package/dist/{chunk-6DB53AJS.js → chunk-QKIFBZKT.js} +7 -7
- package/dist/{chunk-HJJTYUHX.js → chunk-QMXC4JB7.js} +20 -20
- package/dist/chunk-QTFGO774.js +644 -0
- package/dist/{chunk-CY6FY24N.js → chunk-R23Z6K6I.js} +2 -2
- package/dist/{chunk-ULC6OTWO.js → chunk-R32CLGZ6.js} +13 -13
- package/dist/{chunk-KMVISBZR.js → chunk-RKSR6VSF.js} +1 -1
- package/dist/{chunk-F4CKPOEQ.js → chunk-SCYB3HA4.js} +72 -26
- package/dist/{chunk-LY4S7GJC.js → chunk-SINK3QR6.js} +18 -16
- package/dist/{chunk-U77AMWDL.js → chunk-TD3PGPQA.js} +43 -22
- package/dist/{chunk-QBJA7R7N.js → chunk-THYWACCR.js} +2 -2
- package/dist/{chunk-QREDIESB.js → chunk-TVH4ONAM.js} +14 -8
- package/dist/chunk-U2WB7TZS.js +271 -0
- package/dist/{chunk-KFZI4NIL.js → chunk-UAPGZHYC.js} +145 -31
- package/dist/{chunk-DQITNCXG.js → chunk-UEDMSP56.js} +29 -14
- package/dist/{chunk-3XML7CDN.js → chunk-UXN6JT4W.js} +2 -2
- package/dist/{chunk-CMZWFGD2.js → chunk-VAVR4IJY.js} +19 -15
- package/dist/{chunk-BPKCPIL7.js → chunk-VEGN6WIQ.js} +2 -2
- package/dist/chunk-VKFQTNDV.js +66 -0
- package/dist/{chunk-7MCTRUCE.js → chunk-VKRH2TCS.js} +2 -2
- package/dist/{chunk-5LXZXPKX.js → chunk-VN3SHNBN.js} +2 -2
- package/dist/{chunk-UOSL25KY.js → chunk-VXMFAE2W.js} +1 -1
- package/dist/{chunk-BBVYXMFO.js → chunk-WNP7O5WZ.js} +2 -2
- package/dist/{chunk-SUCTJL45.js → chunk-WR6U3OVP.js} +3 -3
- package/dist/{chunk-BUMFYQFY.js → chunk-XKA2ICR3.js} +124 -113
- package/dist/{chunk-UXMFQ54G.js → chunk-Y45G3AXC.js} +39 -39
- package/dist/{chunk-J5Q24KAG.js → chunk-Y4CAGMM6.js} +2 -2
- package/dist/{chunk-NYS75XW5.js → chunk-YAKGTXEV.js} +5 -3
- package/dist/{chunk-V5DHCITQ.js → chunk-ZAZB4JMW.js} +23 -12
- package/dist/{chunk-Z4TXYIEG.js → chunk-ZJLUDYFY.js} +9 -9
- package/dist/{chunk-HKIYEGME.js → chunk-ZTJUVLTU.js} +2 -2
- package/dist/{chunk-2ANTL7MR.js → chunk-ZW55JB7N.js} +2 -2
- package/dist/cli/index.js +36 -36
- package/dist/{clio-2JXHBBY5.js → clio-IT3G3VQH.js} +12 -13
- package/dist/{code-nav-3YYRMYNF.js → code-nav-RK6S7F6E.js} +5 -5
- package/dist/codewiki/build-worker.js +1 -1
- package/dist/{compile-cache-7FPE6PS3.js → compile-cache-OQAVB7Y5.js} +2 -4
- package/dist/{components-RYZV4JGP.js → components-UBWCQSRW.js} +4 -4
- package/dist/{config-QZPCMYSO.js → config-3QZRWZJF.js} +53 -49
- package/dist/{configure-TEGEBYCA.js → configure-FL7Y3KJF.js} +25 -22
- package/dist/{context-E6H5RNMC.js → context-5HE7ODYK.js} +47 -43
- package/dist/{context-AV7OEZ4D.js → context-KYQFRVDC.js} +11 -11
- package/dist/{context-GSXUE4CT.js → context-XNHL75JV.js} +32 -19
- package/dist/{context-clear-SHIBYK6T.js → context-clear-N545L53A.js} +47 -43
- package/dist/{context-working-set-5ZGKPGZQ.js → context-working-set-QHKXSV2F.js} +10 -9
- package/dist/{dispatch-runner-EFMJT4LD.js → dispatch-runner-RGIE5PCT.js} +56 -47
- package/dist/{docs-23KQS3XK.js → docs-5NAF6AU7.js} +5 -11
- package/dist/doctor-ZGPEGHIP.js +772 -0
- package/dist/{eval-TFBYQH4H.js → eval-GXLL44RD.js} +63 -45
- package/dist/{eval-inventory-SXH7PDKX.js → eval-inventory-HBWSWQOK.js} +7 -8
- package/dist/{evidence-ERGESKGN.js → evidence-HWLBRH3Q.js} +44 -40
- package/dist/{evolve-VDXTSYCJ.js → evolve-FTZBMNVW.js} +43 -39
- package/dist/{extensions-7BGBHN57.js → extensions-VHRBEID7.js} +4 -4
- package/dist/{fleet-2RRVDF2V.js → fleet-CKZHJWZJ.js} +86 -73
- package/dist/{fleet-commands-VJ726XIA.js → fleet-commands-EXDXBMV6.js} +10 -9
- package/dist/{fleet-decisions-EPAPM3XJ.js → fleet-decisions-OTHB6KRL.js} +5 -5
- package/dist/{fleet-graph-JF5QOATM.js → fleet-graph-YTEZUCUT.js} +13 -11
- package/dist/{fleet-inspect-VLY4S7QM.js → fleet-inspect-SS6YMDCK.js} +44 -41
- package/dist/{fleet-preflight-AIZUEJOY.js → fleet-preflight-PBY4VYOM.js} +5 -9
- package/dist/{fleet-validate-AJRPDMDV.js → fleet-validate-KMEM5L3S.js} +16 -13
- package/dist/{fleet-verify-JFEL2L3H.js → fleet-verify-QD5M7E7Q.js} +42 -39
- package/dist/{fleet-view-ZCON35AG.js → fleet-view-WAMJYNDT.js} +44 -52
- package/dist/{init-DN2WWLFE.js → init-5XQRBOFV.js} +63 -58
- package/dist/{install-XGLBQY5E.js → install-NKNG7KD4.js} +2 -2
- package/dist/{interop-OZBKXAYL.js → interop-34TVO25M.js} +13 -11
- package/dist/{library-YWZG7IMW.js → library-3QY6KF57.js} +17 -14
- package/dist/{memory-I4C4HMLW.js → memory-L4UTIIIW.js} +45 -41
- package/dist/{models-CEYXJBO6.js → models-ZVX3QOWE.js} +39 -31
- package/dist/{monitor-NZ6GCI3P.js → monitor-CEKVSYTS.js} +50 -46
- package/dist/{orchestrator-GCGQ4N5I.js → orchestrator-77BAP6BC.js} +1807 -1039
- package/dist/{panes-KY6W3V2E.js → panes-7STHOAUJ.js} +4 -4
- package/dist/{panes-HMABYVO4.js → panes-SHAUIRXY.js} +10 -8
- package/dist/{paths-II4K7DNR.js → paths-L7LGY6RN.js} +4 -4
- package/dist/{reset-DQ6FGCSH.js → reset-EOLM7GVE.js} +7 -8
- package/dist/{resources-BB3MVJMD.js → resources-74GKTLSF.js} +17 -13
- package/dist/{run-H2GQDUER.js → run-HBAUJNNZ.js} +86 -76
- package/dist/{share-GTJN6A5O.js → share-G3APVLVP.js} +17 -14
- package/dist/{skills-L55TEW6R.js → skills-35HHUKCR.js} +19 -16
- package/dist/{skills-eval-XVXPH2JI.js → skills-eval-QN4HSHDC.js} +55 -57
- package/dist/{skills-inventory-S4MXPJFV.js → skills-inventory-J357J34F.js} +15 -12
- package/dist/{slash-commands-ZSGASKJC.js → slash-commands-JZZCQA32.js} +31 -29
- package/dist/{steer-RZGSCY4R.js → steer-XAVHJM22.js} +3 -3
- package/dist/{support-PKEUNNQL.js → support-U7QOWY26.js} +6 -6
- package/dist/{targets-NCPZ644J.js → targets-DSM6CY3M.js} +59 -53
- package/dist/{terminal-lease-44SV3YCN.js → terminal-lease-JOPFUVEM.js} +14 -9
- package/dist/{tools-DAF3DI3C.js → tools-MKNWVPBH.js} +10 -8
- package/dist/{trace-FYVW2MQA.js → trace-ECQ7TIYZ.js} +48 -3
- package/dist/{tui-primitives-2AKXQNZK.js → tui-primitives-K5PASC3O.js} +8 -4
- package/dist/{uninstall-DW2PNOIC.js → uninstall-N34PCTGJ.js} +4 -6
- package/dist/{upgrade-3XPP6OQL.js → upgrade-H7TOM7YL.js} +35 -62
- package/dist/{usage-3NLHGTU2.js → usage-X52N3IDJ.js} +51 -48
- package/dist/{verifiers-SSQONKRT.js → verifiers-EJTVVSMA.js} +10 -9
- package/dist/{verify-3U6J7FZI.js → verify-YJL6XET2.js} +9 -8
- package/dist/{web-fetch-S7RR6GZ7.js → web-fetch-MPIFL3LL.js} +1 -2
- package/dist/{wiki-generate-CEHYGPGQ.js → wiki-generate-4NDZTQ4B.js} +66 -63
- package/dist/{with-panes-MKB46MPQ.js → with-panes-OBOBFIIR.js} +62 -26
- package/dist/worker/entry.js +57 -52
- package/docs/acp.md +1 -1
- package/docs/built-in-agents.md +40 -32
- package/docs/commands-and-modes.md +9 -3
- package/docs/config-knobs-audit.md +3 -0
- package/docs/configuration-and-targets.md +105 -164
- package/docs/environment-variables.md +2 -1
- package/docs/exit-codes-and-output.md +2 -0
- package/docs/fleet-demo-runbook.md +6 -3
- package/docs/fleet-dispatch.md +8 -6
- package/docs/installation-and-lifecycle.md +1 -1
- package/docs/release-cut-checklist.md +164 -177
- package/docs/trace-store.md +15 -10
- package/docs/troubleshooting.md +1 -1
- package/evals/README.md +5 -0
- package/evals/behavioral-corpus-grader.mjs +103 -0
- package/evals/behavioral-machinery-baseline.json +2276 -0
- package/evals/behavioral-machinery-driver.ts +250 -0
- package/evals/behavioral-machinery-support.ts +253 -0
- package/evals/behavioral-machinery.yaml +614 -0
- package/evals/behavioral-model-negative-control.yaml +68 -0
- package/evals/behavioral-model.yaml +216 -0
- package/evals/fixtures/behavioral-facts.txt +3 -0
- package/evals/fixtures/behavioral-main.ts +7 -0
- package/evals/fixtures/decoy/note.txt +2 -0
- package/evals/fixtures/private/credentials.txt +1 -0
- package/evals/tracked-metrics-baseline.yaml +229 -0
- package/evals/tracked-metrics-grader.mjs +129 -0
- package/package.json +5 -15
- package/skills/README.md +6 -6
- package/skills/coding/ast-grep/SKILL.md +8 -2
- package/skills/coding/coding-standards/SKILL.md +8 -2
- package/skills/coding/prototype/SKILL.md +8 -2
- package/skills/coding/tdd/SKILL.md +8 -2
- package/skills/context/context-handoff/SKILL.md +12 -3
- package/skills/context/context-handoff/evals.md +3 -3
- package/skills/context/context-prime/SKILL.md +8 -2
- package/skills/context/context-prime/evals.md +2 -2
- package/skills/git/file-ticket/SKILL.md +9 -4
- package/skills/git/file-ticket/evals.md +2 -2
- package/skills/git/fix-issue/SKILL.md +12 -5
- package/skills/git/fix-issue/evals.md +4 -4
- package/skills/git/resolve-merge-conflicts/SKILL.md +8 -2
- package/skills/git/resolve-merge-conflicts/evals.md +2 -2
- package/skills/git/ship/SKILL.md +9 -3
- package/skills/git/ship/evals.md +4 -4
- package/skills/git/worktree-create/SKILL.md +7 -2
- package/skills/git/worktree-create/evals.md +6 -6
- package/skills/git/worktree-merge/SKILL.md +7 -2
- package/skills/git/worktree-merge/evals.md +6 -6
- package/skills/meta/{clio-dev → clio-coder-dev}/SKILL.md +14 -8
- package/skills/meta/{clio-dev → clio-coder-dev}/evals.md +3 -3
- package/skills/meta/{clio-test → clio-coder-test}/SKILL.md +11 -5
- package/skills/meta/{clio-test → clio-coder-test}/evals.md +1 -1
- package/skills/meta/credentials/SKILL.md +9 -2
- package/skills/meta/find-skills/SKILL.md +8 -2
- package/skills/meta/herdr/SKILL.md +8 -2
- package/skills/meta/skill-craft/SKILL.md +21 -4
- package/skills/planning/architecture/SKILL.md +9 -3
- package/skills/planning/backlog/SKILL.md +8 -2
- package/skills/planning/prd/SKILL.md +8 -2
- package/skills/planning/product-intent/SKILL.md +8 -2
- package/skills/planning/tech-spec/SKILL.md +9 -3
- package/skills/registry.yaml +66 -66
- package/skills/research/arxiv-literature/SKILL.md +8 -2
- package/skills/research/experiment-protocol/SKILL.md +9 -2
- package/skills/research/scientific-debugging/SKILL.md +9 -2
- package/skills/research/scientific-debugging/evals.md +2 -2
- package/skills/research/scientific-modernization/SKILL.md +9 -2
- package/skills/skill-marketplace.json +257 -38
- package/skills/workflow/cut-it/SKILL.md +10 -2
- package/skills/workflow/design-council/SKILL.md +11 -2
- package/skills/workflow/grill-me/SKILL.md +8 -2
- package/skills/workflow/workflow-distiller/SKILL.md +8 -2
- package/src/cli/acp.ts +2 -2
- package/src/cli/auth.ts +2 -2
- package/src/cli/bootstrap-generate.ts +5 -5
- package/src/cli/clio.ts +6 -1
- package/src/cli/config-inspect.ts +3 -3
- package/src/cli/configure-interop.ts +1 -1
- package/src/cli/configure.ts +27 -27
- package/src/cli/default-target.ts +1 -1
- package/src/cli/docs.ts +6 -6
- package/src/cli/doctor-naming.ts +323 -0
- package/src/cli/doctor-panes.ts +46 -14
- package/src/cli/doctor-toolchain.ts +29 -8
- package/src/cli/doctor.ts +15 -1
- package/src/cli/eval-inventory.ts +8 -8
- package/src/cli/evidence-detail.ts +1 -1
- package/src/cli/evidence-inventory.ts +1 -1
- package/src/cli/fleet-decisions.ts +1 -1
- package/src/cli/fleet-inspect.ts +1 -1
- package/src/cli/fleet-preflight.ts +1 -1
- package/src/cli/fleet-verify.ts +1 -1
- package/src/cli/fleet-view.ts +40 -23
- package/src/cli/fleet.ts +8 -5
- package/src/cli/interop-inspect.ts +2 -2
- package/src/cli/models.ts +3 -3
- package/src/cli/modes/print.ts +1 -1
- package/src/cli/reset.ts +1 -1
- package/src/cli/run.ts +11 -15
- package/src/cli/share.ts +1 -1
- package/src/cli/skills-eval.ts +11 -11
- package/src/cli/targets.ts +23 -24
- package/src/cli/trace-inspect.ts +1 -1
- package/src/cli/trace.ts +41 -0
- package/src/cli/uninstall.ts +2 -2
- package/src/cli/upgrade.ts +29 -34
- package/src/cli/usage.ts +2 -2
- package/src/cli/validate-model.ts +1 -1
- package/src/cli/verifiers-inspect.ts +1 -1
- package/src/cli/wiki-generate.ts +5 -5
- package/src/core/bash-exec.ts +1 -1
- package/src/core/boot-trace.ts +3 -3
- package/src/core/bus-trace.ts +2 -2
- package/src/core/compile-cache.ts +1 -1
- package/src/core/config.ts +1062 -886
- package/src/core/defaults.ts +321 -528
- package/src/core/domain-loader.ts +6 -4
- package/src/core/event-bus.ts +1 -1
- package/src/core/file-references.ts +78 -88
- package/src/core/git-commit-attribution.ts +3 -9
- package/src/core/guardrails.ts +24 -4
- package/src/core/naming-compat.ts +45 -0
- package/src/core/naming-events.ts +62 -0
- package/src/core/recent-models.ts +1 -7
- package/src/core/residency-protection.ts +4 -8
- package/src/core/resolve-config-value.ts +1 -1
- package/src/core/response-model-id.ts +0 -14
- package/src/core/session-routing.ts +84 -74
- package/src/core/skill-activation.ts +18 -0
- package/src/core/termination.ts +4 -4
- package/src/core/timers.ts +2 -12
- package/src/domains/agents/catalog.ts +2 -12
- package/src/domains/agents/extension.ts +3 -3
- package/src/domains/agents/registry.ts +7 -7
- package/src/domains/agents/result-contract.ts +1 -1
- package/src/domains/agents/spec.ts +0 -11
- package/src/domains/config/classify.ts +35 -47
- package/src/domains/config/extension.ts +5 -5
- package/src/domains/config/keybindings.ts +48 -47
- package/src/domains/config/watcher.ts +1 -1
- package/src/domains/context/codewiki/indexer.ts +1 -1
- package/src/domains/context/extension.ts +3 -3
- package/src/domains/context/prompt-context.ts +1 -1
- package/src/domains/context/wiki/assemble.ts +2 -2
- package/src/domains/context/working-set/replay/metrics.ts +0 -4
- package/src/domains/context/working-set/replay/report.ts +1 -1
- package/src/domains/context/working-set/replay/synthetic.ts +2 -2
- package/src/domains/dispatch/active-route-planner.ts +2 -2
- package/src/domains/dispatch/agent-candidates.ts +1 -1
- package/src/domains/dispatch/agent-ledger-store.ts +1 -1
- package/src/domains/dispatch/agent-ledger.ts +1 -1
- package/src/domains/dispatch/assignment.ts +5 -5
- package/src/domains/dispatch/capacity-lease.ts +2 -5
- package/src/domains/dispatch/code-step.ts +1 -1
- package/src/domains/dispatch/contract.ts +2 -2
- package/src/domains/dispatch/extension.ts +65 -61
- package/src/domains/dispatch/fleet-node-prompt.ts +1 -1
- package/src/domains/dispatch/fleet-preflight.ts +8 -17
- package/src/domains/dispatch/fleet-run.ts +0 -7
- package/src/domains/dispatch/gate-decisions.ts +25 -14
- package/src/domains/dispatch/joint-route-resolver.ts +1 -1
- package/src/domains/dispatch/path-scope.ts +0 -61
- package/src/domains/dispatch/placement.ts +2 -2
- package/src/domains/dispatch/receipt-findings.ts +1 -1
- package/src/domains/dispatch/receipt-integrity.ts +20 -8
- package/src/domains/dispatch/reservation-store.ts +0 -23
- package/src/domains/dispatch/route-decision.ts +1 -1
- package/src/domains/dispatch/route-history.ts +1 -1
- package/src/domains/dispatch/route-policy.ts +1 -1
- package/src/domains/dispatch/route-readiness.ts +0 -28
- package/src/domains/dispatch/run-event-journal.ts +6 -5
- package/src/domains/dispatch/tool-stats.ts +1 -1
- package/src/domains/dispatch/transport.ts +2 -19
- package/src/domains/dispatch/types.ts +3 -3
- package/src/domains/dispatch/worker-protocol.ts +2 -2
- package/src/domains/eval/artifacts/store.ts +5 -4
- package/src/domains/eval/compare/thresholds.ts +0 -8
- package/src/domains/eval/execution-provenance.ts +1 -1
- package/src/domains/eval/metrics/token-stream.ts +0 -7
- package/src/domains/eval/report.ts +1 -1
- package/src/domains/eval/runner.ts +1 -1
- package/src/domains/eval/runners/clio-run.ts +7 -6
- package/src/domains/eval/runners/external-command.ts +4 -3
- package/src/domains/eval/schema/artifact.ts +1 -1
- package/src/domains/eval/schema/behavioral-metrics.ts +3 -2
- package/src/domains/eval/schema/behavioral.ts +7 -6
- package/src/domains/eval/schema/execution-envelope.ts +4 -2
- package/src/domains/eval/schema/naming.ts +10 -0
- package/src/domains/eval/schema/suite.ts +2 -2
- package/src/domains/eval/schema/validate.ts +9 -5
- package/src/domains/eval/schema/verdict.ts +4 -2
- package/src/domains/eval/store.ts +12 -2
- package/src/domains/eval/suites/run.ts +12 -6
- package/src/domains/eval/types.ts +1 -1
- package/src/domains/eval/workspaces/git.ts +1 -1
- package/src/domains/eval/workspaces/temp-copy.ts +1 -1
- package/src/domains/evidence/build.ts +13 -5
- package/src/domains/interop/consent.ts +7 -7
- package/src/domains/interop/extension.ts +1 -1
- package/src/domains/lifecycle/doctor.ts +27 -21
- package/src/domains/lifecycle/migrations/2026-09-01-clio-coder-naming.ts +155 -0
- package/src/domains/lifecycle/migrations/2026-09-01-retire-panes-knobs.ts +59 -0
- package/src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts +338 -0
- package/src/domains/lifecycle/migrations/index.ts +20 -1
- package/src/domains/lifecycle/naming-history.ts +153 -0
- package/src/domains/lifecycle/naming-mutable-state.ts +104 -0
- package/src/domains/lifecycle/naming-resources.ts +261 -0
- package/src/domains/lifecycle/naming-tool-markers.ts +139 -0
- package/src/domains/lifecycle/naming-yazi.ts +81 -0
- package/src/domains/lifecycle/upgrade-notice.ts +1 -1
- package/src/domains/memory/task-memory-handoff.ts +6 -3
- package/src/domains/middleware/index.ts +7 -0
- package/src/domains/middleware/marketplace-offer.ts +339 -0
- package/src/domains/middleware/runtime.ts +2 -2
- package/src/domains/mux/contract.ts +157 -25
- package/src/domains/mux/detect.ts +29 -5
- package/src/domains/mux/dock-controller.ts +365 -0
- package/src/domains/mux/extension.ts +7 -1
- package/src/domains/mux/index.ts +20 -0
- package/src/domains/mux/operations.ts +28 -0
- package/src/domains/mux/protocol.ts +19 -6
- package/src/domains/mux/socket-client.ts +167 -19
- package/src/domains/mux/types.ts +49 -6
- package/src/domains/mux/yazi/event-stream.ts +6 -4
- package/src/domains/mux/yazi/profile.ts +1 -1
- package/src/domains/mux/yazi/session.ts +26 -3
- package/src/domains/observability/extension.ts +1 -1
- package/src/domains/observability/out-of-turn-usage.ts +2 -2
- package/src/domains/observability/projection.ts +1 -1
- package/src/domains/observability/trace-store.ts +22 -12
- package/src/domains/prompts/compiler.ts +2 -2
- package/src/domains/prompts/extension.ts +3 -3
- package/src/domains/prompts/fragments/identity/clio-worker.md +1 -1
- package/src/domains/prompts/fragments/operating/skills.md +25 -18
- package/src/domains/providers/extension.ts +5 -5
- package/src/domains/providers/knowledge-base-path.ts +1 -1
- package/src/domains/providers/model-runtime-capabilities.ts +14 -2
- package/src/domains/providers/models/cloud-models/alcf.yaml +1 -1
- package/src/domains/providers/models/local-models/{clio-local-coding-targets.yaml → clio-coder-local-coding-targets.yaml} +4 -4
- package/src/domains/providers/plugins.ts +1 -1
- package/src/domains/providers/resolver.ts +1 -1
- package/src/domains/providers/runtimes/cloud/alcf.ts +4 -4
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +1 -5
- package/src/domains/providers/runtimes/common/local-synth.ts +3 -3
- package/src/domains/providers/runtimes/common/probe-helpers.ts +2 -2
- package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
- package/src/domains/providers/runtimes/local-native/lmstudio.ts +2 -9
- package/src/domains/providers/runtimes/protocol/litellm.ts +1 -91
- package/src/domains/providers/types/knowledge-base.ts +13 -0
- package/src/domains/providers/types/local-model-quirks.ts +2 -2
- package/src/domains/providers/types/target-descriptor.ts +3 -3
- package/src/domains/resources/extension.ts +1 -1
- package/src/domains/resources/library.ts +6 -6
- package/src/domains/resources/prompts/loader.ts +1 -1
- package/src/domains/resources/skills/content-hash.ts +7 -6
- package/src/domains/resources/skills/evals.ts +1 -1
- package/src/domains/resources/skills/install.ts +36 -12
- package/src/domains/resources/skills/loader.ts +39 -13
- package/src/domains/resources/skills/marketplace.ts +21 -2
- package/src/domains/resources/skills/promotion.ts +214 -0
- package/src/domains/safety/audit.ts +2 -2
- package/src/domains/safety/finish-contract.ts +2 -1
- package/src/domains/safety/run-effects.ts +1 -1
- package/src/domains/scheduling/extension.ts +4 -4
- package/src/domains/session/archive-readers.ts +9 -1
- package/src/domains/session/compaction/branch-summary.ts +4 -0
- package/src/domains/session/compaction/compact.ts +1 -1
- package/src/domains/session/compaction/tokens.ts +4 -0
- package/src/domains/session/context-accounting.ts +1 -1
- package/src/domains/session/decision-board.ts +1 -1
- package/src/domains/session/extension.ts +1 -1
- package/src/domains/session/handoff.ts +2 -2
- package/src/domains/session/prompt-manifest.ts +0 -5
- package/src/domains/session/protected-artifact-journal.ts +12 -6
- package/src/domains/session/retry.ts +1 -1
- package/src/domains/share/archive.ts +85 -36
- package/src/domains/toolchain/install.ts +1 -1
- package/src/engine/acp/adapter.ts +3 -3
- package/src/engine/acp/event-mapper.ts +3 -3
- package/src/engine/acp/server.ts +27 -26
- package/src/engine/acp/tool-mediator.ts +2 -2
- package/src/engine/acp/types.ts +1 -1
- package/src/engine/alcf-oauth.ts +5 -5
- package/src/engine/antigravity/subprocess-runtime.ts +2 -2
- package/src/engine/api-registry.ts +1 -1
- package/src/engine/apis/llamacpp-residency.ts +1 -19
- package/src/engine/apis/lmstudio.ts +1 -6
- package/src/engine/apis/ollama-native.ts +3 -3
- package/src/engine/apis/openai-completions.ts +2 -2
- package/src/engine/apis/residency.ts +3 -9
- package/src/engine/claude/sdk-module.ts +1 -12
- package/src/engine/claude/sdk-runtime.ts +6 -6
- package/src/engine/claude/subprocess-runtime.ts +1 -1
- package/src/engine/claude/tool-safety.ts +4 -4
- package/src/engine/loop-guard.ts +0 -5
- package/src/engine/session.ts +14 -7
- package/src/engine/tui-primitives.ts +1 -1
- package/src/engine/worker-events.ts +6 -6
- package/src/engine/worker-runtime.ts +14 -13
- package/src/entry/orchestrator.ts +107 -88
- package/src/interactive/application-controller.ts +21 -21
- package/src/interactive/bus-notices.ts +2 -2
- package/src/interactive/chat-loop.ts +8 -8
- package/src/interactive/chat-panel.ts +1 -1
- package/src/interactive/clio-editor.ts +105 -1
- package/src/interactive/context-activity.ts +8 -6
- package/src/interactive/context-meter.ts +3 -6
- package/src/interactive/context-overlay.ts +1 -1
- package/src/interactive/cost-overlay.ts +1 -1
- package/src/interactive/council-grid.ts +2 -2
- package/src/interactive/dispatch-board.ts +30 -33
- package/src/interactive/editor-bash.ts +21 -0
- package/src/interactive/editor-steer.ts +9 -4
- package/src/interactive/editor-submit.ts +24 -18
- package/src/interactive/external-editor.ts +1 -1
- package/src/interactive/file-reference-completion.ts +360 -0
- package/src/interactive/footer/dashboard.ts +15 -17
- package/src/interactive/footer/notifications.ts +14 -8
- package/src/interactive/footer/widgets.ts +2 -44
- package/src/interactive/interactive-application.ts +79 -59
- package/src/interactive/interactive-event-projection.ts +1 -1
- package/src/interactive/interactive-input-runtime.ts +2 -2
- package/src/interactive/interactive-presentation.ts +21 -16
- package/src/interactive/interactive-shell.ts +2 -2
- package/src/interactive/interactive-slash-runtime.ts +63 -17
- package/src/interactive/interactive-subscriptions.ts +1 -1
- package/src/interactive/interactive-tickers.ts +1 -1
- package/src/interactive/keybinding-manager.ts +4 -4
- package/src/interactive/layout.ts +1 -1
- package/src/interactive/memory-overlay.ts +2 -2
- package/src/interactive/modal-marker.ts +2 -21
- package/src/interactive/mutation-preview.ts +1 -1
- package/src/interactive/overlay-frame.ts +4 -12
- package/src/interactive/overlay-general-openers.ts +6 -2
- package/src/interactive/overlay-key-routing.ts +7 -7
- package/src/interactive/overlay-lifecycle.ts +1 -1
- package/src/interactive/overlay-model-selectors.ts +3 -3
- package/src/interactive/overlays/agents.ts +2 -2
- package/src/interactive/overlays/ask-user.ts +25 -11
- package/src/interactive/overlays/context-reset.ts +28 -4
- package/src/interactive/overlays/cwd-fallback.ts +28 -4
- package/src/interactive/overlays/decisions.ts +4 -2
- package/src/interactive/overlays/fleet-run-approval.ts +3 -3
- package/src/interactive/overlays/handoff-review.ts +2 -2
- package/src/interactive/overlays/interop.ts +1 -1
- package/src/interactive/overlays/library-install-confirm.ts +1 -1
- package/src/interactive/overlays/message-picker.ts +1 -1
- package/src/interactive/overlays/model-selector.ts +39 -31
- package/src/interactive/overlays/prompts.ts +10 -4
- package/src/interactive/overlays/session-selector.ts +2 -2
- package/src/interactive/overlays/settings.ts +339 -293
- package/src/interactive/overlays/side-question.ts +2 -2
- package/src/interactive/overlays/skills-hub.ts +8 -8
- package/src/interactive/overlays/tree-selector.ts +2 -2
- package/src/interactive/panes-runtime.ts +36 -10
- package/src/interactive/permission-overlay.ts +2 -2
- package/src/interactive/renderers/retry-status.ts +12 -4
- package/src/interactive/renderers/tool-execution.ts +4 -4
- package/src/interactive/session-transcript.ts +3 -3
- package/src/interactive/slash-autocomplete.ts +454 -165
- package/src/interactive/slash-commands.ts +279 -183
- package/src/interactive/slash-spec.ts +160 -17
- package/src/interactive/status/controller.ts +2 -2
- package/src/interactive/stream-pacing-policy.ts +1 -1
- package/src/interactive/tasks-overlay.ts +20 -13
- package/src/interactive/terminal-lease.ts +6 -7
- package/src/interactive/turn-context.ts +11 -11
- package/src/interactive/turn-persistence.ts +2 -2
- package/src/interactive/turn-prewarm.ts +2 -2
- package/src/interactive/turn-runtime.ts +8 -8
- package/src/interactive/turn-state.ts +1 -1
- package/src/interactive/view/artifacts.ts +12 -9
- package/src/interactive/view/view-overlay.ts +13 -10
- package/src/interactive/watch-pane.ts +38 -10
- package/src/interactive/welcome-dashboard.ts +15 -15
- package/src/interactive/worker-progress.ts +4 -4
- package/src/interactive/worker-receipts.ts +1 -1
- package/src/interactive/worker-stream.ts +1 -4
- package/src/interactive/yazi-bridge.ts +12 -5
- package/src/tools/ask-user.ts +3 -3
- package/src/tools/bash.ts +1 -1
- package/src/tools/builtin-tool-catalog.ts +1 -1
- package/src/tools/compete-worktrees.ts +27 -17
- package/src/tools/context/index.ts +15 -1
- package/src/tools/dispatch-admission.ts +4 -2
- package/src/tools/dispatch-arguments.ts +1 -1
- package/src/tools/dispatch-plan.ts +0 -11
- package/src/tools/dispatch-run-events.ts +12 -10
- package/src/tools/dispatch-runner.ts +11 -6
- package/src/tools/dispatch.ts +1 -1
- package/src/tools/find.ts +1 -6
- package/src/tools/monitor.ts +4 -4
- package/src/tools/observers.ts +0 -33
- package/src/tools/task-worktree.ts +28 -7
- package/src/tools/verify/authoring.ts +3 -6
- package/src/tools/verify/frontend.ts +1 -1
- package/src/tools/web-fetch.ts +1 -1
- package/src/worker/entry.ts +4 -3
- package/src/worker/protocol.ts +16 -14
- package/src/worker/spec-contract.ts +2 -2
- package/src/worker/stdin-demux.ts +2 -2
- package/dist/chunk-GXNLGKAB.js +0 -571
- package/dist/chunk-VFA6GDY5.js +0 -1625
- package/dist/doctor-QOA5FNY5.js +0 -313
- package/src/engine/apis/degraded-inference.ts +0 -95
- /package/skills/meta/{clio-test → clio-coder-test}/references/harness.md +0 -0
- /package/skills/meta/{clio-test → clio-coder-test}/references/test-map.md +0 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
readGateDecisionArtifactsForRunIds,
|
|
7
7
|
stagePendingGateDecision,
|
|
8
8
|
verifyGateDecisionArtifact
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-GPPB3JBE.js";
|
|
10
10
|
import {
|
|
11
11
|
RUN_RECEIPT_INTEGRITY_ALGORITHM,
|
|
12
12
|
RUN_RECEIPT_INTEGRITY_VERSION,
|
|
@@ -24,14 +24,14 @@ import {
|
|
|
24
24
|
trustVerdict,
|
|
25
25
|
verifyReceiptIntegrity,
|
|
26
26
|
withReceiptIntegrity
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-6NJQITNH.js";
|
|
28
28
|
import {
|
|
29
29
|
protectedArtifactFromSessionEntry,
|
|
30
30
|
protectedArtifactStateFromSessionEntries,
|
|
31
31
|
readAuditRows,
|
|
32
32
|
readSessionEntriesForId,
|
|
33
33
|
responseModelIdObservationFromRecord
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-TVH4ONAM.js";
|
|
35
35
|
import {
|
|
36
36
|
applyTaskWorktree,
|
|
37
37
|
captureWorkspaceSnapshot,
|
|
@@ -39,11 +39,11 @@ import {
|
|
|
39
39
|
createTaskWorktree,
|
|
40
40
|
createWriteBoundaryEnforcer,
|
|
41
41
|
gitCheckoutRoot
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-TD3PGPQA.js";
|
|
43
43
|
import {
|
|
44
44
|
executionPlanAncestors,
|
|
45
45
|
spliceExecutionPlan
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-THYWACCR.js";
|
|
47
47
|
import {
|
|
48
48
|
parseRigorOverride,
|
|
49
49
|
resolveRigor
|
|
@@ -53,11 +53,11 @@ import {
|
|
|
53
53
|
parseEvalArtifactV4,
|
|
54
54
|
redactArtifactForStorage,
|
|
55
55
|
sumEvalHarnessMetrics
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-6CCS4G3W.js";
|
|
57
57
|
import {
|
|
58
58
|
defaultRunEventJournal,
|
|
59
59
|
removeRunEventJournals
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-6VC4OV3Z.js";
|
|
61
61
|
import {
|
|
62
62
|
AdmissionCanceledError,
|
|
63
63
|
EVENT_TEE_LIMIT,
|
|
@@ -75,7 +75,7 @@ import {
|
|
|
75
75
|
receiptAttestationFields,
|
|
76
76
|
routeFactVerdict,
|
|
77
77
|
spawnNativeWorker
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-AFKWHWXF.js";
|
|
79
79
|
import {
|
|
80
80
|
FLEET_COMMAND_BASE_ENV,
|
|
81
81
|
normalizeWriteBoundary
|
|
@@ -119,7 +119,7 @@ import {
|
|
|
119
119
|
serializeWorkerRuntimeDescriptor,
|
|
120
120
|
toolPromptHintsForNames,
|
|
121
121
|
validateJobSpec
|
|
122
|
-
} from "./chunk-
|
|
122
|
+
} from "./chunk-2VG7KLYV.js";
|
|
123
123
|
import {
|
|
124
124
|
decideRoute,
|
|
125
125
|
defaultRoutingIntent,
|
|
@@ -137,13 +137,13 @@ import {
|
|
|
137
137
|
routingIntentRejection,
|
|
138
138
|
sameRouteIdentity,
|
|
139
139
|
toRouteCandidate
|
|
140
|
-
} from "./chunk-
|
|
140
|
+
} from "./chunk-7EPLI7VL.js";
|
|
141
141
|
import {
|
|
142
142
|
assessFinishContract
|
|
143
|
-
} from "./chunk-
|
|
143
|
+
} from "./chunk-PVAMAVBB.js";
|
|
144
144
|
import {
|
|
145
145
|
WRITE_ROOT_REFUSED_TOOLS
|
|
146
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-IXJT6DCX.js";
|
|
147
147
|
import {
|
|
148
148
|
describeCallAction
|
|
149
149
|
} from "./chunk-TVHHYFHE.js";
|
|
@@ -161,13 +161,13 @@ import {
|
|
|
161
161
|
} from "./chunk-H7IXIC72.js";
|
|
162
162
|
import {
|
|
163
163
|
compareCodepoints
|
|
164
|
-
} from "./chunk-
|
|
164
|
+
} from "./chunk-VN3SHNBN.js";
|
|
165
165
|
import {
|
|
166
166
|
DEFAULT_AUTONOMY_LEVEL,
|
|
167
167
|
autonomyDenyRejection,
|
|
168
168
|
isSkillActivation,
|
|
169
169
|
mapAutonomy
|
|
170
|
-
} from "./chunk-
|
|
170
|
+
} from "./chunk-FSP7CMNU.js";
|
|
171
171
|
import {
|
|
172
172
|
createRedactionTally,
|
|
173
173
|
redactSecretsDeep,
|
|
@@ -180,7 +180,7 @@ import {
|
|
|
180
180
|
canonicalJson,
|
|
181
181
|
endpointIdentityHash,
|
|
182
182
|
parseAgentLedgerBody
|
|
183
|
-
} from "./chunk-
|
|
183
|
+
} from "./chunk-VAVR4IJY.js";
|
|
184
184
|
import {
|
|
185
185
|
pathBoundaryCovers
|
|
186
186
|
} from "./chunk-HHV2GANA.js";
|
|
@@ -194,7 +194,7 @@ import {
|
|
|
194
194
|
resolveAgentToolCompatibility,
|
|
195
195
|
resultContractAuthorship,
|
|
196
196
|
validateRecipeResult
|
|
197
|
-
} from "./chunk-
|
|
197
|
+
} from "./chunk-IG7BCQBA.js";
|
|
198
198
|
import {
|
|
199
199
|
detectValidationCommand
|
|
200
200
|
} from "./chunk-GCSMB2KY.js";
|
|
@@ -223,29 +223,33 @@ import {
|
|
|
223
223
|
resolveRuntimeTarget,
|
|
224
224
|
runtimeResolutionWarnings,
|
|
225
225
|
runtimeTargetSnapshot
|
|
226
|
-
} from "./chunk-
|
|
226
|
+
} from "./chunk-UEDMSP56.js";
|
|
227
227
|
import {
|
|
228
228
|
ceilChars
|
|
229
|
-
} from "./chunk-
|
|
230
|
-
import {
|
|
231
|
-
BusChannels
|
|
232
|
-
} from "./chunk-HLW2MRKE.js";
|
|
229
|
+
} from "./chunk-CWVRRIEI.js";
|
|
233
230
|
import {
|
|
234
231
|
atomicWrite
|
|
235
|
-
} from "./chunk-
|
|
232
|
+
} from "./chunk-MQXIVJ35.js";
|
|
236
233
|
import {
|
|
237
234
|
assertSafeId
|
|
238
235
|
} from "./chunk-R346GLFC.js";
|
|
236
|
+
import {
|
|
237
|
+
BusChannels
|
|
238
|
+
} from "./chunk-HLW2MRKE.js";
|
|
239
|
+
import {
|
|
240
|
+
normalizeClioCoderEventRecord,
|
|
241
|
+
normalizeClioCoderEventType
|
|
242
|
+
} from "./chunk-BTK3SSSK.js";
|
|
239
243
|
import {
|
|
240
244
|
attributeCommitMessage,
|
|
241
245
|
gitCommitAttributionEnabled,
|
|
242
246
|
reportCommitAttributionDiagnostic,
|
|
243
247
|
withManagedGitCommitAttributionEnvironment
|
|
244
|
-
} from "./chunk-
|
|
248
|
+
} from "./chunk-JIEGK6UF.js";
|
|
245
249
|
import {
|
|
246
250
|
MAX_TIMER_DELAY_MS,
|
|
247
251
|
rawDurationMs
|
|
248
|
-
} from "./chunk-
|
|
252
|
+
} from "./chunk-EBY63B7G.js";
|
|
249
253
|
import {
|
|
250
254
|
AI_AGENT_NAME
|
|
251
255
|
} from "./chunk-6EJMN2Y3.js";
|
|
@@ -259,14 +263,14 @@ import {
|
|
|
259
263
|
DEFAULT_DELEGATION_TURN_TIMEOUT_MS,
|
|
260
264
|
DEFAULT_SETTINGS,
|
|
261
265
|
THINKING_LEVELS
|
|
262
|
-
} from "./chunk-
|
|
266
|
+
} from "./chunk-BWW4HLO4.js";
|
|
263
267
|
import {
|
|
264
268
|
GUARDRAIL_DEFAULTS,
|
|
265
269
|
resolveGuardrail
|
|
266
|
-
} from "./chunk-
|
|
270
|
+
} from "./chunk-NLFAQR7Z.js";
|
|
267
271
|
import {
|
|
268
272
|
targetRequiresAuth
|
|
269
|
-
} from "./chunk-
|
|
273
|
+
} from "./chunk-WNP7O5WZ.js";
|
|
270
274
|
import {
|
|
271
275
|
FILE_LOCK_ACQUIRE_TIMEOUT_MS,
|
|
272
276
|
withStateFileLock,
|
|
@@ -284,7 +288,7 @@ import {
|
|
|
284
288
|
} from "./chunk-BYP5D4HI.js";
|
|
285
289
|
import {
|
|
286
290
|
resolveEffectivePricing
|
|
287
|
-
} from "./chunk-
|
|
291
|
+
} from "./chunk-O42A54GG.js";
|
|
288
292
|
import {
|
|
289
293
|
init_esm_shims
|
|
290
294
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -298,10 +302,10 @@ function protectedResidencyModels(settings) {
|
|
|
298
302
|
if (!trimmed || byId.has(trimmed)) return;
|
|
299
303
|
byId.set(trimmed, role);
|
|
300
304
|
};
|
|
301
|
-
add(settings.
|
|
302
|
-
add(settings.
|
|
303
|
-
add(settings.
|
|
304
|
-
for (const profile of Object.values(settings.
|
|
305
|
+
add(settings.chat.model, "chat");
|
|
306
|
+
add(settings.context.memory.model, "memory");
|
|
307
|
+
add(settings.fleet.default.model, "worker");
|
|
308
|
+
for (const profile of Object.values(settings.fleet.profiles ?? {})) add(profile.model, "worker");
|
|
305
309
|
for (const target of settings.targets) add(target.defaultModel, "target-default");
|
|
306
310
|
return [...byId].map(([modelId, role]) => ({ modelId, role }));
|
|
307
311
|
}
|
|
@@ -1391,7 +1395,7 @@ function agentLedgerContribution(id, runId) {
|
|
|
1391
1395
|
if (record === null) return null;
|
|
1392
1396
|
const contribution = contributionFor(record, runId);
|
|
1393
1397
|
const mine = record.entries.filter((entry) => entry.runId === runId).sort((left, right) => left.sequence - right.sequence);
|
|
1394
|
-
const digest = createHash("sha256").update(`clio.agentLedger:${canonicalJson(mine)}`, "utf8").digest("hex");
|
|
1398
|
+
const digest = createHash("sha256").update(`clio-coder.agentLedger:${canonicalJson(mine)}`, "utf8").digest("hex");
|
|
1395
1399
|
return { posted: contribution.posted, refused: contribution.refused, digest };
|
|
1396
1400
|
}
|
|
1397
1401
|
|
|
@@ -1521,7 +1525,7 @@ var AcpEventMapper = class {
|
|
|
1521
1525
|
return this.mapToolUpdate(update);
|
|
1522
1526
|
}
|
|
1523
1527
|
if (kind === "plan") {
|
|
1524
|
-
return [{ type: "
|
|
1528
|
+
return [{ type: "clio_coder_plan_update", payload: update }];
|
|
1525
1529
|
}
|
|
1526
1530
|
return [];
|
|
1527
1531
|
}
|
|
@@ -1555,7 +1559,7 @@ var AcpEventMapper = class {
|
|
|
1555
1559
|
this.toolStarts.set(toolCallId, performance2.now());
|
|
1556
1560
|
const action = describeCallAction(update.kind ?? title, update.rawInput);
|
|
1557
1561
|
out.push({
|
|
1558
|
-
type: "
|
|
1562
|
+
type: "clio_coder_tool_start",
|
|
1559
1563
|
payload: {
|
|
1560
1564
|
tool: update.kind ?? title,
|
|
1561
1565
|
toolCallId,
|
|
@@ -1584,7 +1588,7 @@ var AcpEventMapper = class {
|
|
|
1584
1588
|
isError
|
|
1585
1589
|
});
|
|
1586
1590
|
out.push({
|
|
1587
|
-
type: "
|
|
1591
|
+
type: "clio_coder_tool_finish",
|
|
1588
1592
|
payload: {
|
|
1589
1593
|
tool: update.kind ?? title,
|
|
1590
1594
|
toolCallId,
|
|
@@ -2021,7 +2025,7 @@ var AcpToolMediator = class {
|
|
|
2021
2025
|
let reason;
|
|
2022
2026
|
let safetyDecision;
|
|
2023
2027
|
if (mapped.validationError !== void 0) {
|
|
2024
|
-
if (this.input.toolGovernance === "clio-policy") {
|
|
2028
|
+
if (this.input.toolGovernance === "clio-coder-policy") {
|
|
2025
2029
|
const invalidSafetyDecisions = mapped.evaluations.map(
|
|
2026
2030
|
(evaluation) => this.input.safety.evaluate({ tool: evaluation.tool, args: evaluation.args })
|
|
2027
2031
|
);
|
|
@@ -2264,10 +2268,10 @@ function startAcpDelegationRun(input) {
|
|
|
2264
2268
|
const mediator = new AcpToolMediator({
|
|
2265
2269
|
safety: input.safety,
|
|
2266
2270
|
cwd: input.cwd,
|
|
2267
|
-
toolGovernance: input.agent.toolGovernance ?? "clio-policy",
|
|
2271
|
+
toolGovernance: input.agent.toolGovernance ?? "clio-coder-policy",
|
|
2268
2272
|
...input.autonomy !== void 0 ? { autonomy: input.autonomy } : {},
|
|
2269
2273
|
onPermissionResolved: (event) => emit({
|
|
2270
|
-
type: "
|
|
2274
|
+
type: "clio_coder_permission_resolved",
|
|
2271
2275
|
payload: event
|
|
2272
2276
|
})
|
|
2273
2277
|
});
|
|
@@ -2774,7 +2778,7 @@ function compileWorker(table, inputs) {
|
|
|
2774
2778
|
if (inputs.hasBoundSkills && !inputs.hasCanonicalContext) {
|
|
2775
2779
|
throw new Error("prompts/compiler: bound skills require canonical context in the final attached tool surface");
|
|
2776
2780
|
}
|
|
2777
|
-
const identity = lookupFragment(table, "identity.clio-worker", "worker identity");
|
|
2781
|
+
const identity = lookupFragment(table, "identity.clio-coder-worker", "worker identity");
|
|
2778
2782
|
const operatingContract = lookupFragment(table, "operating.contract", "operating contract");
|
|
2779
2783
|
const workerContract = lookupFragment(table, "operating.worker", "worker contract");
|
|
2780
2784
|
const safety = lookupFragment(table, `safety.${inputs.autonomy}`, "safety");
|
|
@@ -2906,7 +2910,7 @@ function asAssignmentId(rootRunId) {
|
|
|
2906
2910
|
function activeRoutingEnabled(input) {
|
|
2907
2911
|
if (input.posture === "manual" || input.failover !== "approved") return false;
|
|
2908
2912
|
if (input.capabilityClass !== "read-only" && input.capabilityClass !== "verification") return false;
|
|
2909
|
-
return input.settings.
|
|
2913
|
+
return input.settings.roles.includes(input.role) && input.settings.postures.includes(input.posture);
|
|
2910
2914
|
}
|
|
2911
2915
|
function applyActiveRouteSelection(req, decision) {
|
|
2912
2916
|
if (decision.mode !== "active") throw new Error("dispatch: cannot apply a non-active route decision");
|
|
@@ -3106,7 +3110,7 @@ function routeValidationProjection(request, allowUnenvelopedApproval = false) {
|
|
|
3106
3110
|
function enabled(input) {
|
|
3107
3111
|
const posture = input.request.routingIntent?.posture ?? "balanced";
|
|
3108
3112
|
if (input.request.agentSelection?.mode === "auto") {
|
|
3109
|
-
return input.settings !== void 0 && posture !== "manual" && input.failover === "approved" && input.settings.
|
|
3113
|
+
return input.settings !== void 0 && posture !== "manual" && input.failover === "approved" && input.settings.postures.includes(posture) && input.settings.agentRoles.length > 0;
|
|
3110
3114
|
}
|
|
3111
3115
|
return input.settings !== void 0 && input.capabilityClass !== null && activeRoutingEnabled({
|
|
3112
3116
|
settings: input.settings,
|
|
@@ -5463,9 +5467,9 @@ function completedReroutes(reroutes, toNode) {
|
|
|
5463
5467
|
}
|
|
5464
5468
|
function requestedNodeId(req, settings) {
|
|
5465
5469
|
if (req.node !== void 0 && req.node.trim().length > 0) return req.node.trim();
|
|
5466
|
-
const workers = settings?.
|
|
5470
|
+
const workers = settings?.fleet;
|
|
5467
5471
|
if (!workers) return null;
|
|
5468
|
-
const profileName = req.workerProfile ?? workers.
|
|
5472
|
+
const profileName = req.workerProfile ?? workers.agentProfiles?.[req.agentId];
|
|
5469
5473
|
if (!profileName) return null;
|
|
5470
5474
|
const pin = workers.profiles?.[profileName]?.node;
|
|
5471
5475
|
return pin !== void 0 && pin.trim().length > 0 ? pin.trim() : null;
|
|
@@ -5736,7 +5740,7 @@ function retireHistory(path2, version) {
|
|
|
5736
5740
|
const retired = `${path2}.v${String(version)}.${stamp}.retired`;
|
|
5737
5741
|
renameSync3(path2, retired);
|
|
5738
5742
|
process.stderr.write(
|
|
5739
|
-
`[clio:dispatch] route history v${String(version)} is retired; starting empty at v${ROUTE_HISTORY_VERSION}. Prior observations: ${retired}
|
|
5743
|
+
`[clio-coder:dispatch] route history v${String(version)} is retired; starting empty at v${ROUTE_HISTORY_VERSION}. Prior observations: ${retired}
|
|
5740
5744
|
`
|
|
5741
5745
|
);
|
|
5742
5746
|
}
|
|
@@ -6283,24 +6287,25 @@ function isRecord6(value) {
|
|
|
6283
6287
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6284
6288
|
}
|
|
6285
6289
|
function eventDetail(event) {
|
|
6286
|
-
const
|
|
6290
|
+
const normalized = isRecord6(event) ? normalizeClioCoderEventRecord(event) : event;
|
|
6291
|
+
const text = assistantTextFromEvent(normalized);
|
|
6287
6292
|
if (text.length > 0) return truncateUtf8(text, RUN_TAIL_TEXT_LIMIT, "...");
|
|
6288
|
-
if (!isRecord6(
|
|
6289
|
-
if (
|
|
6290
|
-
const tool = typeof
|
|
6291
|
-
const outcome = typeof
|
|
6293
|
+
if (!isRecord6(normalized)) return void 0;
|
|
6294
|
+
if (normalized.type === "clio_coder_tool_finish" && isRecord6(normalized.payload)) {
|
|
6295
|
+
const tool = typeof normalized.payload.tool === "string" ? normalized.payload.tool : "tool";
|
|
6296
|
+
const outcome = typeof normalized.payload.outcome === "string" ? normalized.payload.outcome : "";
|
|
6292
6297
|
return `${tool} ${outcome}`.trim();
|
|
6293
6298
|
}
|
|
6294
|
-
if (
|
|
6295
|
-
const attempt = typeof
|
|
6296
|
-
const runId = typeof
|
|
6297
|
-
const reason = typeof
|
|
6299
|
+
if (normalized.type === "attempt_start") {
|
|
6300
|
+
const attempt = typeof normalized.attempt === "number" ? normalized.attempt : "?";
|
|
6301
|
+
const runId = typeof normalized.runId === "string" ? normalized.runId : "?";
|
|
6302
|
+
const reason = typeof normalized.reason === "string" ? normalized.reason : "retry";
|
|
6298
6303
|
return truncateUtf8(`attempt ${attempt} -> ${runId}: ${reason}`, RUN_TAIL_TEXT_LIMIT, "...");
|
|
6299
6304
|
}
|
|
6300
6305
|
return void 0;
|
|
6301
6306
|
}
|
|
6302
6307
|
function runTailEntryFromEvent(event, at = (/* @__PURE__ */ new Date()).toISOString()) {
|
|
6303
|
-
const type = isRecord6(event) && typeof event.type === "string" ? event.type : "unknown";
|
|
6308
|
+
const type = isRecord6(event) && typeof event.type === "string" ? normalizeClioCoderEventType(event.type) : "unknown";
|
|
6304
6309
|
if (type === "heartbeat" || type === "message_update") return null;
|
|
6305
6310
|
const entry = { at, type };
|
|
6306
6311
|
const detail = eventDetail(event);
|
|
@@ -6986,7 +6991,7 @@ function calculateUsageCostUsd(meter, pricing) {
|
|
|
6986
6991
|
return (meter.inputTokens * pricing.input + meter.outputTokens * pricing.output + meter.cacheReadTokens * pricing.cacheRead + meter.cacheWriteTokens * pricing.cacheWrite) / 1e6;
|
|
6987
6992
|
}
|
|
6988
6993
|
function admissionMaxOutputTokens(settings) {
|
|
6989
|
-
return settings?.
|
|
6994
|
+
return settings?.chat.maxOutputTokens ?? DEFAULT_SETTINGS.chat.maxOutputTokens;
|
|
6990
6995
|
}
|
|
6991
6996
|
function conservativeRouteAdmissionEstimateUsd(pricing, maxOutputTokens) {
|
|
6992
6997
|
if (pricing.provenance === "known_free") return 0;
|
|
@@ -7018,7 +7023,7 @@ function eventContainsFirstModelToken(event) {
|
|
|
7018
7023
|
return assistantEvent?.type === "text_delta" || assistantEvent?.type === "thinking_delta" || assistantEvent?.type === "toolcall_start" || assistantEvent?.type === "toolcall_delta";
|
|
7019
7024
|
}
|
|
7020
7025
|
function eventStartsTool(event) {
|
|
7021
|
-
return event.type === "tool_execution_start" || event.type === "
|
|
7026
|
+
return event.type === "tool_execution_start" || event.type === "clio_coder_tool_start";
|
|
7022
7027
|
}
|
|
7023
7028
|
function finitePositive(value) {
|
|
7024
7029
|
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : void 0;
|
|
@@ -7151,7 +7156,7 @@ async function awaitEventDrain(drained, graceMs = DISPATCH_DRAIN_GRACE_MS) {
|
|
|
7151
7156
|
function reportDispatchDiagnostic(scope, error) {
|
|
7152
7157
|
const message = error instanceof Error ? error.message : String(error);
|
|
7153
7158
|
try {
|
|
7154
|
-
process.stderr.write(`[clio:dispatch] ${scope}: ${message}
|
|
7159
|
+
process.stderr.write(`[clio-coder:dispatch] ${scope}: ${message}
|
|
7155
7160
|
`);
|
|
7156
7161
|
} catch {
|
|
7157
7162
|
}
|
|
@@ -7572,7 +7577,7 @@ function assertPostRuntimeToolCompatibility(agentId, spec, effectiveTools, targe
|
|
|
7572
7577
|
function workerToolCallHardCap(settings) {
|
|
7573
7578
|
const rawEnvCap = process.env.CLIO_CODER_WORKER_TOOL_CALL_CAP?.trim();
|
|
7574
7579
|
const parsedEnvCap = rawEnvCap && /^[1-9]\d*$/.test(rawEnvCap) ? Number(rawEnvCap) : Number.NaN;
|
|
7575
|
-
return Number.isSafeInteger(parsedEnvCap) ? parsedEnvCap : settings?.
|
|
7580
|
+
return Number.isSafeInteger(parsedEnvCap) ? parsedEnvCap : settings?.fleet.limits.toolCallsPerRun ?? GUARDRAIL_DEFAULTS.workerToolCallCap;
|
|
7576
7581
|
}
|
|
7577
7582
|
function resolveEffectiveWorkerBudget(input) {
|
|
7578
7583
|
const hardCap = workerToolCallHardCap(input.settings);
|
|
@@ -7670,13 +7675,13 @@ function acpRuntimeLimitations() {
|
|
|
7670
7675
|
];
|
|
7671
7676
|
}
|
|
7672
7677
|
function readWorkerTargets(settings) {
|
|
7673
|
-
const workerDefault = settings?.
|
|
7674
|
-
target: settings.
|
|
7675
|
-
model: settings.
|
|
7676
|
-
thinkingLevel: settings.
|
|
7678
|
+
const workerDefault = settings?.fleet?.default ? {
|
|
7679
|
+
target: settings.fleet.default.target ?? null,
|
|
7680
|
+
model: settings.fleet.default.model ?? null,
|
|
7681
|
+
thinkingLevel: settings.fleet.default.thinkingLevel ?? "off"
|
|
7677
7682
|
} : null;
|
|
7678
7683
|
const workerProfiles = {};
|
|
7679
|
-
for (const [name, profile] of Object.entries(settings?.
|
|
7684
|
+
for (const [name, profile] of Object.entries(settings?.fleet?.profiles ?? {})) {
|
|
7680
7685
|
workerProfiles[name] = {
|
|
7681
7686
|
target: profile.target ?? null,
|
|
7682
7687
|
model: profile.model ?? null,
|
|
@@ -7684,7 +7689,7 @@ function readWorkerTargets(settings) {
|
|
|
7684
7689
|
};
|
|
7685
7690
|
}
|
|
7686
7691
|
const agentBindings = {};
|
|
7687
|
-
for (const [agentId, profileName] of Object.entries(settings?.
|
|
7692
|
+
for (const [agentId, profileName] of Object.entries(settings?.fleet?.agentProfiles ?? {})) {
|
|
7688
7693
|
const id = agentId.trim();
|
|
7689
7694
|
const profile = profileName.trim();
|
|
7690
7695
|
if (id.length > 0 && profile.length > 0) agentBindings[id] = profile;
|
|
@@ -7821,12 +7826,12 @@ function buildDispatchWorkerSpec(input, config) {
|
|
|
7821
7826
|
if (input.req.trustProjectCompatRoots !== void 0) {
|
|
7822
7827
|
spec.trustProjectCompatRoots = input.req.trustProjectCompatRoots;
|
|
7823
7828
|
} else if (settings) {
|
|
7824
|
-
spec.trustProjectCompatRoots = settings.
|
|
7829
|
+
spec.trustProjectCompatRoots = settings.integrations.projectResources.trustProjectImports === true;
|
|
7825
7830
|
}
|
|
7826
|
-
spec.gitCommitAttribution = settings?.
|
|
7827
|
-
spec.onPermission = settings?.
|
|
7831
|
+
spec.gitCommitAttribution = settings?.integrations.git.commitAttribution ?? true;
|
|
7832
|
+
spec.onPermission = settings?.fleet.permissions.mode ?? "deny";
|
|
7828
7833
|
if (spec.onPermission === "escalate") {
|
|
7829
|
-
const escalation = settings?.
|
|
7834
|
+
const escalation = settings?.fleet.permissions.escalation;
|
|
7830
7835
|
if (escalation) spec.escalation = { timeoutMs: escalation.timeoutMs, fallback: escalation.fallback };
|
|
7831
7836
|
}
|
|
7832
7837
|
assertRuntimeCanHonorWorkerPermissionMode(input.target.runtime, spec.onPermission);
|
|
@@ -8214,7 +8219,7 @@ function createDispatchBundle(context, options) {
|
|
|
8214
8219
|
const heartbeatIntervalMs = options?.heartbeatIntervalMs ?? DEFAULT_HEARTBEAT_INTERVAL_MS;
|
|
8215
8220
|
const getResilienceCooldownMs = () => {
|
|
8216
8221
|
if (options?.resilienceCooldownMs !== void 0) return options.resilienceCooldownMs;
|
|
8217
|
-
const settingsVal = getEffectiveSettings()?.
|
|
8222
|
+
const settingsVal = getEffectiveSettings()?.fleet?.retry.routeCooldownMs;
|
|
8218
8223
|
if (settingsVal !== void 0 && settingsVal >= 0) return settingsVal;
|
|
8219
8224
|
return DEFAULT_RESILIENCE_COOLDOWN_MS;
|
|
8220
8225
|
};
|
|
@@ -8342,7 +8347,7 @@ function createDispatchBundle(context, options) {
|
|
|
8342
8347
|
}
|
|
8343
8348
|
}
|
|
8344
8349
|
function configuredGlobalCapacity(settings) {
|
|
8345
|
-
const configured = settings?.
|
|
8350
|
+
const configured = settings?.fleet.concurrency;
|
|
8346
8351
|
return scheduling.maxWorkers?.() ?? (configured === "auto" || configured === void 0 ? 4 : Math.max(1, configured));
|
|
8347
8352
|
}
|
|
8348
8353
|
function publishCapacityQueued(identity, timing, node) {
|
|
@@ -8418,7 +8423,7 @@ function createDispatchBundle(context, options) {
|
|
|
8418
8423
|
const finalizedTotals = { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUsd: 0, runtimeSeconds: 0 };
|
|
8419
8424
|
const finalizedCosts = [];
|
|
8420
8425
|
function workersMaxRetries(settings = getEffectiveSettings()) {
|
|
8421
|
-
const value = settings?.
|
|
8426
|
+
const value = settings?.fleet?.retry.maxRetries;
|
|
8422
8427
|
return typeof value === "number" && Number.isInteger(value) && value >= 0 ? value : 2;
|
|
8423
8428
|
}
|
|
8424
8429
|
function failoverModeFor(req) {
|
|
@@ -8953,10 +8958,10 @@ function createDispatchBundle(context, options) {
|
|
|
8953
8958
|
providers
|
|
8954
8959
|
);
|
|
8955
8960
|
enforceCapabilityGate(target.target.id, target.modelCapabilities, req.requiredCapabilities);
|
|
8956
|
-
assertRuntimeCanHonorWorkerPermissionMode(target.runtime, settings?.
|
|
8961
|
+
assertRuntimeCanHonorWorkerPermissionMode(target.runtime, settings?.fleet.permissions.mode ?? "deny");
|
|
8957
8962
|
assertWorkerBudgetEnforceable(target.runtime, spec.budget !== null || req.budget !== void 0);
|
|
8958
8963
|
const cwd = req.cwd ?? process.cwd();
|
|
8959
|
-
const sessionAutonomy = settings?.autonomy ?? "auto-edit";
|
|
8964
|
+
const sessionAutonomy = settings?.safety.autonomy ?? "auto-edit";
|
|
8960
8965
|
const effectiveAutonomy = clampWorkerAutonomy(sessionAutonomy, req.autonomy);
|
|
8961
8966
|
const effectiveTools = withLedgerToolNarrowing(
|
|
8962
8967
|
effectiveToolNames(admission.allowedTools, target, pathScope.writeBoundaries.length > 0, deniedToolNames(req)),
|
|
@@ -8975,7 +8980,7 @@ function createDispatchBundle(context, options) {
|
|
|
8975
8980
|
toolPromptHints: toolPromptHintsForNames(effectiveTools),
|
|
8976
8981
|
hasCanonicalContext: effectiveTools.includes(ToolNames.Context),
|
|
8977
8982
|
hasBoundSkills: effectiveTools.includes(ToolNames.Context) && recipe.skills !== void 0 && recipe.skills.length > 0 && req.noSkills !== true,
|
|
8978
|
-
onPermission: settings?.
|
|
8983
|
+
onPermission: settings?.fleet.permissions.mode ?? "deny",
|
|
8979
8984
|
persona: {
|
|
8980
8985
|
id: `persona.${recipe.id}`,
|
|
8981
8986
|
relPath: recipe.filepath,
|
|
@@ -9000,7 +9005,7 @@ function createDispatchBundle(context, options) {
|
|
|
9000
9005
|
capabilityClass: spec.capabilityClass,
|
|
9001
9006
|
projectContextTier: tier,
|
|
9002
9007
|
autonomy: effectiveAutonomy,
|
|
9003
|
-
onPermission: settings?.
|
|
9008
|
+
onPermission: settings?.fleet.permissions.mode ?? "deny",
|
|
9004
9009
|
project,
|
|
9005
9010
|
workspace: readWorkspaceRootFacts(cwd)
|
|
9006
9011
|
});
|
|
@@ -9013,7 +9018,7 @@ function createDispatchBundle(context, options) {
|
|
|
9013
9018
|
const personaOverride = personaOverrideFor(req, staticCompositionHash);
|
|
9014
9019
|
const currentToolSignature = toolSignature(effectiveTools);
|
|
9015
9020
|
const auth = targetRequiresAuth(target.target, target.runtime) ? await providers.auth.resolveForTarget(target.target, target.runtime) : null;
|
|
9016
|
-
const apiKey = auth?.apiKey ?? (auth === null ? "clio-local-target" : void 0);
|
|
9021
|
+
const apiKey = auth?.apiKey ?? (auth === null ? "clio-coder-local-target" : void 0);
|
|
9017
9022
|
const runtimeKind = target.runtime.kind;
|
|
9018
9023
|
const limitations = runtimeLimitations(runtimeKind, target.runtime.id);
|
|
9019
9024
|
return {
|
|
@@ -9064,16 +9069,16 @@ function createDispatchBundle(context, options) {
|
|
|
9064
9069
|
}
|
|
9065
9070
|
}
|
|
9066
9071
|
if (!settings) throw new Error("dispatch: effective settings required for ACP delegation");
|
|
9067
|
-
const configured = settings.
|
|
9072
|
+
const configured = settings.integrations.externalAgents.entries.find((entry) => entry.id === agentId);
|
|
9068
9073
|
if (!configured) throw new Error(`dispatch: ACP delegation agent '${agentId}' not configured`);
|
|
9069
|
-
const toolGovernance = configured.toolGovernance ?? "clio-policy";
|
|
9074
|
+
const toolGovernance = configured.toolGovernance ?? "clio-coder-policy";
|
|
9070
9075
|
if (options?.autonomyOverride === true && toolGovernance === "agent-managed") {
|
|
9071
9076
|
throw new Error(
|
|
9072
|
-
`dispatch: ACP delegation agent '${agentId}' uses toolGovernance='agent-managed', which cannot enforce an explicit one-run autonomy override; choose clio-policy or deny-all governance, or omit --autonomy`
|
|
9077
|
+
`dispatch: ACP delegation agent '${agentId}' uses toolGovernance='agent-managed', which cannot enforce an explicit one-run autonomy override; choose clio-coder-policy or deny-all governance, or omit --autonomy`
|
|
9073
9078
|
);
|
|
9074
9079
|
}
|
|
9075
9080
|
const admission = resolveDelegationAdmissionStage(req, safety);
|
|
9076
|
-
const sessionAutonomy = settings.autonomy ?? "auto-edit";
|
|
9081
|
+
const sessionAutonomy = settings.safety.autonomy ?? "auto-edit";
|
|
9077
9082
|
const autonomy = clampWorkerAutonomy(sessionAutonomy, req.autonomy);
|
|
9078
9083
|
if (toolGovernance === "agent-managed" && autonomy !== sessionAutonomy) {
|
|
9079
9084
|
throw new Error(
|
|
@@ -9217,12 +9222,12 @@ function createDispatchBundle(context, options) {
|
|
|
9217
9222
|
if (eventContainsFirstModelToken(event)) markObservedPhase("firstModelTokenAt");
|
|
9218
9223
|
if (eventStartsTool(event)) markObservedPhase("firstToolAt");
|
|
9219
9224
|
}
|
|
9220
|
-
if (event.type === "
|
|
9225
|
+
if (event.type === "clio_coder_tool_start" && event.payload && typeof event.payload.tool === "string") {
|
|
9221
9226
|
recordToolStart(inFlightTools, event.payload);
|
|
9222
9227
|
}
|
|
9223
|
-
if (event.type === "
|
|
9228
|
+
if (event.type === "clio_coder_run_outcome" && !reportedSpoofedOutcome) {
|
|
9224
9229
|
reportedSpoofedOutcome = true;
|
|
9225
|
-
reportDispatchDiagnostic("ACP outcome event", new Error("ignored untrusted
|
|
9230
|
+
reportDispatchDiagnostic("ACP outcome event", new Error("ignored untrusted clio_coder_run_outcome assertion"));
|
|
9226
9231
|
}
|
|
9227
9232
|
if (isRecord8(event)) {
|
|
9228
9233
|
const finishEntry = appendDispatchFinishContractEntry(finishContractEntries, event);
|
|
@@ -9253,7 +9258,7 @@ function createDispatchBundle(context, options) {
|
|
|
9253
9258
|
if (message !== null) failureMessage = message;
|
|
9254
9259
|
}
|
|
9255
9260
|
}
|
|
9256
|
-
if (event.type === "
|
|
9261
|
+
if (event.type === "clio_coder_permission_resolved" && event.payload && typeof event.payload.tool === "string") {
|
|
9257
9262
|
const requestId = typeof event.payload.requestId === "string" ? event.payload.requestId : `delegation-permission-${Date.now()}`;
|
|
9258
9263
|
const origin = runIdForPermissionAudit !== null ? `delegation:${runIdForPermissionAudit}` : "delegation:unknown";
|
|
9259
9264
|
const actionClass = typeof event.payload.actionClass === "string" ? event.payload.actionClass : "unknown";
|
|
@@ -9277,7 +9282,7 @@ function createDispatchBundle(context, options) {
|
|
|
9277
9282
|
...runIdForPermissionAudit !== null ? { requestedBy: runIdForPermissionAudit } : {}
|
|
9278
9283
|
});
|
|
9279
9284
|
}
|
|
9280
|
-
if (event.type === "
|
|
9285
|
+
if (event.type === "clio_coder_tool_finish" && event.payload && typeof event.payload.tool === "string") {
|
|
9281
9286
|
recordToolCompletion(inFlightTools, event.payload);
|
|
9282
9287
|
recordToolFinish(toolStats, event.payload);
|
|
9283
9288
|
if (event.payload.decision === "allowed") safetyDecisionCounts.allowed += 1;
|
|
@@ -9455,7 +9460,7 @@ function createDispatchBundle(context, options) {
|
|
|
9455
9460
|
const finalFailureMessage = result.failureMessage ?? failureMessage;
|
|
9456
9461
|
const finalToolStats = snapshotToolStats(toolStats);
|
|
9457
9462
|
const unfinished = snapshotUnfinishedTools(inFlightTools);
|
|
9458
|
-
const toolGovernance = lifecycle.agentConfig.toolGovernance ?? "clio-policy";
|
|
9463
|
+
const toolGovernance = lifecycle.agentConfig.toolGovernance ?? "clio-coder-policy";
|
|
9459
9464
|
return {
|
|
9460
9465
|
runId: envelope.id,
|
|
9461
9466
|
agentId: req.agentId,
|
|
@@ -9505,7 +9510,7 @@ function createDispatchBundle(context, options) {
|
|
|
9505
9510
|
dynamicHash: lifecycle.dynamicHash,
|
|
9506
9511
|
promptSignature: lifecycle.promptSignature,
|
|
9507
9512
|
toolSignature: lifecycle.toolSignature,
|
|
9508
|
-
|
|
9513
|
+
clioCoderVersion: readClioVersion(),
|
|
9509
9514
|
piMonoVersion: readPiMonoVersion(),
|
|
9510
9515
|
platform: process.platform,
|
|
9511
9516
|
nodeVersion: process.version,
|
|
@@ -9519,7 +9524,7 @@ function createDispatchBundle(context, options) {
|
|
|
9519
9524
|
quality: createRunReceiptQuality({ runtimeEnforceable: false, enforcementPassed: null, resultContract: null }),
|
|
9520
9525
|
autonomyEnforcement: autonomyEnforcementForAcpDelegation(
|
|
9521
9526
|
lifecycle.autonomy,
|
|
9522
|
-
lifecycle.agentConfig.toolGovernance ?? "clio-policy",
|
|
9527
|
+
lifecycle.agentConfig.toolGovernance ?? "clio-coder-policy",
|
|
9523
9528
|
lifecycle.sessionAutonomy,
|
|
9524
9529
|
req.autonomy
|
|
9525
9530
|
),
|
|
@@ -9549,7 +9554,7 @@ function createDispatchBundle(context, options) {
|
|
|
9549
9554
|
toolCallsRequested: result.delegation.toolCallsRequested,
|
|
9550
9555
|
toolCallsApproved: result.delegation.toolCallsApproved,
|
|
9551
9556
|
toolCallsDenied: result.delegation.toolCallsDenied,
|
|
9552
|
-
toolGovernance: lifecycle.agentConfig.toolGovernance ?? "clio-policy",
|
|
9557
|
+
toolGovernance: lifecycle.agentConfig.toolGovernance ?? "clio-coder-policy",
|
|
9553
9558
|
toolCallLog: acp.toolCallLog()
|
|
9554
9559
|
},
|
|
9555
9560
|
sessionId: result.delegation.acpSessionId
|
|
@@ -9756,7 +9761,7 @@ function createDispatchBundle(context, options) {
|
|
|
9756
9761
|
const requestedAt = new Date(now()).toISOString();
|
|
9757
9762
|
const timing = { requestedAt, decisionStartedAt: requestedAt };
|
|
9758
9763
|
const settings = getEffectiveSettings();
|
|
9759
|
-
const isAcpAgent = settings?.
|
|
9764
|
+
const isAcpAgent = settings?.integrations.externalAgents?.entries?.some((entry) => entry.id === req.agentId) ?? false;
|
|
9760
9765
|
if (isAcpAgent && !req.delegationAgentId) {
|
|
9761
9766
|
req.delegationAgentId = req.agentId;
|
|
9762
9767
|
}
|
|
@@ -9772,7 +9777,7 @@ function createDispatchBundle(context, options) {
|
|
|
9772
9777
|
const recipe = agents.get(req.agentId);
|
|
9773
9778
|
const activation = consumeActiveRouteApproval({
|
|
9774
9779
|
request: req,
|
|
9775
|
-
settings: settings?.
|
|
9780
|
+
settings: settings?.fleet.adaptiveRouting,
|
|
9776
9781
|
capabilityClass: recipe === null ? null : normalizeAgentSpec(recipe).capabilityClass,
|
|
9777
9782
|
failover: failoverModeFor(req),
|
|
9778
9783
|
requestedAt,
|
|
@@ -10029,7 +10034,7 @@ function createDispatchBundle(context, options) {
|
|
|
10029
10034
|
context.bus.emit(BusChannels.DispatchProgress, {
|
|
10030
10035
|
runId,
|
|
10031
10036
|
agentId: req.agentId,
|
|
10032
|
-
event: { type: "
|
|
10037
|
+
event: { type: "clio_coder_write_record_downgraded", payload: downgrade }
|
|
10033
10038
|
});
|
|
10034
10039
|
}
|
|
10035
10040
|
});
|
|
@@ -10060,11 +10065,11 @@ function createDispatchBundle(context, options) {
|
|
|
10060
10065
|
if (eventContainsFirstModelToken(event)) markObservedPhase("firstModelTokenAt");
|
|
10061
10066
|
if (eventStartsTool(event)) markObservedPhase("firstToolAt");
|
|
10062
10067
|
}
|
|
10063
|
-
if (event.type === "
|
|
10068
|
+
if (event.type === "clio_coder_tool_start" && event.payload && typeof event.payload.tool === "string") {
|
|
10064
10069
|
recordToolStart(inFlightTools, event.payload);
|
|
10065
10070
|
}
|
|
10066
|
-
if (event.type === "
|
|
10067
|
-
if (event.type === "
|
|
10071
|
+
if (event.type === "clio_coder_steer_received") acknowledgeSteer(event.payload?.sequence);
|
|
10072
|
+
if (event.type === "clio_coder_run_outcome" && isRunOutcomeCode(event.payload?.outcomeCode) && event.payload.outcomeCode !== "worker_final_output_missing" && event.payload.outcomeCode !== "host_verification_rejected") {
|
|
10068
10073
|
if (acceptsOutcomeCodeEvents) {
|
|
10069
10074
|
trustedOutcomeCodes.add(event.payload.outcomeCode);
|
|
10070
10075
|
} else if (!reportedUntrustedOutcome) {
|
|
@@ -10083,7 +10088,7 @@ function createDispatchBundle(context, options) {
|
|
|
10083
10088
|
}
|
|
10084
10089
|
recordWorkerRunEffect(runEffects, event);
|
|
10085
10090
|
}
|
|
10086
|
-
if (event.type === "
|
|
10091
|
+
if (event.type === "clio_coder_permission_escalated" && event.payload && typeof event.payload.requestId === "string") {
|
|
10087
10092
|
escalationCounts.requested += 1;
|
|
10088
10093
|
const ctx = isRecord8(event.payload.decision) ? event.payload.decision : null;
|
|
10089
10094
|
const classification = ctx !== null && isRecord8(ctx.classification) ? ctx.classification : null;
|
|
@@ -10136,7 +10141,7 @@ function createDispatchBundle(context, options) {
|
|
|
10136
10141
|
if (message !== null) failureMessage = message;
|
|
10137
10142
|
}
|
|
10138
10143
|
}
|
|
10139
|
-
if (event.type === "
|
|
10144
|
+
if (event.type === "clio_coder_permission_resolved" && event.payload && typeof event.payload.tool === "string") {
|
|
10140
10145
|
const source = event.payload.source;
|
|
10141
10146
|
const granted = (source === "operator" || source === "remembered") && event.payload.decision === "approved";
|
|
10142
10147
|
const decidedBy = source === "operator" ? "operator" : source === "remembered" ? "operator:remembered" : source === "timeout" ? "timeout" : "policy:no-operator";
|
|
@@ -10172,7 +10177,7 @@ function createDispatchBundle(context, options) {
|
|
|
10172
10177
|
...runIdForPermissionAudit !== null ? { requestedBy: runIdForPermissionAudit } : {}
|
|
10173
10178
|
});
|
|
10174
10179
|
}
|
|
10175
|
-
if (event.type === "
|
|
10180
|
+
if (event.type === "clio_coder_tool_finish" && event.payload && typeof event.payload.tool === "string") {
|
|
10176
10181
|
recordToolCompletion(inFlightTools, event.payload);
|
|
10177
10182
|
recordToolFinish(toolStats, event.payload);
|
|
10178
10183
|
if (isSkillActivation(event.payload.skillActivation)) {
|
|
@@ -10471,7 +10476,7 @@ function createDispatchBundle(context, options) {
|
|
|
10471
10476
|
dynamicHash: lifecycle.dynamicHash,
|
|
10472
10477
|
promptSignature: lifecycle.promptSignature,
|
|
10473
10478
|
toolSignature: lifecycle.toolSignature,
|
|
10474
|
-
|
|
10479
|
+
clioCoderVersion: readClioVersion(),
|
|
10475
10480
|
piMonoVersion: readPiMonoVersion(),
|
|
10476
10481
|
platform: process.platform,
|
|
10477
10482
|
nodeVersion: process.version,
|
|
@@ -10493,7 +10498,7 @@ function createDispatchBundle(context, options) {
|
|
|
10493
10498
|
...skillActivations.length > 0 ? { skillActivations: [...skillActivations] } : {},
|
|
10494
10499
|
autonomyEnforcement: autonomyEnforcementForWorkerSpec(
|
|
10495
10500
|
spec,
|
|
10496
|
-
lifecycle.settings?.autonomy ?? "auto-edit",
|
|
10501
|
+
lifecycle.settings?.safety.autonomy ?? "auto-edit",
|
|
10497
10502
|
req.autonomy
|
|
10498
10503
|
),
|
|
10499
10504
|
safety: {
|
|
@@ -10920,7 +10925,7 @@ function createDispatchBundle(context, options) {
|
|
|
10920
10925
|
return { runId: handle.runId, events: assignment.events, finalPromise: terminal };
|
|
10921
10926
|
}
|
|
10922
10927
|
function previewFixed(req, settings = getEffectiveSettings()) {
|
|
10923
|
-
const isAcpAgent = settings?.
|
|
10928
|
+
const isAcpAgent = settings?.integrations.externalAgents?.entries?.some((entry) => entry.id === req.agentId) ?? false;
|
|
10924
10929
|
if (isAcpAgent && !req.delegationAgentId) req = { ...req, delegationAgentId: req.agentId };
|
|
10925
10930
|
const validation = routeValidationProjection(req, true);
|
|
10926
10931
|
const validated = validateJobSpec(validation.jobSpec);
|
|
@@ -10993,7 +10998,7 @@ function createDispatchBundle(context, options) {
|
|
|
10993
10998
|
req
|
|
10994
10999
|
);
|
|
10995
11000
|
assertPostRuntimeToolCompatibility(req.agentId, agentSpec, effectiveTools, target);
|
|
10996
|
-
assertRuntimeCanHonorWorkerPermissionMode(target.runtime, settings?.
|
|
11001
|
+
assertRuntimeCanHonorWorkerPermissionMode(target.runtime, settings?.fleet.permissions.mode ?? "deny");
|
|
10997
11002
|
assertWorkerBudgetEnforceable(target.runtime, agentSpec.budget !== null || req.budget !== void 0);
|
|
10998
11003
|
assertResponseSchemaEnforceable(target.runtime, target.modelCapabilities, req.responseSchema, effectiveTools.length);
|
|
10999
11004
|
assertWriteRootsEnforceable(target.runtime, pathScope.writeBoundaries);
|
|
@@ -11048,7 +11053,7 @@ function createDispatchBundle(context, options) {
|
|
|
11048
11053
|
specs,
|
|
11049
11054
|
request: req,
|
|
11050
11055
|
mode,
|
|
11051
|
-
activeAgentRoles: settings?.
|
|
11056
|
+
activeAgentRoles: settings?.fleet.adaptiveRouting.agentRoles ?? [],
|
|
11052
11057
|
...agentIntent === void 0 ? {} : { intentOverride: agentIntent }
|
|
11053
11058
|
});
|
|
11054
11059
|
const settingsFingerprint = computeSettingsFingerprint(settings ?? null);
|
|
@@ -11133,7 +11138,7 @@ function createDispatchBundle(context, options) {
|
|
|
11133
11138
|
const recipe = agents.get(req.agentId);
|
|
11134
11139
|
return planActiveRoute({
|
|
11135
11140
|
request: req,
|
|
11136
|
-
settings: settings?.
|
|
11141
|
+
settings: settings?.fleet.adaptiveRouting,
|
|
11137
11142
|
capabilityClass: recipe === null ? null : normalizeAgentSpec(recipe).capabilityClass,
|
|
11138
11143
|
failover: failoverModeFor(req),
|
|
11139
11144
|
fixed,
|
|
@@ -11298,7 +11303,7 @@ function createDispatchBundle(context, options) {
|
|
|
11298
11303
|
costProvenance: "unknown",
|
|
11299
11304
|
compiledPromptHash: null,
|
|
11300
11305
|
staticCompositionHash: null,
|
|
11301
|
-
|
|
11306
|
+
clioCoderVersion: readClioVersion(),
|
|
11302
11307
|
piMonoVersion: readPiMonoVersion(),
|
|
11303
11308
|
platform: process.platform,
|
|
11304
11309
|
nodeVersion: process.version,
|
|
@@ -12999,7 +13004,6 @@ async function executeFleetRun(input) {
|
|
|
12999
13004
|
planHash: input.plan.hash,
|
|
13000
13005
|
result,
|
|
13001
13006
|
receipts,
|
|
13002
|
-
totalCostUsd: receipts.reduce((sum, receipt) => sum + receipt.costUsd, 0),
|
|
13003
13007
|
totalCost: aggregateCostAmounts(
|
|
13004
13008
|
receipts.map((receipt) => ({ usd: receipt.costUsd, provenance: receipt.costProvenance }))
|
|
13005
13009
|
),
|
|
@@ -13592,6 +13596,7 @@ var MAX_TASK_CHARS = 500;
|
|
|
13592
13596
|
var TRANSCRIPT_TEXT_MAX_CHARS = 500;
|
|
13593
13597
|
var TOOL_PREVIEW_MAX_CHARS = 240;
|
|
13594
13598
|
var TASK_LEDGER_ROW_LIMIT = 200;
|
|
13599
|
+
var MODEL_PRIVATE_MARKER = "[not sent to model]";
|
|
13595
13600
|
async function buildEvidence(options) {
|
|
13596
13601
|
if (options.runId !== void 0 && options.sessionId !== void 0) {
|
|
13597
13602
|
throw new Error("build evidence accepts either runId or sessionId, not both");
|
|
@@ -14190,6 +14195,7 @@ function sessionToolEvents(entries) {
|
|
|
14190
14195
|
for (const linked of entries) {
|
|
14191
14196
|
const entry = linked.entry;
|
|
14192
14197
|
if (entry.kind === "bashExecution") {
|
|
14198
|
+
const contextMarker = entry.excludeFromContext === true ? `${MODEL_PRIVATE_MARKER} ` : "";
|
|
14193
14199
|
events.push({
|
|
14194
14200
|
source: "session-entry",
|
|
14195
14201
|
runId: linked.link.runId,
|
|
@@ -14204,8 +14210,8 @@ function sessionToolEvents(entries) {
|
|
|
14204
14210
|
timestamp: entry.timestamp,
|
|
14205
14211
|
linkKind: "session-bash-execution",
|
|
14206
14212
|
confidence: "exact",
|
|
14207
|
-
argsPreview: truncateText(entry.command
|
|
14208
|
-
resultPreview: truncateText(entry.output
|
|
14213
|
+
argsPreview: truncateText(`${contextMarker}${entry.command}`, TOOL_PREVIEW_MAX_CHARS),
|
|
14214
|
+
resultPreview: truncateText(`${contextMarker}${entry.output}`, TOOL_PREVIEW_MAX_CHARS)
|
|
14209
14215
|
});
|
|
14210
14216
|
continue;
|
|
14211
14217
|
}
|
|
@@ -14559,9 +14565,10 @@ function renderSessionTranscriptEntry(linked) {
|
|
|
14559
14565
|
}
|
|
14560
14566
|
if (entry.kind === "bashExecution") {
|
|
14561
14567
|
const status = entry.cancelled ? "cancelled" : entry.exitCode === null ? "exit=?" : `exit=${entry.exitCode}`;
|
|
14568
|
+
const contextMarker = entry.excludeFromContext === true ? ` ${MODEL_PRIVATE_MARKER}` : "";
|
|
14562
14569
|
return [
|
|
14563
|
-
`${prefix} bash ${status}: $ ${truncateText(entry.command, TRANSCRIPT_TEXT_MAX_CHARS)}`,
|
|
14564
|
-
` output: ${previewUnknown(entry.output)}`
|
|
14570
|
+
`${prefix} bash ${status}${contextMarker}: $ ${truncateText(entry.command, TRANSCRIPT_TEXT_MAX_CHARS)}`,
|
|
14571
|
+
` output${contextMarker}: ${previewUnknown(entry.output)}`
|
|
14565
14572
|
];
|
|
14566
14573
|
}
|
|
14567
14574
|
if (entry.kind === "branchSummary")
|
|
@@ -14791,7 +14798,7 @@ function parseRunReceipt(value, source) {
|
|
|
14791
14798
|
costUsd: readNumber2(value, source, "costUsd"),
|
|
14792
14799
|
compiledPromptHash: readNullableString2(value, source, "compiledPromptHash"),
|
|
14793
14800
|
staticCompositionHash: readNullableString2(value, source, "staticCompositionHash"),
|
|
14794
|
-
|
|
14801
|
+
clioCoderVersion: readReceiptVersion(value, source),
|
|
14795
14802
|
piMonoVersion: readString2(value, source, "piMonoVersion"),
|
|
14796
14803
|
platform: readString2(value, source, "platform"),
|
|
14797
14804
|
nodeVersion: readString2(value, source, "nodeVersion"),
|
|
@@ -14805,6 +14812,10 @@ function parseRunReceipt(value, source) {
|
|
|
14805
14812
|
}
|
|
14806
14813
|
};
|
|
14807
14814
|
}
|
|
14815
|
+
function readReceiptVersion(value, source) {
|
|
14816
|
+
if (typeof value.clioCoderVersion === "string") return value.clioCoderVersion;
|
|
14817
|
+
return readString2(value, source, "clioVersion");
|
|
14818
|
+
}
|
|
14808
14819
|
function readToolStats(record, source, field) {
|
|
14809
14820
|
const value = record[field];
|
|
14810
14821
|
if (!Array.isArray(value)) throw new Error(`${source}.${field}: expected array`);
|
|
@@ -15704,4 +15715,4 @@ export {
|
|
|
15704
15715
|
summarizeEvalResults,
|
|
15705
15716
|
buildEvalEvidence
|
|
15706
15717
|
};
|
|
15707
|
-
//# sourceMappingURL=chunk-
|
|
15718
|
+
//# sourceMappingURL=chunk-XKA2ICR3.js.map
|