@desplega.ai/agent-swarm 1.131.0 → 1.131.1

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 (84) hide show
  1. package/dist/{actions-w53mbns9.js → actions-jgcy477k.js} +6 -6
  2. package/dist/{app-m9gwqsqv.js → app-5da78bd4.js} +3 -3
  3. package/dist/{assistant-bp65m6f3.js → assistant-f2vkk1hj.js} +8 -8
  4. package/dist/{boot-reembed-62p0at2k.js → boot-reembed-q7mp8hcr.js} +3 -3
  5. package/dist/{boot-reembed-xmfp6wdh.js → boot-reembed-xmw8wcx6.js} +4 -4
  6. package/dist/{boot-scrub-logs-rr8q2dms.js → boot-scrub-logs-dsqrv79n.js} +2 -2
  7. package/dist/{claude-adapter-2y47mrkd.js → claude-adapter-q6x7yspx.js} +4 -4
  8. package/dist/{claude-managed-adapter-gv19tdew.js → claude-managed-adapter-wsg37bt8.js} +1 -1
  9. package/dist/{cli-t1xze5qh.js → cli-114fvtmj.js} +1 -1
  10. package/dist/{cli-cdeg08wx.js → cli-2f07m0xr.js} +1 -1
  11. package/dist/{cli-70xqj0z3.js → cli-2rk0cx7s.js} +2 -2
  12. package/dist/{cli-nm5gtp1x.js → cli-3ty0t082.js} +1 -1
  13. package/dist/{cli-efxfnq6q.js → cli-4rkfg1wx.js} +3 -3
  14. package/dist/{cli-a4jzdpa3.js → cli-50vbt00w.js} +1 -1
  15. package/dist/{cli-pm6xbh84.js → cli-6dp3ydxa.js} +34 -8
  16. package/dist/{cli-d3x3x1c9.js → cli-6dpytdr2.js} +1 -1
  17. package/dist/{cli-e7ckcg4v.js → cli-6pcz9h15.js} +12 -12
  18. package/dist/{cli-5kx36evn.js → cli-793jvbsh.js} +1 -1
  19. package/dist/{cli-78xwvkhj.js → cli-7dm2zqy2.js} +2 -2
  20. package/dist/{cli-psh3c4va.js → cli-aca5pz9f.js} +1 -1
  21. package/dist/{cli-72q8m8gk.js → cli-ccf9vy7q.js} +2 -2
  22. package/dist/{cli-qv61hp37.js → cli-g1re8r05.js} +2 -2
  23. package/dist/{cli-d2tfkcga.js → cli-g74vpjp2.js} +3 -3
  24. package/dist/{cli-2q72qz2s.js → cli-gecy3z2s.js} +13 -4
  25. package/dist/{cli-yw8vghx2.js → cli-jbcva0xj.js} +14 -6
  26. package/dist/{cli-t76vw5db.js → cli-jevgrb4w.js} +19 -19
  27. package/dist/{cli-3kf51j15.js → cli-kd1ck4rx.js} +1 -1
  28. package/dist/{cli-g6b8x1h8.js → cli-nrkkknat.js} +1 -1
  29. package/dist/{cli-fywms69x.js → cli-pxfxkx5m.js} +1 -1
  30. package/dist/{cli-cvgjwnh1.js → cli-rgrfzg8z.js} +6 -6
  31. package/dist/{cli-rzbpmxdr.js → cli-se2p6rkb.js} +1 -1
  32. package/dist/{cli-5v4rw6yd.js → cli-sy7jk3tx.js} +1 -1
  33. package/dist/{cli-t55yw3a1.js → cli-t8d349cy.js} +2 -2
  34. package/dist/{cli-0rcyq6d9.js → cli-w2wxd56v.js} +2 -2
  35. package/dist/{cli-qmdnhpej.js → cli-wz9115x0.js} +17 -7
  36. package/dist/{cli-5ze9rv97.js → cli-ycrnynpw.js} +4 -4
  37. package/dist/{cli-a40rnf71.js → cli-ygrbmjja.js} +5 -5
  38. package/dist/cli.js +12 -12
  39. package/dist/{codex-adapter-d24q75wk.js → codex-adapter-htjkn22b.js} +2 -2
  40. package/dist/{codex-session-runner-g50vcsex.js → codex-session-runner-wjfc7smz.js} +2 -2
  41. package/dist/{commands-c3nrc5hg.js → commands-xhrfwqsk.js} +2 -2
  42. package/dist/{db-nt7fg3tw.js → db-anvwb22f.js} +2 -2
  43. package/dist/{handlers-fkr6swat.js → handlers-b9kbc621.js} +8 -8
  44. package/dist/{hook-g019yehy.js → hook-cgk4wxmx.js} +3 -3
  45. package/dist/{hook-77wpvnjc.js → hook-xkvn6c5h.js} +2 -2
  46. package/dist/{http-jewj0syk.js → http-9xh6ta4r.js} +156 -37
  47. package/dist/{index-hfvggd0z.js → index-25wjsdv2.js} +9 -9
  48. package/dist/{index-7n2xpbd4.js → index-eaxyqcmj.js} +8 -8
  49. package/dist/{index-hp1kdbjj.js → index-vg4snay4.js} +10 -10
  50. package/dist/{index-6gm5he8h.js → index-ywds4812.js} +8 -8
  51. package/dist/{keepalive-j0fjvqfd.js → keepalive-vc7s2aa6.js} +4 -4
  52. package/dist/{lead-1n8x30xe.js → lead-r2yqfmx7.js} +24 -24
  53. package/dist/{maintenance-gvev11sa.js → maintenance-mw70k468.js} +4 -4
  54. package/dist/{oauth-refresh-sweep-s9ecsvh0.js → oauth-refresh-sweep-yecgjpk4.js} +3 -3
  55. package/dist/{onboard-pvm5b38w.js → onboard-xj0f73f9.js} +2 -2
  56. package/dist/{otel-impl-p6jvgd9c.js → otel-impl-nxg0n0b3.js} +1 -1
  57. package/dist/{pi-mono-adapter-t091s27g.js → pi-mono-adapter-4g5kby31.js} +1 -1
  58. package/dist/{pricing-refresh-k49rcyed.js → pricing-refresh-2cn6effr.js} +4 -4
  59. package/dist/{rbac-roles-cr80g96t.js → rbac-roles-1hcxdtg7.js} +2 -2
  60. package/dist/{rbac-roles-30pspvy7.js → rbac-roles-vynday5g.js} +3 -3
  61. package/dist/{render-v2-xm457ng1.js → render-v2-tc0bh8kk.js} +3 -3
  62. package/dist/{seed-pricing-yhpv35fr.js → seed-pricing-8kceb43f.js} +3 -3
  63. package/dist/{setup-nytnmwwr.js → setup-46xtgq3c.js} +2 -2
  64. package/dist/{worker-msytr2cw.js → worker-qrbz6hmv.js} +24 -24
  65. package/openapi.json +1 -1
  66. package/package.json +2 -2
  67. package/src/be/migrations/130_scratch_script_retention_grace.sql +6 -0
  68. package/src/be/scripts/db.ts +43 -1
  69. package/src/be/scripts/retention.ts +164 -0
  70. package/src/be/scripts/run-saved.ts +16 -1
  71. package/src/http/index.ts +5 -0
  72. package/src/http/scripts.ts +21 -3
  73. package/src/http/x.ts +14 -0
  74. package/src/providers/claude-managed-models.ts +34 -10
  75. package/src/tests/claude-managed-adapter.test.ts +38 -7
  76. package/src/tests/sandboxed-process.test.ts +45 -0
  77. package/src/tests/script-connections.test.ts +3 -2
  78. package/src/tests/scripts-external-api.test.ts +8 -3
  79. package/src/tests/scripts-http.test.ts +12 -0
  80. package/src/tests/scripts-retention.test.ts +384 -0
  81. package/src/tests/workflow-swarm-script.test.ts +14 -5
  82. package/src/utils/sandboxed-process.ts +40 -14
  83. package/src/workflows/executors/swarm-script.ts +24 -1
  84. package/templates/schedules/daily-compounding-reflection/content.md +12 -3
