@desplega.ai/agent-swarm 1.172.0 → 1.173.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 (214) hide show
  1. package/dist/{acp-adapter-fpecx1g1.js → acp-adapter-ccm9xrep.js} +8 -8
  2. package/dist/{actions-pw87a1a8.js → actions-sgeyv08k.js} +44 -19
  3. package/dist/{amp-adapter-8jem2bc0.js → amp-adapter-gpxp3kc9.js} +1 -1
  4. package/dist/{anthropic-messages-8ee2f22q.js → anthropic-messages-r6czkjv1.js} +7 -7
  5. package/dist/{app-wmf0m843.js → app-km9qnv2f.js} +6 -4
  6. package/dist/{assistant-emp1e108.js → assistant-5r8tcvvd.js} +44 -22
  7. package/dist/{boot-reembed-4ymn9atn.js → boot-reembed-16rv9843.js} +4 -3
  8. package/dist/{boot-reembed-1de4f4aj.js → boot-reembed-swwzdgd7.js} +4 -3
  9. package/dist/{boot-scrub-sweep-adhk1s8c.js → boot-scrub-sweep-zkr6vkqb.js} +5 -4
  10. package/dist/{boot-seeds-8q637aew.js → boot-seeds-d8sp49t2.js} +7 -6
  11. package/dist/{claude-adapter-t26cv8a4.js → claude-adapter-yzzzh8jp.js} +9 -9
  12. package/dist/{claude-sdk-session-gsfsh662.js → claude-sdk-session-4whxere4.js} +9458 -9164
  13. package/dist/{cli-g4f5pj26.js → cli-0a7mm3zp.js} +92 -10
  14. package/dist/{cli-pj6x9qce.js → cli-0kxf81jj.js} +1 -1
  15. package/dist/{cli-kb4ehzx5.js → cli-1w0vj3gw.js} +4 -4
  16. package/dist/{cli-e0a9sk00.js → cli-3nxdmjrc.js} +1 -1
  17. package/dist/{cli-6jb2rf77.js → cli-42qhyvwx.js} +3 -3
  18. package/dist/{cli-esnpehf5.js → cli-5er5gjbm.js} +4 -4
  19. package/dist/{cli-04emfe2q.js → cli-5wpw4rab.js} +1 -1
  20. package/dist/{cli-aspcaef3.js → cli-6r2f7edk.js} +4 -4
  21. package/dist/{cli-xczpdp9e.js → cli-6thk4jz3.js} +1 -1
  22. package/dist/{cli-j6kpj9az.js → cli-7a93cv8c.js} +1458 -48
  23. package/dist/{cli-k46r9hmk.js → cli-94b48jhk.js} +2 -2
  24. package/dist/{cli-gp1rtyvk.js → cli-9xf7fdtp.js} +2 -2
  25. package/dist/{cli-qsztpfry.js → cli-anzdk0z4.js} +1 -1
  26. package/dist/{cli-cceskcvt.js → cli-b07hr3bt.js} +8 -8
  27. package/dist/{cli-c2pq2rjb.js → cli-bv2etw2y.js} +2 -2
  28. package/dist/{cli-hwwvy36w.js → cli-c3rk1v0x.js} +3 -3
  29. package/dist/{cli-tgpfnm6r.js → cli-fmhj1ehj.js} +53 -13
  30. package/dist/{cli-r8smj8b8.js → cli-jpc4r224.js} +1 -1
  31. package/dist/{cli-4nz8p1p5.js → cli-m89t9jdf.js} +5 -5
  32. package/dist/{cli-bf7485pm.js → cli-na2pxe4f.js} +1 -1
  33. package/dist/{cli-prrt9fa0.js → cli-ne7smj1b.js} +4 -4
  34. package/dist/{cli-cf69s3ew.js → cli-nwrdx840.js} +2 -2
  35. package/dist/cli-p0sg24zp.js +16 -0
  36. package/dist/{cli-gj81e47t.js → cli-phcqp1b9.js} +1 -1
  37. package/dist/{cli-5rv1j9ga.js → cli-qm1448f9.js} +51 -5
  38. package/dist/{cli-8hzfb6xz.js → cli-r0byd61h.js} +7 -7
  39. package/dist/{cli-nyhb1r6x.js → cli-r4fqfpwf.js} +3 -3
  40. package/dist/{cli-1hgat6pa.js → cli-rfs4vddv.js} +5 -5
  41. package/dist/{cli-ztrv9y21.js → cli-rfz2ve55.js} +861 -246
  42. package/dist/{cli-pstq9888.js → cli-s8z6x4b4.js} +22 -21
  43. package/dist/{cli-j1pmc07z.js → cli-saqyage0.js} +92 -16
  44. package/dist/{cli-zxm9p3x4.js → cli-srqq3gc5.js} +1 -1
  45. package/dist/{cli-9xsmdpdt.js → cli-tcc4wd5d.js} +136 -42
  46. package/dist/cli-v3zhnxsb.js +263 -0
  47. package/dist/{cli-388egyf6.js → cli-w1apjecb.js} +1 -1
  48. package/dist/{cli-g6t9texm.js → cli-wrh08zjd.js} +4 -4
  49. package/dist/{cli-8vs9trd4.js → cli-x119kdba.js} +1 -1
  50. package/dist/{cli-nv4zd0b9.js → cli-xc7p7s3g.js} +1 -1
  51. package/dist/cli.js +16 -16
  52. package/dist/{codex-adapter-m4tgdysy.js → codex-adapter-r3dn4fp5.js} +6 -6
  53. package/dist/{codex-session-runner-ymwzm6ea.js → codex-session-runner-fwt793h4.js} +6 -6
  54. package/dist/{commands-n0hshcvs.js → commands-z8fq9qna.js} +14 -4
  55. package/dist/{controllers-connect-y07cqcvy.js → controllers-connect-3mf2btyj.js} +21 -19
  56. package/dist/{db-4w7tmt1g.js → db-qfpq4bt7.js} +4 -3
  57. package/dist/{db-hkqvrdcb.js → db-yyhqqrbf.js} +5 -4
  58. package/dist/{dispatcher-5sd69y14.js → dispatcher-x0x7qfcq.js} +20 -18
  59. package/dist/{dsh-adapter-2h8m4cab.js → dsh-adapter-34etvb5m.js} +1 -1
  60. package/dist/external-channel-h1fjecwe.js +51 -0
  61. package/dist/{grok-adapter-8m9yqzbq.js → grok-adapter-e7mr287e.js} +9 -9
  62. package/dist/{handlers-s20xr10r.js → handlers-znb9n7d4.js} +23 -21
  63. package/dist/{heartbeat-3k31q4g2.js → heartbeat-bm4qkn8d.js} +22 -20
  64. package/dist/{hook-gdn6a2fn.js → hook-254r4mza.js} +7 -7
  65. package/dist/{hook-ygwerrdh.js → hook-xaa3q80s.js} +8 -8
  66. package/dist/{http-jdteeg81.js → http-3dgrgp8y.js} +135 -64
  67. package/dist/{index-6ksewd5y.js → index-2ybk7khy.js} +618 -120
  68. package/dist/{index-tsszt7g9.js → index-bdsqa799.js} +22 -20
  69. package/dist/{index-e0snym4t.js → index-fx3jqq1e.js} +20 -18
  70. package/dist/{index-vm3bm9t7.js → index-g2byveez.js} +20 -18
  71. package/dist/{index-ffqzqgwb.js → index-jd7sejm2.js} +4 -3
  72. package/dist/{keepalive-jekc896t.js → keepalive-6ywhpja1.js} +6 -5
  73. package/dist/{lead-4k9s9szx.js → lead-cw45n21s.js} +32 -30
  74. package/dist/{maintenance-shazch4n.js → maintenance-ss1a1ge9.js} +4 -3
  75. package/dist/node-c9we95xf.js +1 -1
  76. package/dist/{oauth-refresh-sweep-5gb36kn8.js → oauth-refresh-sweep-3c6f8vyy.js} +5 -4
  77. package/dist/{onboard-ydrbnvww.js → onboard-8hzdhc1k.js} +2 -2
  78. package/dist/{opencode-adapter-5zh0he20.js → opencode-adapter-qbchbcfz.js} +6 -6
  79. package/dist/{otel-impl-6pf5cv86.js → otel-impl-e6mnvc4v.js} +7 -2
  80. package/dist/{pi-mono-adapter-ef9wwx9m.js → pi-mono-adapter-3c9g9snh.js} +6 -6
  81. package/dist/{pricing-refresh-s52nsa5q.js → pricing-refresh-gedkjdw0.js} +6 -5
  82. package/dist/{rbac-roles-aq3msh4e.js → rbac-roles-dt4vh1yy.js} +4 -3
  83. package/dist/{rbac-roles-q5gb5e8v.js → rbac-roles-eszdg6pm.js} +5 -4
  84. package/dist/{render-v2-pd1rg54q.js → render-v2-907cy6sa.js} +6 -4
  85. package/dist/{resume-gw4a2c6v.js → resume-42stcaz0.js} +11 -9
  86. package/dist/{setup-jda1ksdh.js → setup-adbc1c10.js} +2 -2
  87. package/dist/{virtual-modules-b3ga2m65.js → virtual-modules-rtmt494q.js} +3 -3
  88. package/dist/{work-objects-tb7ycye8.js → work-objects-wpj8ck95.js} +28 -21
  89. package/dist/{worker-njjccz5d.js → worker-bzdra9rf.js} +32 -30
  90. package/openapi.json +423 -7
  91. package/package.json +4 -4
  92. package/src/apps/catalog.generated.json +1309 -53
  93. package/src/apps/page-validator.ts +93 -31
  94. package/src/azure-devops/api.ts +94 -18
  95. package/src/azure-devops/auth.ts +32 -0
  96. package/src/azure-devops/boards-sync.ts +708 -0
  97. package/src/azure-devops/handlers.ts +52 -8
  98. package/src/azure-devops/html.ts +26 -0
  99. package/src/azure-devops/index.ts +15 -0
  100. package/src/azure-devops/templates.ts +86 -0
  101. package/src/azure-devops/types.ts +65 -1
  102. package/src/be/db.ts +22 -6
  103. package/src/be/migrations/213_script_connections_sql.sql +79 -0
  104. package/src/be/script-connections.ts +47 -8
  105. package/src/be/seed-skills/bundled-files.generated.json +10 -0
  106. package/src/be/seed-skills/index.ts +3 -0
  107. package/src/be/sql-connections.ts +118 -0
  108. package/src/be/swarm-config-guard.ts +1 -0
  109. package/src/commands/profile-sync.ts +5 -3
  110. package/src/commands/runner.ts +6 -2
  111. package/src/http/mcp-oauth.ts +6 -13
  112. package/src/http/pages-public.ts +3 -2
  113. package/src/http/pages.ts +2 -1
  114. package/src/http/route-def.ts +7 -6
  115. package/src/http/script-connection-proxy.ts +51 -4
  116. package/src/http/script-connections.ts +5 -2
  117. package/src/http/session-cost-recompute.ts +12 -2
  118. package/src/http/session-data.ts +4 -0
  119. package/src/http/webhooks.ts +24 -1
  120. package/src/jira/adf.ts +3 -1
  121. package/src/kv-reserved-namespaces.ts +2 -0
  122. package/src/oauth/mcp-wrapper.ts +10 -6
  123. package/src/otel-impl.ts +2 -1
  124. package/src/prompts/base-prompt.ts +3 -3
  125. package/src/providers/acp-targets.ts +1 -1
  126. package/src/providers/amp-adapter.ts +1 -1
  127. package/src/providers/claude-adapter.ts +27 -2
  128. package/src/providers/claude-flag-settings.ts +121 -0
  129. package/src/providers/claude-sdk-session.ts +7 -0
  130. package/src/providers/dsh-adapter.ts +1 -1
  131. package/src/providers/opencode-adapter.ts +26 -12
  132. package/src/providers/opencode-billing.ts +86 -0
  133. package/src/providers/opencode-swarm-plugin.ts +20 -0
  134. package/src/providers/pricing-sources.md +4 -1
  135. package/src/providers/types.ts +5 -0
  136. package/src/scripts-runtime/api-client.ts +15 -1
  137. package/src/scripts-runtime/api-types.ts +9 -1
  138. package/src/scripts-runtime/ctx.ts +1 -1
  139. package/src/scripts-runtime/mcp-client.ts +30 -19
  140. package/src/slack/actions.ts +29 -1
  141. package/src/slack/app.ts +14 -2
  142. package/src/slack/assistant.ts +36 -2
  143. package/src/slack/channel-join.ts +3 -16
  144. package/src/slack/commands.ts +9 -1
  145. package/src/slack/external-channel-egress.ts +113 -0
  146. package/src/slack/external-channel.ts +309 -0
  147. package/src/slack/handlers.ts +61 -0
  148. package/src/slack/render-v2.ts +40 -47
  149. package/src/slack/work-objects.ts +5 -0
  150. package/src/tasks/context-key.ts +34 -1
  151. package/src/telemetry.ts +2 -1
  152. package/src/tests/apps-catalog-feedback.test.ts +310 -0
  153. package/src/tests/apps-catalog-inputs.test.ts +70 -0
  154. package/src/tests/apps-catalog-table.test.ts +113 -0
  155. package/src/tests/azure-devops-boards-sync.test.ts +584 -0
  156. package/src/tests/azure-devops-html.test.ts +13 -0
  157. package/src/tests/azure-devops-webhook-malformed.test.ts +4 -0
  158. package/src/tests/claude-adapter-binary.test.ts +139 -0
  159. package/src/tests/claude-flag-settings.test.ts +106 -0
  160. package/src/tests/claude-sdk-lifecycle.test.ts +142 -1
  161. package/src/tests/claude-sdk-process.fixture.ts +7 -0
  162. package/src/tests/context-key.test.ts +32 -0
  163. package/src/tests/deferred-task-wake.test.ts +52 -4
  164. package/src/tests/docs-index-footprint.test.js +3 -3
  165. package/src/tests/dsh-adapter.test.ts +1 -1
  166. package/src/tests/fixtures/azure-boards/workitem.commented.json +89 -0
  167. package/src/tests/fixtures/azure-boards/workitem.created.json +81 -0
  168. package/src/tests/fixtures/azure-boards/workitem.deleted.json +70 -0
  169. package/src/tests/fixtures/azure-boards/workitem.restored.json +82 -0
  170. package/src/tests/fixtures/azure-boards/workitem.updated.json +130 -0
  171. package/src/tests/fixtures/catalog-feedback-definition.json.txt +860 -0
  172. package/src/tests/fixtures/catalog-inputs-definition.json.txt +910 -0
  173. package/src/tests/fixtures/catalog-table-definition.json.txt +468 -0
  174. package/src/tests/fixtures/runner-identity-refresh.ts +3 -0
  175. package/src/tests/node-env-runtime.test.ts +98 -0
  176. package/src/tests/opencode-adapter.test.ts +132 -1
  177. package/src/tests/opencode-billing.test.ts +28 -0
  178. package/src/tests/runner-identity-refresh.test.ts +3 -0
  179. package/src/tests/script-connections-sql.test.ts +675 -0
  180. package/src/tests/script-connections.test.ts +5 -1
  181. package/src/tests/session-cost-recompute-unit.test.ts +48 -0
  182. package/src/tests/slack-channel-join.test.ts +4 -1
  183. package/src/tests/slack-external-channel-config.test.ts +65 -0
  184. package/src/tests/slack-external-channel-egress.test.ts +237 -0
  185. package/src/tests/slack-external-channel-guard.test.ts +280 -0
  186. package/src/tests/slack-external-channel-tools.test.ts +173 -0
  187. package/src/tests/slack-external-channel.test.ts +370 -0
  188. package/src/tests/slack-render-v2.test.ts +86 -10
  189. package/src/tests/spec-base-url.test.ts +16 -1
  190. package/src/tests/vendored-openapi.test.ts +16 -1
  191. package/src/tools/defer-task.ts +17 -0
  192. package/src/tools/slack-post.ts +6 -0
  193. package/src/tools/slack-read.ts +8 -0
  194. package/src/tools/slack-reply.ts +6 -0
  195. package/src/tools/slack-start-thread.ts +6 -0
  196. package/src/tools/slack-update.ts +6 -0
  197. package/src/tools/slack-upload-file.ts +6 -0
  198. package/src/utils/node-env.ts +24 -0
  199. package/templates/skills/apps/SKILL.md +742 -0
  200. package/templates/skills/apps/content.md +52 -21
  201. package/templates/skills/qa-loom/config.json +14 -0
  202. package/templates/skills/qa-loom/content.md +187 -0
  203. package/templates/skills/qa-loom/files/build-loom.mjs +221 -0
  204. package/templates/skills/qa-loom/files/run-qa.sh +57 -0
  205. package/templates/skills/slack-interaction/content.md +4 -0
  206. package/dist/{azure-openai-responses-ap1gwxgr.js → azure-openai-responses-ygfreq4t.js} +5 -5
  207. package/dist/{cli-4fnb6884.js → cli-h7k0xtry.js} +3 -3
  208. package/dist/{cli-5rqrj7q0.js → cli-pw7ebjdt.js} +0 -0
  209. package/dist/{google-generative-ai-7pavrbv7.js → google-generative-ai-szdxbpqg.js} +1 -1
  210. package/dist/{google-vertex-3f1jk41f.js → google-vertex-qzw3p36d.js} +1 -1
  211. package/dist/{openai-codex-responses-33qhkkdy.js → openai-codex-responses-3bk0grnr.js} +4 -4
  212. package/dist/{openai-completions-s88xm3ns.js → openai-completions-5d4jpakc.js} +9 -9
  213. package/dist/{openai-responses-7xd2f2e2.js → openai-responses-krb51f59.js} +5 -5
  214. package/dist/{pi-messages-xszk613n.js → pi-messages-x9gzynm1.js} +3 -3
