@desplega.ai/agent-swarm 1.130.0 → 1.131.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 (122) hide show
  1. package/README.md +1 -1
  2. package/dist/{actions-73ee723n.js → actions-w53mbns9.js} +7 -7
  3. package/dist/{anthropic-messages-3xgme8my.js → anthropic-messages-rjmd2e7n.js} +5 -5
  4. package/dist/{app-hz5c2xay.js → app-m9gwqsqv.js} +4 -4
  5. package/dist/{assistant-08mr16yp.js → assistant-bp65m6f3.js} +9 -9
  6. package/dist/{azure-openai-responses-xa4sh9f6.js → azure-openai-responses-c0yjmbfd.js} +8 -5
  7. package/dist/{boot-reembed-5bgan3cd.js → boot-reembed-62p0at2k.js} +4 -4
  8. package/dist/{boot-reembed-z7ykyeq8.js → boot-reembed-xmfp6wdh.js} +5 -5
  9. package/dist/{boot-scrub-logs-b2rjk8mv.js → boot-scrub-logs-rr8q2dms.js} +3 -3
  10. package/dist/{claude-adapter-qr0k17km.js → claude-adapter-2y47mrkd.js} +6 -6
  11. package/dist/{cli-s21zzx4b.js → cli-0rcyq6d9.js} +447 -183
  12. package/dist/{cli-brebbsen.js → cli-2q72qz2s.js} +9 -6
  13. package/dist/{cli-e5p3es48.js → cli-3kf51j15.js} +1 -1
  14. package/dist/{cli-vgexpfsr.js → cli-57khth04.js} +6 -3
  15. package/dist/{cli-h3e66g5b.js → cli-5kx36evn.js} +1 -1
  16. package/dist/{cli-n9yxcnvk.js → cli-5n6e5yfn.js} +29 -7
  17. package/dist/{cli-tp519bjz.js → cli-5v4rw6yd.js} +2 -2
  18. package/dist/{cli-dakxgk70.js → cli-5ze9rv97.js} +4 -4
  19. package/dist/{cli-ch7t5v7n.js → cli-6map995v.js} +9 -4
  20. package/dist/{cli-mgerp0vs.js → cli-70xqj0z3.js} +2 -2
  21. package/dist/{cli-7v5dhmc8.js → cli-72q8m8gk.js} +6 -6
  22. package/dist/{cli-yj7z99vp.js → cli-78xwvkhj.js} +2 -2
  23. package/dist/{cli-t5tsq67k.js → cli-9dr5qzc0.js} +39 -4
  24. package/dist/{cli-73bvdyxr.js → cli-a40rnf71.js} +6 -6
  25. package/dist/{cli-s18zzkfp.js → cli-a4jzdpa3.js} +44 -7
  26. package/dist/{cli-w10fkrf1.js → cli-akdvwc9v.js} +354 -115
  27. package/dist/{cli-hntzdchd.js → cli-bqw0mt1n.js} +1 -1
  28. package/dist/{cli-mhr8tq3v.js → cli-cdeg08wx.js} +1 -1
  29. package/dist/{cli-qcsjdppx.js → cli-cvgjwnh1.js} +7 -7
  30. package/dist/{cli-z9q7pb38.js → cli-d2tfkcga.js} +4 -4
  31. package/dist/{cli-r62me33w.js → cli-d3x3x1c9.js} +2 -2
  32. package/dist/{cli-6nh2qxvh.js → cli-darcwax3.js} +1 -1
  33. package/dist/{cli-326083vb.js → cli-e7ckcg4v.js} +12 -12
  34. package/dist/{cli-fs153s3x.js → cli-efxfnq6q.js} +3 -3
  35. package/dist/{cli-xg2eezyv.js → cli-f1am9szv.js} +1 -1
  36. package/dist/{cli-2pa5w9b6.js → cli-fywms69x.js} +1 -1
  37. package/dist/{cli-1mj7yz1r.js → cli-g6b8x1h8.js} +1 -1
  38. package/dist/{cli-epsvdckx.js → cli-gm9cbhbq.js} +20 -10
  39. package/dist/{cli-tfw3c0y1.js → cli-nm5gtp1x.js} +2 -2
  40. package/dist/{cli-q8zwffx0.js → cli-pm6xbh84.js} +128 -35
  41. package/dist/{cli-m8fs5ttq.js → cli-psh3c4va.js} +1 -1
  42. package/dist/{cli-1px8pn1s.js → cli-qv61hp37.js} +2 -2
  43. package/dist/{cli-mf009e0j.js → cli-rzbpmxdr.js} +1 -1
  44. package/dist/{cli-vr2f46zj.js → cli-t1xze5qh.js} +1 -1
  45. package/dist/{cli-qbb2ten8.js → cli-t55yw3a1.js} +2 -2
  46. package/dist/{cli-haanc4qd.js → cli-t76vw5db.js} +22 -22
  47. package/dist/{cli-4n4mdv21.js → cli-xpxde7rm.js} +7 -3
  48. package/dist/{cli-xdrmxvd4.js → cli-yw8vghx2.js} +46 -10
  49. package/dist/cli.js +22 -22
  50. package/dist/{codex-adapter-6pc50x9q.js → codex-adapter-d24q75wk.js} +4 -4
  51. package/dist/{codex-hook-amndawyb.js → codex-hook-hq54t9ft.js} +2 -2
  52. package/dist/{codex-session-runner-tpg8hyj7.js → codex-session-runner-g50vcsex.js} +4 -4
  53. package/dist/{commands-yfpwt11g.js → commands-c3nrc5hg.js} +3 -3
  54. package/dist/{db-jn499nmp.js → db-nt7fg3tw.js} +3 -3
  55. package/dist/{google-generative-ai-txgg2q58.js → google-generative-ai-hysrd8qx.js} +7 -5
  56. package/dist/{google-vertex-t663s1c3.js → google-vertex-p5arrga0.js} +7 -5
  57. package/dist/{handlers-eev4nng0.js → handlers-fkr6swat.js} +9 -9
  58. package/dist/{hook-sn7pj75w.js → hook-77wpvnjc.js} +4 -4
  59. package/dist/{hook-9fkwkf3m.js → hook-g019yehy.js} +5 -5
  60. package/dist/{http-xdbbtmhx.js → http-jewj0syk.js} +202 -79
  61. package/dist/{index-c0qedjh6.js → index-6gm5he8h.js} +9 -9
  62. package/dist/{index-5fdsemf0.js → index-7n2xpbd4.js} +155 -37
  63. package/dist/{index-9vnkprkh.js → index-hfvggd0z.js} +10 -10
  64. package/dist/{index-fnack5vh.js → index-hp1kdbjj.js} +11 -11
  65. package/dist/{keepalive-fc7a2hw9.js → keepalive-j0fjvqfd.js} +5 -5
  66. package/dist/{lead-1fva34y9.js → lead-1n8x30xe.js} +28 -28
  67. package/dist/{maintenance-0rdb12vf.js → maintenance-gvev11sa.js} +5 -5
  68. package/dist/{mistral-conversations-4swenhmf.js → mistral-conversations-81fwav0j.js} +2 -2
  69. package/dist/{oauth-refresh-sweep-f9rptqbt.js → oauth-refresh-sweep-s9ecsvh0.js} +4 -4
  70. package/dist/{onboard-9zn0fx2m.js → onboard-pvm5b38w.js} +2 -2
  71. package/dist/{openai-codex-responses-xetseqvt.js → openai-codex-responses-5g27pd6f.js} +43 -23
  72. package/dist/{openai-completions-5r2g5axa.js → openai-completions-3vkmfz2a.js} +55 -11
  73. package/dist/{openai-responses-ce67hd23.js → openai-responses-dg4t7j7a.js} +8 -5
  74. package/dist/{openrouter-images-pzfp22jb.js → openrouter-images-g3gm8931.js} +1 -1
  75. package/dist/{otel-impl-thnttmbn.js → otel-impl-p6jvgd9c.js} +1 -1
  76. package/dist/{pi-mono-adapter-bpfrn6d7.js → pi-mono-adapter-t091s27g.js} +17114 -7514
  77. package/dist/{pricing-refresh-n0ve0kh6.js → pricing-refresh-k49rcyed.js} +5 -5
  78. package/dist/{rbac-roles-bbwb4wrm.js → rbac-roles-30pspvy7.js} +5 -5
  79. package/dist/{rbac-roles-w45bhahg.js → rbac-roles-cr80g96t.js} +4 -4
  80. package/dist/{render-v2-d675cp9r.js → render-v2-xm457ng1.js} +4 -4
  81. package/dist/{seed-pricing-47q77nw4.js → seed-pricing-yhpv35fr.js} +4 -4
  82. package/dist/{setup-3vnv2m43.js → setup-nytnmwwr.js} +2 -2
  83. package/dist/{worker-7shsr8hk.js → worker-msytr2cw.js} +28 -28
  84. package/openapi.json +342 -10
  85. package/package.json +6 -6
  86. package/src/apps/store.ts +13 -4
  87. package/src/assets/key.ts +8 -1
  88. package/src/be/asset-key-audit.ts +3 -1
  89. package/src/be/db-queries/mcp-oauth.ts +26 -0
  90. package/src/be/db.ts +42 -1
  91. package/src/be/migrations/129_asset_keys_apps_scripts.sql +161 -0
  92. package/src/be/scripts/db.ts +5 -2
  93. package/src/be/seed-skills/index.ts +7 -0
  94. package/src/http/assets.ts +120 -29
  95. package/src/http/mcp-oauth.ts +69 -1
  96. package/src/http/users.ts +45 -0
  97. package/src/oauth/ensure-mcp-token.ts +7 -1
  98. package/src/oauth/mcp-wrapper.ts +247 -24
  99. package/src/providers/pi-mono-adapter.ts +1 -1
  100. package/src/tests/asset-key-api.test.ts +48 -2
  101. package/src/tests/asset-key-invariants.test.ts +92 -0
  102. package/src/tests/asset-key-migration.test.ts +174 -8
  103. package/src/tests/asset-key-normalization.test.ts +2 -0
  104. package/src/tests/mcp-oauth-dcr-reuse.test.ts +95 -0
  105. package/src/tests/mcp-oauth-ensure-token.test.ts +23 -0
  106. package/src/tests/mcp-oauth-manual-client.test.ts +135 -2
  107. package/src/tests/mcp-oauth-wrapper.test.ts +380 -0
  108. package/src/tests/rbac-admission-e2e.test.ts +68 -0
  109. package/src/tests/script-connections.test.ts +3 -0
  110. package/src/tests/whoami-route.test.ts +127 -0
  111. package/src/tests/workflow-engine-v2.test.ts +80 -7
  112. package/src/tests/workflow-swarm-script.test.ts +104 -0
  113. package/src/tools/workflows/create-workflow.ts +4 -1
  114. package/src/types.ts +18 -5
  115. package/src/utils/template.ts +8 -1
  116. package/src/workflows/engine.ts +27 -4
  117. package/src/workflows/executors/swarm-script.ts +28 -0
  118. package/src/workflows/retry-poller.ts +19 -2
  119. package/templates/skills/asset-namespaces/content.md +2 -2
  120. package/templates/skills/scheduled-task-resilience/SKILL.md +102 -0
  121. package/templates/skills/scheduled-task-resilience/config.json +14 -0
  122. package/templates/skills/scheduled-task-resilience/content.md +97 -0
