@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
|
@@ -2,69 +2,82 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
SchedulingDomainModule,
|
|
4
4
|
createPromptsDomainModule
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ULC6OTWO.js";
|
|
6
6
|
import {
|
|
7
7
|
SafetyDomainModule
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-O6TL7WWY.js";
|
|
9
9
|
import {
|
|
10
10
|
LifecycleDomainModule
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-X3YGUTOB.js";
|
|
12
12
|
import {
|
|
13
13
|
ensureClioState
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-W5VSYASO.js";
|
|
15
15
|
import {
|
|
16
16
|
ConfigDomainModule,
|
|
17
17
|
loadDomains
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import
|
|
20
|
-
ResourcesDomainModule
|
|
21
|
-
} from "./chunk-PZ4I4JE2.js";
|
|
22
|
-
import {
|
|
23
|
-
AgentsDomainModule
|
|
24
|
-
} from "./chunk-YSEHGPCT.js";
|
|
25
|
-
import "./chunk-HCBCAYZU.js";
|
|
26
|
-
import "./chunk-DR52UMZW.js";
|
|
27
|
-
import "./chunk-AD7Y7STJ.js";
|
|
28
|
-
import "./chunk-AMKHQW3C.js";
|
|
18
|
+
} from "./chunk-3BT2XMV4.js";
|
|
19
|
+
import "./chunk-7MCTRUCE.js";
|
|
29
20
|
import {
|
|
30
21
|
ObservabilityDomainModule
|
|
31
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-WZR7K7ZX.js";
|
|
32
23
|
import "./chunk-FWDFM5ZU.js";
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-BVDVID7E.js";
|
|
24
|
+
import "./chunk-V5DHCITQ.js";
|
|
25
|
+
import "./chunk-LDQ2ZF2M.js";
|
|
36
26
|
import {
|
|
37
27
|
ContextDomainModule
|
|
38
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-I5VEOC6I.js";
|
|
29
|
+
import "./chunk-VAZSBTKF.js";
|
|
30
|
+
import "./chunk-AB44T6BB.js";
|
|
39
31
|
import "./chunk-LCGCVYZ4.js";
|
|
40
|
-
import "./chunk-47CMYGET.js";
|
|
41
|
-
import "./chunk-5T7RBWN2.js";
|
|
42
32
|
import "./chunk-NDINPTJ4.js";
|
|
43
33
|
import "./chunk-MXHC5QYU.js";
|
|
44
34
|
import {
|
|
45
|
-
|
|
35
|
+
aggregateCostAmounts,
|
|
46
36
|
capacityDrain,
|
|
37
|
+
createDispatchDomainModule,
|
|
47
38
|
executeFleetRun,
|
|
48
39
|
openLedger,
|
|
49
40
|
planFleetResume,
|
|
50
41
|
readFleetRun,
|
|
42
|
+
renderCostAggregate,
|
|
43
|
+
renderCostAmount,
|
|
51
44
|
setCapacityDraining
|
|
52
|
-
} from "./chunk-
|
|
53
|
-
import "./chunk-
|
|
45
|
+
} from "./chunk-BUMFYQFY.js";
|
|
46
|
+
import "./chunk-X75E3D2N.js";
|
|
47
|
+
import "./chunk-B7OBL7PK.js";
|
|
54
48
|
import {
|
|
55
49
|
SessionDomainModule
|
|
56
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-QREDIESB.js";
|
|
57
51
|
import {
|
|
58
52
|
WRITE_BOUNDARY_VIOLATION_REASON,
|
|
59
53
|
preflightWriteBoundaries
|
|
60
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-U77AMWDL.js";
|
|
61
55
|
import {
|
|
62
56
|
bindExecutionPlanEndpoints,
|
|
63
57
|
compileFleetExecutionPlan
|
|
64
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-QBJA7R7N.js";
|
|
65
59
|
import "./chunk-RVG5JXAL.js";
|
|
66
60
|
import "./chunk-3DPEIQKN.js";
|
|
61
|
+
import "./chunk-NHLBIGRH.js";
|
|
62
|
+
import {
|
|
63
|
+
configureRunEventJournal
|
|
64
|
+
} from "./chunk-IQ7KR472.js";
|
|
65
|
+
import "./chunk-T56WDKA5.js";
|
|
67
66
|
import "./chunk-W6GROXXM.js";
|
|
67
|
+
import "./chunk-JVCV3ICN.js";
|
|
68
|
+
import "./chunk-QLFS5GO2.js";
|
|
69
|
+
import "./chunk-TXOTCRLG.js";
|
|
70
|
+
import "./chunk-HVDIIIQW.js";
|
|
71
|
+
import {
|
|
72
|
+
ResourcesDomainModule
|
|
73
|
+
} from "./chunk-LY4S7GJC.js";
|
|
74
|
+
import {
|
|
75
|
+
AgentsDomainModule
|
|
76
|
+
} from "./chunk-Z2RR6MAK.js";
|
|
77
|
+
import "./chunk-Z4TXYIEG.js";
|
|
78
|
+
import "./chunk-DR52UMZW.js";
|
|
79
|
+
import "./chunk-VYMXRQI6.js";
|
|
80
|
+
import "./chunk-FEFIFZTL.js";
|
|
68
81
|
import {
|
|
69
82
|
FLEET_COMMANDS_REMEDY,
|
|
70
83
|
FLEET_COMMANDS_REPO_PATH,
|
|
@@ -73,50 +86,49 @@ import {
|
|
|
73
86
|
loadFleetCommands,
|
|
74
87
|
loadFleetContract,
|
|
75
88
|
renderFleetPrompt
|
|
76
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-CTJ4RNAA.js";
|
|
77
90
|
import "./chunk-RKKLTLYB.js";
|
|
78
|
-
import "./chunk-
|
|
79
|
-
import "./chunk-JVCV3ICN.js";
|
|
80
|
-
import "./chunk-5HFBWUMU.js";
|
|
81
|
-
import "./chunk-TXOTCRLG.js";
|
|
82
|
-
import "./chunk-HVDIIIQW.js";
|
|
91
|
+
import "./chunk-SUW5DORT.js";
|
|
83
92
|
import {
|
|
84
93
|
MiddlewareDomainModule
|
|
85
|
-
} from "./chunk-
|
|
86
|
-
import "./chunk-
|
|
94
|
+
} from "./chunk-QLL7ILRG.js";
|
|
95
|
+
import "./chunk-5PSMVOLM.js";
|
|
87
96
|
import "./chunk-UOV2BYIW.js";
|
|
88
|
-
import "./chunk-
|
|
97
|
+
import "./chunk-BKFJHQCA.js";
|
|
89
98
|
import "./chunk-VG7TBQIY.js";
|
|
90
99
|
import {
|
|
91
100
|
formatBudgetPolicy,
|
|
92
101
|
formatBudgetReasons,
|
|
93
102
|
formatBudgetRequest,
|
|
94
103
|
formatEffectiveBudget
|
|
95
|
-
} from "./chunk-
|
|
96
|
-
import "./chunk-
|
|
104
|
+
} from "./chunk-J4W7KFM7.js";
|
|
105
|
+
import "./chunk-SJ5ZKQ4S.js";
|
|
97
106
|
import "./chunk-2JDWVJND.js";
|
|
107
|
+
import "./chunk-GKF55TAZ.js";
|
|
108
|
+
import "./chunk-32KWKNSF.js";
|
|
109
|
+
import "./chunk-TVHHYFHE.js";
|
|
110
|
+
import "./chunk-42FMPA75.js";
|
|
98
111
|
import {
|
|
99
112
|
agentRoleFactsResolver,
|
|
100
113
|
requestExecutionRole,
|
|
101
114
|
withAttemptRole
|
|
102
115
|
} from "./chunk-H7IXIC72.js";
|
|
103
|
-
import "./chunk-
|
|
104
|
-
import "./chunk-N3PBVRTZ.js";
|
|
105
|
-
import "./chunk-A2NJGIB3.js";
|
|
116
|
+
import "./chunk-5LXZXPKX.js";
|
|
106
117
|
import "./chunk-OQE5J4C6.js";
|
|
107
|
-
import "./chunk-S4COXYBG.js";
|
|
108
|
-
import "./chunk-MV3K5QF2.js";
|
|
109
118
|
import "./chunk-RAPCMZL4.js";
|
|
110
|
-
import "./chunk-
|
|
111
|
-
import "./chunk-ODFEOB4F.js";
|
|
119
|
+
import "./chunk-CY6FY24N.js";
|
|
112
120
|
import "./chunk-OZNBF4L3.js";
|
|
113
121
|
import "./chunk-4BJ5BYCE.js";
|
|
114
|
-
import "./chunk-ECH6PKUQ.js";
|
|
115
|
-
import "./chunk-CMZWFGD2.js";
|
|
116
|
-
import "./chunk-I4HZDVNP.js";
|
|
117
122
|
import "./chunk-6XLNIQDB.js";
|
|
123
|
+
import "./chunk-CMZWFGD2.js";
|
|
124
|
+
import "./chunk-PQEFIJ36.js";
|
|
125
|
+
import "./chunk-HHV2GANA.js";
|
|
126
|
+
import "./chunk-DYJP44XW.js";
|
|
127
|
+
import "./chunk-GCSMB2KY.js";
|
|
128
|
+
import "./chunk-UL3WSD3F.js";
|
|
129
|
+
import "./chunk-ECH6PKUQ.js";
|
|
118
130
|
import "./chunk-5B2AEOW5.js";
|
|
119
|
-
import "./chunk-
|
|
131
|
+
import "./chunk-K6BSR66V.js";
|
|
120
132
|
import "./chunk-M6L6IDJG.js";
|
|
121
133
|
import "./chunk-UUVG37B4.js";
|
|
122
134
|
import "./chunk-LBMZMYH2.js";
|
|
@@ -124,39 +136,42 @@ import "./chunk-XAKHZX5N.js";
|
|
|
124
136
|
import "./chunk-33YXPOE3.js";
|
|
125
137
|
import "./chunk-7CR24IG7.js";
|
|
126
138
|
import "./chunk-XPLRXC72.js";
|
|
127
|
-
import "./chunk-
|
|
128
|
-
import "./chunk-
|
|
139
|
+
import "./chunk-NEKRRTYW.js";
|
|
140
|
+
import "./chunk-SP2RXXYO.js";
|
|
141
|
+
import "./chunk-2OQE55CK.js";
|
|
129
142
|
import {
|
|
130
143
|
ProvidersDomainModule,
|
|
131
|
-
foregroundStreamUsage
|
|
132
|
-
|
|
144
|
+
foregroundStreamUsage,
|
|
145
|
+
normalizeCostProvenance
|
|
146
|
+
} from "./chunk-DQITNCXG.js";
|
|
133
147
|
import "./chunk-CFGTUFWB.js";
|
|
134
|
-
import "./chunk-
|
|
135
|
-
import "./chunk-
|
|
148
|
+
import "./chunk-P3FOHJT4.js";
|
|
149
|
+
import "./chunk-UM7N4G5A.js";
|
|
150
|
+
import "./chunk-ZGVHUX3M.js";
|
|
151
|
+
import "./chunk-HLW2MRKE.js";
|
|
152
|
+
import "./chunk-76ONBSIA.js";
|
|
153
|
+
import "./chunk-R346GLFC.js";
|
|
136
154
|
import "./chunk-IHXBNWMM.js";
|
|
137
|
-
import "./chunk-B5CSFE7B.js";
|
|
138
155
|
import {
|
|
139
156
|
readSettings
|
|
140
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-VFA6GDY5.js";
|
|
158
|
+
import "./chunk-BBVJUZHB.js";
|
|
141
159
|
import "./chunk-FQ4SKYE4.js";
|
|
142
|
-
import "./chunk-ZGVHUX3M.js";
|
|
143
|
-
import "./chunk-RKRLDWD3.js";
|
|
144
|
-
import "./chunk-KV2AOLDF.js";
|
|
145
160
|
import "./chunk-6EJMN2Y3.js";
|
|
146
161
|
import "./chunk-IWHMRKLL.js";
|
|
147
|
-
import "./chunk-
|
|
148
|
-
import "./chunk-
|
|
162
|
+
import "./chunk-6DB53AJS.js";
|
|
163
|
+
import "./chunk-GXNLGKAB.js";
|
|
149
164
|
import "./chunk-LL4KHSZI.js";
|
|
150
165
|
import "./chunk-4ZG3XFUR.js";
|
|
151
|
-
import "./chunk-
|
|
152
|
-
import "./chunk-
|
|
166
|
+
import "./chunk-HI63TFOG.js";
|
|
167
|
+
import "./chunk-BBVYXMFO.js";
|
|
153
168
|
import "./chunk-SST6Z5JA.js";
|
|
154
169
|
import "./chunk-IKCO5N3L.js";
|
|
155
170
|
import "./chunk-3I7MS7N2.js";
|
|
156
171
|
import "./chunk-APJ265NV.js";
|
|
157
172
|
import {
|
|
158
173
|
clioStateDir
|
|
159
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-BYP5D4HI.js";
|
|
160
175
|
import "./chunk-WEPFGWHJ.js";
|
|
161
176
|
import "./chunk-NUGM5KR6.js";
|
|
162
177
|
import "./chunk-VO2LKSTM.js";
|
|
@@ -185,6 +200,10 @@ Subcommands:
|
|
|
185
200
|
[--resume <runId>] replay a completed prefix from a prior run of the same plan
|
|
186
201
|
[--json] emit step receipts as JSON
|
|
187
202
|
status [--json] show running, retrying, and total dispatch state
|
|
203
|
+
inspect --json emit a bounded recent-run and event-journal projection
|
|
204
|
+
decisions --json emit a bounded window of sealed review and compete gate verdicts
|
|
205
|
+
view <runId> [--follow] read one run's ledger entry, event journal, and receipt
|
|
206
|
+
view <fleetRootId> list a fleet run's steps and the run id to view for each
|
|
188
207
|
drain [--json] deny new execution starts for up to one hour
|
|
189
208
|
resume [--json] reopen dispatch admission immediately
|
|
190
209
|
|
|
@@ -192,6 +211,10 @@ Notes:
|
|
|
192
211
|
status reads the durable run ledger. Rows started by another process show
|
|
193
212
|
heartbeat liveness from the recorded worker pid; per-token live meters are
|
|
194
213
|
only available inside the process that owns the run.
|
|
214
|
+
view is read-only and shares no memory with the orchestrator, so it follows a
|
|
215
|
+
run from a second terminal or over SSH. Its transcript comes from the run
|
|
216
|
+
event journal, written when panes.journal is on (the default). Handed the
|
|
217
|
+
fleet-<hex> root id that run prints, it lists that run's steps instead.
|
|
195
218
|
drain preserves running work. Repeat it to renew the one-hour expiry; resume
|
|
196
219
|
clears it early. The expiry prevents an abandoned drain from wedging Clio.
|
|
197
220
|
`;
|
|
@@ -222,7 +245,9 @@ function parseVars(args) {
|
|
|
222
245
|
const eq = pair.indexOf("=");
|
|
223
246
|
const key = pair.slice(0, eq).trim();
|
|
224
247
|
const value = pair.slice(eq + 1);
|
|
225
|
-
if (key.length === 0)
|
|
248
|
+
if (key.length === 0) {
|
|
249
|
+
return { vars, rest, error: "--var requires a non-empty key" };
|
|
250
|
+
}
|
|
226
251
|
vars[key] = value;
|
|
227
252
|
}
|
|
228
253
|
return { vars, rest };
|
|
@@ -234,7 +259,9 @@ function renderStep(step) {
|
|
|
234
259
|
if (step.kind === "code") return `code:${step.command}[${step.scope}]`;
|
|
235
260
|
if (step.kind === "agent") return `${step.agent}[${step.scope}]`;
|
|
236
261
|
if (step.kind === "gate") return `gate:${step.path}[${step.run}]`;
|
|
237
|
-
if (step.kind === "plan")
|
|
262
|
+
if (step.kind === "plan") {
|
|
263
|
+
return `plan:${step.agent}[${step.roster.join(",")}; max ${step.maxTasks}]`;
|
|
264
|
+
}
|
|
238
265
|
const check = step.check.kind === "code" ? `code:${step.check.command}` : step.check.kind === "gate" ? `gate:${step.check.gate}` : step.check.agent;
|
|
239
266
|
return `loop:${step.id}(${check} -> ${step.repair.agent} x${step.maxAttempts})`;
|
|
240
267
|
}
|
|
@@ -275,16 +302,28 @@ function runList(args) {
|
|
|
275
302
|
function contractAgents(contract) {
|
|
276
303
|
const agents = [];
|
|
277
304
|
for (const step of contract.steps) {
|
|
278
|
-
if (step.kind === "agent")
|
|
279
|
-
|
|
280
|
-
else if (step.kind === "
|
|
305
|
+
if (step.kind === "agent") {
|
|
306
|
+
agents.push({ id: step.id, agent: step.agent, scope: step.scope });
|
|
307
|
+
} else if (step.kind === "gate") {
|
|
308
|
+
agents.push({ id: step.id, agent: step.agent, scope: "workspace" });
|
|
309
|
+
} else if (step.kind === "plan") {
|
|
281
310
|
agents.push({ id: step.id, agent: step.agent, scope: step.scope });
|
|
282
|
-
for (const agent of step.roster)
|
|
311
|
+
for (const agent of step.roster) {
|
|
312
|
+
agents.push({ id: `${step.id}.roster`, agent, scope: "readonly" });
|
|
313
|
+
}
|
|
283
314
|
} else if (step.kind === "loop") {
|
|
284
315
|
if (step.check.kind === "agent") {
|
|
285
|
-
agents.push({
|
|
316
|
+
agents.push({
|
|
317
|
+
id: `${step.id}.check`,
|
|
318
|
+
agent: step.check.agent,
|
|
319
|
+
scope: step.check.scope
|
|
320
|
+
});
|
|
286
321
|
}
|
|
287
|
-
agents.push({
|
|
322
|
+
agents.push({
|
|
323
|
+
id: `${step.id}.repair`,
|
|
324
|
+
agent: step.repair.agent,
|
|
325
|
+
scope: step.repair.scope
|
|
326
|
+
});
|
|
288
327
|
}
|
|
289
328
|
}
|
|
290
329
|
return agents;
|
|
@@ -293,10 +332,12 @@ function preflightFleet(contract, deps) {
|
|
|
293
332
|
const targets = new Set(deps.settings.targets.map((target) => target.id));
|
|
294
333
|
const profiles = new Set(Object.keys(deps.settings.workers?.profiles ?? {}));
|
|
295
334
|
const checkRoute = (id, route) => {
|
|
296
|
-
if (route.target !== void 0 && !targets.has(route.target))
|
|
335
|
+
if (route.target !== void 0 && !targets.has(route.target)) {
|
|
297
336
|
return `unknown target '${route.target}' at step '${id}'`;
|
|
298
|
-
|
|
337
|
+
}
|
|
338
|
+
if (route.profile !== void 0 && !profiles.has(route.profile)) {
|
|
299
339
|
return `unknown profile '${route.profile}' at step '${id}'`;
|
|
340
|
+
}
|
|
300
341
|
return null;
|
|
301
342
|
};
|
|
302
343
|
for (const step of contract.steps) {
|
|
@@ -341,10 +382,13 @@ async function runFleet(args) {
|
|
|
341
382
|
const json = rest.includes("--json");
|
|
342
383
|
const resumeIndex = rest.indexOf("--resume");
|
|
343
384
|
const resumeId = resumeIndex === -1 ? void 0 : rest[resumeIndex + 1];
|
|
344
|
-
if (resumeIndex !== -1 && (resumeId === void 0 || resumeId.startsWith("-")))
|
|
385
|
+
if (resumeIndex !== -1 && (resumeId === void 0 || resumeId.startsWith("-"))) {
|
|
345
386
|
return fail("--resume requires a run id");
|
|
387
|
+
}
|
|
346
388
|
const name = rest.find((arg) => !arg.startsWith("-"));
|
|
347
|
-
if (!name)
|
|
389
|
+
if (!name) {
|
|
390
|
+
return fail("usage: clio-coder fleet run <name> [--var key=value ...] [--resume <runId>] [--json]");
|
|
391
|
+
}
|
|
348
392
|
let contract;
|
|
349
393
|
let prompt;
|
|
350
394
|
let commands;
|
|
@@ -373,7 +417,10 @@ async function runFleet(args) {
|
|
|
373
417
|
MiddlewareDomainModule,
|
|
374
418
|
ObservabilityDomainModule,
|
|
375
419
|
SchedulingDomainModule,
|
|
376
|
-
|
|
420
|
+
// A fleet step is dispatched by executeFleetRun, which drains the handle
|
|
421
|
+
// itself and never builds a dispatch event registry, so the domain is the
|
|
422
|
+
// only thing that can write each step's durable transcript.
|
|
423
|
+
createDispatchDomainModule({ journalRunEvents: true }),
|
|
377
424
|
SessionDomainModule,
|
|
378
425
|
LifecycleDomainModule
|
|
379
426
|
]);
|
|
@@ -386,12 +433,14 @@ async function runFleet(args) {
|
|
|
386
433
|
await loaded.stop();
|
|
387
434
|
return fail("required domains unavailable (dispatch/agents/safety)");
|
|
388
435
|
}
|
|
436
|
+
const fleetSettings = config?.get() ?? readSettings();
|
|
437
|
+
configureRunEventJournal(fleetSettings.panes.journal);
|
|
389
438
|
const roleFacts = agentRoleFactsResolver((id) => agents.getSpec(id));
|
|
390
439
|
const preflightError = preflightFleet(contract, {
|
|
391
440
|
agents,
|
|
392
441
|
safety,
|
|
393
442
|
scheduling,
|
|
394
|
-
settings:
|
|
443
|
+
settings: fleetSettings
|
|
395
444
|
});
|
|
396
445
|
if (preflightError !== null) {
|
|
397
446
|
await loaded.stop();
|
|
@@ -513,36 +562,47 @@ async function runFleet(args) {
|
|
|
513
562
|
...resume !== void 0 ? { resume } : {},
|
|
514
563
|
onStepSettled(step) {
|
|
515
564
|
if (step.replayed === true && step.result !== void 0) {
|
|
516
|
-
if (json)
|
|
565
|
+
if (json) {
|
|
517
566
|
process.stdout.write(
|
|
518
|
-
`${JSON.stringify({
|
|
567
|
+
`${JSON.stringify({
|
|
568
|
+
stepId: step.stepId,
|
|
569
|
+
status: "replayed",
|
|
570
|
+
receipt: {
|
|
571
|
+
runId: step.result.terminalRunId,
|
|
572
|
+
digest: step.result.receiptDigest
|
|
573
|
+
}
|
|
574
|
+
})}
|
|
519
575
|
`
|
|
520
576
|
);
|
|
521
|
-
else
|
|
577
|
+
} else {
|
|
522
578
|
process.stdout.write(
|
|
523
579
|
`step ${step.stepId}: replayed terminal-run=${step.result.terminalRunId} receipt=${step.result.receiptDigest}
|
|
524
580
|
`
|
|
525
581
|
);
|
|
582
|
+
}
|
|
526
583
|
return;
|
|
527
584
|
}
|
|
528
585
|
if (step.receipt !== void 0) {
|
|
529
586
|
if (json) process.stdout.write(`${JSON.stringify(step.receipt)}
|
|
530
587
|
`);
|
|
531
|
-
else
|
|
588
|
+
else {
|
|
532
589
|
process.stdout.write(
|
|
533
|
-
`step ${step.stepId} ${step.agentId}: ${step.succeeded ? "succeeded" : "failed"}${step.failureReason !== void 0 ? ` reason=${step.failureReason}` : ""} assignment=${step.assignmentId} terminal-run=${step.terminalRunId} cost
|
|
590
|
+
`step ${step.stepId} ${step.agentId}: ${step.succeeded ? "succeeded" : "failed"}${step.failureReason !== void 0 ? ` reason=${step.failureReason}` : ""} assignment=${step.assignmentId} terminal-run=${step.terminalRunId} cost=${renderCostAmount(step.costUsd, step.costProvenance)}
|
|
534
591
|
`
|
|
535
592
|
);
|
|
593
|
+
}
|
|
536
594
|
return;
|
|
537
595
|
}
|
|
538
596
|
if (step.codeStep !== void 0) {
|
|
539
|
-
if (json)
|
|
597
|
+
if (json) {
|
|
598
|
+
process.stdout.write(`${JSON.stringify({ codeStep: step.codeStep })}
|
|
540
599
|
`);
|
|
541
|
-
else
|
|
600
|
+
} else {
|
|
542
601
|
process.stdout.write(
|
|
543
602
|
`step ${step.stepId} code:${step.commandId}: ${step.succeeded ? "passed" : "failed"} exit=${step.codeStep.exitCode} ${step.codeStep.durationMs}ms record=${step.recordPath}
|
|
544
603
|
`
|
|
545
604
|
);
|
|
605
|
+
}
|
|
546
606
|
}
|
|
547
607
|
},
|
|
548
608
|
onNotice(text, kind) {
|
|
@@ -576,26 +636,34 @@ async function runFleet(args) {
|
|
|
576
636
|
);
|
|
577
637
|
} else {
|
|
578
638
|
process.stdout.write(
|
|
579
|
-
`fleet ${contract.name}: ${outcome.succeededStepCount}/${outcome.requiredStepCount} steps succeeded, ${outcome.resolvedLoopCount}/${outcome.result.loops.length} loops resolved, total cost
|
|
639
|
+
`fleet ${contract.name}: ${outcome.succeededStepCount}/${outcome.requiredStepCount} steps succeeded, ${outcome.resolvedLoopCount}/${outcome.result.loops.length} loops resolved, total cost ${renderCostAggregate(outcome.totalCost)}
|
|
580
640
|
`
|
|
581
641
|
);
|
|
582
|
-
for (const loop of outcome.result.loops)
|
|
642
|
+
for (const loop of outcome.result.loops) {
|
|
583
643
|
process.stdout.write(
|
|
584
644
|
` loop ${loop.loopId}: ${loop.reason} after ${loop.attempts} verification(s) and ${loop.repairs} repair(s)
|
|
585
645
|
`
|
|
586
646
|
);
|
|
587
|
-
|
|
647
|
+
}
|
|
648
|
+
if (outcome.result.revalidated.length > 0) {
|
|
588
649
|
process.stdout.write(
|
|
589
|
-
` staleness: re-ran ${outcome.result.revalidated.join(
|
|
650
|
+
` staleness: re-ran ${outcome.result.revalidated.join(
|
|
651
|
+
", "
|
|
652
|
+
)} because a workspace step landed after the last green
|
|
590
653
|
`
|
|
591
654
|
);
|
|
592
|
-
|
|
655
|
+
}
|
|
656
|
+
for (const message of outcome.result.needsDecision) {
|
|
657
|
+
process.stdout.write(` needs operator decision: ${message}
|
|
593
658
|
`);
|
|
659
|
+
}
|
|
594
660
|
for (const boundary of outcome.result.writeBoundaries) {
|
|
595
661
|
if (!boundary.violated) continue;
|
|
596
662
|
process.stdout.write(` write boundary ${boundary.window}: ${boundary.detail ?? WRITE_BOUNDARY_VIOLATION_REASON}
|
|
597
663
|
`);
|
|
598
664
|
}
|
|
665
|
+
process.stdout.write(` clio-coder fleet view ${fleetRootId} step index with each step's run id
|
|
666
|
+
`);
|
|
599
667
|
}
|
|
600
668
|
return outcome.cleanRun ? 0 : 1;
|
|
601
669
|
}
|
|
@@ -620,14 +688,20 @@ function receiptTokenSplit(row) {
|
|
|
620
688
|
const path = row.receiptPath ?? join(clioStateDir(), "receipts", `${row.id}.json`);
|
|
621
689
|
try {
|
|
622
690
|
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
623
|
-
return {
|
|
691
|
+
return {
|
|
692
|
+
input: finiteCount(parsed.inputTokenCount),
|
|
693
|
+
output: finiteCount(parsed.outputTokenCount)
|
|
694
|
+
};
|
|
624
695
|
} catch {
|
|
625
696
|
return null;
|
|
626
697
|
}
|
|
627
698
|
}
|
|
628
699
|
function rowTokenSplit(row) {
|
|
629
700
|
if (row.inputTokenCount !== void 0 || row.outputTokenCount !== void 0) {
|
|
630
|
-
return {
|
|
701
|
+
return {
|
|
702
|
+
input: finiteCount(row.inputTokenCount),
|
|
703
|
+
output: finiteCount(row.outputTokenCount)
|
|
704
|
+
};
|
|
631
705
|
}
|
|
632
706
|
if (row.endedAt !== null) {
|
|
633
707
|
return receiptTokenSplit(row) ?? { input: 0, output: 0 };
|
|
@@ -656,10 +730,16 @@ function statusSnapshot() {
|
|
|
656
730
|
elapsedMs: Number.isFinite(startedMs) ? Math.max(0, nowMs - startedMs) : 0,
|
|
657
731
|
tokens: { input: 0, output: 0, total: row.tokenCount },
|
|
658
732
|
costUsd: row.costUsd,
|
|
733
|
+
// Absent on pre-provenance ledger rows, which readers must treat as
|
|
734
|
+
// unknown; `renderCostAmount` normalizes it rather than assuming free.
|
|
735
|
+
costProvenance: row.costProvenance,
|
|
659
736
|
node: row.node?.id ?? "local"
|
|
660
737
|
};
|
|
661
738
|
});
|
|
662
739
|
const totals = { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUsd: 0, runtimeSeconds: 0 };
|
|
740
|
+
const cost = aggregateCostAmounts(
|
|
741
|
+
rows.map((row) => ({ usd: row.costUsd, provenance: normalizeCostProvenance(row.costProvenance) }))
|
|
742
|
+
);
|
|
663
743
|
for (const row of rows) {
|
|
664
744
|
const split = rowTokenSplit(row);
|
|
665
745
|
totals.inputTokens += split.input;
|
|
@@ -677,7 +757,7 @@ function statusSnapshot() {
|
|
|
677
757
|
admission: admissionStatus(capacityDrain(nowMs)),
|
|
678
758
|
running,
|
|
679
759
|
retrying: [],
|
|
680
|
-
totals
|
|
760
|
+
totals: { ...totals, cost }
|
|
681
761
|
};
|
|
682
762
|
}
|
|
683
763
|
function runStatus(args) {
|
|
@@ -702,7 +782,7 @@ function runStatus(args) {
|
|
|
702
782
|
for (const row of snapshot.running) {
|
|
703
783
|
const lineage = row.lineage;
|
|
704
784
|
process.stdout.write(
|
|
705
|
-
` ${row.runId} ${row.agentId} node=${row.node} ${row.heartbeat} attempt=${lineage.attempt} depth=${lineage.depth} ${Math.round(row.elapsedMs / 1e3)}s
|
|
785
|
+
` ${row.runId} ${row.agentId} node=${row.node} ${row.heartbeat} attempt=${lineage.attempt} depth=${lineage.depth} ${Math.round(row.elapsedMs / 1e3)}s ${renderCostAmount(row.costUsd, row.costProvenance)}
|
|
706
786
|
`
|
|
707
787
|
);
|
|
708
788
|
const budget = row.budget;
|
|
@@ -729,7 +809,7 @@ function runStatus(args) {
|
|
|
729
809
|
}
|
|
730
810
|
const t = snapshot.totals;
|
|
731
811
|
process.stdout.write(
|
|
732
|
-
`totals: tokens=${t.totalTokens} (in=${t.inputTokens} out=${t.outputTokens}) cost
|
|
812
|
+
`totals: tokens=${t.totalTokens} (in=${t.inputTokens} out=${t.outputTokens}) cost=${renderCostAggregate(t.cost)} runtime=${Math.round(t.runtimeSeconds)}s
|
|
733
813
|
`
|
|
734
814
|
);
|
|
735
815
|
return 0;
|
|
@@ -770,15 +850,23 @@ async function runFleetCommand(args) {
|
|
|
770
850
|
case "new":
|
|
771
851
|
return (await import("./fleet-new-RDVJLHHH.js")).runFleetNew(args.slice(1));
|
|
772
852
|
case "validate":
|
|
773
|
-
return (await import("./fleet-validate-
|
|
853
|
+
return (await import("./fleet-validate-AJRPDMDV.js")).runFleetValidate(args.slice(1));
|
|
774
854
|
case "graph":
|
|
775
|
-
return (await import("./fleet-graph-
|
|
855
|
+
return (await import("./fleet-graph-JF5QOATM.js")).runFleetGraph(args.slice(1));
|
|
776
856
|
case "commands":
|
|
777
|
-
return (await import("./fleet-commands-
|
|
857
|
+
return (await import("./fleet-commands-VJ726XIA.js")).runFleetCommands(args.slice(1));
|
|
778
858
|
case "run":
|
|
779
859
|
return runFleet(args.slice(1));
|
|
780
860
|
case "status":
|
|
781
861
|
return runStatus(args.slice(1));
|
|
862
|
+
case "inspect":
|
|
863
|
+
return (await import("./fleet-inspect-VLY4S7QM.js")).runFleetInspect(args.slice(1));
|
|
864
|
+
case "decisions":
|
|
865
|
+
return (await import("./fleet-decisions-EPAPM3XJ.js")).runFleetDecisions(args.slice(1));
|
|
866
|
+
case "verify":
|
|
867
|
+
return (await import("./fleet-verify-JFEL2L3H.js")).runFleetVerify(args.slice(1));
|
|
868
|
+
case "view":
|
|
869
|
+
return (await import("./fleet-view-ZCON35AG.js")).runFleetView(args.slice(1));
|
|
782
870
|
case "drain":
|
|
783
871
|
return runAdmissionControl("drain", args.slice(1));
|
|
784
872
|
case "resume":
|
|
@@ -794,4 +882,4 @@ export {
|
|
|
794
882
|
runFleetCommand,
|
|
795
883
|
statusSnapshot
|
|
796
884
|
};
|
|
797
|
-
//# sourceMappingURL=fleet-
|
|
885
|
+
//# sourceMappingURL=fleet-2RRVDF2V.js.map
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
discoverDeclaredProjectCommands
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-JDG2WCRO.js";
|
|
5
|
+
import "./chunk-3URVFKWK.js";
|
|
6
|
+
import "./chunk-YDFRH54B.js";
|
|
7
7
|
import "./chunk-LCGCVYZ4.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-HWHKMHUA.js";
|
|
9
9
|
import "./chunk-VG7TBQIY.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-5LXZXPKX.js";
|
|
11
11
|
import "./chunk-OQE5J4C6.js";
|
|
12
|
+
import "./chunk-6XLNIQDB.js";
|
|
12
13
|
import "./chunk-UL3WSD3F.js";
|
|
13
14
|
import "./chunk-ECH6PKUQ.js";
|
|
14
|
-
import "./chunk-6XLNIQDB.js";
|
|
15
15
|
import "./chunk-5B2AEOW5.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-K6BSR66V.js";
|
|
17
|
+
import "./chunk-BBVJUZHB.js";
|
|
18
18
|
import "./chunk-FQ4SKYE4.js";
|
|
19
19
|
import "./chunk-6EJMN2Y3.js";
|
|
20
20
|
import "./chunk-APJ265NV.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-BYP5D4HI.js";
|
|
22
22
|
import "./chunk-UOSL25KY.js";
|
|
23
23
|
import "./chunk-YXLYO42X.js";
|
|
24
24
|
import {
|
|
@@ -67,4 +67,4 @@ function runFleetCommands(args) {
|
|
|
67
67
|
export {
|
|
68
68
|
runFleetCommands
|
|
69
69
|
};
|
|
70
|
-
//# sourceMappingURL=fleet-commands-
|
|
70
|
+
//# sourceMappingURL=fleet-commands-VJ726XIA.js.map
|