@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
|
@@ -37,7 +37,7 @@ export interface OpenSideQuestionOverlayOptions {
|
|
|
37
37
|
const SIDE_QUESTION_OVERLAY_MIN_WIDTH = 44;
|
|
38
38
|
const SIDE_QUESTION_OVERLAY_MAX_WIDTH = 100;
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
function sideQuestionOverlayWidth(columns: number): number {
|
|
41
41
|
return Math.max(SIDE_QUESTION_OVERLAY_MIN_WIDTH, Math.min(SIDE_QUESTION_OVERLAY_MAX_WIDTH, columns - 4));
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -46,7 +46,7 @@ export function sideQuestionOverlayWidth(columns: number): number {
|
|
|
46
46
|
* the question in dim above a rule, then the answer, then one status line that
|
|
47
47
|
* says whether the round is still running, cancelled, or failed.
|
|
48
48
|
*/
|
|
49
|
-
|
|
49
|
+
function formatSideQuestionBody(
|
|
50
50
|
question: string,
|
|
51
51
|
phase: SideQuestionOverlayPhase,
|
|
52
52
|
width: number,
|
|
@@ -113,7 +113,7 @@ interface LibraryTabContext {
|
|
|
113
113
|
* approval preview instead, so this returns null for one and the caller routes
|
|
114
114
|
* it there.
|
|
115
115
|
*/
|
|
116
|
-
|
|
116
|
+
function libraryUseInvocation(entry: Pick<LibraryEntry, "kind" | "name">): string | null {
|
|
117
117
|
if (entry.kind === "fleet") return null;
|
|
118
118
|
if (entry.kind === "agent") return `/run ${entry.name} `;
|
|
119
119
|
if (entry.kind === "prompt") return `/${entry.name} `;
|
|
@@ -148,7 +148,7 @@ function skillBody(content: string): string {
|
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
/** @internal exported for contract tests */
|
|
151
|
-
|
|
151
|
+
function buildInstalledItems(list: ResourceList<Skill>): ListOverlayItem[] {
|
|
152
152
|
return list.items.map((skill) => {
|
|
153
153
|
const theme = clioTheme();
|
|
154
154
|
const flagged = list.diagnostics.some((diag) => diagnosticTouchesSkill(diag.path, skill));
|
|
@@ -182,7 +182,7 @@ export function buildInstalledItems(list: ResourceList<Skill>): ListOverlayItem[
|
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
/** @internal exported for contract tests */
|
|
185
|
-
|
|
185
|
+
function buildMarketplaceItems(
|
|
186
186
|
skills: ReadonlyArray<MarketplaceSkill>,
|
|
187
187
|
installed: ReadonlySet<string>,
|
|
188
188
|
): ListOverlayItem[] {
|
|
@@ -215,7 +215,7 @@ export function buildMarketplaceItems(
|
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
/** @internal exported for contract tests */
|
|
218
|
-
|
|
218
|
+
function buildDiagnosticItems(
|
|
219
219
|
list: ResourceList<Skill>,
|
|
220
220
|
marketplaceDiagnostics: ReadonlyArray<string> = [],
|
|
221
221
|
): ListOverlayItem[] {
|
|
@@ -252,7 +252,7 @@ export function buildDiagnosticItems(
|
|
|
252
252
|
}
|
|
253
253
|
|
|
254
254
|
/** @internal exported for contract tests */
|
|
255
|
-
|
|
255
|
+
function libraryRowId(entry: Pick<LibraryEntry, "kind" | "name">): string {
|
|
256
256
|
return `${LIBRARY_ROW_PREFIX}${libraryEntryRef(entry)}`;
|
|
257
257
|
}
|
|
258
258
|
|
|
@@ -267,7 +267,7 @@ export function libraryRowId(entry: Pick<LibraryEntry, "kind" | "name">): string
|
|
|
267
267
|
*
|
|
268
268
|
* @internal exported for contract tests
|
|
269
269
|
*/
|
|
270
|
-
|
|
270
|
+
function buildLibraryItems(kind: LibraryEntryKind, context: LibraryTabContext): ListOverlayItem[] {
|
|
271
271
|
const theme = clioTheme();
|
|
272
272
|
return context.discovery.entries
|
|
273
273
|
.filter((entry) => entry.kind === kind)
|
|
@@ -318,7 +318,7 @@ export function buildLibraryItems(kind: LibraryEntryKind, context: LibraryTabCon
|
|
|
318
318
|
*
|
|
319
319
|
* @internal exported for contract tests
|
|
320
320
|
*/
|
|
321
|
-
|
|
321
|
+
function buildLibraryDiagnosticItems(discovery: LibraryDiscoveryResult): ListOverlayItem[] {
|
|
322
322
|
const theme = clioTheme();
|
|
323
323
|
return discovery.diagnostics
|
|
324
324
|
.filter((message) => message !== MARKETPLACE_UNCONFIGURED)
|
|
@@ -360,7 +360,7 @@ export interface LibraryInstallRunner {
|
|
|
360
360
|
*
|
|
361
361
|
* @internal exported for contract tests
|
|
362
362
|
*/
|
|
363
|
-
|
|
363
|
+
async function runLibraryInstall(
|
|
364
364
|
entry: LibraryEntry,
|
|
365
365
|
runner: LibraryInstallRunner,
|
|
366
366
|
options: { withRequirements: boolean },
|
|
@@ -100,7 +100,7 @@ function fallbackPreview(node: TreeSnapshotNode): string {
|
|
|
100
100
|
* of turns and the discarded branch had no route back. Returns null for a
|
|
101
101
|
* session that was not forked.
|
|
102
102
|
*/
|
|
103
|
-
|
|
103
|
+
function forkParentLine(snapshot: TreeSnapshot, theme: ClioTheme): string | null {
|
|
104
104
|
const parentSessionId = snapshot.meta.parentSessionId;
|
|
105
105
|
if (typeof parentSessionId !== "string" || parentSessionId.length === 0) return null;
|
|
106
106
|
const parentTurnId = snapshot.meta.parentTurnId;
|
|
@@ -155,7 +155,7 @@ function flattenTreeSnapshot(snapshot: TreeSnapshot): TreeRow[] {
|
|
|
155
155
|
const ROW_PREVIEW_BUDGET = 55;
|
|
156
156
|
|
|
157
157
|
/** @internal */
|
|
158
|
-
|
|
158
|
+
function formatTreeRow(row: TreeRow, opts: { showTimestamps: boolean; width: number }): string {
|
|
159
159
|
const theme = clioTheme();
|
|
160
160
|
const indent = " ".repeat(row.depth);
|
|
161
161
|
// The active tip is where the next message lands; it gets its own glyph so
|
|
@@ -35,6 +35,7 @@ import {
|
|
|
35
35
|
type PanesWatchController,
|
|
36
36
|
type PanesYaziController,
|
|
37
37
|
type PanesYaziStatus,
|
|
38
|
+
type PanesZoomResult,
|
|
38
39
|
} from "../domains/mux/operations.js";
|
|
39
40
|
import { resolveBinary } from "../tools/executables.js";
|
|
40
41
|
import { type PaneWatchSource, paneWatchDecision } from "./pane-policy.js";
|
|
@@ -55,6 +56,18 @@ export interface PanesRuntimeDeps {
|
|
|
55
56
|
|
|
56
57
|
const UNAVAILABLE = "the pane layer is not available in this session";
|
|
57
58
|
|
|
59
|
+
/** Fuzzy operator addressing shared by `close` and `zoom`: id, label, purpose; newest first. */
|
|
60
|
+
function matchOwnedPane(owned: ReadonlyArray<MuxPaneRecord>, target: string): MuxPaneRecord | null {
|
|
61
|
+
const needle = target.trim().toLowerCase();
|
|
62
|
+
const newestFirst = [...owned].reverse();
|
|
63
|
+
return (
|
|
64
|
+
newestFirst.find((record) => record.ref.paneId.toLowerCase() === needle) ??
|
|
65
|
+
newestFirst.find((record) => record.label.toLowerCase().includes(needle)) ??
|
|
66
|
+
newestFirst.find((record) => record.purpose === needle) ??
|
|
67
|
+
null
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
|
|
58
71
|
function inventory(records: ReadonlyArray<MuxPaneRecord>): ReadonlyArray<PanesInventoryEntry> {
|
|
59
72
|
return records.map((record) => ({
|
|
60
73
|
paneId: record.ref.paneId,
|
|
@@ -154,7 +167,8 @@ export function createPanesRuntime(deps: PanesRuntimeDeps): PanesOperations {
|
|
|
154
167
|
return {
|
|
155
168
|
status(): PanesStatus {
|
|
156
169
|
const detection = deps.mux.detection();
|
|
157
|
-
const
|
|
170
|
+
const settings = deps.getSettings();
|
|
171
|
+
const panes = settings.interface.panes;
|
|
158
172
|
return {
|
|
159
173
|
mode: deps.mux.mode,
|
|
160
174
|
available: deps.mux.available(),
|
|
@@ -164,10 +178,16 @@ export function createPanesRuntime(deps: PanesRuntimeDeps): PanesOperations {
|
|
|
164
178
|
settings: {
|
|
165
179
|
enabled: panes.enabled,
|
|
166
180
|
notifications: panes.notifications,
|
|
167
|
-
|
|
168
|
-
|
|
181
|
+
layout: panes.layout,
|
|
182
|
+
journal: settings.fleet.history.journal,
|
|
183
|
+
yazi: { ...panes.files },
|
|
169
184
|
},
|
|
170
185
|
yazi: yaziController?.status() ?? closedYaziStatus(),
|
|
186
|
+
docks: deps.mux.docks().map((dock) => ({
|
|
187
|
+
slot: dock.slot,
|
|
188
|
+
paneId: dock.paneId,
|
|
189
|
+
targetShare: dock.targetShare,
|
|
190
|
+
})),
|
|
171
191
|
panes: [...inventory(deps.mux.list()), ...pendingOpens.values()],
|
|
172
192
|
};
|
|
173
193
|
},
|
|
@@ -186,7 +206,7 @@ export function createPanesRuntime(deps: PanesRuntimeDeps): PanesOperations {
|
|
|
186
206
|
return { status: "refused", reason: `unknown preset: ${request.preset}` };
|
|
187
207
|
}
|
|
188
208
|
if (preset.id === "yazi") {
|
|
189
|
-
if (!deps.getSettings().panes.
|
|
209
|
+
if (!deps.getSettings().interface.panes.files.enabled) {
|
|
190
210
|
return { status: "refused", reason: "the files pane is disabled by panes.yazi.enabled" };
|
|
191
211
|
}
|
|
192
212
|
if (!yaziController) {
|
|
@@ -253,6 +273,17 @@ export function createPanesRuntime(deps: PanesRuntimeDeps): PanesOperations {
|
|
|
253
273
|
}
|
|
254
274
|
},
|
|
255
275
|
|
|
276
|
+
async zoom(target: string): Promise<PanesZoomResult> {
|
|
277
|
+
if (!deps.mux.available()) return { status: "unavailable", reason: UNAVAILABLE };
|
|
278
|
+
const match = matchOwnedPane(deps.mux.list(), target.trim().length === 0 ? "watch" : target);
|
|
279
|
+
if (!match) return { status: "not-found", target: target.trim().length === 0 ? "watch" : target };
|
|
280
|
+
const changed = await deps.mux.zoomPane(match.ref.paneId, "toggle");
|
|
281
|
+
if (!changed) {
|
|
282
|
+
return { status: "unavailable", reason: "the pane host does not support zoom (protocol below pane.zoom)" };
|
|
283
|
+
}
|
|
284
|
+
return { status: "zoomed", paneId: match.ref.paneId, label: match.label };
|
|
285
|
+
},
|
|
286
|
+
|
|
256
287
|
async close(target: string): Promise<PanesCloseResult> {
|
|
257
288
|
if (!deps.mux.available()) return { status: "unavailable", reason: UNAVAILABLE };
|
|
258
289
|
const owned = deps.mux.list();
|
|
@@ -264,12 +295,7 @@ export function createPanesRuntime(deps: PanesRuntimeDeps): PanesOperations {
|
|
|
264
295
|
}
|
|
265
296
|
return { status: "closed", closed: labels.length, labels };
|
|
266
297
|
}
|
|
267
|
-
const
|
|
268
|
-
const newestFirst = [...owned].reverse();
|
|
269
|
-
const match =
|
|
270
|
-
newestFirst.find((record) => record.ref.paneId.toLowerCase() === needle) ??
|
|
271
|
-
newestFirst.find((record) => record.label.toLowerCase().includes(needle)) ??
|
|
272
|
-
newestFirst.find((record) => record.purpose === needle);
|
|
298
|
+
const match = matchOwnedPane(owned, target);
|
|
273
299
|
if (!match) return { status: "not-found", target };
|
|
274
300
|
const closed = await deps.mux.closePane(match.ref.paneId);
|
|
275
301
|
return closed ? { status: "closed", closed: 1, labels: [match.label] } : { status: "not-found", target };
|
|
@@ -203,7 +203,7 @@ function wrapArtifactLine(value: string, max: number): string[] {
|
|
|
203
203
|
return lines;
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
-
|
|
206
|
+
function permissionDecisionPresentation(view: ApprovalRequestView): DecisionPresentation {
|
|
207
207
|
return classifyDecisionPresentation(
|
|
208
208
|
decisionFactsForPermission({
|
|
209
209
|
tool: view.tool,
|
|
@@ -307,7 +307,7 @@ function permissionInspectionLines(
|
|
|
307
307
|
* 80-column one saw the command being authorized end mid-argument, both with
|
|
308
308
|
* nothing marking the cut.
|
|
309
309
|
*/
|
|
310
|
-
|
|
310
|
+
function permissionOverlayLines(view: ApprovalRequestView, width: number): string[] {
|
|
311
311
|
const content = Math.max(8, Math.floor(width));
|
|
312
312
|
const presentation = permissionDecisionPresentation(view);
|
|
313
313
|
// The parked call is awaiting a decision, not blocked: the raw rejection
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import type { RetryStatusPayload } from "../chat-loop.js";
|
|
2
2
|
import { styleTaggedNotice } from "./notice.js";
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const RETRY_ERROR_MAX_CHARS = 2_000;
|
|
5
|
+
const RETRY_ERROR_TRUNCATION_MARKER = "… [retry error truncated]";
|
|
6
|
+
|
|
7
|
+
function boundedRetryError(value: string): string {
|
|
8
|
+
const characters = Array.from(value);
|
|
9
|
+
if (characters.length <= RETRY_ERROR_MAX_CHARS) return value;
|
|
10
|
+
return `${characters.slice(0, RETRY_ERROR_MAX_CHARS).join("").trimEnd()}${RETRY_ERROR_TRUNCATION_MARKER}`;
|
|
7
11
|
}
|
|
8
12
|
|
|
9
13
|
function rawRetryStatus(status: RetryStatusPayload): string {
|
|
10
|
-
|
|
14
|
+
// Both live and replay renderers wrap this notice to their terminal width, so
|
|
15
|
+
// ordinary errors keep their complete remedy. Raw provider failures can also
|
|
16
|
+
// be an HTML proxy page, though; keep a generous ceiling so one retry does not
|
|
17
|
+
// turn that page into hundreds of transcript rows.
|
|
18
|
+
const suffix = status.errorMessage ? `: ${boundedRetryError(status.errorMessage)}` : "";
|
|
11
19
|
if (status.phase === "waiting") {
|
|
12
20
|
return `[retry] attempt ${status.attempt}/${status.maxAttempts} in ${status.seconds ?? 0}s${suffix}`;
|
|
13
21
|
}
|
|
@@ -426,7 +426,7 @@ function ledgerTail(finished: ToolExecutionFinished): { facts: string; offload:
|
|
|
426
426
|
if (details?.timedOut === true) parts.push("timed out");
|
|
427
427
|
if (details?.outputCapped === true) parts.push("output capped");
|
|
428
428
|
}
|
|
429
|
-
if (finished.excludeFromContext === true) parts.push("
|
|
429
|
+
if (finished.excludeFromContext === true) parts.push("not sent to model");
|
|
430
430
|
if (finished.evictedReason !== undefined) parts.push("evicted", finished.evictedReason);
|
|
431
431
|
const offloadPath = executed ? offloadPathOf(finished) : null;
|
|
432
432
|
return {
|
|
@@ -994,7 +994,7 @@ function toolUsageFact(result: unknown): string | null {
|
|
|
994
994
|
function outputFacts(finished: ToolExecutionFinished): string[] {
|
|
995
995
|
const parts: string[] = [];
|
|
996
996
|
if (isNonExecutedOutcome(finished.outcome)) {
|
|
997
|
-
if (finished.excludeFromContext === true) parts.push("
|
|
997
|
+
if (finished.excludeFromContext === true) parts.push("not sent to model");
|
|
998
998
|
return parts;
|
|
999
999
|
}
|
|
1000
1000
|
const exitCode = structuredExitCode(finished) ?? (finished.toolName === "bash" && !finished.isError ? "0" : null);
|
|
@@ -1024,7 +1024,7 @@ function outputFacts(finished: ToolExecutionFinished): string[] {
|
|
|
1024
1024
|
if (added.length > 0) parts.push(`added ${added.join(", ")}`);
|
|
1025
1025
|
}
|
|
1026
1026
|
if (isPlainObject(finished.result) && finished.result.terminate === true) parts.push("terminal result");
|
|
1027
|
-
if (finished.excludeFromContext === true) parts.push("
|
|
1027
|
+
if (finished.excludeFromContext === true) parts.push("not sent to model");
|
|
1028
1028
|
if (finished.evictedReason !== undefined) parts.push("evicted", finished.evictedReason);
|
|
1029
1029
|
return parts;
|
|
1030
1030
|
}
|
|
@@ -1379,7 +1379,7 @@ export function renderBashTranscriptExecution(
|
|
|
1379
1379
|
const shownBytes = Buffer.byteLength(execution.output, "utf8");
|
|
1380
1380
|
const totalBytes = execution.totalBytes ?? shownBytes;
|
|
1381
1381
|
const args: Record<string, unknown> = { command: execution.command };
|
|
1382
|
-
if (execution.excludeFromContext === true) args.context = "
|
|
1382
|
+
if (execution.excludeFromContext === true) args.context = "not sent to model";
|
|
1383
1383
|
const details = {
|
|
1384
1384
|
resultSize: {
|
|
1385
1385
|
bytes: totalBytes,
|
|
@@ -7,7 +7,7 @@ import { buildModelReplayAgentMessagesFromTurns } from "./model-session-replay.j
|
|
|
7
7
|
|
|
8
8
|
type SessionOwner = Pick<SessionContract, "create" | "current">;
|
|
9
9
|
type SessionChat = Pick<ChatLoop, "resetForSession">;
|
|
10
|
-
type RoutingSettings = Pick<ClioSettings, "
|
|
10
|
+
type RoutingSettings = Pick<ClioSettings, "chat">;
|
|
11
11
|
|
|
12
12
|
export interface SessionTranscriptDeps {
|
|
13
13
|
session?: SessionOwner;
|
|
@@ -74,8 +74,8 @@ export function createSessionTranscript(deps: SessionTranscriptDeps): SessionTra
|
|
|
74
74
|
const input: { cwd: string; target?: string; model?: string } = {
|
|
75
75
|
cwd: deps.getCwd?.() ?? process.cwd(),
|
|
76
76
|
};
|
|
77
|
-
if (settings?.
|
|
78
|
-
if (settings?.
|
|
77
|
+
if (settings?.chat.target) input.target = settings.chat.target;
|
|
78
|
+
if (settings?.chat.model) input.model = settings.chat.model;
|
|
79
79
|
deps.session.create(input);
|
|
80
80
|
};
|
|
81
81
|
|