@@ -5,12 +5,14 @@ import {
5
5
  getScriptMcpConnectionDescriptors,
6
6
  listScriptConnections,
7
7
  runScript
8
- } from "./cli-q8zwffx0.js";
8
+ } from "./cli-pm6xbh84.js";
9
9
  import {
10
+ defaultAssetKey,
10
11
  getDb,
11
12
  getLeadAgent,
12
- init_db
13
- } from "./cli-s18zzkfp.js";
13
+ init_db,
14
+ init_key
15
+ } from "./cli-a4jzdpa3.js";
14
16
  import {
15
17
  init_zod
16
18
  } from "./cli-zsspvvm2.js";
@@ -2872,6 +2874,7 @@ function applyAppDefinitionPatch(stored, patch) {
2872
2874
  }
2873
2875
 
2874
2876
  // src/apps/store.ts
2877
+ init_key();
2875
2878
  init_db();
2876
2879
 
2877
2880
  // src/apps/format-upgrades.ts
@@ -2995,9 +2998,9 @@ function nextTimestamp(previous) {
2995
2998
  function createApp(input) {
2996
2999
  const id = input.id ?? crypto.randomUUID();
2997
3000
  const now = nextTimestamp();
2998
- const row = getDb().prepare(`INSERT INTO apps (id, name, description, definition, created_at, updated_at)
2999
- VALUES (?, ?, ?, ?, ?, ?)
3000
- RETURNING id, name, description, definition, created_at, updated_at`).get(id, input.name, input.description ?? null, encodeDefinition(input.definition), now, now);
3001
+ const row = getDb().prepare(`INSERT INTO apps (id, name, description, definition, created_at, updated_at, "key")
3002
+ VALUES (?, ?, ?, ?, ?, ?, ?)
3003
+ RETURNING id, name, description, definition, created_at, updated_at`).get(id, input.name, input.description ?? null, encodeDefinition(input.definition), now, now, defaultAssetKey("app", id));
3001
3004
  if (!row)
3002
3005
  throw new Error("Failed to create app");
3003
3006
  return decodeApp(row);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runStopHookSessionSummarySubprocess
3
- } from "./cli-mgerp0vs.js";
3
+ } from "./cli-70xqj0z3.js";
4
4
  import {
5
5
  SessionErrorTracker,
6
6
  buildOtelTraceparentEnv,
@@ -214,10 +214,13 @@ function clampMaxTokensToContext(model, context, maxTokens) {
214
214
  return Math.min(maxTokens, Math.max(MIN_MAX_TOKENS, available));
215
215
  }
216
216
  function buildBaseOptions(model, context, options, apiKey) {
217
+ const samplingParams = model.samplingParams || options?.samplingParams ? { ...model.samplingParams, ...options?.samplingParams } : undefined;
217
218
  return {
218
219
  temperature: options?.temperature,
220
+ samplingParams,
219
221
  maxTokens: clampMaxTokensToContext(model, context, options?.maxTokens ?? model.maxTokens),
220
222
  signal: options?.signal,
223
+ telemetryContext: options?.telemetryContext,
221
224
  apiKey: apiKey || options?.apiKey,
222
225
  fetch: options?.fetch,
223
226
  transport: options?.transport,
@@ -234,6 +237,7 @@ function buildBaseOptions(model, context, options, apiKey) {
234
237
  env: options?.env
235
238
  };
236
239
  }
240
+ var MIN_ANSWER_TOKENS = 1024;
237
241
  function clampReasoning(effort) {
238
242
  return effort === "xhigh" || effort === "max" ? "high" : effort;
239
243
  }
@@ -245,12 +249,11 @@ function adjustMaxTokensForThinking(baseMaxTokens, modelMaxTokens, reasoningLeve
245
249
  high: 16384
246
250
  };
247
251
  const budgets = { ...defaultBudgets, ...customBudgets };
248
- const minOutputTokens = 1024;
249
252
  const level = clampReasoning(reasoningLevel);
250
253
  let thinkingBudget = budgets[level];
251
254
  const maxTokens = baseMaxTokens === undefined ? modelMaxTokens : Math.min(baseMaxTokens + thinkingBudget, modelMaxTokens);
252
255
  if (maxTokens <= thinkingBudget) {
253
- thinkingBudget = Math.max(0, maxTokens - minOutputTokens);
256
+ thinkingBudget = Math.max(0, maxTokens - MIN_ANSWER_TOKENS);
254
257
  }
255
258
  return { maxTokens, thinkingBudget };
256
259
  }
@@ -410,4 +413,4 @@ function transformMessages(messages, model, normalizeToolCallId) {
410
413
  return result;
411
414
  }
412
415
 
413
- export { getGrammarToolInput, appendGrammarToolInputJsonDelta, resolveJsonSchemaStrictSampling, resolveGrammarConstrainedSampling, createGrammarToolInputProperties, clampMaxTokensToContext, buildBaseOptions, clampReasoning, adjustMaxTokensForThinking, transformMessages };
416
+ export { getGrammarToolInput, appendGrammarToolInputJsonDelta, resolveJsonSchemaStrictSampling, resolveGrammarConstrainedSampling, createGrammarToolInputProperties, clampMaxTokensToContext, buildBaseOptions, MIN_ANSWER_TOKENS, clampReasoning, adjustMaxTokensForThinking, transformMessages };
@@ -13,7 +13,7 @@ import {
13
13
  } from "./cli-psrqtw2m.js";
14
14
  import {
15
15
  summarizeSession
16
- } from "./cli-s21zzx4b.js";
16
+ } from "./cli-0rcyq6d9.js";
17
17
  import {
18
18
  CTX_MODE_NUDGE_EVERY
19
19
  } from "./cli-zm7njwzd.js";
