@desplega.ai/agent-swarm 2.6.0 → 2.7.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.
Files changed (213) hide show
  1. package/README.md +2 -0
  2. package/dist/{acp-adapter-dgfakfpw.js → acp-adapter-ma1js5n7.js} +6 -6
  3. package/dist/{actions-fbqma8aa.js → actions-1vhmtvg9.js} +18 -18
  4. package/dist/{amp-adapter-en0jy6hs.js → amp-adapter-sxqqvmdk.js} +3 -3
  5. package/dist/{app-k8a5cgpp.js → app-mwx1d5a9.js} +3 -3
  6. package/dist/{assistant-a16433gr.js → assistant-yx1p6g82.js} +20 -20
  7. package/dist/{boot-reembed-f4nn561n.js → boot-reembed-5h37a2c2.js} +1 -1
  8. package/dist/{boot-reembed-6c1sjfnr.js → boot-reembed-7h78vmvv.js} +2 -1
  9. package/dist/{boot-scrub-sweep-d4w9gajf.js → boot-scrub-sweep-8mawd4gw.js} +3 -3
  10. package/dist/{boot-seeds-9bmkspyw.js → boot-seeds-ca84dhnn.js} +4 -4
  11. package/dist/{claude-adapter-nys1kjxa.js → claude-adapter-wqt4hfkq.js} +7 -7
  12. package/dist/{claude-managed-adapter-55207973.js → claude-managed-adapter-6fjqtr2z.js} +2 -2
  13. package/dist/{claude-managed-setup-3cm35gey.js → claude-managed-setup-rqv98sea.js} +2 -2
  14. package/dist/{claude-sdk-session-nw5yd8cp.js → claude-sdk-session-f29f3b2x.js} +7 -7
  15. package/dist/{cli-sxgtf5fw.js → cli-07q03xm2.js} +1 -1
  16. package/dist/{cli-k21gx5ht.js → cli-1hhbzkbb.js} +6 -6
  17. package/dist/{cli-v49fkghp.js → cli-1m9x8dr5.js} +1 -1
  18. package/dist/{cli-24j1jeeb.js → cli-2pvzmas1.js} +3 -3
  19. package/dist/{cli-w2656ka1.js → cli-2y7v133v.js} +7 -7
  20. package/dist/{cli-g8ka5j4j.js → cli-48gxjmcz.js} +94 -36
  21. package/dist/{cli-2sjhpsns.js → cli-54sj64fc.js} +1 -1
  22. package/dist/{cli-aj8djyqt.js → cli-60sty27p.js} +2 -2
  23. package/dist/{cli-4hxrf0p4.js → cli-6a9qfa8b.js} +308 -47
  24. package/dist/{cli-n7asmce6.js → cli-6mgdba42.js} +3 -3
  25. package/dist/{cli-gf95q3bm.js → cli-6srv653c.js} +3 -3
  26. package/dist/{cli-9abdgn5t.js → cli-86ehn4s5.js} +3 -3
  27. package/dist/{cli-bqztfyve.js → cli-8mbc9za9.js} +1 -1
  28. package/dist/{cli-a2rr0fmg.js → cli-8wmj18cz.js} +1 -1
  29. package/dist/{cli-c2habvsf.js → cli-9gsm2rzp.js} +8 -8
  30. package/dist/{cli-4rf0f5vg.js → cli-9pshx6rd.js} +4 -2
  31. package/dist/{cli-abkm71vr.js → cli-a6ds2epe.js} +1 -1
  32. package/dist/{cli-esakngh8.js → cli-a89zdqz9.js} +1 -1
  33. package/dist/{cli-3ndmpxxv.js → cli-ay40dnj3.js} +2 -2
  34. package/dist/{cli-kf4jree9.js → cli-aypd09nf.js} +1 -1
  35. package/dist/{cli-6y51ryva.js → cli-b3yzyc57.js} +1 -1
  36. package/dist/{cli-ag2yrnt5.js → cli-c668vvcf.js} +2 -2
  37. package/dist/{cli-5sckpqcx.js → cli-d20qvpr2.js} +1 -1
  38. package/dist/{cli-a34pr3w1.js → cli-e1595bgx.js} +2 -2
  39. package/dist/{cli-m70bajzr.js → cli-f12mr20z.js} +1 -1
  40. package/dist/{cli-dqygeeh5.js → cli-f1e0ptjj.js} +10 -1
  41. package/dist/{cli-mvjz5an3.js → cli-f4dbh7a5.js} +7 -7
  42. package/dist/{cli-az25fn5f.js → cli-gsfk58nw.js} +2 -2
  43. package/dist/{cli-1tem6ns9.js → cli-gt4h8cxw.js} +3 -2
  44. package/dist/{cli-cz37jqss.js → cli-h5jeg46p.js} +2 -2
  45. package/dist/{cli-emhjcj2y.js → cli-he9gbdx0.js} +60 -10
  46. package/dist/{cli-3fwqy71j.js → cli-j0ppywdr.js} +38 -31
  47. package/dist/{cli-5rj83bam.js → cli-j3y0x2n4.js} +34 -33
  48. package/dist/{cli-3gfvmzht.js → cli-j9bpmykh.js} +73 -25
  49. package/dist/{cli-m5a9m0ak.js → cli-kv7sbc2c.js} +3 -3
  50. package/dist/{cli-g20jjwt4.js → cli-m30k9777.js} +12 -12
  51. package/dist/{cli-683y0b3a.js → cli-m5e802r7.js} +2 -2
  52. package/dist/{cli-nn6vx2mq.js → cli-ptfq202x.js} +5 -3
  53. package/dist/{cli-d2dpf95n.js → cli-qj442fws.js} +1 -1
  54. package/dist/{cli-03gg9pd1.js → cli-rd5m70gj.js} +4 -4
  55. package/dist/{cli-gnsb1zxa.js → cli-s09j9vp5.js} +1 -1
  56. package/dist/{cli-zqne1qcj.js → cli-s0mgx214.js} +2 -2
  57. package/dist/{cli-sqma6vw1.js → cli-sgqm2582.js} +5 -5
  58. package/dist/{cli-nq677csy.js → cli-sjctjr48.js} +1 -1
  59. package/dist/{cli-3aqd4jaa.js → cli-twctnkng.js} +3 -3
  60. package/dist/{cli-j6rktc91.js → cli-v6shg7na.js} +1 -1
  61. package/dist/{cli-7enjwya9.js → cli-vz78s5wm.js} +1 -1
  62. package/dist/{cli-art7c1zh.js → cli-wqr7cea4.js} +4 -4
  63. package/dist/{cli-hfeb68z4.js → cli-x37r7qwf.js} +11 -3
  64. package/dist/{cli-ffvsj2qw.js → cli-yd2nreqw.js} +2 -2
  65. package/dist/{cli-ca6banwz.js → cli-ymjpkxgn.js} +6 -6
  66. package/dist/{cli-mtnj4fwa.js → cli-yxbsmx56.js} +5 -5
  67. package/dist/cli.js +18 -16
  68. package/dist/{codex-adapter-d95q4qsn.js → codex-adapter-zk59x2zh.js} +5 -5
  69. package/dist/{codex-hook-brpnycn5.js → codex-hook-xyjhvxwd.js} +1 -1
  70. package/dist/{codex-session-runner-gdwd8h0c.js → codex-session-runner-kh6s4j3n.js} +5 -5
  71. package/dist/{commands-jqmgk54b.js → commands-68et1qv2.js} +2 -2
  72. package/dist/{controller-z3jq589f.js → controller-fyrbnzg4.js} +2 -2
  73. package/dist/{controllers-connect-r2za39ef.js → controllers-connect-nep9h2xv.js} +19 -19
  74. package/dist/{cursor-adapter-4mr4jgkw.js → cursor-adapter-yss3pg7t.js} +1 -1
  75. package/dist/{db-w36wwb5g.js → db-28gjyvxj.js} +2 -2
  76. package/dist/{db-ppv2tze7.js → db-8ftwvzba.js} +3 -3
  77. package/dist/{dispatcher-pv5h77vf.js → dispatcher-hayexmkr.js} +17 -17
  78. package/dist/{dsh-adapter-d4pdpb3r.js → dsh-adapter-46wawff9.js} +1 -1
  79. package/dist/{easter-egg-3d-4sp4dvmc.js → easter-egg-3d-8d1e0h4m.js} +1 -1
  80. package/dist/{execute-jev839y1.js → execute-cjrfxfnm.js} +1 -1
  81. package/dist/{external-channel-y6nkzhnn.js → external-channel-xbmxcg09.js} +2 -2
  82. package/dist/{grok-adapter-t08b9ntm.js → grok-adapter-ag4wks2a.js} +7 -7
  83. package/dist/handlers-tzmevqb5.js +41 -0
  84. package/dist/{heartbeat-vn31xwdk.js → heartbeat-psfvcgwp.js} +20 -20
  85. package/dist/{hook-6d0zbvvt.js → hook-8pz04697.js} +5 -5
  86. package/dist/{hook-cpjs8q51.js → hook-cyq4mryn.js} +6 -6
  87. package/dist/{http-9c6medda.js → http-haj1nd6k.js} +109 -114
  88. package/dist/{index-qhjf2htm.js → index-jwt2bj6f.js} +261 -96
  89. package/dist/{index-g6k9tctj.js → index-q52f47pe.js} +1 -1
  90. package/dist/{index-pkma1yf8.js → index-syvhnvtw.js} +1 -1
  91. package/dist/{index-yqgbfgaj.js → index-y1ajx04a.js} +20 -20
  92. package/dist/{index-k0yt1tvq.js → index-z5h22pes.js} +17 -17
  93. package/dist/{index-38t35h0n.js → index-zyq8ct52.js} +17 -17
  94. package/dist/{keepalive-em0117bp.js → keepalive-xdvsamvj.js} +3 -3
  95. package/dist/{lead-23e7z59t.js → lead-hqg57kdp.js} +35 -35
  96. package/dist/{maintenance-kbme3qy9.js → maintenance-4y2xzh3a.js} +1 -1
  97. package/dist/{oauth-refresh-sweep-xysj4yse.js → oauth-refresh-sweep-jd4r7zbs.js} +8 -3
  98. package/dist/{onboard-p6q0vz97.js → onboard-18447q9q.js} +5 -5
  99. package/dist/{opencode-adapter-esv3k9yn.js → opencode-adapter-26b2frdf.js} +5 -5
  100. package/dist/{otel-impl-54qhqh1z.js → otel-impl-f9tgr8yw.js} +1 -1
  101. package/dist/{pi-mono-adapter-mymbwhj0.js → pi-mono-adapter-qn6qbga1.js} +33 -12
  102. package/dist/{pricing-refresh-yb75wv33.js → pricing-refresh-dw2tgb53.js} +3 -3
  103. package/dist/{rbac-roles-1vp2mw4p.js → rbac-roles-aygm2760.js} +2 -2
  104. package/dist/{rbac-roles-dexhc9x8.js → rbac-roles-s4nwj2m3.js} +1 -1
  105. package/dist/{render-v2-tjay5hhf.js → render-v2-yfvdfr0x.js} +3 -3
  106. package/dist/{resume-8ayf37g5.js → resume-1bmvjbf3.js} +7 -7
  107. package/dist/{runtime-hqe5cqcd.js → runtime-f7tpzedy.js} +1 -1
  108. package/dist/{session-access-fdhp987s.js → session-access-r5garej6.js} +4 -4
  109. package/dist/{session-source-backfill-qgtc86z1.js → session-source-backfill-424wzv0r.js} +2 -2
  110. package/dist/{setup-4rrmqcq3.js → setup-8tygvxkq.js} +1 -1
  111. package/dist/{virtual-modules-52km00d6.js → virtual-modules-xsw323b3.js} +2 -2
  112. package/dist/{work-objects-p28fgd70.js → work-objects-ggnghpgf.js} +20 -20
  113. package/dist/{worker-e3w7vye1.js → worker-sqjd1nqf.js} +35 -35
  114. package/openapi.json +69 -1
  115. package/package.json +5 -3
  116. package/src/be/automation-preflight.ts +2 -0
  117. package/src/be/db/api-keys.ts +9 -0
  118. package/src/be/db/workflow-runs.ts +36 -5
  119. package/src/be/db.ts +80 -22
  120. package/src/be/memory/task-learning.ts +155 -0
  121. package/src/be/migrations/245_script_executor.sql +3 -0
  122. package/src/be/oauth-refresh-sweep.ts +2 -1
  123. package/src/be/scripts/boot-reembed.ts +2 -0
  124. package/src/be/scripts/db.ts +14 -4
  125. package/src/be/scripts/embeddings.ts +2 -0
  126. package/src/be/scripts/run-saved.ts +1 -0
  127. package/src/be/scripts/typecheck.ts +9 -3
  128. package/src/be/seed-skills/index.ts +7 -0
  129. package/src/commands/onboard/compose-generator.ts +5 -3
  130. package/src/commands/provider-credentials.ts +2 -1
  131. package/src/heartbeat/heartbeat.ts +14 -1
  132. package/src/heartbeat/script-runner-probe.ts +47 -0
  133. package/src/http/api-keys.ts +24 -9
  134. package/src/http/idempotency-key.ts +1 -1
  135. package/src/http/index.ts +3 -3
  136. package/src/http/pages-public.ts +38 -5
  137. package/src/http/scripts.ts +27 -0
  138. package/src/http/workflows.ts +10 -0
  139. package/src/http/x.ts +5 -0
  140. package/src/prompts/base-prompt.ts +21 -1
  141. package/src/prompts/session-templates.ts +17 -3
  142. package/src/providers/amp-adapter.ts +1 -1
  143. package/src/providers/dsh-adapter.ts +1 -1
  144. package/src/providers/pi-mono-adapter.ts +41 -11
  145. package/src/scheduler/scheduler.ts +2 -1
  146. package/src/scripts-runtime/eval-harness.ts +8 -1
  147. package/src/scripts-runtime/executors/native.ts +22 -16
  148. package/src/scripts-runtime/executors/quickjs-prelude.ts +103 -1
  149. package/src/scripts-runtime/executors/quickjs-runner.ts +2 -1
  150. package/src/scripts-runtime/executors/quickjs.ts +7 -0
  151. package/src/scripts-runtime/executors/registry.ts +32 -0
  152. package/src/scripts-runtime/executors/types.ts +7 -0
  153. package/src/scripts-runtime/host-validated-args.ts +133 -0
  154. package/src/scripts-runtime/loader.ts +30 -3
  155. package/src/scripts-runtime/swarm-sdk.ts +9 -2
  156. package/src/scripts-runtime/types/stdlib.d.ts +9 -1
  157. package/src/scripts-runtime/types/swarm-sdk.d.ts +9 -1
  158. package/src/tests/api-key-status-by-suffix.test.ts +242 -0
  159. package/src/tests/base-prompt.test.ts +70 -2
  160. package/src/tests/community-linear-delivery-loop.test.ts +2099 -0
  161. package/src/tests/credential-check.test.ts +4 -2
  162. package/src/tests/docs-index.test.ts +135 -0
  163. package/src/tests/dsh-adapter.test.ts +1 -1
  164. package/src/tests/fetch-resolved-env.test.ts +16 -2
  165. package/src/tests/heartbeat-checklist.test.ts +89 -0
  166. package/src/tests/heartbeat-script-runner-probe.test.ts +83 -0
  167. package/src/tests/oauth-refresh-sweep.test.ts +34 -1
  168. package/src/tests/onboard-compose.test.ts +20 -0
  169. package/src/tests/opencode-adapter.test.ts +2 -1
  170. package/src/tests/pages-frame-ancestors.test.ts +162 -0
  171. package/src/tests/pi-codemode.test.ts +2 -1
  172. package/src/tests/pi-mono-adapter.test.ts +54 -0
  173. package/src/tests/pi-native-mcp.test.ts +13 -1
  174. package/src/tests/pi-tool-exposure.test.ts +8 -8
  175. package/src/tests/probe-tool-schema-tokens.test.ts +144 -0
  176. package/src/tests/prompt-template-session.test.ts +4 -3
  177. package/src/tests/request-composition-derive.test.ts +329 -0
  178. package/src/tests/script-connections.test.ts +2 -0
  179. package/src/tests/script-executor-conformance.test.ts +36 -1
  180. package/src/tests/script-executor-quickjs-pool.test.ts +50 -0
  181. package/src/tests/script-executor-quickjs.test.ts +140 -0
  182. package/src/tests/script-host-validated-args-native.test.ts +196 -0
  183. package/src/tests/script-per-script-executor.test.ts +415 -0
  184. package/src/tests/scripts-external-api.test.ts +45 -0
  185. package/src/tests/sdk-allowlist.test.ts +3 -2
  186. package/src/tests/self-improvement.test.ts +4 -4
  187. package/src/tests/store-progress-learning.test.ts +288 -0
  188. package/src/tests/ui-logs-parser.test.ts +180 -0
  189. package/src/tests/workflow-engine-v2.test.ts +116 -1
  190. package/src/tests/workflow-mcp-trigger-schema.test.ts +209 -0
  191. package/src/tests/workflow-run-finished-event.test.ts +263 -0
  192. package/src/tests/workflow-swarm-script.test.ts +34 -0
  193. package/src/tools/script-common.ts +1 -0
  194. package/src/tools/script-run.ts +7 -0
  195. package/src/tools/script-upsert.ts +7 -0
  196. package/src/tools/store-progress.ts +67 -1
  197. package/src/tools/workflows/trigger-workflow.ts +104 -10
  198. package/src/types.ts +12 -1
  199. package/src/utils/credentials.ts +5 -2
  200. package/src/workflows/engine.ts +18 -16
  201. package/src/workflows/executors/swarm-script.ts +5 -0
  202. package/src/workflows/foreach-driver.ts +5 -11
  203. package/src/workflows/node-timeout.ts +30 -0
  204. package/templates/community/linear-delivery-loop/PLAYBOOK.md +323 -0
  205. package/templates/community/linear-delivery-loop/README.md +38 -0
  206. package/templates/community/linear-delivery-loop/config.example.json +31 -0
  207. package/templates/community/linear-delivery-loop/lead-prompt.md +34 -0
  208. package/templates/community/linear-delivery-loop/schedule.json +10 -0
  209. package/templates/community/linear-delivery-loop/scripts/linear-delivery-setup.ts +148 -0
  210. package/templates/community/linear-delivery-loop/scripts/linear-delivery-tick.ts +1781 -0
  211. package/templates/skills/swarm-docs/config.json +14 -0
  212. package/templates/skills/swarm-docs/content.md +144 -0
  213. package/dist/handlers-eqsnmv95.js +0 -41
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  contextBoundNoteThreshold,
3
3
  createContextBoundNote
