@iowarp/clio-coder 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +92 -0
- package/CONTRIBUTING.md +59 -36
- package/README.md +404 -472
- package/SECURITY.md +2 -1
- package/dist/{acp-ZILU3AUO.js → acp-TMDQZDIG.js} +7 -7
- package/dist/{agents-HYWGBGQR.js → agents-5N5NG3XG.js} +28 -28
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-N3QT7CBO.js → auth-Z5CCBXKQ.js} +8 -9
- package/dist/{builtins-UJLMOVOV.js → builtins-K6TNDT24.js} +4 -4
- package/dist/{chunk-GVQJ5CCZ.js → chunk-2HFQNRV3.js} +7 -7
- package/dist/{chunk-QMXC4JB7.js → chunk-2NHR3NAY.js} +163 -1401
- package/dist/chunk-2X4RYJTJ.js +39 -0
- package/dist/{chunk-Y45G3AXC.js → chunk-2Z2IKEXI.js} +6 -10
- package/dist/{chunk-EIMVLWB3.js → chunk-34BHNEE3.js} +7 -3
- package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
- package/dist/chunk-3EBYEESD.js +314 -0
- package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
- package/dist/{chunk-AP73CFDC.js → chunk-3KIPBMUA.js} +2 -2
- package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
- package/dist/{chunk-VEGN6WIQ.js → chunk-462T4EGZ.js} +2 -2
- package/dist/{chunk-AFKWHWXF.js → chunk-4JDLP6ZS.js} +33 -16
- package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
- package/dist/{chunk-AKB4GYDL.js → chunk-54ODD65L.js} +5 -5
- package/dist/{chunk-BBTJOK6Y.js → chunk-5KW52TEP.js} +3 -3
- package/dist/{chunk-6CCS4G3W.js → chunk-5PFYMY2V.js} +2 -2
- package/dist/chunk-77QIVUZB.js +1334 -0
- package/dist/{chunk-7OBGU7UB.js → chunk-7BHIY2MW.js} +7 -13
- package/dist/{chunk-3QSOM6PA.js → chunk-AZ4WMN4W.js} +2 -2
- package/dist/{chunk-6NJQITNH.js → chunk-B74PXLU7.js} +6 -3
- package/dist/{chunk-R23Z6K6I.js → chunk-B7HM5Z7T.js} +15 -15
- package/dist/{chunk-R32CLGZ6.js → chunk-BO7Y52RY.js} +81 -20
- package/dist/{chunk-UEDMSP56.js → chunk-BYMNWQ7O.js} +123 -148
- package/dist/{chunk-ZJLUDYFY.js → chunk-CRFOIAX3.js} +4 -4
- package/dist/{chunk-2NM363SV.js → chunk-CYZW7JHJ.js} +7 -7
- package/dist/{chunk-6HMJX2VU.js → chunk-DYHAXKHD.js} +38 -10
- package/dist/{chunk-THYWACCR.js → chunk-DZAW46HP.js} +3 -3
- package/dist/{chunk-FYUN5KZ3.js → chunk-DZEK6CJN.js} +17 -17
- package/dist/{chunk-3I5NY75V.js → chunk-E7GT7O5N.js} +5 -5
- package/dist/{chunk-VKFQTNDV.js → chunk-F2I26BDK.js} +4 -4
- package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
- package/dist/{chunk-IXJT6DCX.js → chunk-FVDGR2ZL.js} +3 -3
- package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
- package/dist/{chunk-7EPLI7VL.js → chunk-HIICAHCJ.js} +2 -2
- package/dist/{chunk-E67WX76H.js → chunk-HKMD33FO.js} +29 -80
- package/dist/chunk-HLAFFSEK.js +360 -0
- package/dist/{chunk-UAPGZHYC.js → chunk-I64IFBLB.js} +9 -2
- package/dist/{chunk-XKA2ICR3.js → chunk-I66ZTYNP.js} +440 -175
- package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
- package/dist/{chunk-PVAMAVBB.js → chunk-IDNA72AH.js} +102 -2
- package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
- package/dist/{chunk-2VG7KLYV.js → chunk-IKSLQ4XV.js} +5460 -3241
- package/dist/{chunk-QKIFBZKT.js → chunk-IMXMHHMQ.js} +166 -25
- package/dist/{chunk-74YWRRU5.js → chunk-JBCS7CRR.js} +2 -2
- package/dist/{chunk-BDPT6GTK.js → chunk-JWJGP5DQ.js} +2 -2
- package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
- package/dist/chunk-KPXDY6QF.js +47 -0
- package/dist/{chunk-ABLSQ6JX.js → chunk-LJID3DYZ.js} +7 -1
- package/dist/{chunk-VKRH2TCS.js → chunk-M2DAX4F6.js} +2 -2
- package/dist/{chunk-6I5ILFOF.js → chunk-M2WXEHER.js} +2 -2
- package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
- package/dist/{chunk-N5UK64DP.js → chunk-MCMZMDAC.js} +2 -2
- package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
- package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
- package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
- package/dist/{chunk-HUAS7ITX.js → chunk-O3YUNJZ2.js} +13 -21
- package/dist/{chunk-MA3H6DM5.js → chunk-P75RZCJW.js} +25 -3
- package/dist/{chunk-IG7BCQBA.js → chunk-PGF63K6I.js} +2 -2
- package/dist/chunk-PJX3WQUQ.js +42 -0
- package/dist/{chunk-6DWBAZ5U.js → chunk-Q4XWMHX6.js} +4 -6
- package/dist/{chunk-OJTRZGR3.js → chunk-QQLGQY2A.js} +8 -8
- package/dist/{chunk-J4HBWF6Y.js → chunk-RLYRBIYQ.js} +115 -20
- package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
- package/dist/{chunk-C537JADH.js → chunk-SSEYRH53.js} +6 -7
- package/dist/chunk-SZAA6XDG.js +30 -0
- package/dist/{chunk-MOPSG2X7.js → chunk-TPEQIQIE.js} +6 -6
- package/dist/{chunk-JA5QWE4Z.js → chunk-UBRFI4HS.js} +1879 -1650
- package/dist/{chunk-BTGG6BG2.js → chunk-UH347SHR.js} +154 -15
- package/dist/{chunk-5YHDIDBP.js → chunk-UH632ZYL.js} +2 -2
- package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
- package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
- package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
- package/dist/{chunk-UXN6JT4W.js → chunk-W4YEMFBX.js} +2 -2
- package/dist/{chunk-TD3PGPQA.js → chunk-W6NIE6OW.js} +2 -2
- package/dist/{chunk-TVH4ONAM.js → chunk-X7IARSHT.js} +3 -3
- package/dist/{chunk-PJJ6MY27.js → chunk-XE3PCIXH.js} +3 -3
- package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
- package/dist/{chunk-SCYB3HA4.js → chunk-XOXV5GKE.js} +51 -16
- package/dist/{chunk-QTFGO774.js → chunk-XQRY4DTA.js} +24 -11
- package/dist/{chunk-BJGUKIG4.js → chunk-YJISEZKC.js} +2 -2
- package/dist/{chunk-GPPB3JBE.js → chunk-ZGNYYXQ6.js} +2 -2
- package/dist/{chunk-SINK3QR6.js → chunk-ZNT2M6TG.js} +7 -7
- package/dist/{chunk-7RY5VZPH.js → chunk-ZW4HH5JJ.js} +6 -6
- package/dist/cli/index.js +33 -32
- package/dist/{clio-IT3G3VQH.js → clio-7VB377CC.js} +7 -7
- package/dist/{code-nav-RK6S7F6E.js → code-nav-YVLCYA7V.js} +85 -17
- package/dist/{config-3QZRWZJF.js → config-4HVOS65E.js} +88 -43
- package/dist/{configure-FL7Y3KJF.js → configure-PIWO7B24.js} +10 -10
- package/dist/{context-5HE7ODYK.js → context-IYEHL3WQ.js} +33 -31
- package/dist/{context-XNHL75JV.js → context-KQYIWPWT.js} +47 -34
- package/dist/{context-KYQFRVDC.js → context-N6ZE3LGJ.js} +11 -11
- package/dist/{context-clear-N545L53A.js → context-clear-G4OGZJDS.js} +33 -31
- package/dist/{context-working-set-QHKXSV2F.js → context-working-set-BWLF6LJP.js} +7 -7
- package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-2QQAITS3.js} +38 -38
- package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
- package/dist/{doctor-ZGPEGHIP.js → doctor-LHBD36VU.js} +23 -22
- package/dist/{eval-GXLL44RD.js → eval-C45FYRJ6.js} +21 -20
- package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-6DEJPLBF.js} +2 -2
- package/dist/{evidence-HWLBRH3Q.js → evidence-6SHONYAF.js} +30 -28
- package/dist/{evolve-FTZBMNVW.js → evolve-KRKMV72X.js} +30 -28
- package/dist/{extensions-VHRBEID7.js → extensions-KPZ2UHBB.js} +5 -3
- package/dist/{fleet-CKZHJWZJ.js → fleet-IVTCKDHT.js} +62 -61
- package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-EDWL3IT7.js} +5 -5
- package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-YP3YEFGK.js} +4 -4
- package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-ZFWKHY2M.js} +16 -14
- package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-FVUNCBML.js} +31 -29
- package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-UN5XED4R.js} +2 -2
- package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-XOWC4HSX.js} +17 -15
- package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-UN3SODEL.js} +30 -28
- package/dist/{fleet-view-WAMJYNDT.js → fleet-view-TWHJKCN6.js} +31 -29
- package/dist/{init-5XQRBOFV.js → init-T2QORQ3Y.js} +50 -49
- package/dist/{interop-34TVO25M.js → interop-IN5I2A66.js} +5 -5
- package/dist/{library-3QY6KF57.js → library-LSCATDLZ.js} +15 -13
- package/dist/{memory-L4UTIIIW.js → memory-HYOKAGGJ.js} +31 -29
- package/dist/{models-ZVX3QOWE.js → models-2GPMFYCM.js} +22 -21
- package/dist/{monitor-CEKVSYTS.js → monitor-E4ASVUJH.js} +34 -32
- package/dist/{orchestrator-77BAP6BC.js → orchestrator-DDMPR3PY.js} +984 -583
- package/dist/{panes-7STHOAUJ.js → panes-E3RUXOW5.js} +4 -4
- package/dist/{panes-SHAUIRXY.js → panes-IXKLOKA2.js} +23 -8
- package/dist/{reset-EOLM7GVE.js → reset-OAQP3W4O.js} +4 -4
- package/dist/{resources-74GKTLSF.js → resources-OTRSN34L.js} +15 -13
- package/dist/{run-HBAUJNNZ.js → run-5DEYH5QK.js} +60 -59
- package/dist/{share-G3APVLVP.js → share-IHWTLO3M.js} +19 -15
- package/dist/{skills-35HHUKCR.js → skills-IYMXMKW4.js} +17 -15
- package/dist/{skills-eval-QN4HSHDC.js → skills-eval-DROHSJAR.js} +36 -36
- package/dist/{skills-inventory-J357J34F.js → skills-inventory-D7X4L4ZX.js} +15 -13
- package/dist/{slash-commands-JZZCQA32.js → slash-commands-QBM7UZ3B.js} +21 -18
- package/dist/{steer-XAVHJM22.js → steer-Z5DO23FJ.js} +2 -2
- package/dist/{targets-DSM6CY3M.js → targets-P2FUC4IL.js} +25 -28
- package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-YREJ3JX2.js} +5 -5
- package/dist/{tools-MKNWVPBH.js → tools-5B7RO6MV.js} +4 -4
- package/dist/{trace-ECQ7TIYZ.js → trace-YMGMUM6A.js} +55 -7
- package/dist/{upgrade-H7TOM7YL.js → upgrade-PXK3S2YM.js} +11 -9
- package/dist/{usage-X52N3IDJ.js → usage-ME5MPXGX.js} +36 -34
- package/dist/{verifiers-EJTVVSMA.js → verifiers-BVZ7IWOO.js} +5 -5
- package/dist/{verify-YJL6XET2.js → verify-5K7ZKQFC.js} +4 -4
- package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
- package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-F5W5QTYY.js} +48 -47
- package/dist/{with-panes-OBOBFIIR.js → with-panes-BYOJCLAM.js} +51 -255
- package/dist/worker/entry.js +45 -30
- package/docs/README.md +176 -81
- package/docs/{acp.md → architecture/acp.md} +36 -20
- package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
- package/docs/{architecture.md → architecture/architecture.md} +43 -22
- package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
- package/docs/architecture/artifact-versions.md +90 -0
- package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
- package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
- package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
- package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
- package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
- package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
- package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
- package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
- package/docs/{observability.md → architecture/observability.md} +26 -13
- package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
- package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
- package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
- package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
- package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
- package/docs/architecture/time-conventions.md +125 -0
- package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
- package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
- package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
- package/docs/{built-in-agents.md → guide/built-in-agents.md} +50 -34
- package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +65 -60
- package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +227 -289
- package/docs/guide/configuration-reference.md +1158 -0
- package/docs/{environment-variables.md → guide/environment-variables.md} +31 -28
- package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
- package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
- package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
- package/docs/{glossary.md → guide/glossary.md} +14 -11
- package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +44 -13
- package/docs/guide/panes-and-files.md +290 -0
- package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
- package/docs/{resource-library.md → guide/resource-library.md} +13 -4
- package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
- package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
- package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
- package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
- package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
- package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
- package/docs/process/documentation-coverage.md +100 -0
- package/docs/process/documentation-guide.md +187 -0
- package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
- package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
- package/docs/{evolution.md → process/evolution.md} +2 -2
- package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
- package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
- package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
- package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
- package/evals/README.md +2 -2
- package/package.json +9 -7
- package/skills/README.md +46 -37
- package/skills/coding/ast-grep/SKILL.md +2 -2
- package/skills/coding/coding-standards/SKILL.md +2 -2
- package/skills/coding/prototype/SKILL.md +2 -2
- package/skills/coding/tdd/SKILL.md +2 -2
- package/skills/context/context-handoff/SKILL.md +2 -2
- package/skills/context/context-prime/SKILL.md +2 -2
- package/skills/git/file-ticket/SKILL.md +2 -2
- package/skills/git/fix-issue/SKILL.md +3 -3
- package/skills/git/resolve-merge-conflicts/SKILL.md +2 -2
- package/skills/git/ship/SKILL.md +2 -2
- package/skills/git/worktree-create/SKILL.md +2 -2
- package/skills/git/worktree-merge/SKILL.md +2 -2
- package/skills/meta/clio-coder-dev/SKILL.md +9 -5
- package/skills/meta/clio-coder-dev/evals.md +3 -2
- package/skills/meta/clio-coder-test/SKILL.md +102 -95
- package/skills/meta/clio-coder-test/evals.md +9 -4
- package/skills/meta/clio-coder-test/references/harness.md +100 -124
- package/skills/meta/clio-coder-test/references/test-map.md +77 -50
- package/skills/meta/credentials/SKILL.md +2 -2
- package/skills/meta/find-skills/SKILL.md +2 -2
- package/skills/meta/herdr/SKILL.md +2 -2
- package/skills/meta/skill-craft/SKILL.md +22 -16
- package/skills/planning/architecture/SKILL.md +2 -2
- package/skills/planning/backlog/SKILL.md +2 -2
- package/skills/planning/prd/SKILL.md +2 -2
- package/skills/planning/product-intent/SKILL.md +2 -2
- package/skills/planning/tech-spec/SKILL.md +2 -2
- package/skills/registry.yaml +62 -62
- package/skills/research/arxiv-literature/SKILL.md +2 -2
- package/skills/research/experiment-protocol/SKILL.md +2 -2
- package/skills/research/scientific-debugging/SKILL.md +2 -2
- package/skills/research/scientific-modernization/SKILL.md +2 -2
- package/skills/skill-marketplace.json +62 -62
- package/skills/workflow/cut-it/SKILL.md +2 -2
- package/skills/workflow/design-council/SKILL.md +2 -2
- package/skills/workflow/grill-me/SKILL.md +2 -2
- package/skills/workflow/workflow-distiller/SKILL.md +2 -2
- package/src/cli/args.ts +2 -2
- package/src/cli/bootstrap-generate.ts +1 -1
- package/src/cli/config-inspect.ts +65 -12
- package/src/cli/configure.ts +0 -4
- package/src/cli/docs.ts +22 -14
- package/src/cli/doctor-naming.ts +5 -5
- package/src/cli/doctor-toolchain.ts +3 -3
- package/src/cli/eval.ts +1 -2
- package/src/cli/extensions.ts +2 -1
- package/src/cli/fleet.ts +1 -1
- package/src/cli/index.ts +2 -1
- package/src/cli/internal-dispatch.ts +3 -4
- package/src/cli/panes.ts +19 -5
- package/src/cli/run.ts +2 -2
- package/src/cli/share.ts +5 -1
- package/src/cli/skills-eval.ts +3 -3
- package/src/cli/targets.ts +2 -6
- package/src/cli/trace.ts +55 -4
- package/src/cli/wiki-generate.ts +1 -1
- package/src/core/artifact-paths.ts +1 -1
- package/src/core/bash-exec.ts +131 -86
- package/src/core/bus-events.ts +51 -6
- package/src/core/config.ts +5 -1
- package/src/core/defaults.ts +7 -4
- package/src/core/dispatch-outcome.ts +16 -0
- package/src/core/guardrails.ts +10 -49
- package/src/core/prompt-hint.ts +9 -0
- package/src/domains/agents/builtins/architect.md +2 -3
- package/src/domains/agents/builtins/coder.md +3 -2
- package/src/domains/agents/builtins/debugger.md +2 -2
- package/src/domains/agents/builtins/documenter.md +2 -2
- package/src/domains/agents/builtins/git-master.md +1 -1
- package/src/domains/agents/builtins/oracle.md +1 -1
- package/src/domains/agents/builtins/provenance.md +1 -1
- package/src/domains/agents/builtins/researcher.md +1 -1
- package/src/domains/agents/builtins/scout.md +1 -1
- package/src/domains/agents/builtins/tester.md +2 -2
- package/src/domains/agents/builtins/verifier.md +2 -2
- package/src/domains/agents/builtins/wiki-writer.md +1 -1
- package/src/domains/agents/catalog.ts +12 -14
- package/src/domains/agents/contract.ts +2 -0
- package/src/domains/agents/extension.ts +23 -1
- package/src/domains/config/keybindings.ts +8 -0
- package/src/domains/context/extension.ts +0 -3
- package/src/domains/context/working-set/path-index.ts +1 -0
- package/src/domains/dispatch/capability-match.ts +10 -0
- package/src/domains/dispatch/extension.ts +105 -22
- package/src/domains/dispatch/host-verification.ts +435 -39
- package/src/domains/dispatch/intent-requirements.ts +10 -0
- package/src/domains/dispatch/intent.ts +18 -1
- package/src/domains/dispatch/path-scope.ts +235 -24
- package/src/domains/dispatch/run-event-journal.ts +4 -15
- package/src/domains/dispatch/state.ts +2 -3
- package/src/domains/dispatch/transport.ts +45 -21
- package/src/domains/dispatch/types.ts +55 -3
- package/src/domains/eval/artifacts/store.ts +5 -0
- package/src/domains/eval/store.ts +8 -1
- package/src/domains/evidence/trust-status.ts +10 -1
- package/src/domains/extensions/contract.ts +15 -1
- package/src/domains/extensions/discovery.ts +238 -41
- package/src/domains/extensions/extension.ts +105 -6
- package/src/domains/extensions/index.ts +24 -0
- package/src/domains/extensions/integrity.ts +189 -0
- package/src/domains/extensions/manager.ts +17 -1
- package/src/domains/extensions/resource-path.ts +27 -0
- package/src/domains/extensions/resources.ts +18 -38
- package/src/domains/extensions/snapshot-store.ts +39 -0
- package/src/domains/extensions/snapshot.ts +180 -0
- package/src/domains/extensions/state.ts +385 -57
- package/src/domains/extensions/types.ts +118 -1
- package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
- package/src/domains/lifecycle/migrations/index.ts +2 -0
- package/src/domains/lifecycle/naming-resources.ts +19 -4
- package/src/domains/lifecycle/naming-yazi.ts +10 -5
- package/src/domains/middleware/contract.ts +26 -0
- package/src/domains/middleware/extension.ts +24 -24
- package/src/domains/middleware/hook-receipts.ts +27 -4
- package/src/domains/middleware/hooks-io.ts +65 -32
- package/src/domains/middleware/hooks.ts +64 -0
- package/src/domains/middleware/index.ts +28 -4
- package/src/domains/middleware/registrations.ts +326 -0
- package/src/domains/middleware/runtime.ts +28 -0
- package/src/domains/middleware/snapshot.ts +20 -7
- package/src/domains/mux/contract.ts +38 -0
- package/src/domains/mux/detect.ts +6 -13
- package/src/domains/mux/index.ts +1 -1
- package/src/domains/mux/operations.ts +44 -5
- package/src/domains/mux/yazi/assets/yazi.toml +2 -2
- package/src/domains/mux/yazi/session.ts +53 -4
- package/src/domains/mux/yazi/theme.ts +117 -17
- package/src/domains/observability/contract.ts +10 -11
- package/src/domains/observability/extension.ts +11 -3
- package/src/domains/observability/projection.ts +14 -90
- package/src/domains/observability/trace-store.ts +43 -7
- package/src/domains/prompts/compiler.ts +73 -53
- package/src/domains/prompts/contract.ts +15 -3
- package/src/domains/prompts/extension.ts +97 -9
- package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
- package/src/domains/prompts/fragments/identity/clio.md +6 -12
- package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
- package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
- package/src/domains/prompts/fragments/operating/contract.md +7 -15
- package/src/domains/prompts/fragments/operating/delegation.md +32 -34
- package/src/domains/prompts/fragments/operating/skills.md +10 -24
- package/src/domains/prompts/fragments/operating/worker.md +1 -8
- package/src/domains/providers/index.ts +1 -1
- package/src/domains/providers/model-runtime-capabilities.ts +85 -21
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +669 -104
- package/src/domains/providers/runtime-resolution.ts +31 -0
- package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
- package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
- package/src/domains/providers/types/cost-provenance.ts +19 -0
- package/src/domains/providers/types/local-model-quirks.ts +85 -37
- package/src/domains/resources/skills/loader.ts +16 -19
- package/src/domains/safety/call-target.ts +1 -1
- package/src/domains/safety/loop-detector.ts +7 -4
- package/src/domains/session/task-board.ts +10 -9
- package/src/domains/share/archive.ts +164 -7
- package/src/engine/acp/server.ts +62 -9
- package/src/engine/apis/llamacpp-residency.ts +3 -4
- package/src/engine/apis/lmstudio.ts +3 -3
- package/src/engine/apis/ollama-native.ts +6 -6
- package/src/engine/apis/openai-completions.ts +28 -25
- package/src/engine/apis/output-budget.ts +8 -18
- package/src/engine/apis/residency.ts +8 -27
- package/src/engine/gemma-channel-filter.ts +19 -0
- package/src/engine/loop-guard.ts +92 -12
- package/src/engine/worker-runtime.ts +40 -11
- package/src/engine/worker-tools.ts +3 -1
- package/src/entry/extension-hook-sources.ts +28 -0
- package/src/entry/extension-reload.ts +309 -0
- package/src/entry/orchestrator.ts +59 -35
- package/src/interactive/application-controller.ts +2 -1
- package/src/interactive/bus-notices.ts +8 -1
- package/src/interactive/chat-loop-messages.ts +3 -13
- package/src/interactive/chat-loop.ts +10 -1
- package/src/interactive/chat-panel.ts +36 -13
- package/src/interactive/chat-renderer.ts +71 -7
- package/src/interactive/dispatch-board.ts +6 -11
- package/src/interactive/footer/widgets.ts +13 -0
- package/src/interactive/interactive-application.ts +39 -4
- package/src/interactive/interactive-input-runtime.ts +4 -0
- package/src/interactive/interactive-presentation.ts +2 -2
- package/src/interactive/interactive-slash-runtime.ts +2 -0
- package/src/interactive/overlays/extensions.ts +9 -1
- package/src/interactive/overlays/help-reference.ts +13 -0
- package/src/interactive/overlays/settings.ts +27 -16
- package/src/interactive/panes-runtime.ts +111 -35
- package/src/interactive/prompt-cache-identity.ts +88 -0
- package/src/interactive/slash-commands.ts +129 -14
- package/src/interactive/stream-pacing-policy.ts +0 -23
- package/src/interactive/turn-context.ts +30 -15
- package/src/interactive/yazi-bridge.ts +60 -6
- package/src/tools/agent-tools.ts +30 -1
- package/src/tools/artifact.ts +2 -2
- package/src/tools/ask-user.ts +3 -3
- package/src/tools/bash.ts +1 -1
- package/src/tools/bootstrap.ts +4 -0
- package/src/tools/builtin-tool-catalog.ts +52 -22
- package/src/tools/codewiki/code-nav-surface.ts +6 -0
- package/src/tools/codewiki/code-nav.ts +99 -13
- package/src/tools/context/docs-engine.ts +20 -7
- package/src/tools/context/index.ts +29 -12
- package/src/tools/core-bootstrap.ts +28 -6
- package/src/tools/credential-present.ts +1 -2
- package/src/tools/dispatch-arguments.ts +5 -1
- package/src/tools/dispatch-plan.ts +48 -4
- package/src/tools/dispatch-run-events.ts +1 -1
- package/src/tools/dispatch-schema.ts +338 -0
- package/src/tools/dispatch-types.ts +3 -0
- package/src/tools/dispatch.ts +9 -254
- package/src/tools/ledger.ts +3 -5
- package/src/tools/monitor-surface.ts +5 -13
- package/src/tools/observation.ts +4 -5
- package/src/tools/panes-surface.ts +4 -11
- package/src/tools/panes.ts +4 -2
- package/src/tools/policy.ts +15 -2
- package/src/tools/read.ts +5 -6
- package/src/tools/registry.ts +30 -7
- package/src/tools/result-shaping.ts +18 -14
- package/src/tools/steer-surface.ts +1 -1
- package/src/tools/tasks.ts +1 -1
- package/src/tools/truncate.ts +6 -5
- package/src/tools/verify/surface.ts +6 -12
- package/src/tools/web-fetch-surface.ts +1 -3
- package/dist/chunk-5QIAJV2D.js +0 -48
- package/dist/chunk-JZWT5J3Y.js +0 -814
- package/dist/chunk-K7VKOLQQ.js +0 -15
- package/dist/chunk-PMZCIOCJ.js +0 -25
- package/dist/chunk-SUW5DORT.js +0 -819
- package/dist/chunk-UOV2BYIW.js +0 -107
- package/dist/chunk-WR6U3OVP.js +0 -45
- package/docs/artifact-versions.md +0 -67
- package/docs/documentation-coverage.md +0 -46
- package/docs/documentation-guide.md +0 -167
- package/docs/time-conventions.md +0 -101
|
@@ -77,6 +77,7 @@ import type { PromptsContract } from "../prompts/contract.js";
|
|
|
77
77
|
import { type EffectivePricing, resolveEffectivePricing } from "../providers/catalog.js";
|
|
78
78
|
import {
|
|
79
79
|
type CapabilityFlags,
|
|
80
|
+
canonicalEndpointKey,
|
|
80
81
|
canonicalizeWireModelId,
|
|
81
82
|
type EndpointCapacity,
|
|
82
83
|
endpointCapacityFor,
|
|
@@ -181,7 +182,12 @@ import {
|
|
|
181
182
|
type HeartbeatStatus,
|
|
182
183
|
heartbeatMonotonicAt,
|
|
183
184
|
} from "./heartbeat.js";
|
|
184
|
-
import {
|
|
185
|
+
import {
|
|
186
|
+
type BatchVerificationGate,
|
|
187
|
+
createBatchVerificationGate,
|
|
188
|
+
hostVerificationRejection,
|
|
189
|
+
runHostVerification,
|
|
190
|
+
} from "./host-verification.js";
|
|
185
191
|
import { renderDispatchIntentRequirements } from "./intent-requirements.js";
|
|
186
192
|
import { adaptJointRouteInput } from "./joint-route-adapter.js";
|
|
187
193
|
import {
|
|
@@ -201,6 +207,8 @@ import {
|
|
|
201
207
|
type DispatchPathScope,
|
|
202
208
|
declaredScopeReplacementDiagnostic,
|
|
203
209
|
declaredScopeReplacementNotice,
|
|
210
|
+
inferredScopeParentTokenDiagnostic,
|
|
211
|
+
inferredScopeParentTokenNotice,
|
|
204
212
|
resolveDispatchPathScope,
|
|
205
213
|
} from "./path-scope.js";
|
|
206
214
|
import { deriveEnvelopePhaseDurations, deriveRunPhaseDurations, recordRunTimingBestEffort } from "./phase-timing.js";
|
|
@@ -1603,11 +1611,7 @@ function assertPostRuntimeToolCompatibility(
|
|
|
1603
1611
|
}
|
|
1604
1612
|
|
|
1605
1613
|
function workerToolCallHardCap(settings: EffectiveSettings): number {
|
|
1606
|
-
|
|
1607
|
-
const parsedEnvCap = rawEnvCap && /^[1-9]\d*$/.test(rawEnvCap) ? Number(rawEnvCap) : Number.NaN;
|
|
1608
|
-
return Number.isSafeInteger(parsedEnvCap)
|
|
1609
|
-
? parsedEnvCap
|
|
1610
|
-
: (settings?.fleet.limits.toolCallsPerRun ?? GUARDRAIL_DEFAULTS.workerToolCallCap);
|
|
1614
|
+
return settings?.fleet.limits.toolCallsPerRun ?? GUARDRAIL_DEFAULTS.workerToolCallCap;
|
|
1611
1615
|
}
|
|
1612
1616
|
|
|
1613
1617
|
function resolveEffectiveWorkerBudget(input: {
|
|
@@ -2500,6 +2504,29 @@ export function createDispatchBundle(
|
|
|
2500
2504
|
return Object.fromEntries(Object.entries(configuredEndpointCapacities()).map(([key, value]) => [key, value.limit]));
|
|
2501
2505
|
}
|
|
2502
2506
|
|
|
2507
|
+
/**
|
|
2508
|
+
* Endpoints still bound by the blind one-slot default have never been
|
|
2509
|
+
* probed by any process, or their record expired. A fresh home carried that
|
|
2510
|
+
* bound into its first batch and refused two tasks on a server running
|
|
2511
|
+
* four, until the operator happened to run `targets --probe`. Probe each
|
|
2512
|
+
* such endpoint once per process, in the background and without the
|
|
2513
|
+
* inference-based reasoning check: the slot count is a header read, and the
|
|
2514
|
+
* model's first dispatch call is seconds away at the earliest. The probe
|
|
2515
|
+
* lands in the provider statuses and the durable slot store, which is where
|
|
2516
|
+
* admission already looks.
|
|
2517
|
+
*/
|
|
2518
|
+
const probedDefaultBoundEndpoints = new Set<string>();
|
|
2519
|
+
function probeEndpointsAtDefaultBound(): void {
|
|
2520
|
+
const capacities = configuredEndpointCapacities();
|
|
2521
|
+
for (const target of getEffectiveSettings()?.targets ?? []) {
|
|
2522
|
+
const key = canonicalEndpointKey(target);
|
|
2523
|
+
if (key === null || capacities[key]?.source !== "local-native-default") continue;
|
|
2524
|
+
if (probedDefaultBoundEndpoints.has(key)) continue;
|
|
2525
|
+
probedDefaultBoundEndpoints.add(key);
|
|
2526
|
+
void providers.probeTarget(target.id, { reasoning: false }).catch(() => undefined);
|
|
2527
|
+
}
|
|
2528
|
+
}
|
|
2529
|
+
|
|
2503
2530
|
function endpointCapacityForTarget(targetId: string): EndpointCapacity | null {
|
|
2504
2531
|
const status = providers.list().find((entry) => entry.target.id === targetId);
|
|
2505
2532
|
const target = status?.target ?? providers.getTarget(targetId);
|
|
@@ -3369,6 +3396,23 @@ export function createDispatchBundle(
|
|
|
3369
3396
|
agentId: req.agentId,
|
|
3370
3397
|
});
|
|
3371
3398
|
}
|
|
3399
|
+
// A reinterpreted "../" token is the one legacy-mode scope fact that earns
|
|
3400
|
+
// the channel: it fires only where the dispatch used to fail outright, so
|
|
3401
|
+
// it cannot warn on the ordinary intent-less dispatch the comment above
|
|
3402
|
+
// keeps quiet. Anchoring is reported alongside dropping because it is the
|
|
3403
|
+
// half that adds to scope, putting a path in working context that the
|
|
3404
|
+
// prose never literally spelled.
|
|
3405
|
+
const parentTokenDiagnostic = inferredScopeParentTokenDiagnostic(pathScope);
|
|
3406
|
+
if (parentTokenDiagnostic !== null) {
|
|
3407
|
+
reportDispatchDiagnostic("inferred scope parent tokens", new Error(parentTokenDiagnostic));
|
|
3408
|
+
}
|
|
3409
|
+
const parentTokenNotice = inferredScopeParentTokenNotice(pathScope);
|
|
3410
|
+
if (parentTokenNotice !== null) {
|
|
3411
|
+
context.bus.emit(BusChannels.DispatchScopeNotice, {
|
|
3412
|
+
...parentTokenNotice,
|
|
3413
|
+
agentId: req.agentId,
|
|
3414
|
+
});
|
|
3415
|
+
}
|
|
3372
3416
|
}
|
|
3373
3417
|
|
|
3374
3418
|
async function resolveLifecycle(req: DispatchRequest, settings: EffectiveSettings): Promise<DispatchLifecycleStage> {
|
|
@@ -3402,6 +3446,7 @@ export function createDispatchBundle(
|
|
|
3402
3446
|
autoSelected: req.agentSelection?.mode === "auto",
|
|
3403
3447
|
resultContractKind: spec.resultContract.kind,
|
|
3404
3448
|
specs: agents.listSpecs(),
|
|
3449
|
+
intent: req.intent ?? null,
|
|
3405
3450
|
});
|
|
3406
3451
|
if (capabilityMismatch?.verdict === "refuse") throw new Error(capabilityMismatch.detail);
|
|
3407
3452
|
const pathScope = resolveDispatchPathScope(req);
|
|
@@ -3434,17 +3479,16 @@ export function createDispatchBundle(
|
|
|
3434
3479
|
allowedTools: effectiveTools,
|
|
3435
3480
|
};
|
|
3436
3481
|
const personaBody = workerPersonaBody(req, recipe, effectiveTools);
|
|
3482
|
+
const hasCanonicalContext = effectiveTools.includes(ToolNames.Context);
|
|
3483
|
+
const hasBoundSkills =
|
|
3484
|
+
hasCanonicalContext && recipe.skills !== undefined && recipe.skills.length > 0 && req.noSkills !== true;
|
|
3437
3485
|
const compiledWorkerPrompt = await prompts.compileWorkerPrompt({
|
|
3438
3486
|
autonomy: effectiveAutonomy,
|
|
3439
3487
|
providerSupportsTools: target.runtime.kind === "subprocess" ? null : targetToolCapability(target),
|
|
3440
3488
|
toolNames: effectiveTools,
|
|
3441
|
-
toolPromptHints: toolPromptHintsForNames(effectiveTools),
|
|
3442
|
-
hasCanonicalContext
|
|
3443
|
-
hasBoundSkills
|
|
3444
|
-
effectiveTools.includes(ToolNames.Context) &&
|
|
3445
|
-
recipe.skills !== undefined &&
|
|
3446
|
-
recipe.skills.length > 0 &&
|
|
3447
|
-
req.noSkills !== true,
|
|
3489
|
+
toolPromptHints: toolPromptHintsForNames(effectiveTools, hasBoundSkills ? "bound-worker" : "worker"),
|
|
3490
|
+
hasCanonicalContext,
|
|
3491
|
+
hasBoundSkills,
|
|
3448
3492
|
onPermission: settings?.fleet.permissions.mode ?? "deny",
|
|
3449
3493
|
persona: {
|
|
3450
3494
|
id: `persona.${recipe.id}`,
|
|
@@ -4345,6 +4389,7 @@ export function createDispatchBundle(
|
|
|
4345
4389
|
async function dispatchAttempt(
|
|
4346
4390
|
req: DispatchRequest,
|
|
4347
4391
|
observer?: DispatchAdmissionObserver,
|
|
4392
|
+
settlement?: BatchVerificationGate,
|
|
4348
4393
|
): Promise<{
|
|
4349
4394
|
runId: string;
|
|
4350
4395
|
events: AsyncIterableIterator<unknown>;
|
|
@@ -4440,10 +4485,12 @@ export function createDispatchBundle(
|
|
|
4440
4485
|
}
|
|
4441
4486
|
rebindReservationSlot(req, "local", null, UNKNOWN_PRICING_ADMISSION_ESTIMATE_USD, settings);
|
|
4442
4487
|
routeObservation = observeShadowRoute(req, undefined, settings);
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4488
|
+
const delegated = await dispatchAcpDelegation(req, settings, timing, routeObservation.decision, observer);
|
|
4489
|
+
// An ACP member never runs host verification, so it can only ever leave
|
|
4490
|
+
// the barrier. It still edits the checkout, so the barrier has to wait
|
|
4491
|
+
// for it; dispatch() releases it when its finalPromise settles.
|
|
4492
|
+
settlement?.live(delegated.runId);
|
|
4493
|
+
return attachRouteObservation({ ...delegated, effectiveRequest: req });
|
|
4447
4494
|
}
|
|
4448
4495
|
|
|
4449
4496
|
req = routeAroundCoolingTarget(req, settings) ?? req;
|
|
@@ -5368,6 +5415,14 @@ export function createDispatchBundle(
|
|
|
5368
5415
|
return { assessment, rigor };
|
|
5369
5416
|
};
|
|
5370
5417
|
|
|
5418
|
+
// The worker is spawned and its ledger row exists, so from here it can
|
|
5419
|
+
// write and the batch barrier has to wait for it. Registered after the
|
|
5420
|
+
// try/catch at 4939-5068, which aborts the worker and releases the lease on
|
|
5421
|
+
// failure, so a run that never reaches the barrier is never made live.
|
|
5422
|
+
// Paired with the abandon in dispatch(), which fires the moment
|
|
5423
|
+
// finalPromise settles.
|
|
5424
|
+
settlement?.live(envelope.id);
|
|
5425
|
+
|
|
5371
5426
|
const finalPromise = (async (): Promise<RunReceipt> => {
|
|
5372
5427
|
try {
|
|
5373
5428
|
const result = await workerDone;
|
|
@@ -5492,12 +5547,21 @@ export function createDispatchBundle(
|
|
|
5492
5547
|
finalDetail = WORKER_FINAL_OUTPUT_MISSING_DETAIL;
|
|
5493
5548
|
failureMessage = finalDetail;
|
|
5494
5549
|
}
|
|
5495
|
-
const
|
|
5550
|
+
const hostVerificationInput = {
|
|
5496
5551
|
runId: envelope.id,
|
|
5497
5552
|
request: req,
|
|
5498
5553
|
workerSuccessful: finalOutcome === "succeeded",
|
|
5499
|
-
onDiagnostic: (error) =>
|
|
5500
|
-
|
|
5554
|
+
onDiagnostic: (error: unknown) =>
|
|
5555
|
+
reportDispatchDiagnostic(`write host verification memo for ${envelope.id}`, error),
|
|
5556
|
+
};
|
|
5557
|
+
// This await is the batch barrier. It already sits before
|
|
5558
|
+
// buildReceiptDraft below, which is why batch settlement needs no
|
|
5559
|
+
// receipt restructuring: every member parks here with its outcome
|
|
5560
|
+
// resolved and nothing sealed.
|
|
5561
|
+
const hostVerification =
|
|
5562
|
+
settlement === undefined
|
|
5563
|
+
? await runHostVerification(hostVerificationInput)
|
|
5564
|
+
: await settlement.arrive(hostVerificationInput);
|
|
5501
5565
|
const hostRejection = hostVerificationRejection(hostVerification);
|
|
5502
5566
|
if (hostRejection !== null && finalOutcome === "succeeded") {
|
|
5503
5567
|
finalOutcome = "failed";
|
|
@@ -5690,6 +5754,7 @@ export function createDispatchBundle(
|
|
|
5690
5754
|
async function dispatch(
|
|
5691
5755
|
req: DispatchRequest,
|
|
5692
5756
|
observer?: DispatchAdmissionObserver,
|
|
5757
|
+
settlement?: BatchVerificationGate,
|
|
5693
5758
|
): Promise<{
|
|
5694
5759
|
runId: string;
|
|
5695
5760
|
events: AsyncIterableIterator<unknown>;
|
|
@@ -5737,7 +5802,7 @@ export function createDispatchBundle(
|
|
|
5737
5802
|
}
|
|
5738
5803
|
let handle: Awaited<ReturnType<typeof dispatchAttempt>>;
|
|
5739
5804
|
try {
|
|
5740
|
-
handle = await dispatchAttempt(prepared, observer);
|
|
5805
|
+
handle = await dispatchAttempt(prepared, observer, settlement);
|
|
5741
5806
|
} catch (error) {
|
|
5742
5807
|
writerLease?.release();
|
|
5743
5808
|
if (createdWorktree !== undefined) {
|
|
@@ -5752,6 +5817,14 @@ export function createDispatchBundle(
|
|
|
5752
5817
|
}
|
|
5753
5818
|
throw error;
|
|
5754
5819
|
}
|
|
5820
|
+
// A finalization that throws before the barrier, and an ACP handle that
|
|
5821
|
+
// never reaches it at all, must not park their siblings forever. A member
|
|
5822
|
+
// that already arrived is parked and abandon() is a no-op for it, so this
|
|
5823
|
+
// fires harmlessly on the normal path.
|
|
5824
|
+
if (settlement !== undefined) {
|
|
5825
|
+
const release = (): void => settlement.abandon(handle.runId);
|
|
5826
|
+
handle.finalPromise.then(release, release);
|
|
5827
|
+
}
|
|
5755
5828
|
// Requests carrying lineage are internal attempts (retry or nested
|
|
5756
5829
|
// orchestration) and retain the per-attempt handle contract.
|
|
5757
5830
|
if (req.lineage) return { ...handle, finalPromise: handle.finalPromise.finally(() => writerLease?.release()) };
|
|
@@ -6125,10 +6198,19 @@ export function createDispatchBundle(
|
|
|
6125
6198
|
finalPromise: Promise<ReadonlyArray<RunReceipt>>;
|
|
6126
6199
|
}> {
|
|
6127
6200
|
if (reqs.length === 0) throw new Error("dispatch: batch requires at least one request");
|
|
6201
|
+
// Two or more concurrent workers share one checkout, so a declared check
|
|
6202
|
+
// run while a sibling is still editing judges a tree neither worker
|
|
6203
|
+
// authored. The barrier only exists when there is both something to verify
|
|
6204
|
+
// and something that could race it; a one-request batch and a batch with no
|
|
6205
|
+
// declared check keep today's per-run path exactly.
|
|
6206
|
+
const settlement =
|
|
6207
|
+
reqs.length > 1 && reqs.some((req) => (req.resolvedVerification?.length ?? 0) > 0)
|
|
6208
|
+
? createBatchVerificationGate()
|
|
6209
|
+
: undefined;
|
|
6128
6210
|
const handles: Array<Awaited<ReturnType<typeof dispatch>> & { agentId: string }> = [];
|
|
6129
6211
|
try {
|
|
6130
6212
|
for (const req of reqs) {
|
|
6131
|
-
const handle = await dispatch(req);
|
|
6213
|
+
const handle = await dispatch(req, undefined, settlement);
|
|
6132
6214
|
handles.push({ ...handle, agentId: req.agentId });
|
|
6133
6215
|
}
|
|
6134
6216
|
} catch (err) {
|
|
@@ -6347,6 +6429,7 @@ export function createDispatchBundle(
|
|
|
6347
6429
|
// Reconciliation is best-effort; a failure never blocks startup.
|
|
6348
6430
|
}
|
|
6349
6431
|
startHeartbeatWatchdog();
|
|
6432
|
+
probeEndpointsAtDefaultBound();
|
|
6350
6433
|
},
|
|
6351
6434
|
async stop() {
|
|
6352
6435
|
// Shutdown is process-local. The durable machine-wide drain belongs to
|