@desplega.ai/agent-swarm 2.5.1 → 2.5.2

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 (155) hide show
  1. package/dist/{acp-adapter-7g6bpwbk.js → acp-adapter-csh0zz3b.js} +1 -1
  2. package/dist/{actions-w8xd014k.js → actions-6xx079d1.js} +17 -17
  3. package/dist/{amp-adapter-z4qvhacj.js → amp-adapter-8n6f0hz8.js} +2 -2
  4. package/dist/{app-nndcvftq.js → app-ft6r6v23.js} +3 -3
  5. package/dist/{assistant-hjmqyscx.js → assistant-vt2cyfzd.js} +18 -18
  6. package/dist/{boot-reembed-r8rhf9h8.js → boot-reembed-r3e808ky.js} +1 -1
  7. package/dist/{boot-reembed-vwcj2y5d.js → boot-reembed-tgrfy27t.js} +1 -1
  8. package/dist/{boot-scrub-sweep-fr9q36ne.js → boot-scrub-sweep-masdwxkm.js} +2 -2
  9. package/dist/{boot-seeds-9jqwnegq.js → boot-seeds-0n82qc7q.js} +4 -4
  10. package/dist/{claude-adapter-2f8b85df.js → claude-adapter-s7j47k06.js} +2 -2
  11. package/dist/{claude-managed-setup-c3hp36ph.js → claude-managed-setup-3hzrgrnk.js} +1 -1
  12. package/dist/{claude-sdk-session-05kat8rv.js → claude-sdk-session-0zrdzyx2.js} +6905 -6855
  13. package/dist/{cli-mz2ygeyq.js → cli-0vgy5wfw.js} +2 -2
  14. package/dist/{cli-eym3jg7w.js → cli-14v1sxxy.js} +6 -6
  15. package/dist/{cli-e9btqw4y.js → cli-15xd0j7w.js} +18 -13
  16. package/dist/{cli-v2g93k4v.js → cli-3e9vs93g.js} +4 -4
  17. package/dist/{cli-1dp1zj04.js → cli-4qkg9968.js} +3 -3
  18. package/dist/{cli-ba8ne1es.js → cli-4rvr7zfx.js} +10 -0
  19. package/dist/{cli-rngde2jv.js → cli-6y43v79h.js} +1 -1
  20. package/dist/{cli-z63a269p.js → cli-7ccf7akh.js} +1 -1
  21. package/dist/{cli-z2dv25mf.js → cli-86zpfje5.js} +116 -5
  22. package/dist/{cli-fes51ya2.js → cli-aaqnqpyw.js} +2 -2
  23. package/dist/{cli-qfm6my86.js → cli-b1tv22wr.js} +1 -1
  24. package/dist/{cli-xc65x52q.js → cli-b63d08rs.js} +1 -1
  25. package/dist/{cli-gwcf52gz.js → cli-b6tnjdvx.js} +11 -7
  26. package/dist/{cli-9mm5ade4.js → cli-bpbcpd8b.js} +1 -1
  27. package/dist/{cli-qfjm4gvt.js → cli-cf63dnxj.js} +2 -2
  28. package/dist/{cli-q9pzwxvk.js → cli-csh8fnbg.js} +82 -16
  29. package/dist/{cli-0jy85zz4.js → cli-cyfgxnvb.js} +7 -7
  30. package/dist/{cli-y3zyaee5.js → cli-d172svcw.js} +5 -5
  31. package/dist/{cli-mq7kg1b1.js → cli-e91vshb1.js} +41 -6
  32. package/dist/{cli-cah5detr.js → cli-edtm741g.js} +5 -5
  33. package/dist/{cli-ajqhxtnz.js → cli-f3pfn4x3.js} +1 -1
  34. package/dist/{cli-hadv0725.js → cli-f55b6ky0.js} +1 -1
  35. package/dist/{cli-r9fy0ddc.js → cli-fgn7yg5r.js} +1 -1
  36. package/dist/{cli-kcsd1ez8.js → cli-h5d22pfs.js} +249 -68
  37. package/dist/{cli-2wba1ac9.js → cli-ha22h0eg.js} +20 -20
  38. package/dist/{cli-pyy4c9ch.js → cli-j3dwd4kz.js} +173 -134
  39. package/dist/{cli-j1eghqfm.js → cli-jmcjbjkt.js} +1 -1
  40. package/dist/{cli-22rmcjkg.js → cli-kcnwn85g.js} +4 -3
  41. package/dist/{cli-rh5smt8t.js → cli-mntxtkhn.js} +12 -2
  42. package/dist/{cli-2jg61wab.js → cli-n2918sed.js} +9 -9
  43. package/dist/{cli-3ee5z0q0.js → cli-qrjv7t18.js} +1 -1
  44. package/dist/{cli-sn1vbtg2.js → cli-vaxw3bg0.js} +3 -3
  45. package/dist/{cli-cwyafhw1.js → cli-wadzapwb.js} +1 -1
  46. package/dist/{cli-jpxsrxcb.js → cli-xw9q173h.js} +1 -1
  47. package/dist/{cli-znvq0k3t.js → cli-xzge46sj.js} +2 -2
  48. package/dist/{cli-nj12tn2c.js → cli-y3dzwyy3.js} +3 -3
  49. package/dist/{cli-xd4eqtr2.js → cli-ydg6ep51.js} +1 -1
  50. package/dist/cli.js +16 -15
  51. package/dist/{codex-adapter-p4ptwar5.js → codex-adapter-brh2tcxr.js} +1 -1
  52. package/dist/{codex-session-runner-964c7dnk.js → codex-session-runner-0dnj21qs.js} +1 -1
  53. package/dist/{commands-mbvhbrcy.js → commands-1cnvseqx.js} +2 -2
  54. package/dist/{controller-gnq1k1mf.js → controller-kc7s9xhn.js} +2 -2
  55. package/dist/{controllers-connect-6dkm71tg.js → controllers-connect-jzx7t4bn.js} +18 -18
  56. package/dist/{cursor-adapter-yq5xgfcg.js → cursor-adapter-qpwp5sfg.js} +1 -1
  57. package/dist/{db-af9y8nkf.js → db-4vq88jkc.js} +3 -3
  58. package/dist/{db-88wcymxt.js → db-v5ytg5pw.js} +1 -1
  59. package/dist/{dispatcher-606ydx5v.js → dispatcher-trtcrqae.js} +16 -16
  60. package/dist/{dsh-adapter-tvhc4k2d.js → dsh-adapter-f20xwn1z.js} +1 -1
  61. package/dist/{external-channel-y8q5z8z2.js → external-channel-n9bymc2n.js} +2 -2
  62. package/dist/{grok-adapter-39aha52t.js → grok-adapter-4kpmmnr6.js} +2 -2
  63. package/dist/{handlers-rk9dqech.js → handlers-ptsraqa8.js} +19 -19
  64. package/dist/{heartbeat-jfe9zfjr.js → heartbeat-60qtxtjf.js} +19 -19
  65. package/dist/{hook-ffevzed1.js → hook-ngtvh729.js} +1 -1
  66. package/dist/{hook-b1mez1m8.js → hook-rbktcstg.js} +1 -1
  67. package/dist/{http-d5b44f1r.js → http-z8xy72gp.js} +334 -86
  68. package/dist/{index-nq8hhv28.js → index-06qkmcx6.js} +10 -9
  69. package/dist/{index-d2qeem97.js → index-1cscynkb.js} +16 -16
  70. package/dist/{index-5en23s5z.js → index-a9nsavhx.js} +1 -1
  71. package/dist/{index-4q3vj1yr.js → index-r70q0xjx.js} +16 -16
  72. package/dist/{index-mj46rk9k.js → index-s193j5fh.js} +19 -19
  73. package/dist/{keepalive-wsby1btq.js → keepalive-a9srcphj.js} +3 -3
  74. package/dist/{lead-paa141j6.js → lead-3devneqy.js} +26 -26
  75. package/dist/{maintenance-vnshcyv9.js → maintenance-0er16h2y.js} +1 -1
  76. package/dist/{oauth-refresh-sweep-d6sqn5np.js → oauth-refresh-sweep-b65jcyw2.js} +2 -2
  77. package/dist/{onboard-nr4xhpzy.js → onboard-wqywz5py.js} +2 -2
  78. package/dist/{otel-impl-ytn9wyv9.js → otel-impl-vk32s884.js} +1 -1
  79. package/dist/{pricing-refresh-pva04zee.js → pricing-refresh-t27anv4z.js} +3 -3
  80. package/dist/rbac-roles-452665y0.js +26 -0
  81. package/dist/{rbac-roles-7rc1q3g4.js → rbac-roles-bmcgsxjn.js} +12 -2
  82. package/dist/{render-v2-pyfsg9zk.js → render-v2-0ttsk2j4.js} +3 -3
  83. package/dist/{resume-phj8xhqr.js → resume-a26kvr41.js} +5 -5
  84. package/dist/{session-access-jzx2z9h5.js → session-access-dgh9nkwk.js} +4 -4
  85. package/dist/{setup-rfg0f0sg.js → setup-9vc9qahm.js} +1 -1
  86. package/dist/{work-objects-44z2yjg8.js → work-objects-vn8nkxwn.js} +19 -19
  87. package/dist/{worker-zsfqzxhm.js → worker-1x1h8vnm.js} +26 -26
  88. package/openapi.json +463 -3
  89. package/package.json +4 -3
  90. package/src/be/db/session-tree.ts +89 -2
  91. package/src/be/db/session-visibility.ts +31 -0
  92. package/src/be/db/tasks/read.ts +18 -5
  93. package/src/be/db.ts +2 -0
  94. package/src/be/migrations/233_script_run_session_tokens.sql +8 -0
  95. package/src/be/migrations/235_chat_relay_defer.sql +86 -0
  96. package/src/be/migrations/237_session_inbox_cleanup.sql +75 -0
  97. package/src/be/rbac-roles.ts +138 -0
  98. package/src/be/scripts/run-credential.ts +64 -0
  99. package/src/be/scripts/run-saved.ts +3 -2
  100. package/src/be/users.ts +28 -4
  101. package/src/http/all-routes.ts +1 -0
  102. package/src/http/approval-requests.ts +46 -6
  103. package/src/http/index.ts +2 -0
  104. package/src/http/schedules.ts +26 -0
  105. package/src/http/scripts.ts +2 -2
  106. package/src/http/sessions.ts +93 -2
  107. package/src/http/user-roles.ts +173 -0
  108. package/src/http/users.ts +9 -0
  109. package/src/http/x.ts +2 -2
  110. package/src/integrations/chat-sdk/commands.ts +14 -1
  111. package/src/integrations/chat-sdk/inbound.ts +40 -5
  112. package/src/integrations/chat-sdk/outbound.ts +35 -10
  113. package/src/integrations/chat-sdk/reactions.ts +107 -0
  114. package/src/integrations/chat-sdk/relay.ts +75 -7
  115. package/src/integrations/chat-sdk/thread-buffer.ts +2 -0
  116. package/src/integrations/reaction-events.ts +20 -0
  117. package/src/providers/amp-adapter.ts +1 -1
  118. package/src/rbac/legacy-policy.ts +3 -0
  119. package/src/rbac/permissions.ts +8 -0
  120. package/src/scheduler/schedule-task.ts +44 -3
  121. package/src/scheduler/scheduler.ts +4 -4
  122. package/src/scripts-runtime/loader.ts +8 -1
  123. package/src/slack/ack.ts +2 -1
  124. package/src/slack/reaction-shortcode.ts +4 -7
  125. package/src/tasks/worker-follow-up.ts +30 -0
  126. package/src/tests/approval-requests-notifications.test.ts +189 -0
  127. package/src/tests/chat-sdk-commands.test.ts +12 -0
  128. package/src/tests/chat-sdk-inbound.test.ts +163 -9
  129. package/src/tests/chat-sdk-outbound-files.test.ts +9 -2
  130. package/src/tests/chat-sdk-relay.test.ts +361 -10
  131. package/src/tests/chat-sdk-tools.test.ts +104 -0
  132. package/src/tests/docs-index-footprint.test.js +3 -3
  133. package/src/tests/http-users.test.ts +38 -0
  134. package/src/tests/migration-237-session-inbox-cleanup.test.ts +136 -0
  135. package/src/tests/rbac-engine.test.ts +2 -0
  136. package/src/tests/rbac-roles.test.ts +10 -0
  137. package/src/tests/schedule-http-triage-tools.test.ts +44 -0
  138. package/src/tests/script-api-credential.test.ts +173 -0
  139. package/src/tests/script-connections.test.ts +4 -0
  140. package/src/tests/script-run-config-scope.test.ts +120 -0
  141. package/src/tests/script-run-token.test.ts +75 -0
  142. package/src/tests/scripts-http.test.ts +19 -0
  143. package/src/tests/sessions-tree.test.ts +242 -0
  144. package/src/tests/user-roles-http.test.ts +204 -0
  145. package/src/tests/workflow-hitl-dynamic-questions.test.ts +1 -1
  146. package/src/tools/chat-reply.ts +2 -0
  147. package/src/tools/schedules/patch-schedule.ts +18 -0
  148. package/src/tools/schedules/update-schedule.ts +18 -0
  149. package/src/types.ts +16 -0
  150. package/src/workflows/approval-notifications.ts +214 -0
  151. package/src/workflows/executors/human-in-the-loop.ts +11 -172
  152. package/src/workflows/executors/swarm-script.ts +2 -2
  153. package/templates/schedules/weekly-harness-upgrade-check/content.md +1 -1
  154. package/templates/skills/code-quality/content.md +1 -1
  155. package/dist/rbac-roles-ff1ffmec.js +0 -12
