@desplega.ai/agent-swarm 1.167.0 → 1.168.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 (100) hide show
  1. package/dist/{acp-adapter-zpvy6321.js → acp-adapter-zhejfecx.js} +2 -2
  2. package/dist/{actions-fq2zrwtf.js → actions-7jg840nr.js} +11 -11
  3. package/dist/{amp-adapter-5gbk7501.js → amp-adapter-ye6rnetm.js} +1 -1
  4. package/dist/{app-nctetn1e.js → app-ffes2kyf.js} +3 -3
  5. package/dist/{assistant-0aq8gjvj.js → assistant-fhm5smyz.js} +12 -12
  6. package/dist/{boot-reembed-1ze5853n.js → boot-reembed-20q3nzvg.js} +2 -2
  7. package/dist/{boot-reembed-fmp5ww69.js → boot-reembed-jvfadhsk.js} +2 -2
  8. package/dist/{boot-scrub-sweep-cbp8xd4e.js → boot-scrub-sweep-jtfajzve.js} +3 -3
  9. package/dist/{boot-seeds-22tx8a53.js → boot-seeds-9qt0j8j2.js} +5 -5
  10. package/dist/{claude-adapter-0jhgeh1d.js → claude-adapter-a8znhthz.js} +3 -3
  11. package/dist/{claude-sdk-session-wh77rh83.js → claude-sdk-session-7x7chdrs.js} +7590 -7578
  12. package/dist/{cli-ypgba1a8.js → cli-0jngabtb.js} +1 -1
  13. package/dist/{cli-tx2zvn23.js → cli-43jg9xdw.js} +3 -3
  14. package/dist/{cli-6qxmjpem.js → cli-47zfzshm.js} +5 -5
  15. package/dist/{cli-mkdsy1nq.js → cli-74ez9b66.js} +3 -2
  16. package/dist/{cli-ykt8f7va.js → cli-9q0bh411.js} +1 -1
  17. package/dist/{cli-p8rt8spp.js → cli-9q24yyvs.js} +2 -2
  18. package/dist/{cli-cexctgn5.js → cli-aj1e0h0d.js} +1 -1
  19. package/dist/{cli-z1dqhc9y.js → cli-bcspch6h.js} +1 -1
  20. package/dist/{cli-wydz3feg.js → cli-ee0402n1.js} +107 -30
  21. package/dist/{cli-ty4bzkqr.js → cli-ew0c3a1j.js} +1 -1
  22. package/dist/{cli-v1pwxreq.js → cli-ewhwpyrb.js} +1 -1
  23. package/dist/{cli-kw0jcfje.js → cli-fhj4y16f.js} +1 -1
  24. package/dist/{cli-m7vmeepg.js → cli-fqq06kkb.js} +1 -1
  25. package/dist/{cli-577bxkf6.js → cli-g6gx2dn1.js} +31 -6
  26. package/dist/{cli-c8r99akr.js → cli-j05x7pnb.js} +8 -8
  27. package/dist/{cli-c2tpw9ck.js → cli-jb931ba2.js} +1 -1
  28. package/dist/{cli-mxry91sa.js → cli-nctfv2yy.js} +72 -3
  29. package/dist/{cli-ymmc1zxg.js → cli-ng1pmdx6.js} +3 -3
  30. package/dist/{cli-6vfz44sr.js → cli-p5jqk8fr.js} +1 -1
  31. package/dist/{cli-qzmzwegq.js → cli-pgehz8e1.js} +4 -4
  32. package/dist/{cli-cf2vgn9d.js → cli-rr5z1j4p.js} +14 -14
  33. package/dist/{cli-1yrcfa5s.js → cli-svah6b6w.js} +4 -4
  34. package/dist/{cli-y0kjpfm9.js → cli-ytmmyj7f.js} +2 -2
  35. package/dist/{cli-pkj1w46r.js → cli-z48ggfyq.js} +1 -1
  36. package/dist/cli.js +13 -13
  37. package/dist/{codex-adapter-cgesnjkr.js → codex-adapter-n63k33d3.js} +2 -2
  38. package/dist/{codex-session-runner-8kd7ddhr.js → codex-session-runner-xkxfd81a.js} +2 -2
  39. package/dist/{commands-h6zaaxym.js → commands-q4mfhn51.js} +2 -2
  40. package/dist/{db-qg3myn53.js → db-1t0bj3pc.js} +2 -2
  41. package/dist/{dispatcher-7vnwj9qw.js → dispatcher-k1fhavcf.js} +10 -10
  42. package/dist/{dsh-adapter-tz6hfp5r.js → dsh-adapter-5423p70m.js} +1 -1
  43. package/dist/{grok-adapter-jdt2dz2s.js → grok-adapter-phrndeb8.js} +3 -3
  44. package/dist/{handlers-2qtkpncr.js → handlers-59ywqwzh.js} +13 -13
  45. package/dist/{hook-qnbdgwvd.js → hook-atj0swc2.js} +2 -2
  46. package/dist/{hook-51yfcgsv.js → hook-mew1chq9.js} +1 -1
  47. package/dist/{http-jsmtag08.js → http-ef2fnn9v.js} +659 -26
  48. package/dist/{index-t4g06w93.js → index-48pb9erw.js} +10 -10
  49. package/dist/{index-ekywyv2v.js → index-9fc2h7ww.js} +10 -10
  50. package/dist/{index-2t9kesn1.js → index-gr69c43q.js} +2 -2
  51. package/dist/{index-cx1sb9bq.js → index-h26wjcfy.js} +16 -6
  52. package/dist/{index-bt8wkv1w.js → index-w2yhye23.js} +11 -11
  53. package/dist/{keepalive-4aezx4bj.js → keepalive-qhcqz56v.js} +4 -4
  54. package/dist/{lead-r44bkpm5.js → lead-hpk5r3b1.js} +18 -18
  55. package/dist/{maintenance-grz5jrzh.js → maintenance-nvkyp2xe.js} +2 -2
  56. package/dist/{oauth-refresh-sweep-wm4ctjfj.js → oauth-refresh-sweep-ngskthwh.js} +3 -3
  57. package/dist/{onboard-v60zgqf0.js → onboard-yfnkqhxc.js} +2 -2
  58. package/dist/{otel-impl-ghh4dyf8.js → otel-impl-hhm64r6m.js} +1 -1
  59. package/dist/{pricing-refresh-mjrqvnvw.js → pricing-refresh-35f91nx2.js} +4 -4
  60. package/dist/{rbac-roles-axv4d74x.js → rbac-roles-97w370qj.js} +3 -3
  61. package/dist/{rbac-roles-fd5tskj9.js → rbac-roles-z6sje3gy.js} +2 -2
  62. package/dist/{render-v2-k50j33qd.js → render-v2-n4v66bj3.js} +3 -3
  63. package/dist/{setup-4syh0pd2.js → setup-m3hhyv5f.js} +2 -2
  64. package/dist/{work-objects-jcdbg8rr.js → work-objects-mxf2c842.js} +13 -13
  65. package/dist/{worker-x8j8c9sx.js → worker-9t07z1gq.js} +18 -18
  66. package/openapi.json +72 -1
  67. package/package.json +3 -3
  68. package/src/be/script-connections.ts +40 -6
  69. package/src/be/swarm-config-guard.ts +1 -0
  70. package/src/extensions/catalog.generated.json +17 -0
  71. package/src/http/script-connections.ts +35 -0
  72. package/src/providers/acp-targets.ts +1 -1
  73. package/src/providers/amp-adapter.ts +1 -1
  74. package/src/providers/claude-adapter.ts +6 -0
  75. package/src/providers/claude-background-keepalive.ts +100 -0
  76. package/src/providers/claude-sdk-session.ts +6 -0
  77. package/src/providers/dsh-adapter.ts +1 -1
  78. package/src/scheduler/scheduler.ts +82 -13
  79. package/src/scripts-runtime/executors/registry.ts +1 -1
  80. package/src/tests/claude-background-keepalive-wiring.test.ts +220 -0
  81. package/src/tests/claude-background-keepalive.fixture.ts +162 -0
  82. package/src/tests/claude-background-keepalive.test.ts +139 -0
  83. package/src/tests/connection-embedded-auth.test.ts +51 -0
  84. package/src/tests/docs-index-footprint.test.js +3 -3
  85. package/src/tests/dsh-adapter.test.ts +1 -1
  86. package/src/tests/extensions-catalog.test.ts +1 -0
  87. package/src/tests/extensions-example-slack-reply-gate.test.ts +756 -0
  88. package/src/tests/schedule-target-type.test.ts +136 -0
  89. package/src/tests/script-connections-http.test.ts +45 -0
  90. package/src/tests/script-connections-mcp.test.ts +41 -0
  91. package/src/tests/script-executor-registry.test.ts +18 -0
  92. package/src/tests/send-task-self-send.test.ts +107 -0
  93. package/src/tools/script-connections/tool.ts +35 -3
  94. package/src/tools/send-task.ts +9 -1
  95. package/templates/extensions/README.md +1 -0
  96. package/templates/extensions/slack-reply-gate/README.md +98 -0
  97. package/templates/extensions/slack-reply-gate/hooks.ts +582 -0
  98. package/templates/extensions/slack-reply-gate/manifest.json +8 -0
  99. package/templates/skills/swarm-scripts/SKILL.md +10 -0
  100. package/templates/skills/swarm-scripts/content.md +10 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runStopHookSessionSummarySubprocess