@@ -1,3 +1,6 @@
1
+ import {
2
+ retryProviderRequest
3
+ } from "./cli-s8s499xy.js";
1
4
  import {
2
5
  import_websocket
3
6
  } from "./cli-4w4fmq9x.js";
@@ -9,7 +12,7 @@ import {
9
12
  import {
10
13
  resolveJsonSchemaStrictSampling,
11
14
  transformMessages
12
- } from "./cli-vgexpfsr.js";
15
+ } from "./cli-57khth04.js";
13
16
  import {
14
17
  sanitizeSurrogates
15
18
  } from "./cli-y2apkfe2.js";
@@ -25054,7 +25057,8 @@ function resolveThoughtSignature(isSameProviderAndModel, signature) {
25054
25057
  return isSameProviderAndModel && isValidThoughtSignature(signature) ? signature : undefined;
25055
25058
  }
25056
25059
  function requiresToolCallId(modelId) {
25057
- return modelId.startsWith("claude-") || modelId.startsWith("gpt-oss-");
25060
+ const geminiMajorVersion = getGeminiMajorVersion(modelId);
25061
+ return modelId.startsWith("claude-") || modelId.startsWith("gpt-oss-") || geminiMajorVersion !== undefined && geminiMajorVersion >= 3;
25058
25062
  }
25059
25063
  function getGeminiMajorVersion(modelId) {
25060
25064
  const match = modelId.toLowerCase().match(/^gemini(?:-live)?-(\d+)/);
@@ -25109,24 +25113,26 @@ function convertMessages(model, context) {
25109
25113
  const isSameProviderAndModel = msg.provider === model.provider && msg.model === model.id;
25110
25114
  for (const block of msg.content) {
25111
25115
  if (block.type === "text") {
25112
- if (!block.text || block.text.trim() === "")
25113
- continue;
25114
25116
  const thoughtSignature = resolveThoughtSignature(isSameProviderAndModel, block.textSignature);
25117
+ if ((!block.text || block.text.trim() === "") && !thoughtSignature)
25118
+ continue;
25115
25119
  parts.push({
25116
25120
  text: sanitizeSurrogates(block.text),
25117
25121
  ...thoughtSignature && { thoughtSignature }
25118
25122
  });
25119
25123
  } else if (block.type === "thinking") {
25120
- if (!block.thinking || block.thinking.trim() === "")
25121
- continue;
25122
25124
  if (isSameProviderAndModel) {
25123
25125
  const thoughtSignature = resolveThoughtSignature(isSameProviderAndModel, block.thinkingSignature);
25126
+ if ((!block.thinking || block.thinking.trim() === "") && !thoughtSignature)
25127
+ continue;
25124
25128
  parts.push({
25125
25129
  thought: true,
25126
25130
  text: sanitizeSurrogates(block.thinking),
25127
25131
  ...thoughtSignature && { thoughtSignature }
25128
25132
  });
25129
25133
  } else {
25134
+ if (!block.thinking || block.thinking.trim() === "")
25135
+ continue;
25130
25136
  parts.push({
25131
25137
  text: sanitizeSurrogates(block.thinking)
25132
25138
  });
@@ -25282,5 +25288,21 @@ function mapStopReason(reason) {
25282
25288
  }
25283
25289
  }
25284
25290
  }
25291
+ function retryGoogleRequest(request, options) {
25292
+ return retryProviderRequest(async () => {
25293
+ try {
25294
+ return await request();
25295
+ } catch (error) {
25296
+ if (error instanceof Error && "status" in error && !("headers" in error)) {
25297
+ error.headers = undefined;
25298
+ }
25299
+ throw error;
25300
+ }
25301
+ }, {
25302
+ maxRetries: options?.maxRetries,
25303
+ maxRetryDelayMs: options?.maxRetryDelayMs,
25304
+ signal: options?.signal
25305
+ });
25306
+ }
25285
25307
 
25286
- export { ThinkingLevel, ResourceScope, GoogleGenAI, isThinkingPart, retainThoughtSignature, convertMessages, convertTools, supportsGoogleStrictToolSampling, resolveGoogleFunctionCallingMode, mapStopReason };
25308
+ export { ThinkingLevel, ResourceScope, GoogleGenAI, isThinkingPart, retainThoughtSignature, convertMessages, convertTools, supportsGoogleStrictToolSampling, resolveGoogleFunctionCallingMode, mapStopReason, retryGoogleRequest };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  PermissionVerbSchema
3
- } from "./cli-hntzdchd.js";
3
+ } from "./cli-bqw0mt1n.js";
4
4
  import {
5
5
  getDb,
6
6
  init_db
7
- } from "./cli-s18zzkfp.js";
7
+ } from "./cli-a4jzdpa3.js";
8
8
 
9
9
  // src/be/rbac-roles.ts
10
10
  init_db();
