@desplega.ai/agent-swarm 1.152.2 → 1.153.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 (224) hide show
  1. package/README.md +1 -1
  2. package/dist/{acp-adapter-pfeje2v5.js → acp-adapter-ahmjxhek.js} +4 -4
  3. package/dist/{actions-0sttc7f5.js → actions-jzrfpkmn.js} +30 -26
  4. package/dist/{anthropic-messages-2y8nktar.js → anthropic-messages-9vqsbznt.js} +112 -84
  5. package/dist/{app-p8teva95.js → app-03na2vwb.js} +9 -6
  6. package/dist/{assistant-r45jnsrt.js → assistant-hfkxvhgt.js} +31 -27
  7. package/dist/{azure-openai-responses-f38x2avq.js → azure-openai-responses-04qwdwfq.js} +27 -13
  8. package/dist/{boot-reembed-je26h5y7.js → boot-reembed-c98xrad3.js} +8 -6
  9. package/dist/{boot-reembed-1qmybsd4.js → boot-reembed-zt3qm9xn.js} +9 -7
  10. package/dist/{boot-scrub-logs-gte3h1mm.js → boot-scrub-logs-jcqd8ksj.js} +6 -4
  11. package/dist/{claude-adapter-csc1mzka.js → claude-adapter-mgryg8g3.js} +17 -15
  12. package/dist/{claude-managed-adapter-dsmkcrjy.js → claude-managed-adapter-ea2aga6w.js} +3 -3
  13. package/dist/{claude-sdk-session-fcd6f078.js → claude-sdk-session-jjf4zss1.js} +17 -15
  14. package/dist/{cli-r2fpe7cx.js → cli-00w2c66p.js} +61 -55
  15. package/dist/{cli-fm4ytsdk.js → cli-0d9nbqxf.js} +1 -1
  16. package/dist/cli-0x5qzvkg.js +4279 -0
  17. package/dist/{cli-d3p82erb.js → cli-18amys3y.js} +9 -9
  18. package/dist/{cli-wbyk465z.js → cli-1hwnb4hc.js} +1 -1
  19. package/dist/{cli-xw7vak96.js → cli-3bcmp015.js} +5 -5
  20. package/dist/cli-3er6gcsn.js +1849 -0
  21. package/dist/{cli-c4eeb5q2.js → cli-5b6b62tz.js} +1 -1
  22. package/dist/{cli-4ahpr4sw.js → cli-5mbmvxnn.js} +5 -5
  23. package/dist/{cli-xy1cchaf.js → cli-5taqtpze.js} +235 -8
  24. package/dist/{cli-fmy65jdn.js → cli-6ks9xf1n.js} +7 -5
  25. package/dist/cli-7g9s78jf.js +2827 -0
  26. package/dist/{cli-jew3jda5.js → cli-7pnz2v6s.js} +2 -2
  27. package/dist/{cli-r84ctdxn.js → cli-83wkg402.js} +2 -2
  28. package/dist/{cli-jvy9qgjs.js → cli-a9scg8sv.js} +4 -4
  29. package/dist/{cli-4yc5d8fk.js → cli-avkd6mqv.js} +50 -0
  30. package/dist/{cli-ht5rs63n.js → cli-b2g6mzjc.js} +15 -6
  31. package/dist/{cli-jbmc0r7r.js → cli-bw0dfwkr.js} +1 -1
  32. package/dist/{cli-8wrympd7.js → cli-bzr0ftht.js} +26 -7
  33. package/dist/{cli-wpv5rgg2.js → cli-cdq08v3r.js} +2 -2
  34. package/dist/cli-cgj4hc12.js +18902 -0
  35. package/dist/cli-d6hk10xx.js +14075 -0
  36. package/dist/{cli-zvgj5zg8.js → cli-djvxhnc4.js} +31 -3324
  37. package/dist/{cli-s25avqg9.js → cli-e781c6f9.js} +1 -0
  38. package/dist/{cli-3bpzj8me.js → cli-eazstkad.js} +2 -2
  39. package/dist/{cli-s2qjdd6z.js → cli-eetrvv91.js} +1 -1
  40. package/dist/cli-h38x0qhg.js +6912 -0
  41. package/dist/{cli-9xvdm3bx.js → cli-h60qfasa.js} +742 -278
  42. package/dist/{pi-mono-adapter-jcqt71cg.js → cli-ja7mrygn.js} +67343 -101083
  43. package/dist/{cli-j8dggbcr.js → cli-k0g1sjzm.js} +23 -31
  44. package/dist/{cli-gphgnvpf.js → cli-m04pt18h.js} +2 -2
  45. package/dist/{cli-rgvp6r2x.js → cli-mcnhgnn1.js} +193 -4
  46. package/dist/{cli-j4nv2wqy.js → cli-mzgyhxbe.js} +10 -4
  47. package/dist/{cli-qn042eh7.js → cli-n0q9b7j4.js} +46 -1870
  48. package/dist/cli-n7h1kqpf.js +29 -0
  49. package/dist/{cli-ckz5t2hb.js → cli-nq0kgyxe.js} +5 -5
  50. package/dist/{cli-z3wkng35.js → cli-qrqhc31j.js} +151 -125
  51. package/dist/{cli-56h18ng2.js → cli-r8tdds6s.js} +1 -1
  52. package/dist/{cli-ch38q5z4.js → cli-rj7de4b2.js} +6788 -2541
  53. package/dist/{cli-qd65dvr6.js → cli-s5s1f2yn.js} +56 -40
  54. package/dist/{cli-kj76p1ez.js → cli-scwq51gn.js} +13 -7
  55. package/dist/{cli-2nnd56zt.js → cli-tdh4hjr2.js} +3 -2
  56. package/dist/{cli-c2mk1kgf.js → cli-v4en75c5.js} +8 -1
  57. package/dist/{cli-b9dd0h3k.js → cli-vw03hg5t.js} +3 -2
  58. package/dist/{cli-zvkq5csn.js → cli-ybpp1srm.js} +6 -6
  59. package/dist/cli-yn0a417a.js +4069 -0
  60. package/dist/{cli-gpqcs935.js → cli-ysc1kbet.js} +2 -2
  61. package/dist/{cli-zfzznn7c.js → cli-ytxs7mn1.js} +26 -2
  62. package/dist/cli-zcsyfw2z.js +3335 -0
  63. package/dist/{cli-4j8k1m4w.js → cli-zt1227k1.js} +1162 -192
  64. package/dist/cli-zy5w9gpt.js +230 -0
  65. package/dist/cli.js +26 -34
  66. package/dist/{codex-adapter-fxmpsabw.js → codex-adapter-8548daap.js} +12 -11
  67. package/dist/{codex-session-runner-rr1e47ea.js → codex-session-runner-2dad8p4x.js} +12 -11
  68. package/dist/{commands-0f5rxz51.js → commands-355dbpa8.js} +6 -4
  69. package/dist/{db-r3jxf3wy.js → db-4jjvwz1s.js} +6 -4
  70. package/dist/{dispatcher-06vph6q4.js → dispatcher-ca590nkz.js} +29 -25
  71. package/dist/dsh-adapter-rgvj6ykp.js +19 -0
  72. package/dist/{e2b-413b8t4v.js → e2b-93x1k0j5.js} +6 -7
  73. package/dist/{google-generative-ai-ndjmj5fa.js → google-generative-ai-xtw7tggr.js} +33 -73
  74. package/dist/{google-vertex-fr665tqs.js → google-vertex-zdqpms6n.js} +38 -68
  75. package/dist/{handlers-0hgtc910.js → handlers-2y6dqpvf.js} +32 -28
  76. package/dist/{hook-9kvrv1er.js → hook-0s8knepr.js} +11 -9
  77. package/dist/{hook-fbfhkat3.js → hook-k0gec254.js} +12 -10
  78. package/dist/{http-xbyx8k5j.js → http-jp2nb4zw.js} +300 -237
  79. package/dist/{index-tfsdxyv6.js → index-0wzg3sp3.js} +39 -24
  80. package/dist/{index-rnyahfn5.js → index-3mq6ce93.js} +29 -25
  81. package/dist/{index-jsw3aynb.js → index-42s7eezq.js} +29 -25
  82. package/dist/{cli-pdz9qde4.js → index-9ch1n761.js} +10 -11
  83. package/dist/{index-gpfn1741.js → index-b56xkbc7.js} +8 -6
  84. package/dist/{index-66xz5e9j.js → index-h5gs261z.js} +521 -9
  85. package/dist/{index-2sp0384z.js → index-kkeftv5h.js} +738 -21
  86. package/dist/{index-sgk50mbg.js → index-s37dbevy.js} +30 -26
  87. package/dist/index-w097eg0x.js +5 -0
  88. package/dist/jiti-loader-b4837mtm.js +34 -0
  89. package/dist/jiti-static-loader-q2g5ds0y.js +31267 -0
  90. package/dist/{keepalive-s3xpr7sw.js → keepalive-9pfw7t02.js} +8 -6
  91. package/dist/{lead-rq4n5r16.js → lead-7vcmcdq4.js} +44 -39
  92. package/dist/{maintenance-f0atj1ab.js → maintenance-x277jbpd.js} +9 -7
  93. package/dist/{mistral-conversations-qhr84ph3.js → mistral-conversations-zx0kn554.js} +24 -18
  94. package/dist/{node-x1g4v0pq.js → node-5qtycf6a.js} +16 -11
  95. package/dist/{oauth-refresh-sweep-q0t3bxre.js → oauth-refresh-sweep-5fwa7th2.js} +7 -5
  96. package/dist/{onboard-br5j1kch.js → onboard-17sv0f51.js} +103 -35
  97. package/dist/{openai-codex-responses-wy6a43wd.js → openai-codex-responses-4vjqzvjp.js} +33 -27
  98. package/dist/{openai-completions-32rdwmze.js → openai-completions-pxsmym7g.js} +52 -64
  99. package/dist/{openai-responses-6xwf7bzg.js → openai-responses-tmn0rqp0.js} +23 -24
  100. package/dist/{opencode-adapter-28axqa09.js → opencode-adapter-qbmv4tpy.js} +6 -6
  101. package/dist/{otel-impl-vdqge2nt.js → otel-impl-srjy4be4.js} +4 -4
  102. package/dist/{pi-messages-b1mbr6gp.js → pi-messages-txpjj39q.js} +3 -3
  103. package/dist/pi-mono-adapter-946a0sdd.js +1316 -0
  104. package/dist/{pricing-refresh-hb3691fd.js → pricing-refresh-vetcm563.js} +8 -6
  105. package/dist/{rbac-roles-jh280k9g.js → rbac-roles-cfzgr6r1.js} +8 -6
  106. package/dist/{rbac-roles-t78xt39b.js → rbac-roles-cmxaddmy.js} +7 -5
  107. package/dist/{render-v2-7p8r2ymg.js → render-v2-f9hzff72.js} +9 -6
  108. package/dist/{seed-pricing-hf889enh.js → seed-pricing-jggk6rsy.js} +7 -5
  109. package/dist/{setup-w6mb03jv.js → setup-8mfceb9t.js} +4 -5
  110. package/dist/virtual-modules-ax661xp0.js +54 -0
  111. package/dist/{work-objects-nt8gy1kj.js → work-objects-vdsdcczj.js} +32 -28
  112. package/dist/{worker-dwy617t0.js → worker-cd0nhyv1.js} +44 -39
  113. package/openapi.json +36 -14
  114. package/package.json +6 -6
  115. package/src/be/automation-preflight.ts +6 -4
  116. package/src/be/extensions/db.ts +35 -4
  117. package/src/be/models-catalog.ts +2 -0
  118. package/src/be/modelsdev-cache.json +213 -0
  119. package/src/be/rbac-audit.ts +2 -0
  120. package/src/be/seed-pricing.ts +3 -1
  121. package/src/be/swarm-config-guard.ts +1 -0
  122. package/src/commands/onboard/compose-generator.ts +6 -1
  123. package/src/commands/onboard/env-generator.ts +6 -1
  124. package/src/commands/onboard/manifest.ts +1 -0
  125. package/src/commands/onboard/steps/integration-slack.tsx +56 -16
  126. package/src/commands/onboard/steps/review.tsx +5 -0
  127. package/src/commands/onboard/types.ts +6 -0
  128. package/src/commands/onboard.tsx +5 -1
  129. package/src/commands/provider-credentials.ts +14 -2
  130. package/src/extensions/lifecycle.ts +15 -21
  131. package/src/http/agents.ts +2 -2
  132. package/src/http/config.ts +1 -1
  133. package/src/http/core.ts +5 -3
  134. package/src/http/extensions.ts +108 -34
  135. package/src/http/status.ts +22 -10
  136. package/src/prompts/base-prompt.ts +15 -7
  137. package/src/providers/claude-managed-models.ts +8 -0
  138. package/src/providers/codex-models.ts +15 -1
  139. package/src/providers/dsh-adapter.ts +248 -0
  140. package/src/providers/index.ts +5 -1
  141. package/src/providers/modelsdev-reasoning.json +50 -0
  142. package/src/rbac/legacy-policy.ts +15 -1
  143. package/src/rbac/types.ts +2 -0
  144. package/src/server.ts +7 -1
  145. package/src/slack/app.ts +32 -10
  146. package/src/slack/config.ts +29 -0
  147. package/src/telemetry.ts +2 -3
  148. package/src/tests/agents-harness-provider.test.ts +19 -0
  149. package/src/tests/agents-list-model-display.test.ts +60 -1
  150. package/src/tests/base-prompt.test.ts +25 -0
  151. package/src/tests/claude-managed-adapter.test.ts +6 -0
  152. package/src/tests/codex-gpt6-release.test.ts +97 -0
  153. package/src/tests/config-api-only-keys.test.ts +9 -0
  154. package/src/tests/context-window.test.ts +1 -0
  155. package/src/tests/dsh-adapter.test.ts +276 -0
  156. package/src/tests/e2e-nightly-report.test.ts +3 -3
  157. package/src/tests/e2e-redact.test.ts +2 -0
  158. package/src/tests/env-flag.test.ts +6 -0
  159. package/src/tests/extensions-db.test.ts +41 -0
  160. package/src/tests/extensions-http.test.ts +148 -4
  161. package/src/tests/extensions-lifecycle.test.ts +18 -0
  162. package/src/tests/extensions-mcp-tools.test.ts +9 -5
  163. package/src/tests/internal-ai/complete-structured.test.ts +32 -9
  164. package/src/tests/internal-ai/credentials.test.ts +4 -4
  165. package/src/tests/internal-ai/models.test.ts +20 -0
  166. package/src/tests/migration-046-budgets.test.ts +2 -0
  167. package/src/tests/model-control.test.ts +2 -2
  168. package/src/tests/onboard-compose.test.ts +14 -0
  169. package/src/tests/onboard-env.test.ts +17 -0
  170. package/src/tests/onboard-manifest.test.ts +12 -0
  171. package/src/tests/opus-5-5-registry.test.ts +48 -0
  172. package/src/tests/pricing-refresh.test.ts +1 -1
  173. package/src/tests/pricing-routes.test.ts +15 -3
  174. package/src/tests/provider-registration.test.ts +5 -2
  175. package/src/tests/rbac-admission-e2e.test.ts +54 -0
  176. package/src/tests/rbac-e2e-helpers.ts +2 -0
  177. package/src/tests/rbac-engine.test.ts +32 -0
  178. package/src/tests/rbac-wire-e2e.test.ts +33 -0
  179. package/src/tests/reasoning-effort.test.ts +8 -0
  180. package/src/tests/reload-config.test.ts +33 -0
  181. package/src/tests/session-costs-model-key-normalize.test.ts +1 -0
  182. package/src/tests/slack-config.test.ts +136 -0
  183. package/src/tests/slack-mode-lifecycle.test.ts +69 -0
  184. package/src/tests/status.test.ts +22 -2
  185. package/src/tests/task-tool-preload-mcp.test.ts +3 -1
  186. package/src/tests/telemetry-init.test.ts +18 -0
  187. package/src/tests/workflow-llm.test.ts +3 -3
  188. package/src/tools/extension-common.ts +4 -0
  189. package/src/tools/extension-install.ts +1 -1
  190. package/src/tools/extension-list.ts +4 -3
  191. package/src/types.ts +17 -8
  192. package/src/utils/context-window.ts +1 -0
  193. package/src/utils/credentials.ts +8 -0
  194. package/src/utils/internal-ai/complete-structured.ts +8 -0
  195. package/src/utils/internal-ai/models.ts +5 -5
  196. package/templates/schedules/daily-status-report/content.md +25 -12
  197. package/templates/schedules/daily-workflow-health-audit/content.md +1 -1
  198. package/templates/skills/swarm-extensions/content.md +9 -5
  199. package/dist/cli-4wppfkcm.js +0 -16384
  200. package/dist/cli-55qrx3q8.js +0 -6041
  201. package/dist/cli-cg4vnyh4.js +0 -305
  202. package/dist/cli-jyetr64j.js +0 -52
  203. package/dist/cli-pp9ax9pa.js +0 -520
  204. package/dist/cli-qa66qaf0.js +0 -6076
  205. package/dist/cli-qghpvca2.js +0 -590
  206. package/dist/cli-rembwgt8.js +0 -861
  207. package/dist/cli-tcvj7j2r.js +0 -1971
  208. package/dist/cli-vfcth11k.js +0 -36
  209. package/dist/cli-w1d1bgkk.js +0 -1422
  210. package/dist/cli-y6x0gqtg.js +0 -5977
  211. package/dist/es5-tj3tn4jj.js +0 -844
  212. package/dist/index-1kq5hw2p.js +0 -467
  213. package/dist/index-1p8wdstt.js +0 -7
  214. package/dist/index-8fdjzb2f.js +0 -100
  215. package/dist/index-bxmwzbgw.js +0 -365
  216. package/dist/index-nzerxd5z.js +0 -7
  217. package/dist/index-pyymnzat.js +0 -1168
  218. package/dist/index-qv6atbab.js +0 -619
  219. package/dist/index-rja32qa7.js +0 -801
  220. package/dist/index-tzg5srfp.js +0 -211
  221. package/dist/index-vhncw983.js +0 -90
  222. package/dist/index-xk036zsk.js +0 -859
  223. package/dist/index-zyazbzcb.js +0 -6
  224. package/dist/{claude-managed-setup-48dwg9bv.js → claude-managed-setup-f5pmsyrp.js} +3 -3
