@iowarp/clio-coder 0.4.1 → 0.4.3
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 +127 -0
- package/CONTRIBUTING.md +142 -52
- package/README.md +434 -473
- package/SECURITY.md +2 -1
- package/dist/{acp-ZILU3AUO.js → acp-H2NGRPWO.js} +12 -12
- package/dist/{agents-HYWGBGQR.js → agents-TL5LLUQP.js} +56 -55
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-N3QT7CBO.js → auth-E5SW4HMS.js} +23 -21
- package/dist/builtins-IA7V7FUC.js +22 -0
- package/dist/{chunk-7RY5VZPH.js → chunk-2APPQIER.js} +8 -8
- package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
- package/dist/{chunk-JA5QWE4Z.js → chunk-2UG5F4C5.js} +1973 -1664
- package/dist/{chunk-5YHDIDBP.js → chunk-2UH2KFUP.js} +2 -2
- package/dist/{chunk-CTJ4RNAA.js → chunk-2VIKGWFZ.js} +2 -2
- package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
- package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
- package/dist/chunk-3EBYEESD.js +314 -0
- package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
- package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
- package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
- package/dist/chunk-4UVU7BJ5.js +39 -0
- package/dist/{chunk-VKRH2TCS.js → chunk-4WR7VSYB.js} +2 -2
- package/dist/{chunk-BBTJOK6Y.js → chunk-54CBCGIR.js} +5 -5
- package/dist/{chunk-AP73CFDC.js → chunk-5ICU3EUH.js} +2 -2
- package/dist/chunk-5MEZN6CB.js +1334 -0
- package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
- package/dist/{chunk-ABLSQ6JX.js → chunk-64I3JVYM.js} +8 -2
- package/dist/{chunk-AFKWHWXF.js → chunk-6PTFB5VS.js} +39 -22
- package/dist/{chunk-VN3SHNBN.js → chunk-7DICMOS6.js} +2 -2
- package/dist/chunk-7DRAWPTZ.js +360 -0
- package/dist/chunk-7E7I3WLS.js +3762 -0
- package/dist/{chunk-BJGUKIG4.js → chunk-7ZYNNDKC.js} +7 -7
- package/dist/{chunk-XKA2ICR3.js → chunk-AF4YM7Z4.js} +652 -252
- package/dist/{chunk-GVQJ5CCZ.js → chunk-AX2THNSA.js} +12 -12
- package/dist/{chunk-IG7BCQBA.js → chunk-B4OAX3SI.js} +65 -3
- package/dist/{chunk-TD3PGPQA.js → chunk-B4VEBZKF.js} +3 -3
- package/dist/{chunk-74YWRRU5.js → chunk-BEPZRGGU.js} +10 -10
- package/dist/{chunk-FEFIFZTL.js → chunk-CE5AX47J.js} +2 -2
- package/dist/{chunk-UAPGZHYC.js → chunk-DWUOQKRU.js} +25 -11
- package/dist/{chunk-THYWACCR.js → chunk-E3TPLWFX.js} +3 -3
- package/dist/{chunk-7EPLI7VL.js → chunk-EKCHAPYA.js} +2 -2
- package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
- package/dist/{chunk-PJJ6MY27.js → chunk-F5JHEYZM.js} +7 -7
- package/dist/{chunk-6CCS4G3W.js → chunk-FTMGRKEF.js} +3 -3
- package/dist/{chunk-SINK3QR6.js → chunk-G76U63X4.js} +17 -17
- package/dist/{chunk-EIMVLWB3.js → chunk-GHS5EBTQ.js} +64 -9
- package/dist/{chunk-QMXC4JB7.js → chunk-GI7YYQ3F.js} +187 -1419
- package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
- package/dist/{chunk-6HMJX2VU.js → chunk-GWZNEVM2.js} +44 -12
- package/dist/chunk-GYV6VZOC.js +26 -0
- package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
- package/dist/{chunk-UXN6JT4W.js → chunk-HEQY7ZFI.js} +3 -3
- package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
- package/dist/{chunk-GCSMB2KY.js → chunk-I7ZPNEJM.js} +145 -102
- package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
- package/dist/{chunk-QTFGO774.js → chunk-IGLP3ODT.js} +29 -16
- package/dist/chunk-IJNZMHLA.js +101 -0
- package/dist/{chunk-BDPT6GTK.js → chunk-INY6HTFL.js} +7 -7
- package/dist/{chunk-PBP4B7XR.js → chunk-IUE3Y34X.js} +2 -2
- package/dist/{chunk-6NJQITNH.js → chunk-IWT4SF4R.js} +6 -3
- package/dist/{chunk-R23Z6K6I.js → chunk-JDAY6FIL.js} +19 -19
- package/dist/chunk-JEQ3XTHC.js +42 -0
- package/dist/{chunk-FSP7CMNU.js → chunk-JGRC33J2.js} +50 -4
- package/dist/{chunk-TVH4ONAM.js → chunk-JKKCYP3C.js} +10 -10
- package/dist/{chunk-HJWWJ6IL.js → chunk-JSC3U7TI.js} +16 -4
- package/dist/{chunk-C537JADH.js → chunk-KK4JZPBQ.js} +19 -141
- package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
- package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
- package/dist/{chunk-6DWBAZ5U.js → chunk-L47TF46W.js} +5 -7
- package/dist/{chunk-HUAS7ITX.js → chunk-LDJG7DW3.js} +91 -42
- package/dist/{chunk-CDNVLKUX.js → chunk-LLDJM5XK.js} +13 -7
- package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
- package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
- package/dist/{chunk-VKFQTNDV.js → chunk-MUW2BDDH.js} +4 -4
- package/dist/{chunk-E67WX76H.js → chunk-MWUZBSAQ.js} +104 -152
- package/dist/{chunk-OJTRZGR3.js → chunk-N2Z7HLVY.js} +21 -21
- package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
- package/dist/{chunk-FYUN5KZ3.js → chunk-NIQJ66N4.js} +21 -21
- package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
- package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
- package/dist/{chunk-VEGN6WIQ.js → chunk-O5CVSAG5.js} +3 -3
- package/dist/{chunk-MOPSG2X7.js → chunk-OML5D5V5.js} +8 -8
- package/dist/{chunk-2VG7KLYV.js → chunk-PAJQJ7BS.js} +5816 -3255
- package/dist/{chunk-ZW55JB7N.js → chunk-PUVDKJ2Y.js} +2 -2
- package/dist/{chunk-BTGG6BG2.js → chunk-QWGDJJYJ.js} +158 -19
- package/dist/chunk-R6Q67RJH.js +134 -0
- package/dist/{chunk-ZJLUDYFY.js → chunk-RRNP2ANY.js} +6 -6
- package/dist/{chunk-PVAMAVBB.js → chunk-RSJ25QSL.js} +102 -2
- package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
- package/dist/chunk-SKHCAU7K.js +385 -0
- package/dist/chunk-SZAA6XDG.js +30 -0
- package/dist/{chunk-J4HBWF6Y.js → chunk-TM6LQDI3.js} +131 -28
- package/dist/chunk-UOIZ7DA4.js +41 -0
- package/dist/{chunk-MA3H6DM5.js → chunk-UPZU6GE4.js} +25 -3
- package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
- package/dist/{chunk-N5UK64DP.js → chunk-V2ANDPVT.js} +4 -4
- package/dist/{chunk-AK5XEFVZ.js → chunk-VA5FNYMT.js} +26 -13
- package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
- package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
- package/dist/{chunk-QKIFBZKT.js → chunk-VW6DOEDG.js} +497 -81
- package/dist/{chunk-SCYB3HA4.js → chunk-W6RRQCPQ.js} +63 -19
- package/dist/{chunk-2NM363SV.js → chunk-WBKFA554.js} +10 -10
- package/dist/{chunk-R32CLGZ6.js → chunk-WCXUNS7U.js} +82 -21
- package/dist/{chunk-GPPB3JBE.js → chunk-WRBAGUNF.js} +3 -3
- package/dist/{chunk-IXJT6DCX.js → chunk-XIVNBFZS.js} +85 -30
- package/dist/{chunk-UEDMSP56.js → chunk-XPWWI35G.js} +417 -201
- package/dist/chunk-XRZT5WY5.js +47 -0
- package/dist/{chunk-3QSOM6PA.js → chunk-Y3CBHOR6.js} +2 -2
- package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
- package/dist/{chunk-AKB4GYDL.js → chunk-YQWYVTMC.js} +5 -5
- package/dist/{chunk-6I5ILFOF.js → chunk-ZA4VCIGV.js} +3 -3
- package/dist/{chunk-7OBGU7UB.js → chunk-ZDN3Y73Y.js} +12 -18
- package/dist/{chunk-3I5NY75V.js → chunk-ZWPRK62N.js} +8 -5
- package/dist/cli/index.js +41 -39
- package/dist/{clio-IT3G3VQH.js → clio-CMMK4KRR.js} +9 -9
- package/dist/{code-nav-RK6S7F6E.js → code-nav-MDZNQS33.js} +89 -21
- package/dist/{components-UBWCQSRW.js → components-UCUQ4QXW.js} +4 -4
- package/dist/{config-3QZRWZJF.js → config-SVM5P5YI.js} +131 -84
- package/dist/{configure-FL7Y3KJF.js → configure-LE3IK2TJ.js} +28 -26
- package/dist/{context-5HE7ODYK.js → context-2OHRKS42.js} +69 -64
- package/dist/{context-KYQFRVDC.js → context-E3VC7RX5.js} +15 -11
- package/dist/{context-XNHL75JV.js → context-VNCR7KAG.js} +93 -65
- package/dist/{context-clear-N545L53A.js → context-clear-BW4O37TG.js} +64 -60
- package/dist/context-map-COB37XXN.js +505 -0
- package/dist/{context-working-set-QHKXSV2F.js → context-working-set-VDS25HXZ.js} +19 -18
- package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-5AHT53RF.js} +93 -82
- package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
- package/dist/{doctor-ZGPEGHIP.js → doctor-WNNVO6FY.js} +48 -47
- package/dist/{eval-GXLL44RD.js → eval-7G7SGAYO.js} +287 -115
- package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-Y6QRFOH5.js} +4 -4
- package/dist/{evidence-HWLBRH3Q.js → evidence-VD6736FQ.js} +67 -64
- package/dist/{evolve-FTZBMNVW.js → evolve-AL3NGVRL.js} +65 -62
- package/dist/{extensions-VHRBEID7.js → extensions-MOVJ32NM.js} +9 -7
- package/dist/{fleet-CKZHJWZJ.js → fleet-QZHUMAGI.js} +114 -111
- package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-BAYT5FJZ.js} +10 -10
- package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-IREVMRU4.js} +7 -6
- package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-YCTT3HTI.js} +22 -19
- package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-QVJTDAVB.js} +58 -55
- package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-25QAFPK4.js} +4 -4
- package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-5O57AAJ7.js} +26 -23
- package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-CPH2W2T6.js} +59 -56
- package/dist/{fleet-view-WAMJYNDT.js → fleet-view-SWBR3VGQ.js} +58 -55
- package/dist/{init-5XQRBOFV.js → init-J477LKZH.js} +82 -79
- package/dist/{interop-34TVO25M.js → interop-3FCM6XLG.js} +11 -11
- package/dist/{library-3QY6KF57.js → library-QUQEIUG6.js} +30 -27
- package/dist/{memory-L4UTIIIW.js → memory-SGGSEP65.js} +67 -64
- package/dist/{models-ZVX3QOWE.js → models-HEKUAXXK.js} +53 -46
- package/dist/{monitor-CEKVSYTS.js → monitor-HKU57TYQ.js} +63 -60
- package/dist/{orchestrator-77BAP6BC.js → orchestrator-VDFAEFAI.js} +1831 -1057
- package/dist/{panes-7STHOAUJ.js → panes-DN2SSFOH.js} +5 -5
- package/dist/{panes-SHAUIRXY.js → panes-TALGNPZT.js} +29 -14
- package/dist/{paths-L7LGY6RN.js → paths-NBMFAIEZ.js} +5 -5
- package/dist/reset-EAJFFJVB.js +344 -0
- package/dist/{resources-74GKTLSF.js → resources-OVKSEFVE.js} +29 -20
- package/dist/{run-HBAUJNNZ.js → run-7DP7ZF2J.js} +120 -115
- package/dist/{share-G3APVLVP.js → share-WML67FT3.js} +32 -27
- package/dist/{skills-35HHUKCR.js → skills-SG662R2K.js} +41 -31
- package/dist/{skills-eval-QN4HSHDC.js → skills-eval-VVZEUU46.js} +78 -77
- package/dist/{skills-inventory-J357J34F.js → skills-inventory-I2E23GET.js} +23 -20
- package/dist/{slash-commands-JZZCQA32.js → slash-commands-S7MBJDQK.js} +40 -36
- package/dist/{steer-XAVHJM22.js → steer-2LQOMCPB.js} +3 -3
- package/dist/{support-U7QOWY26.js → support-CC2UJBJ6.js} +6 -6
- package/dist/{targets-DSM6CY3M.js → targets-4QC3HIEW.js} +54 -54
- package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-TUHIJ6Y2.js} +5 -5
- package/dist/{tools-MKNWVPBH.js → tools-TFGJICCU.js} +10 -10
- package/dist/{trace-ECQ7TIYZ.js → trace-FXMXUZUF.js} +55 -7
- package/dist/uninstall-5PEVOE5B.js +408 -0
- package/dist/upgrade-M4WXY6KN.js +303 -0
- package/dist/{usage-X52N3IDJ.js → usage-N7ZNVLEM.js} +151 -104
- package/dist/{verifiers-EJTVVSMA.js → verifiers-DJTP4XX6.js} +15 -15
- package/dist/{verify-YJL6XET2.js → verify-RWE4PPEK.js} +9 -9
- package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
- package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-C7IQOXSP.js} +89 -86
- package/dist/{with-panes-OBOBFIIR.js → with-panes-4GCGSL7J.js} +53 -257
- package/dist/worker/entry.js +90 -74
- 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} +27 -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} +29 -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} +61 -27
- package/docs/{observability.md → architecture/observability.md} +38 -14
- package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
- package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +57 -20
- package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +99 -25
- package/docs/{safety-model.md → architecture/safety-model.md} +35 -20
- 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} +65 -35
- package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +66 -61
- package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -297
- package/docs/guide/configuration-reference.md +1163 -0
- package/docs/{environment-variables.md → guide/environment-variables.md} +33 -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} +81 -17
- package/docs/guide/panes-and-files.md +290 -0
- package/docs/{proactive-memory.md → guide/proactive-memory.md} +131 -107
- package/docs/{resource-library.md → guide/resource-library.md} +13 -4
- package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +25 -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/process/development-pipeline.md +152 -0
- 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} +108 -53
- 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/evals/behavioral-model.yaml +3 -2
- package/package.json +10 -8
- package/skills/README.md +52 -41
- package/skills/coding/ast-grep/SKILL.md +102 -31
- package/skills/coding/ast-grep/evals.md +26 -0
- package/skills/coding/coding-standards/SKILL.md +41 -6
- package/skills/coding/coding-standards/evals.md +23 -0
- package/skills/coding/prototype/SKILL.md +88 -29
- package/skills/coding/prototype/evals.md +19 -0
- package/skills/coding/tdd/SKILL.md +81 -54
- package/skills/coding/tdd/evals.md +20 -0
- package/skills/context/context-handoff/SKILL.md +44 -3
- package/skills/context/context-handoff/evals.md +44 -0
- package/skills/context/context-prime/SKILL.md +46 -16
- package/skills/context/context-prime/evals.md +45 -0
- package/skills/git/branch-closeout/SKILL.md +132 -0
- package/skills/git/branch-closeout/evals.md +133 -0
- package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
- package/skills/git/file-ticket/SKILL.md +78 -64
- package/skills/git/file-ticket/assets/issue-template.md +22 -0
- package/skills/git/file-ticket/evals.md +31 -26
- package/skills/git/file-ticket/references/issue-discovery.md +49 -0
- package/skills/git/fix-issue/SKILL.md +88 -65
- package/skills/git/fix-issue/evals.md +35 -31
- package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
- package/skills/git/resolve-merge-conflicts/SKILL.md +101 -52
- package/skills/git/resolve-merge-conflicts/evals.md +52 -25
- package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
- package/skills/git/ship/SKILL.md +103 -67
- package/skills/git/ship/assets/pr-template.md +21 -0
- package/skills/git/ship/evals.md +44 -28
- package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
- package/skills/git/worktree-create/SKILL.md +80 -50
- package/skills/git/worktree-create/evals.md +40 -33
- package/skills/git/worktree-create/references/worktree-setup.md +62 -66
- package/skills/git/worktree-merge/SKILL.md +112 -65
- package/skills/git/worktree-merge/evals.md +42 -34
- package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
- 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/archify/SKILL.md +196 -0
- package/skills/planning/archify/evals.md +65 -0
- package/skills/planning/architecture/SKILL.md +62 -13
- package/skills/planning/architecture/evals.md +65 -0
- package/skills/planning/backlog/SKILL.md +131 -15
- package/skills/planning/backlog/evals.md +142 -0
- package/skills/planning/prd/SKILL.md +47 -7
- package/skills/planning/prd/evals.md +54 -0
- package/skills/planning/product-intent/SKILL.md +58 -3
- package/skills/planning/product-intent/evals.md +70 -0
- package/skills/planning/tech-spec/SKILL.md +54 -3
- package/skills/planning/tech-spec/evals.md +73 -0
- package/skills/registry.yaml +70 -62
- package/skills/remote.yaml +13 -0
- package/skills/research/arxiv-literature/SKILL.md +77 -19
- package/skills/research/arxiv-literature/evals.md +50 -0
- package/skills/research/experiment-protocol/SKILL.md +21 -2
- package/skills/research/experiment-protocol/evals.md +23 -0
- package/skills/research/scientific-debugging/SKILL.md +24 -2
- package/skills/research/scientific-debugging/evals.md +18 -0
- package/skills/research/scientific-modernization/SKILL.md +27 -2
- package/skills/research/scientific-modernization/evals.md +27 -0
- package/skills/skill-marketplace.json +97 -62
- package/skills/workflow/cut-it/SKILL.md +66 -6
- package/skills/workflow/cut-it/evals.md +101 -0
- package/skills/workflow/design-council/SKILL.md +118 -28
- package/skills/workflow/design-council/evals.md +161 -0
- package/skills/workflow/grill-me/SKILL.md +87 -11
- package/skills/workflow/grill-me/evals.md +153 -0
- package/skills/workflow/workflow-distiller/SKILL.md +77 -18
- package/skills/workflow/workflow-distiller/evals.md +118 -0
- 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-interop.ts +105 -13
- package/src/cli/configure-oauth.ts +57 -0
- package/src/cli/configure-onboarding.ts +980 -0
- package/src/cli/configure-target.ts +594 -0
- package/src/cli/configure.ts +1082 -532
- package/src/cli/context-map.ts +114 -0
- package/src/cli/context.ts +4 -0
- 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 +3 -1
- package/src/cli/internal-dispatch.ts +3 -4
- package/src/cli/lifecycle-presenter.ts +436 -0
- package/src/cli/models.ts +10 -2
- package/src/cli/modes/print.ts +5 -1
- package/src/cli/panes.ts +19 -5
- package/src/cli/reset.ts +228 -106
- package/src/cli/run.ts +9 -4
- package/src/cli/select.ts +664 -0
- package/src/cli/share.ts +5 -1
- package/src/cli/skills-eval.ts +3 -3
- package/src/cli/skills.ts +9 -2
- package/src/cli/targets.ts +5 -6
- package/src/cli/trace.ts +55 -4
- package/src/cli/uninstall.ts +233 -165
- package/src/cli/upgrade.ts +204 -149
- package/src/cli/usage.ts +86 -27
- package/src/cli/validate-model.ts +3 -3
- 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 +61 -1
- package/src/core/defaults.ts +7 -4
- package/src/core/dispatch-outcome.ts +16 -0
- package/src/core/external-diagnostic.ts +44 -0
- package/src/core/gateway-routing.ts +157 -0
- package/src/core/guardrails.ts +10 -49
- package/src/core/prompt-hint.ts +9 -0
- package/src/core/safe-exec.ts +17 -2
- package/src/core/skill-activation.ts +89 -2
- 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/builtins/world-knowledge.md +31 -0
- package/src/domains/agents/catalog.ts +13 -15
- package/src/domains/agents/contract.ts +2 -0
- package/src/domains/agents/extension.ts +23 -1
- package/src/domains/agents/result-contract.ts +70 -0
- package/src/domains/config/keybindings.ts +8 -0
- package/src/domains/context/extension.ts +0 -3
- package/src/domains/context/wiki/map-seed.ts +589 -0
- package/src/domains/context/wiki/plan.ts +2 -2
- package/src/domains/context/working-set/path-index.ts +1 -0
- package/src/domains/dispatch/admission.ts +29 -0
- package/src/domains/dispatch/agent-candidates.ts +10 -0
- package/src/domains/dispatch/budget-envelope.ts +86 -1
- package/src/domains/dispatch/capability-match.ts +11 -0
- package/src/domains/dispatch/capacity-lease.ts +17 -0
- package/src/domains/dispatch/contract.ts +11 -1
- package/src/domains/dispatch/extension.ts +237 -49
- 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 +58 -3
- package/src/domains/dispatch/worker-model-metadata.ts +38 -0
- package/src/domains/eval/artifacts/store.ts +5 -0
- package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
- package/src/domains/eval/metrics/token-stream.ts +201 -31
- package/src/domains/eval/metrics/tracked.ts +40 -4
- package/src/domains/eval/runners/clio-run.ts +5 -2
- package/src/domains/eval/schema/suite.ts +28 -0
- package/src/domains/eval/schema/verdict.ts +2 -2
- package/src/domains/eval/store.ts +8 -1
- package/src/domains/eval/suites/resolve.ts +13 -1
- package/src/domains/eval/suites/run.ts +24 -3
- 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/interop/registry.ts +6 -2
- package/src/domains/interop/types.ts +4 -0
- package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
- package/src/domains/lifecycle/migrations/index.ts +6 -0
- package/src/domains/lifecycle/naming-resources.ts +19 -4
- package/src/domains/lifecycle/naming-yazi.ts +10 -5
- package/src/domains/memory/task-memory-policy.ts +70 -26
- package/src/domains/memory/task-memory-telemetry.ts +1 -0
- 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 -5
- package/src/domains/middleware/marketplace-offer.ts +3 -35
- package/src/domains/middleware/memory-intervention.ts +127 -32
- package/src/domains/middleware/memory-step-endpoint.ts +3 -2
- package/src/domains/middleware/registrations.ts +326 -0
- package/src/domains/middleware/runtime.ts +28 -0
- package/src/domains/middleware/skills-reminder.ts +31 -2
- 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/compaction-usage.ts +118 -0
- package/src/domains/observability/contract.ts +10 -11
- package/src/domains/observability/cost.ts +1 -1
- package/src/domains/observability/extension.ts +17 -4
- package/src/domains/observability/out-of-turn-usage.ts +52 -21
- 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/contract.ts +4 -1
- package/src/domains/providers/extension.ts +40 -9
- package/src/domains/providers/index.ts +1 -1
- package/src/domains/providers/model-capabilities.ts +9 -0
- package/src/domains/providers/model-discovery.ts +2 -0
- package/src/domains/providers/model-runtime-capabilities.ts +99 -25
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +699 -114
- package/src/domains/providers/runtime-resolution.ts +31 -0
- package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
- package/src/domains/providers/runtimes/common/local-synth.ts +2 -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/runtimes/protocol/litellm.ts +119 -29
- package/src/domains/providers/support.ts +11 -5
- package/src/domains/providers/target-model-cache.ts +25 -2
- package/src/domains/providers/types/capability-flags.ts +2 -0
- package/src/domains/providers/types/cost-provenance.ts +19 -0
- package/src/domains/providers/types/local-model-quirks.ts +85 -37
- package/src/domains/providers/types/runtime-descriptor.ts +20 -1
- package/src/domains/providers/types/target-descriptor.ts +19 -0
- package/src/domains/resources/index.ts +3 -0
- package/src/domains/resources/skills/install.ts +72 -7
- package/src/domains/resources/skills/loader.ts +23 -19
- package/src/domains/resources/skills/marketplace.ts +63 -11
- package/src/domains/safety/autonomy.ts +15 -0
- package/src/domains/safety/call-target.ts +1 -1
- package/src/domains/safety/index.ts +1 -0
- package/src/domains/safety/loop-detector.ts +7 -4
- package/src/domains/safety/path-policy.ts +1 -1
- package/src/domains/safety/policy-engine.ts +34 -11
- package/src/domains/safety/protected-artifacts.ts +191 -88
- package/src/domains/safety/run-effects.ts +2 -22
- package/src/domains/safety/skill-authority.ts +55 -0
- package/src/domains/session/compaction/compact.ts +72 -22
- package/src/domains/session/entries.ts +6 -0
- package/src/domains/session/task-board.ts +10 -9
- package/src/domains/session/usage.ts +3 -3
- package/src/domains/share/archive.ts +164 -7
- package/src/engine/acp/server.ts +62 -9
- package/src/engine/agent.ts +13 -3
- package/src/engine/ai.ts +26 -8
- package/src/engine/antigravity/subprocess-runtime.ts +386 -120
- package/src/engine/api-registry.ts +3 -0
- 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 +145 -39
- package/src/engine/apis/output-budget.ts +8 -18
- package/src/engine/apis/residency.ts +8 -27
- package/src/engine/external-subprocess.ts +114 -6
- 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/background-model-metadata.ts +18 -0
- package/src/entry/compaction-prompt.ts +57 -0
- package/src/entry/extension-hook-sources.ts +28 -0
- package/src/entry/extension-reload.ts +309 -0
- package/src/entry/orchestrator.ts +464 -251
- package/src/entry/task-memory-lifecycle.ts +35 -0
- package/src/interactive/application-controller.ts +2 -1
- package/src/interactive/bus-notices.ts +8 -1
- package/src/interactive/chat-loop-messages.ts +16 -17
- package/src/interactive/chat-loop.ts +75 -3
- package/src/interactive/chat-panel.ts +36 -13
- package/src/interactive/chat-renderer.ts +72 -7
- package/src/interactive/cost-overlay.ts +26 -2
- 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 +4 -1
- 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/renderers/worker-entry.ts +32 -0
- package/src/interactive/slash-commands.ts +153 -20
- package/src/interactive/stream-pacing-policy.ts +0 -23
- package/src/interactive/theme/labels.ts +19 -13
- package/src/interactive/turn-context.ts +39 -20
- package/src/interactive/turn-recovery.ts +8 -0
- package/src/interactive/turn-runtime.ts +27 -11
- package/src/interactive/turn-state.ts +7 -0
- package/src/interactive/worker-receipts.ts +1 -0
- package/src/interactive/worker-stream.ts +6 -1
- 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 +59 -21
- package/src/tools/core-bootstrap.ts +28 -6
- package/src/tools/credential-present.ts +1 -2
- package/src/tools/dispatch-arguments.ts +6 -1
- package/src/tools/dispatch-event-text.ts +10 -0
- package/src/tools/dispatch-plan.ts +49 -4
- package/src/tools/dispatch-run-events.ts +1 -1
- package/src/tools/dispatch-runner.ts +12 -0
- 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 +41 -12
- 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/src/tools/worker-evidence.ts +3 -1
- package/src/worker/spec-contract.ts +4 -0
- package/dist/builtins-UJLMOVOV.js +0 -17
- 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/dist/chunk-Y45G3AXC.js +0 -1558
- package/dist/reset-EOLM7GVE.js +0 -230
- package/dist/uninstall-N34PCTGJ.js +0 -331
- package/dist/upgrade-H7TOM7YL.js +0 -323
- package/docs/artifact-versions.md +0 -67
- package/docs/development-pipeline.md +0 -121
- package/docs/documentation-coverage.md +0 -46
- package/docs/documentation-guide.md +0 -167
- package/docs/time-conventions.md +0 -101
|
@@ -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-IWT4SF4R.js";
|
|
6
6
|
import {
|
|
7
7
|
addResponseModelIdObservationCount,
|
|
8
8
|
emptyResponseModelIdObservationCounts,
|
|
9
9
|
responseModelIdObservationFromRecord
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-JKKCYP3C.js";
|
|
11
11
|
import {
|
|
12
12
|
uncachedPrefillTokens
|
|
13
13
|
} from "./chunk-3DPEIQKN.js";
|
|
@@ -17,16 +17,16 @@ import {
|
|
|
17
17
|
import {
|
|
18
18
|
ceilChars,
|
|
19
19
|
extractReasoningTokens
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-NZMNUPZZ.js";
|
|
21
21
|
import {
|
|
22
22
|
settingsPath
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-GHS5EBTQ.js";
|
|
24
24
|
import {
|
|
25
25
|
expandConfigPath
|
|
26
26
|
} from "./chunk-336NSSKI.js";
|
|
27
27
|
import {
|
|
28
28
|
isEngineContextOverflow
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-YPC6ZR5L.js";
|
|
30
30
|
import {
|
|
31
31
|
init_esm_shims
|
|
32
32
|
} from "./chunk-3R73A4XB.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 [
|
|
@@ -393,7 +426,16 @@ function assistantSessionPayload(message, failure) {
|
|
|
393
426
|
if (Array.isArray(raw.content)) payload.content = raw.content;
|
|
394
427
|
if (thinking.length > 0) payload.thinking = thinking;
|
|
395
428
|
payload.responseModelIdObservation = responseModelIdObservationFromRecord(raw, "not-observed");
|
|
396
|
-
for (const key of [
|
|
429
|
+
for (const key of [
|
|
430
|
+
"usage",
|
|
431
|
+
"api",
|
|
432
|
+
"provider",
|
|
433
|
+
"model",
|
|
434
|
+
"responseModel",
|
|
435
|
+
"responseId",
|
|
436
|
+
"gatewayRouting",
|
|
437
|
+
"diagnostics"
|
|
438
|
+
]) {
|
|
397
439
|
if (raw[key] !== void 0) payload[key] = raw[key];
|
|
398
440
|
}
|
|
399
441
|
if (failure && !isSelfExplainingAbort({ stopReason: raw.stopReason, errorMessage: raw.errorMessage, text })) {
|
|
@@ -1117,6 +1159,8 @@ async function expandInlineFileReferencesAsync(input, options = {}) {
|
|
|
1117
1159
|
|
|
1118
1160
|
export {
|
|
1119
1161
|
toContextOverflowError,
|
|
1162
|
+
attachedToolSchemasFromState,
|
|
1163
|
+
mainPromptCacheIdentity,
|
|
1120
1164
|
notConfiguredNotice,
|
|
1121
1165
|
extractText,
|
|
1122
1166
|
extractUserText,
|
|
@@ -1150,4 +1194,4 @@ export {
|
|
|
1150
1194
|
readFileArgsAsync,
|
|
1151
1195
|
expandInlineFileReferencesAsync
|
|
1152
1196
|
};
|
|
1153
|
-
//# sourceMappingURL=chunk-
|
|
1197
|
+
//# sourceMappingURL=chunk-W6RRQCPQ.js.map
|
|
@@ -2,25 +2,25 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
readStrictLayeredSettings,
|
|
4
4
|
updateLayeredSettings
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4WR7VSYB.js";
|
|
6
|
+
import {
|
|
7
|
+
assertAgentIdNamespace
|
|
8
|
+
} from "./chunk-DR52UMZW.js";
|
|
6
9
|
import {
|
|
7
10
|
resolveShutdownHookBudgetMs,
|
|
8
11
|
runWithBudget,
|
|
9
12
|
writeShutdownNotice
|
|
10
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-4O6MANBS.js";
|
|
11
14
|
import {
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
formatSettingsFailure,
|
|
16
|
+
settingsPath
|
|
17
|
+
} from "./chunk-GHS5EBTQ.js";
|
|
14
18
|
import {
|
|
15
19
|
getSharedBus
|
|
16
20
|
} from "./chunk-PMZVFWSR.js";
|
|
17
21
|
import {
|
|
18
22
|
BusChannels
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import {
|
|
21
|
-
formatSettingsFailure,
|
|
22
|
-
settingsPath
|
|
23
|
-
} from "./chunk-EIMVLWB3.js";
|
|
23
|
+
} from "./chunk-F4EKGO4N.js";
|
|
24
24
|
import {
|
|
25
25
|
setGitCommitAttributionEnabled
|
|
26
26
|
} from "./chunk-JIEGK6UF.js";
|
|
@@ -377,4 +377,4 @@ export {
|
|
|
377
377
|
ConfigDomainModule,
|
|
378
378
|
createConfigDomainModule
|
|
379
379
|
};
|
|
380
|
-
//# sourceMappingURL=chunk-
|
|
380
|
+
//# sourceMappingURL=chunk-WBKFA554.js.map
|
|
@@ -4,26 +4,26 @@ import {
|
|
|
4
4
|
loadProjectRules,
|
|
5
5
|
renderOperatorProfile,
|
|
6
6
|
selectActiveRules
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-KK4JZPBQ.js";
|
|
8
8
|
import {
|
|
9
9
|
loadFragments
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-Y3CBHOR6.js";
|
|
11
11
|
import {
|
|
12
12
|
compile,
|
|
13
13
|
compileWorker
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-AF4YM7Z4.js";
|
|
15
15
|
import {
|
|
16
16
|
sha256
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-IWT4SF4R.js";
|
|
18
18
|
import {
|
|
19
19
|
classifyProjectPreload
|
|
20
20
|
} from "./chunk-JVCV3ICN.js";
|
|
21
21
|
import {
|
|
22
22
|
isUserVisibleAgent
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-B4OAX3SI.js";
|
|
24
24
|
import {
|
|
25
25
|
BusChannels
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-F4EKGO4N.js";
|
|
27
27
|
import {
|
|
28
28
|
init_esm_shims
|
|
29
29
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -33,11 +33,10 @@ init_esm_shims();
|
|
|
33
33
|
var DEFAULT_DISPATCH_AGENT_ID = "coder";
|
|
34
34
|
var OPERATOR_ONLY_SHADOW_AGENT_IDS = /* @__PURE__ */ new Set(["oracle"]);
|
|
35
35
|
var FLEET_PROMPT_PURPOSE_MAX_CHARS = 64;
|
|
36
|
-
var FLEET_DELEGATION_RULE = "Delegate when the task has two or more independent file-scoped subtasks, or any broad exploration. You keep synthesis and validation; a single narrow change stays with you.";
|
|
37
36
|
var FLEET_HANDOFF_RULE = "A file you assigned to a worker is not yours to edit while its dispatch is pending or after it succeeds; if you already changed it, say so in your report.";
|
|
38
37
|
var FLEET_REFUSAL_DISCLOSURE = "When admission refuses a dispatch, report the refusal and the reason it gave; never substitute another agent without saying why.";
|
|
39
38
|
var FLEET_ANTI_CHURN_RULE = "A dispatch with the same target files and the same goal as one you already ran is a repeat however differently you word it: read that run's receipt, or run the check yourself, instead of dispatching again.";
|
|
40
|
-
var FLEET_SPECIALIST_ROUTING = "Pick by job:
|
|
39
|
+
var FLEET_SPECIALIST_ROUTING = "Pick by job: supplied URLs, standards, or papers -> researcher; current ecosystems or an open-world second opinion -> world-knowledge; repository recon -> scout; receipts -> provenance; tests -> tester; gates -> verifier.";
|
|
41
40
|
function fleetPromptPurpose(description) {
|
|
42
41
|
const trimmed = description.trim().replace(/\s+/gu, " ");
|
|
43
42
|
if (trimmed.length === 0) return "";
|
|
@@ -62,11 +61,14 @@ function renderFleetPromptSection(input) {
|
|
|
62
61
|
if (publicSpecs.length === 0 && shadowSpecs.length === 0) return "";
|
|
63
62
|
const lines = [
|
|
64
63
|
"# Fleet",
|
|
65
|
-
FLEET_DELEGATION_RULE,
|
|
66
64
|
FLEET_HANDOFF_RULE,
|
|
67
65
|
FLEET_ANTI_CHURN_RULE,
|
|
68
66
|
FLEET_REFUSAL_DISCLOSURE,
|
|
69
|
-
`
|
|
67
|
+
// `agent:"auto"` baselines by task shape and can still land on a worker
|
|
68
|
+
// whose capability class is wrong for the job, so a pinned id is the
|
|
69
|
+
// reliable path; said here, next to the ids, rather than in the Tool
|
|
70
|
+
// Contract.
|
|
71
|
+
`Workers you reach with \`dispatch\` by \`agent\` id (default ${DEFAULT_DISPATCH_AGENT_ID}); agent:"auto" is a fallback, not a router. Capability class is what a worker may do: a read-only worker cannot edit.`,
|
|
70
72
|
FLEET_SPECIALIST_ROUTING
|
|
71
73
|
];
|
|
72
74
|
if (publicSpecs.length > 0) {
|
|
@@ -191,6 +193,9 @@ var CLIO_REPO_AWARENESS_ID = "context.clio-repo-awareness";
|
|
|
191
193
|
var WORKSPACE_ROOT_ID = "context.workspace-root";
|
|
192
194
|
function createPromptsBundle(context, options = {}) {
|
|
193
195
|
let table = null;
|
|
196
|
+
let fragmentEpoch = 0;
|
|
197
|
+
let sessionSourceEpoch = 0;
|
|
198
|
+
const sessionSourceSnapshots = /* @__PURE__ */ new Map();
|
|
194
199
|
const suppressContextFiles = options.noContextFiles === true;
|
|
195
200
|
function config() {
|
|
196
201
|
return context.getContract("config");
|
|
@@ -208,6 +213,7 @@ function createPromptsBundle(context, options = {}) {
|
|
|
208
213
|
function reload() {
|
|
209
214
|
try {
|
|
210
215
|
table = loadFragments();
|
|
216
|
+
fragmentEpoch += 1;
|
|
211
217
|
} catch (err) {
|
|
212
218
|
const msg = err instanceof Error ? err.message : String(err);
|
|
213
219
|
process.stderr.write(`[clio-coder:prompts] reload failed: ${msg}
|
|
@@ -220,7 +226,39 @@ function createPromptsBundle(context, options = {}) {
|
|
|
220
226
|
}
|
|
221
227
|
return false;
|
|
222
228
|
}
|
|
229
|
+
function sessionSourceKey(sessionId, cwd) {
|
|
230
|
+
return `${sessionId}\0${cwd}`;
|
|
231
|
+
}
|
|
232
|
+
function captureSessionSourceSnapshot(cwd) {
|
|
233
|
+
let projectContext = null;
|
|
234
|
+
if (!suppressContextFiles) {
|
|
235
|
+
projectContext = contextDomain()?.renderPromptContext(cwd) ?? null;
|
|
236
|
+
for (const warning of projectContext?.warnings ?? []) process.stderr.write(`${warning}
|
|
237
|
+
`);
|
|
238
|
+
}
|
|
239
|
+
return {
|
|
240
|
+
projectContext,
|
|
241
|
+
customization: captureCustomizationSources(cwd),
|
|
242
|
+
workspaceRoot: workspaceRootFragment(cwd),
|
|
243
|
+
clioRepoAwareness: clioRepoAwarenessFragments(cwd)
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
function sessionSourceSnapshot(sessionId, cwd) {
|
|
247
|
+
const key = sessionSourceKey(sessionId, cwd);
|
|
248
|
+
const existing = sessionSourceSnapshots.get(key);
|
|
249
|
+
if (existing) return existing;
|
|
250
|
+
const captured = captureSessionSourceSnapshot(cwd);
|
|
251
|
+
sessionSourceSnapshots.set(key, captured);
|
|
252
|
+
return captured;
|
|
253
|
+
}
|
|
254
|
+
function invalidateSessionSources() {
|
|
255
|
+
sessionSourceSnapshots.clear();
|
|
256
|
+
sessionSourceEpoch += 1;
|
|
257
|
+
}
|
|
223
258
|
const contract = {
|
|
259
|
+
inputEpoch() {
|
|
260
|
+
return `${fragmentEpoch}:${agentsDomain()?.revision() ?? 0}:${sessionSourceEpoch}`;
|
|
261
|
+
},
|
|
224
262
|
async compileSessionPrompt(input) {
|
|
225
263
|
if (!table) throw new Error("prompts domain not started");
|
|
226
264
|
if (table.byId.size === 0) {
|
|
@@ -230,11 +268,12 @@ function createPromptsBundle(context, options = {}) {
|
|
|
230
268
|
const settings = configContract?.get();
|
|
231
269
|
const safety = input.autonomy ?? settings?.safety.autonomy ?? "auto-edit";
|
|
232
270
|
const cwd = input.cwd ?? process.cwd();
|
|
271
|
+
const sources = sessionSourceSnapshot(input.sessionId, cwd);
|
|
233
272
|
let contextFiles = "";
|
|
234
273
|
let projectPreload = null;
|
|
235
274
|
let projectHandbookFiles = [];
|
|
236
275
|
if (!suppressContextFiles) {
|
|
237
|
-
const projectContext =
|
|
276
|
+
const projectContext = sources.projectContext;
|
|
238
277
|
contextFiles = projectContext ? selectProjectContext(projectContext, input.sessionInputs.providerSupportsTools ?? null) : "";
|
|
239
278
|
if (projectContext) {
|
|
240
279
|
projectPreload = classifyProjectPreload({
|
|
@@ -243,8 +282,6 @@ function createPromptsBundle(context, options = {}) {
|
|
|
243
282
|
});
|
|
244
283
|
projectHandbookFiles = projectContext.handbookFiles;
|
|
245
284
|
}
|
|
246
|
-
for (const warning of projectContext?.warnings ?? []) process.stderr.write(`${warning}
|
|
247
|
-
`);
|
|
248
285
|
}
|
|
249
286
|
const roster = fleetRoster();
|
|
250
287
|
const sessionInputs = {
|
|
@@ -258,9 +295,9 @@ function createPromptsBundle(context, options = {}) {
|
|
|
258
295
|
safety: `safety.${safety}`,
|
|
259
296
|
sessionInputs,
|
|
260
297
|
additionalFragments: [
|
|
261
|
-
...
|
|
262
|
-
...
|
|
263
|
-
...
|
|
298
|
+
...sources.workspaceRoot,
|
|
299
|
+
...sources.clioRepoAwareness,
|
|
300
|
+
...renderCustomizationFragments(sources.customization, cwd, input.workingContextPaths ?? []).fragments
|
|
264
301
|
]
|
|
265
302
|
});
|
|
266
303
|
return { ...compiled, projectPreload, projectHandbookFiles };
|
|
@@ -286,10 +323,12 @@ function createPromptsBundle(context, options = {}) {
|
|
|
286
323
|
reload
|
|
287
324
|
};
|
|
288
325
|
let unsubscribeHotReload = null;
|
|
326
|
+
let unsubscribeExtensionsReload = null;
|
|
289
327
|
const extension = {
|
|
290
328
|
async start() {
|
|
291
329
|
try {
|
|
292
330
|
table = loadFragments();
|
|
331
|
+
fragmentEpoch += 1;
|
|
293
332
|
} catch (err) {
|
|
294
333
|
const msg = err instanceof Error ? err.message : String(err);
|
|
295
334
|
process.stderr.write(`[clio-coder:prompts] initial load failed: ${msg}
|
|
@@ -297,26 +336,49 @@ function createPromptsBundle(context, options = {}) {
|
|
|
297
336
|
table = { byId: /* @__PURE__ */ new Map(), rootDir: "" };
|
|
298
337
|
}
|
|
299
338
|
unsubscribeHotReload = context.bus.on(BusChannels.ConfigHotReload, (payload) => {
|
|
339
|
+
invalidateSessionSources();
|
|
300
340
|
const diff = payload?.diff;
|
|
301
341
|
const paths = diff?.hotReload ?? [];
|
|
302
342
|
if (!diffTouchesFragments(paths)) return;
|
|
303
343
|
reload();
|
|
304
344
|
});
|
|
345
|
+
unsubscribeExtensionsReload = context.bus.on(BusChannels.ExtensionsReloaded, (payload) => {
|
|
346
|
+
if (payload?.changed !== true) return;
|
|
347
|
+
reload();
|
|
348
|
+
});
|
|
305
349
|
},
|
|
306
350
|
async stop() {
|
|
307
351
|
unsubscribeHotReload?.();
|
|
308
352
|
unsubscribeHotReload = null;
|
|
353
|
+
unsubscribeExtensionsReload?.();
|
|
354
|
+
unsubscribeExtensionsReload = null;
|
|
355
|
+
sessionSourceSnapshots.clear();
|
|
309
356
|
}
|
|
310
357
|
};
|
|
311
358
|
return { extension, contract };
|
|
312
359
|
}
|
|
313
360
|
function customizationFragments(cwd, workingContextPaths) {
|
|
361
|
+
return renderCustomizationFragments(captureCustomizationSources(cwd), cwd, workingContextPaths);
|
|
362
|
+
}
|
|
363
|
+
function captureCustomizationSources(cwd) {
|
|
364
|
+
let rules = [];
|
|
365
|
+
let operatorProfile = null;
|
|
366
|
+
try {
|
|
367
|
+
rules = loadProjectRules(cwd).rules;
|
|
368
|
+
} catch {
|
|
369
|
+
}
|
|
370
|
+
try {
|
|
371
|
+
operatorProfile = loadOperatorProfile(cwd);
|
|
372
|
+
} catch {
|
|
373
|
+
}
|
|
374
|
+
return { rules, operatorProfile };
|
|
375
|
+
}
|
|
376
|
+
function renderCustomizationFragments(sources, cwd, workingContextPaths) {
|
|
314
377
|
const fragments = [];
|
|
315
378
|
let activeRuleIds = [];
|
|
316
379
|
let operatorProfileApplied = false;
|
|
317
380
|
try {
|
|
318
|
-
const
|
|
319
|
-
const active = selectActiveRules(loaded.rules, normalizeWorkingContextPaths(cwd, workingContextPaths));
|
|
381
|
+
const active = selectActiveRules(sources.rules, normalizeWorkingContextPaths(cwd, workingContextPaths));
|
|
320
382
|
if (active.length > 0) {
|
|
321
383
|
const body = ["# Project rules", ...active.map((rule) => rule.body)].join("\n\n");
|
|
322
384
|
fragments.push({
|
|
@@ -331,8 +393,7 @@ function customizationFragments(cwd, workingContextPaths) {
|
|
|
331
393
|
} catch {
|
|
332
394
|
}
|
|
333
395
|
try {
|
|
334
|
-
const
|
|
335
|
-
const rendered = renderOperatorProfile(profile.profile);
|
|
396
|
+
const rendered = renderOperatorProfile(sources.operatorProfile?.profile ?? {});
|
|
336
397
|
if (rendered.text.length > 0) {
|
|
337
398
|
fragments.push({
|
|
338
399
|
id: "context.operator-profile",
|
|
@@ -659,4 +720,4 @@ export {
|
|
|
659
720
|
createPromptsDomainModule,
|
|
660
721
|
SchedulingDomainModule
|
|
661
722
|
};
|
|
662
|
-
//# sourceMappingURL=chunk-
|
|
723
|
+
//# sourceMappingURL=chunk-WCXUNS7U.js.map
|
|
@@ -2,10 +2,10 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
parseJsonObjectPayload,
|
|
4
4
|
parseVerifierResult
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-B4OAX3SI.js";
|
|
6
6
|
import {
|
|
7
7
|
atomicWrite
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-HAXOFFRH.js";
|
|
9
9
|
import {
|
|
10
10
|
clioStateDir
|
|
11
11
|
} from "./chunk-BYP5D4HI.js";
|
|
@@ -685,4 +685,4 @@ export {
|
|
|
685
685
|
readGateDecisionArtifacts,
|
|
686
686
|
readGateDecisionArtifactsForRunIds
|
|
687
687
|
};
|
|
688
|
-
//# sourceMappingURL=chunk-
|
|
688
|
+
//# sourceMappingURL=chunk-WRBAGUNF.js.map
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
loadProjectVerifierCatalog
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7DICMOS6.js";
|
|
5
5
|
import {
|
|
6
6
|
pathBoundaryCovers,
|
|
7
7
|
resolvePathBoundary
|
|
8
8
|
} from "./chunk-HHV2GANA.js";
|
|
9
9
|
import {
|
|
10
10
|
classify
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-B4OAX3SI.js";
|
|
12
12
|
import {
|
|
13
|
-
|
|
13
|
+
extractCommandCdTargets,
|
|
14
14
|
extractCommandDeleteTargets,
|
|
15
15
|
extractCommandWriteTargets,
|
|
16
16
|
inlineShellScript,
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
invokesClioSkillMutation,
|
|
18
|
+
scanShellLike
|
|
19
|
+
} from "./chunk-I7ZPNEJM.js";
|
|
20
|
+
import {
|
|
21
|
+
artifactDefaultPath
|
|
22
|
+
} from "./chunk-GYV6VZOC.js";
|
|
19
23
|
import {
|
|
20
24
|
canonicalizeExistingPath
|
|
21
25
|
} from "./chunk-ECH6PKUQ.js";
|
|
@@ -24,7 +28,7 @@ import {
|
|
|
24
28
|
} from "./chunk-K6BSR66V.js";
|
|
25
29
|
import {
|
|
26
30
|
foreignAgentDirs
|
|
27
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-KXDSS5WJ.js";
|
|
28
32
|
import {
|
|
29
33
|
resolvePackageRoot
|
|
30
34
|
} from "./chunk-IWHMRKLL.js";
|
|
@@ -48,7 +52,7 @@ function isSameOrDescendant(candidatePath, policyPath) {
|
|
|
48
52
|
const candidate = path.resolve(candidatePath);
|
|
49
53
|
const policy = path.resolve(policyPath);
|
|
50
54
|
const relative = path.relative(policy, candidate);
|
|
51
|
-
return relative === "" || !relative.startsWith(
|
|
55
|
+
return relative === "" || relative !== ".." && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative);
|
|
52
56
|
}
|
|
53
57
|
function expandTilde(rawPath) {
|
|
54
58
|
if (rawPath === "~") return homedir();
|
|
@@ -145,7 +149,7 @@ function normalizeSeparators(value) {
|
|
|
145
149
|
// src/domains/safety/policy-engine.ts
|
|
146
150
|
init_esm_shims();
|
|
147
151
|
import { createHash as createHash2 } from "node:crypto";
|
|
148
|
-
import
|
|
152
|
+
import path4 from "node:path";
|
|
149
153
|
|
|
150
154
|
// src/domains/safety/default-path-policy.ts
|
|
151
155
|
init_esm_shims();
|
|
@@ -730,6 +734,42 @@ function getCachedDefaultRulePacks() {
|
|
|
730
734
|
return cachedPacks;
|
|
731
735
|
}
|
|
732
736
|
|
|
737
|
+
// src/domains/safety/skill-authority.ts
|
|
738
|
+
init_esm_shims();
|
|
739
|
+
import { homedir as homedir2 } from "node:os";
|
|
740
|
+
import path3 from "node:path";
|
|
741
|
+
function activeClioSkillRoots(cwd) {
|
|
742
|
+
return [path3.join(cwd, ".clio-coder", "skills"), path3.join(clioConfigDir(), "skills")];
|
|
743
|
+
}
|
|
744
|
+
function skillMutationReason(roots, targets, cwd, command) {
|
|
745
|
+
const workingDirs = [cwd];
|
|
746
|
+
if (command !== null) {
|
|
747
|
+
for (const destination of extractCommandCdTargets(command)) {
|
|
748
|
+
workingDirs.push(path3.resolve(workingDirs.at(-1) ?? cwd, expandHome(destination)));
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
for (const target of targets) {
|
|
752
|
+
if (target.operation === "read") continue;
|
|
753
|
+
for (const directory of workingDirs) {
|
|
754
|
+
const lexical = path3.resolve(directory, expandHome(target.path));
|
|
755
|
+
const resolved = canonicalizeExistingPath(lexical);
|
|
756
|
+
for (const root of roots) {
|
|
757
|
+
for (const boundary of [root, canonicalizeExistingPath(root)]) {
|
|
758
|
+
for (const candidate of [lexical, resolved]) {
|
|
759
|
+
if (isSameOrDescendant(candidate, boundary) || target.operation === "delete" && isSameOrDescendant(boundary, candidate)) {
|
|
760
|
+
return `active skill tree ${root} is operator-owned; draft changes outside active skill roots and ask the operator to install or update them`;
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
return null;
|
|
768
|
+
}
|
|
769
|
+
function expandHome(value) {
|
|
770
|
+
return value === "~" ? homedir2() : value.startsWith("~/") ? path3.join(homedir2(), value.slice(2)) : value;
|
|
771
|
+
}
|
|
772
|
+
|
|
733
773
|
// src/domains/safety/policy-engine.ts
|
|
734
774
|
var BUILTIN_ALLOWLIST = [
|
|
735
775
|
{ id: "builtin:pwd", re: /^pwd$/ },
|
|
@@ -771,17 +811,18 @@ function evaluateWriteRoots(roots, writeRootCwd, call) {
|
|
|
771
811
|
if (roots.length === 0) return null;
|
|
772
812
|
const target = writeRootTargetPath(call);
|
|
773
813
|
if (target === null) return null;
|
|
774
|
-
const resolved =
|
|
814
|
+
const resolved = path4.resolve(writeRootCwd, target);
|
|
775
815
|
if (pathBoundaryCovers(roots, resolved)) return null;
|
|
776
816
|
return `write target '${target}' resolves to '${resolved}', which is outside the permitted write roots for this run: ${roots.join(", ")}`;
|
|
777
817
|
}
|
|
778
818
|
function createSafetyPolicyEngine(options = {}) {
|
|
779
|
-
const cwd = canonicalizeExistingPath(
|
|
780
|
-
const writeRootCwd =
|
|
819
|
+
const cwd = canonicalizeExistingPath(path4.resolve(options.cwd ?? process.cwd()));
|
|
820
|
+
const writeRootCwd = path4.resolve(options.cwd ?? process.cwd());
|
|
781
821
|
const writeRoots = (options.writeRoots ?? []).map((root) => resolvePathBoundary(writeRootCwd, root));
|
|
822
|
+
const skillRoots = activeClioSkillRoots(cwd);
|
|
782
823
|
const packs = options.rulePacks ?? getCachedDefaultRulePacks();
|
|
783
824
|
const projectPolicy = options.projectPolicy ?? loadProjectSafetyPolicy(cwd);
|
|
784
|
-
const projectPolicyRoot = projectPolicy.path === null ? cwd :
|
|
825
|
+
const projectPolicyRoot = projectPolicy.path === null ? cwd : path4.dirname(path4.dirname(canonicalizeExistingPath(projectPolicy.path)));
|
|
785
826
|
const pathPolicyInput = projectPolicy.disableDefaultPathPolicy ? projectPolicy.pathPolicy : mergePathPolicyInputs(DEFAULT_DAMAGE_CONTROL_PATH_POLICY, projectPolicy.pathPolicy);
|
|
786
827
|
const expandedDefaults = projectPolicy.disableDefaultPathPolicy ? pathPolicyInput : mergePathPolicyInputs(pathPolicyInput, { zeroAccessPaths: clioCredentialStorePaths() });
|
|
787
828
|
const pathPolicy = compilePathPolicy(expandedDefaults, projectPolicyRoot);
|
|
@@ -843,6 +884,21 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
843
884
|
if (projectPolicy.path !== null) blockInput.projectPolicyPath = projectPolicy.path;
|
|
844
885
|
return blockDecision(base, blockInput);
|
|
845
886
|
}
|
|
887
|
+
const mutationCommand = call.tool === ToolNames.Bash ? command : catalogCommand;
|
|
888
|
+
const skillReason = mutationCommand !== null && invokesClioSkillMutation(mutationCommand) ? "skill installation and updates require the operator CLI or an explicit operator install choice; draft outside active skill roots" : skillMutationReason(
|
|
889
|
+
skillRoots,
|
|
890
|
+
pathPolicyTargets(catalogCommand === null ? call : { tool: ToolNames.Bash, args: { command: catalogCommand } }),
|
|
891
|
+
callCwd,
|
|
892
|
+
mutationCommand
|
|
893
|
+
);
|
|
894
|
+
if (skillReason !== null) {
|
|
895
|
+
return blockDecision(base, {
|
|
896
|
+
ruleId: "skill-authority",
|
|
897
|
+
reasonCode: "skill-authority",
|
|
898
|
+
reasons: [skillReason],
|
|
899
|
+
policySource: "builtin-classifier"
|
|
900
|
+
});
|
|
901
|
+
}
|
|
846
902
|
const pathBlock = evaluateProjectPathPolicy(pathPolicy, call, callCwd);
|
|
847
903
|
if (pathBlock !== null) {
|
|
848
904
|
const blockInput = {
|
|
@@ -940,7 +996,7 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
940
996
|
}
|
|
941
997
|
function clioCredentialStorePaths() {
|
|
942
998
|
try {
|
|
943
|
-
return [
|
|
999
|
+
return [path4.join(clioConfigDir(), "credentials.yaml")];
|
|
944
1000
|
} catch {
|
|
945
1001
|
return [];
|
|
946
1002
|
}
|
|
@@ -962,10 +1018,10 @@ function stripQuotes(token) {
|
|
|
962
1018
|
}
|
|
963
1019
|
function bashPathTokenCandidates(command) {
|
|
964
1020
|
const candidates = [];
|
|
965
|
-
for (const
|
|
1021
|
+
for (const scanned of scanShellLike(command)) {
|
|
1022
|
+
if (scanned.operator) continue;
|
|
1023
|
+
const token = scanned.value;
|
|
966
1024
|
if (token.length === 0) continue;
|
|
967
|
-
if (token === ";" || token === "&&" || token === "||" || token === "|" || token === ">" || token === ">>") continue;
|
|
968
|
-
if (token === "<" || token === "<<") continue;
|
|
969
1025
|
if (/\s/.test(token)) continue;
|
|
970
1026
|
if (token.startsWith("-") && !token.includes("/") && !token.includes("=")) continue;
|
|
971
1027
|
candidates.push(token);
|
|
@@ -1205,29 +1261,28 @@ function effectiveClassification(classification, match) {
|
|
|
1205
1261
|
}
|
|
1206
1262
|
function matchingProjectCommand(policy, command, cwd) {
|
|
1207
1263
|
if (!policy.valid || policy.path === null) return null;
|
|
1208
|
-
const policyRoot =
|
|
1264
|
+
const policyRoot = path4.dirname(path4.dirname(policy.path));
|
|
1209
1265
|
for (const entry of policy.commands) {
|
|
1210
1266
|
if (entry.command !== command) continue;
|
|
1211
1267
|
if (entry.shellOperators === "deny" && hasShellOperators(command)) continue;
|
|
1212
|
-
const allowedCwd = entry.cwd !== void 0 ?
|
|
1268
|
+
const allowedCwd = entry.cwd !== void 0 ? path4.resolve(policyRoot, entry.cwd) : policyRoot;
|
|
1213
1269
|
if (!isUnderOrSame(cwd, allowedCwd)) continue;
|
|
1214
1270
|
return entry;
|
|
1215
1271
|
}
|
|
1216
1272
|
return null;
|
|
1217
1273
|
}
|
|
1218
|
-
var CHAIN_BREAKING_TOKENS = /* @__PURE__ */ new Set([";", "|", "||", ">", ">>", "<", "<<"]);
|
|
1219
1274
|
var CHAIN_MAX_SEGMENTS = 6;
|
|
1220
1275
|
function recognizeCommandChain(command, callCwd, workspaceRoot, policy) {
|
|
1221
1276
|
const segments = [];
|
|
1222
1277
|
let current = [];
|
|
1223
|
-
for (const token of
|
|
1224
|
-
if (token === "&&") {
|
|
1278
|
+
for (const token of scanShellLike(command)) {
|
|
1279
|
+
if (token.operator && token.value === "&&") {
|
|
1225
1280
|
segments.push(current);
|
|
1226
1281
|
current = [];
|
|
1227
1282
|
continue;
|
|
1228
1283
|
}
|
|
1229
|
-
if (
|
|
1230
|
-
current.push(token);
|
|
1284
|
+
if (token.operator) return null;
|
|
1285
|
+
current.push(token.value);
|
|
1231
1286
|
}
|
|
1232
1287
|
segments.push(current);
|
|
1233
1288
|
if (segments.length < 2 || segments.length > CHAIN_MAX_SEGMENTS) return null;
|
|
@@ -1238,7 +1293,7 @@ function recognizeCommandChain(command, callCwd, workspaceRoot, policy) {
|
|
|
1238
1293
|
if (segment[0] === "cd") {
|
|
1239
1294
|
if (segment.length !== 2) return null;
|
|
1240
1295
|
const target = segment[1] ?? "";
|
|
1241
|
-
if (target.startsWith("~") || !isUnderOrSame(
|
|
1296
|
+
if (target.startsWith("~") || !isUnderOrSame(path4.resolve(callCwd, target), workspaceRoot)) return null;
|
|
1242
1297
|
ruleIds.push("builtin:cd-workspace");
|
|
1243
1298
|
continue;
|
|
1244
1299
|
}
|
|
@@ -1265,11 +1320,11 @@ function hasShellOperators(command) {
|
|
|
1265
1320
|
return hasSequencingOperators(command) || hasCommandSubstitution(command);
|
|
1266
1321
|
}
|
|
1267
1322
|
function isUnderOrSame(child, parent) {
|
|
1268
|
-
const rel =
|
|
1269
|
-
canonicalizeExistingPath(
|
|
1270
|
-
canonicalizeExistingPath(
|
|
1323
|
+
const rel = path4.relative(
|
|
1324
|
+
canonicalizeExistingPath(path4.resolve(parent)),
|
|
1325
|
+
canonicalizeExistingPath(path4.resolve(child))
|
|
1271
1326
|
);
|
|
1272
|
-
return rel === "" || !rel.startsWith("..") && !
|
|
1327
|
+
return rel === "" || !rel.startsWith("..") && !path4.isAbsolute(rel);
|
|
1273
1328
|
}
|
|
1274
1329
|
function commandArg(args) {
|
|
1275
1330
|
return typeof args?.command === "string" ? args.command : null;
|
|
@@ -1280,7 +1335,7 @@ function pathArg(args) {
|
|
|
1280
1335
|
return typeof candidate === "string" && candidate.length > 0 ? candidate : null;
|
|
1281
1336
|
}
|
|
1282
1337
|
function cwdArg(args, fallback) {
|
|
1283
|
-
const resolved = typeof args?.cwd === "string" && args.cwd.length > 0 ?
|
|
1338
|
+
const resolved = typeof args?.cwd === "string" && args.cwd.length > 0 ? path4.resolve(fallback, args.cwd) : fallback;
|
|
1284
1339
|
return canonicalizeExistingPath(resolved);
|
|
1285
1340
|
}
|
|
1286
1341
|
var CONTENT_BEARING_TOOLS = /* @__PURE__ */ new Set([ToolNames.Write, ToolNames.Edit, ToolNames.Artifact]);
|
|
@@ -1340,4 +1395,4 @@ export {
|
|
|
1340
1395
|
WRITE_ROOT_REFUSED_TOOLS,
|
|
1341
1396
|
createSafetyPolicyEngine
|
|
1342
1397
|
};
|
|
1343
|
-
//# sourceMappingURL=chunk-
|
|
1398
|
+
//# sourceMappingURL=chunk-XIVNBFZS.js.map
|