@@ -2,17 +2,17 @@ import {
2
2
  getExecutorRegistry,
3
3
  handleScheduleTrigger,
4
4
  startWorkflowExecution
5
- } from "./cli-xdrmxvd4.js";
5
+ } from "./cli-yw8vghx2.js";
6
6
  import {
7
7
  buildScriptCredentialBindings,
8
8
  getScript,
9
9
  getScriptApiConnectionDescriptors,
10
10
  getScriptMcpConnectionDescriptors,
11
11
  runScript
12
- } from "./cli-q8zwffx0.js";
12
+ } from "./cli-pm6xbh84.js";
13
13
  import {
14
14
  createTaskWithSiblingAwareness
15
- } from "./cli-mhr8tq3v.js";
15
+ } from "./cli-cdeg08wx.js";
16
16
  import {
17
17
  getDb,
18
18
  getDueScheduledTasks,
@@ -24,7 +24,7 @@ import {
24
24
  scheduleContextKey,
25
25
  telemetry,
26
26
  updateScheduledTask
27
- } from "./cli-s18zzkfp.js";
27
+ } from "./cli-a4jzdpa3.js";
28
28
  import {
29
29
  __commonJS,
30
30
  __require,
@@ -38,22 +38,27 @@ function extractBody(error) {
38
38
  function pickBodyText(error) {
39
39
  if (typeof error.body === "string")
40
40
  return error.body;
41
- if (isNonEmptyObject(error.error))
41
+ if (isPlainNonEmptyObject(error.error))
42
42
  return safeJsonStringify(error.error);
43
43
  const responseBody = error.$response?.body;
44
44
  if (typeof responseBody === "string")
45
45
  return responseBody;
46
46
  if (isReadableStreamLike(responseBody))
47
47
  return;
48
- if (isNonEmptyObject(responseBody))
48
+ if (isPlainNonEmptyObject(responseBody))
49
49
  return safeJsonStringify(responseBody);
50
50
  return;
51
51
  }
52
52
  function isReadableStreamLike(value) {
53
53
  return typeof value === "object" && value !== null && "pipe" in value && typeof value.pipe === "function";
54
54
  }
55
- function isNonEmptyObject(value) {
56
- return typeof value === "object" && value !== null && Object.keys(value).length > 0;
55
+ function isPlainNonEmptyObject(value) {
56
+ if (typeof value !== "object" || value === null)
57
+ return false;
58
+ const proto = Object.getPrototypeOf(value);
59
+ if (proto !== Object.prototype && proto !== null)
60
+ return false;
61
+ return Object.keys(value).length > 0;
57
62
  }
58
63
  function formatProviderError(norm, prefix) {
59
64
  if (norm.messageCarriesBody || norm.status === undefined || norm.body === undefined) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  summarizeSession
3
- } from "./cli-s21zzx4b.js";
3
+ } from "./cli-0rcyq6d9.js";
4
4
  import {
5
5
  checkToolLoop,
6
6
  clearToolHistory
@@ -33,7 +33,7 @@ import {
33
33
  import {
34
34
  init_package,
35
35
  package_default
36
- } from "./cli-7v5dhmc8.js";
36
+ } from "./cli-72q8m8gk.js";
37
37
 
38
38
  // src/hooks/hook.ts
39
39
  init_package();
@@ -7,7 +7,7 @@ var package_default;
7
7
  var init_package = __esm(() => {
8
8
  package_default = {
9
9
  name: "@desplega.ai/agent-swarm",
10
- version: "1.130.0",
10
+ version: "1.131.0",
11
11
  description: "agent-swarm.dev — an open-source operating system for AI work: a lead agent breaks goals into tasks, routes them to specialized workers such as Claude Code or Codex, runs each worker in an isolated container, and preserves shared memory, tools, schedules, and review gates so delegated work compounds across sessions.",
12
12
  keywords: [
13
13
  "agent-swarm.dev",
@@ -176,14 +176,14 @@ var init_package = __esm(() => {
176
176
  "@aws-sdk/client-bedrock": "3.1048.0",
177
177
  "@desplega.ai/business-use": "^0.4.2",
178
178
  "@desplega.ai/localtunnel": "^2.2.0",
179
- "@earendil-works/pi-agent-core": "^0.83.0",
180
- "@earendil-works/pi-ai": "^0.83.0",
181
- "@earendil-works/pi-coding-agent": "^0.83.0",
179
+ "@earendil-works/pi-agent-core": "^0.84.1",
180
+ "@earendil-works/pi-ai": "^0.84.1",
181
+ "@earendil-works/pi-coding-agent": "^0.84.1",
182
182
  "@inkjs/ui": "^2.0.0",
183
183
  "@linear/sdk": "^77.0.0",
184
184
  "@modelcontextprotocol/sdk": "^1.25.1",
185
- "@openai/codex-sdk": "^0.146.0",
186
- "@opencode-ai/sdk": "^1.18.13",
185
+ "@openai/codex-sdk": "^0.147.0",
186
+ "@opencode-ai/sdk": "^1.18.15",
187
187
  "@openfort/openfort-node": "^0.9.1",
188
188
  "@opentelemetry/api": "^1.9.1",
189
189
  "@opentelemetry/exporter-metrics-otlp-http": "^0.218.0",
@@ -4,12 +4,12 @@ import {
4
4
  linkIdentity,
5
5
  recordUnmappedIdentity,
6
6
  resolveIdentity
7
- } from "./cli-m8fs5ttq.js";
7
+ } from "./cli-psh3c4va.js";
8
8
  import {
9
9
  getKv,
10
10
  init_db,
11
11
  upsertKv
12
- } from "./cli-s18zzkfp.js";
12
+ } from "./cli-a4jzdpa3.js";
13
13
 
14
14
  // src/slack/enrich.ts
15
15
  init_db();
@@ -11,7 +11,7 @@ import {
11
11
  } from "./cli-r6kqqbj0.js";
12
12
  import {
13
13
  normalizeProviderError
14
- } from "./cli-ch7t5v7n.js";
14
+ } from "./cli-6map995v.js";
15
15
  import {
16
16
  getProviderEnvValue
17
17
  } from "./cli-4wgngmwv.js";
@@ -28,15 +28,16 @@ import {
28
28
  clampReasoning,
29
29
  resolveJsonSchemaStrictSampling,
30
30
  transformMessages
31
- } from "./cli-vgexpfsr.js";
31
+ } from "./cli-57khth04.js";
32
32
  import {
33
33
  sanitizeSurrogates
34
34
  } from "./cli-y2apkfe2.js";
35
35
  import {
36
36
  calculateCost
37
- } from "./cli-w10fkrf1.js";
37
+ } from "./cli-akdvwc9v.js";
38
38
  import {
39
- AssistantMessageEventStream
39
+ AssistantMessageEventStream,
40
+ appendAssistantMessageDiagnostic
40
41
  } from "./cli-8wrympd7.js";
41
42
  import {
42
43
  exports_supports_color,
@@ -5187,6 +5188,7 @@ var stream = (model, context, options = {}) => {
5187
5188
  config.token = { token: bearerToken };
5188
5189
  config.authSchemePreference = ["httpBearerAuth"];
5189
5190
  }
5191
+ let responseRequestId;
5190
5192
  try {
5191
5193
  const client = new import_client_bedrock_runtime.BedrockRuntimeClient(config);
5192
5194
  const customHeaders = providerHeadersToRecord(options.headers);
@@ -5213,6 +5215,7 @@ var stream = (model, context, options = {}) => {
5213
5215
  }
5214
5216
  const command = new import_client_bedrock_runtime.ConverseStreamCommand(commandInput);
5215
5217
  const response = await client.send(command, { abortSignal: options.signal });
5218
+ responseRequestId = normalizeDiagnosticValue(response.$metadata.requestId);
5216
5219
  if (response.$metadata.httpStatusCode !== undefined) {
5217
5220
  const responseHeaders = {};
5218
5221
  if (response.$metadata.requestId) {
@@ -5271,6 +5274,9 @@ var stream = (model, context, options = {}) => {
5271
5274
  }
5272
5275
  output.stopReason = options.signal?.aborted ? "aborted" : "error";
5273
5276
  output.errorMessage = formatBedrockError(error);
5277
+ if (output.stopReason === "error") {
5278
+ appendBedrockFailureDiagnostic(output, error, responseRequestId);
5279
+ }
5274
5280
  stream2.push({ type: "error", reason: output.stopReason, error: output });
5275
5281
  stream2.end();
5276
5282
  }
@@ -5295,6 +5301,35 @@ function formatBedrockError(error) {
5295
5301
  }
5296
5302
  return `${core}${dataRetentionHint}`;
5297
5303
  }
5304
+ var MAX_BEDROCK_DIAGNOSTIC_VALUE_CHARS = 200;
5305
+ function normalizeDiagnosticValue(value) {
5306
+ if (typeof value !== "string")
5307
+ return;
5308
+ const trimmed = value.trim();
5309
+ if (trimmed.length === 0 || trimmed.length > MAX_BEDROCK_DIAGNOSTIC_VALUE_CHARS)
5310
+ return;
5311
+ return trimmed;
5312
+ }
5313
+ function extractBedrockErrorCode(error) {
5314
+ if (!(error instanceof Error) || !error.name.endsWith("Exception"))
5315
+ return;
5316
+ return normalizeDiagnosticValue(error.name);
5317
+ }
5318
+ function appendBedrockFailureDiagnostic(output, error, fallbackRequestId) {
5319
+ const metadata = error?.$metadata;
5320
+ const details = {};
5321
+ if (typeof metadata?.httpStatusCode === "number")
5322
+ details.status = metadata.httpStatusCode;
5323
+ const errorCode = extractBedrockErrorCode(error);
5324
+ if (errorCode !== undefined)
5325
+ details.errorCode = errorCode;
5326
+ const requestId = normalizeDiagnosticValue(metadata?.requestId) ?? fallbackRequestId;
5327
+ if (requestId !== undefined)
5328
+ details.requestId = requestId;
5329
+ if (Object.keys(details).length === 0)
5330
+ return;
5331
+ appendAssistantMessageDiagnostic(output, { type: "bedrock_response_failure", timestamp: Date.now(), details });
5332
+ }
5298
5333
  var RESERVED_HEADER_EXACT = new Set(["authorization", "host"]);
5299
5334
  function isReservedHeader(key) {
5300
5335
  const lower = key.toLowerCase();
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createAdditiveBuffer,
3
3
  extractSlackMessageText
4
- } from "./cli-r62me33w.js";
4
+ } from "./cli-d3x3x1c9.js";
5
5
  import {
6
6
  rewriteSlackMentions
7
- } from "./cli-yj7z99vp.js";
7
+ } from "./cli-78xwvkhj.js";
8
8
  import {
9
9
  createTaskWithSiblingAwareness
10
- } from "./cli-mhr8tq3v.js";
10
+ } from "./cli-cdeg08wx.js";
11
11
  import {
12
12
  buildBufferFlushBlocks,
13
13
  ensureSlackThreadTree,
@@ -16,7 +16,7 @@ import {
16
16
  getSlackApp,
17
17
  isSlackRenderV2Enabled,
18
18
  registerTreeMessage
19
- } from "./cli-qcsjdppx.js";
19
+ } from "./cli-cvgjwnh1.js";
20
20
  import {
21
21
  createLogEntry,
22
22
  getAgentById,
@@ -29,13 +29,13 @@ import {
29
29
  init_steering,
30
30
  requestSteering,
31
31
  slackContextKey
32
- } from "./cli-s18zzkfp.js";
32
+ } from "./cli-a4jzdpa3.js";
33
33
  import {
34
34
  init_registry,
35
35
  init_steering_enabled,
36
36
  isSteeringEnabled,
37
37
  registerTemplate
38
- } from "./cli-4n4mdv21.js";
38
+ } from "./cli-xpxde7rm.js";
39
39
 
40
40
  // src/slack/event-dedup.ts
41
41
  var DEFAULT_TTL_MS = 300000;
@@ -9,7 +9,7 @@ import {
9
9
  isEnvFlagEnabled,
10
10
  isSteeringEnabled,
11
11
  registerTemplate
12
- } from "./cli-4n4mdv21.js";
12
+ } from "./cli-xpxde7rm.js";
13
13
  import {
14
14
  MAX_PROFILE_FILE_LENGTH,
15
15
  init_constants
@@ -29,7 +29,7 @@ import {
29
29
  import {
30
30
  init_package,
31
31
  package_default
32
- } from "./cli-7v5dhmc8.js";
32
+ } from "./cli-72q8m8gk.js";
33
33
  import {
34
34
  _enum,
35
35
  array,
@@ -2092,7 +2092,15 @@ var init_types = __esm(() => {
2092
2092
  });
2093
2093
  }
2094
2094
  }).describe("Non-unique asset directory namespace (for example shared/ or personal/<user-id>/drafts/). Runtime write boundaries normalize and validate the canonical form.");