@@ -0,0 +1,29 @@
1
+ import {
2
+ __esm
3
+ } from "./cli-bc05qbss.js";
4
+
5
+ // src/slack/config.ts
6
+ function getSlackConfiguration(env = process.env) {
7
+ const rawMode = env.SLACK_MODE === undefined ? "socket" : env.SLACK_MODE.trim();
8
+ const mode = SLACK_MODES.includes(rawMode) ? rawMode : null;
9
+ const missingCredentials = ["SLACK_BOT_TOKEN"];
10
+ if (mode === "socket")
11
+ missingCredentials.push("SLACK_APP_TOKEN");
12
+ if (mode === "http")
13
+ missingCredentials.push("SLACK_SIGNING_SECRET");
14
+ return {
15
+ disabled: env.SLACK_DISABLE === "true" || env.SLACK_DISABLE === "1",
16
+ mode,
17
+ missingCredentials: missingCredentials.filter((key) => !env[key]?.trim())
18
+ };
19
+ }
20
+ function isSlackConfigured(env = process.env) {
21
+ const config = getSlackConfiguration(env);
22
+ return !config.disabled && config.mode !== null && config.missingCredentials.length === 0;
23
+ }
24
+ var SLACK_MODES;
25
+ var init_config = __esm(() => {
26
+ SLACK_MODES = ["socket", "http"];
27
+ });
28
+
29
+ export { getSlackConfiguration, isSlackConfigured, init_config };
@@ -5,12 +5,12 @@ import {
5
5
  instantFlush,
6
6
  requestSlackThreadSteering,
7
7
  wasEventSeen
8
- } from "./cli-jvy9qgjs.js";
8
+ } from "./cli-a9scg8sv.js";
9
9
  import {
10
10
  enrichSlackUserEmail,
11
11
  resolveSlackUserId,
12
12
  rewriteSlackMentions
13
- } from "./cli-3bpzj8me.js";
13
+ } from "./cli-eazstkad.js";
14
14
  import {
15
15
  TaskCreationBlockedError,
16
16
  broadcastMatches,
@@ -23,14 +23,14 @@ import {
23
23
  hasOtherUserMention,
24
24
  notifySlackFileFailures,
25
25
  routeMessage
26
- } from "./cli-z3wkng35.js";
26
+ } from "./cli-qrqhc31j.js";
27
27
  import {
28
28
  ackSlackMessage,
29
29
  buildTreeBlocks,
30
30
  ensureSlackThreadTree,
31
31
  isSlackRenderV2Enabled,
32
32
  registerTreeMessage
33
- } from "./cli-qn042eh7.js";
33
+ } from "./cli-n0q9b7j4.js";
34
34
  import {
35
35
  getAgentById,
36
36
  getAgentWorkingOnThread,
@@ -42,7 +42,7 @@ import {
42
42
  init_db,
43
43
  reactionName,
44
44
  slackContextKey
45
- } from "./cli-zvgj5zg8.js";
45
+ } from "./cli-djvxhnc4.js";
46
46
  import {
47
47
  init_resolver,
48
48
  resolveTemplate
@@ -9,7 +9,7 @@ import {
9
9
  REFERENCES_SOURCE_MAX_LENGTH,
10
10
  resolveCredential,
11
11
  sanitizeReferencesSource
12
- } from "./cli-4wppfkcm.js";
12
+ } from "./cli-7g9s78jf.js";
13
13
  import {
14
14
  isMultiRuntimeEnabled
15
15
  } from "./cli-re8z5p8p.js";