@@ -13,13 +13,15 @@ import {
13
13
  getScriptMcpConnectionDescriptors,
14
14
  getScriptVersion,
15
15
  readStreamCapped,
16
+ restoreScratchScriptLastUsedIfUnchanged,
16
17
  runScript,
17
18
  sandboxSpawnEnv,
18
- snapshotCapped
19
- } from "./cli-pm6xbh84.js";
19
+ snapshotCapped,
20
+ touchScratchScriptLastUsed
21
+ } from "./cli-6dp3ydxa.js";
20
22
  import {
21
23
  withSiblingAwareness
22
- } from "./cli-cdeg08wx.js";
24
+ } from "./cli-2f07m0xr.js";
23
25
  import {
24
26
  FollowUpConfigSchema,
25
27
  ModelTierSchema,
@@ -64,7 +66,7 @@ import {
64
66
  updateWorkflowRun,
65
67
  updateWorkflowRunStep,
66
68
  workflowContextKey
67
- } from "./cli-a4jzdpa3.js";
69
+ } from "./cli-50vbt00w.js";
68
70
  import {
69
71
  deepInterpolate,
70
72
  findInterpolationTokens,
@@ -3092,7 +3094,7 @@ class HumanInTheLoopExecutor extends BaseExecutor {
3092
3094
  }
3093
3095
  if (notification.channel === "slack") {
3094
3096
  try {
3095
- const { getSlackApp } = await import("./app-m9gwqsqv.js");
3097
+ const { getSlackApp } = await import("./app-5da78bd4.js");
3096
3098
  const slackApp = getSlackApp();
3097
3099
  if (!slackApp) {
3098
3100
  console.warn("[HITL] Slack not initialized — cannot send notification");
@@ -3208,7 +3210,7 @@ class NotifyExecutor extends BaseExecutor {
3208
3210
  }
3209
3211
  }
3210
3212
  case "slack": {
3211
- const { getSlackApp } = await import("./app-m9gwqsqv.js");
3213
+ const { getSlackApp } = await import("./app-5da78bd4.js");
3212
3214
  const app = getSlackApp();
3213
3215
  if (!app) {
3214
3216
  return {
@@ -3615,6 +3617,7 @@ class SwarmScriptExecutor extends BaseExecutor {
3615
3617
  error: `swarm-script body interpolation failed for node "${meta.nodeId}": unresolved token(s): ${renderedTokens}. ` + "Named script source is not workflow-interpolated; pass dynamic values through config.args and read them from args."
3616
3618
  };
3617
3619
  }
3620
+ const runStartTouch = resolved.script.isScratch ? touchScratchScriptLastUsed(resolved.script.id) : null;
3618
3621
  const credentials = await buildScriptCredentialBindingsWithFailures({
3619
3622
  agentId: agentId ?? undefined
3620
3623
  });
@@ -3629,6 +3632,11 @@ class SwarmScriptExecutor extends BaseExecutor {
3629
3632
  mcpConnections: getScriptMcpConnectionDescriptors({ agentId: agentId ?? undefined }),
3630
3633
  timeoutMs: config.timeoutMs
3631
3634
  });
3635
+ if (output.exitCode === 0 && !output.error && !output.runtimeError) {
3636
+ touchScratchScriptLastUsed(resolved.script.id);
3637
+ } else if (resolved.script.isScratch && runStartTouch) {
3638
+ restoreScratchScriptLastUsedIfUnchanged(resolved.script.id, resolved.script.updatedAt, runStartTouch);
3639
+ }
3632
3640
  const workflowOutput = {
3633
3641
  result: output.result,
3634
3642
  stdout: output.stdout,
@@ -22,23 +22,23 @@ import {
22
22
  repointTrackerSyncBySwarmId,
23
23
  updateTrackerSync,
24
24
  updateTrackerSyncSwarmId
25
- } from "./cli-nm5gtp1x.js";
25
+ } from "./cli-3ty0t082.js";
26
26
  import {
27
27
  calculateNextRun,
28
28
  ensure,
29
29
  require_dist,
30
30
  runScheduleNow
31
- } from "./cli-5ze9rv97.js";
31
+ } from "./cli-ycrnynpw.js";
32
32
  import {
33
33
  startPricingRefreshLoop
34
- } from "./cli-t55yw3a1.js";
34
+ } from "./cli-t8d349cy.js";
35
35
  import {
36
36
  seedPricingFromModelsDev
37
- } from "./cli-t1xze5qh.js";
37
+ } from "./cli-114fvtmj.js";
38
38
  import {
39
39
  ensureRbacSeedsSynced,
40
40
  getUserGrant
41
- } from "./cli-5v4rw6yd.js";
41
+ } from "./cli-sy7jk3tx.js";
42
42
  import {
43
43
  can,
44
44
  decideAdmission,
@@ -65,7 +65,7 @@ import {
65
65
  runSavedScriptAsAgent,
66
66
  updateApp,
67
67
  upgradeAppDefinition
68
- } from "./cli-2q72qz2s.js";
68
+ } from "./cli-gecy3z2s.js";
69
69
  import {
70
70
  TriggerSchemaError,
71
71
  applyDefinitionPatch,
@@ -78,7 +78,7 @@ import {
78
78
  startWorkflowExecution,
79
79
  validateDefinition,
80
80
  validateJsonSchema
81
- } from "./cli-yw8vghx2.js";
81
+ } from "./cli-jbcva0xj.js";
82
82
  import {
83
83
  ConnectionAuthInputSchema,
84
84
  SCRIPT_LONG_TIMEOUT_HINT_MS,
@@ -97,7 +97,7 @@ import {
97
97
  setScriptConnectionEnabled,
98
98
  upsertCredentialBinding,
99
99
  upsertScriptConnection
100
- } from "./cli-pm6xbh84.js";
100
+ } from "./cli-6dp3ydxa.js";
101
101
  import {
102
102
  getApiKey
103
103
  } from "./cli-f14fvzag.js";