2095
- AssetEntityTypeSchema = exports_zod.enum(["task", "workflow", "schedule", "page", "file"]);
2095
+ AssetEntityTypeSchema = exports_zod.enum([
2096
+ "task",
2097
+ "workflow",
2098
+ "schedule",
2099
+ "page",
2100
+ "app",
2101
+ "script",
2102
+ "file"
2103
+ ]);
2096
2104
  AssetProviderRefSchema = exports_zod.object({
2097
2105
  providerId: exports_zod.string(),
2098
2106
  orgId: exports_zod.string().optional(),
@@ -2924,11 +2932,11 @@ var init_types = __esm(() => {
2924
2932
  id: exports_zod.string().describe("Unique node identifier, used in 'next' and 'inputs' mappings"),
2925
2933
  type: exports_zod.string().describe("Executor type: 'agent-task', 'script', 'swarm-script', 'raw-llm', 'validate', 'property-match'"),
2926
2934
  label: exports_zod.string().optional().describe("Human-readable label for UI display"),
2927
- config: exports_zod.record(exports_zod.string(), exports_zod.unknown()).describe("Executor-specific config. For agent-task: { template, outputSchema?, agentId?, tags?, priority?, dir?, vcsRepo?, model? }. " + "For swarm-script: { scriptName, scope?, pinHash?, args?, fsMode?, timeoutMs? (1000-300000) }. " + "Values support {{interpolation}} from the node's inputs context. " + "NOTE: config.outputSchema on agent-task nodes validates the AGENT's raw JSON output, " + "while node-level outputSchema validates the EXECUTOR's return value ({taskId, taskOutput})."),
2935
+ config: exports_zod.record(exports_zod.string(), exports_zod.unknown()).describe("Executor-specific config. For agent-task: { template, outputSchema?, agentId?, tags?, priority?, dir?, vcsRepo?, model? }. " + "For script: { runtime, script, args?, timeout? }. " + "For swarm-script: { scriptName, scope?, pinHash?, args?, fsMode?, timeoutMs? (1000-300000) }. " + "Agent-task templates and ordinary config values support {{interpolation}} from the node's inputs context, including trigger and declared upstream aliases. " + "SECURITY: executable source for script/swarm-script nodes does not interpolate trigger.* or upstream node outputs; only input/workflow/swarm/run values are allowed in inline script source, and named swarm-script source is not workflow-interpolated. " + "Pass dynamic values through config.args instead (inline script receives them as argv; swarm-script receives its args object). " + "NOTE: config.outputSchema on agent-task nodes validates the AGENT's raw JSON output, " + "while node-level outputSchema validates the EXECUTOR's return value ({taskId, taskOutput})."),
2928
2936
  next: exports_zod.union([exports_zod.string(), exports_zod.array(exports_zod.string()), exports_zod.record(exports_zod.string(), exports_zod.string())]).optional().describe("Next node(s): string for simple chaining, string[] for fan-out to parallel nodes, or record for port-based routing ({pass: 'a', fail: 'b'})"),
2929
2937
  validation: StepValidationConfigSchema.optional(),
2930
2938
  retry: RetryPolicySchema.optional(),
2931
- inputs: exports_zod.record(exports_zod.string(), exports_zod.string()).optional().describe("REQUIRED for cross-node data access. Maps local names to context paths. " + "Without this, upstream step outputs are NOT available for interpolation — only 'trigger' and 'input' are. " + 'Example: { "cityData": "generate-city" } → use {{cityData.taskOutput.field}} in config templates. ' + 'For trigger data: { "pr": "trigger.pullRequest" }.'),
2939
+ inputs: exports_zod.record(exports_zod.string(), exports_zod.string()).optional().describe("REQUIRED for cross-node data access. Maps local names to context paths. " + "Without this, upstream step outputs are NOT available for interpolation; built-in trigger/input/workflow/swarm/run context remains available. " + 'Example: { "cityData": "generate-city" } → use {{cityData.taskOutput.field}} in config templates. ' + 'For trigger data: { "pr": "trigger.pullRequest" }. ' + "This mapping works in agent-task templates and ordinary config, but executable script/swarm-script source excludes trigger and upstream-output aliases. " + "Route those dynamic values through config.args (argv for inline scripts) instead."),
2932
2940
  inputSchema: exports_zod.record(exports_zod.string(), exports_zod.unknown()).optional().describe("JSON Schema to validate resolved inputs before execution"),
2933
2941
  outputSchema: exports_zod.record(exports_zod.string(), exports_zod.unknown()).optional().describe("JSON Schema to validate the executor's output (e.g. {taskId, taskOutput} for agent-task). " + "Different from config.outputSchema which validates the agent's raw output.")
2934
2942
  }).openapi("WorkflowNode");
@@ -3721,6 +3729,8 @@ var init_asset_key_audit = __esm(() => {
3721
3729
  { entityType: "workflow", sql: 'SELECT id, "key" as key FROM workflows' },
3722
3730
  { entityType: "schedule", sql: 'SELECT id, "key" as key FROM scheduled_tasks' },
3723
3731
  { entityType: "page", sql: 'SELECT id, "key" as key FROM pages' },
3732
+ { entityType: "app", sql: 'SELECT id, "key" as key FROM apps' },
3733
+ { entityType: "script", sql: 'SELECT id, "key" as key FROM scripts' },
3724
3734
  { entityType: "file", sql: 'SELECT id, "key" as key FROM asset_key_mappings' }
3725
3735
  ];
3726
3736
  });
@@ -7591,6 +7601,18 @@ function assetSummaryQueries(types) {
7591
7601
  NULL AS providerDriveId, NULL AS providerKey
7592
7602
  FROM pages`);
7593
7603
  }
7604
+ if (types.has("app")) {
7605
+ queries.push(`SELECT 'app' AS entityType, id, "key", name AS label,
7606
+ updated_at AS updatedAt, NULL AS providerId, NULL AS providerOrgId,
7607
+ NULL AS providerDriveId, NULL AS providerKey
7608
+ FROM apps`);
7609
+ }
7610
+ if (types.has("script")) {
7611
+ queries.push(`SELECT 'script' AS entityType, id, "key", name AS label,
7612
+ updatedAt, NULL AS providerId, NULL AS providerOrgId,
7613
+ NULL AS providerDriveId, NULL AS providerKey
7614
+ FROM scripts`);
7615
+ }
7594
7616
  if (types.has("file")) {
7595
7617
  queries.push(`SELECT 'file' AS entityType, id, "key", provider_key AS label,
7596
7618
  updated_at AS updatedAt, provider_id AS providerId,
@@ -7602,7 +7624,7 @@ function assetSummaryQueries(types) {
7602
7624
  return queries;
7603
7625
  }
7604
7626
  function listAssetSummaries(filters) {
7605
- const requestedTypes = new Set(filters?.types?.length ? filters.types : ["task", "workflow", "schedule", "page", "file"]);
7627
+ const requestedTypes = new Set(filters?.types?.length ? filters.types : ["task", "workflow", "schedule", "page", "app", "script", "file"]);
7606
7628
  const queries = assetSummaryQueries(requestedTypes);
7607
7629
  if (queries.length === 0)
7608
7630
  return [];
@@ -7640,6 +7662,10 @@ function currentAssetKey(entityType, id) {
7640
7662
  return getDb().prepare('SELECT "key" AS key FROM scheduled_tasks WHERE id = ?').get(id)?.key ?? null;
7641
7663
  case "page":
7642
7664
  return getDb().prepare('SELECT "key" AS key FROM pages WHERE id = ?').get(id)?.key ?? null;
7665
+ case "app":
7666
+ return getDb().prepare('SELECT "key" AS key FROM apps WHERE id = ?').get(id)?.key ?? null;
7667
+ case "script":
7668
+ return getDb().prepare('SELECT "key" AS key FROM scripts WHERE id = ?').get(id)?.key ?? null;
7643
7669
  case "file":
7644
7670
  return getAssetKeyMapping(id)?.key ?? null;
7645
7671
  }
@@ -7711,6 +7737,17 @@ function moveAssetKey(input) {
7711
7737
  input.id
7712
7738
  ]);
7713
7739
  break;
7740
+ case "app":
7741
+ getDb().run('UPDATE apps SET "key" = ?, updated_at = ? WHERE id = ?', [key, now, input.id]);
7742
+ break;
7743
+ case "script":
7744
+ getDb().run('UPDATE scripts SET "key" = ?, updatedAt = ?, updated_by = ? WHERE id = ?', [
7745
+ key,
7746
+ now,
7747
+ input.changedBy ?? null,
7748
+ input.id
7749
+ ]);
7750
+ break;
7714
7751
  case "file":
7715
7752
  getDb().run('UPDATE asset_key_mappings SET "key" = ?, updated_at = ?, updated_by = ? WHERE id = ?', [key, now, input.changedBy ?? null, input.id]);
7716
7753
  break;
@@ -12895,4 +12932,4 @@ var init_db = __esm(() => {
12895
12932
  };
12896
12933
  });
12897
12934
 
12898
- export { normalizeAssetKey, parseAssetKey, canWriteAssetKey, init_key, slackContextKey, agentmailContextKey, githubContextKey, gitlabContextKey, linearContextKey, buildJiraContextKey, scheduleContextKey, workflowContextKey, agentContextKey, pageContextKey, init_context_key, checkSlackRoutingCoherence, init_slack_routing, initTelemetry, telemetry, init_telemetry, $OpenAPIRegistry, $OpenApiGeneratorV31, init_dist, init_zod_openapi, AssetKeySchema, AssetEntityTypeSchema, AssetKeyMappingSchema, AssetSummarySchema, ModelTierSchema, ReasoningEffortSchema, splitLegacyModelAlias, resolveTaskModelSelection, AgentTaskStatusSchema, isTerminalTaskStatus, AgentTaskSourceSchema, ProviderNameSchema, SteerModeSchema, SteeringSourceSchema, SteeringMessageSchema, SteerOutcomeSchema, OnUnsupportedSchema, SteerResultSchema, FollowUpConfigSchema, AgentTaskSchema, AttachmentInputSchema, TaskAttachmentSchema, UserSchema, InboxItemTypeSchema, InboxItemStatusSchema, InboxItemStateSchema, FavoriteItemTypeSchema, UserFavoriteSchema, TaskTemplateKindSchema, TaskTemplateSchema, AgentStatusSchema, AgentAvatarSchema, AgentSchema, AgentLatestModelSchema, AgentCredStatusSchema, AgentWithTasksSchema, ChannelTypeSchema, ServiceStatusSchema, ServiceSchema, ResumeReasonSchema, AgentLogSchema, SessionLogSchema, SessionCostModelBreakdownSchema, SessionCostSchema, EventCategorySchema, EventStatusSchema, EventSourceSchema, EventNameSchema, SwarmEventSchema, ScheduledTaskTargetTypeSchema, ScheduledTaskSchema, SwarmConfigScopeSchema, SwarmConfigSchema, RepoGuidelinesSchema, RepoHooksSchema, SwarmRepoSchema, AgentMemoryScopeSchema, AgentMemorySourceSchema, AgentMemorySchema, ActiveSessionSchema, WorkflowEdgeSchema, WorkflowDefinitionSchema, WorkflowNodePatchSchema, WorkflowPatchSchema, TriggerConfigSchema, CooldownConfigSchema, InputValueSchema, WorkflowSchema, WorkflowVersionSchema, PageContentTypeSchema, PageAuthModeSchema, PageSchema, PageVersionSchema, MetricWidgetSchema, MetricDefinitionSchema, MetricSchema, MetricVersionSchema, WorkflowRunStatusSchema, WorkflowRunSchema, ScriptRunStatusSchema, TERMINAL_SCRIPT_RUN_STATUSES, ScriptRunSchema, ScriptRunListItemSchema, ScriptRunJournalEntrySchema, WorkflowRunStepSchema, PromptTemplateScopeSchema, PromptTemplateStateSchema, PromptTemplateSchema, PromptTemplateHistorySchema, ScriptScopeSchema, ScriptFsModeSchema, ScriptRecordSchema, ScriptVersionRecordSchema, ScriptApiAuthModeSchema, ScriptApiRecordSchema, SkillSchema, AgentSkillSchema, SkillWithInstallInfoSchema, SkillFileSchema, McpAuthMethodSchema, McpServerSchema, AgentMcpServerSchema, McpServerWithInstallInfoSchema, ContextSnapshotEventTypeSchema, ContextFormulaSchema, ContextSnapshotSchema, BudgetScopeSchema, BudgetSchema, PricingProviderSchema, PricingTokenClassSchema, PricingRowSchema, BudgetRefusalCauseSchema, BudgetRefusalNotificationSchema, BudgetRefusedTriggerSchema, KvValueTypeSchema, KvNamespaceSchema, KvKeySchema, KvEntrySchema, init_types, setRequestAuth, getRequestAuth, getCurrentRequestAuth, init_request_auth_context, auditAssetKeys, init_asset_key_audit, CredentialBindingSchema, placeholderForConfigKey, CredentialBroker, DEFAULT_CREDENTIAL_BINDINGS, init_credential_broker, encryptSecret, decryptSecret, getEncryptionKey, init_crypto, normalizeDate, normalizeDateRequired, init_date_utils, init_templates, init_templates2 as init_templates1, SteeringRequestError, isSteeringEnabled2 as isSteeringEnabled, getTaskSteeringFields, promotePendingSteeringForTask, markSteeringUndeliverable, requestSteering, init_steering, isReservedConfigKey, reservedKeyError, validateConfigValue, init_swarm_config_guard, onTaskStarted, init_task_lifecycle_events, generateDefaultClaudeMd, generateDefaultSoulMd, generateDefaultIdentityMd, generateDefaultToolsMd, init_defaults, isSqliteVecAvailable, initDb, getDb, closeDb, computeContentHash, createContextVersion, getLatestContextVersion, getContextVersion, getContextVersionHistory, agentQueries, updateAgentCredentialState, createAgent, getAgentById, getAllAgents, getLeadAgent, updateAgentStatus, updateAgentMaxTasks, updateAgentProvider, setAgentHarnessProvider, updateAgentCredStatus, listAgentsWithCredStatusByProvider, getAgentHarnessProviders, updateAgentActivity, MAX_EMPTY_POLLS, incrementEmptyPollCount, resetEmptyPollCount, shouldBlockPolling, deleteAgent, getActiveTaskCount, hasCapacity, getRemainingCapacity, updateAgentStatusFromCapacity, isPoolAffinityEnforcementEnabled, buildRoutingAffinityFromAgent, isAgentEligibleForTask, taskQueries, createTask, getPendingTaskForAgent, assignUnassignedTaskPending, startTask, getTaskById, getSlackRenderV2ActivatedAt, ensureSlackRenderV2Activation, isPendingSlackMessage, recordSlackMessage, reserveSlackMessage, bindSlackMessageTimestamp, updateSlackMessageRecord, markSlackTreeRendered, deleteSlackMessageRecord, getSlackTreeMessage, getSlackTreeMessageByThread, getSlackOutcomeMessage, getSlackTreeMessages, getSlackMessageByChannelTs, getSlackTasksInThread, markTaskSlackReplySent, setSlackMessageTracking, getChildTasks, hasNonTerminalResumeChild, hasNonTerminalRerouteDecisionChild, updateTaskClaudeSessionId, updateTaskTitle, updateTaskVcs, getTasksByAgentId, getAgentCurrentTask, getTasksByStatus, findTaskByVcs, findTaskByGitHub, getAllTasks, getTasksCount, getTaskStats, getCompletedSlackTasks, getRecentlyFinishedWorkerTasks, markTasksNotified, resetTasksNotified, getInProgressSlackTasks, getSlackTasksMissingTree, getInProgressTasksByContextKey, findExistingLinearTrackerContextWork, getLatestTaskByContextKey, getLatestScriptRunStepTaskByContextKey, getAgentWorkingOnThread, getLatestActiveTaskInThread, getLatestLeadTaskInThread, getMostRecentTaskInThread, findCompletedTaskInThread, findRecentCancelledTaskInThread, completeTask, failTask, overwriteTerminalTaskResultText, cancelTask, supersedeTask, backfillSupersedeTaskResumeTaskId, pauseTask, resumeTask, getPausedTasksForAgent, getOrphanedInProgressTasksForAgent, resetOrphanedInProgressTasksForAgent, getRecentlyCancelledTasksForAgent, deleteTask, updateTaskProgress, insertTaskAttachment, getAssetKeyMappingByProvider, upsertAssetKeyMapping, getAssetKeyMapping, listAssetSummaries, moveAssetKey, deleteTaskAttachment, replaceTaskAttachment, getTaskAttachments, createSteeringMessage, getSteeringMessagesForTask, getSteeringMessageById, getPendingSteeringForTask, getPendingSteeringForAgent, markSteeringDelivered, markSteeringHandled, markSteeringPromoted, cancelPendingSteeringForTask, hasPendingSteering, getAgentWithTasks, getAllAgentsWithTasks, logQueries, createLogEntry, getLogsByAgentId, getLogsByTaskId, getLogsByTaskIdChronological, getLogsByEventType, getAllLogs, findRecentSimilarTasks, createTaskExtended, claimTask, releaseTask, acceptTask, rejectTask, moveTaskToBacklog, moveTaskFromBacklog, releaseStaleReviewingTasks, 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, sessionLogQueries, createSessionLogs, getSessionLogsByTaskId, getSessionLogsBySession, createSessionCost, getSessionCostsByTaskId, getSessionCostsByAgentId, getAllSessionCosts, getSessionCostsFiltered, UNATTRIBUTED_USER_ID, getSessionCostSummary, getDashboardCostSummary, createInboxMessage, getInboxMessageById, getUnreadInboxMessages, claimInboxMessages, markInboxMessageRead, markInboxMessageResponded, markInboxMessageDelegated, releaseStaleProcessingInbox, getConcurrentContext, getScheduledTasks, getScheduledTaskById, getScheduledTaskByName, createScheduledTask, updateScheduledTask, deleteScheduledTask, getDueScheduledTasks, autoEncryptLegacyPlaintextSecrets, maskSecrets, getSwarmConfigs, getInjectableGlobalConfigs, getSwarmConfigById, getSwarmConfigLookupById, upsertSwarmConfig, 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, 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, updateApprovalRequestNotifications, listApprovalRequests, getStuckApprovalRuns, getApprovalRequestByStepId, getExpiredPendingApprovals, 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, updateMcpServer, deleteMcpServer, getMcpServerById, getMcpServerByName, listMcpServers, installMcpServer, uninstallMcpServer, getAgentMcpServers, createContextSnapshot, getContextSnapshotsByTaskId, getContextSnapshotsBySessionId, getContextSummaryByTaskId, getAvailableKeyIndices, recordKeyUsage, markKeyRateLimited, 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, getInstanceActivity, getSwarmMetrics, hasFirstCompletedTask, getKv, sweepExpiredKv, sweepExpiredKvPrefix, upsertKv, deleteKv, KvTypeCollisionError, incrKv, listKv, countKv, createScriptRun, recordInlineScriptRun, getScriptRun, getScriptRunByIdempotencyKey, listScriptRuns, countScriptRuns, countActiveScriptRuns, updateScriptRun, getRunningScriptRuns, getScriptRunJournalStep, upsertScriptRunJournalStep, listScriptRunJournalSteps, countScriptRunJournalSteps, countScriptRunJournalAgentTaskSteps, exports_db, init_db };
12935
+ export { normalizeAssetKey, defaultAssetKey, parseAssetKey, canWriteAssetKey, init_key, slackContextKey, agentmailContextKey, githubContextKey, gitlabContextKey, linearContextKey, buildJiraContextKey, scheduleContextKey, workflowContextKey, agentContextKey, pageContextKey, init_context_key, checkSlackRoutingCoherence, init_slack_routing, initTelemetry, telemetry, init_telemetry, $OpenAPIRegistry, $OpenApiGeneratorV31, init_dist, init_zod_openapi, AssetKeySchema, AssetEntityTypeSchema, AssetKeyMappingSchema, AssetSummarySchema, ModelTierSchema, ReasoningEffortSchema, splitLegacyModelAlias, resolveTaskModelSelection, AgentTaskStatusSchema, isTerminalTaskStatus, AgentTaskSourceSchema, ProviderNameSchema, SteerModeSchema, SteeringSourceSchema, SteeringMessageSchema, SteerOutcomeSchema, OnUnsupportedSchema, SteerResultSchema, FollowUpConfigSchema, AgentTaskSchema, AttachmentInputSchema, TaskAttachmentSchema, UserSchema, InboxItemTypeSchema, InboxItemStatusSchema, InboxItemStateSchema, FavoriteItemTypeSchema, UserFavoriteSchema, TaskTemplateKindSchema, TaskTemplateSchema, AgentStatusSchema, AgentAvatarSchema, AgentSchema, AgentLatestModelSchema, AgentCredStatusSchema, AgentWithTasksSchema, ChannelTypeSchema, ServiceStatusSchema, ServiceSchema, ResumeReasonSchema, AgentLogSchema, SessionLogSchema, SessionCostModelBreakdownSchema, SessionCostSchema, EventCategorySchema, EventStatusSchema, EventSourceSchema, EventNameSchema, SwarmEventSchema, ScheduledTaskTargetTypeSchema, ScheduledTaskSchema, SwarmConfigScopeSchema, SwarmConfigSchema, RepoGuidelinesSchema, RepoHooksSchema, SwarmRepoSchema, AgentMemoryScopeSchema, AgentMemorySourceSchema, AgentMemorySchema, ActiveSessionSchema, WorkflowEdgeSchema, WorkflowDefinitionSchema, WorkflowNodePatchSchema, WorkflowPatchSchema, TriggerConfigSchema, CooldownConfigSchema, InputValueSchema, WorkflowSchema, WorkflowVersionSchema, PageContentTypeSchema, PageAuthModeSchema, PageSchema, PageVersionSchema, MetricWidgetSchema, MetricDefinitionSchema, MetricSchema, MetricVersionSchema, WorkflowRunStatusSchema, WorkflowRunSchema, ScriptRunStatusSchema, TERMINAL_SCRIPT_RUN_STATUSES, ScriptRunSchema, ScriptRunListItemSchema, ScriptRunJournalEntrySchema, WorkflowRunStepSchema, PromptTemplateScopeSchema, PromptTemplateStateSchema, PromptTemplateSchema, PromptTemplateHistorySchema, ScriptScopeSchema, ScriptFsModeSchema, ScriptRecordSchema, ScriptVersionRecordSchema, ScriptApiAuthModeSchema, ScriptApiRecordSchema, SkillSchema, AgentSkillSchema, SkillWithInstallInfoSchema, SkillFileSchema, McpAuthMethodSchema, McpServerSchema, AgentMcpServerSchema, McpServerWithInstallInfoSchema, ContextSnapshotEventTypeSchema, ContextFormulaSchema, ContextSnapshotSchema, BudgetScopeSchema, BudgetSchema, PricingProviderSchema, PricingTokenClassSchema, PricingRowSchema, BudgetRefusalCauseSchema, BudgetRefusalNotificationSchema, BudgetRefusedTriggerSchema, KvValueTypeSchema, KvNamespaceSchema, KvKeySchema, KvEntrySchema, init_types, setRequestAuth, getRequestAuth, getCurrentRequestAuth, init_request_auth_context, auditAssetKeys, init_asset_key_audit, CredentialBindingSchema, placeholderForConfigKey, CredentialBroker, DEFAULT_CREDENTIAL_BINDINGS, init_credential_broker, encryptSecret, decryptSecret, getEncryptionKey, init_crypto, normalizeDate, normalizeDateRequired, init_date_utils, init_templates, init_templates2 as init_templates1, SteeringRequestError, isSteeringEnabled2 as isSteeringEnabled, getTaskSteeringFields, promotePendingSteeringForTask, markSteeringUndeliverable, requestSteering, init_steering, isReservedConfigKey, reservedKeyError, validateConfigValue, init_swarm_config_guard, onTaskStarted, init_task_lifecycle_events, generateDefaultClaudeMd, generateDefaultSoulMd, generateDefaultIdentityMd, generateDefaultToolsMd, init_defaults, isSqliteVecAvailable, initDb, getDb, closeDb, computeContentHash, createContextVersion, getLatestContextVersion, getContextVersion, getContextVersionHistory, agentQueries, updateAgentCredentialState, createAgent, getAgentById, getAllAgents, getLeadAgent, updateAgentStatus, updateAgentMaxTasks, updateAgentProvider, setAgentHarnessProvider, updateAgentCredStatus, listAgentsWithCredStatusByProvider, getAgentHarnessProviders, updateAgentActivity, MAX_EMPTY_POLLS, incrementEmptyPollCount, resetEmptyPollCount, shouldBlockPolling, deleteAgent, getActiveTaskCount, hasCapacity, getRemainingCapacity, updateAgentStatusFromCapacity, isPoolAffinityEnforcementEnabled, buildRoutingAffinityFromAgent, isAgentEligibleForTask, taskQueries, createTask, getPendingTaskForAgent, assignUnassignedTaskPending, startTask, getTaskById, getSlackRenderV2ActivatedAt, ensureSlackRenderV2Activation, isPendingSlackMessage, recordSlackMessage, reserveSlackMessage, bindSlackMessageTimestamp, updateSlackMessageRecord, markSlackTreeRendered, deleteSlackMessageRecord, getSlackTreeMessage, getSlackTreeMessageByThread, getSlackOutcomeMessage, getSlackTreeMessages, getSlackMessageByChannelTs, getSlackTasksInThread, markTaskSlackReplySent, setSlackMessageTracking, getChildTasks, hasNonTerminalResumeChild, hasNonTerminalRerouteDecisionChild, updateTaskClaudeSessionId, updateTaskTitle, updateTaskVcs, getTasksByAgentId, getAgentCurrentTask, getTasksByStatus, findTaskByVcs, findTaskByGitHub, getAllTasks, getTasksCount, getTaskStats, getCompletedSlackTasks, getRecentlyFinishedWorkerTasks, markTasksNotified, resetTasksNotified, getInProgressSlackTasks, getSlackTasksMissingTree, getInProgressTasksByContextKey, findExistingLinearTrackerContextWork, getLatestTaskByContextKey, getLatestScriptRunStepTaskByContextKey, getAgentWorkingOnThread, getLatestActiveTaskInThread, getLatestLeadTaskInThread, getMostRecentTaskInThread, findCompletedTaskInThread, findRecentCancelledTaskInThread, completeTask, failTask, overwriteTerminalTaskResultText, cancelTask, supersedeTask, backfillSupersedeTaskResumeTaskId, pauseTask, resumeTask, getPausedTasksForAgent, getOrphanedInProgressTasksForAgent, resetOrphanedInProgressTasksForAgent, getRecentlyCancelledTasksForAgent, deleteTask, updateTaskProgress, insertTaskAttachment, getAssetKeyMappingByProvider, upsertAssetKeyMapping, getAssetKeyMapping, listAssetSummaries, moveAssetKey, deleteTaskAttachment, replaceTaskAttachment, getTaskAttachments, createSteeringMessage, getSteeringMessagesForTask, getSteeringMessageById, getPendingSteeringForTask, getPendingSteeringForAgent, markSteeringDelivered, markSteeringHandled, markSteeringPromoted, cancelPendingSteeringForTask, hasPendingSteering, getAgentWithTasks, getAllAgentsWithTasks, logQueries, createLogEntry, getLogsByAgentId, getLogsByTaskId, getLogsByTaskIdChronological, getLogsByEventType, getAllLogs, findRecentSimilarTasks, createTaskExtended, claimTask, releaseTask, acceptTask, rejectTask, moveTaskToBacklog, moveTaskFromBacklog, releaseStaleReviewingTasks, 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, sessionLogQueries, createSessionLogs, getSessionLogsByTaskId, getSessionLogsBySession, createSessionCost, getSessionCostsByTaskId, getSessionCostsByAgentId, getAllSessionCosts, getSessionCostsFiltered, UNATTRIBUTED_USER_ID, getSessionCostSummary, getDashboardCostSummary, createInboxMessage, getInboxMessageById, getUnreadInboxMessages, claimInboxMessages, markInboxMessageRead, markInboxMessageResponded, markInboxMessageDelegated, releaseStaleProcessingInbox, getConcurrentContext, getScheduledTasks, getScheduledTaskById, getScheduledTaskByName, createScheduledTask, updateScheduledTask, deleteScheduledTask, getDueScheduledTasks, autoEncryptLegacyPlaintextSecrets, maskSecrets, getSwarmConfigs, getInjectableGlobalConfigs, getSwarmConfigById, getSwarmConfigLookupById, upsertSwarmConfig, 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, 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, updateApprovalRequestNotifications, listApprovalRequests, getStuckApprovalRuns, getApprovalRequestByStepId, getExpiredPendingApprovals, 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, updateMcpServer, deleteMcpServer, getMcpServerById, getMcpServerByName, listMcpServers, installMcpServer, uninstallMcpServer, getAgentMcpServers, createContextSnapshot, getContextSnapshotsByTaskId, getContextSnapshotsBySessionId, getContextSummaryByTaskId, getAvailableKeyIndices, recordKeyUsage, markKeyRateLimited, 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, getInstanceActivity, getSwarmMetrics, hasFirstCompletedTask, getKv, sweepExpiredKv, sweepExpiredKvPrefix, upsertKv, deleteKv, KvTypeCollisionError, incrKv, listKv, countKv, createScriptRun, recordInlineScriptRun, getScriptRun, getScriptRunByIdempotencyKey, listScriptRuns, countScriptRuns, countActiveScriptRuns, updateScriptRun, getRunningScriptRuns, getScriptRunJournalStep, upsertScriptRunJournalStep, listScriptRunJournalSteps, countScriptRunJournalSteps, countScriptRunJournalAgentTaskSteps, exports_db, init_db };