@@ -18,18 +18,21 @@ import {
18
18
  } from "./cli-3dpj7atn.js";
19
19
  import {
20
20
  startPricingRefreshLoop
21
- } from "./cli-b9dd0h3k.js";
21
+ } from "./cli-vw03hg5t.js";
22
+ import {
23
+ seedPricingFromModelsDev
24
+ } from "./cli-tdh4hjr2.js";
22
25
  import {
23
26
  ensureRbacSeedsSynced,
24
27
  getUserGrant
25
- } from "./cli-r84ctdxn.js";
28
+ } from "./cli-83wkg402.js";
26
29
  import {
27
30
  can,
28
31
  decideAdmission,
29
32
  grantLeadEquivalence,
30
33
  isRbacEnabled,
31
34
  revokeLeadEquivalence
32
- } from "./cli-zfzznn7c.js";
35
+ } from "./cli-ytxs7mn1.js";
33
36
  import {
34
37
  AppDefinitionSchema,
35
38
  AppElementsSchema,
@@ -93,7 +96,7 @@ import {
93
96
  upsertScriptConnection,
94
97
  validateDefinition,
95
98
  writeBareImportShim
96
- } from "./cli-fmy65jdn.js";
99
+ } from "./cli-6ks9xf1n.js";
97
100
  import {
98
101
  detachedProcessGroup,
99
102
  registerProcessGroup,
@@ -102,10 +105,6 @@ import {
102
105
  import {
103
106
  getApiKey
104
107
  } from "./cli-f14fvzag.js";
105
- import {
106
- ZodFirstPartyTypeKind,
107
- objectType
108
- } from "./cli-fad8m16k.js";
109
108
  import {
110
109
  buildAuthorizationUrl,
111
110
  createOAuthApp,
@@ -120,10 +119,28 @@ import {
120
119
  listAuthorizationsForApp,
121
120
  onAuthorizationRefreshed,
122
121
  upsertOAuthApp
123
- } from "./cli-56h18ng2.js";
122
+ } from "./cli-r8tdds6s.js";
124
123
  import {
125
- seedPricingFromModelsDev
126
- } from "./cli-2nnd56zt.js";
124
+ ZodFirstPartyTypeKind,
125
+ objectType
126
+ } from "./cli-fad8m16k.js";
127
+ import {
128
+ AgentFsProvider,
129
+ getFileStorageProvider,
130
+ providerPath
131
+ } from "./cli-jsp14b6c.js";
132
+ import {
133
+ CANDIDATE_SET_MULTIPLIER,
134
+ computeScore,
135
+ getEmbeddingProvider,
136
+ getMemoryStore,
137
+ init_constants as init_constants2,
138
+ init_reranker,
139
+ init_sqlite_store,
140
+ isGraphExpansionEnabled,
141
+ rerank,
142
+ rowToCandidate
143
+ } from "./cli-7pnz2v6s.js";
127
144
  import {
128
145
  require_dist
129
146
  } from "./cli-51tf7ac3.js";
@@ -137,82 +154,23 @@ import {
137
154
  startSlackApp,
138
155
  stopSlackApp,
139
156
  withSpan
140
- } from "./cli-qn042eh7.js";
141
- import {
142
- CANDIDATE_SET_MULTIPLIER,
143
- computeScore,
144
- getEmbeddingProvider,
145
- getMemoryStore,
146
- init_constants as init_constants2,
147
- init_reranker,
148
- init_sqlite_store,
149
- isGraphExpansionEnabled,
150
- rerank,
151
- rowToCandidate
152
- } from "./cli-jew3jda5.js";
157
+ } from "./cli-n0q9b7j4.js";
153
158
  import {
154
159
  init_task_attachment_links,
155
160
  taskAttachmentDisplayUrl,
156
161
  taskAttachmentFetchCommand
157
162
  } from "./cli-2658f6at.js";
