@iowarp/clio-coder 0.3.9 → 0.4.0
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 +53 -0
- package/NOTICE +33 -0
- package/README.md +7 -2
- package/dist/{acp-7LOELQFP.js → acp-G5WJBNCT.js} +13 -12
- package/dist/{agents-FIBG2SHA.js → agents-FMV2Q5G4.js} +39 -36
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-OI4LIH2I.js → auth-3IDSJEIK.js} +16 -15
- package/dist/{builtins-AD25UL3C.js → builtins-XCZWXSC7.js} +3 -3
- package/dist/{chunk-IFBNV6H6.js → chunk-2ANTL7MR.js} +3 -3
- package/dist/{chunk-56KB5IJP.js → chunk-2OQE55CK.js} +3 -3
- package/dist/{chunk-N3PBVRTZ.js → chunk-32KWKNSF.js} +9 -7
- package/dist/{chunk-VKBMFOYV.js → chunk-36EJLSQQ.js} +23 -27
- package/dist/{chunk-465CC7FK.js → chunk-3BT2XMV4.js} +16 -13
- package/dist/{chunk-NQ6UCCOD.js → chunk-3URVFKWK.js} +7 -7
- package/dist/{chunk-WIE7ZOSW.js → chunk-3XML7CDN.js} +2 -2
- package/dist/chunk-42FMPA75.js +101 -0
- package/dist/{chunk-A2NJGIB3.js → chunk-5LXZXPKX.js} +2 -2
- package/dist/{chunk-HAY4ZE2P.js → chunk-5PSMVOLM.js} +2 -2
- package/dist/{chunk-JEQQR47K.js → chunk-6DB53AJS.js} +168 -9
- package/dist/{chunk-KV2AOLDF.js → chunk-76ONBSIA.js} +5 -25
- package/dist/{chunk-FALJGAWU.js → chunk-7MCTRUCE.js} +2 -2
- package/dist/{chunk-5T7RBWN2.js → chunk-AB44T6BB.js} +5 -5
- package/dist/chunk-B7OBL7PK.js +1405 -0
- package/dist/{chunk-B5CSFE7B.js → chunk-BBVJUZHB.js} +2 -2
- package/dist/{chunk-EQ63NRB7.js → chunk-BBVYXMFO.js} +2 -2
- package/dist/{chunk-O6I4CIEU.js → chunk-BKFJHQCA.js} +6 -6
- package/dist/chunk-BKFM6EJV.js +462 -0
- package/dist/chunk-BMS5RKQY.js +27 -0
- package/dist/{chunk-MV2VUEJC.js → chunk-BPKCPIL7.js} +2 -2
- package/dist/{chunk-TEO2TLVN.js → chunk-BUMFYQFY.js} +964 -1120
- package/dist/{chunk-BNAZZHFG.js → chunk-BYP5D4HI.js} +1 -1
- package/dist/chunk-C2LTL2W6.js +2447 -0
- package/dist/{chunk-EBOC7MT3.js → chunk-CODPRO7Q.js} +8 -8
- package/dist/{chunk-HPCTNZM2.js → chunk-CTJ4RNAA.js} +4 -4
- package/dist/{chunk-ODFEOB4F.js → chunk-CY6FY24N.js} +26 -8
- package/dist/{chunk-MIX5N5AC.js → chunk-DQITNCXG.js} +394 -154
- package/dist/{chunk-S4COXYBG.js → chunk-DYJP44XW.js} +129 -106
- package/dist/{chunk-N5XKWMDW.js → chunk-F4CKPOEQ.js} +6 -6
- package/dist/{chunk-AMKHQW3C.js → chunk-FEFIFZTL.js} +3 -3
- package/dist/{chunk-MV3K5QF2.js → chunk-GCSMB2KY.js} +2 -2
- package/dist/{chunk-7C6RYZGQ.js → chunk-GKF55TAZ.js} +3 -3
- package/dist/{chunk-B5XRQOLB.js → chunk-GR5G2PVF.js} +9 -8
- package/dist/{chunk-XDOQXGFO.js → chunk-GXNLGKAB.js} +64 -8
- package/dist/chunk-HHV2GANA.js +88 -0
- package/dist/{chunk-774ILSRL.js → chunk-HI63TFOG.js} +4 -3
- package/dist/{chunk-R7LNVMCS.js → chunk-HJJTYUHX.js} +64 -72
- package/dist/{chunk-RKRLDWD3.js → chunk-HLW2MRKE.js} +1 -1
- package/dist/{chunk-CA42X6KT.js → chunk-HWHKMHUA.js} +6 -6
- package/dist/chunk-HZHHCK24.js +1631 -0
- package/dist/{chunk-HJB5IUKP.js → chunk-I5VEOC6I.js} +12 -12
- package/dist/chunk-IBEBSCYA.js +564 -0
- package/dist/chunk-IQ7KR472.js +362 -0
- package/dist/{chunk-4H6ULJ3H.js → chunk-J4W7KFM7.js} +921 -990
- package/dist/{chunk-4LJX2PUC.js → chunk-JDG2WCRO.js} +5 -5
- package/dist/{chunk-NZU6YDNV.js → chunk-K5C3NCBD.js} +4 -4
- package/dist/{chunk-CGKSTWHD.js → chunk-K6BSR66V.js} +2 -1
- package/dist/{chunk-NNNWO6F2.js → chunk-KFZI4NIL.js} +93 -3
- package/dist/chunk-KMVISBZR.js +132 -0
- package/dist/{chunk-BVDVID7E.js → chunk-LDQ2ZF2M.js} +2 -2
- package/dist/{chunk-OEDBCISO.js → chunk-LQ3DZAMX.js} +2 -2
- package/dist/{chunk-PZ4I4JE2.js → chunk-LY4S7GJC.js} +124 -116
- package/dist/{chunk-3DUR4WUA.js → chunk-MLKNTWH2.js} +19 -19
- package/dist/chunk-NEKRRTYW.js +56 -0
- package/dist/{chunk-5DQRIYDZ.js → chunk-NHCZP4K7.js} +2 -2
- package/dist/chunk-NHLBIGRH.js +1506 -0
- package/dist/chunk-NQQH3YT7.js +302 -0
- package/dist/chunk-NYS75XW5.js +15 -0
- package/dist/{chunk-TD7UE2L5.js → chunk-O4XIVISU.js} +7 -7
- package/dist/{chunk-WXCJ7VME.js → chunk-O6TL7WWY.js} +6 -6
- package/dist/chunk-OQBA45DZ.js +97 -0
- package/dist/{chunk-LU7P4LHA.js → chunk-P3FOHJT4.js} +2 -2
- package/dist/chunk-PMZCIOCJ.js +25 -0
- package/dist/{chunk-I4HZDVNP.js → chunk-PQEFIJ36.js} +2 -2
- package/dist/{chunk-HKO36JWF.js → chunk-QBJA7R7N.js} +31 -3
- package/dist/chunk-QDC3K2U3.js +262 -0
- package/dist/{chunk-5HFBWUMU.js → chunk-QLFS5GO2.js} +4 -4
- package/dist/{chunk-GAYUJ7LE.js → chunk-QLL7ILRG.js} +41 -32
- package/dist/{chunk-LXPJXFM5.js → chunk-QREDIESB.js} +7 -7
- package/dist/chunk-QSNYB6ZV.js +195 -0
- package/dist/chunk-R346GLFC.js +31 -0
- package/dist/{chunk-VPTUJU4P.js → chunk-SJ5ZKQ4S.js} +2 -2
- package/dist/{chunk-QQ7EKM72.js → chunk-SP2RXXYO.js} +6 -54
- package/dist/chunk-SUCTJL45.js +45 -0
- package/dist/{chunk-5QKCQQ3E.js → chunk-SUW5DORT.js} +2 -2
- package/dist/chunk-T56WDKA5.js +183 -0
- package/dist/chunk-TVHHYFHE.js +255 -0
- package/dist/{chunk-IHKBWSXF.js → chunk-TZ3SGWZZ.js} +2 -2
- package/dist/{chunk-ECUO3KDP.js → chunk-U77AMWDL.js} +47 -7
- package/dist/{chunk-3UUY7R3Z.js → chunk-ULC6OTWO.js} +7 -7
- package/dist/{chunk-AEYBF3TB.js → chunk-UM7N4G5A.js} +2 -2
- package/dist/{chunk-3V5AYSEQ.js → chunk-UXMFQ54G.js} +43 -36
- package/dist/{chunk-YW7UVM5V.js → chunk-V5DHCITQ.js} +34 -1
- package/dist/{chunk-47CMYGET.js → chunk-VAZSBTKF.js} +2 -2
- package/dist/{chunk-3MRC2YSQ.js → chunk-VEO4AP2K.js} +2 -2
- package/dist/{chunk-PNY46YEY.js → chunk-VFA6GDY5.js} +47 -3
- package/dist/chunk-VO67MWHC.js +75 -0
- package/dist/{chunk-XK56QHLX.js → chunk-VPKWYKEY.js} +19 -5
- package/dist/{chunk-AD7Y7STJ.js → chunk-VYMXRQI6.js} +36 -22
- package/dist/{chunk-T3Z6VAAF.js → chunk-W5VSYASO.js} +19 -17
- package/dist/{chunk-5PVQ4SRS.js → chunk-WZR7K7ZX.js} +7 -123
- package/dist/{chunk-DG4M6ZUE.js → chunk-X3YGUTOB.js} +4 -4
- package/dist/chunk-X75E3D2N.js +686 -0
- package/dist/{chunk-P3JGPQFL.js → chunk-YDFRH54B.js} +4 -4
- package/dist/chunk-YJX4SHTD.js +40 -0
- package/dist/{chunk-ZI647VB5.js → chunk-YPI3QQCF.js} +2 -2
- package/dist/{chunk-YSEHGPCT.js → chunk-Z2RR6MAK.js} +3 -3
- package/dist/{chunk-HCBCAYZU.js → chunk-Z4TXYIEG.js} +5 -5
- package/dist/cli/index.js +47 -36
- package/dist/{clio-LT5V7SSZ.js → clio-2JXHBBY5.js} +7 -7
- package/dist/{code-nav-LMW275PA.js → code-nav-3YYRMYNF.js} +6 -6
- package/dist/{compile-cache-CVJMMODC.js → compile-cache-7FPE6PS3.js} +3 -3
- package/dist/{components-ZFA3SAER.js → components-RYZV4JGP.js} +5 -5
- package/dist/{config-RXS5T3JT.js → config-QZPCMYSO.js} +58 -50
- package/dist/{configure-2WYWSCSD.js → configure-TEGEBYCA.js} +21 -19
- package/dist/{context-I3BTOTCS.js → context-AV7OEZ4D.js} +11 -11
- package/dist/{context-MVOORGMF.js → context-E6H5RNMC.js} +49 -41
- package/dist/{context-PALKKQYL.js → context-GSXUE4CT.js} +25 -23
- package/dist/{context-clear-N2WOYZ2K.js → context-clear-SHIBYK6T.js} +48 -40
- package/dist/{context-working-set-MIEVECVZ.js → context-working-set-5ZGKPGZQ.js} +11 -10
- package/dist/{dispatch-runner-VVA4SRRH.js → dispatch-runner-EFMJT4LD.js} +88 -60
- package/dist/{docs-7LQ23DLM.js → docs-23KQS3XK.js} +5 -5
- package/dist/doctor-QOA5FNY5.js +313 -0
- package/dist/{eval-IJ5VEZDJ.js → eval-TFBYQH4H.js} +66 -64
- package/dist/eval-inventory-SXH7PDKX.js +316 -0
- package/dist/{evidence-L5APPXNV.js → evidence-ERGESKGN.js} +198 -44
- package/dist/{evolve-RGNKFJ52.js → evolve-VDXTSYCJ.js} +46 -38
- package/dist/{extensions-7WYWUX5A.js → extensions-7BGBHN57.js} +6 -6
- package/dist/{fleet-6CNVBZZP.js → fleet-2RRVDF2V.js} +189 -101
- package/dist/{fleet-commands-L2SXSYEI.js → fleet-commands-VJ726XIA.js} +10 -10
- package/dist/fleet-decisions-EPAPM3XJ.js +157 -0
- package/dist/{fleet-graph-2J3OOIPO.js → fleet-graph-JF5QOATM.js} +16 -15
- package/dist/fleet-inspect-VLY4S7QM.js +442 -0
- package/dist/{fleet-preflight-CZRJ4JP5.js → fleet-preflight-AIZUEJOY.js} +6 -5
- package/dist/{fleet-validate-C5RI6DP7.js → fleet-validate-AJRPDMDV.js} +20 -18
- package/dist/fleet-verify-JFEL2L3H.js +175 -0
- package/dist/fleet-view-ZCON35AG.js +102 -0
- package/dist/{init-VBN2ACVA.js → init-DN2WWLFE.js} +64 -56
- package/dist/install-XGLBQY5E.js +13 -0
- package/dist/interop-OZBKXAYL.js +114 -0
- package/dist/{library-JHGUMLY2.js → library-YWZG7IMW.js} +19 -18
- package/dist/{memory-K4OQIYWG.js → memory-I4C4HMLW.js} +48 -40
- package/dist/{models-2NCZUWDD.js → models-CEYXJBO6.js} +30 -28
- package/dist/{monitor-MMVTJABD.js → monitor-NZ6GCI3P.js} +53 -47
- package/dist/{orchestrator-ZKBPCHW6.js → orchestrator-GCGQ4N5I.js} +6311 -7145
- package/dist/panes-HMABYVO4.js +58 -0
- package/dist/panes-KY6W3V2E.js +103 -0
- package/dist/{paths-DBXMZMDU.js → paths-II4K7DNR.js} +5 -5
- package/dist/{reset-DD5JGOY3.js → reset-DQ6FGCSH.js} +13 -11
- package/dist/resources-BB3MVJMD.js +111 -0
- package/dist/{run-QEGNX7FL.js → run-H2GQDUER.js} +113 -82
- package/dist/{share-JKD3BQMW.js → share-GTJN6A5O.js} +18 -17
- package/dist/{skills-LMQIKDOZ.js → skills-L55TEW6R.js} +31 -24
- package/dist/{skills-eval-I7X2774U.js → skills-eval-XVXPH2JI.js} +61 -52
- package/dist/skills-inventory-S4MXPJFV.js +126 -0
- package/dist/slash-commands-ZSGASKJC.js +77 -0
- package/dist/{steer-CF5TDANS.js → steer-RZGSCY4R.js} +3 -3
- package/dist/{support-I7LOJLIF.js → support-PKEUNNQL.js} +4 -4
- package/dist/{targets-RUSR6B5Z.js → targets-NCPZ644J.js} +31 -29
- package/dist/{terminal-lease-QYVORFR4.js → terminal-lease-44SV3YCN.js} +4 -4
- package/dist/tools-DAF3DI3C.js +27 -0
- package/dist/{trace-ODOQIVIW.js → trace-FYVW2MQA.js} +149 -7
- package/dist/tui-primitives-2AKXQNZK.js +13 -0
- package/dist/{uninstall-ZJF5H5ZN.js → uninstall-DW2PNOIC.js} +5 -5
- package/dist/{upgrade-XANW3FXB.js → upgrade-3XPP6OQL.js} +26 -24
- package/dist/{usage-4H7ZRXQT.js → usage-3NLHGTU2.js} +57 -49
- package/dist/{verifiers-UZXNBZEB.js → verifiers-SSQONKRT.js} +171 -12
- package/dist/{verify-BVKWTNDL.js → verify-3U6J7FZI.js} +9 -9
- package/dist/{web-fetch-2YHJ3KTG.js → web-fetch-S7RR6GZ7.js} +3 -3
- package/dist/{wiki-generate-MY7WV2QI.js → wiki-generate-CEHYGPGQ.js} +67 -59
- package/dist/with-panes-MKB46MPQ.js +782 -0
- package/dist/worker/entry.js +101 -66
- package/docs/README.md +3 -2
- package/docs/acp.md +24 -3
- 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 +1 -1
- package/docs/capacity-and-scheduling.md +43 -5
- package/docs/commands-and-modes.md +31 -2
- package/docs/configuration-and-targets.md +40 -10
- 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 +1 -0
- 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 +1 -1
- package/docs/extensions-and-sharing.md +25 -1
- package/docs/fleet-dispatch.md +22 -1
- package/docs/installation-and-lifecycle.md +15 -2
- 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/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 +1 -1
- package/docs/troubleshooting.md +1 -1
- package/docs/tui-design.md +1 -1
- package/docs/worker-dispatch-mechanics.md +1 -1
- package/package.json +4 -2
- package/src/cli/acp.ts +6 -2
- package/src/cli/argv.ts +25 -0
- package/src/cli/configure.ts +23 -21
- package/src/cli/doctor-panes.ts +124 -0
- package/src/cli/doctor-toolchain.ts +57 -0
- package/src/cli/doctor.ts +20 -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-verify.ts +133 -0
- package/src/cli/fleet-view.ts +810 -0
- package/src/cli/fleet.ts +148 -37
- 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/panes.ts +35 -0
- package/src/cli/reset.ts +5 -2
- package/src/cli/run.ts +58 -0
- package/src/cli/skills-inventory.ts +185 -0
- package/src/cli/skills.ts +16 -13
- package/src/cli/tools.ts +321 -0
- package/src/cli/trace-inspect.ts +252 -0
- package/src/cli/trace.ts +23 -2
- package/src/cli/verifiers-inspect.ts +347 -0
- package/src/cli/verifiers.ts +9 -0
- package/src/core/bus-events.ts +4 -0
- package/src/core/config.ts +49 -0
- package/src/core/defaults.ts +93 -7
- package/src/core/response-schema.ts +44 -4
- package/src/core/theme-token-hex.ts +43 -0
- package/src/core/tool-names.ts +2 -1
- package/src/core/xdg.ts +1 -1
- package/src/domains/agents/fleets/build-review.md +0 -3
- package/src/domains/agents/fleets/build-test.md +0 -3
- package/src/domains/agents/result-contract-filesystem.ts +32 -0
- package/src/domains/agents/result-contract.ts +164 -35
- package/src/domains/config/classify.ts +3 -0
- package/src/domains/dispatch/admission-error.ts +9 -0
- package/src/domains/dispatch/admission.ts +22 -21
- package/src/domains/dispatch/capacity-lease.ts +21 -1
- package/src/domains/dispatch/council-topology.ts +398 -0
- package/src/domains/dispatch/extension.ts +222 -50
- package/src/domains/dispatch/fleet-node-prompt.ts +62 -0
- package/src/domains/dispatch/fleet-plan.ts +7 -2
- package/src/domains/dispatch/fleet-run.ts +64 -1
- package/src/domains/dispatch/gate-decisions.ts +11 -1
- 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/reservation-store.ts +24 -4
- package/src/domains/dispatch/run-event-journal-bridge.ts +149 -0
- package/src/domains/dispatch/run-event-journal.ts +598 -0
- package/src/domains/dispatch/state.ts +45 -1
- package/src/domains/dispatch/types.ts +13 -0
- package/src/domains/dispatch/validation.ts +33 -8
- package/src/domains/eval/compare/compare.ts +3 -16
- package/src/domains/eval/inventory.ts +113 -0
- package/src/domains/eval/schema/serving.ts +31 -0
- package/src/domains/evidence/store.ts +6 -0
- package/src/domains/memory/index.ts +0 -1
- package/src/domains/memory/task-memory-policy.ts +6 -10
- package/src/domains/memory/task-memory-telemetry.ts +1 -0
- package/src/domains/middleware/memory-intervention.ts +33 -21
- package/src/domains/mux/contract.ts +434 -0
- package/src/domains/mux/detect.ts +158 -0
- package/src/domains/mux/extension.ts +47 -0
- package/src/domains/mux/index.ts +96 -0
- package/src/domains/mux/manifest.ts +6 -0
- package/src/domains/mux/operations.ts +164 -0
- package/src/domains/mux/pane-registry.ts +90 -0
- package/src/domains/mux/protocol.ts +49 -0
- package/src/domains/mux/socket-client.ts +816 -0
- package/src/domains/mux/types.ts +222 -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 +180 -0
- package/src/domains/mux/yazi/profile.ts +299 -0
- package/src/domains/mux/yazi/session.ts +228 -0
- package/src/domains/mux/yazi/theme.ts +30 -0
- package/src/domains/observability/cost.ts +21 -0
- package/src/domains/observability/index.ts +2 -0
- package/src/domains/observability/trace-store.ts +42 -0
- 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 +20 -3
- package/src/domains/providers/index.ts +22 -0
- package/src/domains/providers/model-runtime-capabilities.ts +32 -0
- package/src/domains/providers/runtimes/boot-manifest.ts +1 -0
- package/src/domains/providers/runtimes/builtins.ts +2 -0
- package/src/domains/providers/runtimes/protocol/litellm.ts +375 -0
- package/src/domains/providers/support.ts +1 -0
- package/src/domains/providers/target-model-cache.ts +124 -0
- package/src/domains/resources/index.ts +3 -0
- package/src/domains/resources/skills/loader.ts +33 -0
- package/src/domains/safety/action-classifier.ts +6 -0
- 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/server.ts +413 -70
- package/src/engine/acp/types.ts +19 -1
- package/src/engine/claude/sdk-module.ts +98 -0
- package/src/engine/claude/sdk-runtime.ts +19 -11
- package/src/engine/tui-primitives.ts +21 -0
- package/src/engine/tui.ts +1 -0
- package/src/engine/worker-runtime.ts +2 -13
- package/src/entry/boot-options.ts +2 -0
- package/src/entry/orchestrator.ts +103 -5
- package/src/entry/panes-activation.ts +31 -0
- package/src/entry/with-panes.ts +20 -0
- package/src/interactive/context-overlay.ts +1 -0
- package/src/interactive/cost-overlay.ts +2 -0
- package/src/interactive/council-grid.ts +1 -3
- package/src/interactive/council.ts +11 -0
- package/src/interactive/dispatch-board.ts +26 -16
- package/src/interactive/interactive-application.ts +153 -6
- package/src/interactive/interactive-input-runtime.ts +7 -0
- package/src/interactive/interactive-slash-runtime.ts +36 -6
- package/src/interactive/memory-overlay.ts +1 -0
- package/src/interactive/modal-marker.ts +170 -0
- package/src/interactive/mux-bridge.ts +214 -0
- package/src/interactive/overlay-frame.ts +58 -2
- package/src/interactive/overlay-general-openers.ts +1 -0
- package/src/interactive/overlay-key-routing.ts +14 -3
- package/src/interactive/overlay-lifecycle.ts +19 -3
- package/src/interactive/overlay-model-selectors.ts +40 -3
- package/src/interactive/overlay-permission-lifecycle.ts +90 -22
- package/src/interactive/overlay-transitions.ts +18 -4
- package/src/interactive/overlays/agents.ts +1 -0
- package/src/interactive/overlays/ask-user.ts +136 -30
- package/src/interactive/overlays/auth-dialog.ts +1 -0
- package/src/interactive/overlays/context-reset.ts +1 -0
- package/src/interactive/overlays/cwd-fallback.ts +1 -0
- package/src/interactive/overlays/decisions.ts +11 -11
- package/src/interactive/overlays/extensions.ts +1 -0
- package/src/interactive/overlays/fleet-run-approval.ts +1 -0
- package/src/interactive/overlays/handoff-review.ts +1 -0
- package/src/interactive/overlays/help-reference.ts +2 -0
- package/src/interactive/overlays/interop.ts +1 -0
- package/src/interactive/overlays/library-install-confirm.ts +1 -0
- 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 +1 -0
- package/src/interactive/overlays/model-scope.ts +86 -0
- package/src/interactive/overlays/model-selector.ts +1 -0
- package/src/interactive/overlays/prompts.ts +1 -0
- package/src/interactive/overlays/session-selector.ts +1 -0
- package/src/interactive/overlays/settings-sections.ts +30 -0
- package/src/interactive/overlays/settings.ts +579 -44
- package/src/interactive/overlays/side-question.ts +1 -0
- package/src/interactive/overlays/skills-hub.ts +3 -11
- package/src/interactive/overlays/tree-selector.ts +1 -0
- package/src/interactive/pane-policy.ts +46 -0
- package/src/interactive/panes-runtime.ts +292 -0
- package/src/interactive/renderers/compaction-summary.ts +29 -0
- package/src/interactive/renderers/worker-entry.ts +122 -14
- package/src/interactive/slash-commands.ts +251 -15
- package/src/interactive/tasks-overlay.ts +1 -0
- package/src/interactive/theme/tokens.ts +3 -14
- package/src/interactive/turn-context.ts +47 -2
- package/src/interactive/view/artifacts.ts +109 -1
- package/src/interactive/view/view-overlay.ts +1 -0
- package/src/interactive/watch-pane.ts +152 -0
- package/src/interactive/worker-progress.ts +7 -1
- package/src/interactive/worker-receipts.ts +19 -1
- package/src/interactive/worker-stream.ts +5 -0
- package/src/interactive/yazi-bridge.ts +444 -0
- package/src/tools/bootstrap.ts +26 -2
- package/src/tools/builtin-tool-catalog.ts +15 -0
- package/src/tools/compete-worktrees.ts +83 -2
- package/src/tools/core-bootstrap.ts +2 -1
- package/src/tools/dispatch-admission.ts +14 -3
- package/src/tools/dispatch-arguments.ts +20 -20
- package/src/tools/dispatch-run-events.ts +134 -19
- package/src/tools/dispatch-runner.ts +29 -7
- package/src/tools/dispatch-types.ts +15 -3
- package/src/tools/dispatch.ts +1 -1
- package/src/tools/executables.ts +17 -14
- package/src/tools/observation.ts +54 -4
- 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/dist/chunk-D73KXYPF.js +0 -37
- package/dist/chunk-MLOK6ZOS.js +0 -2888
- package/dist/chunk-YKOFT37S.js +0 -279
- package/dist/doctor-TWBWFK5V.js +0 -165
package/src/core/bus-events.ts
CHANGED
|
@@ -468,6 +468,8 @@ export interface PermissionRequestedPayload {
|
|
|
468
468
|
/** Sanitized one-line preview of the call's object (command, path, or compact args). */
|
|
469
469
|
target?: string | undefined;
|
|
470
470
|
timeoutMs?: number | undefined;
|
|
471
|
+
/** Admitted timeout fallback, so the operator surface can name what an expired ask became. */
|
|
472
|
+
fallback?: "deny" | "fail" | undefined;
|
|
471
473
|
escalation?: boolean | undefined;
|
|
472
474
|
}
|
|
473
475
|
|
|
@@ -486,6 +488,8 @@ export interface PermissionResolvedPayload {
|
|
|
486
488
|
actionClass?: string | undefined;
|
|
487
489
|
reason?: string | undefined;
|
|
488
490
|
requestedBy?: string | undefined;
|
|
491
|
+
/** Effective fallback applied to an expired worker escalation. */
|
|
492
|
+
fallback?: "deny" | "fail" | undefined;
|
|
489
493
|
at?: number | undefined;
|
|
490
494
|
}
|
|
491
495
|
|
package/src/core/config.ts
CHANGED
|
@@ -1010,6 +1010,7 @@ const TOP_LEVEL_KEYS = [
|
|
|
1010
1010
|
"compaction",
|
|
1011
1011
|
"context",
|
|
1012
1012
|
"prewarm",
|
|
1013
|
+
"panes",
|
|
1013
1014
|
"retry",
|
|
1014
1015
|
"guardrails",
|
|
1015
1016
|
] as const;
|
|
@@ -1607,6 +1608,54 @@ export function validateSettings(raw: unknown): SettingsValidationResult {
|
|
|
1607
1608
|
}
|
|
1608
1609
|
}
|
|
1609
1610
|
|
|
1611
|
+
if ("panes" in raw) {
|
|
1612
|
+
if (!isPlainObject(raw.panes)) {
|
|
1613
|
+
issues.add("panes", `expected a map, got ${describe(raw.panes)}`);
|
|
1614
|
+
} else {
|
|
1615
|
+
// `agents` and `keepFailed` are retired: pane-opening is no longer a
|
|
1616
|
+
// per-dispatch policy (src/interactive/pane-policy.ts holds the one
|
|
1617
|
+
// decision). They stay accepted-and-ignored so a settings file written
|
|
1618
|
+
// against an older release keeps passing the strict boot gate.
|
|
1619
|
+
issues.unknownKeys("panes", raw.panes, ["enabled", "agents", "keepFailed", "notifications", "journal", "yazi"]);
|
|
1620
|
+
if ("enabled" in raw.panes) {
|
|
1621
|
+
const v = expectEnum(issues, "panes.enabled", raw.panes.enabled, ["auto", "embedded", "off"] as const);
|
|
1622
|
+
if (v !== undefined) settings.panes.enabled = v;
|
|
1623
|
+
}
|
|
1624
|
+
if ("notifications" in raw.panes) {
|
|
1625
|
+
const v = expectEnum(issues, "panes.notifications", raw.panes.notifications, ["failures", "all", "off"] as const);
|
|
1626
|
+
if (v !== undefined) settings.panes.notifications = v;
|
|
1627
|
+
}
|
|
1628
|
+
if ("journal" in raw.panes) {
|
|
1629
|
+
const v = expectBoolean(issues, "panes.journal", raw.panes.journal);
|
|
1630
|
+
if (v !== undefined) settings.panes.journal = v;
|
|
1631
|
+
}
|
|
1632
|
+
if ("yazi" in raw.panes) {
|
|
1633
|
+
if (!isPlainObject(raw.panes.yazi)) {
|
|
1634
|
+
issues.add("panes.yazi", `expected a map, got ${describe(raw.panes.yazi)}`);
|
|
1635
|
+
} else {
|
|
1636
|
+
const yazi = raw.panes.yazi;
|
|
1637
|
+
issues.unknownKeys("panes.yazi", yazi, ["enabled", "mode", "profile", "followCwd"]);
|
|
1638
|
+
if ("enabled" in yazi) {
|
|
1639
|
+
const v = expectBoolean(issues, "panes.yazi.enabled", yazi.enabled);
|
|
1640
|
+
if (v !== undefined) settings.panes.yazi.enabled = v;
|
|
1641
|
+
}
|
|
1642
|
+
if ("mode" in yazi) {
|
|
1643
|
+
const v = expectEnum(issues, "panes.yazi.mode", yazi.mode, ["companion", "chooser"] as const);
|
|
1644
|
+
if (v !== undefined) settings.panes.yazi.mode = v;
|
|
1645
|
+
}
|
|
1646
|
+
if ("profile" in yazi) {
|
|
1647
|
+
const v = expectEnum(issues, "panes.yazi.profile", yazi.profile, ["managed", "user"] as const);
|
|
1648
|
+
if (v !== undefined) settings.panes.yazi.profile = v;
|
|
1649
|
+
}
|
|
1650
|
+
if ("followCwd" in yazi) {
|
|
1651
|
+
const v = expectBoolean(issues, "panes.yazi.followCwd", yazi.followCwd);
|
|
1652
|
+
if (v !== undefined) settings.panes.yazi.followCwd = v;
|
|
1653
|
+
}
|
|
1654
|
+
}
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1610
1659
|
if ("retry" in raw) {
|
|
1611
1660
|
if (!isPlainObject(raw.retry)) {
|
|
1612
1661
|
issues.add("retry", `expected a map, got ${describe(raw.retry)}`);
|
package/src/core/defaults.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// Default constants for Clio Coder settings.
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Default settings shipped with Clio Coder. Written to the resolved config
|
|
3
5
|
* directory's settings.yaml on first install if the file does not already
|
|
@@ -166,6 +168,34 @@ export interface PrewarmSettings {
|
|
|
166
168
|
enabled: boolean;
|
|
167
169
|
}
|
|
168
170
|
|
|
171
|
+
/**
|
|
172
|
+
* The pane layer's settings block.
|
|
173
|
+
*
|
|
174
|
+
* `journal` is the durable half: the run event journal, which every other pane
|
|
175
|
+
* surface reads and which the standalone run viewer needs whether or not a pane
|
|
176
|
+
* host is installed. The run-view settings govern the live projection. The
|
|
177
|
+
* Yazi chooser remains useful without a pane host because it can borrow the
|
|
178
|
+
* terminal for one selection.
|
|
179
|
+
*/
|
|
180
|
+
export interface PanesSettings {
|
|
181
|
+
/**
|
|
182
|
+
* Capability rung the pane layer may reach. `auto` takes guest mode when a
|
|
183
|
+
* pane host is detected; `embedded` asks Clio to own a private session, which
|
|
184
|
+
* degrades to none until that ships; `off` skips detection entirely.
|
|
185
|
+
*/
|
|
186
|
+
enabled: "auto" | "embedded" | "off";
|
|
187
|
+
/** Which terminal run states raise a pane-host toast. */
|
|
188
|
+
notifications: "failures" | "all" | "off";
|
|
189
|
+
journal: boolean;
|
|
190
|
+
/** File-pane round-trip settings read live for each explicit open. */
|
|
191
|
+
yazi: {
|
|
192
|
+
enabled: boolean;
|
|
193
|
+
mode: "companion" | "chooser";
|
|
194
|
+
profile: "managed" | "user";
|
|
195
|
+
followCwd: boolean;
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
169
199
|
/**
|
|
170
200
|
* Transient provider retry controls for the interactive chat loop. These are
|
|
171
201
|
* intentionally small and mirror the session retry helper defaults. Dispatched
|
|
@@ -368,16 +398,20 @@ export const DEFAULT_SETTINGS = {
|
|
|
368
398
|
enabled: true,
|
|
369
399
|
everyNTools: 10,
|
|
370
400
|
windowSteps: 8,
|
|
371
|
-
|
|
401
|
+
// Budget for the answer and any reasoning tokens that precede it.
|
|
402
|
+
// An always-on-thinking 35B spent the measured 400/400 completion
|
|
403
|
+
// tokens on reasoning and stopped with finish_reason=length before it
|
|
404
|
+
// emitted content, so the old budget made a useful step unreachable.
|
|
405
|
+
maxTokens: 2000,
|
|
372
406
|
// A memory step runs detached from the turn that triggered it, but it
|
|
373
407
|
// runs on a real inference endpoint that the operator's own turns and
|
|
374
408
|
// dispatched workers also queue against. The operator's ledger over 14
|
|
375
409
|
// days recorded 60 llm-tier steps spending 1,666 seconds of model time
|
|
376
410
|
// for 6 injections, with one step holding a local server for 102.5
|
|
377
|
-
// seconds to answer nothing.
|
|
378
|
-
//
|
|
379
|
-
//
|
|
380
|
-
timeoutMs:
|
|
411
|
+
// seconds to answer nothing. A viable output budget earns one minute,
|
|
412
|
+
// while consecutive timeouts degrade the plane to its free rules tier
|
|
413
|
+
// instead of repeatedly occupying the endpoint for that full minute.
|
|
414
|
+
timeoutMs: 60_000,
|
|
381
415
|
},
|
|
382
416
|
},
|
|
383
417
|
watchdog: { enabled: false } as WatchdogSettings,
|
|
@@ -466,6 +500,32 @@ export const DEFAULT_SETTINGS = {
|
|
|
466
500
|
prewarm: {
|
|
467
501
|
enabled: true,
|
|
468
502
|
} as PrewarmSettings,
|
|
503
|
+
panes: {
|
|
504
|
+
/**
|
|
505
|
+
* Off: a plain `clio-coder` performs zero pane-host work, and none of the
|
|
506
|
+
* mux domain even loads. The extension is activated per session with
|
|
507
|
+
* `clio-coder --with-panes`, or durably by setting this to `auto` (guest
|
|
508
|
+
* mode when a pane host is detected). The flag beats the setting in both
|
|
509
|
+
* directions.
|
|
510
|
+
*/
|
|
511
|
+
enabled: "off",
|
|
512
|
+
/** A toast per finished run is noise; a toast per failure is the signal. */
|
|
513
|
+
notifications: "failures",
|
|
514
|
+
/**
|
|
515
|
+
* Tee every dispatched run's display event tail to
|
|
516
|
+
* `<state>/runs/<runId>/events.ndjson`. The live tail is otherwise
|
|
517
|
+
* in-process only, so this is what lets `clio-coder fleet view` follow a
|
|
518
|
+
* run from a second terminal. Written regardless of any pane host being
|
|
519
|
+
* present; turning it off costs the viewer its transcript and nothing else.
|
|
520
|
+
*/
|
|
521
|
+
journal: true,
|
|
522
|
+
yazi: {
|
|
523
|
+
enabled: true,
|
|
524
|
+
mode: "companion",
|
|
525
|
+
profile: "managed",
|
|
526
|
+
followCwd: true,
|
|
527
|
+
},
|
|
528
|
+
} as PanesSettings,
|
|
469
529
|
retry: {
|
|
470
530
|
enabled: true,
|
|
471
531
|
maxRetries: 3,
|
|
@@ -560,8 +620,10 @@ memory:
|
|
|
560
620
|
enabled: true
|
|
561
621
|
everyNTools: 10
|
|
562
622
|
windowSteps: 8
|
|
563
|
-
|
|
564
|
-
|
|
623
|
+
# Covers the answer and any thinking before it. An always-on-thinking 35B
|
|
624
|
+
# spent the measured 400/400 tokens on reasoning, then stopped at length.
|
|
625
|
+
maxTokens: 2000
|
|
626
|
+
timeoutMs: 60000
|
|
565
627
|
|
|
566
628
|
# Opt-in turn-end watchdog. When enabled, a turn that changed the tree is
|
|
567
629
|
# reviewed by one read-only verifier run briefed with the turn's coalesced diff
|
|
@@ -781,6 +843,30 @@ context:
|
|
|
781
843
|
prewarm:
|
|
782
844
|
enabled: true
|
|
783
845
|
|
|
846
|
+
# The pane layer. Off by default: plain \`clio-coder\` does no pane-host work at
|
|
847
|
+
# all. Start \`clio-coder --with-panes\` to activate the extension for one
|
|
848
|
+
# session, or set enabled: auto to activate it whenever a pane host is
|
|
849
|
+
# detected (embedded, a Clio-owned private session, is not implemented yet).
|
|
850
|
+
# The command-line flag beats this setting in both directions. notifications
|
|
851
|
+
# picks which terminal run states raise a toast. journal tees every dispatched
|
|
852
|
+
# run's event tail to <state>/runs/<runId>/events.ndjson so
|
|
853
|
+
# \`clio-coder fleet view <runId> --follow\` can watch a run from a second
|
|
854
|
+
# terminal; it is written regardless of any pane host being present. Journal
|
|
855
|
+
# directories are removed when their run leaves the run ledger ring, and
|
|
856
|
+
# \`clio-coder reset --state\` clears them with the rest of the state root.
|
|
857
|
+
panes:
|
|
858
|
+
enabled: off
|
|
859
|
+
notifications: failures
|
|
860
|
+
journal: true
|
|
861
|
+
# The files pane uses a managed, reproducible Yazi profile by default.
|
|
862
|
+
# profile: user preserves the operator's Yazi configuration and therefore
|
|
863
|
+
# forces one-shot chooser mode, since that profile has no Clio pick chord.
|
|
864
|
+
yazi:
|
|
865
|
+
enabled: true
|
|
866
|
+
mode: companion
|
|
867
|
+
profile: managed
|
|
868
|
+
followCwd: true
|
|
869
|
+
|
|
784
870
|
# Transient provider/stream retry controls for interactive chat.
|
|
785
871
|
# Retryable errors include overloads, rate limits, 5xx responses, network
|
|
786
872
|
# resets, and timeouts. Context overflow uses compaction recovery instead.
|
|
@@ -21,6 +21,28 @@ export const RESPONSE_SCHEMA_RUNTIME_ID = "llamacpp";
|
|
|
21
21
|
/** The runtime that takes the standard OpenAI `json_schema` response format. */
|
|
22
22
|
export const OPENAI_SCHEMA_RUNTIME_ID = "lmstudio";
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* The LiteLLM gateway, which takes the same standard `json_schema` format.
|
|
26
|
+
*
|
|
27
|
+
* This is the one gateway admitted to the table above, and it is admitted on
|
|
28
|
+
* measurement rather than on the api family the warning describes. Against a
|
|
29
|
+
* LiteLLM v1.98.0 proxy fronting both a llama.cpp and an LM Studio upstream:
|
|
30
|
+
* `{"type":"json_schema", json_schema:{...}}` was grammar-enforced end to end
|
|
31
|
+
* through both, `{"type":"json_object", schema:{...}}` was enforced through
|
|
32
|
+
* llama.cpp but rejected HTTP 400 by LM Studio, and the same prompt with no
|
|
33
|
+
* `response_format` returned plain prose. LiteLLM's `drop_params` did not strip
|
|
34
|
+
* either spelling, because `response_format` is a parameter it recognizes and
|
|
35
|
+
* forwards whole.
|
|
36
|
+
*
|
|
37
|
+
* The standard dialect is therefore the only one that holds across every
|
|
38
|
+
* upstream a gateway may route to, which is why LiteLLM belongs with LM Studio
|
|
39
|
+
* here and not with llama.cpp. Re-verify with the gateway's own smoke test
|
|
40
|
+
* before trusting this against a proxy other than LiteLLM: the hazard the
|
|
41
|
+
* warning names is real, and the only thing that makes this entry safe is that
|
|
42
|
+
* somebody measured it.
|
|
43
|
+
*/
|
|
44
|
+
export const GATEWAY_SCHEMA_RUNTIME_ID = "litellm";
|
|
45
|
+
|
|
24
46
|
/**
|
|
25
47
|
* How a runtime spells a JSON-schema response constraint on the wire.
|
|
26
48
|
*
|
|
@@ -47,14 +69,32 @@ export type ResponseSchemaDialect = "llamacpp-json-object" | "openai-json-schema
|
|
|
47
69
|
export function responseSchemaDialectFor(runtimeId: string): ResponseSchemaDialect | null {
|
|
48
70
|
if (runtimeId === RESPONSE_SCHEMA_RUNTIME_ID) return "llamacpp-json-object";
|
|
49
71
|
if (runtimeId === OPENAI_SCHEMA_RUNTIME_ID) return "openai-json-schema";
|
|
72
|
+
if (runtimeId === GATEWAY_SCHEMA_RUNTIME_ID) return "openai-json-schema";
|
|
50
73
|
return null;
|
|
51
74
|
}
|
|
52
75
|
|
|
53
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* Whether this runtime speaks the dialect above. Transport shape, not capability.
|
|
78
|
+
*
|
|
79
|
+
* LiteLLM joins llama.cpp here because a gateway in front of llama.cpp is the
|
|
80
|
+
* same transport with one hop added, and the hop was measured not to alter it.
|
|
81
|
+
* That is what admits a contract-bearing worker to a gateway target; without
|
|
82
|
+
* it, every typed agent behind a proxy is refused rather than enforced.
|
|
83
|
+
*
|
|
84
|
+
* It also opts LiteLLM into {@link responseSchemaConflictsWithTools}, which is
|
|
85
|
+
* deliberately conservative. Whether a schema and a tool surface can constrain
|
|
86
|
+
* the same completion is a property of the upstream, and one alias may route to
|
|
87
|
+
* llama.cpp (which refuses both with HTTP 400) while another routes to LM Studio
|
|
88
|
+
* (which accepts them). A runtime id cannot tell those apart, so this treats
|
|
89
|
+
* every gateway upstream as if it were the refusing one. The cost is a
|
|
90
|
+
* tool-bearing contract run through an LM Studio upstream falling back to the
|
|
91
|
+
* prompt parser when it did not strictly have to. The alternative is paying a
|
|
92
|
+
* round trip to discover a predictable 400, and having the answer depend on
|
|
93
|
+
* which deployment the proxy happened to pick for that request.
|
|
94
|
+
*/
|
|
54
95
|
export function runtimeSpeaksResponseSchemaDialect(runtime: { id: string; kind: string; apiFamily: string }): boolean {
|
|
55
|
-
return
|
|
56
|
-
|
|
57
|
-
);
|
|
96
|
+
if (runtime.kind !== "http" || runtime.apiFamily !== "openai-completions") return false;
|
|
97
|
+
return runtime.id === RESPONSE_SCHEMA_RUNTIME_ID || runtime.id === GATEWAY_SCHEMA_RUNTIME_ID;
|
|
58
98
|
}
|
|
59
99
|
|
|
60
100
|
/**
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** Semantic colors shared by Clio's terminal surfaces and generated companion profiles. */
|
|
2
|
+
export type ClioToken =
|
|
3
|
+
| "accent"
|
|
4
|
+
| "accentDeep"
|
|
5
|
+
| "action"
|
|
6
|
+
| "success"
|
|
7
|
+
| "warning"
|
|
8
|
+
| "error"
|
|
9
|
+
| "info"
|
|
10
|
+
| "reason"
|
|
11
|
+
| "dim"
|
|
12
|
+
| "muted"
|
|
13
|
+
| "title"
|
|
14
|
+
| "frame"
|
|
15
|
+
| "frameStrong";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The palette's lowercase hex projection.
|
|
19
|
+
*
|
|
20
|
+
* Keep this leaf free of interactive imports. Generated companion profiles
|
|
21
|
+
* need the color vocabulary without becoming a second reacher of the terminal
|
|
22
|
+
* renderer and splitting the instant shell's Stage 0 chunk.
|
|
23
|
+
*/
|
|
24
|
+
const TOKEN_HEX: Readonly<Record<ClioToken, `#${string}`>> = {
|
|
25
|
+
accent: "#46e5d0",
|
|
26
|
+
accentDeep: "#1fb7a6",
|
|
27
|
+
action: "#ff7e29",
|
|
28
|
+
success: "#57e389",
|
|
29
|
+
warning: "#ffb454",
|
|
30
|
+
error: "#ff5c66",
|
|
31
|
+
info: "#5ba8ff",
|
|
32
|
+
reason: "#9d8cff",
|
|
33
|
+
dim: "#6a7a85",
|
|
34
|
+
muted: "#8a99a4",
|
|
35
|
+
title: "#46e5d0",
|
|
36
|
+
frame: "#2f5d5a",
|
|
37
|
+
frameStrong: "#2aab9e",
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/** The canonical lowercase `#rrggbb` value for one Clio theme token. */
|
|
41
|
+
export function tokenHex(token: ClioToken): `#${string}` {
|
|
42
|
+
return TOKEN_HEX[token];
|
|
43
|
+
}
|
package/src/core/tool-names.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* OBSERVE read, grep, find, ls, code_nav, context, credential_present
|
|
8
8
|
* MUTATE write, edit
|
|
9
9
|
* EXECUTE bash, git, verify
|
|
10
|
-
* ORCHESTRATE dispatch, monitor, steer, tasks
|
|
10
|
+
* ORCHESTRATE dispatch, monitor, steer, tasks, panes
|
|
11
11
|
* RETRIEVE web_fetch
|
|
12
12
|
* INTERACT ask_user
|
|
13
13
|
* ARTIFACT artifact
|
|
@@ -35,6 +35,7 @@ export const ToolNames = {
|
|
|
35
35
|
Steer: "steer",
|
|
36
36
|
Tasks: "tasks",
|
|
37
37
|
Ledger: "ledger",
|
|
38
|
+
Panes: "panes",
|
|
38
39
|
// RETRIEVE
|
|
39
40
|
WebFetch: "web_fetch",
|
|
40
41
|
// INTERACT
|
package/src/core/xdg.ts
CHANGED
|
@@ -20,7 +20,7 @@ import { join } from "node:path";
|
|
|
20
20
|
*
|
|
21
21
|
* Role contents: config holds user-authored files (settings, credentials,
|
|
22
22
|
* agents, skills, prompts, extensions, runtimes); data holds durable artifacts
|
|
23
|
-
* (memory, evidence, evals); state holds machine-produced session state
|
|
23
|
+
* (memory, evidence, evals, vendored tools); state holds machine-produced session state
|
|
24
24
|
* (sessions, audit, receipts, runs.json, recent-models.json, install.json,
|
|
25
25
|
* interviews, scratch); cache holds disposable derived files.
|
|
26
26
|
*/
|
|
@@ -29,6 +29,3 @@ task above. Nothing you write here persuades it.
|
|
|
29
29
|
|
|
30
30
|
If it fails you, you receive its failed checks as input data and get exactly one
|
|
31
31
|
revision. Close the findings it reported and nothing else.
|
|
32
|
-
|
|
33
|
-
Answer with your `mutation-report`. Include `commitMessage`: one imperative
|
|
34
|
-
subject line describing this change, as you would write it in the log.
|
|
@@ -30,6 +30,3 @@ If the suite comes back red you will receive its output as input data. Repair
|
|
|
30
30
|
exactly what it reported. Do not restate the failure, do not weaken or delete a
|
|
31
31
|
test to make it pass, and do not widen the change beyond the repair. You get at
|
|
32
32
|
most two repair attempts before the run fails with the suite still red.
|
|
33
|
-
|
|
34
|
-
Answer with your `mutation-report`. Include `commitMessage`: one imperative
|
|
35
|
-
subject line describing this change, as you would write it in the log.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one live-disk implementation of `ResultContractFilesystem`.
|
|
3
|
+
*
|
|
4
|
+
* `result-contract.ts` takes filesystem access as an argument so the validators
|
|
5
|
+
* stay deterministic and testable without touching a disk. That leaves every
|
|
6
|
+
* caller to supply the same three accessors, and the worker and the
|
|
7
|
+
* orchestrator had each written their own copy. A capability added to the
|
|
8
|
+
* interface then lands in one of them and not the other, which is how a Scout
|
|
9
|
+
* citation could ground inside the worker's repair rounds and fail the
|
|
10
|
+
* orchestrator's sealed revalidation of the identical result. One factory, both
|
|
11
|
+
* callers, no drift.
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
14
|
+
import type { ResultContractFilesystem } from "./result-contract.js";
|
|
15
|
+
|
|
16
|
+
export function nodeResultContractFilesystem(): ResultContractFilesystem {
|
|
17
|
+
return {
|
|
18
|
+
readFile(filePath) {
|
|
19
|
+
try {
|
|
20
|
+
return readFileSync(filePath, "utf8");
|
|
21
|
+
} catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
pathExists(filePath) {
|
|
26
|
+
return existsSync(filePath);
|
|
27
|
+
},
|
|
28
|
+
isDirectory(filePath) {
|
|
29
|
+
return statSync(filePath, { throwIfNoEntry: false })?.isDirectory() === true;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|