@@ -15,7 +15,7 @@ import {
15
15
  } from "./cli-zm7njwzd.js";
16
16
  import {
17
17
  summarizeSession
18
- } from "./cli-cf69s3ew.js";
18
+ } from "./cli-nwrdx840.js";
19
19
  import {
20
20
  resolveCodexPrompt
21
21
  } from "./cli-ptcz1cqy.js";
@@ -61,7 +61,7 @@ import {
61
61
  import {
62
62
  init_package,
63
63
  package_default
64
- } from "./cli-esnpehf5.js";
64
+ } from "./cli-5er5gjbm.js";
65
65
  import {
66
66
  init_env_flag,
67
67
  isEnvFlagEnabled
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  buildModelsDevSeedRows,
3
3
  loadModelsDevCache
4
- } from "./cli-r8smj8b8.js";
4
+ } from "./cli-jpc4r224.js";
5
5
  import {
6
6
  createLogEntry,
7
7
  getActivePricingRow,
8
8
  getDbClient,
9
9
  init_db1 as init_db,
10
10
  insertPricingRow
11
- } from "./cli-tgpfnm6r.js";
11
+ } from "./cli-fmhj1ehj.js";
12
12
  import {
13
13
  init_runtime_model_catalog,
14
14
  setRuntimeModelCatalog
@@ -6,7 +6,7 @@ import {
6
6
  getDb,
7
7
  getDbClient,
8
8
  init_db1 as init_db
9
- } from "./cli-tgpfnm6r.js";
9
+ } from "./cli-fmhj1ehj.js";
10
10
  import {
11
11
  init_env_flag,
12
12
  isEnvFlagEnabled
@@ -5413,7 +5413,7 @@ function amazonBedrockProvider() {
5413
5413
  }
5414
5414
 
5415
5415
  // node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.js
5416
- var openAICompletionsApi = () => lazyApi(() => import("./openai-completions-s88xm3ns.js"));
5416
+ var openAICompletionsApi = () => lazyApi(() => import("./openai-completions-5d4jpakc.js"));
5417
5417
 
5418
5418
  // node_modules/@earendil-works/pi-ai/dist/auth/helpers.js
5419
5419
  function envApiKeyAuth(name, envVars) {
@@ -5469,7 +5469,7 @@ function antLingProvider() {
5469
5469
  }
5470
5470
 
5471
5471
  // node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.js
5472
- var anthropicMessagesApi = () => lazyApi(() => import("./anthropic-messages-8ee2f22q.js"));
5472
+ var anthropicMessagesApi = () => lazyApi(() => import("./anthropic-messages-r6czkjv1.js"));
5473
5473
 
5474
5474
  // node_modules/@earendil-works/pi-ai/dist/auth/oauth/load.js
5475
5475
  var __rewriteRelativeImportExtension = function(path, preserveJsx) {
@@ -5604,7 +5604,7 @@ function anthropicProvider() {
5604
5604
  }
5605
5605
 
5606
5606
  // node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.js
5607
- var azureOpenAIResponsesApi = () => lazyApi(() => import("./azure-openai-responses-ap1gwxgr.js"));
5607
+ var azureOpenAIResponsesApi = () => lazyApi(() => import("./azure-openai-responses-ygfreq4t.js"));
5608
5608
 
5609
5609
  // node_modules/@earendil-works/pi-ai/dist/providers/azure.js
5610
5610
  function resolveAzureModel(model, options) {
@@ -5666,7 +5666,7 @@ function cerebrasProvider() {
5666
5666
  }
5667
5667
 
5668
5668
  // node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.js
5669
- var openAIResponsesApi = () => lazyApi(() => import("./openai-responses-7xd2f2e2.js"));
5669
+ var openAIResponsesApi = () => lazyApi(() => import("./openai-responses-krb51f59.js"));
5670
5670
 
5671
5671
  // node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js
5672
5672
  var CLOUDFLARE_API_KEY = "CLOUDFLARE_API_KEY";
@@ -5870,7 +5870,7 @@ function githubCopilotProvider() {
5870
5870
  }
5871
5871
 
5872
5872
  // node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.js
5873
- var googleGenerativeAIApi = () => lazyApi(() => import("./google-generative-ai-7pavrbv7.js"));
5873
+ var googleGenerativeAIApi = () => lazyApi(() => import("./google-generative-ai-szdxbpqg.js"));
5874
5874
 
5875
5875
  // node_modules/@earendil-works/pi-ai/dist/providers/google.js
5876
5876
  function googleProvider() {
@@ -5885,7 +5885,7 @@ function googleProvider() {
5885
5885
  }
5886
5886
 
5887
5887
  // node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.js
5888
- var googleVertexApi = () => lazyApi(() => import("./google-vertex-3f1jk41f.js"));
5888
+ var googleVertexApi = () => lazyApi(() => import("./google-vertex-qzw3p36d.js"));
5889
5889
 
5890
5890
  // node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js
5891
5891
  var VERTEX_ADC_PATH = "~/.config/gcloud/application_default_credentials.json";
@@ -6142,7 +6142,7 @@ function openaiProvider() {
6142
6142
  }
6143
6143
 
6144
6144
  // node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.js
6145
- var openAICodexResponsesApi = () => lazyApi(() => import("./openai-codex-responses-33qhkkdy.js"));
6145
+ var openAICodexResponsesApi = () => lazyApi(() => import("./openai-codex-responses-3bk0grnr.js"));
6146
6146
 
6147
6147
  // node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.js
6148
6148
  function openaiCodexProvider() {
@@ -6360,7 +6360,7 @@ function qwenTokenPlanIndividualProvider() {
6360
6360
  }
6361
6361
 
6362
6362
  // node_modules/@earendil-works/pi-ai/dist/api/pi-messages.lazy.js
6363
- var piMessagesApi = () => lazyApi(() => import("./pi-messages-xszk613n.js"));
6363
+ var piMessagesApi = () => lazyApi(() => import("./pi-messages-x9gzynm1.js"));
6364
6364
 
6365
6365
  // node_modules/@earendil-works/pi-ai/dist/providers/radius-config.js
6366
6366
  var DEFAULT_RADIUS_GATEWAY = "https://radius.pi.dev";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  applyOpenRouterBaseUrlOverride
3
- } from "./cli-j1pmc07z.js";
3
+ } from "./cli-saqyage0.js";
4
4
  import {
5
5
  ACP_TARGET_IDS,
6
6
  getAcpTargetCatalogEntry,
@@ -45,7 +45,7 @@ import {
45
45
  import {
46
46
  init_package,
47
47
  package_default
48
- } from "./cli-esnpehf5.js";
48
+ } from "./cli-5er5gjbm.js";
49
49
  import {
50
50
  init_secret_scrubber,
51
51
  scrubSecrets
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  recordUnmappedIdentity,
3
3
  resolveIdentity
4
- } from "./cli-ztrv9y21.js";
4
+ } from "./cli-rfz2ve55.js";
5
5
  import {
6
6
  findOrCreateUserByEmail,
7
7
  findUserByExternalId,
8
8
  init_users,
9
9
  linkIdentity
10
- } from "./cli-e0a9sk00.js";
10
+ } from "./cli-3nxdmjrc.js";
11
11
  import {
12
12
  getKv,
13
13
  init_db1 as init_db,
14
14
  upsertKv
15
- } from "./cli-tgpfnm6r.js";
15
+ } from "./cli-fmhj1ehj.js";
16
16
 
17
17
  // src/slack/enrich.ts
18
18
  init_db();
@@ -36,7 +36,7 @@ import {
36
36
  init_profile_sync,
37
37
  matchesDefaultClaudeMd,
38
38
  matchesDefaultIdentityMd
39
- } from "./cli-nyhb1r6x.js";
39
+ } from "./cli-r4fqfpwf.js";
40
40
  import {
41
41
  init_steering_enabled,
42
42
  isSteeringEnabled
@@ -94,10 +94,14 @@ import {
94
94
  string,
95
95
  union
96
96
  } from "./cli-w5e1d1vv.js";
97
+ import {
98
+ getNodeEnv,
99
+ init_node_env
100
+ } from "./cli-p0sg24zp.js";
97
101
  import {
98
102
  init_package,
99
103
  package_default
100
- } from "./cli-esnpehf5.js";
104
+ } from "./cli-5er5gjbm.js";
101
105
  import {
102
106
  init_bus,
103
107
  realtimeBus
@@ -8327,6 +8331,14 @@ function azureDevOpsContextKey(input) {
8327
8331
  }
8328
8332
  return ["task", "trackers", "azure-devops", repositoryId, "pr", pullRequestId].join(SEPARATOR);
8329
8333
  }
8334
+ function azureDevOpsWorkItemContextKey(input) {
8335
+ const organization = assertSafePart(input.organization, "organization");
8336
+ const workItemId = assertSafePart(input.workItemId, "workItemId");
8337
+ if (!/^\d+$/.test(workItemId)) {
8338
+ throw new Error(`context-key: azure-devops "workItemId" must be a positive integer (got ${JSON.stringify(workItemId)})`);
8339
+ }
8340
+ return ["task", "trackers", "azure-devops", organization, "workitem", workItemId].join(SEPARATOR);
8341
+ }
8330
8342
  function linearContextKey(input) {
8331
8343
  const issueIdentifier = assertSafePart(input.issueIdentifier, "issueIdentifier");
8332
8344
  return ["task", "trackers", "linear", issueIdentifier].join(SEPARATOR);
@@ -8432,10 +8444,21 @@ function parseContextKey(key) {
8432
8444
  };
8433
8445
  }
8434
8446
  if (subFamily === "azure-devops") {
8435
- if (parts.length !== 6 || parts[4] !== "pr") {
8447
+ if (parts.length !== 6 || parts[4] !== "pr" && parts[4] !== "workitem") {
8436
8448
  throw new Error(`context-key: malformed azure-devops key: ${JSON.stringify(key)}`);
8437
8449
  }
8438
8450
  const idStr = parts[5];
8451
+ if (parts[4] === "workitem") {
8452
+ const workItemId = Number.parseInt(idStr, 10);
8453
+ if (!/^\d+$/.test(idStr) || !Number.isFinite(workItemId)) {
8454
+ throw new Error(`context-key: malformed azure-devops workItemId "${idStr}": ${JSON.stringify(key)}`);
8455
+ }
8456
+ return {
8457
+ family: "trackers",
8458
+ subFamily: "azure-devops",
8459
+ parts: { organization: parts[3], kind: "workitem", workItemId }
8460
+ };
8461
+ }
8439
8462
  const pullRequestId = Number.parseInt(idStr, 10);
8440
8463
  if (!Number.isFinite(pullRequestId)) {
8441
8464
  throw new Error(`context-key: malformed azure-devops pullRequestId "${idStr}": ${JSON.stringify(key)}`);
@@ -10463,8 +10486,8 @@ function getTelemetryEnvironment() {
10463
10486
  const explicit = process.env.DESPLEGA_TELEMETRY_ENV?.trim();
10464
10487
  if (explicit)
10465
10488
  return explicit;
10466
- if (false)
10467
- ;
10489
+ if (getNodeEnv() === "test")
10490
+ return "test";
10468
10491
  return "production";
10469
10492
  }
10470
10493
  function track(options) {
@@ -10557,6 +10580,7 @@ var init_telemetry = __esm(() => {
10557
10580
  init_config();
10558
10581
  init_telemetry_context();
10559
10582
  init_env_flag();
10583
+ init_node_env();
10560
10584
  init_org_website();
10561
10585
  init_request_auth_context();
10562
10586
  CLOUD_HOST_EXACT = new Set([
@@ -12370,7 +12394,7 @@ var init_runtime = __esm(() => {
12370
12394
  // src/telemetry-identity.ts
12371
12395
  async function loadUserRole(userId) {
12372
12396
  try {
12373
- const { getUserGrant } = await import("./rbac-roles-q5gb5e8v.js");
12397
+ const { getUserGrant } = await import("./rbac-roles-eszdg6pm.js");
12374
12398
  const grant = await getUserGrant(userId);
12375
12399
  const role = grant.grantsAll ? "admin" : "member";
12376
12400
  if (roleCache.size >= ROLE_CACHE_LIMIT) {
@@ -15297,6 +15321,7 @@ var init_swarm_config_guard = __esm(() => {
15297
15321
  "SLACK_DISABLE",
15298
15322
  "SLACK_RENDER_V2",
15299
15323
  "SLACK_RENDER_V2_DELEGATION",
15324
+ "SLACK_BLOCK_EXTERNAL_CHANNELS",
15300
15325
  "GITHUB_DISABLE",
15301
15326
  "GITLAB_DISABLE",
15302
15327
  "AZURE_DEVOPS_DISABLE",
@@ -16580,7 +16605,7 @@ async function loadSecretRegistry() {
16580
16605
  result.failed += 1;
16581
16606
  }
16582
16607
  try {
16583
- const { loadRuntimeControllerSecrets } = await import("./db-hkqvrdcb.js");
16608
+ const { loadRuntimeControllerSecrets } = await import("./db-yyhqqrbf.js");
16584
16609
  const loaded = await loadRuntimeControllerSecrets();
16585
16610
  result.runtimeController = loaded.count;
16586
16611
  result.failed += loaded.failed;
@@ -17582,15 +17607,30 @@ async function getSlackOutcomeMessage(taskId) {
17582
17607
  return row ? rowToSlackMessage(row) : null;
17583
17608
  }
17584
17609
  async function getResolvableDeferralOutcomes(limit2 = 50) {
17585
- const rows = await getDbClient().query(`SELECT card.*, wake.id AS wake_task_id
17586
- FROM slack_messages card
17587
- JOIN agent_tasks deferred ON deferred.id = card.task_id
17588
- JOIN agent_tasks wake ON wake.parentTaskId = deferred.id AND wake.taskType = 'deferred'
17610
+ const rows = await getDbClient().query(`WITH RECURSIVE chain(card_id, task_id) AS (
17611
+ SELECT card.id, deferred.id FROM slack_messages card
17612
+ JOIN agent_tasks deferred ON deferred.id = card.task_id
17613
+ WHERE card.kind = 'outcome' AND deferred.deferredAt IS NOT NULL
17614
+ AND card.deferral_resolved_at IS NULL AND card.finalized_at IS NOT NULL
17615
+ AND card.ts NOT LIKE 'pending:%'
17616
+ UNION
17617
+ SELECT chain.card_id, wake.id FROM chain
17618
+ JOIN agent_tasks parent ON parent.id = chain.task_id AND parent.deferredAt IS NOT NULL
17619
+ JOIN agent_tasks wake ON wake.parentTaskId = parent.id AND wake.taskType = 'deferred'
17620
+ )
17621
+ SELECT card.*, wake.id AS wake_task_id
17622
+ FROM chain
17623
+ JOIN slack_messages card ON card.id = chain.card_id
17624
+ JOIN agent_tasks wake ON wake.id = chain.task_id AND wake.id != card.task_id
17589
17625
  WHERE card.kind = 'outcome'
17590
17626
  AND card.finalized_at IS NOT NULL
17591
17627
  AND card.deferral_resolved_at IS NULL
17592
17628
  AND card.ts NOT LIKE 'pending:%'
17593
- AND deferred.deferredAt IS NOT NULL
17629
+ AND NOT EXISTS (
17630
+ SELECT 1 FROM agent_tasks child
17631
+ WHERE child.parentTaskId = wake.id AND child.taskType = 'deferred'
17632
+ )
17633
+ AND (wake.deferredAt IS NULL OR wake.finishedAt > card.updated_at)
17594
17634
  AND wake.status IN ('completed', 'failed', 'cancelled')
17595
17635
  ORDER BY wake.finishedAt ASC
17596
17636
  LIMIT ?`, [limit2]);
@@ -26151,4 +26191,4 @@ function getMemoryStore() {
26151
26191
  var embeddingProvider2 = null, memoryStore = null;
26152
26192
  var init_memory = () => {};
26153
26193
 
26154
- export { slackContextKey, agentmailContextKey, githubContextKey, gitlabContextKey, azureDevOpsContextKey, linearContextKey, buildJiraContextKey, scheduleContextKey, workflowContextKey, agentContextKey, pageContextKey, init_context_key, checkSlackRoutingCoherence, init_slack_routing, init_catalog, catalog_default, mapTriggerSurface, init_telemetry_context, TELEMETRY_PROXY_ORIGIN, normalizeOrgWebsite, orgLogoUrl, isFilledOrgLogoUrl, init_org_website, beginRequestAuthScope, setRequestAuth, getRequestAuth, getCurrentRequestAuth, runWithoutRequestAuth, getCurrentRequestUserId, init_request_auth_context, setTelemetryIngestObserver, isTelemetryEnabled, _resolveIntegrationType, _resolveIntegrationProvider, initTelemetry, setTelemetryRoleResolver, isTelemetryReady, track, trackRelayed, telemetry, emitIntegrationConnected, init_telemetry, auditAssetKeys, init_asset_key_audit, CredentialBindingSchema, placeholderForConfigKey, CredentialBroker, DEFAULT_CREDENTIAL_BINDINGS, init_credential_broker, encryptSecret, decryptSecret, getEncryptionKey, init_crypto, isInTransaction, init_db_client, breaksJsonValidity, scrubJsonValue, init_scrub_json, sealJson, init_sealed_json, getPromptTemplateDefaultDrift, init_default_drift, init_templates2 as init_templates, init_templates3 as init_templates1, isSqliteVecAvailable, resolveSqliteVecExtensionPath, __resetSqliteVecExtensionPathCacheForTests, initDb, getDb, closeDb, getDbClient, init_runtime, cachedUserRole, configureOrgDomainPersistence, recomputeOrgDomain, scheduleOrgDomainRecompute, init_telemetry_identity, resolveTriggerSurface, emitTaskTelemetry, init_telemetry_trigger, CODEX_AUTH_WATCH_NAMESPACE, codexAuthBenchMarkerKey, isCodexAuthFailureReason, init_codex_auth_failure, MASKED_SECRET_VALUE, init_config_secrets, HeartbeatExpiryError, init_heartbeat_expiry, isRuntimePoolsEnabled, init_runtime_pools_flag, normalizeDate, normalizeDateRequired, init_date_utils, rowToAgent, updateAgentCredentialState, updateAgentCredentialMissing, createAgent, getAgentById, EXTENSION_AGENT_ROLE, NOT_EXTENSION_AGENT_SQL, isExtensionAgent, extensionAgentAssignmentError, ReservedAgentRoleError, reservedRoleViolation, ExtensionAgentAssignmentError, getAllAgents, getAgentStatusCounts, getLeadAgent, updateAgentStatus, updateAgentMaxTasks, updateAgentProvider, setAgentHarnessProvider, updateAgentCredStatus, listAgentsWithCredStatusByProvider, getAgentHarnessProviders, updateAgentActivity, MAX_EMPTY_POLLS, incrementEmptyPollCount, resetEmptyPollCount, shouldBlockPolling, deleteAgent, getActiveTaskCount, hasCapacity, getRemainingCapacity, updateAgentStatusFromCapacity, isPoolAffinityEnforcementEnabled, buildRoutingAffinityFromAgent, isAgentEligibleForTask, getAgentDailyTaskCounts, init_agents, listApprovalRequestSummaries, getPendingApprovalVoteState, recordApprovalVotes, computeContentHash, createContextVersion, getLatestContextVersion, getContextVersion, getContextVersionHistory, setHumanFreeQueueListener, drainHumanFreeReclassifyQueue, init_human_free, rowToAgentTask, getTaskById, getChildTasks, hasNonTerminalResumeChild, getSupersededTasksWithoutResume, getSupersededTasksWithUnsettledDependents, hasNonTerminalRerouteDecisionChild, getTasksByAgentId, getAgentCurrentTask, getTasksByStatus, findTaskByVcs, findTaskByGitHub, getAllTasks, getTasksCount, getTaskStats, getCompletedSlackTasks, getPendingSlackRelayTasks, markSlackRelayAttempted, markSlackRelayDelivered, markFinalizedSlackRelaysDelivered, getRecentlyFinishedWorkerTasks, markTasksNotified, resetTasksNotified, getInProgressSlackTasks, getSlackTasksMissingTree, getInProgressTasksByContextKey, isLinearTrackerContextKey, findExistingLinearTrackerContextWork, getLatestTaskByContextKey, getLatestScriptRunStepTaskByContextKey, getAgentWorkingOnThread, getLatestActiveTaskInThread, getLatestLeadTaskInThread, getMostRecentTaskInThread, findCompletedTaskInThread, findRecentCancelledTaskInThread, init_read, onTaskStarted, init_task_lifecycle_events, channelTopic, addWorkerSubscription, removeWorkerSubscription, listSubscribedWorkerAgents, init_channels, publishWorkerNudge, init_worker_nudges, createTask, getPendingTaskForAgent, assignUnassignedTaskPending, startTask, updateTaskClaudeSessionId, recordTaskProviderIfUnset, updateTaskTitle, completeTask, failTask, overwriteTerminalTaskResultText, cancelTask, supersedeTask, settleSupersededTaskDependents, backfillSupersedeTaskResumeTaskId, pauseTask, resumeTask, getPausedTasksForAgent, getOrphanedInProgressTasksForAgent, resetOrphanedInProgressTasksForAgent, getRecentlyCancelledTasksForAgent, deleteTask, updateTaskProgress, getChildWorkflowRunId, getWorkflowRunParent, getWorkflowRunLineage, getSettledChildRunParentSteps, init_workflow_runs, resolveQuickJSPoolSize, init_quickjs_pool_config, SLACK_REACTION_DEFAULTS, SLACK_REACTION_CONFIG_KEYS, reactionName, init_reaction_shortcode, API_DRAINING_HEADER, API_DRAIN_MAX_MS_LIMIT, isApiDrainingResponse, init_api_drain, parseEnabledTools, init_enabled_tools, parseTaskToolManifest, selectTaskTools, init_task_tool_manifest, tierConfigKey, init_model_tier_keys, isInternalConfigKey, internalConfigKeyError, isReservedConfigKey, reservedKeyError, MAX_DB_RETENTION_DAYS, DB_RETENTION_TUNING_BOUNDS, validateRuntimeTokenTtlHours, validateControllerTokenTtlDays, validateControllerGraceSec, validateConfigValue, init_swarm_config_guard, getDefaultAuthorizationIdForProvider, getOAuthApp, getOAuthAppById, getOAuthAppIdByProvider, createOAuthApp, updateOAuthAppById, upsertOAuthApp, listAuthorizationsForApp, getAuthorizationById, upsertAuthorization, updateAuthorizationTokens, updateAuthorizationIdentity, deleteAuthorizationById, deleteAuthorizationsForApp, createOAuthPending, consumeOAuthPending, gcOAuthPending, markAuthorizationRefreshFailed, getOAuthTokens, listAuthorizationSweepRows, listKeepAliveAuthorizations, deleteOAuthTokens, acquireOAuthRefreshLock, releaseOAuthRefreshLock, init_oauth, OpenAI, init_openai, CANDIDATE_SET_MULTIPLIER, isGraphExpansionEnabled, EMBEDDING_DIMENSIONS, init_constants, LONGTERM_ROOT, MEMORY_KEY_PATTERN, MEMORY_KEY_PATTERN_MESSAGE, MEMORY_KEY_MAX_LENGTH, isLongtermKey, longtermKeyError, isConsolidatedKey, consolidatedKeyMessage, resolveStoreKey, init_key_paths, computeScore, rerank, init_reranker, rowToCandidate, init_sqlite_store, getEmbeddingProvider, resetEmbeddingProvider, getMemoryStore, init_memory, embeddingProvider, embedScript, searchScripts, reembedAllScripts, init_embeddings2 as init_embeddings, upsertScriptByName, getScript, getScriptById, getScriptVersion, listScripts, listScriptVersions, deleteScript, touchScratchScriptLastUsed, restoreScratchScriptLastUsedIfUnchanged, createScriptApi, listScriptApisForScript, getScriptApiById, getScriptApiSecret, updateScriptApi, rotateScriptApiSecret, deleteScriptApi, recordScriptApiUsage, init_db, oauthSecretName, registerStoredSecret, loadSecretRegistry, init_secret_registry, SteeringRequestError, isSteeringEnabled2 as isSteeringEnabled, getTaskSteeringFields, getTaskSteeringFieldsForTasks, promotePendingSteeringForTask, markSteeringUndeliverable, requestSteering, init_steering, WorkflowReplayStateError, init_workflow_replay, SESSION_ACTIVITY_REFRESH_MIN_INTERVAL_MS, refreshActiveSessionOnActivity, recordKeySeatMismatch, getScriptRunExecutionArgs, getSlackRenderV2ActivatedAt, ensureSlackRenderV2Activation, getSlackDelegationActivatedAt, ensureSlackDelegationActivation, isPendingSlackMessage, isSettledSlackMessage, recordSlackMessage, reserveSlackMessage, bindSlackMessageTimestamp, updateSlackMessageRecord, markSlackTreeRendered, deleteSlackMessageRecord, getSlackTreeMessage, getSlackTreeMessageByThread, getSlackOutcomeMessage, getResolvableDeferralOutcomes, markSlackDeferralResolved, noteSlackOutcomeDeliveryFailure, abandonSlackOutcomeDelivery, getSlackTreeMessages, getSlackMessageByChannelTs, getSlackTasksInThread, listSlackThreadsAwaitingHuman, isSlackThreadAwaitingHuman, markTaskSlackReplySent, setSlackMessageTracking, updateTaskVcs, insertTaskAttachment, recordTaskPullRequestAttachments, getAssetKeyMappingByProvider, upsertAssetKeyMapping, getAssetKeyMapping, listAssetSummaries, moveAssetKey, deleteTaskAttachment, replaceTaskAttachment, getTaskAttachments, createSteeringMessage, getSteeringMessagesForTask, getSteeringMessageById, getPendingSteeringForTask, getPendingSteeringForAgent, markSteeringDelivered, markSteeringHandled, markSteeringPromoted, cancelPendingSteeringForTask, hasPendingSteering, getAgentWithTasks, getAllAgentsWithTasks, createLogEntry, getLogsByAgentId, getLogsByTaskId, getLogsByTaskIdAndEventType, getLogsByTaskIdChronological, getLogsByEventType, getAllLogs, findRecentSimilarTasks, createTaskExtended, claimTask, releaseTask, acceptTask, rejectTask, moveTaskToBacklog, moveTaskFromBacklog, promoteDraftTask, refreshDraftTaskLease, promoteAbandonedDraftTasks, releaseStaleReviewingTasks, releaseStaleOfferedTasksForOfflineAgents, getOfferedTasksForAgent, claimOfferedTask, getUnassignedTasksCount, getUnassignedTaskIds, getUnassignedTaskIdsForAgent, checkDependencies, getDependentTasks, cascadeFailDependents, updateAgentProfile, updateAgentName, createChannel, getMessageById, getChannelById, getChannelByName, getAllChannels, deleteChannel, postMessage, getChannelMessages, updateReadState, getLastReadAt, getUnreadMessages, getMentionsForAgent, getInboxSummary, claimMentions, releaseMentionProcessing, releaseStaleMentionProcessing, createService, getServiceById, getServiceByAgentAndName, getServicesByAgentId, getAllServices, updateServiceStatus, deleteService, upsertService, deleteServicesByAgentId, createSessionLogs, getSessionLogsByTaskId, getSessionLogsBySession, createSessionCost, getSessionCostsByTaskId, getSessionCostsByAgentId, getAllSessionCosts, getSessionCostsFiltered, UNATTRIBUTED_USER_ID, getSessionCostSummary, getAttributionByPerson, getDashboardCostSummary, createInboxMessage, getInboxMessageById, getUnreadInboxMessages, claimInboxMessages, markInboxMessageRead, markInboxMessageResponded, markInboxMessageDelegated, releaseStaleProcessingInbox, getConcurrentContext, getScheduledTasks, getScheduledTaskById, getScheduledTaskByName, createScheduledTask, updateScheduledTask, deleteScheduledTask, getDueScheduledTasks, autoEncryptLegacyPlaintextSecrets, maskSecrets, getSwarmConfigs, getInjectableGlobalConfigs, getSwarmConfigById, getSwarmConfigLookupById, upsertSwarmConfig, emitBuiltInIntegrationConnectedOnce, deleteSwarmConfig, deleteSwarmConfigByKey, getResolvedConfig, getSwarmRepos, getSwarmRepoById, getSwarmRepoByName, getSwarmRepoByUrl, createSwarmRepo, updateSwarmRepo, deleteSwarmRepo, getAgentMailInboxMapping, getAgentMailInboxMappingsByAgent, getAllAgentMailInboxMappings, createAgentMailInboxMapping, deleteAgentMailInboxMapping, findTaskByAgentMailThread, insertActiveSession, deleteActiveSession, deleteActiveSessionById, getActiveSessions, heartbeatActiveSession, cleanupStaleSessions, cleanupAgentSessions, updateActiveSessionProviderSessionId, getActiveSessionForTask, reassociateSessionLogs, getStalledInProgressTasks, getStalePinnedResumes, failPendingResumeIfUnclaimed, getIdleWorkersWithCapacity, getUnassignedPoolTasks, getStaleUnassignedAffinityTasks, getRecentFailedTasks, getRecentCompletedCount, getRecentFailedCount, createWorkflow, getWorkflow, listWorkflows, updateWorkflow, deleteWorkflow, getWorkflowsByScheduleId, createWorkflowRun, getWorkflowRun, updateWorkflowRun, listWorkflowRuns, countWorkflowRuns, listWorkflowRunsPage, createWorkflowRunStep, getWorkflowRunStep, updateWorkflowRunStep, getWorkflowRunStepsByRunId, getStuckWorkflowRuns, getLastSuccessfulRun, getLastRunStart, getRetryableSteps, getCompletedStepNodeIds, getTaskByWorkflowRunStepId, detachTaskFromWorkflowRunStep, getStepByIdempotencyKey, getStepCountForNode, getLatestStepForNode, getCurrentStepForNode, createWorkflowVersion, getWorkflowVersions, getWorkflowVersion, createAppVersion, getAppVersions, getAppVersion, createPage, getPage, getPageBySlug, getLatestPageBySlug, listPagesByAgent, listAllPages, countAllPages, countPagesByAgent, updatePage, deletePage, incrementPageViewCount, createPageVersion, getPageVersions, getPageVersion, createMetric, getMetric, getMetricBySlug, listMetricsByAgent, listAllMetrics, countAllMetrics, countMetricsByAgent, updateMetric, deleteMetric, createMetricVersion, getMetricVersions, getMetricVersion, getPromptTemplates, getPromptTemplateById, upsertPromptTemplate, deletePromptTemplate, resetPromptTemplateToDefault, getPromptTemplateHistory, resolvePromptTemplate, checkoutPromptTemplate, getAllChannelActivityCursors, getChannelActivityCursor, upsertChannelActivityCursor, createApprovalRequest, getApprovalRequestById, resolveApprovalRequest, cancelApprovalRequestById, cancelPendingApprovalRequestsForRun, listCancelledApprovalRequestsForRun, listCancelledApprovalRequestsForStep, claimApprovalCancellationNotification, completeApprovalCancellationNotificationClaim, releaseApprovalCancellationNotificationClaim, updateApprovalRequestNotifications, listApprovalRequests, getStuckApprovalRuns, getApprovalRequestByStepId, getExpiredPendingApprovals, getStaleApprovalRequests, createWaitState, getWaitStateById, getWaitStateByStepId, getDueWaitStates, getPendingEventWaitNames, getPendingWaitsByEvent, resolveWaitState, getStuckWaitRuns, SKILL_FILE_LIMITS, normalizeSkillFilePath, createSkill, updateSkill, listSkillFileManifest, getSkillFiles, getSkillFile, upsertSkillFile, upsertSkillFiles, deleteSkillFile, deleteSkill, getSkillById, getSkillByName, listSkills, searchSkills, installSkill, getSystemDefaultSkills, installSystemDefaultSkillsForAgent, uninstallSkill, getAgentSkills, toggleAgentSkill, createMcpServer, emitMcpServerConnectedTelemetry, updateMcpServer, deleteMcpServer, getMcpServerById, getMcpServerByName, listMcpServers, installMcpServer, uninstallMcpServer, getAgentMcpServers, createContextSnapshot, getContextSnapshotsByTaskId, getContextSnapshotsBySessionId, getContextSummaryByTaskId, getAvailableKeyIndices, recordKeyUsage, setApiKeyPlan, markKeyRateLimited, recordKeyAuthFailure, recordKeyRateLimitWindows, setApiKeyName, clearKeyRateLimit, getKeyStatuses, getKeyCostSummary, getUserById, getAllUsers, createUser, updateUser, deleteUser, listInboxState, upsertInboxState, listFavorites, listUserFavorites, getFavoriteItemIdSet, setFavorite, setUserFavorite, withFavoriteFlags, listTaskTemplates, getRootTaskChain, listRecentSessions, countSessions, getBudget, getBudgets, upsertBudget, deleteBudget, getAllPricingRows, getPricingRows, getActivePricingRow, insertPricingRow, deletePricingRow, getDailySpendForAgent, getDailySpendGlobal, getDailySpendForUser, recordBudgetRefusalNotification, getBudgetRefusalNotification, getRecentBudgetRefusalNotifications, hasBudgetRefusalNotificationToday, setBudgetRefusalFollowUpTaskId, getLiveAgentCounts, getReadyAgentCounts, getInstanceActivity, getSwarmMetrics, hasFirstCompletedTask, getKv, sweepExpiredKv, sweepExpiredKvPrefix, upsertKv, claimKv, deleteKv, KvTypeCollisionError, incrKv, kvPrefixUpperBound, listKv, countKv, createScriptRun, recordInlineScriptRun, getScriptRun, getScriptRunByIdempotencyKey, listScriptRuns, countScriptRuns, countActiveScriptRuns, updateScriptRun, updateScriptRunIfNotTerminal, updateScriptRunIfRunning, getRunningScriptRuns, getScriptRunJournalStep, upsertScriptRunJournalStep, listScriptRunJournalSteps, countScriptRunJournalSteps, countScriptRunJournalAgentTaskSteps, exports_db, init_db2 as init_db1 };
26194
+ export { slackContextKey, agentmailContextKey, githubContextKey, gitlabContextKey, azureDevOpsContextKey, azureDevOpsWorkItemContextKey, linearContextKey, buildJiraContextKey, scheduleContextKey, workflowContextKey, agentContextKey, pageContextKey, init_context_key, checkSlackRoutingCoherence, init_slack_routing, init_catalog, catalog_default, mapTriggerSurface, init_telemetry_context, TELEMETRY_PROXY_ORIGIN, normalizeOrgWebsite, orgLogoUrl, isFilledOrgLogoUrl, init_org_website, beginRequestAuthScope, setRequestAuth, getRequestAuth, getCurrentRequestAuth, runWithoutRequestAuth, getCurrentRequestUserId, init_request_auth_context, setTelemetryIngestObserver, isTelemetryEnabled, _resolveIntegrationType, _resolveIntegrationProvider, initTelemetry, setTelemetryRoleResolver, isTelemetryReady, track, trackRelayed, telemetry, emitIntegrationConnected, init_telemetry, auditAssetKeys, init_asset_key_audit, CredentialBindingSchema, placeholderForConfigKey, CredentialBroker, DEFAULT_CREDENTIAL_BINDINGS, init_credential_broker, encryptSecret, decryptSecret, getEncryptionKey, init_crypto, isInTransaction, init_db_client, breaksJsonValidity, scrubJsonValue, init_scrub_json, sealJson, init_sealed_json, getPromptTemplateDefaultDrift, init_default_drift, init_templates2 as init_templates, init_templates3 as init_templates1, isSqliteVecAvailable, resolveSqliteVecExtensionPath, __resetSqliteVecExtensionPathCacheForTests, initDb, getDb, closeDb, getDbClient, init_runtime, cachedUserRole, configureOrgDomainPersistence, recomputeOrgDomain, scheduleOrgDomainRecompute, init_telemetry_identity, resolveTriggerSurface, emitTaskTelemetry, init_telemetry_trigger, CODEX_AUTH_WATCH_NAMESPACE, codexAuthBenchMarkerKey, isCodexAuthFailureReason, init_codex_auth_failure, MASKED_SECRET_VALUE, init_config_secrets, HeartbeatExpiryError, init_heartbeat_expiry, isRuntimePoolsEnabled, init_runtime_pools_flag, normalizeDate, normalizeDateRequired, init_date_utils, rowToAgent, updateAgentCredentialState, updateAgentCredentialMissing, createAgent, getAgentById, EXTENSION_AGENT_ROLE, NOT_EXTENSION_AGENT_SQL, isExtensionAgent, extensionAgentAssignmentError, ReservedAgentRoleError, reservedRoleViolation, ExtensionAgentAssignmentError, getAllAgents, getAgentStatusCounts, getLeadAgent, updateAgentStatus, updateAgentMaxTasks, updateAgentProvider, setAgentHarnessProvider, updateAgentCredStatus, listAgentsWithCredStatusByProvider, getAgentHarnessProviders, updateAgentActivity, MAX_EMPTY_POLLS, incrementEmptyPollCount, resetEmptyPollCount, shouldBlockPolling, deleteAgent, getActiveTaskCount, hasCapacity, getRemainingCapacity, updateAgentStatusFromCapacity, isPoolAffinityEnforcementEnabled, buildRoutingAffinityFromAgent, isAgentEligibleForTask, getAgentDailyTaskCounts, init_agents, listApprovalRequestSummaries, getPendingApprovalVoteState, recordApprovalVotes, computeContentHash, createContextVersion, getLatestContextVersion, getContextVersion, getContextVersionHistory, setHumanFreeQueueListener, drainHumanFreeReclassifyQueue, init_human_free, rowToAgentTask, getTaskById, getChildTasks, hasNonTerminalResumeChild, getSupersededTasksWithoutResume, getSupersededTasksWithUnsettledDependents, hasNonTerminalRerouteDecisionChild, getTasksByAgentId, getAgentCurrentTask, getTasksByStatus, findTaskByVcs, findTaskByGitHub, getAllTasks, getTasksCount, getTaskStats, getCompletedSlackTasks, getPendingSlackRelayTasks, markSlackRelayAttempted, markSlackRelayDelivered, markFinalizedSlackRelaysDelivered, getRecentlyFinishedWorkerTasks, markTasksNotified, resetTasksNotified, getInProgressSlackTasks, getSlackTasksMissingTree, getInProgressTasksByContextKey, isLinearTrackerContextKey, findExistingLinearTrackerContextWork, getLatestTaskByContextKey, getLatestScriptRunStepTaskByContextKey, getAgentWorkingOnThread, getLatestActiveTaskInThread, getLatestLeadTaskInThread, getMostRecentTaskInThread, findCompletedTaskInThread, findRecentCancelledTaskInThread, init_read, onTaskStarted, init_task_lifecycle_events, channelTopic, addWorkerSubscription, removeWorkerSubscription, listSubscribedWorkerAgents, init_channels, publishWorkerNudge, init_worker_nudges, createTask, getPendingTaskForAgent, assignUnassignedTaskPending, startTask, updateTaskClaudeSessionId, recordTaskProviderIfUnset, updateTaskTitle, completeTask, failTask, overwriteTerminalTaskResultText, cancelTask, supersedeTask, settleSupersededTaskDependents, backfillSupersedeTaskResumeTaskId, pauseTask, resumeTask, getPausedTasksForAgent, getOrphanedInProgressTasksForAgent, resetOrphanedInProgressTasksForAgent, getRecentlyCancelledTasksForAgent, deleteTask, updateTaskProgress, getChildWorkflowRunId, getWorkflowRunParent, getWorkflowRunLineage, getSettledChildRunParentSteps, init_workflow_runs, resolveQuickJSPoolSize, init_quickjs_pool_config, SLACK_REACTION_DEFAULTS, SLACK_REACTION_CONFIG_KEYS, reactionName, init_reaction_shortcode, API_DRAINING_HEADER, API_DRAIN_MAX_MS_LIMIT, isApiDrainingResponse, init_api_drain, parseEnabledTools, init_enabled_tools, parseTaskToolManifest, selectTaskTools, init_task_tool_manifest, tierConfigKey, init_model_tier_keys, isInternalConfigKey, internalConfigKeyError, isReservedConfigKey, reservedKeyError, MAX_DB_RETENTION_DAYS, DB_RETENTION_TUNING_BOUNDS, validateRuntimeTokenTtlHours, validateControllerTokenTtlDays, validateControllerGraceSec, validateConfigValue, init_swarm_config_guard, getDefaultAuthorizationIdForProvider, getOAuthApp, getOAuthAppById, getOAuthAppIdByProvider, createOAuthApp, updateOAuthAppById, upsertOAuthApp, listAuthorizationsForApp, getAuthorizationById, upsertAuthorization, updateAuthorizationTokens, updateAuthorizationIdentity, deleteAuthorizationById, deleteAuthorizationsForApp, createOAuthPending, consumeOAuthPending, gcOAuthPending, markAuthorizationRefreshFailed, getOAuthTokens, listAuthorizationSweepRows, listKeepAliveAuthorizations, deleteOAuthTokens, acquireOAuthRefreshLock, releaseOAuthRefreshLock, init_oauth, OpenAI, init_openai, CANDIDATE_SET_MULTIPLIER, isGraphExpansionEnabled, EMBEDDING_DIMENSIONS, init_constants, LONGTERM_ROOT, MEMORY_KEY_PATTERN, MEMORY_KEY_PATTERN_MESSAGE, MEMORY_KEY_MAX_LENGTH, isLongtermKey, longtermKeyError, isConsolidatedKey, consolidatedKeyMessage, resolveStoreKey, init_key_paths, computeScore, rerank, init_reranker, rowToCandidate, init_sqlite_store, getEmbeddingProvider, resetEmbeddingProvider, getMemoryStore, init_memory, embeddingProvider, embedScript, searchScripts, reembedAllScripts, init_embeddings2 as init_embeddings, upsertScriptByName, getScript, getScriptById, getScriptVersion, listScripts, listScriptVersions, deleteScript, touchScratchScriptLastUsed, restoreScratchScriptLastUsedIfUnchanged, createScriptApi, listScriptApisForScript, getScriptApiById, getScriptApiSecret, updateScriptApi, rotateScriptApiSecret, deleteScriptApi, recordScriptApiUsage, init_db, oauthSecretName, registerStoredSecret, loadSecretRegistry, init_secret_registry, SteeringRequestError, isSteeringEnabled2 as isSteeringEnabled, getTaskSteeringFields, getTaskSteeringFieldsForTasks, promotePendingSteeringForTask, markSteeringUndeliverable, requestSteering, init_steering, WorkflowReplayStateError, init_workflow_replay, SESSION_ACTIVITY_REFRESH_MIN_INTERVAL_MS, refreshActiveSessionOnActivity, recordKeySeatMismatch, getScriptRunExecutionArgs, getSlackRenderV2ActivatedAt, ensureSlackRenderV2Activation, getSlackDelegationActivatedAt, ensureSlackDelegationActivation, isPendingSlackMessage, isSettledSlackMessage, recordSlackMessage, reserveSlackMessage, bindSlackMessageTimestamp, updateSlackMessageRecord, markSlackTreeRendered, deleteSlackMessageRecord, getSlackTreeMessage, getSlackTreeMessageByThread, getSlackOutcomeMessage, getResolvableDeferralOutcomes, markSlackDeferralResolved, noteSlackOutcomeDeliveryFailure, abandonSlackOutcomeDelivery, getSlackTreeMessages, getSlackMessageByChannelTs, getSlackTasksInThread, listSlackThreadsAwaitingHuman, isSlackThreadAwaitingHuman, markTaskSlackReplySent, setSlackMessageTracking, updateTaskVcs, insertTaskAttachment, recordTaskPullRequestAttachments, getAssetKeyMappingByProvider, upsertAssetKeyMapping, getAssetKeyMapping, listAssetSummaries, moveAssetKey, deleteTaskAttachment, replaceTaskAttachment, getTaskAttachments, createSteeringMessage, getSteeringMessagesForTask, getSteeringMessageById, getPendingSteeringForTask, getPendingSteeringForAgent, markSteeringDelivered, markSteeringHandled, markSteeringPromoted, cancelPendingSteeringForTask, hasPendingSteering, getAgentWithTasks, getAllAgentsWithTasks, createLogEntry, getLogsByAgentId, getLogsByTaskId, getLogsByTaskIdAndEventType, getLogsByTaskIdChronological, getLogsByEventType, getAllLogs, findRecentSimilarTasks, createTaskExtended, claimTask, releaseTask, acceptTask, rejectTask, moveTaskToBacklog, moveTaskFromBacklog, promoteDraftTask, refreshDraftTaskLease, promoteAbandonedDraftTasks, releaseStaleReviewingTasks, releaseStaleOfferedTasksForOfflineAgents, getOfferedTasksForAgent, claimOfferedTask, getUnassignedTasksCount, getUnassignedTaskIds, getUnassignedTaskIdsForAgent, checkDependencies, getDependentTasks, cascadeFailDependents, updateAgentProfile, updateAgentName, createChannel, getMessageById, getChannelById, getChannelByName, getAllChannels, deleteChannel, postMessage, getChannelMessages, updateReadState, getLastReadAt, getUnreadMessages, getMentionsForAgent, getInboxSummary, claimMentions, releaseMentionProcessing, releaseStaleMentionProcessing, createService, getServiceById, getServiceByAgentAndName, getServicesByAgentId, getAllServices, updateServiceStatus, deleteService, upsertService, deleteServicesByAgentId, createSessionLogs, getSessionLogsByTaskId, getSessionLogsBySession, createSessionCost, getSessionCostsByTaskId, getSessionCostsByAgentId, getAllSessionCosts, getSessionCostsFiltered, UNATTRIBUTED_USER_ID, getSessionCostSummary, getAttributionByPerson, getDashboardCostSummary, createInboxMessage, getInboxMessageById, getUnreadInboxMessages, claimInboxMessages, markInboxMessageRead, markInboxMessageResponded, markInboxMessageDelegated, releaseStaleProcessingInbox, getConcurrentContext, getScheduledTasks, getScheduledTaskById, getScheduledTaskByName, createScheduledTask, updateScheduledTask, deleteScheduledTask, getDueScheduledTasks, autoEncryptLegacyPlaintextSecrets, maskSecrets, getSwarmConfigs, getInjectableGlobalConfigs, getSwarmConfigById, getSwarmConfigLookupById, upsertSwarmConfig, emitBuiltInIntegrationConnectedOnce, deleteSwarmConfig, deleteSwarmConfigByKey, getResolvedConfig, getSwarmRepos, getSwarmRepoById, getSwarmRepoByName, getSwarmRepoByUrl, createSwarmRepo, updateSwarmRepo, deleteSwarmRepo, getAgentMailInboxMapping, getAgentMailInboxMappingsByAgent, getAllAgentMailInboxMappings, createAgentMailInboxMapping, deleteAgentMailInboxMapping, findTaskByAgentMailThread, insertActiveSession, deleteActiveSession, deleteActiveSessionById, getActiveSessions, heartbeatActiveSession, cleanupStaleSessions, cleanupAgentSessions, updateActiveSessionProviderSessionId, getActiveSessionForTask, reassociateSessionLogs, getStalledInProgressTasks, getStalePinnedResumes, failPendingResumeIfUnclaimed, getIdleWorkersWithCapacity, getUnassignedPoolTasks, getStaleUnassignedAffinityTasks, getRecentFailedTasks, getRecentCompletedCount, getRecentFailedCount, createWorkflow, getWorkflow, listWorkflows, updateWorkflow, deleteWorkflow, getWorkflowsByScheduleId, createWorkflowRun, getWorkflowRun, updateWorkflowRun, listWorkflowRuns, countWorkflowRuns, listWorkflowRunsPage, createWorkflowRunStep, getWorkflowRunStep, updateWorkflowRunStep, getWorkflowRunStepsByRunId, getStuckWorkflowRuns, getLastSuccessfulRun, getLastRunStart, getRetryableSteps, getCompletedStepNodeIds, getTaskByWorkflowRunStepId, detachTaskFromWorkflowRunStep, getStepByIdempotencyKey, getStepCountForNode, getLatestStepForNode, getCurrentStepForNode, createWorkflowVersion, getWorkflowVersions, getWorkflowVersion, createAppVersion, getAppVersions, getAppVersion, createPage, getPage, getPageBySlug, getLatestPageBySlug, listPagesByAgent, listAllPages, countAllPages, countPagesByAgent, updatePage, deletePage, incrementPageViewCount, createPageVersion, getPageVersions, getPageVersion, createMetric, getMetric, getMetricBySlug, listMetricsByAgent, listAllMetrics, countAllMetrics, countMetricsByAgent, updateMetric, deleteMetric, createMetricVersion, getMetricVersions, getMetricVersion, getPromptTemplates, getPromptTemplateById, upsertPromptTemplate, deletePromptTemplate, resetPromptTemplateToDefault, getPromptTemplateHistory, resolvePromptTemplate, checkoutPromptTemplate, getAllChannelActivityCursors, getChannelActivityCursor, upsertChannelActivityCursor, createApprovalRequest, getApprovalRequestById, resolveApprovalRequest, cancelApprovalRequestById, cancelPendingApprovalRequestsForRun, listCancelledApprovalRequestsForRun, listCancelledApprovalRequestsForStep, claimApprovalCancellationNotification, completeApprovalCancellationNotificationClaim, releaseApprovalCancellationNotificationClaim, updateApprovalRequestNotifications, listApprovalRequests, getStuckApprovalRuns, getApprovalRequestByStepId, getExpiredPendingApprovals, getStaleApprovalRequests, createWaitState, getWaitStateById, getWaitStateByStepId, getDueWaitStates, getPendingEventWaitNames, getPendingWaitsByEvent, resolveWaitState, getStuckWaitRuns, SKILL_FILE_LIMITS, normalizeSkillFilePath, createSkill, updateSkill, listSkillFileManifest, getSkillFiles, getSkillFile, upsertSkillFile, upsertSkillFiles, deleteSkillFile, deleteSkill, getSkillById, getSkillByName, listSkills, searchSkills, installSkill, getSystemDefaultSkills, installSystemDefaultSkillsForAgent, uninstallSkill, getAgentSkills, toggleAgentSkill, createMcpServer, emitMcpServerConnectedTelemetry, updateMcpServer, deleteMcpServer, getMcpServerById, getMcpServerByName, listMcpServers, installMcpServer, uninstallMcpServer, getAgentMcpServers, createContextSnapshot, getContextSnapshotsByTaskId, getContextSnapshotsBySessionId, getContextSummaryByTaskId, getAvailableKeyIndices, recordKeyUsage, setApiKeyPlan, markKeyRateLimited, recordKeyAuthFailure, recordKeyRateLimitWindows, setApiKeyName, clearKeyRateLimit, getKeyStatuses, getKeyCostSummary, getUserById, getAllUsers, createUser, updateUser, deleteUser, listInboxState, upsertInboxState, listFavorites, listUserFavorites, getFavoriteItemIdSet, setFavorite, setUserFavorite, withFavoriteFlags, listTaskTemplates, getRootTaskChain, listRecentSessions, countSessions, getBudget, getBudgets, upsertBudget, deleteBudget, getAllPricingRows, getPricingRows, getActivePricingRow, insertPricingRow, deletePricingRow, getDailySpendForAgent, getDailySpendGlobal, getDailySpendForUser, recordBudgetRefusalNotification, getBudgetRefusalNotification, getRecentBudgetRefusalNotifications, hasBudgetRefusalNotificationToday, setBudgetRefusalFollowUpTaskId, getLiveAgentCounts, getReadyAgentCounts, getInstanceActivity, getSwarmMetrics, hasFirstCompletedTask, getKv, sweepExpiredKv, sweepExpiredKvPrefix, upsertKv, claimKv, deleteKv, KvTypeCollisionError, incrKv, kvPrefixUpperBound, listKv, countKv, createScriptRun, recordInlineScriptRun, getScriptRun, getScriptRunByIdempotencyKey, listScriptRuns, countScriptRuns, countActiveScriptRuns, updateScriptRun, updateScriptRunIfNotTerminal, updateScriptRunIfRunning, getRunningScriptRuns, getScriptRunJournalStep, upsertScriptRunJournalStep, listScriptRunJournalSteps, countScriptRunJournalSteps, countScriptRunJournalAgentTaskSteps, exports_db, init_db2 as init_db1 };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getDb,
3
3
  init_db1 as init_db
4
- } from "./cli-tgpfnm6r.js";
4
+ } from "./cli-fmhj1ehj.js";
5
5
 
6
6
  // src/be/seed-pricing.ts
7
7
  init_db();
@@ -234,7 +234,7 @@ import {
234
234
  streamSimple,
235
235
  typesafeSystemOneApi,
236
236
  validateToolArguments
237
- } from "./cli-cceskcvt.js";
237
+ } from "./cli-b07hr3bt.js";
238
238
  import {
239
239
  exports_typebox,
240
240
  isRetryableAssistantError,
@@ -248,12 +248,12 @@ import {
248
248
  import {
249
249
  require_semver
250
250
  } from "./cli-3er6gcsn.js";
251
- import {
252
- getProviderEnvValue
253
- } from "./cli-btbzvq95.js";
254
251
  import {
255
252
  parseStreamingJson
256
253
  } from "./cli-1m2e086m.js";
254
+ import {
255
+ getProviderEnvValue
256
+ } from "./cli-btbzvq95.js";
257
257
  import {
258
258
  ModelsError,
259
259
  assertChatModel,
@@ -32864,7 +32864,7 @@ function getCreateJiti() {
32864
32864
  }
32865
32865
  var virtualModulesPromise;
32866
32866
  function getVirtualModules() {
32867
- virtualModulesPromise ??= import("./virtual-modules-b3ga2m65.js").then((module) => module.VIRTUAL_MODULES);
32867
+ virtualModulesPromise ??= import("./virtual-modules-rtmt494q.js").then((module) => module.VIRTUAL_MODULES);
32868
32868
  return virtualModulesPromise;
32869
32869
  }
32870
32870
  var _aliases = null;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  summarizeSession
3
- } from "./cli-cf69s3ew.js";
3
+ } from "./cli-nwrdx840.js";
4
4
  import {
5
5
  checkToolLoop,
6
6
  clearToolHistory
@@ -14,7 +14,7 @@ import {
14
14
  listRuntimeInstancesForPool,
15
15
  markRuntimeTerminated,
16
16
  runtimeStaleThresholdMinutes
17
- } from "./cli-ztrv9y21.js";
17
+ } from "./cli-rfz2ve55.js";
18
18
  import {
19
19
  isMultiRuntimeEnabled
20
20
  } from "./cli-re8z5p8p.js";
@@ -30,7 +30,7 @@ import {
30
30
  listRuntimePools,
31
31
  mintRuntimeToken,
32
32
  resolvePoolDelivery
33
- } from "./cli-e0a9sk00.js";
33
+ } from "./cli-3nxdmjrc.js";
34
34
  import {
35
35
  canProvisionKind,
36
36
  createRuntimeProvider,
@@ -55,7 +55,7 @@ import {
55
55
  upsertSwarmConfig,
56
56
  validateConfigValue,
57
57
  validateControllerGraceSec
58
- } from "./cli-tgpfnm6r.js";
58
+ } from "./cli-fmhj1ehj.js";
59
59
  import {
60
60
  TERMINAL_TASK_STATUSES,
61
61
  init_types,
@@ -1204,7 +1204,7 @@ async function recoverSessions(runtimeId, reason) {
1204
1204
  }
1205
1205
  if (!sessions2.length)
1206
1206
  return;
1207
- const { remediateTaskForDeadRuntime } = await import("./heartbeat-3k31q4g2.js");
1207
+ const { remediateTaskForDeadRuntime } = await import("./heartbeat-bm4qkn8d.js");
1208
1208
  for (const session of sessions2) {
1209
1209
  try {
1210
1210
  const task = await getTaskById(session.taskId);
@@ -6,11 +6,11 @@ import {
6
6
  import {
7
7
  parseModelStr,
8
8
  resolveCredential
9
- } from "./cli-xczpdp9e.js";
9
+ } from "./cli-6thk4jz3.js";
10
10
  import {
11
11
  complete,
12
12
  getBuiltinModel
13
- } from "./cli-cceskcvt.js";
13
+ } from "./cli-b07hr3bt.js";
14
14
  import {
15
15
  exports_typebox
16
16
  } from "./cli-h6vtvt5c.js";
@@ -0,0 +1,16 @@
1
+ import {
2
+ __esm
3
+ } from "./cli-bc05qbss.js";
4
+
5
+ // src/utils/node-env.ts
6
+ function getNodeEnv() {
7
+ return process.env[NODE_ENV_KEY];
8
+ }
9
+ function isDevOrTestNodeEnv() {
10
+ const env = getNodeEnv();
11
+ return env === "development" || env === "test";
12
+ }
13
+ var NODE_ENV_KEY = "NODE_ENV";
14
+ var init_node_env = () => {};
15
+
16
+ export { getNodeEnv, isDevOrTestNodeEnv, init_node_env };
@@ -6,7 +6,7 @@ import {
6
6
  getSwarmConfigs,
7
7
  init_db1 as init_db,
8
8
  upsertSwarmConfig
9
- } from "./cli-tgpfnm6r.js";
9
+ } from "./cli-fmhj1ehj.js";
10
10
  import {
11
11
  init_secret_scrubber,
12
12
  scrubSecrets
@@ -5,12 +5,12 @@ import {
5
5
  instantFlush,
6
6
  requestSlackThreadSteering,
7
7
  wasEventSeen
8
- } from "./cli-1hgat6pa.js";
8
+ } from "./cli-rfs4vddv.js";
9
9
  import {
10
10
  enrichSlackUserEmail,
11
11
  resolveSlackUserId,
12
12
  rewriteSlackMentions
13
- } from "./cli-hwwvy36w.js";
13
+ } from "./cli-c3rk1v0x.js";
14
14
  import {
15
15
  TaskCreationBlockedError,
16
16
  broadcastMatches,
@@ -23,7 +23,7 @@ import {
23
23
  hasOtherUserMention,
24
24
  notifySlackFileFailures,
25
25
  routeMessage
26
- } from "./cli-ztrv9y21.js";
26
+ } from "./cli-rfz2ve55.js";
27
27
  import {
28
28
  ackSlackMessage,
29
29
  buildTreeBlocks,
@@ -34,7 +34,14 @@ import {
34
34
  noteSlackInboundSideEffect,
35
35
  registerTreeMessage,
36
36
  reportSlackInboundFailure
37
- } from "./cli-9xsmdpdt.js";
37
+ } from "./cli-tcc4wd5d.js";
38
+ import {
39
+ getChannelBlockReason,
40
+ invalidateChannelExternality,
41
+ isBlockExternalEnabled,
42
+ leaveExternalChannel,
43
+ shouldBlockChannel
44
+ } from "./cli-v3zhnxsb.js";
38
45
  import {
39
46
  getAgentById,
40
47
  getAgentWorkingOnThread,
@@ -47,7 +54,7 @@ import {
47
54
  isExtensionAgent,
48
55
  reactionName,
49
56
  slackContextKey
50
- } from "./cli-tgpfnm6r.js";
57
+ } from "./cli-fmhj1ehj.js";
51
58
  import {
52
59
  init_resolver,
53
60
  resolveTemplate
@@ -292,6 +299,10 @@ function registerMessageHandler(app) {
292
299
  if (!isAdmittedSlackDelivery() && isMessageProcessed(messageKey)) {
293
300
  return ignoreSlackInbound("duplicate_message");
294
301
  }
302
+ if (await shouldBlockChannel(client, msg.channel, body.is_ext_shared_channel)) {
303
+ console.log(`[Slack] Ignoring message in external channel ${msg.channel}`);
304
+ return ignoreSlackInbound("external_channel");
305
+ }
295
306
  if (!await isUserAllowed(client, msg.user)) {
296
307
  console.log(`[Slack] Ignoring message from unauthorized user ${msg.user}`);
297
308
  return ignoreSlackInbound("unauthorized_user");
@@ -669,6 +680,41 @@ ${taskDescription}`;
669
680
  app.event("app_mention", async ({ event }) => {
670
681
  console.log(`[Slack] App mentioned in channel ${event.channel}`);
671
682
  });
683
+ app.event("member_joined_channel", async ({ event, client }) => {
684
+ if (!isBlockExternalEnabled())
685
+ return ignoreSlackInbound("external_block_disabled");
686
+ if (!cachedBotUserId) {
687
+ try {
688
+ const authResult = await client.auth.test();
689
+ cachedBotUserId = authResult.user_id;
690
+ cachedBotId = authResult.bot_id ?? null;
691
+ } catch (error) {
692
+ console.error("[Slack] Failed to cache bot user ID:", error);
693
+ }
694
+ }
695
+ if (!cachedBotUserId || event.user !== cachedBotUserId) {
696
+ return ignoreSlackInbound("member_joined_not_bot");
697
+ }
698
+ invalidateChannelExternality(event.channel);
699
+ if (await getChannelBlockReason(client, event.channel) !== "external") {
700
+ return ignoreSlackInbound("member_joined_internal");
701
+ }
702
+ await leaveExternalChannel(client, event.channel, "joined");
703
+ });
704
+ app.event("channel_shared", async ({ event, client }) => {
705
+ if (!isBlockExternalEnabled())
706
+ return ignoreSlackInbound("external_block_disabled");
707
+ invalidateChannelExternality(event.channel);
708
+ if (await getChannelBlockReason(client, event.channel) !== "external") {
709
+ return ignoreSlackInbound("channel_shared_internal");
710
+ }
711
+ await leaveExternalChannel(client, event.channel, "shared");
712
+ });
713
+ app.event("channel_unshared", async ({ event }) => {
714
+ if (!isBlockExternalEnabled())
715
+ return ignoreSlackInbound("external_block_disabled");
716
+ invalidateChannelExternality(event.channel);
717
+ });
672
718
  }
673
719
 
674
720
  export { checkUserAccess, isUserAllowed, isBotMessage, resetSlackHandlerCachesForTesting, isSwarmThreadRoot, registerMessageHandler };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  remediateStalledRuntime
3
- } from "./cli-prrt9fa0.js";
3
+ } from "./cli-ne7smj1b.js";
4
4
  import {
5
5
  REBOOT_RETRY_PIN_TAG,
6
6
  agentsWithLiveRuntime,
@@ -25,22 +25,22 @@ import {
25
25
  repointTrackerSyncBySwarmId,
26
26
  resolveLeadOnlyRecoveryAssignment,
27
27
  runtimeStaleThresholdMinutes
28
- } from "./cli-ztrv9y21.js";
28
+ } from "./cli-rfz2ve55.js";
29
29
  import {
30
30
  isMultiRuntimeEnabled
31
31
  } from "./cli-re8z5p8p.js";
32
32
  import {
33
33
  runSavedScriptAsAgent
34
- } from "./cli-j6kpj9az.js";
34
+ } from "./cli-7a93cv8c.js";
35
35
  import {
36
36
  createApprovalFollowUpTask
37
- } from "./cli-aspcaef3.js";
37
+ } from "./cli-6r2f7edk.js";
38
38
  import {
39
39
  init_db as init_db2,
40
40
  init_users,
41
41
  listRuntimePools,
42
42
  mintToken
43
- } from "./cli-e0a9sk00.js";
43
+ } from "./cli-3nxdmjrc.js";
44
44
  import {
45
45
  MAX_EMPTY_POLLS,
46
46
  assignUnassignedTaskPending,
@@ -98,7 +98,7 @@ import {
98
98
  settleSupersededTaskDependents,
99
99
  supersedeTask,
100
100
  updateAgentStatus
101
- } from "./cli-tgpfnm6r.js";
101
+ } from "./cli-fmhj1ehj.js";
102
102
  import {
103
103
  TERMINAL_TASK_STATUSES,
104
104
  init_types
@@ -112,7 +112,7 @@ import {
112
112
  import {
113
113
  init_package,
114
114
  package_default
115
- } from "./cli-esnpehf5.js";
115
+ } from "./cli-5er5gjbm.js";
116
116
  import {
117
117
  init_event_bus,
118
118
  workflowEventBus