4
- } from "./cli-nq677csy.js";
4
+ } from "./cli-sjctjr48.js";
5
5
  import {
6
6
  ampBillsCacheWrites,
7
7
  resolveAmpModel
8
- } from "./cli-bqztfyve.js";
8
+ } from "./cli-8mbc9za9.js";
9
9
  import {
10
10
  swarmRuntimeInstanceId
11
11
  } from "./cli-e8xyjvfc.js";
@@ -42,7 +42,7 @@ import { tmpdir } from "node:os";
42
42
  import { join } from "node:path";
43
43
  init_context_window();
44
44
  init_secret_scrubber();
45
- var AMP_PACKAGE = "@ampcode/cli@0.0.1792929650-g000512";
45
+ var AMP_PACKAGE = "@ampcode/cli@0.0.1793025586-g9211b5";
46
46
  var AMP_MCP_SERVER_NAME = "agent-swarm";
47
47
  var AMP_PLUGIN_MODE_KEY = "agent-swarm";
48
48
  var AMP_LIVE_TEST_TIMEOUT_MS = 5000;
@@ -47,10 +47,10 @@ import {
47
47
  checkDependencies2,
48
48
  emitBuiltInIntegrationConnectedOnce2,
49
49
  init_db3
50
- } from "./cli-g8ka5j4j.js";
50
+ } from "./cli-48gxjmcz.js";
51
51
  import {
52
52
  getChannelBlockReason2
53
- } from "./cli-gnsb1zxa.js";
53
+ } from "./cli-s09j9vp5.js";
54
54
  import {
55
55
  require_dist5,
56
56
  require_axios,
@@ -67,11 +67,11 @@ import {
67
67
  import {
68
68
  isTerminalTaskStatus,
69
69
  init_types
70
- } from "./cli-4rf0f5vg.js";
70
+ } from "./cli-9pshx6rd.js";
71
71
  import {
72
72
  taskAttachmentDisplayUrl,
73
73
  init_task_attachment_links
74
- } from "./cli-hfeb68z4.js";
74
+ } from "./cli-x37r7qwf.js";
75
75
  import {
76
76
  getSlackConfiguration,
77
77
  init_config
@@ -6240,7 +6240,7 @@ async function initOtel(serviceRole = process.env.AGENT_ROLE || "api") {
6240
6240
  return;
6241
6241
  initialized = true;
6242
6242
  try {
6243
- const impl = await import("./otel-impl-54qhqh1z.js");
6243
+ const impl = await import("./otel-impl-f9tgr8yw.js");
6244
6244
  await impl.boot(serviceRole, {
6245
6245
  exportConsoleLogs: serviceRole === "api" && isApiLogExportEnabled()
6246
6246
  });
@@ -10085,17 +10085,17 @@ async function initSlackApp2() {
10085
10085
  });
10086
10086
  initialized2 = true;
10087
10087
  app.use(slackInboundOutcomeMiddleware());
10088
- const { registerMessageHandler } = await import("./handlers-eqsnmv95.js");
10089
- const { registerCommandHandler } = await import("./commands-jqmgk54b.js");
10090
- const { registerActionHandlers } = await import("./actions-fbqma8aa.js");
10091
- const { registerWorkObjectHandlers } = await import("./work-objects-p28fgd70.js");
10088
+ const { registerMessageHandler } = await import("./handlers-tzmevqb5.js");
10089
+ const { registerCommandHandler } = await import("./commands-68et1qv2.js");
10090
+ const { registerActionHandlers } = await import("./actions-1vhmtvg9.js");
10091
+ const { registerWorkObjectHandlers } = await import("./work-objects-ggnghpgf.js");
10092
10092
  registerMessageHandler(app);
10093
10093
  registerCommandHandler(app);
10094
10094
  registerActionHandlers(app);
10095
10095
  registerWorkObjectHandlers(app);
10096
- const { createAssistant } = await import("./assistant-a16433gr.js");
10096
+ const { createAssistant } = await import("./assistant-yx1p6g82.js");
10097
10097
  app.assistant(createAssistant());
10098
- const { isBlockExternalEnabled, scanExternalChannelsOnBoot } = await import("./external-channel-y6nkzhnn.js");
10098
+ const { isBlockExternalEnabled, scanExternalChannelsOnBoot } = await import("./external-channel-xbmxcg09.js");
10099
10099
  if (isBlockExternalEnabled()) {
10100
10100
  scanExternalChannelsOnBoot(app.client).catch((error) => {
10101
10101
  console.error("[Slack] External channel boot scan failed:", error);
@@ -10108,7 +10108,7 @@ async function startSlackApp2() {
10108
10108
  await initSlackApp2();
10109
10109
  }
10110
10110
  if (app) {
10111
- const { isSlackRenderV2Enabled } = await import("./render-v2-tjay5hhf.js");
10111
+ const { isSlackRenderV2Enabled } = await import("./render-v2-yfvdfr0x.js");
10112
10112
  if (isSlackRenderV2Enabled())
10113
10113
  await ensureSlackRenderV2Activation2();
10114
10114
  await app.start();
@@ -8,11 +8,11 @@ import {
8
8
  resolveConfigValueOrThrow,
9
9
  resolveHeadersOrThrow,
10
10
  FileAuthStorageBackend
11
- } from "./cli-w2656ka1.js";
11
+ } from "./cli-2y7v133v.js";
12
12
  import {
13
13
  oauthSuccessHtml,
14
14
  oauthErrorHtml
15
- } from "./cli-v49fkghp.js";
15
+ } from "./cli-1m9x8dr5.js";
16
16
  import {
17
17
  __toESM
18
18
  } from "./cli-242037k3.js";
@@ -7,7 +7,7 @@ var package_default;
7
7
  var init_package = __esm(() => {
8
8
  package_default = {
9
9
  name: "@desplega.ai/agent-swarm",
10
- version: "2.6.0",
10
+ version: "2.7.0",
11
11
  description: "agent-swarm.dev — an open-source operating system for AI work: a lead agent breaks goals into tasks, routes them to specialized workers such as Claude Code or Codex, runs each worker in an isolated container, and preserves shared memory, tools, schedules, and review gates so delegated work compounds across sessions.",
12
12
  keywords: [
13
13
  "agent-swarm.dev",
@@ -87,6 +87,8 @@ var init_package = __esm(() => {
87
87
  "sync:ai-toolbox-skills": "bun scripts/sync-ai-toolbox-skills.ts",
88
88
  "check:ai-toolbox-skills": "bun scripts/sync-ai-toolbox-skills.ts --check",
89
89
  "check:skill-sources": "bun scripts/check-skill-sources.ts",
90
+ "build:docs-index": "bun scripts/build-docs-index.ts",
91
+ "check:docs-index": "bun scripts/build-docs-index.ts --check",
90
92
  "check:operator-skill": "bun scripts/check-operator-skill.ts",
91
93
  "sync:telemetry-contract": "bun scripts/sync-telemetry-contract.ts",
92
94
  "check:telemetry-contract": "bun scripts/sync-telemetry-contract.ts --check",
@@ -192,7 +194,7 @@ var init_package = __esm(() => {
192
194
  "@oxlint/plugins": "1.78.0",
193
195
  "@types/bun": "latest",
194
196
  "dependency-cruiser": "^18.0.0",
195
- "happy-dom": "^20.14.5",
197
+ "happy-dom": "^21.0.4",
196
198
  konsistent: "1.0.0-beta.1",
197
199
  "openapi-typescript": "^7",
198
200
  oxlint: "1.78.0",
@@ -217,7 +219,7 @@ var init_package = __esm(() => {
217
219
  "@chat-adapter/teams": "4.41.1",
218
220
  "@chat-adapter/telegram": "4.41.1",
219
221
  "@cursor/sdk": "1.0.40",
220
- "@desplega.ai/agent-fs-just-bash": "0.18.5",
222
+ "@desplega.ai/agent-fs-just-bash": "0.18.9",
221
223
  "@desplega.ai/business-use": "^0.4.2",
222
224
  "@earendil-works/pi-agent-core": "^1.4.0",
223
225
  "@earendil-works/pi-ai": "^1.4.0",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  RuntimeProviderKindSchema,
3
3
  init_types
4
- } from "./cli-4rf0f5vg.js";
4
+ } from "./cli-9pshx6rd.js";
5
5
  import {
6
6
  init_zod
7
7
  } from "./cli-4chz1hye.js";
@@ -7,20 +7,20 @@ import {
7
7
  tierConfigKey,
8
8
  init_model_tier_keys,
9
9
  init_db3
10
- } from "./cli-g8ka5j4j.js";
10
+ } from "./cli-48gxjmcz.js";
11
11
  import {
12
12
  ensureRbacSeedsSynced2,
13
13
  init_rbac_roles
14
- } from "./cli-a2rr0fmg.js";
14
+ } from "./cli-8wmj18cz.js";
15
15
  import {
16
16
  seedPricingFromModelsDev
17
- } from "./cli-5sckpqcx.js";
17
+ } from "./cli-d20qvpr2.js";
18
18
  import {
19
19
  MODEL_TIERS,
20
20
  DEFAULT_MODEL_TIER_MAP,
21
21
  ProviderNameSchema,
22
22
  init_types
23
- } from "./cli-4rf0f5vg.js";
23
+ } from "./cli-9pshx6rd.js";
24
24
 
25
25
  // src/be/boot-seeds.ts
26
26
  init_db3();
@@ -4,7 +4,7 @@ import {
4
4
  claimKv2,
5
5
  deleteKv2,
6
6
  init_db3
7
- } from "./cli-g8ka5j4j.js";
7
+ } from "./cli-48gxjmcz.js";
8
8
  import {
9
9
  isEnvFlagEnabled,
10
10
  init_env_flag
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  applyOpenRouterBaseUrlOverride2,
16
16
  buildOpenAICompatibleProviderBlock2
17
- } from "./cli-9abdgn5t.js";
17
+ } from "./cli-86ehn4s5.js";
18
18
  import {
19
19
  fetchInstalledMcpServers
20
20
  } from "./cli-bst1vp7e.js";
@@ -44,7 +44,7 @@ import {
44
44
  import {
45
45
  init_package,
46
46
  package_default
47
- } from "./cli-nn6vx2mq.js";
47
+ } from "./cli-ptfq202x.js";
48
48
  import {
49
49
  scrubSecrets,
50
50
  init_secret_scrubber
@@ -10,7 +10,7 @@ import {
10
10
  init_steering,
11
11
  createLogEntry2,
12
12
  init_db3
13
- } from "./cli-g8ka5j4j.js";
13
+ } from "./cli-48gxjmcz.js";
14
14
  import {
15
15
  ackSlackMessage,
16
16
  buildBufferFlushBlocks,
@@ -20,7 +20,7 @@ import {
20
20
  ensureSlackThreadTree2,
21
21
  registerTreeMessage,
22
22
  getSlackApp2
23
- } from "./cli-g20jjwt4.js";
23
+ } from "./cli-m30k9777.js";
24
24
  import {
25
25
  createAdditiveBuffer,
26
26
  TaskCreationBlockedError,
@@ -30,15 +30,15 @@ import {
30
30
  createSlackTaskWithFiles,
31
31
  notifySlackFileFailures,
32
32
  extractSlackMessageText
33
- } from "./cli-4hxrf0p4.js";
33
+ } from "./cli-6a9qfa8b.js";
34
34
  import {
35
35
  resolveSlackUserId,
36
36
  rewriteSlackMentions
37
- } from "./cli-24j1jeeb.js";
37
+ } from "./cli-2pvzmas1.js";
38
38
  import {
39
39
  findUserByExternalId,
40
40
  init_users
41
- } from "./cli-esakngh8.js";
41
+ } from "./cli-a89zdqz9.js";
42
42
  import {
43
43
  isSteeringEnabled2,
44
44
  init_steering_enabled
@@ -8,7 +8,7 @@ import {
8
8
  resolveTemplateAsync,
9
9
  init_resolver,
10
10
  init_session_templates
11
- } from "./cli-dqygeeh5.js";
11
+ } from "./cli-f1e0ptjj.js";
12
12
 
13
13
  // src/hooks/context-bound-note.ts
14
14
  import { renameSync, writeFileSync } from "node:fs";
@@ -33,7 +33,7 @@ import {
33
33
  getPendingWaitsByEvent2,
34
34
  resolveWaitState2,
35
35
  init_db3
36
- } from "./cli-g8ka5j4j.js";
36
+ } from "./cli-48gxjmcz.js";
37
37
  import {
38
38
  BaseExecutor,
39
39
  postApprovalCancellationUpdates,
@@ -61,7 +61,7 @@ import {
61
61
  stepFailureMode,
62
62
  getNextTargets,
63
63
  getSuccessors
64
- } from "./cli-3fwqy71j.js";
64
+ } from "./cli-j0ppywdr.js";
65
65
  import {
66
66
  workflowEventBus2,
67
67
  init_event_bus
@@ -70,7 +70,7 @@ import {
70
70
  RetryPolicySchema,
71
71
  SUPERSEDED_WORKFLOW_TASK_REASON,
72
72
  init_types
73
- } from "./cli-4rf0f5vg.js";
73
+ } from "./cli-9pshx6rd.js";
74
74
  import {
75
75
  init_zod
76
76
  } from "./cli-4chz1hye.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  registerTemplate,
3
3
  init_registry
4
- } from "./cli-dqygeeh5.js";
4
+ } from "./cli-f1e0ptjj.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./cli-242037k3.js";
@@ -3,7 +3,7 @@ import {
3
3
  isModelScopedWindow,
4
4
  parseModelLimitMessage,
5
5
  init_model_rate_limit_windows
6
- } from "./cli-1tem6ns9.js";
6
+ } from "./cli-gt4h8cxw.js";
7
7
 
