@iowarp/clio-coder 0.3.8 → 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 +102 -0
- package/NOTICE +33 -0
- package/README.md +12 -3
- package/dist/{acp-U67UHUK2.js → acp-G5WJBNCT.js} +13 -12
- package/dist/{agents-YU6SGALZ.js → agents-FMV2Q5G4.js} +41 -36
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-5ZPJOIVG.js → auth-3IDSJEIK.js} +18 -18
- package/dist/{builtins-C6JMZVV6.js → builtins-XCZWXSC7.js} +5 -5
- package/dist/{chunk-IFBNV6H6.js → chunk-2ANTL7MR.js} +3 -3
- package/dist/{chunk-5FR74PWO.js → chunk-2JDWVJND.js} +2 -2
- package/dist/{chunk-XWSF374K.js → chunk-2OQE55CK.js} +3 -3
- package/dist/{chunk-5H3GB5BO.js → chunk-32KWKNSF.js} +8 -384
- package/dist/{chunk-KTYTFRMB.js → chunk-36EJLSQQ.js} +34 -36
- package/dist/{chunk-FHJEP5SW.js → chunk-3BT2XMV4.js} +19 -13
- package/dist/chunk-3DPEIQKN.js +113 -0
- package/dist/{chunk-GU2UIAFZ.js → chunk-3URVFKWK.js} +7 -7
- package/dist/{chunk-WEH5XRJQ.js → chunk-3XML7CDN.js} +3 -3
- package/dist/chunk-42FMPA75.js +101 -0
- package/dist/{chunk-A2NJGIB3.js → chunk-5LXZXPKX.js} +2 -2
- package/dist/{chunk-VCBR6CU7.js → chunk-5PSMVOLM.js} +2 -2
- package/dist/{chunk-NMPKI6XL.js → chunk-6DB53AJS.js} +203 -25
- package/dist/{chunk-3BINW3FP.js → chunk-76ONBSIA.js} +2 -2
- package/dist/{chunk-26LEYJZH.js → chunk-7MCTRUCE.js} +2 -2
- package/dist/{chunk-TYPGUK6W.js → chunk-AB44T6BB.js} +111 -5
- package/dist/{chunk-K4XHGFR5.js → chunk-B7OBL7PK.js} +317 -721
- package/dist/{chunk-B5CSFE7B.js → chunk-BBVJUZHB.js} +2 -2
- package/dist/{chunk-EQ63NRB7.js → chunk-BBVYXMFO.js} +2 -2
- package/dist/{chunk-ZVJ5BLO2.js → chunk-BKFJHQCA.js} +154 -16
- package/dist/chunk-BKFM6EJV.js +462 -0
- package/dist/chunk-BMS5RKQY.js +27 -0
- package/dist/{chunk-ZNLWCMVZ.js → chunk-BPKCPIL7.js} +2 -2
- package/dist/{chunk-TLQJPP24.js → chunk-BUMFYQFY.js} +1394 -1349
- package/dist/{chunk-BNAZZHFG.js → chunk-BYP5D4HI.js} +1 -1
- package/dist/chunk-C2LTL2W6.js +2447 -0
- package/dist/{chunk-ME6CCNFO.js → chunk-CODPRO7Q.js} +8 -8
- package/dist/{chunk-E77JEWSD.js → chunk-CTJ4RNAA.js} +7 -37
- package/dist/{chunk-ODFEOB4F.js → chunk-CY6FY24N.js} +26 -8
- package/dist/{chunk-7RFXX52T.js → chunk-DQITNCXG.js} +642 -172
- package/dist/{chunk-TTHACPOM.js → chunk-DYJP44XW.js} +578 -117
- package/dist/{chunk-2HFZQUHL.js → chunk-F4CKPOEQ.js} +18 -8
- package/dist/{chunk-DGSYXYMX.js → chunk-FEFIFZTL.js} +3 -3
- package/dist/{chunk-GWS3VEIW.js → chunk-FWDFM5ZU.js} +24 -3
- package/dist/{chunk-MV3K5QF2.js → chunk-GCSMB2KY.js} +2 -2
- package/dist/chunk-GKF55TAZ.js +391 -0
- package/dist/{chunk-VWZOAB7K.js → chunk-GR5G2PVF.js} +9 -8
- package/dist/{chunk-4DGYLA73.js → chunk-GXNLGKAB.js} +80 -9
- package/dist/chunk-HHV2GANA.js +88 -0
- package/dist/{chunk-IIZWH4XA.js → chunk-HI63TFOG.js} +5 -4
- package/dist/{chunk-WLFILSD5.js → chunk-HJJTYUHX.js} +113 -83
- package/dist/{chunk-TT36MB5S.js → chunk-HLW2MRKE.js} +3 -1
- package/dist/{chunk-PMDBGQSJ.js → chunk-HWHKMHUA.js} +7 -7
- package/dist/chunk-HZHHCK24.js +1631 -0
- package/dist/{chunk-WSB3FPX7.js → chunk-I5VEOC6I.js} +39 -143
- package/dist/chunk-IBEBSCYA.js +564 -0
- package/dist/chunk-IQ7KR472.js +362 -0
- package/dist/{chunk-A3WNZD3P.js → chunk-J4W7KFM7.js} +949 -972
- package/dist/{chunk-TB5666IT.js → chunk-JDG2WCRO.js} +5 -5
- package/dist/{chunk-N22QMJKY.js → chunk-K5C3NCBD.js} +4 -4
- package/dist/{chunk-CGKSTWHD.js → chunk-K6BSR66V.js} +2 -1
- package/dist/{chunk-5C3AQNDW.js → chunk-KFZI4NIL.js} +216 -38
- package/dist/chunk-KMVISBZR.js +132 -0
- package/dist/{chunk-WXY7KU3G.js → chunk-LDQ2ZF2M.js} +2 -2
- package/dist/{chunk-XN3L4EYL.js → chunk-LQ3DZAMX.js} +3 -3
- package/dist/{chunk-U6MBIEMB.js → chunk-LY4S7GJC.js} +173 -144
- package/dist/{chunk-4SPRNWDE.js → chunk-MLKNTWH2.js} +19 -19
- package/dist/{chunk-MVVUPGPW.js → chunk-MXHC5QYU.js} +6 -6
- package/dist/chunk-NEKRRTYW.js +56 -0
- package/dist/{chunk-SPULKLCF.js → chunk-NHCZP4K7.js} +3 -3
- package/dist/chunk-NHLBIGRH.js +1506 -0
- package/dist/chunk-NQQH3YT7.js +302 -0
- package/dist/chunk-NYS75XW5.js +15 -0
- package/dist/{chunk-GN57SG4G.js → chunk-O4XIVISU.js} +10 -8
- package/dist/{chunk-EMYUUSFG.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-J3YUBZWY.js → chunk-QBJA7R7N.js} +62 -6
- package/dist/chunk-QDC3K2U3.js +262 -0
- package/dist/{chunk-2HEJ2F35.js → chunk-QLFS5GO2.js} +22 -10
- package/dist/{chunk-7RGZWPB6.js → chunk-QLL7ILRG.js} +95 -32
- package/dist/{chunk-YS5VLNH5.js → chunk-QREDIESB.js} +6 -6
- package/dist/chunk-QSNYB6ZV.js +195 -0
- package/dist/{chunk-GOXNB3AO.js → chunk-RAPCMZL4.js} +75 -4
- package/dist/chunk-RKKLTLYB.js +45 -0
- package/dist/{chunk-P43ETTHK.js → chunk-SJ5ZKQ4S.js} +2 -2
- package/dist/{chunk-GPIEI3LY.js → chunk-SP2RXXYO.js} +6 -54
- package/dist/chunk-SUCTJL45.js +45 -0
- package/dist/{chunk-DYIM5TJT.js → chunk-SUW5DORT.js} +263 -7
- package/dist/chunk-T56WDKA5.js +183 -0
- package/dist/chunk-TVHHYFHE.js +255 -0
- package/dist/{chunk-FJ3H4MN5.js → chunk-TZ3SGWZZ.js} +3 -3
- package/dist/{chunk-MXKJU4JB.js → chunk-U77AMWDL.js} +91 -10
- package/dist/{chunk-5DHKRSMQ.js → chunk-ULC6OTWO.js} +11 -7
- package/dist/{chunk-RWSI4YD7.js → chunk-UM7N4G5A.js} +33 -12
- package/dist/{chunk-FCSXB6T2.js → chunk-UOSL25KY.js} +14 -2
- package/dist/{chunk-IGWKHNIQ.js → chunk-UXMFQ54G.js} +44 -37
- package/dist/{chunk-HFSBBKSQ.js → chunk-V5DHCITQ.js} +171 -3
- package/dist/{chunk-5WIGXA4T.js → chunk-VAZSBTKF.js} +111 -4
- package/dist/{chunk-VHN4MY6O.js → chunk-VEO4AP2K.js} +2 -2
- package/dist/{chunk-IJ7RPIYJ.js → chunk-VFA6GDY5.js} +65 -4
- package/dist/{chunk-PT7HYKEM.js → chunk-VO2LKSTM.js} +2 -2
- package/dist/chunk-VO67MWHC.js +75 -0
- package/dist/{chunk-XK56QHLX.js → chunk-VPKWYKEY.js} +19 -5
- package/dist/{chunk-TANS5ZJS.js → chunk-VYMXRQI6.js} +36 -22
- package/dist/{chunk-WWCZ5F23.js → chunk-W5VSYASO.js} +77 -16
- package/dist/{chunk-WNIJTQQK.js → chunk-WZR7K7ZX.js} +72 -116
- package/dist/{chunk-5Q2VVUKB.js → chunk-X3YGUTOB.js} +4 -4
- package/dist/chunk-X75E3D2N.js +686 -0
- package/dist/{chunk-VAWNZU7Z.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-Z2RR6MAK.js +127 -0
- package/dist/{chunk-FBVTI2TJ.js → chunk-Z4TXYIEG.js} +12 -131
- package/dist/cli/index.js +47 -36
- package/dist/{clio-QVTYJ57A.js → clio-2JXHBBY5.js} +7 -7
- package/dist/{code-nav-FGGFIE7L.js → code-nav-3YYRMYNF.js} +8 -8
- 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-LW5IJFQN.js → config-QZPCMYSO.js} +99 -63
- package/dist/{configure-7XIZCOU4.js → configure-TEGEBYCA.js} +23 -22
- package/dist/{context-Y6Y7QPR6.js → context-AV7OEZ4D.js} +12 -12
- package/dist/{context-L3WL3X7K.js → context-E6H5RNMC.js} +56 -47
- package/dist/{context-N52ZA626.js → context-GSXUE4CT.js} +29 -27
- package/dist/{context-clear-MBQRLSDQ.js → context-clear-SHIBYK6T.js} +55 -46
- package/dist/{context-index-HVMFQHK3.js → context-index-HNG3MOME.js} +2 -2
- package/dist/{context-working-set-GS6DSO7F.js → context-working-set-5ZGKPGZQ.js} +13 -13
- package/dist/{dispatch-runner-22ZCNOM3.js → dispatch-runner-EFMJT4LD.js} +93 -64
- package/dist/{docs-7LQ23DLM.js → docs-23KQS3XK.js} +5 -5
- package/dist/doctor-QOA5FNY5.js +313 -0
- package/dist/{eval-BEC2WHDA.js → eval-TFBYQH4H.js} +2032 -156
- package/dist/eval-inventory-SXH7PDKX.js +316 -0
- package/dist/{evidence-REJUMSKM.js → evidence-ERGESKGN.js} +203 -48
- package/dist/{evolve-PY5ZBA5K.js → evolve-VDXTSYCJ.js} +52 -43
- package/dist/{extensions-HVKU65YU.js → extensions-7BGBHN57.js} +13 -7
- package/dist/{fleet-7WZEWRFA.js → fleet-2RRVDF2V.js} +228 -108
- package/dist/{fleet-commands-UVHWM76J.js → fleet-commands-VJ726XIA.js} +11 -11
- package/dist/fleet-decisions-EPAPM3XJ.js +157 -0
- package/dist/{fleet-graph-6ULH7PES.js → fleet-graph-JF5QOATM.js} +18 -15
- package/dist/fleet-inspect-VLY4S7QM.js +442 -0
- package/dist/{fleet-preflight-J53T6CCE.js → fleet-preflight-AIZUEJOY.js} +5 -5
- package/dist/{fleet-validate-72PC4SLA.js → fleet-validate-AJRPDMDV.js} +22 -19
- package/dist/fleet-verify-JFEL2L3H.js +175 -0
- package/dist/fleet-view-ZCON35AG.js +102 -0
- package/dist/{init-OG3TPGQG.js → init-DN2WWLFE.js} +72 -62
- package/dist/install-XGLBQY5E.js +13 -0
- package/dist/interop-OZBKXAYL.js +114 -0
- package/dist/{library-CNTMPLRF.js → library-YWZG7IMW.js} +21 -18
- package/dist/{memory-6IS7F275.js → memory-I4C4HMLW.js} +54 -45
- package/dist/{models-ENRJDA5W.js → models-CEYXJBO6.js} +33 -30
- package/dist/{monitor-XLDVO7TN.js → monitor-NZ6GCI3P.js} +59 -52
- package/dist/{orchestrator-6KSPYRHA.js → orchestrator-GCGQ4N5I.js} +7827 -7328
- 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-RZ4ER727.js → reset-DQ6FGCSH.js} +13 -11
- package/dist/resources-BB3MVJMD.js +111 -0
- package/dist/{run-Y2CNK5RU.js → run-H2GQDUER.js} +119 -87
- package/dist/{share-A55GYP6Z.js → share-GTJN6A5O.js} +20 -17
- package/dist/{skills-ALC5J6AT.js → skills-L55TEW6R.js} +33 -24
- package/dist/{skills-eval-JPBEBYQU.js → skills-eval-XVXPH2JI.js} +67 -56
- package/dist/skills-inventory-S4MXPJFV.js +126 -0
- package/dist/slash-commands-ZSGASKJC.js +77 -0
- package/dist/{steer-GGWFUJUD.js → steer-RZGSCY4R.js} +4 -4
- package/dist/{support-MIETYA5E.js → support-PKEUNNQL.js} +6 -6
- package/dist/{targets-VGNXIR3S.js → targets-NCPZ644J.js} +68 -40
- package/dist/{terminal-lease-WOBR64YA.js → terminal-lease-44SV3YCN.js} +6 -4
- package/dist/tools-DAF3DI3C.js +27 -0
- package/dist/{trace-PNCASAXC.js → trace-FYVW2MQA.js} +207 -10
- package/dist/tui-primitives-2AKXQNZK.js +13 -0
- package/dist/{uninstall-ZJF5H5ZN.js → uninstall-DW2PNOIC.js} +5 -5
- package/dist/{upgrade-FUSUAGHR.js → upgrade-3XPP6OQL.js} +27 -24
- package/dist/{usage-N4MKVHKD.js → usage-3NLHGTU2.js} +114 -62
- package/dist/{verifiers-YAWOJ3H2.js → verifiers-SSQONKRT.js} +172 -13
- package/dist/{verify-LTDHYBGY.js → verify-3U6J7FZI.js} +10 -10
- package/dist/{web-fetch-2YHJ3KTG.js → web-fetch-S7RR6GZ7.js} +3 -3
- package/dist/{wiki-generate-6M7GHTBJ.js → wiki-generate-CEHYGPGQ.js} +75 -65
- package/dist/with-panes-MKB46MPQ.js +782 -0
- package/dist/worker/entry.js +106 -75
- 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 +9 -1
- package/docs/built-in-agents.md +1 -1
- package/docs/capacity-and-scheduling.md +62 -3
- package/docs/commands-and-modes.md +31 -2
- package/docs/configuration-and-targets.md +69 -12
- package/docs/context-engine.md +63 -4
- package/docs/development-pipeline.md +19 -0
- package/docs/dispatch-typed-intent.md +385 -0
- package/docs/documentation-coverage.md +5 -5
- package/docs/documentation-guide.md +1 -1
- package/docs/environment-variables.md +3 -0
- package/docs/eval-runner.md +262 -11
- package/docs/evals-internal.md +72 -2
- package/docs/evidence-and-memory.md +12 -11
- package/docs/evolution.md +1 -1
- package/docs/exit-codes-and-output.md +1 -1
- package/docs/extensions-and-sharing.md +27 -1
- package/docs/fleet-dispatch.md +25 -4
- 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 +55 -4
- package/docs/proactive-memory.md +127 -14
- package/docs/prompt-envelope-and-tools.md +19 -1
- package/docs/provider-adapter-cookbook.md +1 -1
- package/docs/release-cut-checklist.md +19 -3
- 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 +88 -1
- package/docs/tui-design.md +1 -1
- package/docs/worker-dispatch-mechanics.md +1 -1
- package/package.json +5 -2
- package/src/cli/acp.ts +6 -2
- package/src/cli/agents.ts +1 -1
- package/src/cli/argv.ts +25 -0
- package/src/cli/config-inspect.ts +33 -6
- package/src/cli/config.ts +1 -1
- package/src/cli/configure.ts +23 -21
- package/src/cli/doctor-panes.ts +124 -0
- package/src/cli/doctor-state-size.ts +82 -0
- package/src/cli/doctor-toolchain.ts +57 -0
- package/src/cli/doctor.ts +22 -1
- package/src/cli/eval-inventory.ts +436 -0
- package/src/cli/eval.ts +93 -16
- 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/extensions.ts +5 -1
- 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 +179 -39
- 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/targets.ts +44 -13
- package/src/cli/tools.ts +321 -0
- package/src/cli/trace-inspect.ts +252 -0
- package/src/cli/trace.ts +85 -5
- package/src/cli/usage.ts +63 -14
- package/src/cli/verifiers-inspect.ts +347 -0
- package/src/cli/verifiers.ts +9 -0
- package/src/core/bus-events.ts +33 -1
- package/src/core/cache-telemetry.ts +42 -0
- package/src/core/config.ts +67 -0
- package/src/core/defaults.ts +124 -8
- package/src/core/endpoint-key.ts +27 -0
- package/src/core/residency-target-key.ts +25 -0
- package/src/core/response-schema.ts +80 -6
- 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 +6 -0
- package/src/domains/context/codewiki/coordinator.ts +12 -4
- package/src/domains/dispatch/admission-error.ts +9 -0
- package/src/domains/dispatch/admission.ts +52 -14
- package/src/domains/dispatch/capacity-lease.ts +118 -9
- package/src/domains/dispatch/contract.ts +11 -0
- package/src/domains/dispatch/council-topology.ts +398 -0
- package/src/domains/dispatch/execution-plan.ts +44 -4
- package/src/domains/dispatch/extension.ts +378 -82
- 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 +87 -4
- 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/heartbeat.ts +32 -8
- package/src/domains/dispatch/index.ts +22 -0
- package/src/domains/dispatch/intent-compatibility.ts +330 -0
- package/src/domains/dispatch/intent.ts +85 -1
- package/src/domains/dispatch/orphan-recovery.ts +5 -0
- package/src/domains/dispatch/reservation-store.ts +139 -11
- 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 +49 -1
- package/src/domains/dispatch/types.ts +13 -0
- package/src/domains/dispatch/validation.ts +33 -8
- package/src/domains/dispatch/worker-spawn.ts +25 -11
- package/src/domains/dispatch/write-boundary-enforcer.ts +20 -3
- package/src/domains/dispatch/write-boundary.ts +62 -1
- package/src/domains/eval/artifacts/store.ts +62 -0
- package/src/domains/eval/compare/behavioral.ts +224 -0
- package/src/domains/eval/compare/compare.ts +342 -2
- package/src/domains/eval/compare/envelope.ts +128 -0
- package/src/domains/eval/compare/gates.ts +24 -6
- package/src/domains/eval/compare/thresholds.ts +30 -3
- package/src/domains/eval/execution-provenance.ts +240 -0
- package/src/domains/eval/inventory.ts +113 -0
- package/src/domains/eval/metrics/aggregate.ts +136 -0
- package/src/domains/eval/metrics/call-ledger-stream.ts +112 -0
- package/src/domains/eval/metrics/tracked.ts +413 -0
- package/src/domains/eval/provenance.ts +117 -0
- package/src/domains/eval/reports/comparison.ts +128 -0
- package/src/domains/eval/reports/junit.ts +17 -3
- package/src/domains/eval/reports/markdown.ts +3 -3
- package/src/domains/eval/reports/text.ts +14 -0
- package/src/domains/eval/run-compare.ts +20 -0
- package/src/domains/eval/runners/clio-run.ts +127 -0
- package/src/domains/eval/runners/external-command.ts +28 -3
- package/src/domains/eval/schema/adapter.ts +111 -0
- package/src/domains/eval/schema/artifact.ts +20 -0
- package/src/domains/eval/schema/behavioral-metrics.ts +204 -0
- package/src/domains/eval/schema/behavioral.ts +520 -0
- package/src/domains/eval/schema/execution-envelope.ts +194 -0
- package/src/domains/eval/schema/serving.ts +105 -0
- package/src/domains/eval/schema/suite.ts +38 -8
- package/src/domains/eval/schema/validate.ts +58 -3
- package/src/domains/eval/schema/verdict.ts +237 -0
- package/src/domains/eval/suites/resolve.ts +2 -0
- package/src/domains/eval/suites/run.ts +264 -33
- package/src/domains/eval/verifiers/command.ts +2 -1
- package/src/domains/eval/workspaces/temp-copy.ts +145 -13
- package/src/domains/evidence/build.ts +2 -13
- package/src/domains/evidence/eval.ts +2 -12
- package/src/domains/evidence/findings-markdown.ts +33 -0
- package/src/domains/evidence/run-trust.ts +7 -113
- package/src/domains/evidence/store.ts +6 -0
- package/src/domains/evidence/trust-projection.ts +2 -2
- package/src/domains/extensions/compatibility.ts +285 -0
- package/src/domains/extensions/discovery.ts +38 -3
- package/src/domains/extensions/resources.ts +1 -1
- package/src/domains/extensions/state.ts +12 -3
- package/src/domains/extensions/types.ts +2 -0
- package/src/domains/lifecycle/doctor.ts +69 -1
- package/src/domains/memory/index.ts +14 -1
- package/src/domains/memory/task-bank-promotion.ts +64 -0
- package/src/domains/memory/task-memory-policy.ts +82 -17
- package/src/domains/memory/task-memory-spend.ts +131 -0
- package/src/domains/memory/task-memory-status.ts +7 -0
- package/src/domains/memory/task-memory-telemetry.ts +3 -0
- package/src/domains/middleware/index.ts +1 -0
- package/src/domains/middleware/memory-intervention.ts +97 -21
- package/src/domains/middleware/memory-step-endpoint.ts +71 -0
- 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/background-memory-usage.ts +140 -0
- package/src/domains/observability/cost.ts +22 -1
- package/src/domains/observability/index.ts +9 -0
- package/src/domains/observability/out-of-turn-usage.ts +51 -2
- package/src/domains/observability/trace-store.ts +234 -2
- package/src/domains/prompts/compiler.ts +100 -13
- package/src/domains/providers/endpoint-capacity.ts +228 -0
- package/src/domains/providers/endpoint-slots-store.ts +189 -0
- package/src/domains/providers/extension.ts +20 -3
- package/src/domains/providers/index.ts +32 -0
- package/src/domains/providers/model-runtime-capabilities.ts +32 -0
- package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +243 -1
- package/src/domains/providers/runtime-resolution.ts +8 -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/common/probe-helpers.ts +31 -9
- package/src/domains/providers/runtimes/local-native/llamacpp-anthropic.ts +1 -1
- package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
- package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +1 -1
- package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +1 -1
- package/src/domains/providers/runtimes/local-native/llamacpp.ts +4 -1
- package/src/domains/providers/runtimes/local-native/lmstudio.ts +4 -1
- package/src/domains/providers/runtimes/local-native/ollama-native.ts +6 -1
- 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/providers/types/capability-flags.ts +2 -0
- package/src/domains/providers/types/target-descriptor.ts +2 -0
- package/src/domains/resources/index.ts +3 -0
- package/src/domains/resources/prompts/loader.ts +95 -33
- package/src/domains/resources/skills/loader.ts +33 -0
- package/src/domains/safety/action-classifier.ts +6 -0
- package/src/domains/safety/call-target.ts +52 -0
- package/src/domains/safety/run-effects.ts +35 -4
- package/src/domains/session/context-accounting.ts +52 -1
- package/src/domains/session/context-ledger.ts +37 -13
- package/src/domains/session/index.ts +6 -0
- package/src/domains/session/prompt-cache.ts +140 -0
- package/src/domains/session/prompt-manifest.ts +42 -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/adapter.ts +18 -3
- package/src/engine/acp/server.ts +413 -70
- package/src/engine/acp/types.ts +19 -1
- package/src/engine/ai.ts +35 -0
- package/src/engine/apis/llamacpp-residency.ts +55 -3
- package/src/engine/apis/lmstudio.ts +25 -5
- package/src/engine/apis/ollama-native.ts +2 -1
- package/src/engine/apis/openai-completions.ts +80 -17
- package/src/engine/apis/residency-lock.ts +3 -1
- package/src/engine/apis/residency.ts +34 -1
- package/src/engine/claude/sdk-module.ts +98 -0
- package/src/engine/claude/sdk-runtime.ts +19 -11
- package/src/engine/provider-payload.ts +29 -1
- 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 +279 -35
- package/src/entry/panes-activation.ts +31 -0
- package/src/entry/with-panes.ts +20 -0
- package/src/interactive/chat-loop-messages.ts +26 -7
- package/src/interactive/chat-loop.ts +318 -41
- package/src/interactive/chat-panel.ts +62 -8
- package/src/interactive/clio-editor.ts +45 -8
- package/src/interactive/context-activity.ts +5 -1
- package/src/interactive/context-meter.ts +1 -1
- package/src/interactive/context-overlay.ts +41 -10
- package/src/interactive/cost-overlay.ts +66 -6
- package/src/interactive/council-grid.ts +1 -3
- package/src/interactive/council.ts +11 -0
- package/src/interactive/dispatch-board.ts +102 -20
- package/src/interactive/fleet-run-preview.ts +41 -15
- package/src/interactive/handoff-round.ts +41 -2
- package/src/interactive/interactive-application.ts +177 -7
- package/src/interactive/interactive-input-runtime.ts +15 -0
- package/src/interactive/interactive-presentation.ts +4 -0
- package/src/interactive/interactive-shell.ts +20 -17
- package/src/interactive/interactive-slash-runtime.ts +63 -10
- package/src/interactive/memory-overlay.ts +9 -0
- package/src/interactive/modal-marker.ts +170 -0
- package/src/interactive/mutation-preview.ts +295 -0
- package/src/interactive/mux-bridge.ts +214 -0
- package/src/interactive/overlay-frame.ts +58 -2
- package/src/interactive/overlay-general-openers.ts +17 -0
- package/src/interactive/overlay-key-routing.ts +52 -3
- package/src/interactive/overlay-lifecycle.ts +56 -7
- package/src/interactive/overlay-model-selectors.ts +40 -3
- package/src/interactive/overlay-permission-lifecycle.ts +112 -24
- package/src/interactive/overlay-session-lifecycle.ts +73 -9
- package/src/interactive/overlay-transitions.ts +18 -4
- package/src/interactive/overlays/agents.ts +1 -0
- package/src/interactive/overlays/ask-user.ts +227 -49
- 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 +6 -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 +12 -1
- package/src/interactive/overlays/session-selector.ts +1 -0
- package/src/interactive/overlays/settings-sections.ts +30 -0
- package/src/interactive/overlays/settings.ts +614 -45
- 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/permission-hint.ts +34 -2
- package/src/interactive/permission-overlay.ts +159 -9
- package/src/interactive/prewarm.ts +197 -0
- package/src/interactive/render-trace.ts +162 -15
- package/src/interactive/renderers/compaction-summary.ts +29 -0
- package/src/interactive/renderers/tool-execution.ts +4 -0
- package/src/interactive/renderers/worker-entry.ts +122 -14
- package/src/interactive/side-question.ts +58 -1
- package/src/interactive/slash-commands.ts +251 -15
- package/src/interactive/status/controller.ts +11 -0
- package/src/interactive/status/state-machine.ts +54 -2
- package/src/interactive/status/types.ts +7 -0
- package/src/interactive/tasks-overlay.ts +1 -0
- package/src/interactive/terminal-lease.ts +2 -0
- package/src/interactive/theme/tokens.ts +3 -14
- package/src/interactive/turn-context.ts +346 -33
- package/src/interactive/turn-persistence.ts +14 -4
- package/src/interactive/turn-prewarm.ts +364 -0
- package/src/interactive/turn-queues.ts +7 -4
- package/src/interactive/turn-runtime.ts +8 -1
- package/src/interactive/turn-state.ts +23 -0
- package/src/interactive/view/artifacts.ts +109 -1
- package/src/interactive/view/view-overlay.ts +29 -3
- 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/ask-user.ts +43 -2
- 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-plan.ts +17 -9
- package/src/tools/dispatch-run-events.ts +134 -19
- package/src/tools/dispatch-runner.ts +29 -7
- package/src/tools/dispatch-scout.ts +1 -1
- 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/src/tools/registry.ts +16 -0
- package/dist/chunk-AOCYTWAV.js +0 -449
- package/dist/chunk-HLE42MG7.js +0 -37
- package/dist/chunk-HWUFFB6L.js +0 -83
- package/dist/chunk-JOZYP4GM.js +0 -279
- package/dist/doctor-M7YEDGAE.js +0 -91
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
describeYaziProfile,
|
|
4
|
+
inspectCurrentYaziProfile,
|
|
5
|
+
resetYaziProfile
|
|
6
|
+
} from "./chunk-HZHHCK24.js";
|
|
7
|
+
import {
|
|
8
|
+
installTool,
|
|
9
|
+
installedToolVersions,
|
|
10
|
+
removeTool
|
|
11
|
+
} from "./chunk-BKFM6EJV.js";
|
|
12
|
+
import {
|
|
13
|
+
describeFloorRejection,
|
|
14
|
+
describeResolution,
|
|
15
|
+
installRemedy,
|
|
16
|
+
toolStatus,
|
|
17
|
+
toolStatuses
|
|
18
|
+
} from "./chunk-QSNYB6ZV.js";
|
|
19
|
+
import {
|
|
20
|
+
PINNED_TOOLS,
|
|
21
|
+
findPinnedTool
|
|
22
|
+
} from "./chunk-QDC3K2U3.js";
|
|
23
|
+
import {
|
|
24
|
+
formatColumns,
|
|
25
|
+
printError,
|
|
26
|
+
printOk
|
|
27
|
+
} from "./chunk-VPKWYKEY.js";
|
|
28
|
+
import {
|
|
29
|
+
init_esm_shims
|
|
30
|
+
} from "./chunk-3R73A4XB.js";
|
|
31
|
+
|
|
32
|
+
// src/cli/tools.ts
|
|
33
|
+
init_esm_shims();
|
|
34
|
+
var HELP = `clio-coder tools <command>
|
|
35
|
+
|
|
36
|
+
Manage the external terminal programs Clio can drive. Every one of them is
|
|
37
|
+
optional: Clio works without them and only uses one when it is present. Each is
|
|
38
|
+
pinned to an exact upstream version and checksum, and a copy already on PATH
|
|
39
|
+
wins over Clio's own as long as it clears the pinned minimum.
|
|
40
|
+
|
|
41
|
+
Commands:
|
|
42
|
+
clio-coder tools list [--json] the pinned table and where each resolves
|
|
43
|
+
clio-coder tools status <id> [--json] [--reset-profile] one tool in detail
|
|
44
|
+
clio-coder tools install <id> [--force] [--json] download, verify, and vendor a tool
|
|
45
|
+
clio-coder tools remove <id>|--all [--json] delete every vendored version of a tool
|
|
46
|
+
|
|
47
|
+
Downloads happen only here. Nothing on a startup path fetches anything.
|
|
48
|
+
|
|
49
|
+
An install keeps one version directory per tool: once the pinned version is in
|
|
50
|
+
place, versions it superseded are pruned, along with any staging directory left
|
|
51
|
+
by an install that was killed. Removal touches nothing outside <data>/tools/<id>
|
|
52
|
+
and needs no confirmation, since every byte under it is re-downloadable from the
|
|
53
|
+
checksum-pinned registry. "remove --all" sweeps every tool in the table.
|
|
54
|
+
`;
|
|
55
|
+
async function runToolsCommand(argv = []) {
|
|
56
|
+
let parsed;
|
|
57
|
+
try {
|
|
58
|
+
parsed = parse(argv);
|
|
59
|
+
} catch (error) {
|
|
60
|
+
printError(error instanceof Error ? error.message : String(error));
|
|
61
|
+
process.stderr.write(HELP);
|
|
62
|
+
return 2;
|
|
63
|
+
}
|
|
64
|
+
if (parsed.help || parsed.command === void 0) {
|
|
65
|
+
process.stdout.write(HELP);
|
|
66
|
+
return parsed.help ? 0 : 2;
|
|
67
|
+
}
|
|
68
|
+
if (parsed.all && parsed.command !== "remove") {
|
|
69
|
+
printError("--all is only valid with `tools remove`");
|
|
70
|
+
return 2;
|
|
71
|
+
}
|
|
72
|
+
switch (parsed.command) {
|
|
73
|
+
case "list":
|
|
74
|
+
if (parsed.resetProfile) return invalidResetProfile();
|
|
75
|
+
return listTools(parsed.json);
|
|
76
|
+
case "status":
|
|
77
|
+
return statusTool(parsed.positional[0], parsed.json, parsed.resetProfile);
|
|
78
|
+
case "install":
|
|
79
|
+
if (parsed.resetProfile) return invalidResetProfile();
|
|
80
|
+
return installOne(parsed.positional[0], parsed.force, parsed.json);
|
|
81
|
+
case "remove":
|
|
82
|
+
if (parsed.resetProfile) return invalidResetProfile();
|
|
83
|
+
return parsed.all ? removeAll(parsed.positional[0], parsed.json) : removeOne(parsed.positional[0], parsed.json);
|
|
84
|
+
default:
|
|
85
|
+
printError(`unknown tools command: ${parsed.command}`);
|
|
86
|
+
process.stderr.write(HELP);
|
|
87
|
+
return 2;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function parse(argv) {
|
|
91
|
+
const out = { positional: [], json: false, force: false, all: false, resetProfile: false, help: false };
|
|
92
|
+
for (const arg of argv) {
|
|
93
|
+
if (!out.command && !arg.startsWith("-")) {
|
|
94
|
+
out.command = arg;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
switch (arg) {
|
|
98
|
+
case "--json":
|
|
99
|
+
out.json = true;
|
|
100
|
+
break;
|
|
101
|
+
case "--force":
|
|
102
|
+
case "-f":
|
|
103
|
+
out.force = true;
|
|
104
|
+
break;
|
|
105
|
+
case "--all":
|
|
106
|
+
out.all = true;
|
|
107
|
+
break;
|
|
108
|
+
case "--reset-profile":
|
|
109
|
+
out.resetProfile = true;
|
|
110
|
+
break;
|
|
111
|
+
case "--help":
|
|
112
|
+
case "-h":
|
|
113
|
+
out.help = true;
|
|
114
|
+
break;
|
|
115
|
+
default:
|
|
116
|
+
if (arg.startsWith("-")) throw new Error(`unknown flag: ${arg}`);
|
|
117
|
+
out.positional.push(arg);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return out;
|
|
121
|
+
}
|
|
122
|
+
function listTools(json) {
|
|
123
|
+
const statuses = toolStatuses();
|
|
124
|
+
if (json) {
|
|
125
|
+
process.stdout.write(`${JSON.stringify(statuses.map(jsonShape), null, 2)}
|
|
126
|
+
`);
|
|
127
|
+
return 0;
|
|
128
|
+
}
|
|
129
|
+
const rows = statuses.map((status) => [
|
|
130
|
+
status.id,
|
|
131
|
+
status.version,
|
|
132
|
+
status.license,
|
|
133
|
+
status.resolution.source,
|
|
134
|
+
describeResolution(status)
|
|
135
|
+
]);
|
|
136
|
+
process.stdout.write(formatColumns([["TOOL", "PIN", "LICENSE", "SOURCE", "RESOLVED"], ...rows]));
|
|
137
|
+
return 0;
|
|
138
|
+
}
|
|
139
|
+
function invalidResetProfile() {
|
|
140
|
+
printError("--reset-profile is only valid with `tools status yazi`");
|
|
141
|
+
return 2;
|
|
142
|
+
}
|
|
143
|
+
function unknownTool(id) {
|
|
144
|
+
printError(`unknown tool: ${id} (known: ${PINNED_TOOLS.map((row) => row.id).join(", ")})`);
|
|
145
|
+
return 2;
|
|
146
|
+
}
|
|
147
|
+
function statusTool(id, json, resetProfile) {
|
|
148
|
+
if (id === void 0) {
|
|
149
|
+
printError("usage: clio-coder tools status <id>");
|
|
150
|
+
return 2;
|
|
151
|
+
}
|
|
152
|
+
const entry = findPinnedTool(id);
|
|
153
|
+
if (entry === null) {
|
|
154
|
+
return unknownTool(id);
|
|
155
|
+
}
|
|
156
|
+
if (resetProfile && id !== "yazi") return invalidResetProfile();
|
|
157
|
+
if (resetProfile) resetYaziProfile();
|
|
158
|
+
const status = toolStatus(entry);
|
|
159
|
+
const profile = id === "yazi" ? inspectCurrentYaziProfile() : null;
|
|
160
|
+
if (json) {
|
|
161
|
+
process.stdout.write(
|
|
162
|
+
`${JSON.stringify({ ...jsonShape(status), ...profile ? { profile, profileReset: resetProfile } : {} }, null, 2)}
|
|
163
|
+
`
|
|
164
|
+
);
|
|
165
|
+
return 0;
|
|
166
|
+
}
|
|
167
|
+
const rejection = describeFloorRejection(status);
|
|
168
|
+
const installedVersions = installedToolVersions(entry.id);
|
|
169
|
+
const lines = [
|
|
170
|
+
`${entry.id} ${entry.version} (${entry.license})`,
|
|
171
|
+
` ${entry.summary}`,
|
|
172
|
+
` homepage ${entry.homepage}`,
|
|
173
|
+
` binaries ${entry.binaries.join(", ")}`,
|
|
174
|
+
` PATH floor ${entry.minimumVersion}`,
|
|
175
|
+
` platform ${status.platform ?? `${process.platform}-${process.arch}`}${status.supported ? "" : " (no pinned asset)"}`,
|
|
176
|
+
` vendor dir ${status.installDir}${status.installed ? "" : " (not installed)"}`,
|
|
177
|
+
` vendored ${installedVersions.length === 0 ? "nothing" : installedVersions.join(", ")}`,
|
|
178
|
+
` resolves to ${describeResolution(status)}`,
|
|
179
|
+
// Spelled out on its own line as well as inside the resolution sentence,
|
|
180
|
+
// because a rejected PATH copy is the one thing an operator reads this
|
|
181
|
+
// command to understand and the sentence above may be about something else.
|
|
182
|
+
...rejection === null ? [] : [
|
|
183
|
+
` floor rejected: ${rejection}`,
|
|
184
|
+
...status.resolution.source === "none" && status.supported ? [` remedy ${installRemedy(entry.id)}`] : []
|
|
185
|
+
],
|
|
186
|
+
...profile ? [
|
|
187
|
+
` profile ${describeYaziProfile(profile)}`,
|
|
188
|
+
...resetProfile ? [" profile reset; next open regenerates it"] : []
|
|
189
|
+
] : []
|
|
190
|
+
];
|
|
191
|
+
process.stdout.write(`${lines.join("\n")}
|
|
192
|
+
`);
|
|
193
|
+
return 0;
|
|
194
|
+
}
|
|
195
|
+
async function installOne(id, force, json) {
|
|
196
|
+
if (id === void 0) {
|
|
197
|
+
printError("usage: clio-coder tools install <id>");
|
|
198
|
+
return 2;
|
|
199
|
+
}
|
|
200
|
+
if (findPinnedTool(id) === null) {
|
|
201
|
+
return unknownTool(id);
|
|
202
|
+
}
|
|
203
|
+
const result = await installTool(id, {
|
|
204
|
+
force,
|
|
205
|
+
...json ? {} : { onProgress: (message) => process.stderr.write(` ${message}
|
|
206
|
+
`) }
|
|
207
|
+
});
|
|
208
|
+
if (json) {
|
|
209
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}
|
|
210
|
+
`);
|
|
211
|
+
return result.ok ? 0 : 1;
|
|
212
|
+
}
|
|
213
|
+
if (!result.ok) {
|
|
214
|
+
printError(result.message);
|
|
215
|
+
return 1;
|
|
216
|
+
}
|
|
217
|
+
printOk(result.message);
|
|
218
|
+
for (const path of result.documents) process.stdout.write(` license ${path}
|
|
219
|
+
`);
|
|
220
|
+
for (const version of result.pruned) process.stdout.write(` pruned ${id} ${version}
|
|
221
|
+
`);
|
|
222
|
+
return 0;
|
|
223
|
+
}
|
|
224
|
+
function removeOne(id, json) {
|
|
225
|
+
if (id === void 0) {
|
|
226
|
+
printError("usage: clio-coder tools remove <id>");
|
|
227
|
+
return 2;
|
|
228
|
+
}
|
|
229
|
+
if (findPinnedTool(id) === null) return unknownTool(id);
|
|
230
|
+
const result = removeTool(id);
|
|
231
|
+
if (json) {
|
|
232
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}
|
|
233
|
+
`);
|
|
234
|
+
return result.ok ? 0 : 1;
|
|
235
|
+
}
|
|
236
|
+
if (!result.ok) {
|
|
237
|
+
printError(result.message);
|
|
238
|
+
return 1;
|
|
239
|
+
}
|
|
240
|
+
printOk(result.message);
|
|
241
|
+
if (result.removed.length > 0) {
|
|
242
|
+
process.stdout.write(` reinstall with \`${installRemedy(id)}\`
|
|
243
|
+
`);
|
|
244
|
+
}
|
|
245
|
+
return 0;
|
|
246
|
+
}
|
|
247
|
+
function removeAll(id, json) {
|
|
248
|
+
if (id !== void 0) {
|
|
249
|
+
printError("`tools remove --all` takes no tool id; drop the id or drop --all");
|
|
250
|
+
return 2;
|
|
251
|
+
}
|
|
252
|
+
const results = PINNED_TOOLS.map((entry) => removeTool(entry.id));
|
|
253
|
+
if (json) {
|
|
254
|
+
process.stdout.write(`${JSON.stringify(results, null, 2)}
|
|
255
|
+
`);
|
|
256
|
+
return results.every((result) => result.ok) ? 0 : 1;
|
|
257
|
+
}
|
|
258
|
+
for (const result of results) {
|
|
259
|
+
if (!result.ok) printError(result.message);
|
|
260
|
+
else if (result.removed.length > 0 || result.staleStaging.length > 0) printOk(result.message);
|
|
261
|
+
}
|
|
262
|
+
const touched = results.filter((result) => result.ok && result.removed.length > 0);
|
|
263
|
+
const untouched = results.filter((result) => result.ok && result.removed.length === 0);
|
|
264
|
+
if (touched.length > 0) {
|
|
265
|
+
process.stdout.write(` reinstall with \`clio-coder tools install <id>\`
|
|
266
|
+
`);
|
|
267
|
+
}
|
|
268
|
+
if (untouched.length > 0) {
|
|
269
|
+
process.stdout.write(` ${untouched.length} of ${results.length} had nothing vendored
|
|
270
|
+
`);
|
|
271
|
+
}
|
|
272
|
+
return results.every((result) => result.ok) ? 0 : 1;
|
|
273
|
+
}
|
|
274
|
+
function jsonShape(status) {
|
|
275
|
+
return {
|
|
276
|
+
id: status.id,
|
|
277
|
+
version: status.version,
|
|
278
|
+
license: status.license,
|
|
279
|
+
platform: status.platform,
|
|
280
|
+
supported: status.supported,
|
|
281
|
+
installed: status.installed,
|
|
282
|
+
installDir: status.installDir,
|
|
283
|
+
source: status.resolution.source,
|
|
284
|
+
binaryPath: status.resolution.binaryPath,
|
|
285
|
+
foundVersion: status.resolution.version,
|
|
286
|
+
minimumVersion: status.resolution.entry?.minimumVersion ?? null,
|
|
287
|
+
pathCandidate: status.resolution.pathCandidate,
|
|
288
|
+
// A script deciding whether to warn about a floor rejection should not have
|
|
289
|
+
// to parse `detail` for it, so the rejection and the command that answers
|
|
290
|
+
// it are their own fields. `remedy` is null exactly where installing would
|
|
291
|
+
// change nothing: already vendored, or no asset for this platform.
|
|
292
|
+
floorRejection: describeFloorRejection(status),
|
|
293
|
+
remedy: status.resolution.source === "none" && status.supported ? installRemedy(status.id) : null,
|
|
294
|
+
installedVersions: installedToolVersions(status.id),
|
|
295
|
+
detail: describeResolution(status)
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export {
|
|
300
|
+
runToolsCommand
|
|
301
|
+
};
|
|
302
|
+
//# sourceMappingURL=chunk-NQQH3YT7.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
init_esm_shims
|
|
4
|
+
} from "./chunk-3R73A4XB.js";
|
|
5
|
+
|
|
6
|
+
// src/engine/tui-primitives.ts
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
import { ProcessTerminal, TuiAltScreen, truncateToWidth } from "@earendil-works/pi-tui";
|
|
9
|
+
|
|
10
|
+
export {
|
|
11
|
+
ProcessTerminal,
|
|
12
|
+
TuiAltScreen,
|
|
13
|
+
truncateToWidth
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=chunk-NYS75XW5.js.map
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
parseAgentRecipeSchema
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-Z4TXYIEG.js";
|
|
5
|
+
import {
|
|
6
|
+
parseFleetContract
|
|
7
|
+
} from "./chunk-CTJ4RNAA.js";
|
|
5
8
|
import {
|
|
6
|
-
parseFleetContract,
|
|
7
9
|
parseFrontmatter
|
|
8
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-RKKLTLYB.js";
|
|
9
11
|
import {
|
|
10
12
|
assertAgentSpecPolicy,
|
|
11
13
|
normalizeAgentSpec
|
|
12
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-DYJP44XW.js";
|
|
13
15
|
import {
|
|
14
16
|
readSettings,
|
|
15
17
|
settingsPath,
|
|
16
18
|
updateSettings
|
|
17
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-VFA6GDY5.js";
|
|
18
20
|
import {
|
|
19
21
|
readClioVersion
|
|
20
22
|
} from "./chunk-IWHMRKLL.js";
|
|
21
23
|
import {
|
|
22
24
|
DEFAULT_SETTINGS
|
|
23
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-GXNLGKAB.js";
|
|
24
26
|
import {
|
|
25
27
|
require_dist
|
|
26
28
|
} from "./chunk-APJ265NV.js";
|
|
27
29
|
import {
|
|
28
30
|
clioConfigDir,
|
|
29
31
|
resolveClioDirs
|
|
30
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-BYP5D4HI.js";
|
|
31
33
|
import {
|
|
32
34
|
safeResourceBackupPath,
|
|
33
35
|
safeResourceWrite
|
|
@@ -610,4 +612,4 @@ export {
|
|
|
610
612
|
importShareArchive,
|
|
611
613
|
ShareDomainModule
|
|
612
614
|
};
|
|
613
|
-
//# sourceMappingURL=chunk-
|
|
615
|
+
//# sourceMappingURL=chunk-O4XIVISU.js.map
|
|
@@ -4,25 +4,25 @@ import {
|
|
|
4
4
|
READONLY_SCOPE,
|
|
5
5
|
WORKSPACE_SCOPE,
|
|
6
6
|
isSubset
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5PSMVOLM.js";
|
|
8
8
|
import {
|
|
9
9
|
createLoopState,
|
|
10
10
|
observe
|
|
11
11
|
} from "./chunk-UOV2BYIW.js";
|
|
12
12
|
import {
|
|
13
13
|
createSafetyPolicyEngine
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-32KWKNSF.js";
|
|
15
15
|
import {
|
|
16
16
|
classify
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-DYJP44XW.js";
|
|
18
18
|
import {
|
|
19
19
|
BusChannels,
|
|
20
20
|
isRunAbortedPayload
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-HLW2MRKE.js";
|
|
22
22
|
import {
|
|
23
23
|
clioStateDir,
|
|
24
24
|
stateRootRemoved
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-BYP5D4HI.js";
|
|
26
26
|
import {
|
|
27
27
|
init_esm_shims
|
|
28
28
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -608,4 +608,4 @@ var SafetyDomainModule = {
|
|
|
608
608
|
export {
|
|
609
609
|
SafetyDomainModule
|
|
610
610
|
};
|
|
611
|
-
//# sourceMappingURL=chunk-
|
|
611
|
+
//# sourceMappingURL=chunk-O6TL7WWY.js.map
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
compileExecutionPlan
|
|
4
|
+
} from "./chunk-QBJA7R7N.js";
|
|
5
|
+
import {
|
|
6
|
+
deriveExecutionRole
|
|
7
|
+
} from "./chunk-H7IXIC72.js";
|
|
8
|
+
import {
|
|
9
|
+
init_esm_shims
|
|
10
|
+
} from "./chunk-3R73A4XB.js";
|
|
11
|
+
|
|
12
|
+
// src/domains/dispatch/scout-transition.ts
|
|
13
|
+
init_esm_shims();
|
|
14
|
+
function scopeFor(authority) {
|
|
15
|
+
return authority === "read-only" || authority === "verification" ? "readonly" : "workspace";
|
|
16
|
+
}
|
|
17
|
+
function assertReceiptDigest(value) {
|
|
18
|
+
if (!/^[0-9a-f]{64}$/u.test(value)) throw new Error("scout transition: source receipt digest is invalid");
|
|
19
|
+
}
|
|
20
|
+
function compileScoutTransition(input) {
|
|
21
|
+
assertReceiptDigest(input.sourceReceiptDigest);
|
|
22
|
+
if (!input.scout.needsSplit) {
|
|
23
|
+
return {
|
|
24
|
+
kind: "settled",
|
|
25
|
+
sourceReceiptDigest: input.sourceReceiptDigest,
|
|
26
|
+
findings: input.scout.findings.map((finding) => ({ ...finding }))
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const subtasks = input.scout.proposedSubtasks;
|
|
30
|
+
const byId = new Map(input.bindings.map((binding) => [binding.subtaskId, binding]));
|
|
31
|
+
if (byId.size !== input.bindings.length || byId.size !== subtasks.length) {
|
|
32
|
+
throw new Error("scout transition: coordinator bindings must match subtasks exactly");
|
|
33
|
+
}
|
|
34
|
+
for (const binding of input.bindings) {
|
|
35
|
+
if (!subtasks.some((subtask) => subtask.id === binding.subtaskId)) {
|
|
36
|
+
throw new Error(`scout transition: undeclared binding '${binding.subtaskId}'`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const approved = new Set(input.authority.approvedAuthorities);
|
|
40
|
+
const missing = /* @__PURE__ */ new Set();
|
|
41
|
+
const steps = subtasks.map((subtask) => {
|
|
42
|
+
const binding = byId.get(subtask.id);
|
|
43
|
+
if (binding === void 0) throw new Error(`scout transition: subtask '${subtask.id}' has no agent binding`);
|
|
44
|
+
if (binding.spec.resultContract.kind !== subtask.expectedResultContract) {
|
|
45
|
+
throw new Error(`scout transition: subtask '${subtask.id}' result contract does not match its bound agent`);
|
|
46
|
+
}
|
|
47
|
+
if (binding.spec.capabilityClass !== subtask.requestedAuthority) {
|
|
48
|
+
throw new Error(`scout transition: subtask '${subtask.id}' authority does not match its bound agent`);
|
|
49
|
+
}
|
|
50
|
+
const granted = approved.has(subtask.requestedAuthority);
|
|
51
|
+
if (!granted) missing.add(subtask.requestedAuthority);
|
|
52
|
+
return {
|
|
53
|
+
id: subtask.id,
|
|
54
|
+
agentId: binding.spec.id,
|
|
55
|
+
executionRole: deriveExecutionRole({
|
|
56
|
+
attempt: 0,
|
|
57
|
+
capabilityClass: binding.spec.capabilityClass,
|
|
58
|
+
resultContractKind: binding.spec.resultContract.kind
|
|
59
|
+
}),
|
|
60
|
+
scope: scopeFor(subtask.requestedAuthority),
|
|
61
|
+
expectedResultContract: subtask.expectedResultContract,
|
|
62
|
+
requestedAuthority: subtask.requestedAuthority,
|
|
63
|
+
approvedAuthority: granted ? subtask.requestedAuthority : null,
|
|
64
|
+
dependencies: [...subtask.dependencies],
|
|
65
|
+
task: subtask.task
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
const plan = compileExecutionPlan({
|
|
69
|
+
topology: "fleet",
|
|
70
|
+
rootTask: input.rootTask,
|
|
71
|
+
maxWorkers: Math.max(1, Math.min(4, input.maxWorkers, steps.length)),
|
|
72
|
+
onFailure: "stop",
|
|
73
|
+
steps
|
|
74
|
+
});
|
|
75
|
+
if (missing.size > 0) {
|
|
76
|
+
return {
|
|
77
|
+
kind: "approval-required",
|
|
78
|
+
sourceReceiptDigest: input.sourceReceiptDigest,
|
|
79
|
+
plan,
|
|
80
|
+
requiredAuthorities: [...missing]
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
kind: "ready",
|
|
85
|
+
sourceReceiptDigest: input.sourceReceiptDigest,
|
|
86
|
+
plan,
|
|
87
|
+
authority: {
|
|
88
|
+
basis: input.authority.basis,
|
|
89
|
+
approvedAuthorities: [...input.authority.approvedAuthorities]
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export {
|
|
95
|
+
compileScoutTransition
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=chunk-OQBA45DZ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
openAuthStorage
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BBVYXMFO.js";
|
|
5
5
|
import {
|
|
6
6
|
getRuntimeRegistry
|
|
7
7
|
} from "./chunk-NUGM5KR6.js";
|
|
@@ -30,4 +30,4 @@ function credentialsPresent() {
|
|
|
30
30
|
export {
|
|
31
31
|
credentialsPresent
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=chunk-
|
|
33
|
+
//# sourceMappingURL=chunk-P3FOHJT4.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
init_esm_shims
|
|
4
|
+
} from "./chunk-3R73A4XB.js";
|
|
5
|
+
|
|
6
|
+
// src/interactive/pane-policy.ts
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
var WATCHABLE_STATUSES = /* @__PURE__ */ new Set(["running", "stale", "cancelling", "enqueued", "retrying"]);
|
|
9
|
+
function paneWatchDecision(request) {
|
|
10
|
+
if (request.source === "dispatch") {
|
|
11
|
+
return { open: false, reason: "dispatches run headless; watch a run from the workers view or /panes show" };
|
|
12
|
+
}
|
|
13
|
+
if (!WATCHABLE_STATUSES.has(request.runStatus)) {
|
|
14
|
+
return {
|
|
15
|
+
open: false,
|
|
16
|
+
reason: `run is ${request.runStatus}; use \`clio-coder fleet view <runId>\` for the post-mortem`
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return { open: true };
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
paneWatchDecision
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=chunk-PMZCIOCJ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
resolveClioDirs
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BYP5D4HI.js";
|
|
5
5
|
import {
|
|
6
6
|
init_esm_shims
|
|
7
7
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -70,4 +70,4 @@ export {
|
|
|
70
70
|
workerCompileCacheEnvironment,
|
|
71
71
|
deleteInjectedCompileCacheFrom
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=chunk-
|
|
73
|
+
//# sourceMappingURL=chunk-PQEFIJ36.js.map
|
|
@@ -3,7 +3,10 @@ import {
|
|
|
3
3
|
fleetLoopCheckStepId,
|
|
4
4
|
fleetLoopRepairStepId,
|
|
5
5
|
fleetStepWriteBoundary
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CTJ4RNAA.js";
|
|
7
|
+
import {
|
|
8
|
+
resultContractShape
|
|
9
|
+
} from "./chunk-DYJP44XW.js";
|
|
7
10
|
import {
|
|
8
11
|
init_esm_shims
|
|
9
12
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -45,11 +48,23 @@ function executionPlanWaves(steps, maxWorkers) {
|
|
|
45
48
|
const ready = steps.filter((step) => remaining.has(step.id) && step.dependencies.every((id) => completed.has(id)));
|
|
46
49
|
if (ready.length === 0) throw new Error("execution plan: dependency cycle detected");
|
|
47
50
|
const codeReady = ready.filter((step) => step.kind === "code").map((step) => step.id);
|
|
48
|
-
const agentReady = ready.filter((step) => step.kind !== "code")
|
|
51
|
+
const agentReady = ready.filter((step) => step.kind !== "code");
|
|
49
52
|
const chunks = [];
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
let chunk = [];
|
|
54
|
+
let endpointCounts = /* @__PURE__ */ new Map();
|
|
55
|
+
for (const step of agentReady) {
|
|
56
|
+
const endpoint = step.endpoint;
|
|
57
|
+
const endpointLimit = endpoint === void 0 ? Number.POSITIVE_INFINITY : Math.max(1, endpoint.limit - (endpoint.foregroundHeld ?? 0));
|
|
58
|
+
const endpointFull = endpoint !== void 0 && (endpointCounts.get(endpoint.key) ?? 0) >= endpointLimit;
|
|
59
|
+
if (chunk.length >= maxWorkers || endpointFull) {
|
|
60
|
+
chunks.push(chunk);
|
|
61
|
+
chunk = [];
|
|
62
|
+
endpointCounts = /* @__PURE__ */ new Map();
|
|
63
|
+
}
|
|
64
|
+
chunk.push(step.id);
|
|
65
|
+
if (endpoint !== void 0) endpointCounts.set(endpoint.key, (endpointCounts.get(endpoint.key) ?? 0) + 1);
|
|
52
66
|
}
|
|
67
|
+
if (chunk.length > 0) chunks.push(chunk);
|
|
53
68
|
if (chunks.length === 0) chunks.push([]);
|
|
54
69
|
chunks[0] = [...codeReady, ...chunks[0] ?? []];
|
|
55
70
|
for (const wave of chunks) {
|
|
@@ -139,6 +154,21 @@ function compileExecutionPlan(input) {
|
|
|
139
154
|
};
|
|
140
155
|
return { ...canonical, hash: createHash("sha256").update(JSON.stringify(canonical)).digest("hex") };
|
|
141
156
|
}
|
|
157
|
+
function bindExecutionPlanEndpoints(plan, bindings) {
|
|
158
|
+
return compileExecutionPlan({
|
|
159
|
+
topology: plan.topology,
|
|
160
|
+
rootTask: plan.rootTask,
|
|
161
|
+
maxWorkers: plan.maxWorkers,
|
|
162
|
+
...plan.writers === 1 ? { writers: 1 } : {},
|
|
163
|
+
onFailure: plan.onFailure,
|
|
164
|
+
steps: plan.steps.map((step) => {
|
|
165
|
+
if (step.kind === "code") return step;
|
|
166
|
+
const endpoint = bindings[step.id];
|
|
167
|
+
return endpoint === void 0 ? step : { ...step, endpoint: { ...endpoint } };
|
|
168
|
+
}),
|
|
169
|
+
loops: plan.loops
|
|
170
|
+
});
|
|
171
|
+
}
|
|
142
172
|
function executionPlanAncestors(plan, stepId) {
|
|
143
173
|
const byId = new Map(plan.steps.map((step) => [step.id, step]));
|
|
144
174
|
const ancestors = /* @__PURE__ */ new Set();
|
|
@@ -185,6 +215,31 @@ function spliceExecutionPlan(plan, parentId, tasks) {
|
|
|
185
215
|
|
|
186
216
|
// src/domains/dispatch/fleet-plan.ts
|
|
187
217
|
init_esm_shims();
|
|
218
|
+
|
|
219
|
+
// src/domains/dispatch/fleet-node-prompt.ts
|
|
220
|
+
init_esm_shims();
|
|
221
|
+
function fleetNodeAnswerDirective(kind) {
|
|
222
|
+
if (kind === "architect-plan") return null;
|
|
223
|
+
return [
|
|
224
|
+
`Your result contract for this step is \`${kind}\`.`,
|
|
225
|
+
"The task above describes the whole chain. Any result shape it states belongs to the step that produces it, and does not apply to you.",
|
|
226
|
+
`End with exactly this shape and nothing else: ${resultContractShape({ kind })}`,
|
|
227
|
+
// The wire example carries literal names and evidence, and a small model
|
|
228
|
+
// handed one on a first attempt copies them: the first run of this
|
|
229
|
+
// directive came back claiming `npm run typecheck` / `exit 0` in the same
|
|
230
|
+
// breath as admitting it could not run a command. The fields are the
|
|
231
|
+
// contract; the values in the example are not.
|
|
232
|
+
"Its field values are an example. Fill them with what this run actually produced or observed, and never report a name or evidence you did not."
|
|
233
|
+
].join("\n");
|
|
234
|
+
}
|
|
235
|
+
function renderFleetNodeTask(task, kind) {
|
|
236
|
+
const directive = fleetNodeAnswerDirective(kind);
|
|
237
|
+
return directive === null ? task : `${task}
|
|
238
|
+
|
|
239
|
+
${directive}`;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// src/domains/dispatch/fleet-plan.ts
|
|
188
243
|
function expandDependencies(dependencies, loopMembers) {
|
|
189
244
|
return dependencies.flatMap((id) => {
|
|
190
245
|
const loop = loopMembers.get(id);
|
|
@@ -233,7 +288,7 @@ function compileFleetExecutionPlan(input) {
|
|
|
233
288
|
agentId: context.agentId,
|
|
234
289
|
scope: context.scope,
|
|
235
290
|
dependencies: [...dependencies],
|
|
236
|
-
task,
|
|
291
|
+
task: renderFleetNodeTask(task, resolved.expectedResultContract),
|
|
237
292
|
expectedResultContract: resolved.expectedResultContract,
|
|
238
293
|
requestedAuthority: resolved.requestedAuthority,
|
|
239
294
|
approvedAuthority: resolved.approvedAuthority,
|
|
@@ -375,8 +430,9 @@ function compileFleetExecutionPlan(input) {
|
|
|
375
430
|
export {
|
|
376
431
|
requireAgentSteps,
|
|
377
432
|
compileExecutionPlan,
|
|
433
|
+
bindExecutionPlanEndpoints,
|
|
378
434
|
executionPlanAncestors,
|
|
379
435
|
spliceExecutionPlan,
|
|
380
436
|
compileFleetExecutionPlan
|
|
381
437
|
};
|
|
382
|
-
//# sourceMappingURL=chunk-
|
|
438
|
+
//# sourceMappingURL=chunk-QBJA7R7N.js.map
|