@desplega.ai/agent-swarm 2.7.5 → 2.7.6

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 (206) hide show
  1. package/dist/{acp-adapter-g3ads55s.js → acp-adapter-bp91d37f.js} +4 -4
  2. package/dist/{actions-zwfykqqk.js → actions-yj0eeaqh.js} +18 -17
  3. package/dist/{amp-adapter-z3s0ssdt.js → amp-adapter-4pg9h34q.js} +1 -1
  4. package/dist/{app-vmp4fgep.js → app-909e97cr.js} +3 -3
  5. package/dist/{assistant-vwde653f.js → assistant-qdyb5fyy.js} +24 -22
  6. package/dist/{boot-reembed-375t7tbk.js → boot-reembed-fk0s9z18.js} +1 -1
  7. package/dist/{boot-reembed-gq9rcpnj.js → boot-reembed-gs1rzrnh.js} +1 -1
  8. package/dist/{boot-scrub-sweep-nd938kyf.js → boot-scrub-sweep-4qfd4kfx.js} +2 -2
  9. package/dist/{boot-seeds-aykx51v3.js → boot-seeds-yr00k13d.js} +4 -4
  10. package/dist/{boxd-k1j26g3h.js → boxd-vdmfssd9.js} +4 -4
  11. package/dist/{claude-adapter-8j4hm099.js → claude-adapter-qta1f1xn.js} +3 -3
  12. package/dist/{claude-managed-setup-0wyynpn1.js → claude-managed-setup-sc6j4dm0.js} +1 -1
  13. package/dist/{claude-sdk-session-q6wj5hmy.js → claude-sdk-session-zgrz6yvc.js} +9169 -9070
  14. package/dist/{cli-gjr2y2xk.js → cli-0agcv1v5.js} +4 -1
  15. package/dist/{cli-vqypxzh4.js → cli-0at8w34w.js} +7 -7
  16. package/dist/{cli-7a42nfy0.js → cli-0qatpy8q.js} +3 -3
  17. package/dist/{cli-p599f1qm.js → cli-0yv5z2pg.js} +1 -1
  18. package/dist/{cli-0gey5fzy.js → cli-386tyxxg.js} +2 -2
  19. package/dist/{cli-5pag6rmn.js → cli-3ypk9vk1.js} +1 -1
  20. package/dist/{cli-qxnf8z2z.js → cli-436532ck.js} +2 -2
  21. package/dist/{cli-z8eh3ex8.js → cli-4necwtsv.js} +4 -4
  22. package/dist/{cli-zh3fp8v2.js → cli-54t00gt8.js} +1 -1
  23. package/dist/{cli-hf6zt5m6.js → cli-69szn7w7.js} +17 -1
  24. package/dist/{cli-nn4d8dne.js → cli-89knwags.js} +2 -2
  25. package/dist/{cli-spknvxbq.js → cli-8bc1w0tw.js} +10 -10
  26. package/dist/{cli-rqkxrmgw.js → cli-8snvgs5r.js} +38 -13
  27. package/dist/{cli-rhw40jgb.js → cli-bjb3z51z.js} +2 -2
  28. package/dist/{cli-xtjhfmpc.js → cli-c60vetmm.js} +1 -1
  29. package/dist/{cli-0731hvbw.js → cli-decfb6v8.js} +2 -2
  30. package/dist/{cli-bhjt02p8.js → cli-drr5v6av.js} +1 -1
  31. package/dist/{cli-fqzx7gwa.js → cli-dxae2yg7.js} +2 -2
  32. package/dist/{cli-tqgg40ek.js → cli-e3r2neck.js} +8 -7
  33. package/dist/{cli-zppwg9p9.js → cli-ekwks2vs.js} +1 -1
  34. package/dist/{cli-nzxr556s.js → cli-es6va8jk.js} +26 -26
  35. package/dist/{cli-a47xy8eq.js → cli-faxe6thg.js} +1 -1
  36. package/dist/cli-gdhpcbhf.js +55 -0
  37. package/dist/{cli-82jg7fp9.js → cli-he5nxaa8.js} +1 -1
  38. package/dist/{cli-8veytvbh.js → cli-he9wchme.js} +1 -1
  39. package/dist/{cli-pywf3eh5.js → cli-hgaazk69.js} +1 -1
  40. package/dist/{cli-0bxqnvq9.js → cli-hr2e2fft.js} +28 -6
  41. package/dist/{cli-1ayk1eas.js → cli-k2gzwsj2.js} +135 -26
  42. package/dist/{cli-xbkdm710.js → cli-kqdg1bsb.js} +3 -3
  43. package/dist/cli-m2z8jagn.js +12078 -0
  44. package/dist/{cli-g61qxmge.js → cli-m48g6p95.js} +3 -3
  45. package/dist/{cli-7wspm5gm.js → cli-nhrvpaj7.js} +20 -4
  46. package/dist/{cli-afrrppsw.js → cli-nwj0ee2w.js} +2 -2
  47. package/dist/{cli-3h4nhjn8.js → cli-p5gp8pcx.js} +9 -7
  48. package/dist/{cli-rm6hqj3z.js → cli-pd7vagab.js} +33 -139
  49. package/dist/{cli-mjzynrse.js → cli-q0k1w5zd.js} +1 -1
  50. package/dist/{cli-8hs41zy2.js → cli-rmmmrjkd.js} +1 -1
  51. package/dist/{cli-kg8hchyg.js → cli-sa02jsqt.js} +1 -1
  52. package/dist/{cli-1338796d.js → cli-shpbx5ee.js} +142 -98
  53. package/dist/{cli-82ae98pz.js → cli-svj5090z.js} +2 -2
  54. package/dist/{cli-bnz7a7qf.js → cli-vvpx3gsx.js} +1 -1
  55. package/dist/{cli-mmwm7zbf.js → cli-w6dt9ged.js} +1 -1
  56. package/dist/{cli-wvaawacd.js → cli-waqbxg08.js} +5230 -66
  57. package/dist/{cli-j3jvnpe8.js → cli-wp9sp1qb.js} +1 -1
  58. package/dist/{cli-nmbmy64z.js → cli-xbbndvjy.js} +3 -3
  59. package/dist/{cli-vbyfwh92.js → cli-xds5f77d.js} +2 -2
  60. package/dist/{cli-7wcyk2s5.js → cli-xnqgpshy.js} +1 -1
  61. package/dist/{cli-rpm2sgv0.js → cli-xnrwazav.js} +19 -2
  62. package/dist/{cli-gf5hbmdr.js → cli-yjdgea32.js} +3 -3
  63. package/dist/{cli-mry0qzym.js → cli-yn4kxs06.js} +123 -10
  64. package/dist/{cli-hn9hxmz9.js → cli-yx4kfngt.js} +1 -1
  65. package/dist/{cli-y24sc29k.js → cli-yy3rhsdw.js} +30 -8
  66. package/dist/{cli-6s7vdcta.js → cli-zbbwez0r.js} +4 -4
  67. package/dist/{cli-z6jkx23q.js → cli-zm72anhg.js} +9 -9
  68. package/dist/cli.js +22 -21
  69. package/dist/{codex-adapter-q6k3gnyg.js → codex-adapter-ayd1fb6h.js} +2 -2
  70. package/dist/{codex-session-runner-3mwmk3d9.js → codex-session-runner-jesa32xc.js} +2 -2
  71. package/dist/{commands-evrenjn9.js → commands-hanewgf2.js} +9 -3
  72. package/dist/{controller-xjp8vswh.js → controller-dt1n3c1q.js} +8 -3
  73. package/dist/{controllers-connect-pp5jnxvc.js → controllers-connect-xx8x64n5.js} +20 -19
  74. package/dist/{cursor-adapter-yf47w4t0.js → cursor-adapter-9s4dwwdw.js} +1 -1
  75. package/dist/{db-zxpw6aht.js → db-3vttcbv4.js} +3 -3
  76. package/dist/{db-rgfsh91f.js → db-9dv0g1ab.js} +11 -3
  77. package/dist/{devtools-82fzqra8.js → devtools-qxfgbsqz.js} +1 -1
  78. package/dist/{dispatcher-smasgws7.js → dispatcher-tx9hd1sv.js} +17 -16
  79. package/dist/{docker-rrjhaqt9.js → docker-c1a3gqmf.js} +89 -22
  80. package/dist/{dsh-adapter-ftyy8dnp.js → dsh-adapter-007y4ejs.js} +1 -1
  81. package/dist/{e2b-qcaj675y.js → e2b-a19d28rz.js} +2 -2
  82. package/dist/{e2b-w1p0bnpm.js → e2b-we6hs6q5.js} +4 -4
  83. package/dist/{easter-egg-3d-yyts7p16.js → easter-egg-3d-rgbrqb8s.js} +1 -1
  84. package/dist/{embedding-space-1z0mbg95.js → embedding-space-ny1e2940.js} +6 -6
  85. package/dist/{embeddings-ygeg7tm7.js → embeddings-2t386t13.js} +1 -1
  86. package/dist/{execute-14qhqp4d.js → execute-pksh0ceh.js} +1 -1
  87. package/dist/{external-channel-ttgrs3sx.js → external-channel-phgmhmd7.js} +2 -2
  88. package/dist/{fx-adapter-gt6pncj2.js → fx-adapter-fy8rr921.js} +5 -5
  89. package/dist/{google-generative-ai-yvmdxyxa.js → google-generative-ai-8y3m3k4b.js} +1 -1
  90. package/dist/{google-vertex-jrtdh9gs.js → google-vertex-w3v98n7b.js} +1 -1
  91. package/dist/{grok-adapter-sm4m5k4g.js → grok-adapter-q0abvpaj.js} +5 -5
  92. package/dist/handlers-by3sfxyx.js +32 -0
  93. package/dist/{heartbeat-qahz4p62.js → heartbeat-kadyek8p.js} +20 -19
  94. package/dist/{hook-kj3d398m.js → hook-5zs3msf6.js} +2 -2
  95. package/dist/{hook-4fd5wq5w.js → hook-9k551xnj.js} +2 -2
  96. package/dist/{http-1ted0j1k.js → http-mhz9vw1f.js} +213 -80
  97. package/dist/index-4f2pvxae.js +37 -0
  98. package/dist/index-98gz7tmp.js +30 -0
  99. package/dist/{index-5rk6rfzr.js → index-fvzke5kx.js} +1 -1
  100. package/dist/index-k08z2cak.js +33 -0
  101. package/dist/{index-yqhz88yy.js → index-pxn30mse.js} +8 -8
  102. package/dist/{index-6rq3r5zb.js → index-q361cg2f.js} +1 -1
  103. package/dist/{index-7v51awbn.js → index-rvr00sg7.js} +20 -13
  104. package/dist/{index-q4b917zs.js → index-vdygbq10.js} +1 -1
  105. package/dist/{keepalive-6cf311t5.js → keepalive-w56f32cg.js} +3 -3
  106. package/dist/{lead-fjy418cw.js → lead-enq35nqp.js} +31 -30
  107. package/dist/{maintenance-a4bm1bmt.js → maintenance-7mdgxcea.js} +1 -1
  108. package/dist/{oauth-refresh-sweep-3h0dfw1k.js → oauth-refresh-sweep-29txy9vk.js} +2 -2
  109. package/dist/{onboard-myn5hraa.js → onboard-kpsrkarj.js} +4 -4
  110. package/dist/{opencode-adapter-p2nkb5am.js → opencode-adapter-j25vm3rr.js} +3 -3
  111. package/dist/{otel-impl-a1a0ef6b.js → otel-impl-6kkct7a8.js} +1 -1
  112. package/dist/{pi-mono-adapter-rzmpb72a.js → pi-mono-adapter-exhkzhn2.js} +4 -4
  113. package/dist/{pricing-refresh-83drrnxj.js → pricing-refresh-n2x7jh6k.js} +3 -3
  114. package/dist/{rbac-roles-s8y6ecb5.js → rbac-roles-81ypx6es.js} +1 -1
  115. package/dist/{rbac-roles-0fb6e7pj.js → rbac-roles-b5htkjby.js} +2 -2
  116. package/dist/{render-v2-twmbgrz4.js → render-v2-qn6jmpk4.js} +3 -3
  117. package/dist/{resume-zfqc36xj.js → resume-wd30wx23.js} +6 -6
  118. package/dist/{runtime-qwggdpqr.js → runtime-4hsg7h60.js} +1 -1
  119. package/dist/{session-access-sc9pn9da.js → session-access-5qvfevhk.js} +4 -4
  120. package/dist/{session-source-backfill-qh07xr8g.js → session-source-backfill-n1czavbr.js} +2 -2
  121. package/dist/{setup-4fr0m7a1.js → setup-dnb56qy5.js} +3 -3
  122. package/dist/{virtual-modules-fh4ha15b.js → virtual-modules-76xxv9fs.js} +2 -2
  123. package/dist/{work-objects-0wr8zxct.js → work-objects-4n21tfkm.js} +20 -19
  124. package/dist/{worker-follow-up-ktyyazyp.js → worker-follow-up-77hvzxww.js} +17 -16
  125. package/dist/{worker-0c5tyzqe.js → worker-gg1576j3.js} +31 -30
  126. package/openapi.json +93 -1
  127. package/package.json +8 -7
  128. package/src/be/db/script-runs.ts +23 -0
  129. package/src/be/db/tasks/read.ts +122 -3
  130. package/src/be/db-client.ts +8 -5
  131. package/src/be/db.ts +15 -4
  132. package/src/be/memory/providers/sqlite-store.ts +49 -12
  133. package/src/be/migrations/260_runtime_pool_cache.sql +20 -0
  134. package/src/be/migrations/262_session_visibility_indexes.sql +18 -0
  135. package/src/be/migrations/263_task_list_filter_index.sql +11 -0
  136. package/src/be/migrations/264_slack_thread_cover_index.sql +9 -0
  137. package/src/be/migrations/266_script_runs_source_task.sql +11 -0
  138. package/src/be/runtime-pools/cache-cleanup.ts +109 -0
  139. package/src/be/runtime-pools/db.ts +65 -6
  140. package/src/be/runtime-pools/remote-controller.ts +5 -0
  141. package/src/be/runtime-pools/supervisor.ts +33 -2
  142. package/src/be/scripts/typecheck.ts +22 -0
  143. package/src/be/seed-scripts/catalog/task-failure-audit.ts +5 -1
  144. package/src/commands/controller.ts +4 -0
  145. package/src/commands/entrypoint-api-readiness.ts +74 -0
  146. package/src/http/index.ts +1 -1
  147. package/src/http/list-total-cache.ts +14 -7
  148. package/src/http/memory.ts +38 -9
  149. package/src/http/script-runs.ts +174 -5
  150. package/src/http/status.ts +10 -2
  151. package/src/http/tasks.ts +4 -2
  152. package/src/providers/amp-adapter.ts +1 -1
  153. package/src/providers/fx-adapter.ts +1 -1
  154. package/src/runtime-providers/controller-protocol.ts +14 -1
  155. package/src/runtime-providers/controller.ts +5 -0
  156. package/src/runtime-providers/docker.ts +108 -23
  157. package/src/runtime-providers/types.ts +16 -0
  158. package/src/script-workflows/workflow-ctx.ts +8 -0
  159. package/src/scripts-runtime/types/stdlib.d.ts +22 -0
  160. package/src/scripts-runtime/types/swarm-sdk.d.ts +22 -0
  161. package/src/server-user.ts +1 -0
  162. package/src/slack/commands.ts +5 -1
  163. package/src/slack/handlers.ts +37 -2
  164. package/src/slack/left-threads.ts +27 -4
  165. package/src/tasks/follow-up-redelegation-guard.ts +155 -0
  166. package/src/tests/claude-artifacts-read-script.test.ts +209 -0
  167. package/src/tests/db-client.test.ts +21 -0
  168. package/src/tests/db-task-read-contract.test.ts +8 -2
  169. package/src/tests/db-task-write-contract.test.ts +5 -1
  170. package/src/tests/entrypoint-api-readiness.test.ts +416 -210
  171. package/src/tests/explicit-model-validation.test.ts +14 -8
  172. package/src/tests/follow-up-redelivery-guard.test.ts +432 -202
  173. package/src/tests/list-total-cache.test.ts +27 -2
  174. package/src/tests/memory-fts-populate.test.ts +11 -9
  175. package/src/tests/memory-retrieval-purge.test.ts +80 -0
  176. package/src/tests/migration-260-runtime-pool-cache.test.ts +118 -0
  177. package/src/tests/query-audit-plans.test.ts +27 -0
  178. package/src/tests/runtime-cache-cleanup.test.ts +367 -0
  179. package/src/tests/runtime-e2b-pools.test.ts +41 -0
  180. package/src/tests/runtime-pools-db.test.ts +98 -0
  181. package/src/tests/runtime-pools-http.test.ts +29 -0
  182. package/src/tests/runtime-providers-docker.test.ts +253 -0
  183. package/src/tests/runtime-remote-controller.test.ts +66 -2
  184. package/src/tests/runtime-supervisor.test.ts +66 -2
  185. package/src/tests/script-connections.test.ts +11 -0
  186. package/src/tests/script-runs-http.test.ts +684 -2
  187. package/src/tests/seed-scripts.test.ts +26 -0
  188. package/src/tests/slack-leave-thread.test.ts +145 -5
  189. package/src/tests/slack-render-v2-query-plans.test.ts +24 -2
  190. package/src/tests/status.test.ts +11 -0
  191. package/src/tests/tasks-readable-row.test.ts +155 -0
  192. package/src/tools/send-task.ts +35 -47
  193. package/src/tools/slack-leave-thread.ts +1 -1
  194. package/src/tools/task-dedup.ts +45 -21
  195. package/src/types.ts +38 -0
  196. package/templates/skills/composio-google-docs/content.md +10 -0
  197. package/templates/skills/script-workflows/content.md +19 -1
  198. package/templates/skills/swarm-docs/content.md +1 -0
  199. package/templates/skills/swarm-scripts/SKILL.md +2 -0
  200. package/templates/skills/swarm-scripts/content.md +2 -0
  201. package/dist/cli-dznrgaep.js +0 -30
  202. package/dist/cli-w3hcrxht.js +0 -6985
  203. package/dist/handlers-vwmba1m2.js +0 -31
  204. package/dist/index-5r71rf98.js +0 -32
  205. package/dist/index-anmwxs87.js +0 -29
  206. package/dist/index-spp0ra5c.js +0 -36