8
8
  // src/utils/error-tracker.ts
9
9
  init_model_rate_limit_windows();
@@ -9,16 +9,16 @@ import {
9
9
  init_active_sessions,
10
10
  getSteeringMessageById2,
11
11
  init_db3
12
- } from "./cli-g8ka5j4j.js";
12
+ } from "./cli-48gxjmcz.js";
13
13
  import {
14
14
  getUserGrant2,
15
15
  init_rbac_roles
16
- } from "./cli-a2rr0fmg.js";
16
+ } from "./cli-8wmj18cz.js";
17
17
  import {
18
18
  findUserById,
19
19
  findUserByExternalId,
20
20
  init_users
21
- } from "./cli-esakngh8.js";
21
+ } from "./cli-a89zdqz9.js";
22
22
  import {
23
23
  isRbacEnabled,
24
24
  can,
@@ -503,7 +503,7 @@ function route(def) {
503
503
  try {
504
504
  const rawBody = def.body ? await parseBody(req, def.maxBodyBytes) : undefined;
505
505
  if (def.session && "bodyTaskIds" in def.session) {
506
- const { bodySessionDenial } = await import("./session-access-fdhp987s.js");
506
+ const { bodySessionDenial } = await import("./session-access-r5garej6.js");
507
507
  const denial = await bodySessionDenial(req, def.session.bodyTaskIds(rawBody));
508
508
  if (denial) {
509
509
  jsonError(res, denial, 403);
@@ -8,12 +8,12 @@ import {
8
8
  } from "./cli-qeaq3j6t.js";
9
9
  import {
10
10
  init_templates3
11
- } from "./cli-j6rktc91.js";
11
+ } from "./cli-v6shg7na.js";
12
12
  import {
13
13
  resolveTemplateAsync,
14
14
  init_resolver,
15
15
  init_session_templates
16
- } from "./cli-dqygeeh5.js";
16
+ } from "./cli-f1e0ptjj.js";
17
17
  import {
18
18
  MAX_PROFILE_FILE_LENGTH,
19
19
  getAppUrl,
@@ -283,6 +283,9 @@ function promptFlags(args) {
283
283
  scriptsOnlyMode: hasMcp && scriptsOnly
284
284
  };
285
285
  }
286
+ function hasSwarmDocsSkill(skills) {
287
+ return skills === undefined || skills.some((skill) => skill.name === "swarm-docs");
288
+ }
286
289
  function renderToolsAndSkillsVars(input) {
287
290
  let section = "";
288
291
  const skills = input.skillsSummary ?? [];
@@ -306,7 +309,7 @@ ${discovery}
306
309
  }
307
310
  }
308
311
  const servers = (input.mcpServers ?? []).filter((name) => name.trim().length > 0);
309
- const mcpLine = servers.length > 0 ? `Connected MCP servers: ${servers.join(", ")}. Their tools are in your tool list.
312
+ const mcpLine = servers.length > 0 ? `Connected MCP servers: ${servers.join(", ")}. ${input.mcpToolsDeferred ? "Load their tools with your harness tool search." : "Their tools are in your tool list."}
310
313
  ` : "";
311
314
  return {
312
315
  skills: section,
@@ -513,11 +516,16 @@ ${scriptsOnlyResult.text}`;
513
516
  const toolsResult = await resolveTemplateAsync("system.agent.tools_skills", renderToolsAndSkillsVars({
514
517
  skillsSummary: args.skillsSummary,
515
518
  mcpServers: args.mcpServers,
519
+ mcpToolsDeferred: provider === "pi" && hasToolSearch,
516
520
  nativeSkillDiscovery,
517
521
  toolDiscovery: discoveryResult.text,
518
522
  hasLocalEnv
519
523
  }));
520
524
  prompt += toolsResult.text;
525
+ if (role === "lead" && hasSwarmDocsSkill(args.skillsSummary)) {
526
+ const docsResult = await resolveTemplateAsync("system.agent.lead.docs", {});
527
+ prompt += docsResult.text;
528
+ }
521
529
  }
522
530
  if (hasLocalEnv && args.claudeMd && CLAUDE_MD_INJECT_PROVIDERS.has(provider) && !matchesDefaultClaudeMd(args.claudeMd, defaultsInput)) {
523
531
  const budget = Math.min(BOOTSTRAP_MAX_CHARS, Math.max(0, BOOTSTRAP_TOTAL_MAX_CHARS - prompt.length));
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  contextBoundNoteThreshold,
6
6
  createContextBoundNote
7
- } from "./cli-nq677csy.js";
7
+ } from "./cli-sjctjr48.js";
8
8
  import {
9
9
  checkToolLoop
10
10
  } from "./cli-0726awxw.js";