3
- } from "./cli-z1dqhc9y.js";
3
+ } from "./cli-bcspch6h.js";
4
4
  import {
5
5
  buildOtelTraceparentEnv,
6
6
  isHarnessOtelEnabled
@@ -102,6 +102,71 @@ init_file_lock();
102
102
  init_openrouter_base_url();
103
103
  init_secret_scrubber();
104
104
 
105
+ // src/providers/claude-background-keepalive.ts
106
+ var BACKGROUND_KEEPALIVE_INTERVAL_MS = 60000;
107
+ var BACKGROUND_KEEPALIVE_MAX_IDLE_MS = 2 * 60 * 60000;
108
+
109
+ class ClaudeBackgroundKeepalive {
110
+ options;
111
+ liveTaskIds = [];
112
+ timer;
113
+ lastMessageAt = Date.now();
114
+ stopped = false;
115
+ intervalMs;
116
+ maxIdleMs;
117
+ constructor(options) {
118
+ this.options = options;
119
+ this.intervalMs = options.intervalMs ?? BACKGROUND_KEEPALIVE_INTERVAL_MS;
120
+ this.maxIdleMs = options.maxIdleMs ?? BACKGROUND_KEEPALIVE_MAX_IDLE_MS;
121
+ }
122
+ observe(message) {
123
+ if (this.stopped)
124
+ return;
125
+ this.lastMessageAt = Date.now();
126
+ if (message.type === "system" && message.subtype === "background_tasks_changed") {
127
+ const tasks = Array.isArray(message.tasks) ? message.tasks : [];
128
+ this.liveTaskIds = tasks.filter((task) => task && task.ambient !== true && typeof task.task_id === "string").map((task) => task.task_id);
129
+ }
130
+ if (this.liveTaskIds.length > 0)
131
+ this.start();
132
+ else
133
+ this.clearTimer();
134
+ }
135
+ stop() {
136
+ this.stopped = true;
137
+ this.liveTaskIds = [];
138
+ this.clearTimer();
139
+ }
140
+ start() {
141
+ if (this.timer !== undefined)
142
+ return;
143
+ if (!this.options.apiUrl || !this.options.taskId)
144
+ return;
145
+ this.timer = setInterval(() => this.tick(), this.intervalMs);
146
+ }
147
+ tick() {
148
+ if (Date.now() - this.lastMessageAt > this.maxIdleMs) {
149
+ this.clearTimer();
150
+ return;
151
+ }
152
+ const { apiUrl, apiKey, agentId, taskId } = this.options;
153
+ fetch(`${apiUrl}/api/active-sessions/heartbeat/${encodeURIComponent(taskId)}`, {
154
+ method: "PUT",
155
+ headers: {
156
+ "Content-Type": "application/json",
157
+ Authorization: `Bearer ${apiKey}`,
158
+ "X-Agent-ID": agentId
159
+ }
160
+ }).catch(() => {});
161
+ }
162
+ clearTimer() {
163
+ if (this.timer === undefined)
164
+ return;
165
+ clearInterval(this.timer);
166
+ this.timer = undefined;
167
+ }
168
+ }
169
+
105
170
  // src/providers/claude-session-events.ts
106
171
  init_secret_scrubber();
107
172
  function finiteNumber(value) {
@@ -730,6 +795,7 @@ class ClaudeSession {
730
795
  appliedReasoningEffort;
731
796
  lastAssistantText = "";
732
797
  transcript;
798
+ backgroundKeepalive;
733
799
  deliverSteering;
734
800
  constructor(config, model, taskFilePath, taskFileKey, sessionMcpConfig = null, claudeBinaryArgv = ["claude"], systemPromptFile = null, harnessVariant, harnessVariantMeta, queueSteeringSupported = false, runSessionSummary = runStopHookSessionSummarySubprocess) {
735
801
  this.config = config;
@@ -744,6 +810,7 @@ class ClaudeSession {
744
810
  this.contextWindowSize = getContextWindowSize(model);
745
811
  this.systemPromptFile = systemPromptFile;
746
812
  this.transcript = [`User: ${scrubSecrets(config.prompt)}`];
813
+ this.backgroundKeepalive = new ClaudeBackgroundKeepalive(config);
747
814
  const cmd = this.buildCommand();
748
815
  console.log(`\x1B[2m[${config.role}]\x1B[0m \x1B[36m▸\x1B[0m Spawning Claude (model: ${model}) for task ${config.taskId.slice(0, 8)}`);
749
816
  const sessionEnvironment = buildClaudeSessionEnvironment(config, model, taskFilePath);
@@ -918,6 +985,7 @@ class ClaudeSession {
918
985
  try {
919
986
  await Promise.all([stdoutPromise, stderrPromise]);
920
987
  } finally {
988
+ this.backgroundKeepalive.stop();
921
989
  this.closeStdin();
922
990
  }
923
991
  await logFileHandle.end();
@@ -966,6 +1034,7 @@ ${scrubSecrets(stderrOutput)}`);
966
1034
  if (json.type === "result") {
967
1035
  this.closeStdin();
968
1036
  }
1037
+ this.backgroundKeepalive.observe(json);
969
1038
  const normalized = normalizeClaudeMessage(json, {
970
1039
  taskId: this.config.taskId,
971
1040
  agentId: this.config.agentId,
@@ -1047,7 +1116,7 @@ class ClaudeAdapter {
1047
1116
  if (transport === "sdk" && isClaudeBridgeEffective(sourceEnv)) {
1048
1117
  throw new Error("CLAUDE_TRANSPORT=sdk cannot run with an effective Claude Bridge configuration. Select CLI transport or disable the bridge.");
1049
1118
  }
1050
- const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-wh77rh83.js") : undefined;
1119
+ const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-7x7chdrs.js") : undefined;
1051
1120
  claudeSdk?.validateClaudeSdkAdditionalArgs([
1052
1121
  ...claudeBinaryArgv.slice(1),
1053
1122
  ...config.additionalArgs ?? []
@@ -1154,4 +1223,4 @@ ${stderr}`.trim();
1154
1223
  }
1155
1224
  }
1156
1225
 
1157
- export { normalizeClaudeMessage, checkClaudeCredentials, withClaudeRouteEnv, getTaskFilePath, cleanupTaskFile, parseClaudeBinary, resolveClaudeQueueSteeringOverride, resolveClaudeBinary, parseClaudeBridgeEnabled, resolveClaudeBridgeEnabled, resolveClaudeBinaryArgv, preseedClaudeTrustDialog, resolveClaudeTrustDirs, mergeMcpConfig, createSessionMcpConfig, buildClaudeCodeOtelEnv, buildClaudeCodeRuntimeEnv, claudeOpenRouterAttributionEnv, buildClaudeSessionEnvironment, runClaudeSessionSummary, getSystemPromptFilePath, resolveClaudePrompt, ClaudeAdapter };
1226
+ export { ClaudeBackgroundKeepalive, normalizeClaudeMessage, checkClaudeCredentials, withClaudeRouteEnv, getTaskFilePath, cleanupTaskFile, parseClaudeBinary, resolveClaudeQueueSteeringOverride, resolveClaudeBinary, parseClaudeBridgeEnabled, resolveClaudeBridgeEnabled, resolveClaudeBinaryArgv, preseedClaudeTrustDialog, resolveClaudeTrustDirs, mergeMcpConfig, createSessionMcpConfig, buildClaudeCodeOtelEnv, buildClaudeCodeRuntimeEnv, claudeOpenRouterAttributionEnv, buildClaudeSessionEnvironment, runClaudeSessionSummary, getSystemPromptFilePath, resolveClaudePrompt, ClaudeAdapter };
@@ -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.167.0",
10
+ version: "1.168.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",
@@ -209,7 +209,7 @@ var init_package = __esm(() => {
209
209
  dependencies: {
210
210
  "@agentclientprotocol/sdk": "1.7.0",
211
211
  "@ai-sdk/openai": "^3.0.41",
212
- "@anthropic-ai/claude-agent-sdk": "0.3.293",
212
+ "@anthropic-ai/claude-agent-sdk": "0.3.295",
213
213
  "@anthropic-ai/sdk": "^0.132.1",
214
214
  "@asteasolutions/zod-to-openapi": "^8.0.0",
215
215
  "@aws-sdk/client-bedrock": "3.1048.0",
@@ -223,7 +223,7 @@ var init_package = __esm(() => {
223
223
  "@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
224
224
  "@linear/sdk": "^77.0.0",
225
225
  "@modelcontextprotocol/sdk": "1.31.0",
226
- "@openai/codex": "0.161.0",
226
+ "@openai/codex": "0.162.0",
227
227
  "@opencode-ai/sdk": "^1.18.35",
228
228
  "@openfort/openfort-node": "^0.9.1",
229
229
  "@opentelemetry/api": "^1.9.1",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_package,
3
3
  package_default
4
- } from "./cli-ymmc1zxg.js";
4
+ } from "./cli-ng1pmdx6.js";
5
5
 
6
6
  // src/commands/shared/client-config.ts
7
7
  init_package();
@@ -18,13 +18,13 @@ import {
18
18
  recoverIncompleteRuns,
19
19
  repointTrackerSyncBySwarmId,
20
20
  resolveLeadOnlyRecoveryAssignment
21
- } from "./cli-wydz3feg.js";
21
+ } from "./cli-ee0402n1.js";
22
22
  import {
23
23
  isMultiRuntimeEnabled
24
24
  } from "./cli-re8z5p8p.js";
25
25
  import {
26
26
  createApprovalFollowUpTask
27
- } from "./cli-577bxkf6.js";
27
+ } from "./cli-g6gx2dn1.js";
28
28
  import {
29
29
  MAX_EMPTY_POLLS,
30
30
  assignUnassignedTaskPending,
@@ -75,7 +75,7 @@ import {
75
75
  settleSupersededTaskDependents,
76
76
  supersedeTask,
77
77
  updateAgentStatus
78
- } from "./cli-mkdsy1nq.js";
78
+ } from "./cli-74ez9b66.js";
79
79
  import {
80
80
  TERMINAL_TASK_STATUSES,
81
81
  init_types
@@ -93,7 +93,7 @@ import {
93
93
  import {
94
94
  init_package,
95
95
  package_default
96
- } from "./cli-ymmc1zxg.js";
96
+ } from "./cli-ng1pmdx6.js";
97
97
  import {
98
98
  init_secret_scrubber,
99
99
  scrubSecrets
@@ -6,7 +6,7 @@ import {
6
6
  } from "./cli-6bpvv8h4.js";
7
7
  import {
8
8
  checkGrokCredentials
9
- } from "./cli-ykt8f7va.js";
9
+ } from "./cli-9q0bh411.js";
10
10
  import {
11
11
  createSkillInvokeTracker,
12
12
  isSkillLoaderCall,
@@ -15,7 +15,7 @@ import {
15
15
  import {
16
16
  checkCodexCredentials,
17
17
  codexUserHome
18
- } from "./cli-m7vmeepg.js";
18
+ } from "./cli-fqq06kkb.js";
19
19
  import {
20
20
  checkClaudeManagedCredentials
21
21
  } from "./cli-tc5zec7v.js";
@@ -27,11 +27,11 @@ import {
27
27
  } from "./cli-jvmtxqtc.js";
28
28
  import {
29
29
  checkDshCredentials
30
- } from "./cli-pkj1w46r.js";
30
+ } from "./cli-z48ggfyq.js";
31
31
  import {
32
32
  checkAmpCredentials,
33
33
  liveTestAmpCredentials
34
- } from "./cli-ty4bzkqr.js";
34
+ } from "./cli-ew0c3a1j.js";
35
35
  import {
36
36
  isUnknownModelError,
37
37
  renderMemoriesPrompt,
@@ -49,7 +49,7 @@ import {
49
49
  } from "./cli-bqjfjex4.js";
50
50
  import {
51
51
  checkClaudeCredentials
52
- } from "./cli-mxry91sa.js";
52
+ } from "./cli-nctfv2yy.js";
53
53
  import {
54
54
  getContextWindowSize
55
55
  } from "./cli-7avy4v8w.js";
@@ -67,7 +67,7 @@ import {
67
67
  parseAzureDevOpsRepoUrl,
68
68
  resolveScriptsOnlyMode,
69
69
  validateJsonSchema
70
- } from "./cli-wydz3feg.js";
70
+ } from "./cli-ee0402n1.js";
71
71
  import {
72
72
  getApiKey
73
73
  } from "./cli-f14fvzag.js";
@@ -88,7 +88,7 @@ import {
88
88
  startSpan,
89
89
  withSpan,
90
90
  withSpanContext
91
- } from "./cli-c8r99akr.js";
91
+ } from "./cli-j05x7pnb.js";
92
92
  import {
93
93
  initTelemetry,
94
94
  init_api_drain,
@@ -99,7 +99,7 @@ import {
99
99
  isCodexAuthFailureReason,
100
100
  mapTriggerSurface,
101
101
  telemetry
102
- } from "./cli-mkdsy1nq.js";
102
+ } from "./cli-74ez9b66.js";
103
103
  import {
104
104
  ProviderNameSchema,
105
105
  init_types,
@@ -218,7 +218,7 @@ async function materializeCodexAuthJson(_slot, creds, deps = {}) {
218
218
  async function createProviderAdapter(provider) {
219
219
  switch (provider) {
220
220
  case "claude": {
221
- const { ClaudeAdapter } = await import("./claude-adapter-0jhgeh1d.js");
221
+ const { ClaudeAdapter } = await import("./claude-adapter-a8znhthz.js");
222
222
  return new ClaudeAdapter;
223
223
  }
224
224
  case "pi": {
@@ -226,7 +226,7 @@ async function createProviderAdapter(provider) {
226
226
  return new PiMonoAdapter;
227
227
  }
228
228
  case "codex": {
229
- const { CodexAdapter } = await import("./codex-adapter-cgesnjkr.js");
229
+ const { CodexAdapter } = await import("./codex-adapter-n63k33d3.js");
230
230
  return new CodexAdapter;
231
231
  }
232
232
  case "claude-managed": {
@@ -242,11 +242,11 @@ async function createProviderAdapter(provider) {
242
242
  return new OpencodeAdapter;
243
243
  }
244
244
  case "dsh": {
245
- const { DshAdapter } = await import("./dsh-adapter-tz6hfp5r.js");
245
+ const { DshAdapter } = await import("./dsh-adapter-5423p70m.js");
246
246
  return new DshAdapter;
247
247
  }
248
248
  case "amp": {
249
- const { AmpAdapter } = await import("./amp-adapter-5gbk7501.js");
249
+ const { AmpAdapter } = await import("./amp-adapter-ye6rnetm.js");
250
250
  return new AmpAdapter;
251
251
  }
252
252
  case "cursor": {
@@ -254,11 +254,11 @@ async function createProviderAdapter(provider) {
254
254
  return new CursorAdapter;
255
255
  }
256
256
  case "grok": {
257
- const { GrokAdapter } = await import("./grok-adapter-jdt2dz2s.js");
257
+ const { GrokAdapter } = await import("./grok-adapter-phrndeb8.js");
258
258
  return new GrokAdapter;
259
259
  }
260
260
  case "acp": {
261
- const { ACPAdapter } = await import("./acp-adapter-zpvy6321.js");
261
+ const { ACPAdapter } = await import("./acp-adapter-zhejfecx.js");
262
262
  return new ACPAdapter;
263
263
  }
264
264
  default:
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolveSlackUserId,
3
3
  rewriteSlackMentions
4
- } from "./cli-y0kjpfm9.js";
4
+ } from "./cli-ytmmyj7f.js";
5
5
  import {
6
6
  bufferedFileFailures,
7
7
  buildEffectiveText,
@@ -11,7 +11,7 @@ import {
11
11
  fetchSlackFiles,
12
12
  findUserByExternalId,
13
13
  notifySlackFileFailures
14
- } from "./cli-wydz3feg.js";
14
+ } from "./cli-ee0402n1.js";
15
15
  import {
16
16
  buildBufferFlushBlocks,
17
17
  ensureSlackThreadTree,
@@ -20,7 +20,7 @@ import {
20
20
  getSlackApp,
21
21
  isSlackRenderV2Enabled,
22
22
  registerTreeMessage
23
- } from "./cli-c8r99akr.js";
23
+ } from "./cli-j05x7pnb.js";
24
24
  import {
25
25
  createLogEntry,
26
26
  getAgentById,
@@ -33,7 +33,7 @@ import {
33
33
  init_steering,
34
34
  requestSteering,
35
35
  slackContextKey
36
- } from "./cli-mkdsy1nq.js";
36
+ } from "./cli-74ez9b66.js";
37
37
  import {
38
38
  init_steering_enabled,
39
39
  isSteeringEnabled
@@ -4,12 +4,12 @@ import {
4
4
  linkIdentity,
5
5
  recordUnmappedIdentity,
6
6
  resolveIdentity
7
- } from "./cli-wydz3feg.js";
7
+ } from "./cli-ee0402n1.js";
8
8
  import {
9
9
  getKv,
10
10
  init_db1 as init_db,
11
11
  upsertKv
12
- } from "./cli-mkdsy1nq.js";
12
+ } from "./cli-74ez9b66.js";
13
13
 
14
14
  // src/slack/enrich.ts
15
15
  init_db();
@@ -66,7 +66,7 @@ function addDshStepUsage(acc, step) {
66
66
  // src/providers/dsh-adapter.ts
67
67
  init_openrouter_base_url();
68
68
  init_secret_scrubber();
69
- var DSH_PACKAGE = "@deepseek-ai/dsh@0.2.1-alpha.1";
69
+ var DSH_PACKAGE = "@deepseek-ai/dsh@0.2.1-alpha.2";
70
70
  function checkDshCredentials(env) {
71
71
  return env.DEEPSEEK_API_KEY?.trim() || env.OPENROUTER_API_KEY?.trim() ? { ready: true, missing: [], satisfiedBy: "env" } : {
72
72
  ready: false,
package/dist/cli.js CHANGED
@@ -62,7 +62,7 @@ var import_react = __toESM(require_react(), 1);
62
62
  // package.json
63
63
  var package_default = {
64
64
  name: "@desplega.ai/agent-swarm",
65
- version: "1.167.0",
65
+ version: "1.168.0",
66
66
  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.",
67
67
  keywords: [
68
68
  "agent-swarm.dev",
@@ -264,7 +264,7 @@ var package_default = {
264
264
  dependencies: {
265
265
  "@agentclientprotocol/sdk": "1.7.0",
266
266
  "@ai-sdk/openai": "^3.0.41",
267
- "@anthropic-ai/claude-agent-sdk": "0.3.293",
267
+ "@anthropic-ai/claude-agent-sdk": "0.3.295",
268
268
  "@anthropic-ai/sdk": "^0.132.1",
269
269
  "@asteasolutions/zod-to-openapi": "^8.0.0",
270
270
  "@aws-sdk/client-bedrock": "3.1048.0",
@@ -278,7 +278,7 @@ var package_default = {
278
278
  "@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
279
279
  "@linear/sdk": "^77.0.0",
280
280
  "@modelcontextprotocol/sdk": "1.31.0",
281
- "@openai/codex": "0.161.0",
281
+ "@openai/codex": "0.162.0",
282
282
  "@opencode-ai/sdk": "^1.18.35",
283
283
  "@openfort/openfort-node": "^0.9.1",
284
284
  "@opentelemetry/api": "^1.9.1",
@@ -813,7 +813,7 @@ function McpServer({ port, apiKey, dbPath }) {
813
813
  if (dbPath) {
814
814
  process.env.DATABASE_PATH = dbPath;
815
815
  }
816
- import("./http-jsmtag08.js").then(() => {
816
+ import("./http-ef2fnn9v.js").then(() => {
817
817
  setStatus("running");
818
818
  }).catch((err) => {
819
819
  setStatus("error");
@@ -900,7 +900,7 @@ function WorkerRunner({
900
900
  const { exit } = use_app_default();
901
901
  import_react.useEffect(() => {
902
902
  installConsoleScrub();
903
- import("./worker-x8j8c9sx.js").then(({ runWorker }) => runWorker({
903
+ import("./worker-9t07z1gq.js").then(({ runWorker }) => runWorker({
904
904
  prompt: prompt || undefined,
905
905
  yolo,
906
906
  systemPrompt: systemPrompt || undefined,
@@ -918,7 +918,7 @@ function LeadRunner({ prompt, yolo, systemPrompt, systemPromptFile, additionalAr
918
918
  const { exit } = use_app_default();
919
919
  import_react.useEffect(() => {
920
920
  installConsoleScrub();
921
- import("./lead-r44bkpm5.js").then(({ runLead }) => runLead({
921
+ import("./lead-hpk5r3b1.js").then(({ runLead }) => runLead({
922
922
  prompt: prompt || undefined,
923
923
  yolo,
924
924
  systemPrompt: systemPrompt || undefined,
@@ -958,8 +958,8 @@ function LazyComponent({
958
958
  }
959
959
  return import_react.createElement(Component, props);
960
960
  }
961
- var loadOnboard = () => import("./onboard-v60zgqf0.js").then(({ Onboard }) => Onboard);
962
- var loadConnect = () => import("./setup-4syh0pd2.js").then(({ Setup }) => Setup);
961
+ var loadOnboard = () => import("./onboard-yfnkqhxc.js").then(({ Onboard }) => Onboard);
962
+ var loadConnect = () => import("./setup-m3hhyv5f.js").then(({ Setup }) => Setup);
963
963
  function UnknownCommand({ command }) {
964
964
  const { exit } = use_app_default();
965
965
  import_react.useEffect(() => {
@@ -1089,14 +1089,14 @@ ${binName} docs \u2014 v${package_default.version}
1089
1089
  }
1090
1090
  process.exit(0);
1091
1091
  } else if (args.command === "hook") {
1092
- const { runHook } = await import("./hook-qnbdgwvd.js");
1092
+ const { runHook } = await import("./hook-atj0swc2.js");
1093
1093
  await runHook();
1094
1094
  } else if (args.command === "codex-hook") {
1095
1095
  const { handleCodexHook } = await import("./codex-hook-15dgc4cb.js");
1096
1096
  await handleCodexHook();
1097
1097
  process.exit(process.exitCode ?? 0);
1098
1098
  } else if (args.command === "session-summary-stdin") {
1099
- const { runSessionSummaryFromStdin } = await import("./hook-51yfcgsv.js");
1099
+ const { runSessionSummaryFromStdin } = await import("./hook-mew1chq9.js");
1100
1100
  await runSessionSummaryFromStdin();
1101
1101
  process.exit(process.exitCode ?? 0);
1102
1102
  } else if (args.command === "artifact") {
@@ -1117,7 +1117,7 @@ ${binName} docs \u2014 v${package_default.version}
1117
1117
  printHelp("scripts");
1118
1118
  process.exit(scriptsArgs[0] === "reembed" || args.showHelp ? 0 : 1);
1119
1119
  }
1120
- const { runScriptsMaintenanceCommand } = await import("./maintenance-grz5jrzh.js");
1120
+ const { runScriptsMaintenanceCommand } = await import("./maintenance-nvkyp2xe.js");
1121
1121
  await runScriptsMaintenanceCommand(scriptsArgs);
1122
1122
  console.log("Scripts re-embedded.");
1123
1123
  } else if (args.command === "rbac") {
@@ -1127,14 +1127,14 @@ ${binName} docs \u2014 v${package_default.version}
1127
1127
  printHelp("rbac");
1128
1128
  process.exit(args.showHelp ? 0 : 1);
1129
1129
  }
1130
- const { runRbacCliCommand } = await import("./rbac-roles-fd5tskj9.js");
1130
+ const { runRbacCliCommand } = await import("./rbac-roles-z6sje3gy.js");
1131
1131
  await runRbacCliCommand(rbacArgs);
1132
1132
  } else if (args.command === "codex-login") {
1133
1133
  const { runCodexLogin } = await import("./codex-login-g1cyt5zm.js");
1134
1134
  const codexLoginArgs = process.argv.slice(process.argv.indexOf("codex-login") + 1);
1135
1135
  await runCodexLogin(codexLoginArgs);
1136
1136
  } else if (args.command === "codex-session-runner") {
1137
- const { runCodexSessionRunner } = await import("./codex-session-runner-8kd7ddhr.js");
1137
+ const { runCodexSessionRunner } = await import("./codex-session-runner-xkxfd81a.js");
1138
1138
  await runCodexSessionRunner();
1139
1139
  } else if (args.command === "claude-managed-setup") {
1140
1140
  const { runClaudeManagedSetup } = await import("./claude-managed-setup-nrhfx5b0.js");
@@ -7,7 +7,7 @@ import {
7
7
  createInProcessCodexSession,
8
8
  resolveCodexAuthMode,
9
9
  resolveCodexRunnerArgv
10
- } from "./cli-m7vmeepg.js";
10
+ } from "./cli-fqq06kkb.js";
11
11
  import"./cli-hsxj0yar.js";
12
12
  import"./cli-gt4hxb8p.js";
13
13
  import"./cli-bqjfjex4.js";
@@ -46,7 +46,7 @@ import"./cli-ej6gbxfb.js";
46
46
  import"./cli-014vns2y.js";
47
47
  import"./cli-sd0mxa3c.js";
48
48
  import"./cli-w5e1d1vv.js";
49
- import"./cli-ymmc1zxg.js";
49
+ import"./cli-ng1pmdx6.js";
50
50
  import"./cli-wt7ccy4r.js";
51
51
  import"./cli-knd276ed.js";
52
52
  import"./cli-bc05qbss.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createInProcessCodexSession
3
- } from "./cli-m7vmeepg.js";
3
+ } from "./cli-fqq06kkb.js";
4
4
  import"./cli-hsxj0yar.js";
5
5
  import"./cli-gt4hxb8p.js";
6
6
  import"./cli-bqjfjex4.js";
@@ -39,7 +39,7 @@ import"./cli-ej6gbxfb.js";
39
39
  import"./cli-014vns2y.js";
40
40
  import"./cli-sd0mxa3c.js";
41
41
  import"./cli-w5e1d1vv.js";
42
- import"./cli-ymmc1zxg.js";
42
+ import"./cli-ng1pmdx6.js";
43
43
  import {
44
44
  init_secret_scrubber,
45
45
  scrubSecrets
@@ -2,7 +2,7 @@ import {
2
2
  getAllAgents,
3
3
  getAllTasks,
4
4
  init_db1 as init_db
5
- } from "./cli-mkdsy1nq.js";
5
+ } from "./cli-74ez9b66.js";
6
6
  import"./cli-3qhyh31j.js";
7
7
  import"./cli-xvdgasgy.js";
8
8
  import"./cli-mxvnnv5q.js";
@@ -24,7 +24,7 @@ import {
24
24
  import"./cli-014vns2y.js";
25
25
  import"./cli-sd0mxa3c.js";
26
26
  import"./cli-w5e1d1vv.js";
27
- import"./cli-ymmc1zxg.js";
27
+ import"./cli-ng1pmdx6.js";
28
28
  import"./cli-zf8jjwex.js";
29
29
  import"./cli-wt7ccy4r.js";
30
30
  import"./cli-bc05qbss.js";
@@ -491,7 +491,7 @@ import {
491
491
  upsertSkillFiles,
492
492
  upsertSwarmConfig,
493
493
  withFavoriteFlags
494
- } from "./cli-mkdsy1nq.js";
494
+ } from "./cli-74ez9b66.js";
495
495
  import"./cli-3qhyh31j.js";
496
496
  import"./cli-xvdgasgy.js";
497
497
  import {
@@ -515,7 +515,7 @@ import"./cli-ej6gbxfb.js";
515
515
  import"./cli-014vns2y.js";
516
516
  import"./cli-sd0mxa3c.js";
517
517
  import"./cli-w5e1d1vv.js";
518
- import"./cli-ymmc1zxg.js";
518
+ import"./cli-ng1pmdx6.js";
519
519
  import"./cli-zf8jjwex.js";
520
520
  import"./cli-wt7ccy4r.js";
521
521
  import"./cli-bc05qbss.js";
@@ -11,15 +11,15 @@ import {
11
11
  resolveBridgeCallOrigin,
12
12
  runContext,
13
13
  unregister
14
- } from "./cli-wydz3feg.js";
14
+ } from "./cli-ee0402n1.js";
15
15
  import"./cli-xvc3q9br.js";
16
16
  import"./cli-mv2520nm.js";
17
17
  import"./cli-w0bwte75.js";
18
18
  import"./cli-re8z5p8p.js";
19
- import"./cli-tx2zvn23.js";
20
- import"./cli-p8rt8spp.js";
21
- import"./cli-v1pwxreq.js";
22
- import"./cli-577bxkf6.js";
19
+ import"./cli-43jg9xdw.js";
20
+ import"./cli-9q24yyvs.js";
21
+ import"./cli-ewhwpyrb.js";
22
+ import"./cli-g6gx2dn1.js";
23
23
  import"./cli-epan13p1.js";
24
24
  import"./cli-f14fvzag.js";
25
25
  import"./cli-7mhy3ths.js";
@@ -28,14 +28,14 @@ import"./cli-zt3w1cn1.js";
28
28
  import"./cli-km4x66j0.js";
29
29
  import"./cli-rb9m6rpe.js";
30
30
  import"./cli-2x0e561b.js";
31
- import"./cli-kw0jcfje.js";
31
+ import"./cli-fhj4y16f.js";
32
32
  import"./cli-mzfth0bp.js";
33
33
  import"./cli-fad8m16k.js";
34
34
  import"./cli-bsakbbkm.js";
35
35
  import"./cli-zxg80zs9.js";
36
36
  import"./cli-51tf7ac3.js";
37
37
  import"./cli-ydt3zkwv.js";
38
- import"./cli-c8r99akr.js";
38
+ import"./cli-j05x7pnb.js";
39
39
  import"./cli-q51yprfq.js";
40
40
  import"./cli-3er6gcsn.js";
41
41
  import"./cli-yatxqynm.js";
@@ -46,9 +46,9 @@ import"./cli-1m2e086m.js";
46
46
  import"./cli-wnb9b2g3.js";
47
47
  import"./cli-bd957dgb.js";
48
48
  import"./cli-pzxba7gw.js";
49
- import"./cli-ypgba1a8.js";
49
+ import"./cli-0jngabtb.js";
50
50
  import"./cli-rfphkzh5.js";
51
- import"./cli-mkdsy1nq.js";
51
+ import"./cli-74ez9b66.js";
52
52
  import"./cli-3qhyh31j.js";
53
53
  import"./cli-xvdgasgy.js";
54
54
  import"./cli-mxvnnv5q.js";
@@ -67,7 +67,7 @@ import"./cli-ej6gbxfb.js";
67
67
  import"./cli-014vns2y.js";
68
68
  import"./cli-sd0mxa3c.js";
69
69
  import"./cli-w5e1d1vv.js";
70
- import"./cli-ymmc1zxg.js";
70
+ import"./cli-ng1pmdx6.js";
71
71
  import"./cli-mb75wpxf.js";
72
72
  import"./cli-zf8jjwex.js";
73
73
  import"./cli-wt7ccy4r.js";
@@ -2,7 +2,7 @@ import {
2
2
  DSH_PACKAGE,
3
3
  DshAdapter,
4
4
  checkDshCredentials
5
- } from "./cli-pkj1w46r.js";
5
+ } from "./cli-z48ggfyq.js";
6
6
  import"./cli-ptcz1cqy.js";
7
7
  import"./cli-7avy4v8w.js";
8
8
  import"./cli-tmhsxhb8.js";
@@ -5,8 +5,8 @@ import {
5
5
  checkGrokCredentials,
6
6
  grokOpenRouterModel,
7
7
  installedClaudePluginNames
8
- } from "./cli-ykt8f7va.js";
9
- import"./cli-cexctgn5.js";
8
+ } from "./cli-9q0bh411.js";
9
+ import"./cli-aj1e0h0d.js";
10
10
  import"./cli-jvmtxqtc.js";
11
11
  import"./cli-gt4hxb8p.js";
12
12
  import"./cli-5bfdm1ah.js";
@@ -26,7 +26,7 @@ import"./cli-a35hzdve.js";
26
26
  import"./cli-ej6gbxfb.js";
27
27
  import"./cli-014vns2y.js";
28
28
  import"./cli-w5e1d1vv.js";
29
- import"./cli-ymmc1zxg.js";
29
+ import"./cli-ng1pmdx6.js";
30
30
  import"./cli-wt7ccy4r.js";
31
31
  import"./cli-bc05qbss.js";
32
32
  export {