@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
@@ -16,7 +16,7 @@ import {
16
16
  import {
17
17
  DEFAULT_MODEL_TIER_MAP,
18
18
  init_types4
19
- } from "./cli-7wspm5gm.js";
19
+ } from "./cli-nhrvpaj7.js";
20
20
  import {
21
21
  resolveTemplateFromCode,
22
22
  resolveTemplateAsync,
@@ -2,19 +2,19 @@ import {
2
2
  getKv2,
3
3
  upsertKv2,
4
4
  init_db4
5
- } from "./cli-1ayk1eas.js";
5
+ } from "./cli-k2gzwsj2.js";
6
6
  import {
7
7
  resolveIdentity,
8
8
  init_identity,
9
9
  recordUnmappedIdentity,
10
10
  init_unmapped_identities
11
- } from "./cli-1338796d.js";
11
+ } from "./cli-shpbx5ee.js";
12
12
  import {
13
13
  findUserByExternalId,
14
14
  findOrCreateUserByEmail,
15
15
  linkIdentity,
16
16
  init_users
17
- } from "./cli-bhjt02p8.js";
17
+ } from "./cli-drr5v6av.js";
18
18
  import {
19
19
  __esm
20
20
  } from "./cli-242037k3.js";
@@ -6,11 +6,11 @@ import {
6
6
  getResolvedConfig2,
7
7
  getAllUsers2,
8
8
  init_db4
9
- } from "./cli-1ayk1eas.js";
9
+ } from "./cli-k2gzwsj2.js";
10
10
  import {
11
11
  getUserGrant2,
12
12
  init_rbac_roles
13
- } from "./cli-8hs41zy2.js";
13
+ } from "./cli-rmmmrjkd.js";
14
14
  import {
15
15
  scrubSecrets,
16
16
  init_secret_scrubber
@@ -9,7 +9,7 @@ import {
9
9
  acquireOAuthRefreshLock,
10
10
  releaseOAuthRefreshLock,
11
11
  init_oauth
12
- } from "./cli-1ayk1eas.js";
12
+ } from "./cli-k2gzwsj2.js";
13
13
  import {
14
14
  generateRandomCodeVerifier,
15
15
  generateRandomState,
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  RuntimeProviderKindSchema,
3
+ RuntimePoolCacheSchema,
3
4
  init_types4
4
- } from "./cli-7wspm5gm.js";
5
+ } from "./cli-nhrvpaj7.js";
5
6
  import {
6
7
  init_zod
7
8
  } from "./cli-k5671be5.js";