@@ -20,7 +20,7 @@ import {
20
20
  renderMemoriesPrompt,
21
21
  isUnknownModelError,
22
22
  writeSkillsToFilesystem
23
- } from "./cli-cwyafhw1.js";
23
+ } from "./cli-wadzapwb.js";
24
24
  import {
25
25
  isPollTracingEnabled,
26
26
  initOtel,
@@ -30,7 +30,7 @@ import {
30
30
  injectTraceContext2,
31
31
  initialize,
32
32
  ensure
33
- } from "./cli-e9btqw4y.js";
33
+ } from "./cli-15xd0j7w.js";
34
34
  import {
35
35
  getContextWindowSize
36
36
  } from "./cli-a5ebc95n.js";
@@ -51,7 +51,7 @@ import {
51
51
  canonicalAzureDevOpsRepoUrl,
52
52
  parseAzureDevOpsRepoUrl,
53
53
  resolveScriptsOnlyMode
54
- } from "./cli-kcsd1ez8.js";
54
+ } from "./cli-h5d22pfs.js";
55
55
  import {
56
56
  ACP_TARGET_IDS,
57
57
  isAcpTarget
@@ -59,32 +59,32 @@ import {
59
59
  import {
60
60
  checkAmpCredentials2,
61
61
  liveTestAmpCredentials2
62
- } from "./cli-fes51ya2.js";
62
+ } from "./cli-aaqnqpyw.js";
63
63
  import {
64
64
  checkClaudeCredentials2
65
- } from "./cli-qfjm4gvt.js";
65
+ } from "./cli-cf63dnxj.js";
66
66
  import {
67
67
  checkClaudeManagedCredentials2
68
68
  } from "./cli-n6kmqngw.js";
69
69
  import {
70
70
  codexUserHome,
71
71
  checkCodexCredentials2
72
- } from "./cli-znvq0k3t.js";
72
+ } from "./cli-xzge46sj.js";
73
73
  import {
74
74
  checkCursorCredentials2
75
- } from "./cli-j1eghqfm.js";
75
+ } from "./cli-jmcjbjkt.js";
76
76
  import {
77
77
  checkDevinCredentials2
78
78
  } from "./cli-g1cw7xtt.js";
79
79
  import {
80
80
  checkDshCredentials2
81
- } from "./cli-z63a269p.js";
81
+ } from "./cli-7ccf7akh.js";
82
82
  import {
83
83
  checkOpencodeCredentials2
84
84
  } from "./cli-stxdrqs2.js";