158
163
  import {
159
- AgentFsProvider,
160
- getFileStorageProvider,
161
- providerPath
162
- } from "./cli-jsp14b6c.js";
163
- import {
164
- $OpenAPIRegistry,
165
- $OpenApiGeneratorV31,
166
- AgentAvatarSchema,
167
- AgentMemoryScopeSchema,
168
- AgentMemorySourceSchema,
169
- AgentStatusSchema,
170
- AgentTaskStatusSchema,
171
- AssetKeySchema,
172
- AttachmentInputSchema,
173
- BudgetRefusalCauseSchema,
174
- ChannelTypeSchema,
175
- CooldownConfigSchema,
176
- CreateTaskOptionsSchema,
177
164
  CredentialBindingSchema,
178
- ExtensionManifestSchema,
179
- FollowUpConfigSchema,
180
- InputValueSchema,
181
- KvKeySchema,
182
- KvNamespaceSchema,
183
165
  KvTypeCollisionError,
184
- KvValueTypeSchema,
185
166
  MAX_EMPTY_POLLS,
186
- MetricDefinitionSchema,
187
- ModelTierSchema,
188
- OnUnsupportedSchema,
189
- PageAuthModeSchema,
190
- PageContentTypeSchema,
191
- PromptTemplateScopeSchema,
192
- PromptTemplateStateSchema,
193
- ProviderNameSchema,
194
- ReasoningEffortSchema,
195
- RepoGuidelinesInputSchema,
196
- RepoHooksSchema,
197
- RoutingReasonSchema,
198
- ScheduledTaskTargetTypeSchema,
199
- ScriptRunStatusSchema,
200
- ServiceStatusSchema,
201
- SteerModeSchema,
202
- SteerOutcomeSchema,
203
167
  SteeringRequestError,
204
- SwarmConfigScopeSchema,
205
- TriggerConfigSchema,
206
- WorkflowDefinitionSchema,
207
- WorkflowNodePatchSchema,
208
- WorkflowRunStatusSchema,
209
168
  acceptTask,
210
169
  agentContextKey,
211
170
  agentmailContextKey,
212
171
  beginRequestAuthScope,
213
172
  buildJiraContextKey,
214
173
  buildRoutingAffinityFromAgent,
215
- canWriteAssetKey,
216
174
  cancelPendingApprovalRequestsForRun,
217
175
  cancelTask,
218
176
  checkDependencies,
@@ -365,14 +323,11 @@ import {
365
323
  incrKv,
366
324
  incrementEmptyPollCount,
367
325
  initDb,
368
- init_bundle_path,
369
326
  init_context_key,
370
327
  init_credential_broker,
371
328
  init_date_utils,
372
329
  init_db,
373
330
  init_db_client,
374
- init_dist,
375
- init_key,
376
331
  init_request_auth_context,
377
332
  init_slack_routing,
378
333
  init_steering,
@@ -380,17 +335,13 @@ import {
380
335
  init_task_lifecycle_events,
381
336
  init_telemetry,
382
337
  init_templates,
383
- init_types,
384
- init_zod_openapi,
385
338
  insertTaskAttachment,
386
339
  installMcpServer,
387
340
  installSkill,
388
341
  isAgentEligibleForTask,
389
342
  isInTransaction,
390
343
  isReservedConfigKey,
391
- isSafeBundlePath,
392
344
  isSteeringEnabled,
393
- isTerminalTaskStatus,
394
345
  linearContextKey,
395
346
  listCancelledApprovalRequestsForRun,
396
347
  listKv,
@@ -404,12 +355,10 @@ import {
404
355
  maskSecrets,
405
356
  moveTaskFromBacklog,
406
357
  moveTaskToBacklog,
407
- normalizeAssetKey,
408
358
  normalizeDateRequired,
409
359
  onTaskStarted,
410
360
  overwriteTerminalTaskResultText,
411
361
  pageContextKey,
412
- parseAssetKey,
413
362
  placeholderForConfigKey,
414
363
  postMessage,
415
364
  promoteDraftTask,
@@ -433,7 +382,6 @@ import {
433
382
  setBudgetRefusalFollowUpTaskId,
434
383
  setRequestAuth,
435
384
  shouldBlockPolling,
436
- splitLegacyModelAlias,
437
385
  startTask,
438
386
  sweepExpiredKvPrefix,
439
387
  telemetry,
@@ -463,13 +411,67 @@ import {
463
411
  upsertSwarmConfig,
464
412
  validateConfigValue,
465
413
  workflowContextKey
466
- } from "./cli-zvgj5zg8.js";
414
+ } from "./cli-djvxhnc4.js";
415
+ import {
416
+ $OpenAPIRegistry,
417
+ $OpenApiGeneratorV31,
418
+ AgentAvatarSchema,
419
+ AgentMemoryScopeSchema,
420
+ AgentMemorySourceSchema,
421
+ AgentStatusSchema,
422
+ AgentTaskStatusSchema,
423
+ AssetKeySchema,
424
+ AttachmentInputSchema,
425
+ BudgetRefusalCauseSchema,
426
+ ChannelTypeSchema,
427
+ CooldownConfigSchema,
428
+ CreateTaskOptionsSchema,
429
+ ExtensionManifestSchema,
430
+ FollowUpConfigSchema,
431
+ InputValueSchema,
432
+ KvKeySchema,
433
+ KvNamespaceSchema,
434
+ KvValueTypeSchema,
435
+ MetricDefinitionSchema,
436
+ ModelTierSchema,
437
+ OnUnsupportedSchema,
438
+ PageAuthModeSchema,
439
+ PageContentTypeSchema,
440
+ PromptTemplateScopeSchema,
441
+ PromptTemplateStateSchema,
442
+ ProviderNameSchema,
443
+ ReasoningEffortSchema,
444
+ RepoGuidelinesInputSchema,
445
+ RepoHooksSchema,
446
+ RoutingReasonSchema,
447
+ ScheduledTaskTargetTypeSchema,
448
+ ScriptRunStatusSchema,
449
+ ServiceStatusSchema,
450
+ SteerModeSchema,
451
+ SteerOutcomeSchema,
452
+ SwarmConfigScopeSchema,
453
+ TriggerConfigSchema,
454
+ WorkflowDefinitionSchema,
455
+ WorkflowNodePatchSchema,
456
+ WorkflowRunStatusSchema,
457
+ canWriteAssetKey,
458
+ init_bundle_path,
459
+ init_dist,
460
+ init_key,
461
+ init_types,
462
+ init_zod_openapi,
463
+ isSafeBundlePath,
464
+ isTerminalTaskStatus,
465
+ normalizeAssetKey,
466
+ parseAssetKey,
467
+ splitLegacyModelAlias
468
+ } from "./cli-zcsyfw2z.js";
467
469
  import {
468
470
  generateDefaultClaudeMd,
469
471
  generateDefaultIdentityMd,
470
472
  generateDefaultSoulMd,
471
473
  init_defaults
472
- } from "./cli-ht5rs63n.js";
474
+ } from "./cli-b2g6mzjc.js";
473
475
  import {
474
476
  deepInterpolate,
475
477
  findInterpolationTokens,
@@ -488,6 +490,11 @@ import {
488
490
  getPublicMcpBaseUrl,
489
491
  init_constants
490
492
  } from "./cli-dv6cdjs2.js";
493
+ import {
494
+ getSlackConfiguration,
495
+ init_config,
496
+ isSlackConfigured
497
+ } from "./cli-n7h1kqpf.js";
491
498
  import {
492
499
  init_env_flag,
493
500
  isEnvFlagEnabled,
@@ -541,7 +548,7 @@ import {
541
548
  import {
542
549
  init_package,
543
550
  package_default
544
- } from "./cli-zvkq5csn.js";
551
+ } from "./cli-ybpp1srm.js";
545
552
  import {
546
553
  init_secret_scrubber,
547
554
  isSensitiveKey,
@@ -14276,6 +14283,9 @@ init_db_client();
14276
14283
 
14277
14284
  // src/be/extensions/db.ts
14278
14285
  init_db();
14286
+
14287
+ class ExtensionOwnershipError extends Error {
14288
+ }
14279
14289
  function rowToExtension(row) {
14280
14290
  return {
14281
14291
  ...row,
@@ -14302,6 +14312,12 @@ async function installExtension(args) {
14302
14312
  args.manifest.name
14303
14313
  ]);
14304
14314
  const existing = existingRow ? rowToExtension(existingRow) : null;
14315
+ if (existing && args.ownerOnly && existing.createdByAgentId !== args.ownerOnly) {
14316
+ throw new ExtensionOwnershipError("Forbidden: extension belongs to another owner");
14317
+ }
14318
+ if (existing?.enabled && args.ownerOnly && (args.config !== undefined && JSON.stringify(args.config) !== existing.configJson || args.priority !== undefined && args.priority !== existing.priority)) {
14319
+ throw new ExtensionOwnershipError("Forbidden: only a lead or operator may change live extension configuration");
14320
+ }
14305
14321
  const now = new Date().toISOString();
14306
14322
  if (!existing) {
14307
14323
  const id = crypto.randomUUID();
@@ -14499,11 +14515,17 @@ async function updateExtensionMeta(id, args) {
14499
14515
  sets.push("description = ?");
14500
14516
  values.push(args.description);
14501
14517
  }
14502
- if (sets.length === 0)
14518
+ if (sets.length === 0 && !args.ownerOnly)
14503
14519
  return getExtensionById(id);
14504
14520
  sets.push("updated_by = ?", "updatedAt = ?");
14505
14521
  values.push(args.updatedBy ?? null, new Date().toISOString(), id);
14506
- const row = await getDbClient().get(`UPDATE extensions SET ${sets.join(", ")} WHERE id = ? RETURNING *`, values);
14522
+ const ownerCondition = args.ownerOnly ? " AND createdByAgentId = ? AND enabled = 0" : "";
14523
+ if (args.ownerOnly)
14524
+ values.push(args.ownerOnly);
14525
+ const row = await getDbClient().get(`UPDATE extensions SET ${sets.join(", ")} WHERE id = ?${ownerCondition} RETURNING *`, values);
14526
+ if (!row && args.ownerOnly) {
14527
+ throw new ExtensionOwnershipError("Forbidden: extension must be your own disabled draft");
14528
+ }
14507
14529
  return row ? rowToExtension(row) : null;
14508
14530
  }
14509
14531
  async function setExtensionState(id, args) {
@@ -14544,8 +14566,11 @@ async function recordExtensionFailure(id, lastError, maxConsecutiveFailures) {
14544
14566
  RETURNING *`, [lastError, maxConsecutiveFailures, maxConsecutiveFailures, new Date().toISOString(), id]);
14545
14567
  return row ? rowToExtension(row) : null;
14546
14568
  }
14547
- async function deleteExtension(id) {
14548
- const result = await getDbClient().run("DELETE FROM extensions WHERE id = ?", [id]);
14569
+ async function deleteExtension(id, ownerOnly) {
14570
+ const result = await getDbClient().run(`DELETE FROM extensions WHERE id = ?${ownerOnly ? " AND createdByAgentId = ? AND enabled = 0" : ""}`, ownerOnly ? [id, ownerOnly] : [id]);
14571
+ if (result.changes === 0 && ownerOnly) {
14572
+ throw new ExtensionOwnershipError("Forbidden: extension must be your own disabled draft");
14573
+ }
14549
14574
  return result.changes > 0;
14550
14575
  }
14551
14576
  async function insertExtensionRun(args) {
@@ -20757,6 +20782,8 @@ function resourceIdOf(resource) {
20757
20782
  return resource.agentId;
20758
20783
  case "kv-namespace":
20759
20784
  return resource.namespace;
20785
+ case "extension":
20786
+ return resource.extensionId ?? null;
20760
20787
  case "app":
20761
20788
  return resource.appId;
20762
20789
  case "owned":
@@ -23685,7 +23712,7 @@ async function notifySlack(text) {
23685
23712
  return;
23686
23713
  }
23687
23714
  try {
23688
- const { getSlackApp: getSlackApp2 } = await import("./app-p8teva95.js");
23715
+ const { getSlackApp: getSlackApp2 } = await import("./app-03na2vwb.js");
23689
23716
  const app = getSlackApp2();
23690
23717
  if (!app) {
23691
23718
  console.warn("[Jira webhook keepalive] Slack not available, cannot send notification");
@@ -23756,7 +23783,7 @@ async function deleteJiraWebhook(webhookId) {
23756
23783
  console.log(`[Jira webhook keepalive] Deleted webhook id=${webhookId}`);
23757
23784
  }
23758
23785
  async function overwriteWebhookIds(next) {
23759
- const { getDbClient: getDbClient2 } = await import("./db-r3jxf3wy.js");
23786
+ const { getDbClient: getDbClient2 } = await import("./db-4jjvwz1s.js");
23760
23787
  await getDbClient2().transaction(async (tx) => {
23761
23788
  const row = await tx.get("SELECT metadata FROM oauth_apps WHERE provider = 'jira'");
23762
23789
  if (!row) {
@@ -97476,9 +97503,10 @@ async function reloadGlobalConfigsAndIntegrations() {
97476
97503
  return runWithoutRequestAuth(() => reloadGlobalConfigsAndIntegrationsInner());
97477
97504
  }
97478
97505
  async function reloadGlobalConfigsAndIntegrationsInner() {
97479
- const { getEmbeddingProvider: getEmbeddingProvider2, resetEmbeddingProvider } = await import("./index-gpfn1741.js");
97506
+ const { getEmbeddingProvider: getEmbeddingProvider2, resetEmbeddingProvider } = await import("./index-b56xkbc7.js");
97480
97507
  const wasEmbeddingsConfigured = getEmbeddingProvider2().isConfigured();
97481
97508
  const updated = await loadGlobalConfigsIntoEnv(true);
97509
+ await stopSlackApp();
97482
97510
  const { resetFileStorageProvider } = await import("./registry-v5wytg0s.js");
97483
97511
  resetFileStorageProvider();
97484
97512
  resetEmbeddingProvider();
@@ -97488,10 +97516,10 @@ async function reloadGlobalConfigsAndIntegrationsInner() {
97488
97516
  integrations.push("embeddings");
97489
97517
  }
97490
97518
  if (!wasEmbeddingsConfigured && isEmbeddingsConfigured) {
97491
- import("./boot-reembed-je26h5y7.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
97519
+ import("./boot-reembed-c98xrad3.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
97492
97520
  console.error("[config-reload] memory backfill failed (non-fatal):", err);
97493
97521
  });
97494
- import("./boot-reembed-1qmybsd4.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
97522
+ import("./boot-reembed-zt3qm9xn.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
97495
97523
  console.error("[config-reload] script backfill failed (non-fatal):", err);
97496
97524
  });
97497
97525
  }
@@ -97511,9 +97539,8 @@ async function reloadGlobalConfigsAndIntegrationsInner() {
97511
97539
  resetJira();
97512
97540
  if (await initJira())
97513
97541
  integrations.push("jira");
97514
- await stopSlackApp();
97515
- await startSlackApp();
97516
- integrations.push("slack");
97542
+ if (await startSlackApp())
97543
+ integrations.push("slack");
97517
97544
  return {
97518
97545
  configsLoaded: updated.length,
97519
97546
  keysUpdated: updated,
@@ -97813,6 +97840,7 @@ async function handleCore(req, res, myAgentId, apiKey) {
97813
97840
 
97814
97841
  // src/server.ts
97815
97842
  init_resolver();
97843
+ init_config();
97816
97844
 
97817
97845
  // src/tools/accept-steer.ts
97818
97846
  init_zod();
@@ -98304,7 +98332,7 @@ function setPreloadedTools(server, names) {
98304
98332
  async function applyPreToolCall(name, args, requestInfo, inputSchema) {
98305
98333
  if (requestInfo.callOrigin !== "mcp")
98306
98334
  return { args };
98307
- const dispatcher = await import("./dispatcher-06vph6q4.js");
98335
+ const dispatcher = await import("./dispatcher-ca590nkz.js");
98308
98336
  const result = await dispatcher.dispatchPre("pre.tool.call", { tool: name, args, requestInfo }, inputSchema ? {
98309
98337
  validateModify: async (data) => {
98310
98338
  const schema = normalizeObjectSchema(inputSchema) ?? inputSchema;
@@ -106058,6 +106086,7 @@ var extensionListItemSchema = looseObject({
106058
106086
  name: string().optional(),
106059
106087
  version: number().optional(),
106060
106088
  activeVersion: number().optional(),
106089
+ createdByAgentId: string().nullable().optional(),
106061
106090
  enabled: boolean().optional(),
106062
106091
  status: string().optional(),
106063
106092
  priority: number().optional(),
@@ -106068,6 +106097,7 @@ var extensionToolOutputSchema = swarmToolOutputSchema({
106068
106097
  name: string().optional(),
106069
106098
  version: number().optional(),
106070
106099
  activeVersion: number().optional(),
106100
+ createdByAgentId: string().nullable().optional(),
106071
106101
  enabled: boolean().optional(),
106072
106102
  status: string().optional(),
106073
106103
  priority: number().optional(),
@@ -106083,6 +106113,7 @@ function coerceExtensionSummary(entry) {
106083
106113
  const extension = isRecord2(entry) ? entry : {};
106084
106114
  return {
106085
106115
  id: typeof extension.id === "string" ? extension.id : undefined,
106116
+ createdByAgentId: typeof extension.createdByAgentId === "string" ? extension.createdByAgentId : null,
106086
106117
  name: typeof extension.name === "string" ? extension.name : undefined,
106087
106118
  version: typeof extension.version === "number" ? extension.version : undefined,
106088
106119
  activeVersion: typeof extension.activeVersion === "number" ? extension.activeVersion : undefined,
@@ -106207,7 +106238,7 @@ var registerExtensionEnableTool = (server) => {
106207
106238
  // src/tools/extension-install.ts
106208
106239
  init_zod();
106209
106240
  init_types();
106210
- var EXTENSION_INSTALL_DESCRIPTION = "Validate and store a TypeScript extension bundle (manifest plus a files map with one hooks.ts). Fetch the hook contract first: GET /api/extensions/type-defs returns swarm-extension.d.ts with every event and modify shape. The extension remains disabled until a lead, operator, or dashboard user enables it with extension-enable.";
106241
+ var EXTENSION_INSTALL_DESCRIPTION = "Any authenticated agent may create and install its own TypeScript extension bundle (manifest plus a files map with one hooks.ts). Fetch the hook contract first: GET /api/extensions/type-defs returns swarm-extension.d.ts with every event and modify shape. The installing agent is recorded as createdByAgentId. Workers may install subsequent versions only for their own extensions; those versions remain inactive. A new extension remains disabled until a lead, operator, or dashboard user enables it with extension-enable.";
106211
106242
  function extensionInstallResult(data, fallbackName) {
106212
106243
  const body = data;
106213
106244
  const extension = coerceExtensionSummary(body.extension);
@@ -106254,9 +106285,9 @@ function extensionListItems(data) {
106254
106285
  return data.extensions.map(coerceExtensionSummary);
106255
106286
  }
106256
106287
  function renderExtensionsTable(extensions) {
106257
- const header = "| Name | Version | Active | Enabled | Status | Priority | Failures |";
106258
- const divider = "| --- | ---: | ---: | --- | --- | ---: | ---: |";
106259
- const rows = extensions.map((extension) => `| ${extension.name ?? "?"} | ${extension.version ?? "?"} | ${extension.activeVersion ?? "?"} | ${extension.enabled ?? false} | ${extension.status ?? "unknown"} | ${extension.priority ?? "?"} | ${extension.consecutiveFailures ?? 0} |`);
106288
+ const header = "| Name | Owner agent | Version | Active | Enabled | Status | Priority | Failures |";
106289
+ const divider = "| --- | --- | ---: | ---: | --- | --- | ---: | ---: |";
106290
+ const rows = extensions.map((extension) => `| ${extension.name ?? "?"} | ${extension.createdByAgentId ?? "operator/user"} | ${extension.version ?? "?"} | ${extension.activeVersion ?? "?"} | ${extension.enabled ?? false} | ${extension.status ?? "unknown"} | ${extension.priority ?? "?"} | ${extension.consecutiveFailures ?? 0} |`);
106260
106291
  return [header, divider, ...rows].join(`
106261
106292
  `);
106262
106293
  }
@@ -117032,7 +117063,7 @@ async function notifyAutomationPreflightFailure(preflight) {
117032
117063
  return;
117033
117064
  }
117034
117065
  try {
117035
- const { getSlackApp: getSlackApp2 } = await import("./app-p8teva95.js");
117066
+ const { getSlackApp: getSlackApp2 } = await import("./app-03na2vwb.js");
117036
117067
  const app = getSlackApp2();
117037
117068
  if (!app) {
117038
117069
  console.warn("[Automation Preflight] Slack not available, cannot send notification");
@@ -117055,6 +117086,7 @@ Fix setup: ${getAppUrl()}${preflight.fixUrl}`),
117055
117086
  }
117056
117087
 
117057
117088
  // src/be/automation-preflight.ts
117089
+ init_config();
117058
117090
  init_db();
117059
117091
  var NEEDS_SETUP_PREFIX = "needs_setup:";
117060
117092
  function hasValue(value) {
@@ -117232,7 +117264,7 @@ async function getAutomationSetupStates() {
117232
117264
  const agentFsOrg = process.env.AGENT_FS_DEFAULT_ORG_ID ?? process.env.AGENT_FS_SHARED_ORG_ID;
117233
117265
  const gscConfigured = present(process.env.GSC_SERVICE_ACCOUNT_BASE64) || present(process.env.GSC_SERVICE_ACCOUNT_JSON);
117234
117266
  return {
117235
- slack: enabled(process.env.SLACK_DISABLE) && present(process.env.SLACK_BOT_TOKEN) && present(process.env.SLACK_APP_TOKEN) ? "verified" : "unverified",
117267
+ slack: getSlackConfiguration().mode === "socket" && isSlackConfigured() ? "configured" : "unverified",
117236
117268
  github: present(process.env.GITHUB_WEBHOOK_SECRET) && present(process.env.GITHUB_APP_ID) && present(process.env.GITHUB_APP_PRIVATE_KEY) ? "verified" : "unverified",
117237
117269
  linear: linearTokens ? "verified" : "unverified",
117238
117270
  jira: jiraTokens && jiraCloudId ? "verified" : "unverified",
@@ -120177,7 +120209,7 @@ class HumanInTheLoopExecutor extends BaseExecutor {
120177
120209
  }
120178
120210
  if (notification.channel === "slack") {
120179
120211
  try {
120180
- const { getSlackApp: getSlackApp2 } = await import("./app-p8teva95.js");
120212
+ const { getSlackApp: getSlackApp2 } = await import("./app-03na2vwb.js");
120181
120213
  const slackApp = getSlackApp2();
120182
120214
  if (!slackApp) {
120183
120215
  console.warn("[HITL] Slack not initialized — cannot send notification");
@@ -120297,7 +120329,7 @@ class NotifyExecutor extends BaseExecutor {
120297
120329
  }
120298
120330
  }
120299
120331
  case "slack": {
120300
- const { getSlackApp: getSlackApp2 } = await import("./app-p8teva95.js");
120332
+ const { getSlackApp: getSlackApp2 } = await import("./app-03na2vwb.js");
120301
120333
  const app = getSlackApp2();
120302
120334
  if (!app) {
120303
120335
  return {
@@ -129105,7 +129137,8 @@ function hasCapability(cap) {
129105
129137
  return getCapabilities().has(cap);
129106
129138
  }
129107
129139
  function getEnabledCapabilities() {
129108
- return Array.from(getCapabilities());
129140
+ const capabilities = Array.from(getCapabilities());
129141
+ return getSlackConfiguration().mode === "socket" ? capabilities : capabilities.filter((capability) => capability !== "slack");
129109
129142
  }
129110
129143
  function isScriptsOnlyMcp() {
129111
129144
  return resolveScriptsOnlyMode({ env: process.env.SCRIPTS_ONLY_MCP });
@@ -130540,25 +130573,18 @@ function maxUpdatedAt(extensions) {
130540
130573
  return extensions.reduce((latest, extension) => extension.updatedAt > latest ? extension.updatedAt : latest, "");
130541
130574
  }
130542
130575
  async function loadableExtension(record3) {
130543
- if (record3.activeVersion !== record3.version) {
130544
- const version = await getExtensionVersion(record3.id, record3.activeVersion);
130545
- if (!version) {
130546
- throw new ExtensionLifecycleError(`Extension version ${record3.activeVersion} was not found`, 404);
130547
- }
130548
- return {
130549
- record: {
130550
- ...record3,
130551
- manifestJson: version.manifestJson,
130552
- contentHash: version.contentHash
130553
- },
130554
- manifest: ExtensionManifestSchema.parse(JSON.parse(version.manifestJson)),
130555
- files: JSON.parse(version.filesJson)
130556
- };
130576
+ const version = await getExtensionVersion(record3.id, record3.activeVersion);
130577
+ if (!version) {
130578
+ throw new ExtensionLifecycleError(`Extension version ${record3.activeVersion} was not found`, 404);
130557
130579
  }
130558
130580
  return {
130559
- record: record3,
130560
- manifest: ExtensionManifestSchema.parse(JSON.parse(record3.manifestJson)),
130561
- files: await getExtensionFiles(record3.id)
130581
+ record: {
130582
+ ...record3,
130583
+ manifestJson: version.manifestJson,
130584
+ contentHash: version.contentHash
130585
+ },
130586
+ manifest: ExtensionManifestSchema.parse(JSON.parse(version.manifestJson)),
130587
+ files: JSON.parse(version.filesJson)
130562
130588
  };
130563
130589
  }
130564
130590
  async function removeRegistered(id2) {
@@ -131183,4 +131209,4 @@ async function dispatchPost(event, payload, opts) {
131183
131209
  }
131184
131210
  }
131185
131211
 
131186
- export { DEFAULT_NEGOTIATED_PROTOCOL_VERSION, SUPPORTED_PROTOCOL_VERSIONS, isJSONRPCRequest, isJSONRPCResultResponse, isJSONRPCErrorResponse, JSONRPCMessageSchema, isInitializeRequest, McpServer, isGitHubEnabled, initGitHub, verifyWebhookSignature, isAgentMailEnabled, initAgentMail, verifyAgentMailWebhook, findUserById, findUserByExternalId, getUserIdentities, listUserEvents, listUserTokens, recordIdentityEvent, findOrCreateUserByEmail, linkIdentity, unlinkIdentity, mintToken, revokeToken, resolveUserByToken, mintSessionToken, revokeSessionToken, fingerprintApiKey, resolveIdentity, renderIdentity, createAdditiveBuffer, installExtension, getExtensionFiles, getExtensionById, getExtensionByName, listExtensions, listExtensionVersions, updateExtensionMeta, deleteExtension, listExtensionRuns, SDK_ALLOWLIST, mcpToolNameForSdkMethod, mcpOverflowAuthError, toolErr, createToolRegistrar, warnIfCorsAllowsAnyOrigin, isOriginAllowedForCredentials, setCorsHeaders, parseQueryParams, getPathSegments, wireHttpSpanLifecycle, safeRequestUrlForLog, agentWithCapacity, parseBody, BODY_TOO_LARGE, enforceContentLengthCap, json, jsonError, triggerSchemaErrorResponse, deriveApiBaseUrl, httpServerSemconvAttributes, runtimeInstanceHeader, describeRequestRoute, route, handleMcpBridge, Redacted, SCRIPT_SDK_RESPONSE_LIMIT_BYTES, readScriptSdkJsonResponse, ExtensionConfigError, ExtensionLifecycleError, setExtensionLoopbackBaseUrl, enableExtension, disableExtension, activateVersion, reloadExtension, loadEnabledExtensions, stopExtensionRuntime, ExtensionAbortedError, isRegistered, isExtensionAgentId, getExtensionBridgeToken, resolveBridgeCallOrigin, extensionIdForAgent, runContext, registerLoaded, unregister, listRegistered, dispatchPre, dispatchPost, TaskCreationBlockedError, createTaskWithSiblingAwareness, isInboxAllowed, isSenderAllowed, handleMessageReceived, AGENT_MAX_TASKS_CONFIG_KEY, reconcileAgentMaxTasksPolicy, resetAgentMaxTasksMirror, upsertSwarmConfigWithPolicyMirror, runtimeStaleThresholdMinutes, upsertRuntimeInstance, getRuntimeInstanceById, touchRuntimeInstance, countActiveRuntimeInstancesForAgent, listRuntimeInstancesForAgent, setRuntimeCredentialReady, reconcileAgentStatusFromRuntimes, agentsWithLiveRuntime, expireStaleRuntimeInstances, enqueueAuditRow, enqueueAdmissionRow, flushAuditBuffer, startAuditWriter, stopAuditWriter, startAuditGc, stopAuditGc, handlePullRequest, handleIssue, handleComment, handlePullRequestReview, handleCheckRun, handleCheckSuite, handleWorkflowRun, isGitLabEnabled, initGitLab, verifyGitLabWebhook, handleMergeRequest, handleIssue2 as handleIssue1, handleNote, handlePipeline, repointTrackerSyncBySwarmId, getJiraMetadata, updateJiraMetadata, clearJiraMetadata, recordUnmappedIdentity, MAX_TASK_ATTACHMENT_BYTES, recordTaskAttachmentUpload, buildEffectiveText, bufferedFileFailures, fetchSlackFiles, createSlackTaskWithFiles, notifySlackFileFailures, hasOtherUserMention, broadcastMatches, routeMessage, extractTaskFromMessage, extractSlackMessageText, registerJiraWebhook, deleteJiraWebhook, isJiraEnabled, initJira, handleJiraWebhook, handleAgentSessionEvent, handleIssueUpdate, handleIssueDelete, handleAgentSessionPrompted, isLinearEnabled, initLinear, parseCookieHeader, extractAndVerifyCookie, issuePageSessionCookie, resolveHttpRequestAuth, loadGlobalConfigsIntoEnv, reloadGlobalConfigsAndIntegrations, scheduleIntegrationsReload, handleCore, userCtx, resolveTaskAuditUserId, resolveHttpAuditUserId, resolveHttpFavoriteOwner, handleApps, getUserCommsPrefs, getTaskDetailsInputSchema, getTaskDetailsOutputSchema, getTaskDetailsHandler, cancelTaskInputSchema, cancelTaskOutputSchema, cancelTaskHandler, executeReadOnlyQuery, assertSelectOnlyQuery, handleDbQuery, snapshotMetric, AssetKeyAuthorizationError, authorizeAssetKeyWrite, snapshotPage, assertOAuthAppUrlsSafe, assertOAuthEgressUrlSafe, listOAuthPresets, listOAuthPresetIds, getOAuthPreset, hydrateOAuthAppFromPreset, scopedResourceScopeIdSchema, resolveScopedResourceId, dedupeMemoryDocumentIds, recordMemoryAccesses, recordRetrievals, ExplicitSelfDuplicateError, applyRating, shouldPersistAutomaticTaskMemory, REBOOT_RETRY_PIN_TAG, getPinCandidateAgent, resolveLeadOnlyRecoveryAssignment, getResumeGeneration, getNextResumeGeneration, createWorkerTaskFollowUp, createResumeFollowUp, createRerouteDecisionTask, createPoolStarvationDecisionTask, validateJsonSchema, guardTerminalTaskResultWrite, getTasksInputSchema, getTasksOutputSchema, getTasksHandler, reservedNamespaceError, reservedRoomKeyError, refreshLinks, canReadMemory, getLinksForMemory, expandCandidatesWithGraph, indexMemoryContent, markKapsoMessageRead, sendKapsoReaction, getKapsoConfig, getKapsoNumberMapping, markKapsoMessageSeen, resolveRoomNamespace, roomRequestInfo, authorizeRoomNamespace, RoomOperationSchema, removeAwarenessStates, roomTopic, decodeRoomSnapshot, roomView, getRoom, changeRoom, applyRoomUpdate, resetRoom, sweepRooms, closeRooms, removeNamespaceRooms, automationIntegrationFixUrl, preflightAutomation, getAutomationSetupStates, listEnabledAutomationPreflightInputs, TriggerSchemaError, startWorkflowExecution, setupWorkflowResumeListener, retryFailedRun, cancelWorkflowRun, resumeWaitState, initWaitBusSubscriptions, subscribeWaitToBus, recoverIncompleteRuns, startRetryPoller, stopRetryPoller, validateTemplateVariables, instantiateTemplate, handleWebhookTrigger, logOpenWebhookTriggers, handleEventTrigger, handleScheduleTrigger, verifyHmacSignature, WebhookError, snapshotWorkflow, snapshotAndUpdateWorkflow, startWaitPoller, stopWaitPoller, RawLlmConfigSchema, RawLlmOutputSchema, executeRawLlm, getExecutorRegistry, initWorkflows, dispatchScheduleTarget, calculateNextRun, startScheduler, stopScheduler, runScheduleNow, createEvent, createEventsBatch, getEventCountsFiltered, getEventsFiltered, mergeScheduleTiming, validateRecurringTiming, checkOutputSchemaShape, sendTaskOutputSchema, sendTaskHandler, parseSkillContent, steerTaskUserInputSchema, steerTaskOutputSchema, steerTaskHandler, canClaim, emitBudgetRefusalSideEffects, taskActionInputSchema, taskActionOutputSchema, taskActionHandler, patchWorkflowDefinition, resolveScriptsOnlyMode, ALL_CAPABILITIES, hasCapability, getEnabledCapabilities, createServer };
131212
+ export { DEFAULT_NEGOTIATED_PROTOCOL_VERSION, SUPPORTED_PROTOCOL_VERSIONS, isJSONRPCRequest, isJSONRPCResultResponse, isJSONRPCErrorResponse, JSONRPCMessageSchema, isInitializeRequest, McpServer, isGitHubEnabled, initGitHub, verifyWebhookSignature, isAgentMailEnabled, initAgentMail, verifyAgentMailWebhook, findUserById, findUserByExternalId, getUserIdentities, listUserEvents, listUserTokens, recordIdentityEvent, findOrCreateUserByEmail, linkIdentity, unlinkIdentity, mintToken, revokeToken, resolveUserByToken, mintSessionToken, revokeSessionToken, fingerprintApiKey, resolveIdentity, renderIdentity, createAdditiveBuffer, ExtensionOwnershipError, installExtension, getExtensionFiles, getExtensionById, getExtensionByName, listExtensions, listExtensionVersions, updateExtensionMeta, deleteExtension, listExtensionRuns, SDK_ALLOWLIST, mcpToolNameForSdkMethod, mcpOverflowAuthError, toolErr, createToolRegistrar, warnIfCorsAllowsAnyOrigin, isOriginAllowedForCredentials, setCorsHeaders, parseQueryParams, getPathSegments, wireHttpSpanLifecycle, safeRequestUrlForLog, agentWithCapacity, parseBody, BODY_TOO_LARGE, enforceContentLengthCap, json, jsonError, triggerSchemaErrorResponse, deriveApiBaseUrl, httpServerSemconvAttributes, runtimeInstanceHeader, describeRequestRoute, route, handleMcpBridge, Redacted, SCRIPT_SDK_RESPONSE_LIMIT_BYTES, readScriptSdkJsonResponse, ExtensionConfigError, ExtensionLifecycleError, setExtensionLoopbackBaseUrl, enableExtension, disableExtension, activateVersion, reloadExtension, loadEnabledExtensions, stopExtensionRuntime, ExtensionAbortedError, isRegistered, isExtensionAgentId, getExtensionBridgeToken, resolveBridgeCallOrigin, extensionIdForAgent, runContext, registerLoaded, unregister, listRegistered, dispatchPre, dispatchPost, TaskCreationBlockedError, createTaskWithSiblingAwareness, isInboxAllowed, isSenderAllowed, handleMessageReceived, AGENT_MAX_TASKS_CONFIG_KEY, reconcileAgentMaxTasksPolicy, resetAgentMaxTasksMirror, upsertSwarmConfigWithPolicyMirror, runtimeStaleThresholdMinutes, upsertRuntimeInstance, getRuntimeInstanceById, touchRuntimeInstance, countActiveRuntimeInstancesForAgent, listRuntimeInstancesForAgent, setRuntimeCredentialReady, reconcileAgentStatusFromRuntimes, agentsWithLiveRuntime, expireStaleRuntimeInstances, enqueueAuditRow, enqueueAdmissionRow, flushAuditBuffer, startAuditWriter, stopAuditWriter, startAuditGc, stopAuditGc, handlePullRequest, handleIssue, handleComment, handlePullRequestReview, handleCheckRun, handleCheckSuite, handleWorkflowRun, isGitLabEnabled, initGitLab, verifyGitLabWebhook, handleMergeRequest, handleIssue2 as handleIssue1, handleNote, handlePipeline, repointTrackerSyncBySwarmId, getJiraMetadata, updateJiraMetadata, clearJiraMetadata, recordUnmappedIdentity, MAX_TASK_ATTACHMENT_BYTES, recordTaskAttachmentUpload, buildEffectiveText, bufferedFileFailures, fetchSlackFiles, createSlackTaskWithFiles, notifySlackFileFailures, hasOtherUserMention, broadcastMatches, routeMessage, extractTaskFromMessage, extractSlackMessageText, registerJiraWebhook, deleteJiraWebhook, isJiraEnabled, initJira, handleJiraWebhook, handleAgentSessionEvent, handleIssueUpdate, handleIssueDelete, handleAgentSessionPrompted, isLinearEnabled, initLinear, parseCookieHeader, extractAndVerifyCookie, issuePageSessionCookie, resolveHttpRequestAuth, loadGlobalConfigsIntoEnv, reloadGlobalConfigsAndIntegrations, scheduleIntegrationsReload, handleCore, userCtx, resolveTaskAuditUserId, resolveHttpAuditUserId, resolveHttpFavoriteOwner, handleApps, getUserCommsPrefs, getTaskDetailsInputSchema, getTaskDetailsOutputSchema, getTaskDetailsHandler, cancelTaskInputSchema, cancelTaskOutputSchema, cancelTaskHandler, executeReadOnlyQuery, assertSelectOnlyQuery, handleDbQuery, snapshotMetric, AssetKeyAuthorizationError, authorizeAssetKeyWrite, snapshotPage, assertOAuthAppUrlsSafe, assertOAuthEgressUrlSafe, listOAuthPresets, listOAuthPresetIds, getOAuthPreset, hydrateOAuthAppFromPreset, scopedResourceScopeIdSchema, resolveScopedResourceId, dedupeMemoryDocumentIds, recordMemoryAccesses, recordRetrievals, ExplicitSelfDuplicateError, applyRating, shouldPersistAutomaticTaskMemory, REBOOT_RETRY_PIN_TAG, getPinCandidateAgent, resolveLeadOnlyRecoveryAssignment, getResumeGeneration, getNextResumeGeneration, createWorkerTaskFollowUp, createResumeFollowUp, createRerouteDecisionTask, createPoolStarvationDecisionTask, validateJsonSchema, guardTerminalTaskResultWrite, getTasksInputSchema, getTasksOutputSchema, getTasksHandler, reservedNamespaceError, reservedRoomKeyError, refreshLinks, canReadMemory, getLinksForMemory, expandCandidatesWithGraph, indexMemoryContent, markKapsoMessageRead, sendKapsoReaction, getKapsoConfig, getKapsoNumberMapping, markKapsoMessageSeen, resolveRoomNamespace, roomRequestInfo, authorizeRoomNamespace, RoomOperationSchema, removeAwarenessStates, roomTopic, decodeRoomSnapshot, roomView, getRoom, changeRoom, applyRoomUpdate, resetRoom, sweepRooms, closeRooms, removeNamespaceRooms, automationIntegrationFixUrl, preflightAutomation, getAutomationSetupStates, listEnabledAutomationPreflightInputs, TriggerSchemaError, startWorkflowExecution, setupWorkflowResumeListener, retryFailedRun, cancelWorkflowRun, resumeWaitState, initWaitBusSubscriptions, subscribeWaitToBus, recoverIncompleteRuns, startRetryPoller, stopRetryPoller, validateTemplateVariables, instantiateTemplate, handleWebhookTrigger, logOpenWebhookTriggers, handleEventTrigger, handleScheduleTrigger, verifyHmacSignature, WebhookError, snapshotWorkflow, snapshotAndUpdateWorkflow, startWaitPoller, stopWaitPoller, RawLlmConfigSchema, RawLlmOutputSchema, executeRawLlm, getExecutorRegistry, initWorkflows, dispatchScheduleTarget, calculateNextRun, startScheduler, stopScheduler, runScheduleNow, createEvent, createEventsBatch, getEventCountsFiltered, getEventsFiltered, mergeScheduleTiming, validateRecurringTiming, checkOutputSchemaShape, sendTaskOutputSchema, sendTaskHandler, parseSkillContent, steerTaskUserInputSchema, steerTaskOutputSchema, steerTaskHandler, canClaim, emitBudgetRefusalSideEffects, taskActionInputSchema, taskActionOutputSchema, taskActionHandler, patchWorkflowDefinition, resolveScriptsOnlyMode, ALL_CAPABILITIES, hasCapability, getEnabledCapabilities, createServer };