@@ -112,7 +112,7 @@ import {
112
112
  isGraphExpansionEnabled,
113
113
  rerank,
114
114
  rowToCandidate
115
- } from "./cli-rzbpmxdr.js";
115
+ } from "./cli-se2p6rkb.js";
116
116
  import {
117
117
  buildAuthorizationUrl,
118
118
  createOAuthApp,
@@ -127,7 +127,7 @@ import {
127
127
  listAuthorizationsForApp,
128
128
  onAuthorizationRefreshed,
129
129
  upsertOAuthApp
130
- } from "./cli-g6b8x1h8.js";
130
+ } from "./cli-nrkkknat.js";
131
131
  import {
132
132
  ZodFirstPartyTypeKind,
133
133
  objectType
@@ -136,7 +136,7 @@ import {
136
136
  createAdditiveBuffer,
137
137
  extractSlackMessageText,
138
138
  parseSlackTs
139
- } from "./cli-d3x3x1c9.js";
139
+ } from "./cli-6dpytdr2.js";
140
140
  import {
141
141
  findOrCreateUserByEmail,
142
142
  findUserByExternalId,
@@ -152,10 +152,10 @@ import {
152
152
  resolveIdentityByEmail,
153
153
  resolveUserByToken,
154
154
  unlinkIdentity
155
- } from "./cli-psh3c4va.js";
155
+ } from "./cli-aca5pz9f.js";
156
156
  import {
157
157
  createTaskWithSiblingAwareness
158
- } from "./cli-cdeg08wx.js";
158
+ } from "./cli-2f07m0xr.js";
159
159
  import {
160
160
  getAgentDisplayName,
161
161
  getAgentEmoji,
@@ -164,7 +164,7 @@ import {
164
164
  markdownToSlack,
165
165
  startSlackApp,
166
166
  stopSlackApp
167
- } from "./cli-cvgjwnh1.js";
167
+ } from "./cli-rgrfzg8z.js";
168
168
  import {
169
169
  $OpenAPIRegistry,
170
170
  $OpenApiGeneratorV31,
@@ -410,7 +410,7 @@ import {
410
410
  upsertService,
411
411
  upsertSwarmConfig,
412
412
  validateConfigValue
413
- } from "./cli-a4jzdpa3.js";
413
+ } from "./cli-50vbt00w.js";
414
414
  import {
415
415
  getTemplateDefinition,
416
416
  init_env_flag,
@@ -444,7 +444,7 @@ import {
444
444
  import {
445
445
  init_package,
446
446
  package_default
447
- } from "./cli-72q8m8gk.js";
447
+ } from "./cli-ccf9vy7q.js";
448
448
  import {
449
449
  $ZodObject,
450
450
  $ZodType,
@@ -22901,7 +22901,7 @@ async function notifySlack(text) {
22901
22901
  return;
22902
22902
  }
22903
22903
  try {
22904
- const { getSlackApp: getSlackApp2 } = await import("./app-m9gwqsqv.js");
22904
+ const { getSlackApp: getSlackApp2 } = await import("./app-5da78bd4.js");
22905
22905
  const app = getSlackApp2();
22906
22906
  if (!app) {
22907
22907
  console.warn("[Jira webhook keepalive] Slack not available, cannot send notification");
@@ -22972,7 +22972,7 @@ async function deleteJiraWebhook(webhookId) {
22972
22972
  console.log(`[Jira webhook keepalive] Deleted webhook id=${webhookId}`);
22973
22973
  }
22974
22974
  async function overwriteWebhookIds(next) {
22975
- const { getDb: getDb2 } = await import("./db-nt7fg3tw.js");
22975
+ const { getDb: getDb2 } = await import("./db-anvwb22f.js");
22976
22976
  const db = getDb2();
22977
22977
  const txn = db.transaction(() => {
22978
22978
  const row = db.query("SELECT metadata FROM oauth_apps WHERE provider = 'jira'").get();
@@ -96516,7 +96516,7 @@ async function initOtel(serviceRole = process.env.AGENT_ROLE || "api") {
96516
96516
  return;
96517
96517
  initialized6 = true;
96518
96518
  try {
96519
- const impl = await import("./otel-impl-p6jvgd9c.js");
96519
+ const impl = await import("./otel-impl-nxg0n0b3.js");
96520
96520
  await impl.boot(serviceRole);
96521
96521
  realWithSpan = impl.withSpan;
96522
96522
  realStartSpan = impl.startSpan;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runStopHookSessionSummarySubprocess
3
- } from "./cli-70xqj0z3.js";
3
+ } from "./cli-2rk0cx7s.js";
4
4
  import {
5
5
  SessionErrorTracker,
6
6
  buildOtelTraceparentEnv,
@@ -7,7 +7,7 @@ import {
7
7
  init_date_utils,
8
8
  init_db,
9
9
  normalizeDateRequired
10
- } from "./cli-a4jzdpa3.js";
10
+ } from "./cli-50vbt00w.js";
11
11
  import {
12
12
  init_secret_scrubber,
13
13
  registerVolatileSecret,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_package,
3
3
  package_default
4
- } from "./cli-72q8m8gk.js";
4
+ } from "./cli-ccf9vy7q.js";
5
5
 
6
6
  // src/commands/shared/client-config.ts
7
7
  init_package();
@@ -37,7 +37,7 @@ import {
37
37
  setSlackMessageTracking,
38
38
  slackContextKey,
39
39
  updateSlackMessageRecord
40
- } from "./cli-a4jzdpa3.js";
40
+ } from "./cli-50vbt00w.js";
41
41
  import {
42
42
  init_env_flag,
43
43
  isEnvFlagEnabled
@@ -55420,13 +55420,13 @@ async function initSlackApp() {
55420
55420
  socketMode: true,
55421
55421
  logLevel: import_bolt.LogLevel.DEBUG
55422
55422
  });
55423
- const { registerMessageHandler } = await import("./handlers-fkr6swat.js");
55424
- const { registerCommandHandler } = await import("./commands-c3nrc5hg.js");
55425
- const { registerActionHandlers } = await import("./actions-w53mbns9.js");
55423
+ const { registerMessageHandler } = await import("./handlers-b9kbc621.js");
55424
+ const { registerCommandHandler } = await import("./commands-xhrfwqsk.js");
55425
+ const { registerActionHandlers } = await import("./actions-jgcy477k.js");
55426
55426
  registerMessageHandler(app);
55427
55427
  registerCommandHandler(app);
55428
55428
  registerActionHandlers(app);
55429
- const { createAssistant } = await import("./assistant-bp65m6f3.js");
55429
+ const { createAssistant } = await import("./assistant-f2vkk1hj.js");
55430
55430
  app.assistant(createAssistant());
55431
55431
  return app;
55432
55432
  }
@@ -55435,7 +55435,7 @@ async function startSlackApp() {
55435
55435
  await initSlackApp();
55436
55436
  }
55437
55437
  if (app) {
55438
- const { isSlackRenderV2Enabled: isSlackRenderV2Enabled2 } = await import("./render-v2-xm457ng1.js");
55438
+ const { isSlackRenderV2Enabled: isSlackRenderV2Enabled2 } = await import("./render-v2-tc0bh8kk.js");
55439
55439
  if (isSlackRenderV2Enabled2())
55440
55440
  ensureSlackRenderV2Activation();
55441
55441
  await app.start();
@@ -6,7 +6,7 @@ import {
6
6
  getDb,
7
7
  init_db,
8
8
  isSqliteVecAvailable
9
- } from "./cli-a4jzdpa3.js";
9
+ } from "./cli-50vbt00w.js";
10
10
  import {
11
11
  __esm,
12
12
  __export,
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getDb,
6
6
  init_db
7
- } from "./cli-a4jzdpa3.js";
7
+ } from "./cli-50vbt00w.js";
8
8
 
9
9
  // src/be/rbac-roles.ts
10
10
  init_db();
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  buildModelsDevSeedRows,
3
3
  loadModelsDevCache
4
- } from "./cli-t1xze5qh.js";
4
+ } from "./cli-114fvtmj.js";
5
5
  import {
6
6
  createLogEntry,
7
7
  getActivePricingRow,
8
8
  getDb,
9
9
  init_db,
10
10
  insertPricingRow
11
- } from "./cli-a4jzdpa3.js";
11
+ } from "./cli-50vbt00w.js";
12
12
  import {
13
13
  init_secret_scrubber,
14
14
  scrubSecrets
@@ -7536,7 +7536,7 @@ __export(exports_compat, {
7536
7536
  azureOpenAIResponsesApi: () => azureOpenAIResponsesApi,
7537
7537
  appendAssistantMessageDiagnostic: () => appendAssistantMessageDiagnostic,
7538
7538
  anthropicMessagesApi: () => anthropicMessagesApi,
7539
- Type: () => Type2,
7539
+ Type: () => exports_typebox,
7540
7540
  StringEnum: () => StringEnum,
7541
7541
  ModelsError: () => ModelsError,
7542
7542
  InMemoryModelsStore: () => InMemoryModelsStore,
@@ -15659,4 +15659,4 @@ ${opts.transcript}`;
15659
15659
  ...opts._credentialOverride ? { _credentialOverride: opts._credentialOverride } : {}
15660
15660
  });
15661
15661
  }
15662
- export { isContextOverflow, isRecoverableLength, retryAssistantCall, isRetryableAssistantError, contentText, exports_typebox, exports_build, exports_value2 as exports_value, Compile, exports_compile, validateToolArguments, radiusProvider, getBuiltinModel, getBuiltinModelDataGeneratedAt, getBuiltinModels, builtinProviders, exports_all, getApiProvider, resetApiProviders, stream, streamSimple, completeSimple, exports_compat, summarizeSession };
15662
+ export { exports_typebox, exports_build, isContextOverflow, isRecoverableLength, retryAssistantCall, isRetryableAssistantError, contentText, exports_value2 as exports_value, Compile, exports_compile, validateToolArguments, radiusProvider, getBuiltinModel, getBuiltinModelDataGeneratedAt, getBuiltinModels, builtinProviders, exports_all, getApiProvider, resetApiProviders, stream, streamSimple, completeSimple, exports_compat, summarizeSession };
@@ -45,10 +45,19 @@ var CLAUDE_MANAGED_MODEL_PRICING = {
45
45
  cacheWritePerMillion: 12.5
46
46
  },
47
47
  "claude-sonnet-5": {
48
- inputPerMillion: 3,
49
- outputPerMillion: 15,
50
- cacheReadPerMillion: 0.3,
51
- cacheWritePerMillion: 3.75
48
+ inputPerMillion: 2,
49
+ outputPerMillion: 10,
50
+ cacheReadPerMillion: 0.2,
51
+ cacheWritePerMillion: 2.5,
52
+ scheduledChange: {
53
+ effectiveAt: "2026-09-01T00:00:00.000Z",
54
+ pricing: {
55
+ inputPerMillion: 3,
56
+ outputPerMillion: 15,
57
+ cacheReadPerMillion: 0.3,
58
+ cacheWritePerMillion: 3.75
59
+ }
60
+ }
52
61
  },
53
62
  "claude-sonnet-4-6": {
54
63
  inputPerMillion: 3,
@@ -82,15 +91,16 @@ var CLAUDE_MANAGED_MODEL_PRICING = {
82
91
  }
83
92
  };
84
93
  var warnedUnknownModels = new Set;
85
- function computeClaudeManagedCostUsd(model, inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens) {
86
- const pricing = CLAUDE_MANAGED_MODEL_PRICING[model];
87
- if (!pricing) {
94
+ function computeClaudeManagedCostUsd(model, inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens, pricedAtMs = Date.now()) {
95
+ const configuredPricing = CLAUDE_MANAGED_MODEL_PRICING[model];
96
+ if (!configuredPricing) {
88
97
  if (!warnedUnknownModels.has(model)) {
89
98
  warnedUnknownModels.add(model);
90
99
  console.warn(`[claude-managed-models] Unknown model "${model}" — returning $0 cost. ` + `Add it to CLAUDE_MANAGED_MODEL_PRICING in src/providers/claude-managed-models.ts.`);
91
100
  }
92
101
  return 0;
93
102
  }
103
+ const pricing = configuredPricing.scheduledChange && pricedAtMs >= Date.parse(configuredPricing.scheduledChange.effectiveAt) ? configuredPricing.scheduledChange.pricing : configuredPricing;
94
104
  const inputCost = inputTokens / 1e6 * pricing.inputPerMillion;
95
105
  const outputCost = outputTokens / 1e6 * pricing.outputPerMillion;
96
106
  const cacheReadCost = cacheReadTokens / 1e6 * pricing.cacheReadPerMillion;
@@ -2,17 +2,17 @@ import {
2
2
  getExecutorRegistry,
3
3
  handleScheduleTrigger,
4
4
  startWorkflowExecution
5
- } from "./cli-yw8vghx2.js";
5
+ } from "./cli-jbcva0xj.js";
6
6
  import {
7
7
  buildScriptCredentialBindings,
8
8
  getScript,
9
9
  getScriptApiConnectionDescriptors,
10
10
  getScriptMcpConnectionDescriptors,
11
11
  runScript
12
- } from "./cli-pm6xbh84.js";
12
+ } from "./cli-6dp3ydxa.js";
13
13
  import {
14
14
  createTaskWithSiblingAwareness
15
- } from "./cli-cdeg08wx.js";
15
+ } from "./cli-2f07m0xr.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-a4jzdpa3.js";
27
+ } from "./cli-50vbt00w.js";
28
28
  import {
29
29
  __commonJS,
30
30
  __require,
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createAdditiveBuffer,
3
3
  extractSlackMessageText
4
- } from "./cli-d3x3x1c9.js";
4
+ } from "./cli-6dpytdr2.js";
5
5
  import {
6
6
  rewriteSlackMentions
7
- } from "./cli-78xwvkhj.js";
7
+ } from "./cli-7dm2zqy2.js";
8
8
  import {
9
9
  createTaskWithSiblingAwareness
10
- } from "./cli-cdeg08wx.js";
10
+ } from "./cli-2f07m0xr.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-cvgjwnh1.js";
19
+ } from "./cli-rgrfzg8z.js";
20
20
  import {
21
21
  createLogEntry,
22
22
  getAgentById,
@@ -29,7 +29,7 @@ import {
29
29
  init_steering,
30
30
  requestSteering,
31
31
  slackContextKey
32
- } from "./cli-a4jzdpa3.js";
32
+ } from "./cli-50vbt00w.js";
33
33
  import {
34
34
  init_registry,
35
35
  init_steering_enabled,
package/dist/cli.js CHANGED
@@ -65,7 +65,7 @@ var import_react = __toESM(require_react(), 1);
65
65
  // package.json
66
66
  var package_default = {
67
67
  name: "@desplega.ai/agent-swarm",
68
- version: "1.131.0",
68
+ version: "1.131.1",
69
69
  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.",
70
70
  keywords: [
71
71
  "agent-swarm.dev",
@@ -241,7 +241,7 @@ var package_default = {
241
241
  "@linear/sdk": "^77.0.0",
242
242
  "@modelcontextprotocol/sdk": "^1.25.1",
243
243
  "@openai/codex-sdk": "^0.147.0",
244
- "@opencode-ai/sdk": "^1.18.15",
244
+ "@opencode-ai/sdk": "^1.18.16",
245
245
  "@openfort/openfort-node": "^0.9.1",
246
246
  "@opentelemetry/api": "^1.9.1",
247
247
  "@opentelemetry/exporter-metrics-otlp-http": "^0.218.0",
@@ -699,7 +699,7 @@ function McpServer({ port, apiKey, dbPath }) {
699
699
  if (dbPath) {
700
700
  process.env.DATABASE_PATH = dbPath;
701
701
  }
702
- import("./http-jewj0syk.js").then(() => {
702
+ import("./http-9xh6ta4r.js").then(() => {
703
703
  setStatus("running");
704
704
  }).catch((err) => {
705
705
  setStatus("error");
@@ -785,7 +785,7 @@ function WorkerRunner({
785
785
  }) {
786
786
  const { exit } = use_app_default();
787
787
  import_react.useEffect(() => {
788
- import("./worker-msytr2cw.js").then(({ runWorker }) => runWorker({
788
+ import("./worker-qrbz6hmv.js").then(({ runWorker }) => runWorker({
789
789
  prompt: prompt || undefined,
790
790
  yolo,
791
791
  systemPrompt: systemPrompt || undefined,
@@ -802,7 +802,7 @@ function WorkerRunner({
802
802
  function LeadRunner({ prompt, yolo, systemPrompt, systemPromptFile, additionalArgs }) {
803
803
  const { exit } = use_app_default();
804
804
  import_react.useEffect(() => {
805
- import("./lead-1n8x30xe.js").then(({ runLead }) => runLead({
805
+ import("./lead-r2yqfmx7.js").then(({ runLead }) => runLead({
806
806
  prompt: prompt || undefined,
807
807
  yolo,
808
808
  systemPrompt: systemPrompt || undefined,
@@ -842,8 +842,8 @@ function LazyComponent({
842
842
  }
843
843
  return import_react.createElement(Component, props);
844
844
  }
845
- var loadOnboard = () => import("./onboard-pvm5b38w.js").then(({ Onboard }) => Onboard);
846
- var loadConnect = () => import("./setup-nytnmwwr.js").then(({ Setup }) => Setup);
845
+ var loadOnboard = () => import("./onboard-xj0f73f9.js").then(({ Onboard }) => Onboard);
846
+ var loadConnect = () => import("./setup-46xtgq3c.js").then(({ Setup }) => Setup);
847
847
  function UnknownCommand({ command }) {
848
848
  const { exit } = use_app_default();
849
849
  import_react.useEffect(() => {
@@ -956,14 +956,14 @@ ${binName} docs \u2014 v${package_default.version}
956
956
  }
957
957
  process.exit(0);
958
958
  } else if (args.command === "hook") {
959
- const { runHook } = await import("./hook-g019yehy.js");
959
+ const { runHook } = await import("./hook-cgk4wxmx.js");
960
960
  await runHook();
961
961
  } else if (args.command === "codex-hook") {
962
962
  const { handleCodexHook } = await import("./codex-hook-hq54t9ft.js");
963
963
  await handleCodexHook();
964
964
  process.exit(0);
965
965
  } else if (args.command === "session-summary-stdin") {
966
- const { runSessionSummaryFromStdin } = await import("./hook-77wpvnjc.js");
966
+ const { runSessionSummaryFromStdin } = await import("./hook-xkvn6c5h.js");
967
967
  await runSessionSummaryFromStdin();
968
968
  process.exit(process.exitCode ?? 0);
969
969
  } else if (args.command === "artifact") {
@@ -984,7 +984,7 @@ ${binName} docs \u2014 v${package_default.version}
984
984
  printHelp("scripts");
985
985
  process.exit(scriptsArgs[0] === "reembed" || args.showHelp ? 0 : 1);
986
986
  }
987
- const { runScriptsMaintenanceCommand } = await import("./maintenance-gvev11sa.js");
987
+ const { runScriptsMaintenanceCommand } = await import("./maintenance-mw70k468.js");
988
988
  await runScriptsMaintenanceCommand(scriptsArgs);
989
989
  console.log("Scripts re-embedded.");
990
990
  } else if (args.command === "rbac") {
@@ -994,14 +994,14 @@ ${binName} docs \u2014 v${package_default.version}
994
994
  printHelp("rbac");
995
995
  process.exit(args.showHelp ? 0 : 1);
996
996
  }
997
- const { runRbacCliCommand } = await import("./rbac-roles-cr80g96t.js");
997
+ const { runRbacCliCommand } = await import("./rbac-roles-1hcxdtg7.js");
998
998
  await runRbacCliCommand(rbacArgs);
999
999
  } else if (args.command === "codex-login") {
1000
1000
  const { runCodexLogin } = await import("./codex-login-z6yhbkmk.js");
1001
1001
  const codexLoginArgs = process.argv.slice(process.argv.indexOf("codex-login") + 1);
1002
1002
  await runCodexLogin(codexLoginArgs);
1003
1003
  } else if (args.command === "codex-session-runner") {
1004
- const { runCodexSessionRunner } = await import("./codex-session-runner-g50vcsex.js");
1004
+ const { runCodexSessionRunner } = await import("./codex-session-runner-wjfc7smz.js");
1005
1005
  await runCodexSessionRunner();
1006
1006
  } else if (args.command === "claude-managed-setup") {
1007
1007
  const { runClaudeManagedSetup } = await import("./claude-managed-setup-52z4mq9w.js");
@@ -6,12 +6,12 @@ import {
6
6
  createInProcessCodexSession,
7
7
  resolveCodexAuthMode,
8
8
  resolveCodexRunnerArgv
9
- } from "./cli-5kx36evn.js";
9
+ } from "./cli-793jvbsh.js";
10
10
  import"./cli-07er7wrs.js";
11
11
  import"./cli-r94z9p1z.js";
12
12
  import"./cli-d6n0thxw.js";
13
13
  import"./cli-psrqtw2m.js";
14
- import"./cli-0rcyq6d9.js";
14
+ import"./cli-w2wxd56v.js";
15
15
  import"./cli-yv9dttkh.js";
16
16
  import"./cli-zm7njwzd.js";
17
17
  import"./cli-cw70hymf.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  createInProcessCodexSession
3
- } from "./cli-5kx36evn.js";
3
+ } from "./cli-793jvbsh.js";
4
4
  import"./cli-07er7wrs.js";
5
5
  import"./cli-r94z9p1z.js";
6
6
  import"./cli-d6n0thxw.js";
7
7
  import"./cli-psrqtw2m.js";
8
- import"./cli-0rcyq6d9.js";
8
+ import"./cli-w2wxd56v.js";
9
9
  import"./cli-yv9dttkh.js";
10
10
  import"./cli-zm7njwzd.js";
11
11
  import"./cli-cw70hymf.js";
@@ -2,7 +2,7 @@ import {
2
2
  getAllAgents,
3
3
  getAllTasks,
4
4
  init_db
5
- } from "./cli-a4jzdpa3.js";
5
+ } from "./cli-50vbt00w.js";
6
6
  import {
7
7
  init_env_flag,
8
8
  isEnvFlagEnabled
@@ -11,7 +11,7 @@ import"./cli-x23me2mg.js";
11
11
  import"./cli-z2zcxes1.js";
12
12
  import"./cli-zsspvvm2.js";
13
13
  import"./cli-4j2mrzag.js";
14
- import"./cli-72q8m8gk.js";
14
+ import"./cli-ccf9vy7q.js";
15
15
  import"./cli-5dsbcjjw.js";
16
16
  import"./cli-p9swy5t3.js";
17
17
 
@@ -436,13 +436,13 @@ import {
436
436
  upsertSkillFiles,
437
437
  upsertSwarmConfig,
438
438
  withFavoriteFlags
439
- } from "./cli-a4jzdpa3.js";
439
+ } from "./cli-50vbt00w.js";
440
440
  import"./cli-xpxde7rm.js";
441
441
  import"./cli-x23me2mg.js";
442
442
  import"./cli-z2zcxes1.js";
443
443
  import"./cli-zsspvvm2.js";
444
444
  import"./cli-4j2mrzag.js";
445
- import"./cli-72q8m8gk.js";
445
+ import"./cli-ccf9vy7q.js";
446
446
  import"./cli-5dsbcjjw.js";
447
447
  import"./cli-p9swy5t3.js";
448
448
  init_db();
@@ -5,29 +5,29 @@ import {
5
5
  instantFlush,
6
6
  requestSlackThreadSteering,
7
7
  wasEventSeen
8
- } from "./cli-a40rnf71.js";
8
+ } from "./cli-ygrbmjja.js";
9
9
  import {
10
10
  extractSlackMessageText,
11
11
  extractTaskFromMessage,
12
12
  hasOtherUserMention,
13
13
  routeMessage
14
- } from "./cli-d3x3x1c9.js";
14
+ } from "./cli-6dpytdr2.js";
15
15
  import {
16
16
  enrichSlackUserEmail,
17
17
  resolveSlackUserId,
18
18
  rewriteSlackMentions
19
- } from "./cli-78xwvkhj.js";
20
- import"./cli-psh3c4va.js";
19
+ } from "./cli-7dm2zqy2.js";
20
+ import"./cli-aca5pz9f.js";
21
21
  import {
22
22
  createTaskWithSiblingAwareness
23
- } from "./cli-cdeg08wx.js";
23
+ } from "./cli-2f07m0xr.js";
24
24
  import {
25
25
  ackSlackMessage,
26
26
  buildTreeBlocks,
27
27
  ensureSlackThreadTree,
28
28
  isSlackRenderV2Enabled,
29
29
  registerTreeMessage
30
- } from "./cli-cvgjwnh1.js";
30
+ } from "./cli-rgrfzg8z.js";
31
31
  import"./cli-k9qkf1hw.js";
32
32
  import"./cli-b0p7rfnd.js";
33
33
  import"./cli-t930g0xh.js";
@@ -40,7 +40,7 @@ import {
40
40
  init_context_key,
41
41
  init_db,
42
42
  slackContextKey
43
- } from "./cli-a4jzdpa3.js";
43
+ } from "./cli-50vbt00w.js";
44
44
  import {
45
45
  init_env_flag,
46
46
  init_resolver,
@@ -51,7 +51,7 @@ import"./cli-x23me2mg.js";
51
51
  import"./cli-z2zcxes1.js";
52
52
  import"./cli-zsspvvm2.js";
53
53
  import"./cli-4j2mrzag.js";
54
- import"./cli-72q8m8gk.js";
54
+ import"./cli-ccf9vy7q.js";
55
55
  import"./cli-5dsbcjjw.js";
56
56
  import"./cli-e15jhafb.js";
57
57
  import {