@@ -3,6 +3,9 @@ import {
3
3
  } from "./cli-242037k3.js";
4
4
 
5
5
  // src/runtime-providers/types.ts
6
+ function poolCacheKey(poolId, generation) {
7
+ return `swarm-cache-${poolId}${generation ? `-${generation}` : ""}`;
8
+ }
6
9
  var RUNTIME_LABELS;
7
10
  var init_types5 = __esm(() => {
8
11
  RUNTIME_LABELS = {
@@ -13,4 +16,4 @@ var init_types5 = __esm(() => {
13
16
  };
14
17
  });
15
18
 
16
- export { RUNTIME_LABELS, init_types5 };
19
+ export { poolCacheKey, RUNTIME_LABELS, init_types5 };
@@ -49,7 +49,7 @@ import {
49
49
  streamSimple2,
50
50
  completeSimple,
51
51
  init_compat
52
- } from "./cli-qxnf8z2z.js";
52
+ } from "./cli-436532ck.js";
53
53
  import {
54
54
  cleanupSessionResources,
55
55
  uuidv7
@@ -55322,7 +55322,7 @@ function loadAllHighlightLanguages() {
55322
55322
  if (!allLanguagesPromise) {
55323
55323
  allLanguagesPromise = new Promise((resolve) => {
55324
55324
  setImmediate(() => {
55325
- import("./index-6rq3r5zb.js").then((m)=>__toESM(m.default,1)).then(() => resolve(), () => {
55325
+ import("./index-q361cg2f.js").then((m)=>__toESM(m.default,1)).then(() => resolve(), () => {
55326
55326
  resolve();
55327
55327
  });
55328
55328
  });
@@ -61474,7 +61474,7 @@ function getCreateJiti() {
61474
61474
  }
61475
61475
  var virtualModulesPromise;
61476
61476
  function getVirtualModules() {
61477
- virtualModulesPromise ??= import("./virtual-modules-fh4ha15b.js").then((module) => module.VIRTUAL_MODULES);
61477
+ virtualModulesPromise ??= import("./virtual-modules-76xxv9fs.js").then((module) => module.VIRTUAL_MODULES);
61478
61478
  return virtualModulesPromise;
61479
61479
  }
61480
61480
  var _aliases = null;
@@ -80380,7 +80380,7 @@ function parseCodemodeSource(input) {
80380
80380
  init_build();
80381
80381
 
80382
80382
  // node_modules/@earendil-works/pi-coding-agent/dist/extensions/codemode/execute.lazy.js
80383
- var loadCodemodeExecutor = () => import("./execute-14qhqp4d.js");
80383
+ var loadCodemodeExecutor = () => import("./execute-pksh0ceh.js");
80384
80384
 
80385
80385
  // node_modules/@earendil-works/pi-coding-agent/dist/extensions/codemode/renderer.js
80386
80386
  var CODE_PREVIEW_LINES = 10;
@@ -81537,7 +81537,7 @@ function createMcpResourceToolDefinitions(options) {
81537
81537
  }
81538
81538
 
81539
81539
  // node_modules/@earendil-works/pi-coding-agent/dist/extensions/mcp/runtime.lazy.js
81540
- var loadMcpRuntime = () => import("./runtime-qwggdpqr.js");
81540
+ var loadMcpRuntime = () => import("./runtime-4hsg7h60.js");
81541
81541
 
81542
81542
  // node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.js
81543
81543
  import { randomUUID as randomUUID3 } from "node:crypto";
@@ -86666,7 +86666,7 @@ var builtInExtensions = [
86666
86666
  ];
86667
86667
 
86668
86668
  // node_modules/@earendil-works/pi-coding-agent/dist/extensions/mcp/cli.lazy.js
86669
- var loadMcpCommand = () => import("./cli-0gey5fzy.js");
86669
+ var loadMcpCommand = () => import("./cli-386tyxxg.js");
86670
86670
 
86671
86671
  // node_modules/@earendil-works/pi-coding-agent/dist/migrations.js
86672
86672
  import { existsSync as existsSync22, mkdirSync as mkdirSync11, readdirSync as readdirSync10, readFileSync as readFileSync17, renameSync as renameSync2, rmSync as rmSync3, writeFileSync as writeFileSync11 } from "fs";
@@ -89196,7 +89196,7 @@ function playEasterEgg3d(tui, egg) {
89196
89196
  if (tui.hasOverlay())
89197
89197
  return true;
89198
89198
  const screen = tui.getScreenLines();
89199
- import("./easter-egg-3d-yyts7p16.js").then((module) => module.playEasterEgg3d(tui, screen, egg), () => {});
89199
+ import("./easter-egg-3d-rgbrqb8s.js").then((module) => module.playEasterEgg3d(tui, screen, egg), () => {});
89200
89200
  return true;
89201
89201
  }
89202
89202
  function playPiLogo3d(tui, column, row) {
@@ -7,7 +7,7 @@ import {
7
7
  } from "./cli-mthwvjre.js";
8
8
  import {
9
9
  summarizeSession
10
- } from "./cli-a47xy8eq.js";
10
+ } from "./cli-faxe6thg.js";
11
11
  import {
12
12
  resolveCodexPrompt
13
13
  } from "./cli-jc1g9ndz.js";
@@ -63,7 +63,7 @@ import {
63
63
  import {
64
64
  DEFAULT_MODEL_TIER_MAP,
65
65
  init_types4
66
- } from "./cli-7wspm5gm.js";
66
+ } from "./cli-nhrvpaj7.js";
67
67
  import {
68
68
  isCodexRejectedAccessError,
69
69
  init_codex_auth_failure
@@ -84,7 +84,7 @@ import {
84
84
  import {
85
85
  init_package,
86
86
  package_default
87
- } from "./cli-tqgg40ek.js";
87
+ } from "./cli-e3r2neck.js";
88
88
  import {
89
89
  isEnvFlagEnabled,
90
90
  isSessionSummarySkipped,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_package,
3
3
  package_default
4
- } from "./cli-tqgg40ek.js";
4
+ } from "./cli-e3r2neck.js";
5
5
 
6
6
  // src/commands/shared/client-config.ts
7
7
  init_package();
@@ -9,7 +9,7 @@ import {
9
9
  loadMcpConfig,
10
10
  addMcpServerConfig,
11
11
  removeMcpServerConfig
12
- } from "./cli-vqypxzh4.js";
12
+ } from "./cli-0at8w34w.js";
13
13
  import {
14
14
  McpOAuthCredentialStore2,
15
15
  McpSignInCancelledError2,
@@ -17,7 +17,7 @@ import {
17
17
  McpServerLog2,
18
18
  createDefaultTransport2,
19
19
  McpServerConnection2
20
- } from "./cli-fqzx7gwa.js";
20
+ } from "./cli-dxae2yg7.js";
21
21
 
22
22
  // node_modules/@earendil-works/pi-coding-agent/dist/extensions/mcp/cli.js
23
23
  import { existsSync } from "node:fs";
@@ -2,7 +2,7 @@ import {
2
2
  isGrokOpenRouterModel,
3
3
  grokTargetProfile,
4
4
  ACPAdapter2
5
- } from "./cli-rm6hqj3z.js";
5
+ } from "./cli-pd7vagab.js";
6
6
  import {
7
7
  getOpenRouterBaseUrl,
8
8
  getOpenRouterAttributionHeaders,
@@ -17088,13 +17088,13 @@ var init_azure_openai_responses_lazy = __esm(() => {
17088
17088
  });
17089
17089
 
17090
17090
  // node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.js
17091
- var googleGenerativeAIApi = () => lazyApi(() => import("./google-generative-ai-yvmdxyxa.js"));
17091
+ var googleGenerativeAIApi = () => lazyApi(() => import("./google-generative-ai-8y3m3k4b.js"));
17092
17092
  var init_google_generative_ai_lazy = __esm(() => {
17093
17093
  init_lazy();
17094
17094
  });
17095
17095
 
17096
17096
  // node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.js
17097
- var googleVertexApi = () => lazyApi(() => import("./google-vertex-jrtdh9gs.js"));
17097
+ var googleVertexApi = () => lazyApi(() => import("./google-vertex-w3v98n7b.js"));
17098
17098
  var init_google_vertex_lazy = __esm(() => {
17099
17099
  init_lazy();
17100
17100
  });
@@ -11,16 +11,16 @@ import {
11
11
  init_active_sessions,
12
12
  getSteeringMessageById2,
13
13
  init_db4
14
- } from "./cli-1ayk1eas.js";
14
+ } from "./cli-k2gzwsj2.js";
15
15
  import {
16
16
  getUserGrant2,
17
17
  init_rbac_roles
18
- } from "./cli-8hs41zy2.js";
18
+ } from "./cli-rmmmrjkd.js";
19
19
  import {
20
20
  findUserById,
21
21
  findUserByExternalId,
22
22
  init_users
23
- } from "./cli-bhjt02p8.js";
23
+ } from "./cli-drr5v6av.js";
24
24
  import {
25
25
  isRbacEnabled,
26
26
  can,
@@ -499,7 +499,7 @@ function route(def) {
499
499
  try {
500
500
  const rawBody = def.body ? await parseBody(req, def.maxBodyBytes) : undefined;
501
501
  if (def.session && "bodyTaskIds" in def.session) {
502
- const { bodySessionDenial } = await import("./session-access-sc9pn9da.js");
502
+ const { bodySessionDenial } = await import("./session-access-5qvfevhk.js");
503
503
  const denial = await bodySessionDenial(req, def.session.bodyTaskIds(rawBody));
504
504
  if (denial) {
505
505
  jsonError(res, denial, 403);
@@ -4,7 +4,7 @@ import {
4
4
  fxSessionExists,
5
5
  fxTargetProfile,
6
6
  ACPAdapter2
7
- } from "./cli-rm6hqj3z.js";
7
+ } from "./cli-pd7vagab.js";
8
8
  import {
9
9
  getKnownContextWindowSize,
10
10
  init_context_window
@@ -1,5 +1,7 @@
1
1
  import {
2
+ __toESM,
2
3
  __commonJS,
4
+ __esm,
3
5
  __require
4
6
  } from "./cli-242037k3.js";
5
7
 
@@ -2886,4 +2888,18 @@ var require_websocket_server = __commonJS(function(exports, module) {
2886
2888
  }
2887
2889
  });
2888
2890
 
2889
- export { require_permessage_deflate, require_receiver, require_sender, require_extension, require_websocket, require_stream, require_subprotocol, require_websocket_server };
2891
+ // node_modules/ws/wrapper.mjs
2892
+ var import_stream, import_extension, import_permessage_deflate, import_receiver, import_sender, import_subprotocol, import_websocket, import_websocket_server, wrapper_default;
2893
+ var init_wrapper2 = __esm(() => {
2894
+ import_stream = __toESM(require_stream(), 1);
2895
+ import_extension = __toESM(require_extension(), 1);
2896
+ import_permessage_deflate = __toESM(require_permessage_deflate(), 1);
2897
+ import_receiver = __toESM(require_receiver(), 1);
2898
+ import_sender = __toESM(require_sender(), 1);
2899
+ import_subprotocol = __toESM(require_subprotocol(), 1);
2900
+ import_websocket = __toESM(require_websocket(), 1);
2901
+ import_websocket_server = __toESM(require_websocket_server(), 1);
2902
+ wrapper_default = import_websocket.default;
2903
+ });
2904
+
2905
+ export { import_websocket, import_websocket_server, wrapper_default, init_wrapper2 };
@@ -4,13 +4,13 @@ import {
4
4
  getActivePricingRow2,
5
5
  insertPricingRow2,
6
6
  init_db4
7
- } from "./cli-1ayk1eas.js";
7
+ } from "./cli-k2gzwsj2.js";
8
8
  import {
9
9
  loadModelsDevCache,
10
10
  init_modelsdev_cache,
11
11
  buildModelsDevSeedRows,
12
12
  init_seed_pricing
13
- } from "./cli-xtjhfmpc.js";
13
+ } from "./cli-c60vetmm.js";
14
14
  import {
15
15
  setRuntimeModelCatalog,
16
16
  init_runtime_model_catalog
@@ -56,22 +56,22 @@ import {
56
56
  releaseApprovalCancellationNotificationClaim2,
57
57
  updateApprovalRequestNotifications2,
58
58
  init_db4
59
- } from "./cli-1ayk1eas.js";
59
+ } from "./cli-k2gzwsj2.js";
60
60
  import {
61
61
  externalChannelToolError2,
62
62
  isBlockExternalEnabled2,
63
63
  getChannelBlockReason2,
64
64
  init_external_channel
65
- } from "./cli-mmwm7zbf.js";
65
+ } from "./cli-w6dt9ged.js";
66
66
  import {
67
67
  getSlackApp2,
68
68
  init_app3
69
- } from "./cli-wvaawacd.js";
69
+ } from "./cli-waqbxg08.js";
70
70
  import {
71
71
  DEFAULT_MODEL,
72
72
  resolveCredential,
73
73
  init_credentials
74
- } from "./cli-qxnf8z2z.js";
74
+ } from "./cli-436532ck.js";
75
75
  import {
76
76
  isMultiRuntimeEnabled,
77
77
  init_multi_runtime2
@@ -79,11 +79,11 @@ import {
79
79
  import {
80
80
  revokeRuntimeTokensForRuntime,
81
81
  init_users
82
- } from "./cli-bhjt02p8.js";
82
+ } from "./cli-drr5v6av.js";
83
83
  import {
84
84
  TERMINAL_TASK_STATUSES,
85
85
  init_types4
86
- } from "./cli-7wspm5gm.js";
86
+ } from "./cli-nhrvpaj7.js";
87
87
  import {
88
88
  getSlackConfiguration,
89
89
  isSlackConfigured,
@@ -155,7 +155,7 @@ async function notifyAutomationPreflightFailure(preflight) {
155
155
  return;
156
156
  }
157
157
  try {
158
- const { getSlackApp } = await import("./app-vmp4fgep.js");
158
+ const { getSlackApp } = await import("./app-909e97cr.js");
159
159
  const app = getSlackApp();
160
160
  if (!app) {
161
161
  console.warn("[Automation Preflight] Slack not available, cannot send notification");
@@ -4551,7 +4551,7 @@ async function runClaimedStep(def, runId, ctx, node, registry, existingStep, ste
4551
4551
  }
4552
4552
  const waiting = await checkpointStepWaiting(runId, stepId, ctx);
4553
4553
  if (waiting && result.waitFor === "workflow.child.finished") {
4554
- const { resumeFromChildRun } = await import("./resume-zfqc36xj.js");
4554
+ const { resumeFromChildRun } = await import("./resume-wd30wx23.js");
4555
4555
  await resumeFromChildRun(stepId, registry);
4556
4556
  }
4557
4557
  return { outcome: waiting ? "waiting" : "completed", successors: [] };
@@ -5056,7 +5056,7 @@ async function runForeachDrive(runId, parentNodeId, registry) {
5056
5056
  if (drive.successors.length > 0) {
5057
5057
  await walkGraph(workflow.definition, runId, ctx, drive.successors, registry, workflow.id, getSecretInputKeys(workflow.input));
5058
5058
  } else {
5059
- const { finalizeOrWait } = await import("./resume-zfqc36xj.js");
5059
+ const { finalizeOrWait } = await import("./resume-wd30wx23.js");
5060
5060
  await finalizeOrWait(runId);
5061
5061
  }
5062
5062
  return drive;
@@ -5199,7 +5199,7 @@ async function startChild(input) {
5199
5199
  const parked = await getDbClient2().get("UPDATE workflow_run_steps SET status = 'waiting' WHERE id = ? AND status = 'running' RETURNING id", [child.id]);
5200
5200
  if (parked && result.waitFor === "workflow.child.finished") {
5201
5201
  ownedChildren.delete(child.id);
5202
- const { resumeFromChildRun } = await import("./resume-zfqc36xj.js");
5202
+ const { resumeFromChildRun } = await import("./resume-wd30wx23.js");
5203
5203
  await resumeFromChildRun(child.id, registry);
5204
5204
  }
5205
5205
  return null;
@@ -4,7 +4,7 @@ import {
4
4
  CONTROLLER_COMMAND_TIMEOUT_MS,
5
5
  RuntimeHandleSchema,
6
6
  ControllerStatusResultSchema
7
- } from "./cli-rpm2sgv0.js";
7
+ } from "./cli-xnrwazav.js";
8
8
  import {
9
9
  getDbClient2,
10
10
  isRuntimePoolsEnabled,
@@ -21,8 +21,11 @@ import {
21
21
  upsertSwarmConfig2,
22
22
  getResolvedConfig2,
23
23
  init_db4
24
- } from "./cli-1ayk1eas.js";
24
+ } from "./cli-k2gzwsj2.js";
25
25
  import {
26
+ getPoolCache,
27
+ reconcileCacheReleases,
28
+ init_cache_cleanup,
26
29
  getRuntimeController2,
27
30
  getRuntimeControllerTarget2,
28
31
  checkE2bControllerConfig2,
@@ -32,7 +35,7 @@ import {
32
35
  getPoolForAgent2,
33
36
  resolvePoolDelivery2,
34
37
  init_db2
35
- } from "./cli-mry0qzym.js";
38
+ } from "./cli-yn4kxs06.js";
36
39
  import {
37
40
  workflowEventBus2,
38
41
  init_event_bus
@@ -42,7 +45,7 @@ import {
42
45
  init_worker_follow_up,
43
46
  canClaim,
44
47
  init_budget_admission
45
- } from "./cli-1338796d.js";
48
+ } from "./cli-shpbx5ee.js";
46
49
  import {
47
50
  runtimeStaleThresholdMinutes,
48
51
  getRuntimeInstanceById,
@@ -51,7 +54,7 @@ import {
51
54
  listRuntimeInstancesForAgent,
52
55
  listRuntimeInstancesForPool,
53
56
  init_multi_runtime
54
- } from "./cli-spknvxbq.js";
57
+ } from "./cli-8bc1w0tw.js";
55
58
  import {
56
59
  isMultiRuntimeEnabled,
57
60
  init_multi_runtime2
@@ -60,20 +63,20 @@ import {
60
63
  canProvisionKind,
61
64
  createRuntimeProvider,
62
65
  init_runtime_providers
63
- } from "./cli-xbkdm710.js";
66
+ } from "./cli-kqdg1bsb.js";
64
67
  import {
65
68
  mintRuntimeToken,
66
69
  init_users
67
- } from "./cli-bhjt02p8.js";
70
+ } from "./cli-drr5v6av.js";
68
71
  import {
69
72
  import_websocket,
70
73
  init_wrapper2
71
- } from "./cli-dznrgaep.js";
74
+ } from "./cli-69szn7w7.js";
72
75
  import {
73
76
  TERMINAL_TASK_STATUSES,
74
77
  isTerminalTaskStatus,
75
78
  init_types4
76
- } from "./cli-7wspm5gm.js";
79
+ } from "./cli-nhrvpaj7.js";
77
80
  import {
78
81
  init_zod
79
82
  } from "./cli-k5671be5.js";
@@ -97,7 +100,7 @@ import {
97
100
  import {
98
101
  RUNTIME_LABELS,
99
102
  init_types5
100
- } from "./cli-gjr2y2xk.js";
103
+ } from "./cli-0agcv1v5.js";
101
104
  import {
102
105
  scrubSecrets,
103
106
  registerVolatileSecret,
@@ -118,6 +121,7 @@ init_budget_admission();
118
121
  init_db4();
119
122
  init_multi_runtime();
120
123
  init_users();
124
+ init_cache_cleanup();
121
125
 
122
126
  // src/be/runtime-pools/controllers.ts
123
127
  init_runtime_providers();
@@ -162,12 +166,17 @@ class RemoteController {
162
166
  renew;
163
167
  pause;
164
168
  resume;
169
+ releaseCache;
165
170
  constructor(id, ws, traits, workerApiUrl, timeouts = {}) {
166
171
  this.id = id;
167
172
  this.ws = ws;
168
173
  this.traits = traits;
169
174
  this.workerApiUrl = workerApiUrl;
170
175
  this.timeouts = timeouts;
176
+ if (traits.persistentCache)
177
+ this.releaseCache = async (cache) => {
178
+ await this.call({ op: "release-cache", payload: cache });
179
+ };
171
180
  if (traits.maxTtlSec)
172
181
  this.renew = async (handle, ttlSec) => object2({ endAt: string2() }).parse(await this.call({ op: "renew", payload: { handle, ttlSec } }));
173
182
  if (traits.supportsPause) {
@@ -537,7 +546,7 @@ async function recoverSessions(runtimeId, reason) {
537
546
  }
538
547
  if (!sessions.length)
539
548
  return;
540
- const { remediateTaskForDeadRuntime } = await import("./heartbeat-qahz4p62.js");
549
+ const { remediateTaskForDeadRuntime } = await import("./heartbeat-kadyek8p.js");
541
550
  for (const session of sessions) {
542
551
  try {
543
552
  const task = await getTaskById2(session.taskId);
@@ -818,6 +827,9 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
818
827
  if (templateId)
819
828
  env.TEMPLATE_ID = templateId;
820
829
  const ttlSec = pool.kind === "e2b" ? poolLeaseTtl(pool, controller) : undefined;
830
+ const currentPoolCache = await getPoolCache(pool.id);
831
+ const currentCache = currentPoolCache?.controllerId === pool.placements[0] ? currentPoolCache : null;
832
+ const cache = currentCache && controller.traits.persistentCache ? { key: currentCache.key, mountPath: currentCache.mountPath } : undefined;
821
833
  signal?.throwIfAborted();
822
834
  const handle = await controller.provision({
823
835
  runtimeId,
@@ -828,6 +840,7 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
828
840
  ...ttlSec === undefined ? {} : { ttlSec },
829
841
  env,
830
842
  resources: pool.resources ?? undefined,
843
+ ...cache ? { cache } : {},
831
844
  labels: {
832
845
  [RUNTIME_LABELS.runtimeId]: runtimeId,
833
846
  [RUNTIME_LABELS.poolId]: pool.id,
@@ -840,6 +853,17 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
840
853
  await markRuntimeTerminated(runtimeId, "Supervisor stopped during provision");
841
854
  return false;
842
855
  }
856
+ const cacheWarning = currentCache ? !controller.traits.persistentCache ? "Controller does not support persistent caches; runtime started without cache" : handle.meta?.cacheWarning : undefined;
857
+ const cacheErrorPrefix = "Persistent cache: ";
858
+ const cacheError = cacheWarning ? cacheErrorPrefix + scrubSecrets(cacheWarning) : null;
859
+ await getDbClient2().run(`UPDATE runtime_pools SET last_error = ?, last_error_at = ?
860
+ WHERE id = ? AND (last_error IS NULL OR substr(last_error, 1, ?) = ?)`, [
861
+ cacheError,
862
+ cacheError ? new Date().toISOString() : null,
863
+ pool.id,
864
+ cacheErrorPrefix.length,
865
+ cacheErrorPrefix
866
+ ]);
843
867
  await getDbClient2().run("UPDATE runtime_instances SET external_handle = ?, lease_expires_at = ?, created_at = COALESCE(?, created_at), updated_at = ? WHERE id = ?", [
844
868
  JSON.stringify(handle),
845
869
  ttlSec === undefined ? null : handle.meta?.leaseExpiresAt ?? new Date(now.getTime() + ttlSec * 1000).toISOString(),
@@ -1286,8 +1310,9 @@ async function reconcilePools(now, commands, signal) {
1286
1310
  async function reconcileOnce(opts = {}) {
1287
1311
  if (!isRuntimePoolsEnabled() || !isMultiRuntimeEnabled() || inFlight)
1288
1312
  return;
1289
- tickAbort = new AbortController;
1290
- inFlight = reconcilePools(opts.now ?? new Date, opts.getControllerCommands ?? getControllerCommands, tickAbort.signal);
1313
+ const tick = new AbortController;
1314
+ tickAbort = tick;
1315
+ inFlight = reconcilePools(opts.now ?? new Date, opts.getControllerCommands ?? getControllerCommands, tick.signal).then(() => reconcileCacheReleases(opts.getControllerCommands ?? getControllerCommands, tick.signal));
1291
1316
  try {
1292
1317
  await inFlight;
1293
1318
  } catch (error) {
@@ -5,12 +5,12 @@ import {
5
5
  import {
6
6
  publicEndpointSsrfOptions,
7
7
  init_mcp_wrapper
8
- } from "./cli-pywf3eh5.js";
8
+ } from "./cli-hgaazk69.js";
9
9
  import {
10
10
  normalizeOrgWebsite,
11
11
  init_org_website,
12
12
  assertUrlSafe
13
- } from "./cli-1ayk1eas.js";
13
+ } from "./cli-k2gzwsj2.js";
14
14
  import {
15
15
  getOpenRouterBaseUrl,
16
16
  getOpenRouterAttributionHeaders,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getDb2,
3
3
  init_db4
4
- } from "./cli-1ayk1eas.js";
4
+ } from "./cli-k2gzwsj2.js";
5
5
  import {
6
6
  openAICompatibleProviderIds,
7
7
  withRegistryCatalogSections,
@@ -4,7 +4,7 @@ import {
4
4
  } from "./cli-jm2vfpfd.js";
5
5
  import {
6
6
  summarizeSession
7
- } from "./cli-a47xy8eq.js";
7
+ } from "./cli-faxe6thg.js";
8
8
  import {
9
9
  contextBoundNoteThreshold,
10
10
  injectClaimedContextBoundNote
@@ -36,7 +36,7 @@ import {
36
36
  import {
37
37
  init_package,
38
38
  package_default
39
- } from "./cli-tqgg40ek.js";
39
+ } from "./cli-e3r2neck.js";
40
40
  import {
41
41
  MAX_PROFILE_FILE_LENGTH,
42
42
  getMcpBaseUrl,
@@ -5,7 +5,7 @@ import {
5
5
  validateRuntimeTokenTtlHours,
6
6
  init_swarm_config_guard,
7
7
  init_db4
8
- } from "./cli-1ayk1eas.js";
8
+ } from "./cli-k2gzwsj2.js";
9
9
  import {
10
10
  registerVolatileSecret,
11
11
  unregisterVolatileSecret,
@@ -8,12 +8,12 @@ import {
8
8
  resolveConfigValueOrThrow,
9
9
  resolveHeadersOrThrow,
10
10
  FileAuthStorageBackend
11
- } from "./cli-vqypxzh4.js";
11
+ } from "./cli-0at8w34w.js";
12
12
  import {
13
13
  oauthSuccessHtml,
14
14
  oauthErrorHtml,
15
15
  init_oauth_page
16
- } from "./cli-qxnf8z2z.js";
16
+ } from "./cli-436532ck.js";
17
17
  import {
18
18
  __toESM
19
19
  } 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.7.5",
10
+ version: "2.7.6",
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",
@@ -69,6 +69,7 @@ var init_package = __esm(() => {
69
69
  "packages/*"
70
70
  ],
71
71
  overrides: {
72
+ "@slack/socket-mode": "^2.0.7",
72
73
  react: "19.2.3",
73
74
  "react-dom": "19.2.3"
74
75
  },
@@ -185,12 +186,12 @@ var init_package = __esm(() => {
185
186
  },
186
187
  devDependencies: {
187
188
  "@biomejs/biome": "^2.3.10",
188
- "@desplega.ai/slack-mock": "^0.4.1",
189
+ "@desplega.ai/slack-mock": "^0.5.0",
189
190
  "@desplega/model-catalog": "workspace:*",
190
191
  "@desplega/model-routing": "workspace:*",
191
192
  "@faker-js/faker": "^10.4.0",
192
- "@opencode/plugin": "2.2.1",
193
- "@opencode/sdk": "2.2.1",
193
+ "@opencode/plugin": "2.2.3",
194
+ "@opencode/sdk": "2.2.3",
194
195
  "@oxlint/plugins": "1.78.0",
195
196
  "@types/bun": "latest",
196
197
  "dependency-cruiser": "^18.0.0",
@@ -208,9 +209,9 @@ var init_package = __esm(() => {
208
209
  bun: ">=1.3.12"
209
210
  },
210
211
  dependencies: {
211
- "@agentclientprotocol/sdk": "2.1.0",
212
+ "@agentclientprotocol/sdk": "2.2.0",
212
213
  "@ai-sdk/openai": "^3.0.41",
213
- "@anthropic-ai/claude-agent-sdk": "0.3.312",
214
+ "@anthropic-ai/claude-agent-sdk": "0.3.314",
214
215
  "@anthropic-ai/sdk": "^1.3.0",
215
216
  "@asteasolutions/zod-to-openapi": "^8.0.0",
216
217
  "@aws-sdk/client-bedrock": "3.1048.0",
@@ -229,7 +230,7 @@ var init_package = __esm(() => {
229
230
  "@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
230
231
  "@linear/sdk": "^77.0.0",
231
232
  "@modelcontextprotocol/sdk": "1.32.1",
232
- "@openai/codex": "0.165.0",
233
+ "@openai/codex": "0.166.0",
233
234
  "@openfort/openfort-node": "^0.9.1",
234
235
  "@opentelemetry/api": "^1.9.1",
235
236
  "@opentelemetry/api-logs": "^0.218.0",
@@ -19,7 +19,7 @@ import {
19
19
  autoIndexMemoryFile,
20
20
  fetchConcurrentContext,
21
21
  summarizeTranscript
22
- } from "./cli-hn9hxmz9.js";
22
+ } from "./cli-yx4kfngt.js";
23
23
  import {
24
24
  applyReasoningEffort
25
25
  } from "./cli-98rw5dt5.js";