@iowarp/clio-coder 0.3.9 → 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 +92 -0
- package/NOTICE +33 -0
- package/README.md +121 -16
- package/dist/{acp-7LOELQFP.js → acp-ZILU3AUO.js} +19 -18
- package/dist/{agents-FIBG2SHA.js → agents-HYWGBGQR.js} +53 -39
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-OI4LIH2I.js → auth-N3QT7CBO.js} +24 -21
- package/dist/{builtins-AD25UL3C.js → builtins-UJLMOVOV.js} +6 -6
- package/dist/{chunk-I4HZDVNP.js → chunk-2LEAKD4C.js} +2 -3
- package/dist/{chunk-465CC7FK.js → chunk-2NM363SV.js} +60 -64
- package/dist/{chunk-4H6ULJ3H.js → chunk-2VG7KLYV.js} +1046 -1370
- package/dist/{chunk-SST6Z5JA.js → chunk-336NSSKI.js} +1 -1
- package/dist/{chunk-NZU6YDNV.js → chunk-3I5NY75V.js} +5 -5
- package/dist/{chunk-47CMYGET.js → chunk-3QSOM6PA.js} +2 -2
- package/dist/chunk-42FMPA75.js +101 -0
- package/dist/{chunk-HAY4ZE2P.js → chunk-5PSMVOLM.js} +2 -2
- package/dist/{chunk-IHKBWSXF.js → chunk-5QIAJV2D.js} +3 -3
- package/dist/chunk-5YHDIDBP.js +97 -0
- package/dist/chunk-6CCS4G3W.js +1529 -0
- package/dist/{chunk-2JDWVJND.js → chunk-6DWBAZ5U.js} +2 -2
- package/dist/{chunk-BVDVID7E.js → chunk-6FN3E6KX.js} +6 -6
- package/dist/{chunk-DG4M6ZUE.js → chunk-6HMJX2VU.js} +59 -59
- package/dist/{chunk-3MRC2YSQ.js → chunk-6I5ILFOF.js} +3 -2
- package/dist/chunk-6NJQITNH.js +1412 -0
- package/dist/chunk-6VC4OV3Z.js +365 -0
- package/dist/{chunk-LU7P4LHA.js → chunk-72GZI5EV.js} +2 -2
- package/dist/{chunk-5T7RBWN2.js → chunk-74YWRRU5.js} +9 -8
- package/dist/{chunk-VPTUJU4P.js → chunk-7EPLI7VL.js} +2 -2
- package/dist/{chunk-CA42X6KT.js → chunk-7OBGU7UB.js} +7 -7
- package/dist/{chunk-56KB5IJP.js → chunk-7PWAODYW.js} +3 -3
- package/dist/chunk-7RY5VZPH.js +573 -0
- package/dist/{chunk-OEDBCISO.js → chunk-ABLSQ6JX.js} +3 -3
- package/dist/{chunk-5HFBWUMU.js → chunk-AFKWHWXF.js} +13 -23
- package/dist/{chunk-FWDFM5ZU.js → chunk-AK5XEFVZ.js} +3 -3
- package/dist/{chunk-WXCJ7VME.js → chunk-AKB4GYDL.js} +7 -7
- package/dist/chunk-AP73CFDC.js +308 -0
- package/dist/{chunk-4LJX2PUC.js → chunk-BBTJOK6Y.js} +5 -5
- package/dist/{chunk-QQ7EKM72.js → chunk-BDPT6GTK.js} +13 -61
- package/dist/chunk-BJGUKIG4.js +302 -0
- package/dist/chunk-BMS5RKQY.js +27 -0
- package/dist/{chunk-TD7UE2L5.js → chunk-BTGG6BG2.js} +81 -40
- 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-BNAZZHFG.js → chunk-BYP5D4HI.js} +1 -1
- package/dist/{chunk-HJB5IUKP.js → chunk-C537JADH.js} +18 -18
- package/dist/{chunk-774ILSRL.js → chunk-CDNVLKUX.js} +5 -4
- package/dist/{chunk-HPCTNZM2.js → chunk-CTJ4RNAA.js} +4 -4
- package/dist/{chunk-AEYBF3TB.js → chunk-CWVRRIEI.js} +2 -2
- package/dist/chunk-D4CJV46V.js +462 -0
- package/dist/chunk-D7E7WCDF.js +27 -0
- package/dist/{chunk-5PVQ4SRS.js → chunk-E67WX76H.js} +10 -126
- package/dist/{chunk-FQ4SKYE4.js → chunk-EBY63B7G.js} +2 -5
- package/dist/chunk-EIMVLWB3.js +1842 -0
- package/dist/{chunk-AMKHQW3C.js → chunk-FEFIFZTL.js} +3 -3
- package/dist/{chunk-RAPCMZL4.js → chunk-FSP7CMNU.js} +9 -1
- package/dist/{chunk-3DUR4WUA.js → chunk-FYUN5KZ3.js} +25 -25
- package/dist/{chunk-MV3K5QF2.js → chunk-GCSMB2KY.js} +2 -2
- package/dist/chunk-GIZNH63R.js +40 -0
- package/dist/chunk-GPPB3JBE.js +688 -0
- package/dist/{chunk-B5XRQOLB.js → chunk-GVQJ5CCZ.js} +17 -11
- package/dist/chunk-HHV2GANA.js +88 -0
- package/dist/chunk-HJWWJ6IL.js +184 -0
- package/dist/{chunk-RKRLDWD3.js → chunk-HLW2MRKE.js} +1 -1
- package/dist/chunk-HRQMFLJP.js +75 -0
- package/dist/{chunk-AD7Y7STJ.js → chunk-HUAS7ITX.js} +107 -97
- package/dist/{chunk-O6I4CIEU.js → chunk-I66EAJFY.js} +6 -6
- package/dist/{chunk-S4COXYBG.js → chunk-IG7BCQBA.js} +129 -106
- package/dist/{chunk-N3PBVRTZ.js → chunk-IXJT6DCX.js} +9 -7
- package/dist/chunk-J4HBWF6Y.js +2635 -0
- package/dist/chunk-J5LZHVIT.js +284 -0
- package/dist/{chunk-GAYUJ7LE.js → chunk-JA5QWE4Z.js} +544 -227
- package/dist/{chunk-B5CSFE7B.js → chunk-JIEGK6UF.js} +6 -174
- package/dist/{chunk-VKBMFOYV.js → chunk-JZWT5J3Y.js} +23 -27
- package/dist/chunk-K6BF4U2H.js +1785 -0
- package/dist/{chunk-CGKSTWHD.js → chunk-K6BSR66V.js} +2 -1
- package/dist/{chunk-YSEHGPCT.js → chunk-MA3H6DM5.js} +6 -6
- package/dist/{chunk-EBOC7MT3.js → chunk-MOPSG2X7.js} +9 -9
- package/dist/{chunk-KV2AOLDF.js → chunk-MQXIVJ35.js} +18 -29
- package/dist/{chunk-P3JGPQFL.js → chunk-N5UK64DP.js} +4 -4
- package/dist/chunk-NDDGJUXD.js +81 -0
- package/dist/chunk-NEKRRTYW.js +56 -0
- package/dist/{chunk-4ZG3XFUR.js → chunk-NLFAQR7Z.js} +12 -1
- package/dist/{chunk-VO2LKSTM.js → chunk-O42A54GG.js} +2 -2
- package/dist/{chunk-T3Z6VAAF.js → chunk-OJTRZGR3.js} +53 -92
- package/dist/{chunk-5DQRIYDZ.js → chunk-PBP4B7XR.js} +3 -3
- package/dist/{chunk-NQ6UCCOD.js → chunk-PJJ6MY27.js} +8 -8
- package/dist/chunk-PMZCIOCJ.js +25 -0
- package/dist/{chunk-ZGVHUX3M.js → chunk-PMZVFWSR.js} +2 -2
- package/dist/{chunk-7C6RYZGQ.js → chunk-PVAMAVBB.js} +5 -4
- package/dist/chunk-QDC3K2U3.js +262 -0
- package/dist/{chunk-JEQQR47K.js → chunk-QKIFBZKT.js} +173 -14
- package/dist/{chunk-R7LNVMCS.js → chunk-QMXC4JB7.js} +70 -78
- package/dist/chunk-QSNYB6ZV.js +195 -0
- package/dist/chunk-QTFGO774.js +644 -0
- package/dist/{chunk-ODFEOB4F.js → chunk-R23Z6K6I.js} +27 -9
- package/dist/{chunk-3UUY7R3Z.js → chunk-R32CLGZ6.js} +14 -14
- package/dist/chunk-R346GLFC.js +31 -0
- package/dist/chunk-RKSR6VSF.js +132 -0
- package/dist/{chunk-N5XKWMDW.js → chunk-SCYB3HA4.js} +73 -27
- package/dist/{chunk-PZ4I4JE2.js → chunk-SINK3QR6.js} +135 -125
- package/dist/{chunk-5QKCQQ3E.js → chunk-SUW5DORT.js} +2 -2
- package/dist/chunk-T56WDKA5.js +183 -0
- package/dist/{chunk-ECUO3KDP.js → chunk-TD3PGPQA.js} +87 -26
- package/dist/{chunk-HKO36JWF.js → chunk-THYWACCR.js} +31 -3
- package/dist/{chunk-LXPJXFM5.js → chunk-TVH4ONAM.js} +18 -12
- package/dist/chunk-TVHHYFHE.js +255 -0
- package/dist/chunk-U2WB7TZS.js +271 -0
- package/dist/{chunk-NNNWO6F2.js → chunk-UAPGZHYC.js} +237 -33
- package/dist/{chunk-MIX5N5AC.js → chunk-UEDMSP56.js} +415 -160
- package/dist/{chunk-WIE7ZOSW.js → chunk-UXN6JT4W.js} +3 -3
- package/dist/{chunk-CMZWFGD2.js → chunk-VAVR4IJY.js} +19 -15
- package/dist/{chunk-MV2VUEJC.js → chunk-VEGN6WIQ.js} +2 -2
- package/dist/chunk-VKFQTNDV.js +66 -0
- package/dist/{chunk-FALJGAWU.js → chunk-VKRH2TCS.js} +2 -2
- package/dist/{chunk-A2NJGIB3.js → chunk-VN3SHNBN.js} +2 -2
- package/dist/{chunk-XK56QHLX.js → chunk-VPKWYKEY.js} +19 -5
- package/dist/{chunk-UOSL25KY.js → chunk-VXMFAE2W.js} +1 -1
- package/dist/{chunk-EQ63NRB7.js → chunk-WNP7O5WZ.js} +3 -3
- package/dist/chunk-WR6U3OVP.js +45 -0
- package/dist/{chunk-TEO2TLVN.js → chunk-XKA2ICR3.js} +1051 -1196
- package/dist/{chunk-3V5AYSEQ.js → chunk-Y45G3AXC.js} +72 -65
- package/dist/{chunk-J5Q24KAG.js → chunk-Y4CAGMM6.js} +2 -2
- package/dist/chunk-YAKGTXEV.js +17 -0
- package/dist/{chunk-ZI647VB5.js → chunk-YPI3QQCF.js} +2 -2
- package/dist/{chunk-YW7UVM5V.js → chunk-ZAZB4JMW.js} +55 -11
- package/dist/{chunk-HCBCAYZU.js → chunk-ZJLUDYFY.js} +11 -11
- package/dist/{chunk-HKIYEGME.js → chunk-ZTJUVLTU.js} +2 -2
- package/dist/{chunk-IFBNV6H6.js → chunk-ZW55JB7N.js} +3 -3
- package/dist/cli/index.js +48 -37
- package/dist/clio-IT3G3VQH.js +25 -0
- package/dist/{code-nav-LMW275PA.js → code-nav-RK6S7F6E.js} +8 -8
- package/dist/codewiki/build-worker.js +1 -1
- package/dist/{compile-cache-CVJMMODC.js → compile-cache-OQAVB7Y5.js} +3 -5
- package/dist/{components-ZFA3SAER.js → components-UBWCQSRW.js} +6 -6
- package/dist/{config-RXS5T3JT.js → config-3QZRWZJF.js} +73 -61
- package/dist/configure-FL7Y3KJF.js +54 -0
- package/dist/{context-MVOORGMF.js → context-5HE7ODYK.js} +61 -49
- package/dist/{context-I3BTOTCS.js → context-KYQFRVDC.js} +11 -11
- package/dist/{context-PALKKQYL.js → context-XNHL75JV.js} +43 -28
- package/dist/{context-clear-N2WOYZ2K.js → context-clear-N545L53A.js} +60 -48
- package/dist/{context-working-set-MIEVECVZ.js → context-working-set-QHKXSV2F.js} +15 -13
- package/dist/{dispatch-runner-VVA4SRRH.js → dispatch-runner-RGIE5PCT.js} +109 -72
- package/dist/{docs-7LQ23DLM.js → docs-5NAF6AU7.js} +7 -13
- package/dist/doctor-ZGPEGHIP.js +772 -0
- package/dist/{eval-IJ5VEZDJ.js → eval-GXLL44RD.js} +106 -86
- package/dist/eval-inventory-HBWSWQOK.js +315 -0
- package/dist/{evidence-L5APPXNV.js → evidence-HWLBRH3Q.js} +209 -51
- package/dist/{evolve-RGNKFJ52.js → evolve-FTZBMNVW.js} +57 -45
- package/dist/{extensions-7WYWUX5A.js → extensions-VHRBEID7.js} +7 -7
- package/dist/{fleet-6CNVBZZP.js → fleet-CKZHJWZJ.js} +215 -114
- package/dist/{fleet-commands-L2SXSYEI.js → fleet-commands-EXDXBMV6.js} +13 -12
- package/dist/fleet-decisions-OTHB6KRL.js +157 -0
- package/dist/{fleet-graph-2J3OOIPO.js → fleet-graph-YTEZUCUT.js} +20 -17
- package/dist/fleet-inspect-SS6YMDCK.js +445 -0
- package/dist/{fleet-preflight-CZRJ4JP5.js → fleet-preflight-PBY4VYOM.js} +6 -9
- package/dist/{fleet-validate-C5RI6DP7.js → fleet-validate-KMEM5L3S.js} +25 -20
- package/dist/fleet-verify-QD5M7E7Q.js +178 -0
- package/dist/fleet-view-WAMJYNDT.js +94 -0
- package/dist/{init-VBN2ACVA.js → init-5XQRBOFV.js} +79 -66
- package/dist/install-NKNG7KD4.js +13 -0
- package/dist/interop-34TVO25M.js +116 -0
- package/dist/{library-JHGUMLY2.js → library-3QY6KF57.js} +25 -21
- package/dist/{memory-K4OQIYWG.js → memory-L4UTIIIW.js} +59 -47
- package/dist/{models-2NCZUWDD.js → models-ZVX3QOWE.js} +47 -37
- package/dist/{monitor-MMVTJABD.js → monitor-CEKVSYTS.js} +67 -57
- package/dist/{orchestrator-ZKBPCHW6.js → orchestrator-77BAP6BC.js} +7633 -7699
- package/dist/panes-7STHOAUJ.js +103 -0
- package/dist/panes-SHAUIRXY.js +60 -0
- package/dist/{paths-DBXMZMDU.js → paths-L7LGY6RN.js} +6 -6
- package/dist/{reset-DD5JGOY3.js → reset-EOLM7GVE.js} +15 -14
- package/dist/resources-74GKTLSF.js +115 -0
- package/dist/{run-QEGNX7FL.js → run-HBAUJNNZ.js} +139 -98
- package/dist/{share-JKD3BQMW.js → share-G3APVLVP.js} +25 -21
- package/dist/{skills-LMQIKDOZ.js → skills-35HHUKCR.js} +37 -27
- package/dist/{skills-eval-I7X2774U.js → skills-eval-QN4HSHDC.js} +80 -73
- package/dist/skills-inventory-J357J34F.js +129 -0
- package/dist/slash-commands-JZZCQA32.js +79 -0
- package/dist/{steer-CF5TDANS.js → steer-XAVHJM22.js} +4 -4
- package/dist/{support-I7LOJLIF.js → support-U7QOWY26.js} +7 -7
- package/dist/{targets-RUSR6B5Z.js → targets-DSM6CY3M.js} +67 -59
- package/dist/{terminal-lease-QYVORFR4.js → terminal-lease-JOPFUVEM.js} +15 -10
- package/dist/tools-MKNWVPBH.js +29 -0
- package/dist/{trace-ODOQIVIW.js → trace-ECQ7TIYZ.js} +194 -7
- package/dist/tui-primitives-K5PASC3O.js +17 -0
- package/dist/{uninstall-ZJF5H5ZN.js → uninstall-N34PCTGJ.js} +6 -8
- package/dist/{upgrade-XANW3FXB.js → upgrade-H7TOM7YL.js} +37 -62
- package/dist/{usage-4H7ZRXQT.js → usage-X52N3IDJ.js} +70 -59
- package/dist/{verifiers-UZXNBZEB.js → verifiers-EJTVVSMA.js} +174 -14
- package/dist/{verify-BVKWTNDL.js → verify-YJL6XET2.js} +12 -11
- package/dist/{web-fetch-2YHJ3KTG.js → web-fetch-MPIFL3LL.js} +3 -4
- package/dist/{wiki-generate-MY7WV2QI.js → wiki-generate-4NDZTQ4B.js} +86 -75
- package/dist/with-panes-OBOBFIIR.js +818 -0
- package/dist/worker/entry.js +131 -91
- package/docs/README.md +3 -2
- package/docs/acp.md +25 -4
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +2 -2
- package/docs/artifact-versions.md +4 -1
- package/docs/built-in-agents.md +40 -32
- package/docs/capacity-and-scheduling.md +43 -5
- package/docs/commands-and-modes.md +39 -4
- package/docs/config-knobs-audit.md +3 -0
- package/docs/configuration-and-targets.md +138 -167
- package/docs/context-engine.md +1 -1
- package/docs/development-pipeline.md +19 -0
- package/docs/dispatch-typed-intent.md +385 -0
- package/docs/documentation-coverage.md +2 -2
- package/docs/documentation-guide.md +1 -1
- package/docs/environment-variables.md +3 -1
- package/docs/eval-runner.md +1 -1
- package/docs/evals-internal.md +1 -1
- package/docs/evidence-and-memory.md +2 -2
- package/docs/evolution.md +1 -1
- package/docs/exit-codes-and-output.md +3 -1
- package/docs/extensions-and-sharing.md +25 -1
- package/docs/fleet-demo-runbook.md +6 -3
- package/docs/fleet-dispatch.md +30 -7
- package/docs/installation-and-lifecycle.md +16 -3
- package/docs/middleware-and-components.md +1 -1
- package/docs/model-catalog.md +10 -1
- package/docs/observability.md +3 -3
- package/docs/proactive-memory.md +1 -1
- package/docs/prompt-envelope-and-tools.md +1 -1
- package/docs/provider-adapter-cookbook.md +1 -1
- package/docs/release-cut-checklist.md +164 -177
- package/docs/safety-model.md +2 -2
- package/docs/scientific-validation.md +3 -3
- package/docs/session-lifecycle.md +1 -1
- package/docs/skills-marketplace.md +1 -1
- package/docs/tool-usage.md +18 -8
- package/docs/trace-store.md +16 -11
- package/docs/troubleshooting.md +2 -2
- package/docs/tui-design.md +1 -1
- package/docs/worker-dispatch-mechanics.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 +8 -16
- 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 +8 -4
- package/src/cli/argv.ts +25 -0
- 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 +50 -48
- 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 +156 -0
- package/src/cli/doctor-toolchain.ts +78 -0
- package/src/cli/doctor.ts +34 -1
- package/src/cli/eval-inventory.ts +436 -0
- package/src/cli/eval.ts +13 -0
- package/src/cli/evidence-detail.ts +88 -0
- package/src/cli/evidence-inventory.ts +183 -0
- package/src/cli/evidence.ts +30 -5
- package/src/cli/fleet-decisions.ts +69 -0
- package/src/cli/fleet-inspect.ts +334 -0
- package/src/cli/fleet-preflight.ts +1 -1
- package/src/cli/fleet-verify.ts +133 -0
- package/src/cli/fleet-view.ts +827 -0
- package/src/cli/fleet.ts +154 -40
- package/src/cli/index.ts +14 -2
- package/src/cli/interop-inspect.ts +128 -0
- package/src/cli/interop.ts +34 -0
- package/src/cli/models.ts +3 -3
- package/src/cli/modes/print.ts +1 -1
- package/src/cli/panes.ts +35 -0
- package/src/cli/reset.ts +6 -3
- package/src/cli/run.ts +67 -13
- package/src/cli/share.ts +1 -1
- package/src/cli/skills-eval.ts +11 -11
- package/src/cli/skills-inventory.ts +185 -0
- package/src/cli/skills.ts +16 -13
- package/src/cli/targets.ts +23 -24
- package/src/cli/tools.ts +321 -0
- package/src/cli/trace-inspect.ts +252 -0
- package/src/cli/trace.ts +64 -2
- 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 +347 -0
- package/src/cli/verifiers.ts +9 -0
- 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-events.ts +4 -0
- package/src/core/bus-trace.ts +2 -2
- package/src/core/compile-cache.ts +1 -1
- package/src/core/config.ts +1070 -845
- package/src/core/defaults.ts +342 -463
- 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/response-schema.ts +44 -4
- 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/theme-token-hex.ts +43 -0
- package/src/core/timers.ts +2 -12
- package/src/core/tool-names.ts +2 -1
- package/src/core/xdg.ts +1 -1
- package/src/domains/agents/catalog.ts +2 -12
- package/src/domains/agents/extension.ts +3 -3
- package/src/domains/agents/fleets/build-review.md +0 -3
- package/src/domains/agents/fleets/build-test.md +0 -3
- package/src/domains/agents/registry.ts +7 -7
- package/src/domains/agents/result-contract-filesystem.ts +32 -0
- package/src/domains/agents/result-contract.ts +165 -36
- package/src/domains/agents/spec.ts +0 -11
- package/src/domains/config/classify.ts +37 -46
- 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/admission-error.ts +9 -0
- package/src/domains/dispatch/admission.ts +22 -21
- 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 +23 -6
- package/src/domains/dispatch/code-step.ts +1 -1
- package/src/domains/dispatch/contract.ts +2 -2
- package/src/domains/dispatch/council-topology.ts +398 -0
- package/src/domains/dispatch/extension.ts +287 -111
- package/src/domains/dispatch/fleet-node-prompt.ts +62 -0
- package/src/domains/dispatch/fleet-plan.ts +7 -2
- package/src/domains/dispatch/fleet-preflight.ts +8 -17
- package/src/domains/dispatch/fleet-run.ts +59 -3
- package/src/domains/dispatch/gate-decisions.ts +36 -15
- package/src/domains/dispatch/gate-role-prompts.ts +9 -0
- package/src/domains/dispatch/gate-topology.ts +289 -0
- package/src/domains/dispatch/index.ts +19 -0
- package/src/domains/dispatch/intent-compatibility.ts +330 -0
- package/src/domains/dispatch/intent.ts +85 -1
- 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 +24 -27
- 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-bridge.ts +149 -0
- package/src/domains/dispatch/run-event-journal.ts +599 -0
- package/src/domains/dispatch/state.ts +45 -1
- package/src/domains/dispatch/tool-stats.ts +1 -1
- package/src/domains/dispatch/transport.ts +2 -19
- package/src/domains/dispatch/types.ts +16 -3
- package/src/domains/dispatch/validation.ts +33 -8
- package/src/domains/dispatch/worker-protocol.ts +2 -2
- package/src/domains/eval/artifacts/store.ts +5 -4
- package/src/domains/eval/compare/compare.ts +3 -16
- package/src/domains/eval/compare/thresholds.ts +0 -8
- package/src/domains/eval/execution-provenance.ts +1 -1
- package/src/domains/eval/inventory.ts +113 -0
- 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/serving.ts +31 -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/evidence/store.ts +6 -0
- 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/index.ts +0 -1
- package/src/domains/memory/task-memory-handoff.ts +6 -3
- package/src/domains/memory/task-memory-policy.ts +6 -10
- package/src/domains/memory/task-memory-telemetry.ts +1 -0
- package/src/domains/middleware/index.ts +7 -0
- package/src/domains/middleware/marketplace-offer.ts +339 -0
- package/src/domains/middleware/memory-intervention.ts +33 -21
- package/src/domains/middleware/runtime.ts +2 -2
- package/src/domains/mux/contract.ts +566 -0
- package/src/domains/mux/detect.ts +182 -0
- package/src/domains/mux/dock-controller.ts +365 -0
- package/src/domains/mux/extension.ts +53 -0
- package/src/domains/mux/index.ts +116 -0
- package/src/domains/mux/manifest.ts +6 -0
- package/src/domains/mux/operations.ts +192 -0
- package/src/domains/mux/pane-registry.ts +90 -0
- package/src/domains/mux/protocol.ts +62 -0
- package/src/domains/mux/socket-client.ts +964 -0
- package/src/domains/mux/types.ts +265 -0
- package/src/domains/mux/viewer-command.ts +59 -0
- package/src/domains/mux/yazi/assets/init.lua +2 -0
- package/src/domains/mux/yazi/assets/plugins/git.yazi/LICENSE +21 -0
- package/src/domains/mux/yazi/assets/plugins/git.yazi/README.md +78 -0
- package/src/domains/mux/yazi/assets/plugins/git.yazi/main.lua +255 -0
- package/src/domains/mux/yazi/assets/plugins/git.yazi/types.lua +12 -0
- package/src/domains/mux/yazi/assets/yazi.toml +17 -0
- package/src/domains/mux/yazi/event-stream.ts +182 -0
- package/src/domains/mux/yazi/profile.ts +299 -0
- package/src/domains/mux/yazi/session.ts +251 -0
- package/src/domains/mux/yazi/theme.ts +30 -0
- package/src/domains/observability/cost.ts +21 -0
- package/src/domains/observability/extension.ts +1 -1
- package/src/domains/observability/index.ts +2 -0
- 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 +63 -11
- 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/endpoint-capacity.ts +154 -22
- package/src/domains/providers/endpoint-slots-store.ts +189 -0
- package/src/domains/providers/extension.ts +25 -8
- package/src/domains/providers/index.ts +22 -0
- package/src/domains/providers/knowledge-base-path.ts +1 -1
- package/src/domains/providers/model-runtime-capabilities.ts +46 -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/boot-manifest.ts +1 -0
- package/src/domains/providers/runtimes/builtins.ts +2 -0
- 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 +285 -0
- package/src/domains/providers/support.ts +1 -0
- package/src/domains/providers/target-model-cache.ts +124 -0
- 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/index.ts +3 -0
- 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 +72 -13
- package/src/domains/resources/skills/marketplace.ts +21 -2
- package/src/domains/resources/skills/promotion.ts +214 -0
- package/src/domains/safety/action-classifier.ts +6 -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/archive.ts +175 -0
- package/src/domains/toolchain/contract.ts +28 -0
- package/src/domains/toolchain/extension.ts +47 -0
- package/src/domains/toolchain/index.ts +39 -0
- package/src/domains/toolchain/install.ts +327 -0
- package/src/domains/toolchain/manifest.ts +8 -0
- package/src/domains/toolchain/paths.ts +34 -0
- package/src/domains/toolchain/registry.ts +265 -0
- package/src/domains/toolchain/remove.ts +218 -0
- package/src/domains/toolchain/resolve.ts +182 -0
- package/src/domains/toolchain/types.ts +113 -0
- package/src/domains/toolchain/version.ts +88 -0
- package/src/engine/acp/adapter.ts +3 -3
- package/src/engine/acp/event-mapper.ts +3 -3
- package/src/engine/acp/server.ts +440 -96
- package/src/engine/acp/tool-mediator.ts +2 -2
- package/src/engine/acp/types.ts +20 -2
- 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 +87 -0
- package/src/engine/claude/sdk-runtime.ts +25 -17
- 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 +21 -0
- package/src/engine/tui.ts +1 -0
- package/src/engine/worker-events.ts +6 -6
- package/src/engine/worker-runtime.ts +16 -26
- package/src/entry/boot-options.ts +2 -0
- package/src/entry/orchestrator.ts +207 -90
- package/src/entry/panes-activation.ts +31 -0
- package/src/entry/with-panes.ts +20 -0
- 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 +2 -1
- package/src/interactive/cost-overlay.ts +3 -1
- package/src/interactive/council-grid.ts +3 -5
- package/src/interactive/council.ts +11 -0
- package/src/interactive/dispatch-board.ts +56 -49
- 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 +229 -62
- package/src/interactive/interactive-event-projection.ts +1 -1
- package/src/interactive/interactive-input-runtime.ts +9 -2
- package/src/interactive/interactive-presentation.ts +21 -16
- package/src/interactive/interactive-shell.ts +2 -2
- package/src/interactive/interactive-slash-runtime.ts +99 -23
- 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 +3 -2
- package/src/interactive/modal-marker.ts +151 -0
- package/src/interactive/mutation-preview.ts +1 -1
- package/src/interactive/mux-bridge.ts +214 -0
- package/src/interactive/overlay-frame.ts +62 -14
- package/src/interactive/overlay-general-openers.ts +7 -2
- package/src/interactive/overlay-key-routing.ts +21 -10
- package/src/interactive/overlay-lifecycle.ts +20 -4
- package/src/interactive/overlay-model-selectors.ts +43 -6
- package/src/interactive/overlay-permission-lifecycle.ts +90 -22
- package/src/interactive/overlay-transitions.ts +18 -4
- package/src/interactive/overlays/agents.ts +3 -2
- package/src/interactive/overlays/ask-user.ts +161 -41
- package/src/interactive/overlays/auth-dialog.ts +1 -0
- package/src/interactive/overlays/context-reset.ts +29 -4
- package/src/interactive/overlays/cwd-fallback.ts +29 -4
- package/src/interactive/overlays/decisions.ts +15 -13
- package/src/interactive/overlays/extensions.ts +1 -0
- package/src/interactive/overlays/fleet-run-approval.ts +4 -3
- package/src/interactive/overlays/handoff-review.ts +3 -2
- package/src/interactive/overlays/help-reference.ts +2 -0
- package/src/interactive/overlays/interop.ts +2 -1
- package/src/interactive/overlays/library-install-confirm.ts +2 -1
- package/src/interactive/overlays/library-tabs.ts +28 -0
- package/src/interactive/overlays/list-overlay.ts +10 -1
- package/src/interactive/overlays/message-picker.ts +2 -1
- package/src/interactive/overlays/model-scope.ts +86 -0
- package/src/interactive/overlays/model-selector.ts +40 -31
- package/src/interactive/overlays/prompts.ts +11 -4
- package/src/interactive/overlays/session-selector.ts +3 -2
- package/src/interactive/overlays/settings-sections.ts +30 -0
- package/src/interactive/overlays/settings.ts +849 -268
- package/src/interactive/overlays/side-question.ts +3 -2
- package/src/interactive/overlays/skills-hub.ts +11 -19
- package/src/interactive/overlays/tree-selector.ts +3 -2
- package/src/interactive/pane-policy.ts +46 -0
- package/src/interactive/panes-runtime.ts +318 -0
- package/src/interactive/permission-overlay.ts +2 -2
- package/src/interactive/renderers/compaction-summary.ts +29 -0
- package/src/interactive/renderers/retry-status.ts +12 -4
- package/src/interactive/renderers/tool-execution.ts +4 -4
- package/src/interactive/renderers/worker-entry.ts +122 -14
- package/src/interactive/session-transcript.ts +3 -3
- package/src/interactive/slash-autocomplete.ts +454 -165
- package/src/interactive/slash-commands.ts +521 -189
- 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 +21 -13
- package/src/interactive/terminal-lease.ts +6 -7
- package/src/interactive/theme/tokens.ts +3 -14
- package/src/interactive/turn-context.ts +58 -13
- 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 +120 -9
- package/src/interactive/view/view-overlay.ts +14 -10
- package/src/interactive/watch-pane.ts +180 -0
- package/src/interactive/welcome-dashboard.ts +15 -15
- package/src/interactive/worker-progress.ts +11 -5
- package/src/interactive/worker-receipts.ts +20 -2
- package/src/interactive/worker-stream.ts +6 -4
- package/src/interactive/yazi-bridge.ts +451 -0
- package/src/tools/ask-user.ts +3 -3
- package/src/tools/bash.ts +1 -1
- package/src/tools/bootstrap.ts +26 -2
- package/src/tools/builtin-tool-catalog.ts +16 -1
- package/src/tools/compete-worktrees.ts +108 -17
- package/src/tools/context/index.ts +15 -1
- package/src/tools/core-bootstrap.ts +2 -1
- package/src/tools/dispatch-admission.ts +18 -5
- package/src/tools/dispatch-arguments.ts +21 -21
- package/src/tools/dispatch-plan.ts +0 -11
- package/src/tools/dispatch-run-events.ts +145 -28
- package/src/tools/dispatch-runner.ts +40 -13
- package/src/tools/dispatch-types.ts +15 -3
- package/src/tools/dispatch.ts +2 -2
- package/src/tools/executables.ts +17 -14
- package/src/tools/find.ts +1 -6
- package/src/tools/monitor.ts +4 -4
- package/src/tools/observation.ts +54 -4
- package/src/tools/observers.ts +0 -33
- package/src/tools/panes-surface.ts +38 -0
- package/src/tools/panes.ts +112 -0
- package/src/tools/policy.ts +10 -1
- package/src/tools/presentation.ts +1 -0
- 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-D73KXYPF.js +0 -37
- package/dist/chunk-MLOK6ZOS.js +0 -2888
- package/dist/chunk-PNY46YEY.js +0 -1581
- package/dist/chunk-XDOQXGFO.js +0 -515
- package/dist/chunk-YKOFT37S.js +0 -279
- package/dist/clio-LT5V7SSZ.js +0 -26
- package/dist/configure-2WYWSCSD.js +0 -49
- package/dist/doctor-TWBWFK5V.js +0 -165
- 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
|
@@ -62,7 +62,7 @@ function planLines(proposal: InteropProposal): string[] {
|
|
|
62
62
|
...renderProposalEntry(proposal).split("\n"),
|
|
63
63
|
"```",
|
|
64
64
|
`**projectContext:** ${INHERITED_PROJECT_CONTEXT} (inherited; the peer receives your task text, never the project projection)`,
|
|
65
|
-
"**toolGovernance:** clio-policy (its tool calls are gated by Clio safety)",
|
|
65
|
+
"**toolGovernance:** clio-coder-policy (its tool calls are gated by Clio safety)",
|
|
66
66
|
];
|
|
67
67
|
if (proposal.needsNetworkInstall) {
|
|
68
68
|
lines.push("**Adapter:** not installed locally; npx fetches it the first time you delegate");
|
|
@@ -120,6 +120,7 @@ export function openInteropOverlay(tui: TUI, ctx: SlashCommandContext, onClose:
|
|
|
120
120
|
};
|
|
121
121
|
|
|
122
122
|
const handle: ListOverlayHandle = openListOverlay(tui, {
|
|
123
|
+
markerId: "interop",
|
|
123
124
|
title: "Interop",
|
|
124
125
|
items: buildItems(deps),
|
|
125
126
|
filterable: true,
|
|
@@ -62,7 +62,7 @@ function confirmOverlayWidth(columns: number): number {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
/** Render the plan: what is being installed, alongside what, and to where. */
|
|
65
|
-
|
|
65
|
+
function formatLibraryInstallConfirmBody(subject: LibraryInstallConfirmSubject, width: number): string[] {
|
|
66
66
|
const theme = clioTheme();
|
|
67
67
|
const contentWidth = Math.max(1, Math.floor(width));
|
|
68
68
|
const rows: string[] = [];
|
|
@@ -137,6 +137,7 @@ export function openLibraryInstallConfirmOverlay(
|
|
|
137
137
|
const handle = showClioOverlayFrame(tui, focus, {
|
|
138
138
|
anchor: "center",
|
|
139
139
|
width: confirmOverlayWidth(options.columns),
|
|
140
|
+
markerId: "library-install",
|
|
140
141
|
title: LIBRARY_INSTALL_CONFIRM_TITLE,
|
|
141
142
|
footerHint: buildResponsiveHint([{ key: "Enter", verb: "install" }], { key: "Esc", verb: "cancel" }),
|
|
142
143
|
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Skills Hub's tab table.
|
|
3
|
+
*
|
|
4
|
+
* It sits in its own module rather than inside `skills-hub.ts` because the slash
|
|
5
|
+
* registry parses `/library <kind>` against it, and the registry has to stay off
|
|
6
|
+
* the render module graph. Pulling the whole hub overlay in for four ids made
|
|
7
|
+
* `src/cli/run.ts` a second, disjoint reacher of the interactive theme and
|
|
8
|
+
* `src/engine/tui.ts`, which splits the merged chunk the Stage 0 instant shell
|
|
9
|
+
* depends on. See `tests/contracts/instant-shell-import-graph.test.ts`.
|
|
10
|
+
*
|
|
11
|
+
* Pure data plus its membership test: no rendering, no overlay state.
|
|
12
|
+
* `skills-hub.ts` re-exports both symbols, so every existing importer keeps the
|
|
13
|
+
* path it had.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import type { LibraryEntryKind } from "../../domains/resources/index.js";
|
|
17
|
+
|
|
18
|
+
/** The hub's tabs, in the order ←/→ walks them. `skill` is the original view. */
|
|
19
|
+
export const LIBRARY_TABS: ReadonlyArray<{ id: LibraryEntryKind; label: string }> = [
|
|
20
|
+
{ id: "skill", label: "Skills" },
|
|
21
|
+
{ id: "agent", label: "Agents" },
|
|
22
|
+
{ id: "prompt", label: "Prompts" },
|
|
23
|
+
{ id: "fleet", label: "Fleets" },
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
export function isLibraryTab(value: string): value is LibraryEntryKind {
|
|
27
|
+
return LIBRARY_TABS.some((tab) => tab.id === value);
|
|
28
|
+
}
|
|
@@ -742,11 +742,20 @@ export interface ListOverlayHandle extends OverlayHandle {
|
|
|
742
742
|
activeTabId(): string;
|
|
743
743
|
}
|
|
744
744
|
|
|
745
|
-
|
|
745
|
+
/**
|
|
746
|
+
* The marker id rides on the opener rather than on `ListOverlayOptions` because
|
|
747
|
+
* it belongs to the mounted modal, not to the view: the view renders the same
|
|
748
|
+
* rows whether it is a modal or a body inside something else. It is named by
|
|
749
|
+
* the surface rather than derived from `title`, because a tabbed overlay's
|
|
750
|
+
* rendered title names the active tab while the modal holding the keyboard has
|
|
751
|
+
* not changed hands.
|
|
752
|
+
*/
|
|
753
|
+
export function openListOverlay(tui: TUI, options: ListOverlayOptions & { markerId: string }): ListOverlayHandle {
|
|
746
754
|
const view = new ListOverlayView(options, () => tui.requestRender());
|
|
747
755
|
const handle = showClioOverlayFrame(tui, view, {
|
|
748
756
|
anchor: "center",
|
|
749
757
|
width: 100,
|
|
758
|
+
markerId: options.markerId,
|
|
750
759
|
// A function, not the string: on a tabbed overlay the title names the tab
|
|
751
760
|
// and must be re-read after every switch.
|
|
752
761
|
title: () => view.title(),
|
|
@@ -107,7 +107,7 @@ function rowsToItems(rows: ReadonlyArray<MessagePickerRow>): SelectItem[] {
|
|
|
107
107
|
}));
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
function createMessagePickerContent(
|
|
111
111
|
rows: ReadonlyArray<MessagePickerRow>,
|
|
112
112
|
onFork: (parentTurnId: string) => void,
|
|
113
113
|
onClose: () => void,
|
|
@@ -149,6 +149,7 @@ export function openMessagePickerOverlay(tui: TUI, deps: OpenMessagePickerOverla
|
|
|
149
149
|
return showClioOverlayFrame(tui, box, {
|
|
150
150
|
anchor: "center",
|
|
151
151
|
width: MESSAGE_PICKER_OVERLAY_WIDTH,
|
|
152
|
+
markerId: "message-picker",
|
|
152
153
|
title: "Fork",
|
|
153
154
|
footerHint: rows.length > 0 ? buildHint([{ key: "Enter", verb: "select" }]) : buildHint([]),
|
|
154
155
|
});
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a `/model` swap lands: this session, or this session and settings.yaml.
|
|
3
|
+
*
|
|
4
|
+
* Smoke pass 2 (G3) swapped the live model mid-conversation and found the
|
|
5
|
+
* orchestrator role rewritten in settings.yaml with no prompt, so the next
|
|
6
|
+
* launch came up pointed at an endpoint that no longer existed. Every other
|
|
7
|
+
* durable change in the product goes through the settings center's scoped
|
|
8
|
+
* commit; this is that commit for the one path that used to skip it.
|
|
9
|
+
*
|
|
10
|
+
* Session is first and selected by default: a mid-conversation swap is a thing
|
|
11
|
+
* the operator is trying, and the cheap answer to a bad try is closing the
|
|
12
|
+
* session rather than editing a file.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import type { ThinkingLevel } from "../../core/defaults.js";
|
|
16
|
+
import { type OverlayHandle, type SelectItem, SelectList, type TUI } from "../../engine/tui.js";
|
|
17
|
+
import { buildHint, DEFAULT_SELECT_THEME, FocusBox, showClioOverlayFrame } from "../overlay-frame.js";
|
|
18
|
+
|
|
19
|
+
export const MODEL_SCOPE_OVERLAY_WIDTH = 72;
|
|
20
|
+
|
|
21
|
+
export type ModelScopeChoice = "session" | "global";
|
|
22
|
+
|
|
23
|
+
/** The swap awaiting a destination. `thinkingLevel` is set only when the operator named one. */
|
|
24
|
+
export interface PendingModelScope {
|
|
25
|
+
target: string;
|
|
26
|
+
model: string;
|
|
27
|
+
thinkingLevel?: ThinkingLevel;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface OpenModelScopeOverlayDeps {
|
|
31
|
+
ref: PendingModelScope;
|
|
32
|
+
/** Called only for one of the two applying choices. */
|
|
33
|
+
onChoose: (scope: ModelScopeChoice) => void;
|
|
34
|
+
/** Called for the explicit Cancel row and for Esc. Nothing has changed yet. */
|
|
35
|
+
onCancel: () => void;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** The swap as the operator typed it, for the dialog title. */
|
|
39
|
+
export function formatPendingModelScope(ref: PendingModelScope): string {
|
|
40
|
+
const thinking = ref.thinkingLevel ? ` thinking=${ref.thinkingLevel}` : "";
|
|
41
|
+
return `${ref.target}/${ref.model}${thinking}`;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** Three outcomes, least durable first, matching the settings center's order. */
|
|
45
|
+
function buildModelScopeItems(): SelectItem[] {
|
|
46
|
+
return [
|
|
47
|
+
{
|
|
48
|
+
value: "session",
|
|
49
|
+
label: "Apply this session",
|
|
50
|
+
description: "route this session only; settings.yaml is untouched",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
value: "global",
|
|
54
|
+
label: "Apply and save globally",
|
|
55
|
+
description: "also the orchestrator route the next launch starts on",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
value: "cancel",
|
|
59
|
+
label: "Cancel",
|
|
60
|
+
description: "keep the current model",
|
|
61
|
+
},
|
|
62
|
+
];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function openModelScopeOverlay(tui: TUI, deps: OpenModelScopeOverlayDeps): OverlayHandle {
|
|
66
|
+
const items = buildModelScopeItems();
|
|
67
|
+
const list = new SelectList(items, items.length, DEFAULT_SELECT_THEME);
|
|
68
|
+
list.onSelect = (item: SelectItem): void => {
|
|
69
|
+
if (item.value === "session" || item.value === "global") {
|
|
70
|
+
deps.onChoose(item.value);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
deps.onCancel();
|
|
74
|
+
};
|
|
75
|
+
list.onCancel = (): void => {
|
|
76
|
+
deps.onCancel();
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
return showClioOverlayFrame(tui, new FocusBox(list), {
|
|
80
|
+
anchor: "center",
|
|
81
|
+
width: MODEL_SCOPE_OVERLAY_WIDTH,
|
|
82
|
+
markerId: "model-scope",
|
|
83
|
+
title: `Apply ${formatPendingModelScope(deps.ref)}`,
|
|
84
|
+
footerHint: buildHint([{ key: "Enter", verb: "select" }]),
|
|
85
|
+
});
|
|
86
|
+
}
|
|
@@ -30,13 +30,14 @@ import {
|
|
|
30
30
|
type TUI,
|
|
31
31
|
truncateToWidth,
|
|
32
32
|
visibleWidth,
|
|
33
|
+
wrapTextWithAnsi,
|
|
33
34
|
} from "../../engine/tui.js";
|
|
34
35
|
import {
|
|
35
36
|
buildHint,
|
|
36
37
|
clioError,
|
|
38
|
+
diagnosticSeverityToken,
|
|
37
39
|
FILTER_HINT,
|
|
38
40
|
formatRuntimeResolutionDiagnostic,
|
|
39
|
-
runtimeResolutionDiagnosticLine,
|
|
40
41
|
showClioOverlayFrame,
|
|
41
42
|
} from "../overlay-frame.js";
|
|
42
43
|
import { type ClioToken, clioTheme, GLYPH } from "../theme/index.js";
|
|
@@ -357,18 +358,15 @@ function buildSummary(rows: ReadonlyArray<ModelRow>, targets: number, activeRef:
|
|
|
357
358
|
* row per candidate wire model (see `modelsForTarget`). Targets without
|
|
358
359
|
* a resolvable wire model still render a single "no-model" row so users can
|
|
359
360
|
* see the target exists and why it is not selectable. Scope stars come from
|
|
360
|
-
* `settings.
|
|
361
|
+
* `settings.chat.modelPicker.cycleSet`: both plain `targetId` and `targetId/wireModelId` refs
|
|
361
362
|
* match so a user can pin either granularity.
|
|
362
363
|
*/
|
|
363
|
-
|
|
364
|
-
settings
|
|
365
|
-
|
|
366
|
-
}): ModelItemsResult {
|
|
367
|
-
const activeTarget = deps.settings.orchestrator?.target?.trim() ?? "";
|
|
368
|
-
const activeModel = deps.settings.orchestrator?.model?.trim() ?? "";
|
|
364
|
+
function buildModelItems(deps: { settings: Readonly<ClioSettings>; providers: ProvidersContract }): ModelItemsResult {
|
|
365
|
+
const activeTarget = deps.settings.chat?.target?.trim() ?? "";
|
|
366
|
+
const activeModel = deps.settings.chat?.model?.trim() ?? "";
|
|
369
367
|
const activeRef = activeTarget && activeModel ? `${activeTarget}/${activeModel}` : activeTarget;
|
|
370
|
-
const favoriteSet = new Set(deps.settings.
|
|
371
|
-
const recentSet = new Set(listRecentModels({ limit: deps.settings.
|
|
368
|
+
const favoriteSet = new Set(deps.settings.chat.modelPicker?.favorites ?? []);
|
|
369
|
+
const recentSet = new Set(listRecentModels({ limit: deps.settings.chat.modelPicker?.recentLimit ?? 12 }));
|
|
372
370
|
const list = [...deps.providers.list()]
|
|
373
371
|
.filter((status) => {
|
|
374
372
|
return status.runtime !== null && isOrchestratorEligibleRuntime(status.runtime);
|
|
@@ -383,7 +381,7 @@ export function buildModelItems(deps: {
|
|
|
383
381
|
a.target.id.localeCompare(b.target.id)
|
|
384
382
|
);
|
|
385
383
|
});
|
|
386
|
-
const scopeSet = new Set(deps.settings.
|
|
384
|
+
const scopeSet = new Set(deps.settings.chat.modelPicker.cycleSet ?? []);
|
|
387
385
|
const items: SelectItem[] = [];
|
|
388
386
|
const refs: ModelSelection[] = [];
|
|
389
387
|
const rows: ModelRow[] = [];
|
|
@@ -403,7 +401,7 @@ export function buildModelItems(deps: {
|
|
|
403
401
|
providers: deps.providers,
|
|
404
402
|
status,
|
|
405
403
|
wireModelId: fallbackModel,
|
|
406
|
-
requestedThinkingLevel: deps.settings.
|
|
404
|
+
requestedThinkingLevel: deps.settings.chat?.thinkingLevel,
|
|
407
405
|
})
|
|
408
406
|
: null;
|
|
409
407
|
const rowCaps = resolution?.capabilities ?? status.capabilities;
|
|
@@ -457,7 +455,7 @@ export function buildModelItems(deps: {
|
|
|
457
455
|
providers: deps.providers,
|
|
458
456
|
status,
|
|
459
457
|
wireModelId: wireModel,
|
|
460
|
-
requestedThinkingLevel: deps.settings.
|
|
458
|
+
requestedThinkingLevel: deps.settings.chat?.thinkingLevel,
|
|
461
459
|
});
|
|
462
460
|
const rowCaps = resolution.capabilities;
|
|
463
461
|
const decisions = resolution.capabilityDecisions;
|
|
@@ -665,18 +663,23 @@ function formatModelDetail(row: ModelRow, width: number): string[] {
|
|
|
665
663
|
// The detail block is quiet scaffolding beneath the selected row; only the
|
|
666
664
|
// diagnostics carry a semantic token, so the two fact lines render dim.
|
|
667
665
|
return [
|
|
668
|
-
theme.fg("dim",
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
666
|
+
...wrapTextWithAnsi(theme.fg("dim", `${state} ${ref} · ${availability} · auth ${row.authText}`), width),
|
|
667
|
+
...wrapTextWithAnsi(
|
|
668
|
+
theme.fg(
|
|
669
|
+
"dim",
|
|
672
670
|
`source ${sourceLabel(row.source)}${loadState} · ${row.runtimeName} · ${row.apiFamily} · max output ${row.maxTokens} · thinking ${row.thinking ?? "-"} · streaming ${row.streaming === false ? "no" : "yes"} · ${capabilityNames(row.caps)}`,
|
|
673
|
-
width,
|
|
674
671
|
),
|
|
672
|
+
width,
|
|
675
673
|
),
|
|
676
674
|
...(row.diagnostics ?? [])
|
|
677
675
|
.filter((entry) => entry.severity !== "info")
|
|
678
676
|
.slice(0, 2)
|
|
679
|
-
.
|
|
677
|
+
.flatMap((entry) =>
|
|
678
|
+
wrapTextWithAnsi(
|
|
679
|
+
theme.fg(diagnosticSeverityToken(entry.severity), formatRuntimeResolutionDiagnostic(entry)),
|
|
680
|
+
width,
|
|
681
|
+
),
|
|
682
|
+
),
|
|
680
683
|
];
|
|
681
684
|
}
|
|
682
685
|
|
|
@@ -765,23 +768,24 @@ function renderModelOverlayLines(input: {
|
|
|
765
768
|
width,
|
|
766
769
|
),
|
|
767
770
|
),
|
|
768
|
-
|
|
771
|
+
...wrapTextWithAnsi(
|
|
772
|
+
theme.fg("dim", `current ${active} · focus shows current, favorites, recent, and target defaults`),
|
|
773
|
+
width,
|
|
774
|
+
),
|
|
769
775
|
];
|
|
770
776
|
const refreshLine = refreshStatusLine(input.refreshing, input.refreshError);
|
|
771
777
|
if (refreshLine)
|
|
772
|
-
lines.push(
|
|
773
|
-
|
|
774
|
-
);
|
|
775
|
-
if (input.selectionError) lines.push(clioError(fitLine(input.selectionError, width)));
|
|
778
|
+
lines.push(...wrapTextWithAnsi(input.refreshError ? clioError(refreshLine) : theme.fg("dim", refreshLine), width));
|
|
779
|
+
if (input.selectionError) lines.push(...wrapTextWithAnsi(clioError(input.selectionError), width));
|
|
776
780
|
lines.push(formatModelHeader(width));
|
|
777
781
|
if (filtered.length === 0) {
|
|
778
782
|
lines.push(
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
783
|
+
...wrapTextWithAnsi(
|
|
784
|
+
theme.fg(
|
|
785
|
+
"muted",
|
|
782
786
|
searching ? " no models match the current filter" : " no focused models; type to search or press Tab for all",
|
|
783
|
-
width,
|
|
784
787
|
),
|
|
788
|
+
width,
|
|
785
789
|
),
|
|
786
790
|
);
|
|
787
791
|
} else {
|
|
@@ -989,8 +993,12 @@ export class ModelOverlayView implements Component {
|
|
|
989
993
|
if (kb.matches(data, "tui.select.confirm") || matchesKey(data, "enter") || data === "\n") {
|
|
990
994
|
const row = this.selectedRow();
|
|
991
995
|
if (row?.selectable) {
|
|
992
|
-
|
|
996
|
+
// Close the picker before handing the selection to its owner. The
|
|
997
|
+
// application opens the session/global scope confirmation from
|
|
998
|
+
// onSelect; closing afterwards would immediately close that new overlay
|
|
999
|
+
// and leave the model binding unchanged.
|
|
993
1000
|
this.onClose();
|
|
1001
|
+
this.onSelect({ target: row.target, model: row.model });
|
|
994
1002
|
return;
|
|
995
1003
|
}
|
|
996
1004
|
this.selectionError = row
|
|
@@ -1056,8 +1064,8 @@ export function openModelOverlay(tui: TUI, deps: OpenModelOverlayDeps): OverlayH
|
|
|
1056
1064
|
};
|
|
1057
1065
|
const initial = build();
|
|
1058
1066
|
const overlayWidth = resolveOverlayWidth(tui.terminal?.columns ?? 0);
|
|
1059
|
-
const activeTarget = currentSettings().
|
|
1060
|
-
const activeModel = currentSettings().
|
|
1067
|
+
const activeTarget = currentSettings().chat?.target?.trim();
|
|
1068
|
+
const activeModel = currentSettings().chat?.model?.trim();
|
|
1061
1069
|
const view = new ModelOverlayView(
|
|
1062
1070
|
initial.rows,
|
|
1063
1071
|
initial.summary,
|
|
@@ -1085,6 +1093,7 @@ export function openModelOverlay(tui: TUI, deps: OpenModelOverlayDeps): OverlayH
|
|
|
1085
1093
|
const handle = showClioOverlayFrame(tui, view, {
|
|
1086
1094
|
anchor: "center",
|
|
1087
1095
|
width: overlayWidth,
|
|
1096
|
+
markerId: "model",
|
|
1088
1097
|
title: "Models",
|
|
1089
1098
|
footerHint: buildHint([
|
|
1090
1099
|
FILTER_HINT,
|
|
@@ -11,7 +11,12 @@ export function openPromptsOverlay(tui: TUI, ctx: SlashCommandContext, onClose:
|
|
|
11
11
|
const promptsList = ctx.listPrompts();
|
|
12
12
|
const items: ListOverlayItem[] = promptsList.items.map((template) => {
|
|
13
13
|
const usage = `/${template.name}${template.argumentHint ? ` ${template.argumentHint}` : ""}`;
|
|
14
|
-
|
|
14
|
+
// The usage already carries the argument synopsis. Repeating it in the
|
|
15
|
+
// right-aligned metadata column starves the description at 60 columns, and
|
|
16
|
+
// a usage longer than the alignment stop used to join directly to its first
|
|
17
|
+
// word (`[description]Capture`). Two literal cells remain a separator even
|
|
18
|
+
// when the command has outgrown the nominal column.
|
|
19
|
+
const label = `${usage.padEnd(28)} ${template.description}`;
|
|
15
20
|
const item: ListOverlayItem = {
|
|
16
21
|
id: template.name,
|
|
17
22
|
label,
|
|
@@ -26,7 +31,9 @@ export function openPromptsOverlay(tui: TUI, ctx: SlashCommandContext, onClose:
|
|
|
26
31
|
lines.push(`**Unavailable:** ${template.unavailable}`);
|
|
27
32
|
}
|
|
28
33
|
if (!template.trusted) {
|
|
29
|
-
lines.push(
|
|
34
|
+
lines.push(
|
|
35
|
+
"**Untrusted:** set `integrations.projectResources.trustProjectImports` before this template will expand.",
|
|
36
|
+
);
|
|
30
37
|
}
|
|
31
38
|
return lines;
|
|
32
39
|
},
|
|
@@ -39,8 +46,7 @@ export function openPromptsOverlay(tui: TUI, ctx: SlashCommandContext, onClose:
|
|
|
39
46
|
: template.trusted
|
|
40
47
|
? undefined
|
|
41
48
|
: clioTheme().fg("warning", "untrusted");
|
|
42
|
-
if (marker) item.meta =
|
|
43
|
-
else if (template.argumentHint) item.meta = template.argumentHint;
|
|
49
|
+
if (marker) item.meta = marker;
|
|
44
50
|
return item;
|
|
45
51
|
});
|
|
46
52
|
|
|
@@ -67,6 +73,7 @@ export function openPromptsOverlay(tui: TUI, ctx: SlashCommandContext, onClose:
|
|
|
67
73
|
const allItems = [...items, ...diagnosticItems];
|
|
68
74
|
|
|
69
75
|
return openListOverlay(tui, {
|
|
76
|
+
markerId: "prompts",
|
|
70
77
|
title: "Prompt Templates",
|
|
71
78
|
items: allItems,
|
|
72
79
|
filterable: true,
|
|
@@ -74,7 +74,7 @@ function metaStrip(meta: SessionMeta, now: number): string {
|
|
|
74
74
|
* (status, last-activity, msg count, target/model) in the primary column
|
|
75
75
|
* and the first user-message preview in the description column.
|
|
76
76
|
*/
|
|
77
|
-
|
|
77
|
+
function buildSessionItems(sessions: ReadonlyArray<SessionMeta>, now: number = Date.now()): SelectItem[] {
|
|
78
78
|
return sessions.map((meta) => {
|
|
79
79
|
const labels = meta.labels && meta.labels.length > 0 ? ` labels: ${meta.labels.join(", ")}` : "";
|
|
80
80
|
return {
|
|
@@ -117,7 +117,7 @@ function isBareEscape(data: string): boolean {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
/** @internal */
|
|
120
|
-
|
|
120
|
+
function createSessionOverlayBox(
|
|
121
121
|
sessions: ReadonlyArray<SessionMeta>,
|
|
122
122
|
onSelect: (sessionId: string) => void,
|
|
123
123
|
onClose: () => void,
|
|
@@ -271,6 +271,7 @@ export function openSessionOverlay(tui: TUI, deps: OpenSessionOverlayDeps): Over
|
|
|
271
271
|
const handle = showClioOverlayFrame(tui, box, {
|
|
272
272
|
anchor: "center",
|
|
273
273
|
width: SESSION_OVERLAY_WIDTH,
|
|
274
|
+
markerId: "resume",
|
|
274
275
|
title: "Sessions",
|
|
275
276
|
footerHint: buildHint([FILTER_HINT, { key: "Enter", verb: "resume" }]),
|
|
276
277
|
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Settings Center's section table.
|
|
3
|
+
*
|
|
4
|
+
* It sits in its own module rather than inside `settings.ts` because the slash
|
|
5
|
+
* registry parses `/settings <section>` and every `/targets`-style deep link
|
|
6
|
+
* against it, and the registry has to stay off the render module graph. Pulling
|
|
7
|
+
* the whole settings overlay in for eleven ids made `src/cli/run.ts` a second,
|
|
8
|
+
* disjoint reacher of the interactive theme and `src/engine/tui.ts`, which
|
|
9
|
+
* splits the merged chunk the Stage 0 instant shell depends on. See
|
|
10
|
+
* `tests/contracts/instant-shell-import-graph.test.ts`.
|
|
11
|
+
*
|
|
12
|
+
* Pure data: no imports, no rendering, no settings I/O. `settings.ts` re-exports
|
|
13
|
+
* both symbols, so every existing importer keeps the path it had.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
export const SETTINGS_SECTIONS = [
|
|
17
|
+
{ id: "safety", label: "Autonomy & Safety", group: "CORE" },
|
|
18
|
+
{ id: "orchestrator", label: "Orchestrator", group: "CORE" },
|
|
19
|
+
{ id: "fleet", label: "Fleet", group: "ROUTING" },
|
|
20
|
+
{ id: "targets", label: "Targets", group: "ROUTING" },
|
|
21
|
+
{ id: "models", label: "Models", group: "ROUTING" },
|
|
22
|
+
{ id: "budget", label: "Budget", group: "RUNTIME" },
|
|
23
|
+
{ id: "compaction", label: "Compaction", group: "RUNTIME" },
|
|
24
|
+
{ id: "retry", label: "Retry", group: "RUNTIME" },
|
|
25
|
+
{ id: "terminal", label: "Terminal", group: "EXPERIENCE" },
|
|
26
|
+
{ id: "watchdog", label: "Watchdog", group: "EXPERIENCE" },
|
|
27
|
+
{ id: "advanced", label: "Advanced", group: "EXPERIENCE" },
|
|
28
|
+
] as const;
|
|
29
|
+
|
|
30
|
+
export type SettingsSectionId = (typeof SETTINGS_SECTIONS)[number]["id"];
|