85
85
  import {
86
86
  checkGrokCredentials2
87
- } from "./cli-3ee5z0q0.js";
87
+ } from "./cli-qrjv7t18.js";
88
88
  import {
89
89
  CODEX_OAUTH_POOL_SLOTS_ENV,
90
90
  isCodexOAuthConfigKey,
@@ -93,7 +93,7 @@ import {
93
93
  } from "./cli-j4bwnpkm.js";
94
94
  import {
95
95
  validateJsonSchema
96
- } from "./cli-pyy4c9ch.js";
96
+ } from "./cli-j3dwd4kz.js";
97
97
  import {
98
98
  mapTriggerSurface,
99
99
  init_telemetry_context,
@@ -111,7 +111,7 @@ import {
111
111
  init_vcs_repo_match,
112
112
  isApiDrainingResponse,
113
113
  init_api_drain
114
- } from "./cli-q9pzwxvk.js";
114
+ } from "./cli-csh8fnbg.js";
115
115
  import {
116
116
  parseWorkerModelTierOverrides,
117
117
  resolveTaskModelSelection,
@@ -119,7 +119,7 @@ import {
119
119
  ProviderNameSchema,
120
120
  WorkerNudgeSchema,
121
121
  init_types
122
- } from "./cli-rh5smt8t.js";
122
+ } from "./cli-mntxtkhn.js";
123
123
  import {
124
124
  generateDefaultClaudeMd2,
125
125
  generateDefaultSoulMd2,
@@ -246,7 +246,7 @@ async function materializeCodexAuthJson(_slot, creds, deps = {}) {
246
246
  async function createProviderAdapter(provider) {
247
247
  switch (provider) {
248
248
  case "claude": {
249
- const { ClaudeAdapter } = await import("./claude-adapter-2f8b85df.js");
249
+ const { ClaudeAdapter } = await import("./claude-adapter-s7j47k06.js");
250
250
  return new ClaudeAdapter;
251
251
  }
252
252
  case "pi": {
@@ -254,7 +254,7 @@ async function createProviderAdapter(provider) {
254
254
  return new PiMonoAdapter;
255
255
  }
256
256
  case "codex": {
257
- const { CodexAdapter } = await import("./codex-adapter-p4ptwar5.js");
257
+ const { CodexAdapter } = await import("./codex-adapter-brh2tcxr.js");
258
258
  return new CodexAdapter;
259
259
  }
260
260
  case "claude-managed": {
@@ -270,23 +270,23 @@ async function createProviderAdapter(provider) {
270
270
  return new OpencodeAdapter;
271
271
  }
272
272
  case "dsh": {
273
- const { DshAdapter } = await import("./dsh-adapter-tvhc4k2d.js");
273
+ const { DshAdapter } = await import("./dsh-adapter-f20xwn1z.js");
274
274
  return new DshAdapter;
275
275
  }
276
276
  case "amp": {
277
- const { AmpAdapter } = await import("./amp-adapter-z4qvhacj.js");
277
+ const { AmpAdapter } = await import("./amp-adapter-8n6f0hz8.js");
278
278
  return new AmpAdapter;
279
279
  }
280
280
  case "cursor": {
281
- const { CursorAdapter } = await import("./cursor-adapter-yq5xgfcg.js");
281
+ const { CursorAdapter } = await import("./cursor-adapter-qpwp5sfg.js");
282
282
  return new CursorAdapter;
283
283
  }
284
284
  case "grok": {
285
- const { GrokAdapter } = await import("./grok-adapter-39aha52t.js");
285
+ const { GrokAdapter } = await import("./grok-adapter-4kpmmnr6.js");
286
286
  return new GrokAdapter;
287
287
  }
288
288
  case "acp": {
289
- const { ACPAdapter } = await import("./acp-adapter-7g6bpwbk.js");
289
+ const { ACPAdapter } = await import("./acp-adapter-csh0zz3b.js");
290
290
  return new ACPAdapter;
291
291
  }
292
292
  default:
@@ -1539,7 +1539,7 @@ async function validateProviderCredentials(provider, env = process.env, presence
1539
1539
  latency_ms: Date.now() - startedAt
1540
1540
  };
1541
1541
  }
1542
- const { liveTestCursorKey } = await import("./cursor-adapter-yq5xgfcg.js");
1542
+ const { liveTestCursorKey } = await import("./cursor-adapter-qpwp5sfg.js");
1543
1543
  const result = await liveTestCursorKey(apiKey);
1544
1544
  return result.ok ? { ok: true, latency_ms: Date.now() - startedAt } : { ok: false, error: result.error, latency_ms: Date.now() - startedAt };
1545
1545
  }
@@ -31,14 +31,21 @@ import {
31
31
  getStepCountForNode2,
32
32
  getLatestStepForNode2,
33
33
  getCurrentStepForNode2,
34
+ getApprovalRequestById2,
34
35
  claimApprovalCancellationNotification2,
35
36
  completeApprovalCancellationNotificationClaim2,
36
37
  releaseApprovalCancellationNotificationClaim2,
38
+ updateApprovalRequestNotifications2,
37
39
  init_db3
38
- } from "./cli-q9pzwxvk.js";
40
+ } from "./cli-csh8fnbg.js";
39
41
  import {
40
42
  getSlackApp2
41
- } from "./cli-e9btqw4y.js";
43
+ } from "./cli-15xd0j7w.js";
44
+ import {
45
+ externalChannelToolError2,
46
+ isBlockExternalEnabled2,
47
+ getChannelBlockReason2
48
+ } from "./cli-b63d08rs.js";
42
49
  import {
43
50
  DEFAULT_MODEL,
44
51
  resolveCredential
@@ -46,7 +53,7 @@ import {
46
53
  import {
47
54
  TERMINAL_TASK_STATUSES,
48
55
  init_types
49
- } from "./cli-rh5smt8t.js";
56
+ } from "./cli-mntxtkhn.js";
50
57
  import {
51
58
  getSlackConfiguration,
52
59
  isSlackConfigured,
@@ -117,7 +124,7 @@ async function notifyAutomationPreflightFailure(preflight) {
117
124
  return;
118
125
  }
119
126
  try {
120
- const { getSlackApp } = await import("./app-nndcvftq.js");
127
+ const { getSlackApp } = await import("./app-ft6r6v23.js");
121
128
  const app = getSlackApp();
122
129
  if (!app) {
123
130
  console.warn("[Automation Preflight] Slack not available, cannot send notification");
@@ -450,14 +457,164 @@ class BaseExecutor {
450
457
 
451
458
  // src/workflows/executors/human-in-the-loop.ts
452
459
  init_zod();
453
- init_constants2();
454
460
  init_secret_scrubber();
455
461
 
456
462
  // src/workflows/approval-notifications.ts
457
463
  init_db3();
458
464
  init_resolver();
465
+
466
+ // src/slack/dm.ts
467
+ function isSlackUserId(id) {
468
+ return /^[UW][A-Z0-9]+$/.test(id);
469
+ }
470
+ async function resolveSlackConversationId(client, channelId) {
471
+ if (!isSlackUserId(channelId))
472
+ return channelId;
473
+ const result = await client.conversations.open({ users: channelId });
474
+ const dmId = result.channel?.id;
475
+ if (!dmId) {
476
+ throw new Error(`conversations.open returned no DM channel for user ${channelId}`);
477
+ }
478
+ return dmId;
479
+ }
480
+
481
+ // src/workflows/approval-notifications.ts
459
482
  init_types();
483
+ init_constants2();
460
484
  init_secret_scrubber();
485
+ var SLACK_SECTION_TEXT_LIMIT = 3000;
486
+ function escapeSlackMrkdwn(text) {
487
+ return text.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
488
+ }
489
+ function buildSlackQuestionsSummary(questions, timeoutText = "") {
490
+ const header = `*Questions:*
491
+ `;
492
+ const lines = questions.map((q) => `• ${escapeSlackMrkdwn(q.label.replace(/\s+/g, " ").trim())}`);
493
+ const fits = (shown, omitted) => {
494
+ const tail = omitted > 0 ? `
495
+ _…and ${omitted} more. Answer all of them on the dashboard._` : "";
496
+ const text = `${header}${shown.join(`
497
+ `)}${tail}${timeoutText}`;
498
+ return text.length <= SLACK_SECTION_TEXT_LIMIT ? text : null;
499
+ };
500
+ const full = fits(lines, 0);
501
+ if (full)
502
+ return full;
503
+ for (let count = lines.length - 1;count >= 0; count--) {
504
+ const text = fits(lines.slice(0, count), lines.length - count);
505
+ if (text)
506
+ return text;
507
+ }
508
+ return `${header}_${questions.length} questions. Answer them on the dashboard._`;
509
+ }
510
+ function formatTimeout(seconds) {
511
+ if (seconds < 60)
512
+ return `${seconds}s`;
513
+ if (seconds < 3600)
514
+ return `${Math.round(seconds / 60)}m`;
515
+ const hours = Math.floor(seconds / 3600);
516
+ const mins = Math.round(seconds % 3600 / 60);
517
+ return mins > 0 ? `${hours}h ${mins}m` : `${hours}h`;
518
+ }
519
+ async function dispatchApprovalNotifications(input, db = { updateApprovalRequestNotifications: updateApprovalRequestNotifications2, getApprovalRequestById: getApprovalRequestById2 }) {
520
+ const { requestId, title, questions, timeoutSeconds, notifications } = input;
521
+ if (!notifications.length)
522
+ return;
523
+ const approvalUrl = `${getAppUrl()}/approval-requests/${requestId}`;
524
+ const updatedChannels = [
525
+ ...notifications
526
+ ];
527
+ let updated = false;
528
+ for (let i = 0;i < notifications.length; i++) {
529
+ const notification = notifications[i];
530
+ if (notification.channel === "email") {
531
+ console.warn(`[HITL] Email notifications not yet supported (target: ${notification.target})`);
532
+ continue;
533
+ }
534
+ if (notification.channel === "slack") {
535
+ try {
536
+ const slackApp = getSlackApp2();
537
+ if (!slackApp) {
538
+ console.warn("[HITL] Slack not initialized — cannot send notification");
539
+ continue;
540
+ }
541
+ if (isBlockExternalEnabled2()) {
542
+ const conversationId = await resolveSlackConversationId(slackApp.client, notification.target);
543
+ const blockReason = await getChannelBlockReason2(slackApp.client, conversationId);
544
+ if (blockReason) {
545
+ console.warn(`[HITL] ${externalChannelToolError2(conversationId, blockReason)}`);
546
+ continue;
547
+ }
548
+ }
549
+ const questionsText = buildSlackQuestionsSummary(questions);
550
+ const timeoutCaption = timeoutSeconds !== undefined ? [
551
+ {
552
+ type: "context",
553
+ elements: [
554
+ {
555
+ type: "mrkdwn",
556
+ text: `⏱ Timeout: ${formatTimeout(timeoutSeconds)} — times out if not responded`
557
+ }
558
+ ]
559
+ }
560
+ ] : [];
561
+ const blocks = [
562
+ {
563
+ type: "section",
564
+ text: {
565
+ type: "mrkdwn",
566
+ text: `\uD83D\uDD14 *Approval Required: ${escapeSlackMrkdwn(title)}*`
567
+ }
568
+ },
569
+ {
570
+ type: "section",
571
+ text: {
572
+ type: "mrkdwn",
573
+ text: questionsText
574
+ }
575
+ },
576
+ {
577
+ type: "actions",
578
+ elements: [
579
+ {
580
+ type: "button",
581
+ text: { type: "plain_text", text: "Review & Respond" },
582
+ url: approvalUrl,
583
+ style: "primary"
584
+ }
585
+ ]
586
+ },
587
+ ...timeoutCaption
588
+ ];
589
+ const result = await slackApp.client.chat.postMessage({
590
+ channel: notification.target,
591
+ text: `Approval Required: ${escapeSlackMrkdwn(title)} — ${approvalUrl}`,
592
+ unfurl_links: false,
593
+ unfurl_media: false,
594
+ blocks
595
+ });
596
+ if (result.ts) {
597
+ updatedChannels[i] = { ...notification, messageTs: result.ts };
598
+ updated = true;
599
+ }
600
+ console.log(`[HITL] Slack notification sent to ${notification.target} for request ${requestId}`);
601
+ } catch (err) {
602
+ console.error(`[HITL] Failed to send Slack notification to ${notification.target}:`, scrubSecrets(err instanceof Error ? err.message : String(err)));
603
+ }
604
+ }
605
+ }
606
+ if (updated) {
607
+ try {
608
+ await db.updateApprovalRequestNotifications(requestId, updatedChannels);
609
+ const latest = await db.getApprovalRequestById(requestId);
610
+ if (latest?.status === "cancelled") {
611
+ await postApprovalCancellationUpdates([latest], latest.resolutionReason ?? "Workflow run cancelled");
612
+ }
613
+ } catch (err) {
614
+ console.error("[HITL] Failed to update notification channels in DB:", scrubSecrets(err instanceof Error ? err.message : String(err)));
615
+ }
616
+ }
617
+ }
461
618
  async function postApprovalCancellationUpdates(approvals, reason, client = getSlackApp2()?.client) {
462
619
  if (!client)
463
620
  return;
@@ -610,7 +767,6 @@ var HITLTimeoutSchema = object2({
610
767
  });
611
768
  var DYNAMIC_QUESTIONS_TOKEN_RE = /^\{\{[^}]+\}\}$/;
612
769
  var MAX_HITL_QUESTIONS = 100;
613
- var SLACK_SECTION_TEXT_LIMIT = 3000;
614
770
  var MAX_REPORTED_ISSUES = 5;
615
771
  var HITLConfigSchema = object2({
616
772
  title: string2(),
@@ -675,30 +831,6 @@ function resolveHitlQuestions(value) {
675
831
  }
676
832
  return { ok: true, questions };
677
833
  }
678
- function escapeSlackMrkdwn(text) {
679
- return text.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
680
- }
681
- function buildSlackQuestionsSummary(questions, timeoutText = "") {
682
- const header = `*Questions:*
683
- `;
684
- const lines = questions.map((q) => `• ${escapeSlackMrkdwn(q.label.replace(/\s+/g, " ").trim())}`);
685
- const fits = (shown, omitted) => {
686
- const tail = omitted > 0 ? `
687
- _…and ${omitted} more. Answer all of them on the dashboard._` : "";
688
- const text = `${header}${shown.join(`
689
- `)}${tail}${timeoutText}`;
690
- return text.length <= SLACK_SECTION_TEXT_LIMIT ? text : null;
691
- };
692
- const full = fits(lines, 0);
693
- if (full)
694
- return full;
695
- for (let count = lines.length - 1;count >= 0; count--) {
696
- const text = fits(lines.slice(0, count), lines.length - count);
697
- if (text)
698
- return text;
699
- }
700
- return `${header}_${questions.length} questions. Answer them on the dashboard._`;
701
- }
702
834
 
703
835
  class HumanInTheLoopExecutor extends BaseExecutor {
704
836
  type = "human-in-the-loop";
@@ -765,7 +897,13 @@ class HumanInTheLoopExecutor extends BaseExecutor {
765
897
  };
766
898
  }
767
899
  if (config.notifications?.length) {
768
- this.dispatchNotifications(requestId, config, db).catch((err) => {
900
+ dispatchApprovalNotifications({
901
+ requestId,
902
+ title: config.title,
903
+ questions: config.questions,
904
+ timeoutSeconds: config.timeout?.seconds,
905
+ notifications: config.notifications
906
+ }, db).catch((err) => {
769
907
  console.error("[HITL] Unexpected error dispatching notifications:", scrubSecrets(err instanceof Error ? err.message : String(err)));
770
908
  });
771
909
  }
@@ -776,105 +914,6 @@ class HumanInTheLoopExecutor extends BaseExecutor {
776
914
  correlationId: requestId
777
915
  };
778
916
  }
779
- async dispatchNotifications(requestId, config, db) {
780
- if (!config.notifications?.length)
781
- return;
782
- const approvalUrl = `${getAppUrl()}/approval-requests/${requestId}`;
783
- const updatedChannels = [...config.notifications];
784
- let updated = false;
785
- for (let i = 0;i < config.notifications.length; i++) {
786
- const notification = config.notifications[i];
787
- if (notification.channel === "email") {
788
- console.warn(`[HITL] Email notifications not yet supported (target: ${notification.target})`);
789
- continue;
790
- }
791
- if (notification.channel === "slack") {
792
- try {
793
- const { getSlackApp } = await import("./app-nndcvftq.js");
794
- const slackApp = getSlackApp();
795
- if (!slackApp) {
796
- console.warn("[HITL] Slack not initialized — cannot send notification");
797
- continue;
798
- }
799
- const questions = Array.isArray(config.questions) ? config.questions : [];
800
- const questionsText = buildSlackQuestionsSummary(questions);
801
- const timeoutCaption = config.timeout ? [
802
- {
803
- type: "context",
804
- elements: [
805
- {
806
- type: "mrkdwn",
807
- text: `⏱ Timeout: ${formatTimeout(config.timeout.seconds)} — times out if not responded`
808
- }
809
- ]
810
- }
811
- ] : [];
812
- const blocks = [
813
- {
814
- type: "section",
815
- text: {
816
- type: "mrkdwn",
817
- text: `\uD83D\uDD14 *Approval Required: ${config.title}*`
818
- }
819
- },
820
- {
821
- type: "section",
822
- text: {
823
- type: "mrkdwn",
824
- text: questionsText
825
- }
826
- },
827
- {
828
- type: "actions",
829
- elements: [
830
- {
831
- type: "button",
832
- text: { type: "plain_text", text: "Review & Respond" },
833
- url: approvalUrl,
834
- style: "primary"
835
- }
836
- ]
837
- },
838
- ...timeoutCaption
839
- ];
840
- const result = await slackApp.client.chat.postMessage({
841
- channel: notification.target,
842
- text: `Approval Required: ${config.title} — ${approvalUrl}`,
843
- unfurl_links: false,
844
- unfurl_media: false,
845
- blocks
846
- });
847
- if (result.ts) {
848
- updatedChannels[i] = { ...notification, messageTs: result.ts };
849
- updated = true;
850
- }
851
- console.log(`[HITL] Slack notification sent to ${notification.target} for request ${requestId}`);
852
- } catch (err) {
853
- console.error(`[HITL] Failed to send Slack notification to ${notification.target}:`, scrubSecrets(err instanceof Error ? err.message : String(err)));
854
- }
855
- }
856
- }
857
- if (updated) {
858
- try {
859
- await db.updateApprovalRequestNotifications(requestId, updatedChannels);
860
- const latest = await db.getApprovalRequestById(requestId);
861
- if (latest?.status === "cancelled") {
862
- await postApprovalCancellationUpdates([latest], latest.resolutionReason ?? "Workflow run cancelled");
863
- }
864
- } catch (err) {
865
- console.error("[HITL] Failed to update notification channels in DB:", scrubSecrets(err instanceof Error ? err.message : String(err)));
866
- }
867
- }
868
- }
869
- }
870
- function formatTimeout(seconds) {
871
- if (seconds < 60)
872
- return `${seconds}s`;
873
- if (seconds < 3600)
874
- return `${Math.round(seconds / 60)}m`;
875
- const hours = Math.floor(seconds / 3600);
876
- const mins = Math.round(seconds % 3600 / 60);
877
- return mins > 0 ? `${hours}h ${mins}m` : `${hours}h`;
878
917
  }
879
918
 
880
919
  // src/workflows/executors/system-one-extraction.ts
@@ -3878,7 +3917,7 @@ async function runClaimedStep(def, runId, ctx, node, registry, existingStep, ste
3878
3917
  }
3879
3918
  const waiting = await checkpointStepWaiting(runId, stepId, ctx);
3880
3919
  if (waiting && result.waitFor === "workflow.child.finished") {
3881
- const { resumeFromChildRun } = await import("./resume-phj8xhqr.js");
3920
+ const { resumeFromChildRun } = await import("./resume-a26kvr41.js");
3882
3921
  await resumeFromChildRun(stepId, registry);
3883
3922
  }
3884
3923
  return { outcome: waiting ? "waiting" : "completed", successors: [] };
@@ -4330,7 +4369,7 @@ async function runForeachDrive(runId, parentNodeId, registry) {
4330
4369
  if (drive.successors.length > 0) {
4331
4370
  await walkGraph(workflow.definition, runId, ctx, drive.successors, registry, workflow.id, getSecretInputKeys(workflow.input));
4332
4371
  } else {
4333
- const { finalizeOrWait } = await import("./resume-phj8xhqr.js");
4372
+ const { finalizeOrWait } = await import("./resume-a26kvr41.js");
4334
4373
  await finalizeOrWait(runId);
4335
4374
  }
4336
4375
  return drive;
@@ -4472,7 +4511,7 @@ async function startChild(input) {
4472
4511
  const parked = await getDbClient2().get("UPDATE workflow_run_steps SET status = 'waiting' WHERE id = ? AND status = 'running' RETURNING id", [child.id]);
4473
4512
  if (parked && result.waitFor === "workflow.child.finished") {
4474
4513
  ownedChildren.delete(child.id);
4475
- const { resumeFromChildRun } = await import("./resume-phj8xhqr.js");
4514
+ const { resumeFromChildRun } = await import("./resume-a26kvr41.js");
4476
4515
  await resumeFromChildRun(child.id, registry);
4477
4516
  }
4478
4517
  return null;
@@ -5083,4 +5122,4 @@ function applyDefinitionPatch(def, patch) {
5083
5122
  return { definition: patchedDef, errors };
5084
5123
  }
5085
5124
 
5086
- export { notifyAutomationPreflightFailure, automationIntegrationFixUrl, isNeedsSetupFailure, preflightAutomation, renderAutomationTokens, getAutomationSetupStates, schedulePreflightInput, listEnabledAutomationPreflightInputs, recordSchedulePreflightFailure, BaseExecutor, postApprovalCancellationUpdates, createApprovalFollowUpTask, HumanInTheLoopExecutor, resolveWorkflowLlmConfig, SYSTEM_ONE_PROVIDER_IDS, SystemOneExtractionExecutor, SYSTEM_ONE_DECISION_NODE_TYPE, SystemOneDecisionConfigSchema, SystemOneDecisionExecutor, checkpointStep, checkpointStepFailure, checkpointStepWaiting, FAILED_TASK_OUTPUT_PREFIX, FOREACH_ITEMS_WAIT_FOR, loadCompletedStepRouting, resolveInputValue, getSecretInputKeys, validateJsonSchema, findJsonSchemaShapeErrors, getMaxWorkflowStepsPerRun, findWorkflowReadinessProblems, formatReadinessProblems, workflowSaveWarnings, withSaveWarnings, runStepValidation, TriggerSchemaError, startWorkflowExecution2, failRunOnUnreadableReplay, isWorkflowRunActive, holdWorkflowRun, walkGraph, hasRunningStep, findReadyNodes, scriptBodyInterpolationError, ForeachExecutor, rebuildNodeExecutionInput, isForeachChildOwned, parkAndDriveForeach, startForeachDrive, runForeachDrive, FOREACH_TERMINAL_STEP_STATUSES, parseSyntheticNodeId, resolveForeachParent, settleForeachChild, resolveStepNode, stepFailureMode, getNextTargets, generateEdges, resolveValidationPort, getSuccessors, definitionNodeIds, validateDefinition, applyDefinitionPatch };
5125
+ export { notifyAutomationPreflightFailure, automationIntegrationFixUrl, isNeedsSetupFailure, preflightAutomation, renderAutomationTokens, getAutomationSetupStates, schedulePreflightInput, listEnabledAutomationPreflightInputs, recordSchedulePreflightFailure, BaseExecutor, resolveSlackConversationId, dispatchApprovalNotifications, postApprovalCancellationUpdates, createApprovalFollowUpTask, HumanInTheLoopExecutor, resolveWorkflowLlmConfig, SYSTEM_ONE_PROVIDER_IDS, SystemOneExtractionExecutor, SYSTEM_ONE_DECISION_NODE_TYPE, SystemOneDecisionConfigSchema, SystemOneDecisionExecutor, checkpointStep, checkpointStepFailure, checkpointStepWaiting, FAILED_TASK_OUTPUT_PREFIX, FOREACH_ITEMS_WAIT_FOR, loadCompletedStepRouting, resolveInputValue, getSecretInputKeys, validateJsonSchema, findJsonSchemaShapeErrors, getMaxWorkflowStepsPerRun, findWorkflowReadinessProblems, formatReadinessProblems, workflowSaveWarnings, withSaveWarnings, runStepValidation, TriggerSchemaError, startWorkflowExecution2, failRunOnUnreadableReplay, isWorkflowRunActive, holdWorkflowRun, walkGraph, hasRunningStep, findReadyNodes, scriptBodyInterpolationError, ForeachExecutor, rebuildNodeExecutionInput, isForeachChildOwned, parkAndDriveForeach, startForeachDrive, runForeachDrive, FOREACH_TERMINAL_STEP_STATUSES, parseSyntheticNodeId, resolveForeachParent, settleForeachChild, resolveStepNode, stepFailureMode, getNextTargets, generateEdges, resolveValidationPort, getSuccessors, definitionNodeIds, validateDefinition, applyDefinitionPatch };
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  DEFAULT_MODEL_TIER_MAP,
16
16
  init_types
17
- } from "./cli-rh5smt8t.js";
17
+ } from "./cli-mntxtkhn.js";
18
18
  import {
19
19
  resolveTemplateFromCode,
20
20
  resolveTemplateAsync,
@@ -7,7 +7,7 @@ var package_default;
7
7
  var init_package = __esm(() => {
8
8
  package_default = {
9
9
  name: "@desplega.ai/agent-swarm",
10
- version: "2.5.1",
10
+ version: "2.5.2",
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",
@@ -120,6 +120,7 @@ var init_package = __esm(() => {
120
120
  "tsc:check": "bun check",
121
121
  "tsc:check:tsc": "bun tsc --noEmit",
122
122
  "check:db-boundary": "bash scripts/check-db-boundary.sh",
123
+ "check:codex-default-model": "bash scripts/check-codex-default-model.sh",
123
124
  "check:test-spawn-sync": "bash scripts/check-test-spawn-sync.sh",
124
125
  "check:dep-graph": "depcruise src packages/model-routing --config .dependency-cruiser.cjs",
125
126
  "check:api-key-boundary": "bash scripts/check-api-key-boundary.sh",
@@ -207,7 +208,7 @@ var init_package = __esm(() => {
207
208
  dependencies: {
208
209
  "@agentclientprotocol/sdk": "2.0.1",
209
210
  "@ai-sdk/openai": "^3.0.41",
210
- "@anthropic-ai/claude-agent-sdk": "0.3.308",
211
+ "@anthropic-ai/claude-agent-sdk": "0.3.309",
211
212
  "@anthropic-ai/sdk": "^1.1.0",
212
213
  "@asteasolutions/zod-to-openapi": "^8.0.0",
213
214
  "@aws-sdk/client-bedrock": "3.1048.0",
@@ -225,7 +226,7 @@ var init_package = __esm(() => {
225
226
  "@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
226
227
  "@linear/sdk": "^77.0.0",
227
228
  "@modelcontextprotocol/sdk": "1.32.1",
228
- "@openai/codex": "0.163.0",
229
+ "@openai/codex": "0.164.0",
229
230
  "@openfort/openfort-node": "^0.9.1",
230
231
  "@opentelemetry/api": "^1.9.1",
231
232
  "@opentelemetry/api-logs": "^0.218.0",
@@ -1650,7 +1650,7 @@ function checkExtensionInstallSource(body, ctx) {
1650
1650
  ctx.addIssue({ code: "custom", path: ["files"], message: "files is required with manifest" });
1651
1651
  }
1652
1652
  }
1653
- var AssetKeySchema, AssetEntityTypeSchema, AssetProviderRefSchema, AssetKeyMappingSchema, AssetSummarySchema, ModelTierSchema, MODEL_TIERS, ReasoningEffortSchema, LEGACY_MODEL_TO_TIER, DEFAULT_MODEL_TIER_MAP, AgentTaskStatusSchema, TERMINAL_TASK_STATUSES, InboxMessageStatusSchema, InboxMessageSchema, AgentTaskSourceSchema, RoutingReasonSchema, RoutingSourceSchema, ProviderNameSchema, ModelProfileNameSchema, ModelProfileSchema, SessionShareAccessSchema, SessionAccessSchema, SessionOwnerSchema, SessionSharesSchema, SessionSharesUpdateSchema, SteerModeSchema, SteeringStatusSchema, SteeringSourceSchema, SteeringMessageSchema, SteerOutcomeSchema, OnUnsupportedSchema, SteerResultSchema, PROVIDER_STEER_CAPABILITIES, FollowUpConfigSchema, RoutingAffinitySchema, AgentTaskSchema, CreateTaskOptionsSchema, TaskAttachmentKindSchema, SERVER_GENERATED_ATTACHMENT_CAPABILITY = "_agentSwarmGeneratedBy", attachmentCapabilitiesSchema, attachmentCommonFields, AttachmentInputSchema, TaskAttachmentSchema, UserSchema, UserCommsPrefsSchema, IdentityEventTypeSchema, InboxItemTypeSchema, InboxItemStatusSchema, InboxItemStateSchema, FavoriteItemTypeSchema, UserFavoriteSchema, TaskTemplateKindSchema, TaskTemplateSchema, AgentStatusSchema, AgentAvatarSchema, AgentSchema, AgentCredStatusLiveTestSchema, AgentLatestModelSchema, AgentBedrockStatusSchema, AgentOpencodeGoStatusSchema, AcpSessionConfigSelectValueSchema, AcpSessionConfigSelectGroupSchema, AcpSessionConfigOptionSchema, AgentAcpStatusSchema, AgentCredStatusSchema, AgentWithTasksSchema, ChangeSourceSchema, VersionableFieldSchema, ContextVersionSchema, ChannelTypeSchema, ChannelSchema, ChannelMessageSchema, ServiceStatusSchema, ServiceSchema, AgentLogEventTypeSchema, ResumeReasonSchema, AgentLogSchema, SessionLogSchema, SessionCostSourceSchema, SessionCostModelBreakdownSchema, SessionCostSchema, EventCategorySchema, EventStatusSchema, EventSourceSchema, EventNameSchema, SwarmEventSchema, AutomationIntegrationIdSchema, ScheduledTaskTargetTypeSchema, ScheduledTaskSchema, SwarmConfigScopeSchema, SwarmConfigSchema, RepoGuidelinesSchema, REPO_GUIDELINES_MAX_ENTRIES = 50, RepoGuidelinesInputSchema, RepoHooksSchema, SwarmRepoSchema, AgentMemoryScopeSchema, AgentMemorySourceSchema, AgentMemorySchema, ActiveSessionSchema, WorkerNudgeSchema, RuntimeInstanceStatusSchema, RuntimeProviderKindSchema, DeliveryModeSchema, PoolLifecycleSchema, RuntimeResourcesSchema, RuntimeControllerCreateSchema, RuntimeControllerUpdateSchema, RuntimeControllerSchema, RuntimePoolCreateSchema, RuntimePoolUpdateSchema, RuntimePoolSchema, RuntimePoolCreateAgentSchema, RuntimeInstanceSchema, RetryPolicySchema, SUPERSEDED_WORKFLOW_TASK_REASON = "superseded_workflow_task", ExecutorMetaSchema, ValidationResultSchema, StepValidationConfigSchema, SwarmScriptNodeConfigSchema, WorkflowNodeSchema, WorkflowEdgeSchema, WorkflowDefinitionSchema, WorkflowNodePatchSchema, WorkflowPatchSchema, WebhookVerificationSchema, TriggerConfigSchema, CooldownConfigSchema, InputValueSchema, WorkflowTemplateSchema, WorkflowSnapshotSchema, WorkflowSchema, WorkflowVersionSchema, PageContentTypeSchema, PageAuthModeSchema, PageSnapshotSchema, PageSchema, PageVersionSchema, MetricParamSchema, MetricVariableTypeSchema, MetricFormatSchema, MetricVisualizationSchema, MetricQuerySchema, MetricVariableSchema, MetricVizConfigSchema, MetricWidgetSchema, MetricDefinitionSchema, MetricSnapshotSchema, MetricSchema, MetricVersionSchema, WorkflowRunStatusSchema, WorkflowRunSchema, WorkflowRunParentSchema, WorkflowRunSummarySchema, ScriptRunStatusSchema, TERMINAL_SCRIPT_RUN_STATUSES, ScriptRunKindSchema, ScriptRunSchema, ScriptRunListItemSchema, ScriptRunJournalEntrySchema, WorkflowRunStepStatusSchema, WorkflowRunStepSchema, WaitModeSchema, WaitStateStatusSchema, WaitStateRowSchema, PromptTemplateScopeSchema, PromptTemplateStateSchema, PromptTemplateSchema, PromptTemplateHistorySchema, ScriptScopeSchema, ScriptFsModeSchema, ScriptRecordSchema, ScriptVersionRecordSchema, ExtensionNameSchema, SemverSchema, ExtensionBundlePathSchema, ExtensionAssetNameSchema, ExtensionScriptAssetSchema, ExtensionScheduleAssetSchema, ExtensionWorkflowAssetSchema, ExtensionSkillAssetSchema, ExtensionWorkflowFileSchema, ExtensionManifestSchema, ExtensionStatusSchema, ExtensionSchema, ExtensionFileSchema, ExtensionVersionSchema, ExtensionRunSchema, ExtensionInstallBodySchema, ScriptApiAuthModeSchema, ScriptApiRecordSchema, SkillTypeSchema, SkillScopeSchema, SkillSchema, AgentSkillSchema, SkillWithInstallInfoSchema, SkillFileSchema, McpServerTransportSchema, McpServerScopeSchema, McpAuthMethodSchema, McpServerSchema, AgentMcpServerSchema, McpServerWithInstallInfoSchema, ContextSnapshotEventTypeSchema, ContextFormulaSchema, ContextSnapshotSchema, BudgetScopeSchema, BudgetSchema, PricingProviderSchema, PricingTokenClassSchema, PricingRowSchema, BudgetRefusalCauseSchema, BudgetRefusalNotificationSchema, BudgetRefusedTriggerSchema, KvValueTypeSchema, KV_NAME_REGEX, KvNamespaceSchema, KvKeySchema, KvEntrySchema;
1653
+ var AssetKeySchema, AssetEntityTypeSchema, AssetProviderRefSchema, AssetKeyMappingSchema, AssetSummarySchema, ModelTierSchema, MODEL_TIERS, ReasoningEffortSchema, LEGACY_MODEL_TO_TIER, DEFAULT_MODEL_TIER_MAP, AgentTaskStatusSchema, TERMINAL_TASK_STATUSES, InboxMessageStatusSchema, InboxMessageSchema, AgentTaskSourceSchema, RoutingReasonSchema, RoutingSourceSchema, ProviderNameSchema, ModelProfileNameSchema, ModelProfileSchema, SessionShareAccessSchema, SessionAccessSchema, SessionOwnerSchema, SessionSharesSchema, SessionSharesUpdateSchema, SteerModeSchema, SteeringStatusSchema, SteeringSourceSchema, SteeringMessageSchema, SteerOutcomeSchema, OnUnsupportedSchema, SteerResultSchema, PROVIDER_STEER_CAPABILITIES, FollowUpConfigSchema, RoutingAffinitySchema, AgentTaskSchema, CreateTaskOptionsSchema, TaskAttachmentKindSchema, SERVER_GENERATED_ATTACHMENT_CAPABILITY = "_agentSwarmGeneratedBy", attachmentCapabilitiesSchema, attachmentCommonFields, AttachmentInputSchema, TaskAttachmentSchema, UserSchema, RbacRoleSchema, UserRbacRolesSchema, UserCommsPrefsSchema, IdentityEventTypeSchema, InboxItemTypeSchema, InboxItemStatusSchema, InboxItemStateSchema, FavoriteItemTypeSchema, UserFavoriteSchema, TaskTemplateKindSchema, TaskTemplateSchema, AgentStatusSchema, AgentAvatarSchema, AgentSchema, AgentCredStatusLiveTestSchema, AgentLatestModelSchema, AgentBedrockStatusSchema, AgentOpencodeGoStatusSchema, AcpSessionConfigSelectValueSchema, AcpSessionConfigSelectGroupSchema, AcpSessionConfigOptionSchema, AgentAcpStatusSchema, AgentCredStatusSchema, AgentWithTasksSchema, ChangeSourceSchema, VersionableFieldSchema, ContextVersionSchema, ChannelTypeSchema, ChannelSchema, ChannelMessageSchema, ServiceStatusSchema, ServiceSchema, AgentLogEventTypeSchema, ResumeReasonSchema, AgentLogSchema, SessionLogSchema, SessionCostSourceSchema, SessionCostModelBreakdownSchema, SessionCostSchema, EventCategorySchema, EventStatusSchema, EventSourceSchema, EventNameSchema, SwarmEventSchema, AutomationIntegrationIdSchema, ScheduledTaskTargetTypeSchema, ScheduledTaskSchema, SwarmConfigScopeSchema, SwarmConfigSchema, RepoGuidelinesSchema, REPO_GUIDELINES_MAX_ENTRIES = 50, RepoGuidelinesInputSchema, RepoHooksSchema, SwarmRepoSchema, AgentMemoryScopeSchema, AgentMemorySourceSchema, AgentMemorySchema, ActiveSessionSchema, WorkerNudgeSchema, RuntimeInstanceStatusSchema, RuntimeProviderKindSchema, DeliveryModeSchema, PoolLifecycleSchema, RuntimeResourcesSchema, RuntimeControllerCreateSchema, RuntimeControllerUpdateSchema, RuntimeControllerSchema, RuntimePoolCreateSchema, RuntimePoolUpdateSchema, RuntimePoolSchema, RuntimePoolCreateAgentSchema, RuntimeInstanceSchema, RetryPolicySchema, SUPERSEDED_WORKFLOW_TASK_REASON = "superseded_workflow_task", ExecutorMetaSchema, ValidationResultSchema, StepValidationConfigSchema, SwarmScriptNodeConfigSchema, WorkflowNodeSchema, WorkflowEdgeSchema, WorkflowDefinitionSchema, WorkflowNodePatchSchema, WorkflowPatchSchema, WebhookVerificationSchema, TriggerConfigSchema, CooldownConfigSchema, InputValueSchema, WorkflowTemplateSchema, WorkflowSnapshotSchema, WorkflowSchema, WorkflowVersionSchema, PageContentTypeSchema, PageAuthModeSchema, PageSnapshotSchema, PageSchema, PageVersionSchema, MetricParamSchema, MetricVariableTypeSchema, MetricFormatSchema, MetricVisualizationSchema, MetricQuerySchema, MetricVariableSchema, MetricVizConfigSchema, MetricWidgetSchema, MetricDefinitionSchema, MetricSnapshotSchema, MetricSchema, MetricVersionSchema, WorkflowRunStatusSchema, WorkflowRunSchema, WorkflowRunParentSchema, WorkflowRunSummarySchema, ScriptRunStatusSchema, TERMINAL_SCRIPT_RUN_STATUSES, ScriptRunKindSchema, ScriptRunSchema, ScriptRunListItemSchema, ScriptRunJournalEntrySchema, WorkflowRunStepStatusSchema, WorkflowRunStepSchema, WaitModeSchema, WaitStateStatusSchema, WaitStateRowSchema, PromptTemplateScopeSchema, PromptTemplateStateSchema, PromptTemplateSchema, PromptTemplateHistorySchema, ScriptScopeSchema, ScriptFsModeSchema, ScriptRecordSchema, ScriptVersionRecordSchema, ExtensionNameSchema, SemverSchema, ExtensionBundlePathSchema, ExtensionAssetNameSchema, ExtensionScriptAssetSchema, ExtensionScheduleAssetSchema, ExtensionWorkflowAssetSchema, ExtensionSkillAssetSchema, ExtensionWorkflowFileSchema, ExtensionManifestSchema, ExtensionStatusSchema, ExtensionSchema, ExtensionFileSchema, ExtensionVersionSchema, ExtensionRunSchema, ExtensionInstallBodySchema, ScriptApiAuthModeSchema, ScriptApiRecordSchema, SkillTypeSchema, SkillScopeSchema, SkillSchema, AgentSkillSchema, SkillWithInstallInfoSchema, SkillFileSchema, McpServerTransportSchema, McpServerScopeSchema, McpAuthMethodSchema, McpServerSchema, AgentMcpServerSchema, McpServerWithInstallInfoSchema, ContextSnapshotEventTypeSchema, ContextFormulaSchema, ContextSnapshotSchema, BudgetScopeSchema, BudgetSchema, PricingProviderSchema, PricingTokenClassSchema, PricingRowSchema, BudgetRefusalCauseSchema, BudgetRefusalNotificationSchema, BudgetRefusedTriggerSchema, KvValueTypeSchema, KV_NAME_REGEX, KvNamespaceSchema, KvKeySchema, KvEntrySchema;
1654
1654
  var init_types = __esm(() => {
1655
1655
  init_key();
1656
1656
  init_bundle_path();
@@ -2159,6 +2159,16 @@ var init_types = __esm(() => {
2159
2159
  createdAt: exports_iso.datetime(),
2160
2160
  lastUpdatedAt: exports_iso.datetime()
2161
2161
  }).openapi("User");
2162
+ RbacRoleSchema = object2({
2163
+ id: string2(),
2164
+ name: string2(),
2165
+ description: string2().nullable(),
2166
+ isBuiltin: boolean(),
2167
+ grantsAll: boolean(),
2168
+ primary: boolean(),
2169
+ verbs: array2(string2())
2170
+ }).openapi("RbacRole");
2171
+ UserRbacRolesSchema = object2({ userId: string2(), roles: array2(RbacRoleSchema) }).openapi("UserRbacRoles");
2162
2172
  UserCommsPrefsSchema = object2({
2163
2173
  tone: string2().optional(),
2164
2174
  language: string2().optional(),
@@ -3663,4 +3673,4 @@ var init_types = __esm(() => {
3663
3673
  }).openapi("KvEntry");
3664
3674
  });
3665
3675
 
3666
- export { ASSET_KEY_MAX_LENGTH, normalizeAssetKey, defaultAssetKey, keyPrefixRange, SESSION_LEAF_KINDS, sessionGroupKey, parseAssetKey, isCanonicalAssetKey, canWriteAssetKey, init_key, isSafeBundlePath, init_bundle_path, $OpenAPIRegistry, $OpenApiGeneratorV31, init_dist, init_zod_openapi, AssetKeySchema, AssetEntityTypeSchema, AssetKeyMappingSchema, AssetSummarySchema, ModelTierSchema, MODEL_TIERS, ReasoningEffortSchema, DEFAULT_MODEL_TIER_MAP, parseModelTier, splitLegacyModelAlias, parseWorkerModelTierOverrides, resolveTaskModelSelection, AgentTaskStatusSchema, TERMINAL_TASK_STATUSES, isTerminalTaskStatus, AgentTaskSourceSchema, RoutingReasonSchema, ProviderNameSchema, ModelProfileNameSchema, ModelProfileSchema, SessionAccessSchema, SessionOwnerSchema, SessionSharesSchema, SessionSharesUpdateSchema, SteerModeSchema, SteeringSourceSchema, SteeringMessageSchema, SteerOutcomeSchema, OnUnsupportedSchema, SteerResultSchema, PROVIDER_STEER_CAPABILITIES, FollowUpConfigSchema, RoutingAffinitySchema, AgentTaskSchema, CreateTaskOptionsSchema, SERVER_GENERATED_ATTACHMENT_CAPABILITY, AttachmentInputSchema, TaskAttachmentSchema, UserSchema, UserCommsPrefsSchema, InboxItemTypeSchema, InboxItemStatusSchema, InboxItemStateSchema, FavoriteItemTypeSchema, UserFavoriteSchema, TaskTemplateKindSchema, TaskTemplateSchema, AgentStatusSchema, AgentAvatarSchema, AgentSchema, AgentLatestModelSchema, AgentAcpStatusSchema, AgentCredStatusSchema, AgentWithTasksSchema, VersionableFieldSchema, ChannelTypeSchema, ResumeReasonSchema, AgentLogSchema, SessionLogSchema, SessionCostModelBreakdownSchema, SessionCostSchema, EventCategorySchema, EventStatusSchema, EventSourceSchema, EventNameSchema, SwarmEventSchema, AutomationIntegrationIdSchema, ScheduledTaskTargetTypeSchema, ScheduledTaskSchema, SwarmConfigScopeSchema, SwarmConfigSchema, RepoGuidelinesInputSchema, RepoHooksSchema, SwarmRepoSchema, AgentMemoryScopeSchema, AgentMemorySourceSchema, AgentMemorySchema, ActiveSessionSchema, WorkerNudgeSchema, RuntimeProviderKindSchema, DeliveryModeSchema, RuntimeControllerCreateSchema, RuntimeControllerUpdateSchema, RuntimeControllerSchema, RuntimePoolCreateSchema, RuntimePoolUpdateSchema, RuntimePoolSchema, RuntimePoolCreateAgentSchema, RuntimeInstanceSchema, RetryPolicySchema, SUPERSEDED_WORKFLOW_TASK_REASON, WorkflowEdgeSchema, WorkflowDefinitionSchema, WorkflowNodePatchSchema, WorkflowPatchSchema, TriggerConfigSchema, CooldownConfigSchema, InputValueSchema, WorkflowSchema, WorkflowVersionSchema, PageContentTypeSchema, PageAuthModeSchema, PageSchema, PageVersionSchema, MetricWidgetSchema, MetricDefinitionSchema, MetricSchema, MetricVersionSchema, WorkflowRunStatusSchema, WorkflowRunSchema, WorkflowRunParentSchema, WorkflowRunSummarySchema, ScriptRunStatusSchema, TERMINAL_SCRIPT_RUN_STATUSES, ScriptRunSchema, ScriptRunListItemSchema, ScriptRunJournalEntrySchema, WorkflowRunStepSchema, PromptTemplateScopeSchema, PromptTemplateStateSchema, PromptTemplateSchema, PromptTemplateHistorySchema, ScriptScopeSchema, ScriptFsModeSchema, ScriptRecordSchema, ScriptVersionRecordSchema, ExtensionWorkflowFileSchema, ExtensionManifestSchema, ExtensionSchema, ExtensionVersionSchema, ExtensionRunSchema, checkExtensionInstallSource, ExtensionInstallBodySchema, 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 };
3676
+ export { ASSET_KEY_MAX_LENGTH, normalizeAssetKey, defaultAssetKey, keyPrefixRange, SESSION_LEAF_KINDS, sessionGroupKey, parseAssetKey, isCanonicalAssetKey, canWriteAssetKey, init_key, isSafeBundlePath, init_bundle_path, $OpenAPIRegistry, $OpenApiGeneratorV31, init_dist, init_zod_openapi, AssetKeySchema, AssetEntityTypeSchema, AssetKeyMappingSchema, AssetSummarySchema, ModelTierSchema, MODEL_TIERS, ReasoningEffortSchema, DEFAULT_MODEL_TIER_MAP, parseModelTier, splitLegacyModelAlias, parseWorkerModelTierOverrides, resolveTaskModelSelection, AgentTaskStatusSchema, TERMINAL_TASK_STATUSES, isTerminalTaskStatus, AgentTaskSourceSchema, RoutingReasonSchema, ProviderNameSchema, ModelProfileNameSchema, ModelProfileSchema, SessionAccessSchema, SessionOwnerSchema, SessionSharesSchema, SessionSharesUpdateSchema, SteerModeSchema, SteeringSourceSchema, SteeringMessageSchema, SteerOutcomeSchema, OnUnsupportedSchema, SteerResultSchema, PROVIDER_STEER_CAPABILITIES, FollowUpConfigSchema, RoutingAffinitySchema, AgentTaskSchema, CreateTaskOptionsSchema, SERVER_GENERATED_ATTACHMENT_CAPABILITY, AttachmentInputSchema, TaskAttachmentSchema, UserSchema, RbacRoleSchema, UserRbacRolesSchema, UserCommsPrefsSchema, InboxItemTypeSchema, InboxItemStatusSchema, InboxItemStateSchema, FavoriteItemTypeSchema, UserFavoriteSchema, TaskTemplateKindSchema, TaskTemplateSchema, AgentStatusSchema, AgentAvatarSchema, AgentSchema, AgentLatestModelSchema, AgentAcpStatusSchema, AgentCredStatusSchema, AgentWithTasksSchema, VersionableFieldSchema, ChannelTypeSchema, ResumeReasonSchema, AgentLogSchema, SessionLogSchema, SessionCostModelBreakdownSchema, SessionCostSchema, EventCategorySchema, EventStatusSchema, EventSourceSchema, EventNameSchema, SwarmEventSchema, AutomationIntegrationIdSchema, ScheduledTaskTargetTypeSchema, ScheduledTaskSchema, SwarmConfigScopeSchema, SwarmConfigSchema, RepoGuidelinesInputSchema, RepoHooksSchema, SwarmRepoSchema, AgentMemoryScopeSchema, AgentMemorySourceSchema, AgentMemorySchema, ActiveSessionSchema, WorkerNudgeSchema, RuntimeProviderKindSchema, DeliveryModeSchema, RuntimeControllerCreateSchema, RuntimeControllerUpdateSchema, RuntimeControllerSchema, RuntimePoolCreateSchema, RuntimePoolUpdateSchema, RuntimePoolSchema, RuntimePoolCreateAgentSchema, RuntimeInstanceSchema, RetryPolicySchema, SUPERSEDED_WORKFLOW_TASK_REASON, WorkflowEdgeSchema, WorkflowDefinitionSchema, WorkflowNodePatchSchema, WorkflowPatchSchema, TriggerConfigSchema, CooldownConfigSchema, InputValueSchema, WorkflowSchema, WorkflowVersionSchema, PageContentTypeSchema, PageAuthModeSchema, PageSchema, PageVersionSchema, MetricWidgetSchema, MetricDefinitionSchema, MetricSchema, MetricVersionSchema, WorkflowRunStatusSchema, WorkflowRunSchema, WorkflowRunParentSchema, WorkflowRunSummarySchema, ScriptRunStatusSchema, TERMINAL_SCRIPT_RUN_STATUSES, ScriptRunSchema, ScriptRunListItemSchema, ScriptRunJournalEntrySchema, WorkflowRunStepSchema, PromptTemplateScopeSchema, PromptTemplateStateSchema, PromptTemplateSchema, PromptTemplateHistorySchema, ScriptScopeSchema, ScriptFsModeSchema, ScriptRecordSchema, ScriptVersionRecordSchema, ExtensionWorkflowFileSchema, ExtensionManifestSchema, ExtensionSchema, ExtensionVersionSchema, ExtensionRunSchema, checkExtensionInstallSource, ExtensionInstallBodySchema, 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 };