@@ -24,7 +24,7 @@ import {
24
24
  import {
25
25
  selectCredential,
26
26
  init_credentials
27
- } from "./cli-1tem6ns9.js";
27
+ } from "./cli-gt4h8cxw.js";
28
28
  import {
29
29
  runtimeCatalogModel,
30
30
  init_runtime_model_catalog
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  contextBoundNoteThreshold,
9
9
  createContextBoundNote
10
- } from "./cli-nq677csy.js";
10
+ } from "./cli-sjctjr48.js";
11
11
  import {
12
12
  SessionErrorTracker
13
- } from "./cli-7enjwya9.js";
13
+ } from "./cli-vz78s5wm.js";
14
14
  import {
15
15
  credentialsToAuthJson,
16
16
  CodexOAuthRefreshError,
@@ -18,7 +18,7 @@ import {
18
18
  } from "./cli-0z1xjzwa.js";
19
19
  import {
20
20
  summarizeSession
21
- } from "./cli-ag2yrnt5.js";
21
+ } from "./cli-c668vvcf.js";
22
22
  import {
23
23
  swarmRuntimeInstanceId
24
24
  } from "./cli-e8xyjvfc.js";
@@ -57,7 +57,7 @@ import {
57
57
  import {
58
58
  DEFAULT_MODEL_TIER_MAP,
59
59
  init_types
60
- } from "./cli-4rf0f5vg.js";
60
+ } from "./cli-9pshx6rd.js";
61
61
  import {
62
62
  routeCredentialStatus,
63
63
  CODEX_GATEWAY_API_KEY,
@@ -66,7 +66,7 @@ import {
66
66
  init_src,
67
67
  selectCredential,
68
68
  init_credentials
69
- } from "./cli-1tem6ns9.js";
69
+ } from "./cli-gt4h8cxw.js";
70
70
  import {
71
71
  runtimeCatalogModel,
72
72
  init_runtime_model_catalog
@@ -74,7 +74,7 @@ import {
74
74
  import {
75
75
  init_package,
76
76
  package_default
77
- } from "./cli-nn6vx2mq.js";
77
+ } from "./cli-ptfq202x.js";
78
78
  import {
79
79
  isEnvFlagEnabled,
80
80
  isSessionSummarySkipped,
@@ -8,14 +8,14 @@ import {
8
8
  import {
9
9
  materializeClaudeMd,
10
10
  stopClaudeMd
11
- } from "./cli-2sjhpsns.js";
11
+ } from "./cli-54sj64fc.js";
12
12
  import {
13
13
  summarizeSession
14
- } from "./cli-ag2yrnt5.js";
14
+ } from "./cli-c668vvcf.js";
15
15
  import {
16
16
  contextBoundNoteThreshold,
17
17
  injectClaimedContextBoundNote
18
- } from "./cli-nq677csy.js";
18
+ } from "./cli-sjctjr48.js";
19
19
  import {
20
20
  guardGhPrBody,
21
21
  guardGhPrRoom
@@ -31,11 +31,11 @@ import {
31
31
  warnProfileFileTooLarge,
32
32
  buildIndependentIdentityPayloads,
33
33
  init_profile_sync
34
- } from "./cli-hfeb68z4.js";
34
+ } from "./cli-x37r7qwf.js";
35
35
  import {
36
36
  init_package,
37
37
  package_default
38
- } from "./cli-nn6vx2mq.js";
38
+ } from "./cli-ptfq202x.js";
39
39
  import {
40
40
  MAX_PROFILE_FILE_LENGTH,
41
41
  getMcpBaseUrl,
package/dist/cli.js CHANGED
@@ -53,7 +53,7 @@ var import_react = __toESM(require_react(), 1);
53
53
  // package.json
54
54
  var package_default = {
55
55
  name: "@desplega.ai/agent-swarm",
56
- version: "2.6.0",
56
+ version: "2.7.0",
57
57
  description: "agent-swarm.dev — an open-source operating system for AI work: a lead agent breaks goals into tasks, routes them to specialized workers such as Claude Code or Codex, runs each worker in an isolated container, and preserves shared memory, tools, schedules, and review gates so delegated work compounds across sessions.",
58
58
  keywords: [
59
59
  "agent-swarm.dev",
@@ -133,6 +133,8 @@ var package_default = {
133
133
  "sync:ai-toolbox-skills": "bun scripts/sync-ai-toolbox-skills.ts",
134
134
  "check:ai-toolbox-skills": "bun scripts/sync-ai-toolbox-skills.ts --check",
135
135
  "check:skill-sources": "bun scripts/check-skill-sources.ts",
136
+ "build:docs-index": "bun scripts/build-docs-index.ts",
137
+ "check:docs-index": "bun scripts/build-docs-index.ts --check",
136
138
  "check:operator-skill": "bun scripts/check-operator-skill.ts",
137
139
  "sync:telemetry-contract": "bun scripts/sync-telemetry-contract.ts",
138
140
  "check:telemetry-contract": "bun scripts/sync-telemetry-contract.ts --check",
@@ -238,7 +240,7 @@ var package_default = {
238
240
  "@oxlint/plugins": "1.78.0",
239
241
  "@types/bun": "latest",
240
242
  "dependency-cruiser": "^18.0.0",
241
- "happy-dom": "^20.14.5",
243
+ "happy-dom": "^21.0.4",
242
244
  konsistent: "1.0.0-beta.1",
243
245
  "openapi-typescript": "^7",
244
246
  oxlint: "1.78.0",
@@ -263,7 +265,7 @@ var package_default = {
263
265
  "@chat-adapter/teams": "4.41.1",
264
266
  "@chat-adapter/telegram": "4.41.1",
265
267
  "@cursor/sdk": "1.0.40",
266
- "@desplega.ai/agent-fs-just-bash": "0.18.5",
268
+ "@desplega.ai/agent-fs-just-bash": "0.18.9",
267
269
  "@desplega.ai/business-use": "^0.4.2",
268
270
  "@earendil-works/pi-agent-core": "^1.4.0",
269
271
  "@earendil-works/pi-ai": "^1.4.0",
@@ -836,7 +838,7 @@ function McpServer({ port, apiKey, dbPath }) {
836
838
  if (dbPath) {
837
839
  process.env.DATABASE_PATH = dbPath;
838
840
  }
839
- import("./http-9c6medda.js").then(() => {
841
+ import("./http-haj1nd6k.js").then(() => {
840
842
  setStatus("running");
841
843
  }).catch((err) => {
842
844
  setStatus("error");
@@ -923,7 +925,7 @@ function WorkerRunner({
923
925
  const { exit } = use_app_default();
924
926
  import_react.useEffect(() => {
925
927
  installConsoleScrub();
926
- import("./worker-e3w7vye1.js").then(({ runWorker }) => runWorker({
928
+ import("./worker-sqjd1nqf.js").then(({ runWorker }) => runWorker({
927
929
  prompt: prompt || undefined,
928
930
  yolo,
929
931
  systemPrompt: systemPrompt || undefined,
@@ -941,7 +943,7 @@ function LeadRunner({ prompt, yolo, systemPrompt, systemPromptFile, additionalAr
941
943
  const { exit } = use_app_default();
942
944
  import_react.useEffect(() => {
943
945
  installConsoleScrub();
944
- import("./lead-23e7z59t.js").then(({ runLead }) => runLead({
946
+ import("./lead-hqg57kdp.js").then(({ runLead }) => runLead({
945
947
  prompt: prompt || undefined,
946
948
  yolo,
947
949
  systemPrompt: systemPrompt || undefined,
@@ -981,8 +983,8 @@ function LazyComponent({
981
983
  }
982
984
  return import_react.createElement(Component, props);
983
985
  }
984
- var loadOnboard = () => import("./onboard-p6q0vz97.js").then(({ Onboard }) => Onboard);
985
- var loadConnect = () => import("./setup-4rrmqcq3.js").then(({ Setup }) => Setup);
986
+ var loadOnboard = () => import("./onboard-18447q9q.js").then(({ Onboard }) => Onboard);
987
+ var loadConnect = () => import("./setup-8tygvxkq.js").then(({ Setup }) => Setup);
986
988
  function UnknownCommand({ command }) {
987
989
  const { exit } = use_app_default();
988
990
  import_react.useEffect(() => {
@@ -1112,14 +1114,14 @@ ${binName} docs \u2014 v${package_default.version}
1112
1114
  }
1113
1115
  process.exit(0);
1114
1116
  } else if (args.command === "hook") {
1115
- const { runHook } = await import("./hook-6d0zbvvt.js");
1117
+ const { runHook } = await import("./hook-8pz04697.js");
1116
1118
  await runHook();
1117
1119
  } else if (args.command === "codex-hook") {
1118
- const { handleCodexHook } = await import("./codex-hook-brpnycn5.js");
1120
+ const { handleCodexHook } = await import("./codex-hook-xyjhvxwd.js");
1119
1121
  await handleCodexHook();
1120
1122
  process.exit(process.exitCode ?? 0);
1121
1123
  } else if (args.command === "session-summary-stdin") {
1122
- const { runSessionSummaryFromStdin } = await import("./hook-cpjs8q51.js");
1124
+ const { runSessionSummaryFromStdin } = await import("./hook-cyq4mryn.js");
1123
1125
  await runSessionSummaryFromStdin();
1124
1126
  process.exit(process.exitCode ?? 0);
1125
1127
  } else if (args.command === "x") {
@@ -1132,7 +1134,7 @@ ${binName} docs \u2014 v${package_default.version}
1132
1134
  printHelp("scripts");
1133
1135
  process.exit(scriptsArgs[0] === "reembed" || args.showHelp ? 0 : 1);
1134
1136
  }
1135
- const { runScriptsMaintenanceCommand } = await import("./maintenance-kbme3qy9.js");
1137
+ const { runScriptsMaintenanceCommand } = await import("./maintenance-4y2xzh3a.js");
1136
1138
  await runScriptsMaintenanceCommand(scriptsArgs);
1137
1139
  console.log("Scripts re-embedded.");
1138
1140
  } else if (args.command === "rbac") {
@@ -1142,17 +1144,17 @@ ${binName} docs \u2014 v${package_default.version}
1142
1144
  printHelp("rbac");
1143
1145
  process.exit(args.showHelp ? 0 : 1);
1144
1146
  }
1145
- const { runRbacCliCommand } = await import("./rbac-roles-dexhc9x8.js");
1147
+ const { runRbacCliCommand } = await import("./rbac-roles-s4nwj2m3.js");
1146
1148
  await runRbacCliCommand(rbacArgs);
1147
1149
  } else if (args.command === "codex-login") {
1148
1150
  const { runCodexLogin } = await import("./codex-login-8cg0vhf2.js");
1149
1151
  const codexLoginArgs = process.argv.slice(process.argv.indexOf("codex-login") + 1);
1150
1152
  await runCodexLogin(codexLoginArgs);
1151
1153
  } else if (args.command === "codex-session-runner") {
1152
- const { runCodexSessionRunner } = await import("./codex-session-runner-gdwd8h0c.js");
1154
+ const { runCodexSessionRunner } = await import("./codex-session-runner-kh6s4j3n.js");
1153
1155
  await runCodexSessionRunner();
1154
1156
  } else if (args.command === "claude-managed-setup") {
1155
- const { runClaudeManagedSetup } = await import("./claude-managed-setup-3cm35gey.js");
1157
+ const { runClaudeManagedSetup } = await import("./claude-managed-setup-rqv98sea.js");
1156
1158
  const setupArgs = process.argv.slice(process.argv.indexOf("claude-managed-setup") + 1);
1157
1159
  await runClaudeManagedSetup(setupArgs);
1158
1160
  } else if (args.command === "worker-token") {
@@ -1164,7 +1166,7 @@ ${binName} docs \u2014 v${package_default.version}
1164
1166
  const e2bArgs = process.argv.slice(process.argv.indexOf("e2b") + 1);
1165
1167
  await runE2BCommand(e2bArgs);
1166
1168
  } else if (args.command === "controller") {
1167
- const { runController } = await import("./controller-z3jq589f.js");
1169
+ const { runController } = await import("./controller-fyrbnzg4.js");
1168
1170
  await runController(process.argv.slice(process.argv.indexOf("controller") + 1));
1169
1171
  } else {
1170
1172
  render_default(/* @__PURE__ */ jsx_dev_runtime.jsxDEV(App, {
@@ -2,20 +2,20 @@ import {
2
2
  checkCodexCredentials2,
3
3
  createInProcessCodexSession2,
4
4
  CodexAdapter2
5
- } from "./cli-ca6banwz.js";
5
+ } from "./cli-ymjpkxgn.js";
6
6
  import"./cli-4zsenjhy.js";
7
7
  import"./cli-kr5tjjtz.js";
8
8
  import"./cli-vbhgkw9h.js";
9
9
  import"./cli-4bd1rck6.js";
10
10
  import"./cli-jc1g9ndz.js";
11
- import"./cli-ag2yrnt5.js";
11
+ import"./cli-c668vvcf.js";
12
12
  import"./cli-0726awxw.js";
13
- import"./cli-nq677csy.js";
14
- import"./cli-7enjwya9.js";
13
+ import"./cli-sjctjr48.js";
14
+ import"./cli-vz78s5wm.js";
15
15
  import"./cli-c081bj3b.js";
16
16
  import"./cli-3h26v7yj.js";
17
17
  import"./cli-3ggwdtb0.js";
18
- import"./cli-v49fkghp.js";
18
+ import"./cli-1m9x8dr5.js";
19
19
  import"./cli-0z1xjzwa.js";
20
20
  import"./cli-e8xyjvfc.js";
21
21
  import"./cli-13p25grh.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bun
2
2
  import {
3
3
  renderSteeringDelivery
4
- } from "./cli-sxgtf5fw.js";
4
+ } from "./cli-07q03xm2.js";
5
5
  import {
6
6
  guardGhPrBody,
7
7
  guardGhPrRoom