@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
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
gitCommitAttributionEnabled,
|
|
4
|
+
reportCommitAttributionDiagnostic,
|
|
5
|
+
withManagedGitCommitAttributionEnvironment
|
|
6
|
+
} from "./chunk-JIEGK6UF.js";
|
|
7
|
+
import {
|
|
8
|
+
clampTimerDelayMs
|
|
9
|
+
} from "./chunk-EBY63B7G.js";
|
|
10
|
+
import {
|
|
11
|
+
AI_AGENT_NAME
|
|
12
|
+
} from "./chunk-6EJMN2Y3.js";
|
|
13
|
+
import {
|
|
14
|
+
init_esm_shims
|
|
15
|
+
} from "./chunk-3R73A4XB.js";
|
|
16
|
+
|
|
17
|
+
// src/core/bash-exec.ts
|
|
18
|
+
init_esm_shims();
|
|
19
|
+
import { spawn } from "node:child_process";
|
|
20
|
+
import { StringDecoder } from "node:string_decoder";
|
|
21
|
+
var BASH_HARD_CAP_BYTES = 16 * 1024 * 1024;
|
|
22
|
+
var CLIO_CONTROL_ENV_KEYS = ["CLIO_CODER_INTERACTIVE", "CLIO_CODER_RESUME_SESSION_ID"];
|
|
23
|
+
var BASH_UPDATE_THROTTLE_MS = 100;
|
|
24
|
+
function buildToolEnv() {
|
|
25
|
+
const env = { ...process.env };
|
|
26
|
+
env.AI_AGENT = AI_AGENT_NAME;
|
|
27
|
+
for (const key of CLIO_CONTROL_ENV_KEYS) {
|
|
28
|
+
Reflect.deleteProperty(env, key);
|
|
29
|
+
}
|
|
30
|
+
return env;
|
|
31
|
+
}
|
|
32
|
+
var LOGIN_ENV_CAPTURE_TIMEOUT_MS = 1e4;
|
|
33
|
+
var loginEnvCapture = null;
|
|
34
|
+
function parseNullDelimitedEnv(raw) {
|
|
35
|
+
const env = {};
|
|
36
|
+
for (const entry of raw.split("\0")) {
|
|
37
|
+
if (entry.length === 0) continue;
|
|
38
|
+
const eq = entry.indexOf("=");
|
|
39
|
+
if (eq <= 0) continue;
|
|
40
|
+
env[entry.slice(0, eq)] = entry.slice(eq + 1);
|
|
41
|
+
}
|
|
42
|
+
return typeof env.PATH === "string" && env.PATH.length > 0 ? env : null;
|
|
43
|
+
}
|
|
44
|
+
function captureLoginEnv() {
|
|
45
|
+
return new Promise((resolve) => {
|
|
46
|
+
let stdout = "";
|
|
47
|
+
let settled = false;
|
|
48
|
+
const finish = (value) => {
|
|
49
|
+
if (settled) return;
|
|
50
|
+
settled = true;
|
|
51
|
+
clearTimeout(timer);
|
|
52
|
+
resolve(value);
|
|
53
|
+
};
|
|
54
|
+
const child = spawn("/bin/bash", ["-lc", "env -0"], {
|
|
55
|
+
env: buildToolEnv(),
|
|
56
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
57
|
+
});
|
|
58
|
+
const timer = setTimeout(() => {
|
|
59
|
+
child.kill("SIGKILL");
|
|
60
|
+
finish(null);
|
|
61
|
+
}, LOGIN_ENV_CAPTURE_TIMEOUT_MS);
|
|
62
|
+
child.stdout?.on("data", (chunk) => {
|
|
63
|
+
stdout += chunk.toString("utf8");
|
|
64
|
+
});
|
|
65
|
+
child.on("error", () => finish(null));
|
|
66
|
+
child.on("close", (code) => finish(code === 0 ? parseNullDelimitedEnv(stdout) : null));
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
async function bashSpawnPlan() {
|
|
70
|
+
loginEnvCapture ??= captureLoginEnv();
|
|
71
|
+
const captured = await loginEnvCapture;
|
|
72
|
+
if (captured === null) return { mode: "-lc", env: buildToolEnv() };
|
|
73
|
+
const env = { ...process.env, ...captured };
|
|
74
|
+
env.AI_AGENT = AI_AGENT_NAME;
|
|
75
|
+
for (const key of CLIO_CONTROL_ENV_KEYS) {
|
|
76
|
+
Reflect.deleteProperty(env, key);
|
|
77
|
+
}
|
|
78
|
+
return { mode: "-c", env };
|
|
79
|
+
}
|
|
80
|
+
function combineBashOutput(result) {
|
|
81
|
+
const { stdout, stderr } = result;
|
|
82
|
+
return stderr.length > 0 ? `${stdout}${stdout.endsWith("\n") || stdout.length === 0 ? "" : "\n"}${stderr}` : stdout;
|
|
83
|
+
}
|
|
84
|
+
async function runBashCommand(command, options = {}) {
|
|
85
|
+
const plan = await bashSpawnPlan();
|
|
86
|
+
const attribution = withManagedGitCommitAttributionEnvironment(plan.env, {
|
|
87
|
+
cwd: options.cwd ?? process.cwd(),
|
|
88
|
+
enabled: gitCommitAttributionEnabled(process.env)
|
|
89
|
+
});
|
|
90
|
+
reportCommitAttributionDiagnostic(attribution.diagnostic);
|
|
91
|
+
return new Promise((resolve) => {
|
|
92
|
+
const timeout = clampTimerDelayMs(options.timeoutMs ?? 3e5);
|
|
93
|
+
let aborted = false;
|
|
94
|
+
let timedOut = false;
|
|
95
|
+
let settled = false;
|
|
96
|
+
let timeoutId = null;
|
|
97
|
+
let killGraceTimer = null;
|
|
98
|
+
let killSent = false;
|
|
99
|
+
let stdout = "";
|
|
100
|
+
let stderr = "";
|
|
101
|
+
const stdoutDecoder = new StringDecoder("utf8");
|
|
102
|
+
const stderrDecoder = new StringDecoder("utf8");
|
|
103
|
+
let decodersFinished = false;
|
|
104
|
+
let outputBytes = 0;
|
|
105
|
+
let outputCapped = false;
|
|
106
|
+
let updateTimer = null;
|
|
107
|
+
let updateDirty = false;
|
|
108
|
+
let lastUpdateAt = 0;
|
|
109
|
+
const child = spawn("/bin/bash", [plan.mode, command], {
|
|
110
|
+
...options.cwd === void 0 ? {} : { cwd: options.cwd },
|
|
111
|
+
env: attribution.env,
|
|
112
|
+
detached: process.platform !== "win32",
|
|
113
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
114
|
+
});
|
|
115
|
+
const finishDecoders = () => {
|
|
116
|
+
if (decodersFinished) return;
|
|
117
|
+
decodersFinished = true;
|
|
118
|
+
if (outputCapped) return;
|
|
119
|
+
stdout += stdoutDecoder.end();
|
|
120
|
+
stderr += stderrDecoder.end();
|
|
121
|
+
};
|
|
122
|
+
const emitUpdate = () => {
|
|
123
|
+
if (options.onUpdate === void 0 || !updateDirty) return;
|
|
124
|
+
updateDirty = false;
|
|
125
|
+
lastUpdateAt = Date.now();
|
|
126
|
+
try {
|
|
127
|
+
options.onUpdate({ stdout, stderr, outputBytes: Math.min(outputBytes, BASH_HARD_CAP_BYTES) });
|
|
128
|
+
} catch {
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
const clearUpdateTimer = () => {
|
|
132
|
+
if (updateTimer === null) return;
|
|
133
|
+
clearTimeout(updateTimer);
|
|
134
|
+
updateTimer = null;
|
|
135
|
+
};
|
|
136
|
+
const scheduleUpdate = () => {
|
|
137
|
+
if (options.onUpdate === void 0) return;
|
|
138
|
+
updateDirty = true;
|
|
139
|
+
const delay = BASH_UPDATE_THROTTLE_MS - (Date.now() - lastUpdateAt);
|
|
140
|
+
if (delay <= 0) {
|
|
141
|
+
clearUpdateTimer();
|
|
142
|
+
emitUpdate();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
updateTimer ??= setTimeout(() => {
|
|
146
|
+
updateTimer = null;
|
|
147
|
+
emitUpdate();
|
|
148
|
+
}, delay);
|
|
149
|
+
};
|
|
150
|
+
const finishUpdates = () => {
|
|
151
|
+
clearUpdateTimer();
|
|
152
|
+
emitUpdate();
|
|
153
|
+
};
|
|
154
|
+
if (options.onUpdate !== void 0) {
|
|
155
|
+
updateDirty = true;
|
|
156
|
+
emitUpdate();
|
|
157
|
+
}
|
|
158
|
+
const clearKillGraceTimer = () => {
|
|
159
|
+
if (!killGraceTimer) return;
|
|
160
|
+
clearTimeout(killGraceTimer);
|
|
161
|
+
killGraceTimer = null;
|
|
162
|
+
};
|
|
163
|
+
const sendSignal = (signalName) => {
|
|
164
|
+
const pid = child.pid;
|
|
165
|
+
if (pid && process.platform !== "win32") {
|
|
166
|
+
try {
|
|
167
|
+
process.kill(-pid, signalName);
|
|
168
|
+
return;
|
|
169
|
+
} catch {
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
child.kill(signalName);
|
|
173
|
+
};
|
|
174
|
+
const killChild = () => {
|
|
175
|
+
if (killSent) return;
|
|
176
|
+
killSent = true;
|
|
177
|
+
sendSignal("SIGTERM");
|
|
178
|
+
killGraceTimer = setTimeout(() => {
|
|
179
|
+
sendSignal("SIGKILL");
|
|
180
|
+
}, 5e3);
|
|
181
|
+
};
|
|
182
|
+
function onAbort() {
|
|
183
|
+
aborted = true;
|
|
184
|
+
killChild();
|
|
185
|
+
}
|
|
186
|
+
if (timeout > 0) {
|
|
187
|
+
timeoutId = setTimeout(() => {
|
|
188
|
+
timedOut = true;
|
|
189
|
+
killChild();
|
|
190
|
+
}, timeout);
|
|
191
|
+
}
|
|
192
|
+
if (options.signal?.aborted) {
|
|
193
|
+
onAbort();
|
|
194
|
+
} else {
|
|
195
|
+
options.signal?.addEventListener("abort", onAbort, { once: true });
|
|
196
|
+
}
|
|
197
|
+
const appendChunk = (target, chunk) => {
|
|
198
|
+
if (outputCapped) return;
|
|
199
|
+
const remaining = BASH_HARD_CAP_BYTES - outputBytes;
|
|
200
|
+
const accepted = chunk.byteLength <= remaining ? chunk : chunk.subarray(0, Math.max(0, remaining));
|
|
201
|
+
outputBytes += accepted.byteLength;
|
|
202
|
+
if (accepted.byteLength > 0) {
|
|
203
|
+
const decoded = target === "stdout" ? stdoutDecoder.write(accepted) : stderrDecoder.write(accepted);
|
|
204
|
+
if (target === "stdout") stdout += decoded;
|
|
205
|
+
else stderr += decoded;
|
|
206
|
+
}
|
|
207
|
+
if (accepted.byteLength < chunk.byteLength) {
|
|
208
|
+
outputCapped = true;
|
|
209
|
+
scheduleUpdate();
|
|
210
|
+
killChild();
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
scheduleUpdate();
|
|
214
|
+
};
|
|
215
|
+
child.stdout?.on("data", (chunk) => appendChunk("stdout", chunk));
|
|
216
|
+
child.stderr?.on("data", (chunk) => appendChunk("stderr", chunk));
|
|
217
|
+
child.on("error", (error) => {
|
|
218
|
+
if (settled) return;
|
|
219
|
+
settled = true;
|
|
220
|
+
if (timeoutId) clearTimeout(timeoutId);
|
|
221
|
+
clearKillGraceTimer();
|
|
222
|
+
finishDecoders();
|
|
223
|
+
finishUpdates();
|
|
224
|
+
options.signal?.removeEventListener("abort", onAbort);
|
|
225
|
+
resolve({
|
|
226
|
+
error,
|
|
227
|
+
stdout,
|
|
228
|
+
stderr,
|
|
229
|
+
exitCode: null,
|
|
230
|
+
signal: null,
|
|
231
|
+
aborted,
|
|
232
|
+
timedOut,
|
|
233
|
+
outputCapped,
|
|
234
|
+
outputBytes
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
child.on("close", (code, signalName) => {
|
|
238
|
+
if (settled) return;
|
|
239
|
+
settled = true;
|
|
240
|
+
if (timeoutId) clearTimeout(timeoutId);
|
|
241
|
+
clearKillGraceTimer();
|
|
242
|
+
finishDecoders();
|
|
243
|
+
finishUpdates();
|
|
244
|
+
options.signal?.removeEventListener("abort", onAbort);
|
|
245
|
+
const error = code === 0 && signalName === null ? null : {
|
|
246
|
+
name: "Error",
|
|
247
|
+
message: signalName ? `command terminated by ${signalName}` : `command exited with code ${code ?? "?"}`,
|
|
248
|
+
code: code ?? void 0,
|
|
249
|
+
signal: signalName ?? void 0
|
|
250
|
+
};
|
|
251
|
+
resolve({
|
|
252
|
+
error,
|
|
253
|
+
stdout,
|
|
254
|
+
stderr,
|
|
255
|
+
exitCode: code,
|
|
256
|
+
signal: signalName,
|
|
257
|
+
aborted,
|
|
258
|
+
timedOut,
|
|
259
|
+
outputCapped,
|
|
260
|
+
outputBytes
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export {
|
|
267
|
+
BASH_HARD_CAP_BYTES,
|
|
268
|
+
combineBashOutput,
|
|
269
|
+
runBashCommand
|
|
270
|
+
};
|
|
271
|
+
//# sourceMappingURL=chunk-U2WB7TZS.js.map
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
combineBashOutput
|
|
4
|
+
} from "./chunk-U2WB7TZS.js";
|
|
2
5
|
import {
|
|
3
6
|
init_esm_shims
|
|
4
7
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -566,6 +569,48 @@ function clioTheme() {
|
|
|
566
569
|
// src/interactive/clio-editor.ts
|
|
567
570
|
init_esm_shims();
|
|
568
571
|
|
|
572
|
+
// src/interactive/editor-bash.ts
|
|
573
|
+
init_esm_shims();
|
|
574
|
+
var PASTED_EDITOR_OPERATOR_GUARD = "\u2063";
|
|
575
|
+
function guardPastedEditorOperator(text) {
|
|
576
|
+
return `${PASTED_EDITOR_OPERATOR_GUARD}${text}`;
|
|
577
|
+
}
|
|
578
|
+
function unguardPastedEditorOperator(text) {
|
|
579
|
+
return text.startsWith(PASTED_EDITOR_OPERATOR_GUARD) ? text.slice(PASTED_EDITOR_OPERATOR_GUARD.length) : text;
|
|
580
|
+
}
|
|
581
|
+
function parseEditorBashCommand(text) {
|
|
582
|
+
if (text.startsWith(PASTED_EDITOR_OPERATOR_GUARD) || text.includes("\n") || text.includes("\r")) return null;
|
|
583
|
+
if (!text.startsWith("!")) return null;
|
|
584
|
+
const excludeFromContext = text.startsWith("!!");
|
|
585
|
+
const command = (excludeFromContext ? text.slice(2) : text.slice(1)).trim();
|
|
586
|
+
if (command.length === 0) return null;
|
|
587
|
+
return { command, excludeFromContext };
|
|
588
|
+
}
|
|
589
|
+
function appendStatusNotes(output, result, timeoutMs) {
|
|
590
|
+
const notes = [];
|
|
591
|
+
if (result.aborted) notes.push("command aborted");
|
|
592
|
+
if (result.timedOut) notes.push(`command timed out after ${timeoutMs}ms`);
|
|
593
|
+
if (result.outputCapped) notes.push("command output exceeded the inline output limit");
|
|
594
|
+
if (result.error && output.trim().length === 0) notes.push(result.error.message);
|
|
595
|
+
if (notes.length === 0) return output;
|
|
596
|
+
const suffix = notes.map((note) => `[${note}]`).join("\n");
|
|
597
|
+
return output.length > 0 ? `${output.replace(/\s+$/g, "")}
|
|
598
|
+
${suffix}` : suffix;
|
|
599
|
+
}
|
|
600
|
+
function bashExecutionEntryInput(args) {
|
|
601
|
+
const output = appendStatusNotes(combineBashOutput(args.result), args.result, args.timeoutMs);
|
|
602
|
+
return {
|
|
603
|
+
kind: "bashExecution",
|
|
604
|
+
parentTurnId: args.parentTurnId,
|
|
605
|
+
command: args.command,
|
|
606
|
+
output,
|
|
607
|
+
exitCode: args.result.exitCode,
|
|
608
|
+
cancelled: args.result.aborted,
|
|
609
|
+
truncated: args.result.outputCapped,
|
|
610
|
+
excludeFromContext: args.excludeFromContext
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
|
|
569
614
|
// src/interactive/overlay-frame.ts
|
|
570
615
|
init_esm_shims();
|
|
571
616
|
|
|
@@ -772,12 +817,6 @@ function formatRuntimeResolutionDiagnostic(diagnostic) {
|
|
|
772
817
|
function diagnosticSeverityToken(severity) {
|
|
773
818
|
return severity === "error" ? "error" : severity === "warning" ? "warning" : "muted";
|
|
774
819
|
}
|
|
775
|
-
function runtimeResolutionDiagnosticLine(diagnostic, width) {
|
|
776
|
-
return clioTheme().fg(diagnosticSeverityToken(diagnostic.severity), fitDiagnosticLine(diagnostic, width));
|
|
777
|
-
}
|
|
778
|
-
function fitDiagnosticLine(diagnostic, width) {
|
|
779
|
-
return padAnsi(formatRuntimeResolutionDiagnostic(diagnostic), Math.max(1, width));
|
|
780
|
-
}
|
|
781
820
|
function frameAlignForAnchor(anchor) {
|
|
782
821
|
if (anchor === void 0) return "center";
|
|
783
822
|
if (anchor === "left-center" || anchor.endsWith("-left")) return "left";
|
|
@@ -1012,12 +1051,45 @@ function findBottomRail(lines, width) {
|
|
|
1012
1051
|
}
|
|
1013
1052
|
return -1;
|
|
1014
1053
|
}
|
|
1054
|
+
function cursorEndsDirectoryPath(editor) {
|
|
1055
|
+
const cursor = editor.getCursor();
|
|
1056
|
+
const line = editor.getLines()[cursor.line] ?? "";
|
|
1057
|
+
return line.slice(0, cursor.col).endsWith("/");
|
|
1058
|
+
}
|
|
1059
|
+
function remapPastedBangOffsets(before, after, offsets, markInsertedAsPasted) {
|
|
1060
|
+
let prefix = 0;
|
|
1061
|
+
while (prefix < before.length && prefix < after.length && before[prefix] === after[prefix]) prefix += 1;
|
|
1062
|
+
let beforeEnd = before.length;
|
|
1063
|
+
let afterEnd = after.length;
|
|
1064
|
+
while (beforeEnd > prefix && afterEnd > prefix && before[beforeEnd - 1] === after[afterEnd - 1]) {
|
|
1065
|
+
beforeEnd -= 1;
|
|
1066
|
+
afterEnd -= 1;
|
|
1067
|
+
}
|
|
1068
|
+
const next = /* @__PURE__ */ new Set();
|
|
1069
|
+
const shift = afterEnd - prefix - (beforeEnd - prefix);
|
|
1070
|
+
for (const offset of offsets) {
|
|
1071
|
+
if (offset < prefix) next.add(offset);
|
|
1072
|
+
else if (offset >= beforeEnd) next.add(offset + shift);
|
|
1073
|
+
}
|
|
1074
|
+
if (markInsertedAsPasted) {
|
|
1075
|
+
for (let offset = prefix; offset < afterEnd; offset += 1) {
|
|
1076
|
+
if (after[offset] === "!") next.add(offset);
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
return next;
|
|
1080
|
+
}
|
|
1081
|
+
function startsWithPastedOperator(text, pastedBangOffsets) {
|
|
1082
|
+
const first = text.search(/\S/u);
|
|
1083
|
+
return first >= 0 && text[first] === "!" && pastedBangOffsets.has(first);
|
|
1084
|
+
}
|
|
1015
1085
|
var ClioEditor = class extends Editor {
|
|
1016
1086
|
constructor(tui, chrome) {
|
|
1017
1087
|
super(tui, editorTheme(clioTheme()));
|
|
1018
1088
|
this.chrome = chrome;
|
|
1019
1089
|
}
|
|
1020
1090
|
chrome;
|
|
1091
|
+
pastedBangOffsets = /* @__PURE__ */ new Set();
|
|
1092
|
+
bracketedPasteActive = false;
|
|
1021
1093
|
render(width) {
|
|
1022
1094
|
const lines = super.render(width);
|
|
1023
1095
|
if (lines.length === 0) return lines;
|
|
@@ -1059,6 +1131,14 @@ var ClioEditor = class extends Editor {
|
|
|
1059
1131
|
}
|
|
1060
1132
|
return lines;
|
|
1061
1133
|
}
|
|
1134
|
+
/**
|
|
1135
|
+
* Preserve paste provenance for every immediate-send binding, including the
|
|
1136
|
+
* alternate paths that invoke the submit controller without an Editor Enter.
|
|
1137
|
+
*/
|
|
1138
|
+
getTextForSubmit() {
|
|
1139
|
+
const text = this.getExpandedText();
|
|
1140
|
+
return startsWithPastedOperator(this.getText(), this.pastedBangOffsets) ? guardPastedEditorOperator(text) : text;
|
|
1141
|
+
}
|
|
1062
1142
|
/**
|
|
1063
1143
|
* pi-tui's bracketed-paste handling inserts pasted text (including a
|
|
1064
1144
|
* trailing newline the paste carried) without submitting: a pasted
|
|
@@ -1068,8 +1148,34 @@ var ClioEditor = class extends Editor {
|
|
|
1068
1148
|
* through the same handler the typed-Enter path uses.
|
|
1069
1149
|
*/
|
|
1070
1150
|
handleInput(data) {
|
|
1151
|
+
const openedPaste = data.includes("\x1B[200~");
|
|
1071
1152
|
const closedPaste = data.includes("\x1B[201~");
|
|
1153
|
+
const pasteMutation = this.bracketedPasteActive || openedPaste;
|
|
1154
|
+
const textBeforeInput = this.getText();
|
|
1155
|
+
const keybindings = getKeybindings();
|
|
1156
|
+
if (startsWithPastedOperator(textBeforeInput, this.pastedBangOffsets) && keybindings.matches(data, "tui.input.submit")) {
|
|
1157
|
+
const pastedText = this.getTextForSubmit();
|
|
1158
|
+
this.pastedBangOffsets.clear();
|
|
1159
|
+
this.bracketedPasteActive = false;
|
|
1160
|
+
super.setText(pastedText);
|
|
1161
|
+
super.handleInput(data);
|
|
1162
|
+
return;
|
|
1163
|
+
}
|
|
1164
|
+
const completingDirectory = this.isShowingAutocomplete() && (keybindings.matches(data, "tui.input.tab") || keybindings.matches(data, "tui.select.confirm"));
|
|
1165
|
+
const textBeforeCompletion = completingDirectory ? this.getText() : "";
|
|
1072
1166
|
super.handleInput(data);
|
|
1167
|
+
if (completingDirectory && this.getText() !== textBeforeCompletion && cursorEndsDirectoryPath(this)) {
|
|
1168
|
+
super.handleInput(" ");
|
|
1169
|
+
}
|
|
1170
|
+
const textAfterInput = this.getText();
|
|
1171
|
+
this.pastedBangOffsets = remapPastedBangOffsets(
|
|
1172
|
+
textBeforeInput,
|
|
1173
|
+
textAfterInput,
|
|
1174
|
+
this.pastedBangOffsets,
|
|
1175
|
+
pasteMutation
|
|
1176
|
+
);
|
|
1177
|
+
if (openedPaste) this.bracketedPasteActive = true;
|
|
1178
|
+
if (closedPaste) this.bracketedPasteActive = false;
|
|
1073
1179
|
if (!closedPaste) return;
|
|
1074
1180
|
const text = this.getText();
|
|
1075
1181
|
if (!text.endsWith("\n")) return;
|
|
@@ -1078,6 +1184,11 @@ var ClioEditor = class extends Editor {
|
|
|
1078
1184
|
this.setText("");
|
|
1079
1185
|
this.onSubmit?.(command);
|
|
1080
1186
|
}
|
|
1187
|
+
setText(text) {
|
|
1188
|
+
this.pastedBangOffsets.clear();
|
|
1189
|
+
this.bracketedPasteActive = false;
|
|
1190
|
+
super.setText(text);
|
|
1191
|
+
}
|
|
1081
1192
|
};
|
|
1082
1193
|
|
|
1083
1194
|
// src/interactive/interactive-shell.ts
|
|
@@ -1850,37 +1961,37 @@ init_esm_shims();
|
|
|
1850
1961
|
// src/domains/config/keybindings.ts
|
|
1851
1962
|
init_esm_shims();
|
|
1852
1963
|
var CLIO_APP_KEYBINDINGS = {
|
|
1853
|
-
"clio.thinking.cycle": {
|
|
1964
|
+
"clio-coder.thinking.cycle": {
|
|
1854
1965
|
defaultKeys: "shift+tab",
|
|
1855
1966
|
description: "Cycle orchestrator thinking level"
|
|
1856
1967
|
},
|
|
1857
|
-
"clio.exit": {
|
|
1968
|
+
"clio-coder.exit": {
|
|
1858
1969
|
defaultKeys: "ctrl+d",
|
|
1859
1970
|
description: "Exit when the editor is empty"
|
|
1860
1971
|
},
|
|
1861
|
-
"clio.status.toggle": {
|
|
1972
|
+
"clio-coder.status.toggle": {
|
|
1862
1973
|
defaultKeys: "alt+u",
|
|
1863
1974
|
description: "Toggle the footer dashboard (compact / expanded)"
|
|
1864
1975
|
},
|
|
1865
|
-
"clio.session.tree": {
|
|
1976
|
+
"clio-coder.session.tree": {
|
|
1866
1977
|
defaultKeys: "alt+t",
|
|
1867
1978
|
description: "Open the /tree navigator"
|
|
1868
1979
|
},
|
|
1869
|
-
"clio.dispatchBoard.toggle": {
|
|
1980
|
+
"clio-coder.dispatchBoard.toggle": {
|
|
1870
1981
|
defaultKeys: "alt+w",
|
|
1871
1982
|
description: "Toggle the dispatch (workers) board overlay"
|
|
1872
1983
|
},
|
|
1873
|
-
"clio.tasks.open": {
|
|
1984
|
+
"clio-coder.tasks.open": {
|
|
1874
1985
|
// Approved application-boundary override of pi-tui editor word-back.
|
|
1875
1986
|
defaultKeys: "alt+b",
|
|
1876
1987
|
description: "Open the composite session and operator task board"
|
|
1877
1988
|
},
|
|
1878
|
-
"clio.decisions.open": {
|
|
1989
|
+
"clio-coder.decisions.open": {
|
|
1879
1990
|
// Approved application-boundary override of pi-tui editor word-delete.
|
|
1880
1991
|
defaultKeys: "alt+d",
|
|
1881
1992
|
description: "Open the settled interview decision board"
|
|
1882
1993
|
},
|
|
1883
|
-
"clio.dispatch.background": {
|
|
1994
|
+
"clio-coder.dispatch.background": {
|
|
1884
1995
|
// Ctrl+B alone is pi-tui's editor cursor-left, so the Claude Code chord
|
|
1885
1996
|
// cannot be the primary here. Alt+S ("send to background") keeps the app
|
|
1886
1997
|
// scheme and earns the Ctrl+G leader fallback, which only alt+<letter>
|
|
@@ -1888,66 +1999,66 @@ var CLIO_APP_KEYBINDINGS = {
|
|
|
1888
1999
|
defaultKeys: ["alt+s", "ctrl+alt+b"],
|
|
1889
2000
|
description: "Send the running attached dispatch to the background as a detached batch"
|
|
1890
2001
|
},
|
|
1891
|
-
"clio.model.select": {
|
|
2002
|
+
"clio-coder.model.select": {
|
|
1892
2003
|
defaultKeys: "alt+l",
|
|
1893
2004
|
description: "Open the model + targets selector"
|
|
1894
2005
|
},
|
|
1895
|
-
"clio.model.cycleForward": {
|
|
2006
|
+
"clio-coder.model.cycleForward": {
|
|
1896
2007
|
defaultKeys: "alt+j",
|
|
1897
2008
|
description: "Cycle to next scoped model"
|
|
1898
2009
|
},
|
|
1899
|
-
"clio.model.cycleBackward": {
|
|
2010
|
+
"clio-coder.model.cycleBackward": {
|
|
1900
2011
|
defaultKeys: "alt+k",
|
|
1901
2012
|
description: "Cycle to previous scoped model"
|
|
1902
2013
|
},
|
|
1903
|
-
"clio.tool.expand": {
|
|
2014
|
+
"clio-coder.tool.expand": {
|
|
1904
2015
|
defaultKeys: "alt+o",
|
|
1905
2016
|
description: "Fold or unfold the newest tool call or worker block between its one-line summary and full details, overriding the /output level for that block"
|
|
1906
2017
|
},
|
|
1907
|
-
"clio.tool.expandAll": {
|
|
2018
|
+
"clio-coder.tool.expandAll": {
|
|
1908
2019
|
// Alt+Shift+letter is commonly consumed by OS keyboard-layout switching.
|
|
1909
2020
|
// Keep it discoverable, but pair it with the legacy-safe Ctrl+Alt form.
|
|
1910
2021
|
defaultKeys: ["ctrl+alt+o", "alt+shift+o"],
|
|
1911
2022
|
description: "Fold or unfold every tool call and worker block at once, overriding the /output level; changing /output clears the overrides"
|
|
1912
2023
|
},
|
|
1913
|
-
"clio.tool.liveOutput": {
|
|
2024
|
+
"clio-coder.tool.liveOutput": {
|
|
1914
2025
|
defaultKeys: "alt+p",
|
|
1915
2026
|
description: "Toggle streaming partial tool output in expanded tool bodies"
|
|
1916
2027
|
},
|
|
1917
|
-
"clio.thinking.expand": {
|
|
2028
|
+
"clio-coder.thinking.expand": {
|
|
1918
2029
|
defaultKeys: "alt+r",
|
|
1919
2030
|
description: "Toggle the latest thinking block between hidden marker and full body (no effect while /output verbose pins it open)"
|
|
1920
2031
|
},
|
|
1921
|
-
"clio.thinking.expandAll": {
|
|
2032
|
+
"clio-coder.thinking.expandAll": {
|
|
1922
2033
|
// Ctrl+Alt+R is the fallback for terminals/OSes that do not forward
|
|
1923
2034
|
// Alt+Shift+R as a distinct key event.
|
|
1924
2035
|
defaultKeys: ["ctrl+alt+r", "alt+shift+r"],
|
|
1925
2036
|
description: "Toggle all thinking blocks between hidden markers and full bodies, overriding the /output level; changing /output clears the overrides"
|
|
1926
2037
|
},
|
|
1927
|
-
"clio.editor.external": {
|
|
2038
|
+
"clio-coder.editor.external": {
|
|
1928
2039
|
defaultKeys: "alt+g",
|
|
1929
2040
|
description: "Open the current input in an external editor"
|
|
1930
2041
|
},
|
|
1931
|
-
"clio.message.followUp": {
|
|
2042
|
+
"clio-coder.message.followUp": {
|
|
1932
2043
|
defaultKeys: "alt+enter",
|
|
1933
2044
|
description: "End of turn: queue the current input for delivery when the active run settles (Enter delivers it at the next slot, between tool batches)"
|
|
1934
2045
|
},
|
|
1935
|
-
"clio.message.interrupt": {
|
|
2046
|
+
"clio-coder.message.interrupt": {
|
|
1936
2047
|
// Alt+I keeps the app scheme and earns the Ctrl+G leader fallback. A
|
|
1937
2048
|
// Ctrl+Enter chord was rejected because legacy terminals send it as a
|
|
1938
2049
|
// plain Enter, which would turn every send into a cancel.
|
|
1939
2050
|
defaultKeys: "alt+i",
|
|
1940
2051
|
description: "Interrupt: cancel the active run and deliver the current input now (refused while an attached dispatch runs or a permission ask is parked; the input then queues for the next slot)"
|
|
1941
2052
|
},
|
|
1942
|
-
"clio.message.dequeue": {
|
|
2053
|
+
"clio-coder.message.dequeue": {
|
|
1943
2054
|
defaultKeys: "alt+up",
|
|
1944
2055
|
description: "Restore queued steering and follow-up messages to the editor"
|
|
1945
2056
|
},
|
|
1946
|
-
"clio.notifications.dismiss": {
|
|
2057
|
+
"clio-coder.notifications.dismiss": {
|
|
1947
2058
|
defaultKeys: "alt+x",
|
|
1948
2059
|
description: "Dismiss footer notifications"
|
|
1949
2060
|
},
|
|
1950
|
-
"clio.leader": {
|
|
2061
|
+
"clio-coder.leader": {
|
|
1951
2062
|
defaultKeys: "ctrl+g",
|
|
1952
2063
|
description: "Start portable leader-key fallback for Alt shortcuts"
|
|
1953
2064
|
}
|
|
@@ -2300,7 +2411,7 @@ function buildManager(inner, invalid, platformWarnings) {
|
|
|
2300
2411
|
};
|
|
2301
2412
|
}
|
|
2302
2413
|
function createKeybindingManager(settings, env = process.env) {
|
|
2303
|
-
const { valid, invalid } = validateKeybindings(settings.keybindings ?? {});
|
|
2414
|
+
const { valid, invalid } = validateKeybindings(settings.interface.keybindings ?? {});
|
|
2304
2415
|
const inner = new KeybindingsManager(CLIO_KEYBINDINGS, valid);
|
|
2305
2416
|
setKeybindings(inner);
|
|
2306
2417
|
return buildManager(inner, invalid, detectPlatformKeybindingWarnings(valid, detectTerminalKeySupport(env)));
|
|
@@ -2325,6 +2436,9 @@ export {
|
|
|
2325
2436
|
VStack,
|
|
2326
2437
|
visibleWidth,
|
|
2327
2438
|
wrapTextWithAnsi,
|
|
2439
|
+
unguardPastedEditorOperator,
|
|
2440
|
+
parseEditorBashCommand,
|
|
2441
|
+
bashExecutionEntryInput,
|
|
2328
2442
|
SGR_RESET,
|
|
2329
2443
|
SGR_DIM,
|
|
2330
2444
|
fgSequence,
|
|
@@ -2361,7 +2475,7 @@ export {
|
|
|
2361
2475
|
buildHint,
|
|
2362
2476
|
buildResponsiveHint,
|
|
2363
2477
|
formatRuntimeResolutionDiagnostic,
|
|
2364
|
-
|
|
2478
|
+
diagnosticSeverityToken,
|
|
2365
2479
|
showClioOverlayFrame,
|
|
2366
2480
|
MUTATION_PREVIEW_KEY,
|
|
2367
2481
|
permissionHintEntries,
|
|
@@ -2376,4 +2490,4 @@ export {
|
|
|
2376
2490
|
formatPlatformKeybindingNotice,
|
|
2377
2491
|
createKeybindingManager
|
|
2378
2492
|
};
|
|
2379
|
-
//# sourceMappingURL=chunk-
|
|
2493
|
+
//# sourceMappingURL=chunk-UAPGZHYC.js.map
|