@@ -44,6 +45,7 @@ class BuiltinController {
44
45
  renew;
45
46
  pause;
46
47
  resume;
48
+ releaseCache;
47
49
  constructor(id, provider, target, workerApiUrl) {
48
50
  this.id = id;
49
51
  this.provider = provider;
@@ -52,6 +54,8 @@ class BuiltinController {
52
54
  this.workerApiUrl = workerApiUrl;
53
55
  if (provider.renew)
54
56
  this.renew = (handle, ttlSec) => this.call(() => provider.renew(target, handle, ttlSec));
57
+ if (provider.releaseCache)
58
+ this.releaseCache = (cache) => this.call(() => provider.releaseCache(target, cache));
55
59
  if (provider.pause)
56
60
  this.pause = (handle) => this.call(() => provider.pause(target, handle));
57
61
  if (provider.resume)
@@ -101,6 +105,7 @@ var traitsSchema = object2({
101
105
  canProvision: boolean(),
102
106
  ephemeralDisk: boolean(),
103
107
  supportsPause: boolean(),
108
+ persistentCache: boolean().optional(),
104
109
  maxTtlSec: number2().positive().optional(),
105
110
  maxContinuousSec: number2().positive().optional()
106
111
  });
@@ -113,10 +118,22 @@ var provisionSchema = object2({
113
118
  env: record2(string2(), string2()),
114
119
  labels: record2(string2(), string2()),
115
120
  resources: object2({ cpu: number2().positive().optional(), memoryMb: number2().positive().optional() }).optional(),
116
- ttlSec: number2().positive().optional()
121
+ ttlSec: number2().positive().optional(),
122
+ cache: RuntimePoolCacheSchema.extend({
123
+ key: string2().regex(/^[a-zA-Z0-9][a-zA-Z0-9_.-]+$/)
124
+ }).optional()
117
125
  });
118
126
  var command = { type: literal2("cmd"), id: string2().min(1) };
119
127
  var ControllerCommandSchema = discriminatedUnion("op", [
128
+ object2({
129
+ ...command,
130
+ op: literal2("release-cache"),
131
+ payload: object2({
132
+ key: string2().regex(/^[a-zA-Z0-9][a-zA-Z0-9_.-]+$/),
133
+ poolId: string2().min(1),
134
+ ownerId: string2().min(1)
135
+ })
136
+ }),
120
137
  object2({ ...command, op: literal2("provision"), payload: provisionSchema }),
121
138
  object2({
122
139
  ...command,
@@ -1037,7 +1037,7 @@ var require_jsonwebtoken = __commonJS(function(exports, module) {
1037
1037
  });
1038
1038
 
1039
1039
  // node_modules/path-to-regexp/dist/index.js
1040
- var require_dist5 = __commonJS(function(exports) {
1040
+ var require_dist6 = __commonJS(function(exports) {
1041
1041
  Object.defineProperty(exports, "__esModule", { value: true });
1042
1042
  exports.PathError = exports.TokenData = undefined;
1043
1043
  exports.parse = parse;
@@ -19820,7 +19820,7 @@ var require_layer = __commonJS(function(exports, module) {
19820
19820
  * MIT Licensed
19821
19821
  */
19822
19822
  var isPromise = require_is_promise();
19823
- var pathRegexp = require_dist5();
19823
+ var pathRegexp = require_dist6();
19824
19824
  var debug = require_src4()("router:layer");
19825
19825
  var deprecate = require_depd()("router");
19826
19826
  var TRAILING_SLASH_REGEXP = /\/+$/;
@@ -23251,4 +23251,4 @@ var require_express = __commonJS(function(exports, module) {
23251
23251
  exports.urlencoded = bodyParser.urlencoded;
23252
23252
  });
23253
23253
 
23254
- export { require_jsonwebtoken, require_dist5, require_raw_body, require_content_type, require_lib, require_vary, require_express };
23254
+ export { require_jsonwebtoken, require_dist6, require_raw_body, require_content_type, require_lib, require_vary, require_express };
@@ -13,19 +13,20 @@ import {
13
13
  init_swarm_config_guard,
14
14
  registerStoredSecret,
15
15
  init_secret_registry,
16
+ getSwarmConfigs2,
16
17
  upsertSwarmConfig2,
17
18
  init_db4
18
- } from "./cli-1ayk1eas.js";
19
+ } from "./cli-k2gzwsj2.js";
19
20
  import {
20
21
  createRuntimeProvider,
21
22
  init_runtime_providers
22
- } from "./cli-xbkdm710.js";
23
+ } from "./cli-kqdg1bsb.js";
23
24
  import {
24
25
  closeSessionTokenConnections,
25
26
  init_session_token_connections,
26
27
  insertSessionToken,
27
28
  init_users
28
- } from "./cli-bhjt02p8.js";
29
+ } from "./cli-drr5v6av.js";
29
30
  import {
30
31
  RuntimeControllerCreateSchema,
31
32
  RuntimeControllerUpdateSchema,
@@ -33,7 +34,11 @@ import {
33
34
  RuntimePoolUpdateSchema,
34
35
  RuntimePoolCreateAgentSchema,
35
36
  init_types4
36
- } from "./cli-7wspm5gm.js";
37
+ } from "./cli-nhrvpaj7.js";
38
+ import {
39
+ poolCacheKey,
40
+ init_types5
41
+ } from "./cli-0agcv1v5.js";
37
42
  import {
38
43
  scrubSecrets,
39
44
  registerVolatileSecret,
@@ -44,6 +49,79 @@ import {
44
49
  __esm
45
50
  } from "./cli-242037k3.js";
46
51
 
52
+ // src/be/runtime-pools/cache-cleanup.ts
53
+ async function getPoolCache(poolId) {
54
+ const row = await getDbClient2().get("SELECT cache, json_extract(placements, '$[0]') AS controllerId FROM runtime_pools WHERE id = ?", [poolId]);
55
+ if (!row?.cache)
56
+ return null;
57
+ const cache = JSON.parse(row.cache);
58
+ return {
59
+ key: cache.key ?? poolCacheKey(poolId),
60
+ mountPath: cache.mountPath,
61
+ controllerId: row.controllerId
62
+ };
63
+ }
64
+ async function queuePoolCacheRelease(pool, actor) {
65
+ if (!pool.cache)
66
+ return;
67
+ const owner = (await getSwarmConfigs2({ scope: "global", key: "runtime_owner_id" }))[0];
68
+ if (!owner)
69
+ return;
70
+ const cache = await getPoolCache(pool.id);
71
+ const runtimes = await getDbClient2().query(`SELECT id FROM runtime_instances WHERE pool_id = ?
72
+ AND (controller_id = ? OR controller_id IS NULL) AND status != 'offline'`, [pool.id, pool.placements[0]]);
73
+ await getDbClient2().run(`INSERT INTO runtime_cache_releases
74
+ (id, pool_id, controller_id, owner_id, cache_key, runtime_ids, created_by, updated_by)
75
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(controller_id, owner_id, cache_key) DO NOTHING`, [
76
+ crypto.randomUUID(),
77
+ pool.id,
78
+ pool.placements[0],
79
+ owner.value,
80
+ cache.key,
81
+ JSON.stringify(runtimes.map((r) => r.id)),
82
+ actor,
83
+ actor
84
+ ]);
85
+ }
86
+ async function reconcileCacheReleases(commands, signal, now) {
87
+ const jobs = await getDbClient2().query(`SELECT id, pool_id AS poolId, controller_id AS controllerId, owner_id AS ownerId,
88
+ cache_key AS key FROM runtime_cache_releases ORDER BY created_at`);
89
+ for (const job of jobs) {
90
+ if (signal.aborted)
91
+ return;
92
+ const claimed = now ?? new Date;
93
+ const claimedAt = claimed.toISOString();
94
+ const reserved = await getDbClient2().run(`UPDATE runtime_cache_releases SET state = 'deleting', updated_at = ?
95
+ WHERE id = ? AND (state = 'pending' OR updated_at < ?) AND NOT EXISTS (
96
+ SELECT 1 FROM runtime_instances WHERE status != 'offline'
97
+ AND id IN (SELECT value FROM json_each(runtime_cache_releases.runtime_ids))
98
+ )`, [claimedAt, job.id, new Date(claimed.getTime() - RELEASE_LEASE_MS).toISOString()]);
99
+ if (!reserved.changes)
100
+ continue;
101
+ try {
102
+ signal.throwIfAborted();
103
+ const controller = await commands(job.controllerId);
104
+ if (!controller.releaseCache)
105
+ throw new Error("Controller cannot release caches; upgrade it before cleanup");
106
+ await controller.releaseCache({ key: job.key, poolId: job.poolId, ownerId: job.ownerId });
107
+ await getDbClient2().run("DELETE FROM runtime_cache_releases WHERE id = ? AND state = 'deleting' AND updated_at = ?", [job.id, claimedAt]);
108
+ } catch (error) {
109
+ const message = scrubSecrets(String(error));
110
+ await getDbClient2().run(`UPDATE runtime_cache_releases SET state = 'pending', last_error = ?, updated_at = ?
111
+ WHERE id = ? AND state = 'deleting' AND updated_at = ?`, [message, new Date().toISOString(), job.id, claimedAt]);
112
+ if (!signal.aborted)
113
+ console.error("[runtime-pools] Cache cleanup deferred:", message);
114
+ }
115
+ }
116
+ }
117
+ var RELEASE_LEASE_MS;
118
+ var init_cache_cleanup = __esm(() => {
119
+ init_types5();
120
+ init_secret_scrubber();
121
+ init_db4();
122
+ RELEASE_LEASE_MS = 5 * 60000;
123
+ });
124
+
47
125
  // src/be/runtime-pools/errors.ts
48
126
  var RuntimePoolError2;
49
127
  var init_errors = __esm(() => {
@@ -114,11 +192,13 @@ function rowToController(row) {
114
192
  };
115
193
  }
116
194
  function rowToPool(row) {
195
+ const cache = row.cache ? JSON.parse(row.cache) : null;
117
196
  return {
118
197
  ...row,
119
198
  placements: JSON.parse(row.placements),
120
199
  env: JSON.parse(row.env),
121
200
  resources: row.resources ? JSON.parse(row.resources) : null,
201
+ cache: cache ? { mountPath: cache.mountPath } : null,
122
202
  enabled: row.enabled === 1
123
203
  };
124
204
  }
@@ -157,6 +237,15 @@ async function getRuntimeControllerTarget2(controller, env = process.env) {
157
237
  E2B_MAX_CONTINUOUS_SEC: env.E2B_MAX_CONTINUOUS_SEC,
158
238
  RUNTIME_WORKER_API_URL: env.RUNTIME_WORKER_API_URL,
159
239
  PUBLIC_MCP_BASE_URL: env.PUBLIC_MCP_BASE_URL,
240
+ ...controller.kind === "boxd" && controller.placement === "builtin" ? {
241
+ BOXD_ORG: env.BOXD_ORG,
242
+ BOXD_BASE_URL: env.BOXD_BASE_URL,
243
+ BOXD_SNAPSHOT: env.BOXD_SNAPSHOT,
244
+ BOXD_DELETE_AFTER_SEC: env.BOXD_DELETE_AFTER_SEC,
245
+ BOXD_START_TIMEOUT_SEC: env.BOXD_START_TIMEOUT_SEC,
246
+ BOXD_STATUS_TIMEOUT_SEC: env.BOXD_STATUS_TIMEOUT_SEC,
247
+ BOXD_TEARDOWN_TIMEOUT_SEC: env.BOXD_TEARDOWN_TIMEOUT_SEC
248
+ } : {},
160
249
  ...controller.config,
161
250
  ...secrets
162
251
  };
@@ -232,11 +321,18 @@ async function updateRuntimeController2(id, input, actor = null) {
232
321
  if (await tx.get("SELECT id FROM runtime_controllers WHERE name = ? AND id != ?", [data.name, id]))
233
322
  throw new RuntimePoolError2("Controller name already exists", 409);
234
323
  const pools = await listRuntimePools2();
324
+ const oldConfig = JSON.parse(row.config);
325
+ const configChanged = Object.keys(data.config).length !== Object.keys(oldConfig).length || Object.entries(data.config).some(([key, value]) => oldConfig[key] !== value);
326
+ const secrets = patch.secretConfig !== undefined ? controllerSecrets(row) : {};
327
+ const secretsChanged = Object.entries(patch.secretConfig ?? {}).some(([key, value]) => value === null ? key in secrets : secrets[key] !== value);
328
+ if ((data.kind !== row.kind || data.placement !== row.placement || configChanged || secretsChanged) && (pools.some((pool) => pool.cache && pool.placements.includes(id)) || await tx.get("SELECT id FROM runtime_cache_releases WHERE controller_id = ? LIMIT 1", [
329
+ id
330
+ ])))
331
+ throw new RuntimePoolError2("Disable pool caches and wait for cleanup before changing controller configuration or placement", 409);
235
332
  if (pools.some((pool) => pool.placements.includes(id) && pool.kind !== data.kind))
236
333
  throw new RuntimePoolError2("Pool kind must equal controller kind");
237
334
  let encrypted = row.secretConfig;
238
335
  if (patch.secretConfig !== undefined) {
239
- const secrets = controllerSecrets(row);
240
336
  for (const [key, value] of Object.entries(patch.secretConfig)) {
241
337
  if (value === null)
242
338
  delete secrets[key];
@@ -268,6 +364,8 @@ async function deleteRuntimeController2(id) {
268
364
  throw new RuntimePoolError2("Controller not found", 404);
269
365
  if ((await listRuntimePools2()).some((pool) => pool.placements.includes(id)))
270
366
  throw new RuntimePoolError2("Controller has runtime pools", 409);
367
+ if (await tx.get("SELECT id FROM runtime_cache_releases WHERE controller_id = ? LIMIT 1", [id]))
368
+ throw new RuntimePoolError2("Controller has pending cache cleanup", 409);
271
369
  await revokeControllerTokens(id);
272
370
  await tx.run("DELETE FROM runtime_controllers WHERE id = ?", [id]);
273
371
  });
@@ -281,6 +379,9 @@ async function getRuntimePool2(id) {
281
379
  }
282
380
  async function validatePool(data) {
283
381
  supportedKind(data.kind);
382
+ if (data.cache && !(await createRuntimeProvider(data.kind)).traits.persistentCache) {
383
+ throw new RuntimePoolError2(`${data.kind} does not support persistent pool caches`);
384
+ }
284
385
  const controller = await getRuntimeController2(data.placements[0]);
285
386
  if (!controller)
286
387
  throw new RuntimePoolError2("Controller not found");
@@ -301,7 +402,7 @@ async function createRuntimePool2(input, actor = null, id = crypto.randomUUID())
301
402
  await validatePool(data);
302
403
  if (await tx.get("SELECT id FROM runtime_pools WHERE name = ? OR id = ?", [data.name, id]))
303
404
  throw new RuntimePoolError2("Pool already exists", 409);
304
- await tx.run(`INSERT INTO runtime_pools (id, name, kind, placements, image, lifecycle, idle_minutes, slots_per_runtime, max_runtimes, min_runtimes, delivery, env, resources, ttl_sec, enabled, created_by, updated_by) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
405
+ await tx.run(`INSERT INTO runtime_pools (id, name, kind, placements, image, lifecycle, idle_minutes, slots_per_runtime, max_runtimes, min_runtimes, delivery, env, resources, cache, ttl_sec, enabled, created_by, updated_by) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
305
406
  id,
306
407
  data.name,
307
408
  data.kind,
@@ -315,6 +416,7 @@ async function createRuntimePool2(input, actor = null, id = crypto.randomUUID())
315
416
  data.delivery,
316
417
  JSON.stringify(data.env),
317
418
  data.resources ? JSON.stringify(data.resources) : null,
419
+ data.cache ? JSON.stringify({ ...data.cache, key: poolCacheKey(id, crypto.randomUUID()) }) : null,
318
420
  data.ttlSec,
319
421
  Number(data.enabled),
320
422
  actor,
@@ -335,7 +437,13 @@ async function updateRuntimePool2(id, input, actor = null) {
335
437
  await validatePool(data);
336
438
  if (await tx.get("SELECT id FROM runtime_pools WHERE name = ? AND id != ?", [data.name, id]))
337
439
  throw new RuntimePoolError2("Pool name already exists", 409);
338
- await tx.run(`UPDATE runtime_pools SET name = ?, kind = ?, placements = ?, image = ?, resolved_image = ?, lifecycle = ?, idle_minutes = ?, slots_per_runtime = ?, max_runtimes = ?, min_runtimes = ?, delivery = ?, env = ?, resources = ?, ttl_sec = ?, enabled = ?, updated_by = COALESCE(?, updated_by), updated_at = ? WHERE id = ?`, [
440
+ const cache = data.cache ? {
441
+ ...data.cache,
442
+ key: existing.cache && data.placements[0] === existing.placements[0] ? (await getPoolCache(id)).key : poolCacheKey(id, crypto.randomUUID())
443
+ } : null;
444
+ if (existing.cache && (!data.cache || data.placements[0] !== existing.placements[0]))
445
+ await queuePoolCacheRelease(existing, actor);
446
+ await tx.run(`UPDATE runtime_pools SET name = ?, kind = ?, placements = ?, image = ?, resolved_image = ?, lifecycle = ?, idle_minutes = ?, slots_per_runtime = ?, max_runtimes = ?, min_runtimes = ?, delivery = ?, env = ?, resources = ?, cache = ?, ttl_sec = ?, enabled = ?, updated_by = COALESCE(?, updated_by), updated_at = ? WHERE id = ?`, [
339
447
  data.name,
340
448
  data.kind,
341
449
  JSON.stringify(data.placements),
@@ -349,6 +457,7 @@ async function updateRuntimePool2(id, input, actor = null) {
349
457
  data.delivery,
350
458
  JSON.stringify(data.env),
351
459
  data.resources ? JSON.stringify(data.resources) : null,
460
+ cache ? JSON.stringify(cache) : null,
352
461
  data.ttlSec,
353
462
  Number(data.enabled),
354
463
  actor,
@@ -360,7 +469,8 @@ async function updateRuntimePool2(id, input, actor = null) {
360
469
  }
361
470
  async function deleteRuntimePool2(id, force = false, actor = null) {
362
471
  await getDbClient2().transaction(async (tx) => {
363
- if (!await getRuntimePool2(id))
472
+ const pool = await getRuntimePool2(id);
473
+ if (!pool)
364
474
  throw new RuntimePoolError2("Pool not found", 404);
365
475
  if (await tx.get("SELECT id FROM runtime_instances WHERE pool_id = ? AND status != 'offline' LIMIT 1", [id]))
366
476
  throw new RuntimePoolError2("Pool has non-offline runtimes. Scale to zero or disable the pool and wait for teardown before deletion.", 409);
@@ -369,6 +479,7 @@ async function deleteRuntimePool2(id, force = false, actor = null) {
369
479
  if (force) {
370
480
  await tx.run("UPDATE agents SET runtime_pool_id = NULL, lastUpdatedAt = ?, updated_by = COALESCE(?, updated_by) WHERE runtime_pool_id = ?", [new Date().toISOString(), actor, id]);
371
481
  }
482
+ await queuePoolCacheRelease(pool, actor);
372
483
  await tx.run("DELETE FROM runtime_pools WHERE id = ?", [id]);
373
484
  });
374
485
  }
@@ -450,21 +561,23 @@ var controllerColumns = `id, name, kind, placement, config, secret_config AS sec
450
561
  status, last_seen_at AS lastSeenAt, last_error AS lastError, last_error_at AS lastErrorAt,
451
562
  created_by AS createdBy, updated_by AS updatedBy, created_at AS createdAt, updated_at AS updatedAt`, poolColumns = `id, name, kind, placements, image, lifecycle, idle_minutes AS idleMinutes,
452
563
  slots_per_runtime AS slotsPerRuntime, max_runtimes AS maxRuntimes, min_runtimes AS minRuntimes,
453
- delivery, env, resources, ttl_sec AS ttlSec, resolved_image AS resolvedImage, enabled,
564
+ delivery, env, resources, cache, ttl_sec AS ttlSec, resolved_image AS resolvedImage, enabled,
454
565
  consecutive_failures AS consecutiveFailures, circuit_open_until AS circuitOpenUntil,
455
566
  last_error AS lastError, last_error_at AS lastErrorAt, created_by AS createdBy,
456
567
  updated_by AS updatedBy, created_at AS createdAt, updated_at AS updatedAt`;
457
568
  var init_db2 = __esm(() => {
458
569
  init_runtime_providers();
570
+ init_types5();
459
571
  init_types4();
460
572
  init_secret_scrubber();
461
573
  init_crypto();
462
574
  init_db4();
463
575
  init_agents();
464
576
  init_secret_registry();
577
+ init_cache_cleanup();
465
578
  init_errors();
466
579
  init_tokens();
467
580
  init_errors();
468
581
  });
469
582
 
470
- export { RuntimePoolError2, mintControllerToken, init_tokens, listRuntimeControllers2, getRuntimeController2, getRuntimeControllerTarget2, checkE2bControllerConfig2, createRuntimeController2, updateRuntimeController2, deleteRuntimeController2, listRuntimePools2, getRuntimePool2, createRuntimePool2, updateRuntimePool2, deleteRuntimePool2, bindAgentToPool2, listAgentsForPool2, getPoolForAgent2, resolvePoolDelivery2, createPoolAgent2, loadRuntimeControllerSecrets2, init_db2 };
583
+ export { getPoolCache, reconcileCacheReleases, init_cache_cleanup, RuntimePoolError2, mintControllerToken, init_tokens, listRuntimeControllers2, getRuntimeController2, getRuntimeControllerTarget2, checkE2bControllerConfig2, createRuntimeController2, updateRuntimeController2, deleteRuntimeController2, listRuntimePools2, getRuntimePool2, createRuntimePool2, updateRuntimePool2, deleteRuntimePool2, bindAgentToPool2, listAgentsForPool2, getPoolForAgent2, resolvePoolDelivery2, createPoolAgent2, loadRuntimeControllerSecrets2, init_db2 };
@@ -4,7 +4,7 @@ import {
4
4
  } from "./cli-0726awxw.js";
5
5
  import {
6
6
  summarizeSession
7
- } from "./cli-a47xy8eq.js";
7
+ } from "./cli-faxe6thg.js";
8
8
  import {
9
9
  getMemoryRaterNames,
10
10
  init_memory_raters,
@@ -12,7 +12,7 @@ import {
12
12
  SteeringBlockedError,
13
13
  init_steering2,
14
14
  init_db4
15
- } from "./cli-1ayk1eas.js";
15
+ } from "./cli-k2gzwsj2.js";
16
16
  import {
17
17
  isBlockExternalEnabled2,
18
18
  invalidateChannelExternality2,
@@ -20,7 +20,7 @@ import {
20
20
  shouldBlockChannel2,
21
21
  leaveExternalChannel2,
22
22
  init_external_channel
23
- } from "./cli-mmwm7zbf.js";
23
+ } from "./cli-w6dt9ged.js";
24
24
  import {
25
25
  noteSlackInboundSideEffect,
26
26
  ignoreSlackInbound,
@@ -36,7 +36,7 @@ import {
36
36
  init_render_v2,
37
37
  registerTreeMessage,
38
38
  init_watcher
39
- } from "./cli-wvaawacd.js";
39
+ } from "./cli-waqbxg08.js";
40
40
  import {
41
41
  workflowEventBus2,
42
42
  init_event_bus
@@ -55,15 +55,13 @@ import {
55
55
  routeMessage,
56
56
  extractTaskFromMessage,
57
57
  init_router,
58
- shouldSkipLeftSlackThread,
59
- init_left_threads,
60
58
  extractSlackMessageText,
61
59
  slackInboundMessageText,
62
60
  collectSlackMessageFiles,
63
61
  init_message_text,
64
62
  dispatchPre2,
65
63
  init_dispatcher
66
- } from "./cli-1338796d.js";
64
+ } from "./cli-shpbx5ee.js";
67
65
  import {
68
66
  wasEventSeen,
69
67
  init_event_dedup,
@@ -74,13 +72,21 @@ import {
74
72
  getBufferMessageCount,
75
73
  instantFlush,
76
74
  init_thread_buffer
77
- } from "./cli-3h4nhjn8.js";
75
+ } from "./cli-p5gp8pcx.js";
78
76
  import {
79
77
  enrichSlackUserEmail,
80
78
  resolveSlackUserId,
81
79
  rewriteSlackMentions,
82
80
  init_enrich
83
- } from "./cli-nmbmy64z.js";
81
+ } from "./cli-xbbndvjy.js";
82
+ import {
83
+ isSlackLeaveThreadDisabled,
84
+ SLACK_LEFT_THREAD_CONFIRMATION,
85
+ isSlackLeaveThreadCommand,
86
+ leaveSlackThread,
87
+ shouldSkipLeftSlackThread,
88
+ init_left_threads
89
+ } from "./cli-gdhpcbhf.js";
84
90
  import {
85
91
  resolveTemplate,
86
92
  init_resolver
@@ -299,6 +305,22 @@ function registerMessageHandler2(app) {
299
305
  return ignoreSlackInbound("unauthorized_user");
300
306
  }
301
307
  const botMentioned = !!cachedBotUserId && !!msg.text?.includes(`<@${cachedBotUserId}>`);
308
+ if (msg.thread_ts && !isSlackLeaveThreadDisabled() && isSlackLeaveThreadCommand(msg.text, cachedBotUserId) && (await getMostRecentTaskInThread2(msg.channel, msg.thread_ts) !== null || await wasThreadStartedBySwarm(client, msg.channel, msg.thread_ts))) {
309
+ noteSlackInboundSideEffect("thread_leave");
310
+ await leaveSlackThread(msg.channel, msg.thread_ts, { slackUserId: msg.user });
311
+ console.log(`[Slack] Left thread ${msg.channel}/${msg.thread_ts}: !leave from ${msg.user}`);
312
+ try {
313
+ await client.chat.postEphemeral({
314
+ channel: msg.channel,
315
+ user: msg.user,
316
+ thread_ts: msg.thread_ts,
317
+ text: SLACK_LEFT_THREAD_CONFIRMATION
318
+ });
319
+ } catch (error) {
320
+ console.error("[Slack] Failed to confirm !leave:", error);
321
+ }
322
+ return;
323
+ }
302
324
  if (await shouldSkipLeftSlackThread(msg.channel, msg.thread_ts, botMentioned)) {
303
325
  console.log(`[Slack] Skipping message in left thread ${msg.channel}/${msg.thread_ts}`);
304
326
  return ignoreSlackInbound("thread_left");
@@ -7,21 +7,21 @@ import {
7
7
  tierConfigKey,
8
8
  init_model_tier_keys,
9
9
  init_db4
10
- } from "./cli-1ayk1eas.js";
10
+ } from "./cli-k2gzwsj2.js";
11
11
  import {
12
12
  ensureRbacSeedsSynced2,
13
13
  init_rbac_roles
14
- } from "./cli-8hs41zy2.js";
14
+ } from "./cli-rmmmrjkd.js";
15
15
  import {
16
16
  seedPricingFromModelsDev,
17
17
  init_seed_pricing
18
- } from "./cli-xtjhfmpc.js";
18
+ } from "./cli-c60vetmm.js";
19
19
  import {
20
20
  MODEL_TIERS,
21
21
  DEFAULT_MODEL_TIER_MAP,
22
22
  ProviderNameSchema,
23
23
  init_types4
24
- } from "./cli-7wspm5gm.js";
24
+ } from "./cli-nhrvpaj7.js";
25
25
  import {
26
26
  __esm
27
27
  } from "./cli-242037k3.js";
@@ -63,14 +63,14 @@ import {
63
63
  getStaleApprovalRequests2,
64
64
  upsertKv2,
65
65
  init_db4
66
- } from "./cli-1ayk1eas.js";
66
+ } from "./cli-k2gzwsj2.js";
67
67
  import {
68
68
  listRuntimePools2,
69
69
  init_db2
70
- } from "./cli-mry0qzym.js";
70
+ } from "./cli-yn4kxs06.js";
71
71
  import {
72
72
  remediateStalledRuntime
73
- } from "./cli-rqkxrmgw.js";
73
+ } from "./cli-8snvgs5r.js";
74
74
  import {
75
75
  repointTrackerSyncBySwarmId,
76
76
  init_tracker,
@@ -100,13 +100,13 @@ import {
100
100
  init_approval_cancel,
101
101
  canClaim,
102
102
  init_budget_admission
103
- } from "./cli-1338796d.js";
103
+ } from "./cli-shpbx5ee.js";
104
104
  import {
105
105
  runScriptWithRunCredential,
106
106
  init_run_credential,
107
107
  runSavedScriptAsAgent,
108
108
  init_run_saved
109
- } from "./cli-0bxqnvq9.js";
109
+ } from "./cli-hr2e2fft.js";
110
110
  import {
111
111
  runtimeStaleThresholdMinutes,
112
112
  countActiveRuntimeInstancesForAgent,
@@ -115,7 +115,7 @@ import {
115
115
  init_multi_runtime,
116
116
  createApprovalFollowUpTask,
117
117
  init_approval_notifications
118
- } from "./cli-spknvxbq.js";
118
+ } from "./cli-8bc1w0tw.js";
119
119
  import {
120
120
  isMultiRuntimeEnabled,
121
121
  init_multi_runtime2
@@ -124,13 +124,13 @@ import {
124
124
  recordIdentityEvent,
125
125
  mintToken,
126
126
  init_users
127
- } from "./cli-bhjt02p8.js";
127
+ } from "./cli-drr5v6av.js";
128
128
  import {
129
129
  TERMINAL_TASK_STATUSES,
130
130
  OPEN_TASK_STATUSES,
131
131
  SUPERSEDED_WORKFLOW_TASK_REASON,
132
132
  init_types4
133
- } from "./cli-7wspm5gm.js";
133
+ } from "./cli-nhrvpaj7.js";
134
134
  import {
135
135
  DEFAULT_OPENROUTER_BASE_URL,
136
136
  getOpenRouterBaseUrl,
@@ -145,7 +145,7 @@ import {
145
145
  import {
146
146
  init_package,
147
147
  package_default
148
- } from "./cli-tqgg40ek.js";
148
+ } from "./cli-e3r2neck.js";
149
149
  import {
150
150
  isEnvFlagEnabled,
151
151
  init_env_flag