@desplega.ai/agent-swarm 1.135.2 → 1.136.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 (97) hide show
  1. package/dist/{actions-3az2vwwn.js → actions-agcbc8nd.js} +6 -6
  2. package/dist/{app-vygnfvrh.js → app-g2s78xya.js} +3 -3
  3. package/dist/{assistant-2jr2frrm.js → assistant-yd3jkb9d.js} +8 -8
  4. package/dist/{boot-reembed-y7r9cxt0.js → boot-reembed-6spqw4q0.js} +3 -3
  5. package/dist/{boot-reembed-ncbg16rb.js → boot-reembed-b22s9w5x.js} +4 -4
  6. package/dist/{boot-scrub-logs-t82rwa0y.js → boot-scrub-logs-6h3cqkc0.js} +2 -2
  7. package/dist/{claude-adapter-vvx2aw3v.js → claude-adapter-ng5y8zd7.js} +4 -4
  8. package/dist/{cli-mfa2eaef.js → cli-35jknh9e.js} +5 -5
  9. package/dist/{cli-cv2vjg2y.js → cli-3y553gws.js} +1 -1
  10. package/dist/{cli-nhvym0d2.js → cli-4gzv54ss.js} +15 -6
  11. package/dist/{cli-4dakdn30.js → cli-4r4jkqep.js} +6 -6
  12. package/dist/{cli-83razmqg.js → cli-54ht104h.js} +3 -3
  13. package/dist/{cli-6290n4yz.js → cli-5bnz1t86.js} +1 -1
  14. package/dist/{cli-6bz2hzvw.js → cli-68vayryq.js} +2 -2
  15. package/dist/{cli-1z01xdqh.js → cli-6gwgzdgw.js} +2 -2
  16. package/dist/{cli-1dfatkzm.js → cli-84vrhesc.js} +1 -1
  17. package/dist/{cli-jfrh963q.js → cli-8v57p983.js} +10 -10
  18. package/dist/{cli-3f0tnh34.js → cli-ads0hfw2.js} +81 -23
  19. package/dist/{cli-fmha74ga.js → cli-bnq8h7ea.js} +3 -3
  20. package/dist/{cli-j3xnd5b4.js → cli-d5ygfv18.js} +7 -6
  21. package/dist/{cli-8f4h27gm.js → cli-edwrx42s.js} +1 -1
  22. package/dist/{cli-r5vwg1ma.js → cli-fpjmcbhz.js} +4 -4
  23. package/dist/{cli-w0ygcv43.js → cli-gpdtxzar.js} +6 -4
  24. package/dist/{cli-4rdjdddh.js → cli-hz5hp6wn.js} +1 -1
  25. package/dist/{cli-6mmwmy45.js → cli-j7qp8gtf.js} +1 -1
  26. package/dist/{cli-5a5nrq3g.js → cli-jjhnma34.js} +5 -5
  27. package/dist/{cli-ey09krp2.js → cli-m3z53bed.js} +1 -1
  28. package/dist/{cli-cf6vq6qa.js → cli-mgef08pc.js} +1 -1
  29. package/dist/{cli-0jhyxtdj.js → cli-qckgdqmr.js} +2 -2
  30. package/dist/{cli-a1zrc2g6.js → cli-qhfkxrpg.js} +108 -33
  31. package/dist/{cli-yw2z5kj9.js → cli-spf767vc.js} +1 -1
  32. package/dist/{cli-1857msnd.js → cli-tee8w7tq.js} +1 -1
  33. package/dist/{cli-qxn3g3yx.js → cli-tmn19cdz.js} +61 -6
  34. package/dist/{cli-7ccy0h4r.js → cli-y16cesaq.js} +2 -2
  35. package/dist/{cli-cm4z7w7w.js → cli-z6e8eqrm.js} +2 -2
  36. package/dist/cli.js +16 -16
  37. package/dist/{codex-adapter-6p290yq3.js → codex-adapter-kw11ps3j.js} +2 -2
  38. package/dist/{codex-session-runner-7b3dhpmx.js → codex-session-runner-sffb69v7.js} +2 -2
  39. package/dist/{commands-wxg1g4nq.js → commands-0xxp4tz8.js} +2 -2
  40. package/dist/{db-8fqeheve.js → db-0npp39zd.js} +6 -2
  41. package/dist/{handlers-gwtqp17c.js → handlers-5p7a1jx6.js} +15 -9
  42. package/dist/{hook-gd9fwfp0.js → hook-hpefr0a8.js} +2 -2
  43. package/dist/{hook-mrqygs7p.js → hook-jjpxn4se.js} +3 -3
  44. package/dist/{http-x4mc1mqg.js → http-wfp33653.js} +322 -61
  45. package/dist/{index-yd654kac.js → index-17h657rg.js} +12 -8
  46. package/dist/{index-pzgasj16.js → index-m2p7ctyh.js} +10 -10
  47. package/dist/{index-2mdqrd0n.js → index-racb4wfq.js} +9 -9
  48. package/dist/{index-4djjkp9z.js → index-zh66wm65.js} +8 -8
  49. package/dist/{keepalive-3tycspcy.js → keepalive-wxjd633a.js} +4 -4
  50. package/dist/{lead-js1h3z7d.js → lead-359ec2z0.js} +23 -23
  51. package/dist/{maintenance-y91ry8q4.js → maintenance-rr03qjtb.js} +4 -4
  52. package/dist/{mistral-conversations-hdmnkf6h.js → mistral-conversations-qdrnmrb8.js} +1 -1
  53. package/dist/{oauth-refresh-sweep-s33gtxrw.js → oauth-refresh-sweep-jwj22yb8.js} +3 -3
  54. package/dist/{onboard-vndj64mb.js → onboard-asnhchcv.js} +2 -2
  55. package/dist/{openai-completions-cwy2kkzg.js → openai-completions-yzftqrft.js} +33 -4
  56. package/dist/{otel-impl-d2p84k6e.js → otel-impl-54cra6mw.js} +18 -4
  57. package/dist/{pi-mono-adapter-1phspz2y.js → pi-mono-adapter-29g7axgj.js} +669 -335
  58. package/dist/{pricing-refresh-c2bwsyk5.js → pricing-refresh-mkyy7c2y.js} +4 -4
  59. package/dist/{rbac-roles-2pedz5e9.js → rbac-roles-ak56tr75.js} +2 -2
  60. package/dist/{rbac-roles-reef5y2d.js → rbac-roles-kb3afm95.js} +3 -3
  61. package/dist/{render-v2-zd5r5wgf.js → render-v2-434asg49.js} +3 -3
  62. package/dist/{seed-pricing-2kyk1vhg.js → seed-pricing-nbmd7ah8.js} +3 -3
  63. package/dist/{setup-5ys9pwyr.js → setup-wh4qmjs4.js} +2 -2
  64. package/dist/{worker-nb1f7k04.js → worker-j1d27tjv.js} +23 -23
  65. package/openapi.json +167 -2
  66. package/package.json +6 -6
  67. package/src/be/db-retention.ts +275 -0
  68. package/src/be/db.ts +82 -7
  69. package/src/be/swarm-config-guard.ts +30 -0
  70. package/src/heartbeat/heartbeat.ts +21 -0
  71. package/src/http/index.ts +33 -33
  72. package/src/http/route-def.ts +93 -4
  73. package/src/http/stats.ts +37 -1
  74. package/src/http/tasks.ts +93 -0
  75. package/src/http/utils.ts +94 -0
  76. package/src/otel-impl.ts +21 -3
  77. package/src/otel.ts +15 -4
  78. package/src/slack/blocks.ts +1 -0
  79. package/src/slack/handlers.ts +7 -0
  80. package/src/tasks/sibling-awareness.ts +1 -0
  81. package/src/tasks/sibling-block.ts +17 -4
  82. package/src/tests/artifact-sdk.test.ts +20 -15
  83. package/src/tests/db-retention.test.ts +344 -0
  84. package/src/tests/docs-index-footprint.test.js +4 -5
  85. package/src/tests/draft-task-dispatch-race.test.ts +189 -0
  86. package/src/tests/events-http.test.ts +70 -27
  87. package/src/tests/otel-abort-span.test.ts +156 -0
  88. package/src/tests/otel-span-kind.test.ts +59 -0
  89. package/src/tests/promote-draft-task-route.test.ts +175 -0
  90. package/src/tests/route-def-find-route.test.ts +90 -4
  91. package/src/tests/sibling-block.test.ts +29 -1
  92. package/src/tests/slack-assistant-comention-production.test.ts +7 -1
  93. package/src/tests/steering-enabled.test.ts +6 -0
  94. package/src/tests/swarm-config-reserved-keys.test.ts +27 -0
  95. package/src/types.ts +2 -1
  96. package/templates/skills/swarm-scripts/SKILL.md +4 -0
  97. package/templates/skills/swarm-scripts/content.md +4 -0
@@ -4,7 +4,7 @@ import {
4
4
  incrKv,
5
5
  init_db,
6
6
  upsertKv
7
- } from "./cli-qxn3g3yx.js";
7
+ } from "./cli-tmn19cdz.js";
8
8
 
9
9
  // src/be/users.ts
10
10
  init_db();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getDb,
3
3
  init_db
4
- } from "./cli-qxn3g3yx.js";
4
+ } from "./cli-tmn19cdz.js";
5
5
 
6
6
  // src/be/seed-pricing.ts
7
7
  init_db();
@@ -43,7 +43,7 @@ import {
43
43
  import {
44
44
  init_package,
45
45
  package_default
46
- } from "./cli-4dakdn30.js";
46
+ } from "./cli-4r4jkqep.js";
47
47
  import {
48
48
  _enum,
49
49
  array,
@@ -2191,6 +2191,7 @@ var init_types = __esm(() => {
2191
2191
  }
2192
2192
  };
2193
2193
  AgentTaskStatusSchema = exports_zod.enum([
2194
+ "draft",
2194
2195
  "backlog",
2195
2196
  "unassigned",
2196
2197
  "offered",
@@ -2385,7 +2386,7 @@ var init_types = __esm(() => {
2385
2386
  priority: exports_zod.number().int().min(0).max(100).optional(),
2386
2387
  dependsOn: exports_zod.array(exports_zod.string()).optional(),
2387
2388
  offeredTo: exports_zod.string().optional(),
2388
- status: exports_zod.enum(["backlog", "unassigned"]).optional(),
2389
+ status: exports_zod.enum(["draft", "backlog", "unassigned"]).optional(),
2389
2390
  slackChannelId: exports_zod.string().optional(),
2390
2391
  slackThreadTs: exports_zod.string().optional(),
2391
2392
  slackTriggerMessageTs: exports_zod.string().optional(),
@@ -5176,6 +5177,19 @@ function integerValidators(keys, min) {
5176
5177
  }
5177
5178
  ]));
5178
5179
  }
5180
+ function boundedIntegerValidators(keys, min, max) {
5181
+ return Object.fromEntries(keys.map((key) => [
5182
+ key,
5183
+ (value) => {
5184
+ const str = String(value).trim();
5185
+ const parsed = Number(str);
5186
+ if (!/^\d+$/.test(str) || !Number.isSafeInteger(parsed) || parsed < min || parsed > max) {
5187
+ return `Invalid ${key} (must be an integer between ${min} and ${max})`;
5188
+ }
5189
+ return null;
5190
+ }
5191
+ ]));
5192
+ }
5179
5193
  function validateFloatRange(key, value, min, max, expectation) {
5180
5194
  const parsed = Number(String(value).trim());
5181
5195
  if (!Number.isFinite(parsed) || parsed < min || parsed > max) {
@@ -5187,7 +5201,7 @@ function validateConfigValue(key, value) {
5187
5201
  const validator = VALIDATED_KEYS[key.toUpperCase()];
5188
5202
  return validator ? validator(value) : null;
5189
5203
  }
5190
- var RESERVED_KEYS, BOOLEAN_LITERALS, VALIDATED_KEYS;
5204
+ var RESERVED_KEYS, BOOLEAN_LITERALS, MAX_DB_RETENTION_DAYS = 1e6, VALIDATED_KEYS;
5191
5205
  var init_swarm_config_guard = __esm(() => {
5192
5206
  init_types();
5193
5207
  RESERVED_KEYS = new Set(["API_KEY", "SECRETS_ENCRYPTION_KEY"]);
@@ -5252,7 +5266,8 @@ var init_swarm_config_guard = __esm(() => {
5252
5266
  "OTEL_TRACE_POLL",
5253
5267
  "ANONYMIZED_TELEMETRY",
5254
5268
  "SWARM_HIDE_CLOUD_PROMO",
5255
- "DB_QUERY_BOUNDED_ENABLED"
5269
+ "DB_QUERY_BOUNDED_ENABLED",
5270
+ "DB_RETENTION_DRY_RUN"
5256
5271
  ]),
5257
5272
  ...enumValidator("SLACK_THREAD_STEERING", ["lead", "all"]),
5258
5273
  ...enumValidator("SLACK_THREAD_STEERING_MODE", ["steer", "queue"]),
@@ -5276,6 +5291,7 @@ var init_swarm_config_guard = __esm(() => {
5276
5291
  "DB_QUERY_MCP_MAX_ROWS",
5277
5292
  "AGENT_FS_REQUEST_TIMEOUT_MS"
5278
5293
  ], 1),
5294
+ ...boundedIntegerValidators(["SESSION_LOG_RETENTION_DAYS", "AGENT_LOG_RETENTION_DAYS", "EVENTS_RETENTION_DAYS"], 1, MAX_DB_RETENTION_DAYS),
5279
5295
  ...integerValidators(["HEARTBEAT_MAX_AUTO_ASSIGN"], 0),
5280
5296
  MEMORY_MIN_SIMILARITY: (value) => validateFloatRange("MEMORY_MIN_SIMILARITY", value, 0, 1, "between 0 and 1 inclusive"),
5281
5297
  MEMORY_ACCESS_BOOST_MAX: (value) => validateFloatRange("MEMORY_ACCESS_BOOST_MAX", value, 1, Number.POSITIVE_INFINITY, "a number >= 1")
@@ -5697,6 +5713,8 @@ __export(exports_db, {
5697
5713
  overwriteTerminalTaskResultText: () => overwriteTerminalTaskResultText,
5698
5714
  pauseTask: () => pauseTask,
5699
5715
  postMessage: () => postMessage,
5716
+ promoteAbandonedDraftTasks: () => promoteAbandonedDraftTasks,
5717
+ promoteDraftTask: () => promoteDraftTask,
5700
5718
  reassociateSessionLogs: () => reassociateSessionLogs,
5701
5719
  recordBudgetRefusalNotification: () => recordBudgetRefusalNotification,
5702
5720
  recordInlineScriptRun: () => recordInlineScriptRun,
@@ -8463,7 +8481,7 @@ async function createTaskExtended(task, options) {
8463
8481
  let requestedByUserIdInherited = false;
8464
8482
  const id = crypto.randomUUID();
8465
8483
  const now = new Date().toISOString();
8466
- const status = options?.offeredTo ? "offered" : options?.agentId ? "pending" : options?.status === "backlog" ? "backlog" : "unassigned";
8484
+ const status = options?.status === "draft" ? "draft" : options?.offeredTo ? "offered" : options?.agentId ? "pending" : options?.status === "backlog" ? "backlog" : "unassigned";
8467
8485
  if (options?.parentTaskId) {
8468
8486
  const parent = await getTaskById(options.parentTaskId);
8469
8487
  if (parent) {
@@ -8839,6 +8857,43 @@ async function moveTaskFromBacklog(taskId) {
8839
8857
  }
8840
8858
  return row ? rowToAgentTask(row) : null;
8841
8859
  }
8860
+ async function promoteDraftTask(taskId) {
8861
+ const now = new Date().toISOString();
8862
+ const row = await getDbClient().get(`UPDATE agent_tasks
8863
+ SET status = CASE
8864
+ WHEN offeredTo IS NOT NULL THEN 'offered'
8865
+ WHEN agentId IS NOT NULL THEN 'pending'
8866
+ ELSE 'unassigned'
8867
+ END,
8868
+ lastUpdatedAt = ?
8869
+ WHERE id = ? AND status = 'draft'
8870
+ RETURNING *`, [now, taskId]);
8871
+ if (row) {
8872
+ try {
8873
+ await createLogEntry({
8874
+ eventType: "task_status_change",
8875
+ taskId,
8876
+ agentId: row.agentId ?? undefined,
8877
+ oldValue: "draft",
8878
+ newValue: row.status
8879
+ });
8880
+ } catch {}
8881
+ }
8882
+ return row ? rowToAgentTask(row) : null;
8883
+ }
8884
+ async function promoteAbandonedDraftTasks(timeoutMinutes = 5) {
8885
+ const cutoffTime = new Date(Date.now() - timeoutMinutes * 60 * 1000).toISOString();
8886
+ const now = new Date().toISOString();
8887
+ const result = await getDbClient().run(`UPDATE agent_tasks
8888
+ SET status = CASE
8889
+ WHEN offeredTo IS NOT NULL THEN 'offered'
8890
+ WHEN agentId IS NOT NULL THEN 'pending'
8891
+ ELSE 'unassigned'
8892
+ END,
8893
+ lastUpdatedAt = ?
8894
+ WHERE status = 'draft' AND lastUpdatedAt < ?`, [now, cutoffTime]);
8895
+ return result.changes;
8896
+ }
8842
8897
  async function releaseStaleReviewingTasks(timeoutMinutes = 30) {
8843
8898
  const cutoffTime = new Date(Date.now() - timeoutMinutes * 60 * 1000).toISOString();
8844
8899
  const now = new Date().toISOString();
@@ -14258,4 +14313,4 @@ var init_db = __esm(() => {
14258
14313
  };
14259
14314
  });
14260
14315
 
14261
- export { normalizeAssetKey, defaultAssetKey, parseAssetKey, canWriteAssetKey, init_key, slackContextKey, agentmailContextKey, githubContextKey, gitlabContextKey, linearContextKey, buildJiraContextKey, scheduleContextKey, workflowContextKey, agentContextKey, pageContextKey, init_context_key, checkSlackRoutingCoherence, init_slack_routing, initTelemetry, telemetry, init_telemetry, $OpenAPIRegistry, $OpenApiGeneratorV31, init_dist, init_zod_openapi, AssetKeySchema, AssetEntityTypeSchema, AssetKeyMappingSchema, AssetSummarySchema, ModelTierSchema, ReasoningEffortSchema, splitLegacyModelAlias, resolveTaskModelSelection, AgentTaskStatusSchema, isTerminalTaskStatus, AgentTaskSourceSchema, ProviderNameSchema, SteerModeSchema, SteeringSourceSchema, SteeringMessageSchema, SteerOutcomeSchema, OnUnsupportedSchema, SteerResultSchema, FollowUpConfigSchema, AgentTaskSchema, AttachmentInputSchema, TaskAttachmentSchema, UserSchema, UserCommsPrefsSchema, InboxItemTypeSchema, InboxItemStatusSchema, InboxItemStateSchema, FavoriteItemTypeSchema, UserFavoriteSchema, TaskTemplateKindSchema, TaskTemplateSchema, AgentStatusSchema, AgentAvatarSchema, AgentSchema, AgentLatestModelSchema, AgentCredStatusSchema, AgentWithTasksSchema, ChannelTypeSchema, ServiceStatusSchema, ServiceSchema, ResumeReasonSchema, AgentLogSchema, SessionLogSchema, SessionCostModelBreakdownSchema, SessionCostSchema, EventCategorySchema, EventStatusSchema, EventSourceSchema, EventNameSchema, SwarmEventSchema, ScheduledTaskTargetTypeSchema, ScheduledTaskSchema, SwarmConfigScopeSchema, SwarmConfigSchema, RepoGuidelinesSchema, RepoHooksSchema, SwarmRepoSchema, AgentMemoryScopeSchema, AgentMemorySourceSchema, AgentMemorySchema, ActiveSessionSchema, RuntimeInstanceSchema, WorkflowEdgeSchema, WorkflowDefinitionSchema, WorkflowNodePatchSchema, WorkflowPatchSchema, TriggerConfigSchema, CooldownConfigSchema, InputValueSchema, WorkflowSchema, WorkflowVersionSchema, PageContentTypeSchema, PageAuthModeSchema, PageSchema, PageVersionSchema, MetricWidgetSchema, MetricDefinitionSchema, MetricSchema, MetricVersionSchema, WorkflowRunStatusSchema, WorkflowRunSchema, ScriptRunStatusSchema, TERMINAL_SCRIPT_RUN_STATUSES, ScriptRunSchema, ScriptRunListItemSchema, ScriptRunJournalEntrySchema, WorkflowRunStepSchema, PromptTemplateScopeSchema, PromptTemplateStateSchema, PromptTemplateSchema, PromptTemplateHistorySchema, ScriptScopeSchema, ScriptFsModeSchema, ScriptRecordSchema, ScriptVersionRecordSchema, ScriptApiAuthModeSchema, ScriptApiRecordSchema, SkillSchema, AgentSkillSchema, SkillWithInstallInfoSchema, SkillFileSchema, McpAuthMethodSchema, McpServerSchema, AgentMcpServerSchema, McpServerWithInstallInfoSchema, ContextSnapshotEventTypeSchema, ContextFormulaSchema, ContextSnapshotSchema, BudgetScopeSchema, BudgetSchema, PricingProviderSchema, PricingTokenClassSchema, PricingRowSchema, BudgetRefusalCauseSchema, BudgetRefusalNotificationSchema, BudgetRefusedTriggerSchema, KvValueTypeSchema, KvNamespaceSchema, KvKeySchema, KvEntrySchema, init_types, beginRequestAuthScope, setRequestAuth, getRequestAuth, getCurrentRequestAuth, runWithoutRequestAuth, init_request_auth_context, auditAssetKeys, init_asset_key_audit, CredentialBindingSchema, placeholderForConfigKey, CredentialBroker, DEFAULT_CREDENTIAL_BINDINGS, init_credential_broker, encryptSecret, decryptSecret, getEncryptionKey, init_crypto, normalizeDate, normalizeDateRequired, init_date_utils, getPromptTemplateDefaultDrift, init_default_drift, init_templates2 as init_templates, SteeringRequestError, isSteeringEnabled2 as isSteeringEnabled, getTaskSteeringFields, promotePendingSteeringForTask, markSteeringUndeliverable, requestSteering, init_steering, isReservedConfigKey, reservedKeyError, validateConfigValue, init_swarm_config_guard, onTaskStarted, init_task_lifecycle_events, isSqliteVecAvailable, resolveSqliteVecExtensionPath, __resetSqliteVecExtensionPathCacheForTests, initDb, getDb, closeDb, getDbClient, computeContentHash, createContextVersion, getLatestContextVersion, getContextVersion, getContextVersionHistory, updateAgentCredentialState, updateAgentCredentialMissing, createAgent, getAgentById, getAllAgents, getLeadAgent, updateAgentStatus, updateAgentMaxTasks, updateAgentProvider, setAgentHarnessProvider, updateAgentCredStatus, listAgentsWithCredStatusByProvider, getAgentHarnessProviders, updateAgentActivity, MAX_EMPTY_POLLS, incrementEmptyPollCount, resetEmptyPollCount, shouldBlockPolling, deleteAgent, getActiveTaskCount, hasCapacity, getRemainingCapacity, updateAgentStatusFromCapacity, isPoolAffinityEnforcementEnabled, buildRoutingAffinityFromAgent, isAgentEligibleForTask, createTask, getPendingTaskForAgent, assignUnassignedTaskPending, startTask, getTaskById, getSlackRenderV2ActivatedAt, ensureSlackRenderV2Activation, isPendingSlackMessage, recordSlackMessage, reserveSlackMessage, bindSlackMessageTimestamp, updateSlackMessageRecord, markSlackTreeRendered, deleteSlackMessageRecord, getSlackTreeMessage, getSlackTreeMessageByThread, getSlackOutcomeMessage, getSlackTreeMessages, getSlackMessageByChannelTs, getSlackTasksInThread, markTaskSlackReplySent, setSlackMessageTracking, getChildTasks, hasNonTerminalResumeChild, hasNonTerminalRerouteDecisionChild, updateTaskClaudeSessionId, updateTaskTitle, updateTaskVcs, getTasksByAgentId, getAgentCurrentTask, getTasksByStatus, findTaskByVcs, findTaskByGitHub, getAllTasks, getTasksCount, getTaskStats, getCompletedSlackTasks, getRecentlyFinishedWorkerTasks, markTasksNotified, resetTasksNotified, getInProgressSlackTasks, getSlackTasksMissingTree, getInProgressTasksByContextKey, findExistingLinearTrackerContextWork, getLatestTaskByContextKey, getLatestScriptRunStepTaskByContextKey, getAgentWorkingOnThread, getLatestActiveTaskInThread, getLatestLeadTaskInThread, getMostRecentTaskInThread, findCompletedTaskInThread, findRecentCancelledTaskInThread, completeTask, failTask, overwriteTerminalTaskResultText, cancelTask, supersedeTask, backfillSupersedeTaskResumeTaskId, pauseTask, resumeTask, getPausedTasksForAgent, getOrphanedInProgressTasksForAgent, resetOrphanedInProgressTasksForAgent, getRecentlyCancelledTasksForAgent, deleteTask, updateTaskProgress, insertTaskAttachment, recordTaskPullRequestAttachments, getAssetKeyMappingByProvider, upsertAssetKeyMapping, getAssetKeyMapping, listAssetSummaries, moveAssetKey, deleteTaskAttachment, replaceTaskAttachment, getTaskAttachments, createSteeringMessage, getSteeringMessagesForTask, getSteeringMessageById, getPendingSteeringForTask, getPendingSteeringForAgent, markSteeringDelivered, markSteeringHandled, markSteeringPromoted, cancelPendingSteeringForTask, hasPendingSteering, getAgentWithTasks, getAllAgentsWithTasks, createLogEntry, getLogsByAgentId, getLogsByTaskId, getLogsByTaskIdChronological, getLogsByEventType, getAllLogs, findRecentSimilarTasks, createTaskExtended, claimTask, releaseTask, acceptTask, rejectTask, moveTaskToBacklog, moveTaskFromBacklog, releaseStaleReviewingTasks, releaseStaleOfferedTasksForOfflineAgents, getOfferedTasksForAgent, claimOfferedTask, getUnassignedTasksCount, getUnassignedTaskIds, getUnassignedTaskIdsForAgent, checkDependencies, getDependentTasks, cascadeFailDependents, updateAgentProfile, updateAgentName, createChannel, getMessageById, getChannelById, getChannelByName, getAllChannels, deleteChannel, postMessage, getChannelMessages, updateReadState, getLastReadAt, getUnreadMessages, getMentionsForAgent, getInboxSummary, claimMentions, releaseMentionProcessing, releaseStaleMentionProcessing, createService, getServiceById, getServiceByAgentAndName, getServicesByAgentId, getAllServices, updateServiceStatus, deleteService, upsertService, deleteServicesByAgentId, createSessionLogs, getSessionLogsByTaskId, getSessionLogsBySession, createSessionCost, getSessionCostsByTaskId, getSessionCostsByAgentId, getAllSessionCosts, getSessionCostsFiltered, UNATTRIBUTED_USER_ID, getSessionCostSummary, getAttributionByPerson, getDashboardCostSummary, createInboxMessage, getInboxMessageById, getUnreadInboxMessages, claimInboxMessages, markInboxMessageRead, markInboxMessageResponded, markInboxMessageDelegated, releaseStaleProcessingInbox, getConcurrentContext, getScheduledTasks, getScheduledTaskById, getScheduledTaskByName, createScheduledTask, updateScheduledTask, deleteScheduledTask, getDueScheduledTasks, autoEncryptLegacyPlaintextSecrets, maskSecrets, getSwarmConfigs, getInjectableGlobalConfigs, getSwarmConfigById, getSwarmConfigLookupById, upsertSwarmConfig, deleteSwarmConfig, deleteSwarmConfigByKey, getResolvedConfig, getSwarmRepos, getSwarmRepoById, getSwarmRepoByName, getSwarmRepoByUrl, createSwarmRepo, updateSwarmRepo, deleteSwarmRepo, getAgentMailInboxMapping, getAgentMailInboxMappingsByAgent, getAllAgentMailInboxMappings, createAgentMailInboxMapping, deleteAgentMailInboxMapping, findTaskByAgentMailThread, insertActiveSession, deleteActiveSession, deleteActiveSessionById, getActiveSessions, heartbeatActiveSession, cleanupStaleSessions, cleanupAgentSessions, updateActiveSessionProviderSessionId, getActiveSessionForTask, reassociateSessionLogs, getStalledInProgressTasks, getStalePinnedResumes, failPendingResumeIfUnclaimed, getIdleWorkersWithCapacity, getUnassignedPoolTasks, getStaleUnassignedAffinityTasks, getRecentFailedTasks, getRecentCompletedCount, getRecentFailedCount, createWorkflow, getWorkflow, listWorkflows, updateWorkflow, deleteWorkflow, getWorkflowsByScheduleId, createWorkflowRun, getWorkflowRun, updateWorkflowRun, listWorkflowRuns, countWorkflowRuns, listWorkflowRunsPage, createWorkflowRunStep, getWorkflowRunStep, updateWorkflowRunStep, getWorkflowRunStepsByRunId, getStuckWorkflowRuns, getLastSuccessfulRun, getLastRunStart, getRetryableSteps, getCompletedStepNodeIds, getTaskByWorkflowRunStepId, detachTaskFromWorkflowRunStep, getStepByIdempotencyKey, getStepCountForNode, getLatestStepForNode, createWorkflowVersion, getWorkflowVersions, getWorkflowVersion, createAppVersion, getAppVersions, getAppVersion, createPage, getPage, getPageBySlug, getLatestPageBySlug, listPagesByAgent, listAllPages, countAllPages, countPagesByAgent, updatePage, deletePage, incrementPageViewCount, createPageVersion, getPageVersions, getPageVersion, createMetric, getMetric, getMetricBySlug, listMetricsByAgent, listAllMetrics, countAllMetrics, countMetricsByAgent, updateMetric, deleteMetric, createMetricVersion, getMetricVersions, getMetricVersion, getPromptTemplates, getPromptTemplateById, upsertPromptTemplate, deletePromptTemplate, resetPromptTemplateToDefault, getPromptTemplateHistory, resolvePromptTemplate, checkoutPromptTemplate, getAllChannelActivityCursors, getChannelActivityCursor, upsertChannelActivityCursor, createApprovalRequest, getApprovalRequestById, resolveApprovalRequest, updateApprovalRequestNotifications, listApprovalRequests, getStuckApprovalRuns, getApprovalRequestByStepId, getExpiredPendingApprovals, createWaitState, getWaitStateById, getWaitStateByStepId, getDueWaitStates, getPendingEventWaitNames, getPendingWaitsByEvent, resolveWaitState, getStuckWaitRuns, SKILL_FILE_LIMITS, normalizeSkillFilePath, createSkill, updateSkill, listSkillFileManifest, getSkillFiles, getSkillFile, upsertSkillFile, upsertSkillFiles, deleteSkillFile, deleteSkill, getSkillById, getSkillByName, listSkills, searchSkills, installSkill, getSystemDefaultSkills, installSystemDefaultSkillsForAgent, uninstallSkill, getAgentSkills, toggleAgentSkill, createMcpServer, updateMcpServer, deleteMcpServer, getMcpServerById, getMcpServerByName, listMcpServers, installMcpServer, uninstallMcpServer, getAgentMcpServers, createContextSnapshot, getContextSnapshotsByTaskId, getContextSnapshotsBySessionId, getContextSummaryByTaskId, getAvailableKeyIndices, recordKeyUsage, markKeyRateLimited, recordKeyRateLimitWindows, setApiKeyName, clearKeyRateLimit, getKeyStatuses, getKeyCostSummary, getUserById, getAllUsers, createUser, updateUser, deleteUser, listInboxState, upsertInboxState, listFavorites, listUserFavorites, getFavoriteItemIdSet, setFavorite, setUserFavorite, withFavoriteFlags, listTaskTemplates, getRootTaskChain, listRecentSessions, countSessions, getBudget, getBudgets, upsertBudget, deleteBudget, getAllPricingRows, getPricingRows, getActivePricingRow, insertPricingRow, deletePricingRow, getDailySpendForAgent, getDailySpendGlobal, getDailySpendForUser, recordBudgetRefusalNotification, getBudgetRefusalNotification, getRecentBudgetRefusalNotifications, hasBudgetRefusalNotificationToday, setBudgetRefusalFollowUpTaskId, getLiveAgentCounts, getInstanceActivity, getSwarmMetrics, hasFirstCompletedTask, getKv, sweepExpiredKv, sweepExpiredKvPrefix, upsertKv, claimKv, deleteKv, KvTypeCollisionError, incrKv, listKv, countKv, createScriptRun, recordInlineScriptRun, getScriptRun, getScriptRunByIdempotencyKey, listScriptRuns, countScriptRuns, countActiveScriptRuns, updateScriptRun, updateScriptRunIfNotTerminal, updateScriptRunIfRunning, getRunningScriptRuns, getScriptRunJournalStep, upsertScriptRunJournalStep, listScriptRunJournalSteps, countScriptRunJournalSteps, countScriptRunJournalAgentTaskSteps, exports_db, init_db };
14316
+ export { normalizeAssetKey, defaultAssetKey, parseAssetKey, canWriteAssetKey, init_key, slackContextKey, agentmailContextKey, githubContextKey, gitlabContextKey, linearContextKey, buildJiraContextKey, scheduleContextKey, workflowContextKey, agentContextKey, pageContextKey, init_context_key, checkSlackRoutingCoherence, init_slack_routing, initTelemetry, telemetry, init_telemetry, $OpenAPIRegistry, $OpenApiGeneratorV31, init_dist, init_zod_openapi, AssetKeySchema, AssetEntityTypeSchema, AssetKeyMappingSchema, AssetSummarySchema, ModelTierSchema, ReasoningEffortSchema, splitLegacyModelAlias, resolveTaskModelSelection, AgentTaskStatusSchema, isTerminalTaskStatus, AgentTaskSourceSchema, ProviderNameSchema, SteerModeSchema, SteeringSourceSchema, SteeringMessageSchema, SteerOutcomeSchema, OnUnsupportedSchema, SteerResultSchema, FollowUpConfigSchema, AgentTaskSchema, AttachmentInputSchema, TaskAttachmentSchema, UserSchema, UserCommsPrefsSchema, InboxItemTypeSchema, InboxItemStatusSchema, InboxItemStateSchema, FavoriteItemTypeSchema, UserFavoriteSchema, TaskTemplateKindSchema, TaskTemplateSchema, AgentStatusSchema, AgentAvatarSchema, AgentSchema, AgentLatestModelSchema, AgentCredStatusSchema, AgentWithTasksSchema, ChannelTypeSchema, ServiceStatusSchema, ServiceSchema, ResumeReasonSchema, AgentLogSchema, SessionLogSchema, SessionCostModelBreakdownSchema, SessionCostSchema, EventCategorySchema, EventStatusSchema, EventSourceSchema, EventNameSchema, SwarmEventSchema, ScheduledTaskTargetTypeSchema, ScheduledTaskSchema, SwarmConfigScopeSchema, SwarmConfigSchema, RepoGuidelinesSchema, RepoHooksSchema, SwarmRepoSchema, AgentMemoryScopeSchema, AgentMemorySourceSchema, AgentMemorySchema, ActiveSessionSchema, RuntimeInstanceSchema, WorkflowEdgeSchema, WorkflowDefinitionSchema, WorkflowNodePatchSchema, WorkflowPatchSchema, TriggerConfigSchema, CooldownConfigSchema, InputValueSchema, WorkflowSchema, WorkflowVersionSchema, PageContentTypeSchema, PageAuthModeSchema, PageSchema, PageVersionSchema, MetricWidgetSchema, MetricDefinitionSchema, MetricSchema, MetricVersionSchema, WorkflowRunStatusSchema, WorkflowRunSchema, ScriptRunStatusSchema, TERMINAL_SCRIPT_RUN_STATUSES, ScriptRunSchema, ScriptRunListItemSchema, ScriptRunJournalEntrySchema, WorkflowRunStepSchema, PromptTemplateScopeSchema, PromptTemplateStateSchema, PromptTemplateSchema, PromptTemplateHistorySchema, ScriptScopeSchema, ScriptFsModeSchema, ScriptRecordSchema, ScriptVersionRecordSchema, ScriptApiAuthModeSchema, ScriptApiRecordSchema, SkillSchema, AgentSkillSchema, SkillWithInstallInfoSchema, SkillFileSchema, McpAuthMethodSchema, McpServerSchema, AgentMcpServerSchema, McpServerWithInstallInfoSchema, ContextSnapshotEventTypeSchema, ContextFormulaSchema, ContextSnapshotSchema, BudgetScopeSchema, BudgetSchema, PricingProviderSchema, PricingTokenClassSchema, PricingRowSchema, BudgetRefusalCauseSchema, BudgetRefusalNotificationSchema, BudgetRefusedTriggerSchema, KvValueTypeSchema, KvNamespaceSchema, KvKeySchema, KvEntrySchema, init_types, beginRequestAuthScope, setRequestAuth, getRequestAuth, getCurrentRequestAuth, runWithoutRequestAuth, init_request_auth_context, auditAssetKeys, init_asset_key_audit, CredentialBindingSchema, placeholderForConfigKey, CredentialBroker, DEFAULT_CREDENTIAL_BINDINGS, init_credential_broker, encryptSecret, decryptSecret, getEncryptionKey, init_crypto, normalizeDate, normalizeDateRequired, init_date_utils, getPromptTemplateDefaultDrift, init_default_drift, init_templates2 as init_templates, SteeringRequestError, isSteeringEnabled2 as isSteeringEnabled, getTaskSteeringFields, promotePendingSteeringForTask, markSteeringUndeliverable, requestSteering, init_steering, isReservedConfigKey, reservedKeyError, MAX_DB_RETENTION_DAYS, validateConfigValue, init_swarm_config_guard, onTaskStarted, init_task_lifecycle_events, isSqliteVecAvailable, resolveSqliteVecExtensionPath, __resetSqliteVecExtensionPathCacheForTests, initDb, getDb, closeDb, getDbClient, computeContentHash, createContextVersion, getLatestContextVersion, getContextVersion, getContextVersionHistory, updateAgentCredentialState, updateAgentCredentialMissing, createAgent, getAgentById, getAllAgents, getLeadAgent, updateAgentStatus, updateAgentMaxTasks, updateAgentProvider, setAgentHarnessProvider, updateAgentCredStatus, listAgentsWithCredStatusByProvider, getAgentHarnessProviders, updateAgentActivity, MAX_EMPTY_POLLS, incrementEmptyPollCount, resetEmptyPollCount, shouldBlockPolling, deleteAgent, getActiveTaskCount, hasCapacity, getRemainingCapacity, updateAgentStatusFromCapacity, isPoolAffinityEnforcementEnabled, buildRoutingAffinityFromAgent, isAgentEligibleForTask, createTask, getPendingTaskForAgent, assignUnassignedTaskPending, startTask, getTaskById, getSlackRenderV2ActivatedAt, ensureSlackRenderV2Activation, isPendingSlackMessage, recordSlackMessage, reserveSlackMessage, bindSlackMessageTimestamp, updateSlackMessageRecord, markSlackTreeRendered, deleteSlackMessageRecord, getSlackTreeMessage, getSlackTreeMessageByThread, getSlackOutcomeMessage, getSlackTreeMessages, getSlackMessageByChannelTs, getSlackTasksInThread, markTaskSlackReplySent, setSlackMessageTracking, getChildTasks, hasNonTerminalResumeChild, hasNonTerminalRerouteDecisionChild, updateTaskClaudeSessionId, updateTaskTitle, updateTaskVcs, getTasksByAgentId, getAgentCurrentTask, getTasksByStatus, findTaskByVcs, findTaskByGitHub, getAllTasks, getTasksCount, getTaskStats, getCompletedSlackTasks, getRecentlyFinishedWorkerTasks, markTasksNotified, resetTasksNotified, getInProgressSlackTasks, getSlackTasksMissingTree, getInProgressTasksByContextKey, findExistingLinearTrackerContextWork, getLatestTaskByContextKey, getLatestScriptRunStepTaskByContextKey, getAgentWorkingOnThread, getLatestActiveTaskInThread, getLatestLeadTaskInThread, getMostRecentTaskInThread, findCompletedTaskInThread, findRecentCancelledTaskInThread, completeTask, failTask, overwriteTerminalTaskResultText, cancelTask, supersedeTask, backfillSupersedeTaskResumeTaskId, pauseTask, resumeTask, getPausedTasksForAgent, getOrphanedInProgressTasksForAgent, resetOrphanedInProgressTasksForAgent, getRecentlyCancelledTasksForAgent, deleteTask, updateTaskProgress, insertTaskAttachment, recordTaskPullRequestAttachments, getAssetKeyMappingByProvider, upsertAssetKeyMapping, getAssetKeyMapping, listAssetSummaries, moveAssetKey, deleteTaskAttachment, replaceTaskAttachment, getTaskAttachments, createSteeringMessage, getSteeringMessagesForTask, getSteeringMessageById, getPendingSteeringForTask, getPendingSteeringForAgent, markSteeringDelivered, markSteeringHandled, markSteeringPromoted, cancelPendingSteeringForTask, hasPendingSteering, getAgentWithTasks, getAllAgentsWithTasks, createLogEntry, getLogsByAgentId, getLogsByTaskId, getLogsByTaskIdChronological, getLogsByEventType, getAllLogs, findRecentSimilarTasks, createTaskExtended, claimTask, releaseTask, acceptTask, rejectTask, moveTaskToBacklog, moveTaskFromBacklog, promoteDraftTask, promoteAbandonedDraftTasks, releaseStaleReviewingTasks, releaseStaleOfferedTasksForOfflineAgents, getOfferedTasksForAgent, claimOfferedTask, getUnassignedTasksCount, getUnassignedTaskIds, getUnassignedTaskIdsForAgent, checkDependencies, getDependentTasks, cascadeFailDependents, updateAgentProfile, updateAgentName, createChannel, getMessageById, getChannelById, getChannelByName, getAllChannels, deleteChannel, postMessage, getChannelMessages, updateReadState, getLastReadAt, getUnreadMessages, getMentionsForAgent, getInboxSummary, claimMentions, releaseMentionProcessing, releaseStaleMentionProcessing, createService, getServiceById, getServiceByAgentAndName, getServicesByAgentId, getAllServices, updateServiceStatus, deleteService, upsertService, deleteServicesByAgentId, createSessionLogs, getSessionLogsByTaskId, getSessionLogsBySession, createSessionCost, getSessionCostsByTaskId, getSessionCostsByAgentId, getAllSessionCosts, getSessionCostsFiltered, UNATTRIBUTED_USER_ID, getSessionCostSummary, getAttributionByPerson, getDashboardCostSummary, createInboxMessage, getInboxMessageById, getUnreadInboxMessages, claimInboxMessages, markInboxMessageRead, markInboxMessageResponded, markInboxMessageDelegated, releaseStaleProcessingInbox, getConcurrentContext, getScheduledTasks, getScheduledTaskById, getScheduledTaskByName, createScheduledTask, updateScheduledTask, deleteScheduledTask, getDueScheduledTasks, autoEncryptLegacyPlaintextSecrets, maskSecrets, getSwarmConfigs, getInjectableGlobalConfigs, getSwarmConfigById, getSwarmConfigLookupById, upsertSwarmConfig, deleteSwarmConfig, deleteSwarmConfigByKey, getResolvedConfig, getSwarmRepos, getSwarmRepoById, getSwarmRepoByName, getSwarmRepoByUrl, createSwarmRepo, updateSwarmRepo, deleteSwarmRepo, getAgentMailInboxMapping, getAgentMailInboxMappingsByAgent, getAllAgentMailInboxMappings, createAgentMailInboxMapping, deleteAgentMailInboxMapping, findTaskByAgentMailThread, insertActiveSession, deleteActiveSession, deleteActiveSessionById, getActiveSessions, heartbeatActiveSession, cleanupStaleSessions, cleanupAgentSessions, updateActiveSessionProviderSessionId, getActiveSessionForTask, reassociateSessionLogs, getStalledInProgressTasks, getStalePinnedResumes, failPendingResumeIfUnclaimed, getIdleWorkersWithCapacity, getUnassignedPoolTasks, getStaleUnassignedAffinityTasks, getRecentFailedTasks, getRecentCompletedCount, getRecentFailedCount, createWorkflow, getWorkflow, listWorkflows, updateWorkflow, deleteWorkflow, getWorkflowsByScheduleId, createWorkflowRun, getWorkflowRun, updateWorkflowRun, listWorkflowRuns, countWorkflowRuns, listWorkflowRunsPage, createWorkflowRunStep, getWorkflowRunStep, updateWorkflowRunStep, getWorkflowRunStepsByRunId, getStuckWorkflowRuns, getLastSuccessfulRun, getLastRunStart, getRetryableSteps, getCompletedStepNodeIds, getTaskByWorkflowRunStepId, detachTaskFromWorkflowRunStep, getStepByIdempotencyKey, getStepCountForNode, getLatestStepForNode, createWorkflowVersion, getWorkflowVersions, getWorkflowVersion, createAppVersion, getAppVersions, getAppVersion, createPage, getPage, getPageBySlug, getLatestPageBySlug, listPagesByAgent, listAllPages, countAllPages, countPagesByAgent, updatePage, deletePage, incrementPageViewCount, createPageVersion, getPageVersions, getPageVersion, createMetric, getMetric, getMetricBySlug, listMetricsByAgent, listAllMetrics, countAllMetrics, countMetricsByAgent, updateMetric, deleteMetric, createMetricVersion, getMetricVersions, getMetricVersion, getPromptTemplates, getPromptTemplateById, upsertPromptTemplate, deletePromptTemplate, resetPromptTemplateToDefault, getPromptTemplateHistory, resolvePromptTemplate, checkoutPromptTemplate, getAllChannelActivityCursors, getChannelActivityCursor, upsertChannelActivityCursor, createApprovalRequest, getApprovalRequestById, resolveApprovalRequest, updateApprovalRequestNotifications, listApprovalRequests, getStuckApprovalRuns, getApprovalRequestByStepId, getExpiredPendingApprovals, createWaitState, getWaitStateById, getWaitStateByStepId, getDueWaitStates, getPendingEventWaitNames, getPendingWaitsByEvent, resolveWaitState, getStuckWaitRuns, SKILL_FILE_LIMITS, normalizeSkillFilePath, createSkill, updateSkill, listSkillFileManifest, getSkillFiles, getSkillFile, upsertSkillFile, upsertSkillFiles, deleteSkillFile, deleteSkill, getSkillById, getSkillByName, listSkills, searchSkills, installSkill, getSystemDefaultSkills, installSystemDefaultSkillsForAgent, uninstallSkill, getAgentSkills, toggleAgentSkill, createMcpServer, updateMcpServer, deleteMcpServer, getMcpServerById, getMcpServerByName, listMcpServers, installMcpServer, uninstallMcpServer, getAgentMcpServers, createContextSnapshot, getContextSnapshotsByTaskId, getContextSnapshotsBySessionId, getContextSummaryByTaskId, getAvailableKeyIndices, recordKeyUsage, markKeyRateLimited, recordKeyRateLimitWindows, setApiKeyName, clearKeyRateLimit, getKeyStatuses, getKeyCostSummary, getUserById, getAllUsers, createUser, updateUser, deleteUser, listInboxState, upsertInboxState, listFavorites, listUserFavorites, getFavoriteItemIdSet, setFavorite, setUserFavorite, withFavoriteFlags, listTaskTemplates, getRootTaskChain, listRecentSessions, countSessions, getBudget, getBudgets, upsertBudget, deleteBudget, getAllPricingRows, getPricingRows, getActivePricingRow, insertPricingRow, deletePricingRow, getDailySpendForAgent, getDailySpendGlobal, getDailySpendForUser, recordBudgetRefusalNotification, getBudgetRefusalNotification, getRecentBudgetRefusalNotifications, hasBudgetRefusalNotificationToday, setBudgetRefusalFollowUpTaskId, getLiveAgentCounts, getInstanceActivity, getSwarmMetrics, hasFirstCompletedTask, getKv, sweepExpiredKv, sweepExpiredKvPrefix, upsertKv, claimKv, deleteKv, KvTypeCollisionError, incrKv, listKv, countKv, createScriptRun, recordInlineScriptRun, getScriptRun, getScriptRunByIdempotencyKey, listScriptRuns, countScriptRuns, countActiveScriptRuns, updateScriptRun, updateScriptRunIfNotTerminal, updateScriptRunIfRunning, getRunningScriptRuns, getScriptRunJournalStep, upsertScriptRunJournalStep, listScriptRunJournalSteps, countScriptRunJournalSteps, countScriptRunJournalAgentTaskSteps, exports_db, init_db };
@@ -4,12 +4,12 @@ import {
4
4
  linkIdentity,
5
5
  recordUnmappedIdentity,
6
6
  resolveIdentity
7
- } from "./cli-yw2z5kj9.js";
7
+ } from "./cli-spf767vc.js";
8
8
  import {
9
9
  getKv,
10
10
  init_db,
11
11
  upsertKv
12
- } from "./cli-qxn3g3yx.js";
12
+ } from "./cli-tmn19cdz.js";
13
13
 
14
14
  // src/slack/enrich.ts
15
15
  init_db();
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  buildModelsDevSeedRows,
3
3
  loadModelsDevCache
4
- } from "./cli-1857msnd.js";
4
+ } from "./cli-tee8w7tq.js";
5
5
  import {
6
6
  createLogEntry,
7
7
  getActivePricingRow,
8
8
  getDbClient,
9
9
  init_db,
10
10
  insertPricingRow
11
- } from "./cli-qxn3g3yx.js";
11
+ } from "./cli-tmn19cdz.js";
12
12
  import {
13
13
  init_secret_scrubber,
14
14
  scrubSecrets
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.135.2",
68
+ version: "1.136.0",
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",
@@ -236,14 +236,14 @@ var package_default = {
236
236
  "@aws-sdk/client-bedrock": "3.1048.0",
237
237
  "@desplega.ai/business-use": "^0.4.2",
238
238
  "@desplega.ai/localtunnel": "^2.2.0",
239
- "@earendil-works/pi-agent-core": "^0.84.3",
240
- "@earendil-works/pi-ai": "^0.84.3",
241
- "@earendil-works/pi-coding-agent": "^0.84.3",
239
+ "@earendil-works/pi-agent-core": "^0.84.4",
240
+ "@earendil-works/pi-ai": "^0.84.4",
241
+ "@earendil-works/pi-coding-agent": "^0.84.4",
242
242
  "@inkjs/ui": "^2.0.0",
243
243
  "@linear/sdk": "^77.0.0",
244
244
  "@modelcontextprotocol/sdk": "^1.25.1",
245
- "@openai/codex-sdk": "^0.149.1",
246
- "@opencode-ai/sdk": "^1.18.23",
245
+ "@openai/codex-sdk": "^0.151.0",
246
+ "@opencode-ai/sdk": "^1.18.25",
247
247
  "@openfort/openfort-node": "^0.9.1",
248
248
  "@opentelemetry/api": "^1.9.1",
249
249
  "@opentelemetry/exporter-metrics-otlp-http": "^0.218.0",
@@ -701,7 +701,7 @@ function McpServer({ port, apiKey, dbPath }) {
701
701
  if (dbPath) {
702
702
  process.env.DATABASE_PATH = dbPath;
703
703
  }
704
- import("./http-x4mc1mqg.js").then(() => {
704
+ import("./http-wfp33653.js").then(() => {
705
705
  setStatus("running");
706
706
  }).catch((err) => {
707
707
  setStatus("error");
@@ -787,7 +787,7 @@ function WorkerRunner({
787
787
  }) {
788
788
  const { exit } = use_app_default();
789
789
  import_react.useEffect(() => {
790
- import("./worker-nb1f7k04.js").then(({ runWorker }) => runWorker({
790
+ import("./worker-j1d27tjv.js").then(({ runWorker }) => runWorker({
791
791
  prompt: prompt || undefined,
792
792
  yolo,
793
793
  systemPrompt: systemPrompt || undefined,
@@ -804,7 +804,7 @@ function WorkerRunner({
804
804
  function LeadRunner({ prompt, yolo, systemPrompt, systemPromptFile, additionalArgs }) {
805
805
  const { exit } = use_app_default();
806
806
  import_react.useEffect(() => {
807
- import("./lead-js1h3z7d.js").then(({ runLead }) => runLead({
807
+ import("./lead-359ec2z0.js").then(({ runLead }) => runLead({
808
808
  prompt: prompt || undefined,
809
809
  yolo,
810
810
  systemPrompt: systemPrompt || undefined,
@@ -844,8 +844,8 @@ function LazyComponent({
844
844
  }
845
845
  return import_react.createElement(Component, props);
846
846
  }
847
- var loadOnboard = () => import("./onboard-vndj64mb.js").then(({ Onboard }) => Onboard);
848
- var loadConnect = () => import("./setup-5ys9pwyr.js").then(({ Setup }) => Setup);
847
+ var loadOnboard = () => import("./onboard-asnhchcv.js").then(({ Onboard }) => Onboard);
848
+ var loadConnect = () => import("./setup-wh4qmjs4.js").then(({ Setup }) => Setup);
849
849
  function UnknownCommand({ command }) {
850
850
  const { exit } = use_app_default();
851
851
  import_react.useEffect(() => {
@@ -958,14 +958,14 @@ ${binName} docs \u2014 v${package_default.version}
958
958
  }
959
959
  process.exit(0);
960
960
  } else if (args.command === "hook") {
961
- const { runHook } = await import("./hook-mrqygs7p.js");
961
+ const { runHook } = await import("./hook-jjpxn4se.js");
962
962
  await runHook();
963
963
  } else if (args.command === "codex-hook") {
964
964
  const { handleCodexHook } = await import("./codex-hook-7eb9d1d5.js");
965
965
  await handleCodexHook();
966
966
  process.exit(0);
967
967
  } else if (args.command === "session-summary-stdin") {
968
- const { runSessionSummaryFromStdin } = await import("./hook-gd9fwfp0.js");
968
+ const { runSessionSummaryFromStdin } = await import("./hook-hpefr0a8.js");
969
969
  await runSessionSummaryFromStdin();
970
970
  process.exit(process.exitCode ?? 0);
971
971
  } else if (args.command === "artifact") {
@@ -986,7 +986,7 @@ ${binName} docs \u2014 v${package_default.version}
986
986
  printHelp("scripts");
987
987
  process.exit(scriptsArgs[0] === "reembed" || args.showHelp ? 0 : 1);
988
988
  }
989
- const { runScriptsMaintenanceCommand } = await import("./maintenance-y91ry8q4.js");
989
+ const { runScriptsMaintenanceCommand } = await import("./maintenance-rr03qjtb.js");
990
990
  await runScriptsMaintenanceCommand(scriptsArgs);
991
991
  console.log("Scripts re-embedded.");
992
992
  } else if (args.command === "rbac") {
@@ -996,14 +996,14 @@ ${binName} docs \u2014 v${package_default.version}
996
996
  printHelp("rbac");
997
997
  process.exit(args.showHelp ? 0 : 1);
998
998
  }
999
- const { runRbacCliCommand } = await import("./rbac-roles-2pedz5e9.js");
999
+ const { runRbacCliCommand } = await import("./rbac-roles-ak56tr75.js");
1000
1000
  await runRbacCliCommand(rbacArgs);
1001
1001
  } else if (args.command === "codex-login") {
1002
1002
  const { runCodexLogin } = await import("./codex-login-x7603481.js");
1003
1003
  const codexLoginArgs = process.argv.slice(process.argv.indexOf("codex-login") + 1);
1004
1004
  await runCodexLogin(codexLoginArgs);
1005
1005
  } else if (args.command === "codex-session-runner") {
1006
- const { runCodexSessionRunner } = await import("./codex-session-runner-7b3dhpmx.js");
1006
+ const { runCodexSessionRunner } = await import("./codex-session-runner-sffb69v7.js");
1007
1007
  await runCodexSessionRunner();
1008
1008
  } else if (args.command === "claude-managed-setup") {
1009
1009
  const { runClaudeManagedSetup } = await import("./claude-managed-setup-3zqp51cr.js");
@@ -6,12 +6,12 @@ import {
6
6
  createInProcessCodexSession,
7
7
  resolveCodexAuthMode,
8
8
  resolveCodexRunnerArgv
9
- } from "./cli-6mmwmy45.js";
9
+ } from "./cli-j7qp8gtf.js";
10
10
  import"./cli-hsxj0yar.js";
11
11
  import"./cli-r94z9p1z.js";
12
12
  import"./cli-f64gdfxc.js";
13
13
  import"./cli-a3pkfpqs.js";
14
- import"./cli-a1zrc2g6.js";
14
+ import"./cli-qhfkxrpg.js";
15
15
  import"./cli-hp1n6zq3.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-6mmwmy45.js";
3
+ } from "./cli-j7qp8gtf.js";
4
4
  import"./cli-hsxj0yar.js";
5
5
  import"./cli-r94z9p1z.js";
6
6
  import"./cli-f64gdfxc.js";
7
7
  import"./cli-a3pkfpqs.js";
8
- import"./cli-a1zrc2g6.js";
8
+ import"./cli-qhfkxrpg.js";
9
9
  import"./cli-hp1n6zq3.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-qxn3g3yx.js";
5
+ } from "./cli-tmn19cdz.js";
6
6
  import"./cli-d2epf5ae.js";
7
7
  import"./cli-87zrjxdb.js";
8
8
  import"./cli-a1rrkrb4.js";
@@ -13,7 +13,7 @@ import {
13
13
  } from "./cli-nanaxrz6.js";
14
14
  import"./cli-s35981d0.js";
15
15
  import"./cli-mkq1rk7b.js";
16
- import"./cli-4dakdn30.js";
16
+ import"./cli-4r4jkqep.js";
17
17
  import"./cli-pqv5gvyf.js";
18
18
  import"./cli-pq2ee5ja.js";
19
19
 
@@ -354,6 +354,8 @@ import {
354
354
  overwriteTerminalTaskResultText,
355
355
  pauseTask,
356
356
  postMessage,
357
+ promoteAbandonedDraftTasks,
358
+ promoteDraftTask,
357
359
  reassociateSessionLogs,
358
360
  recordBudgetRefusalNotification,
359
361
  recordInlineScriptRun,
@@ -438,7 +440,7 @@ import {
438
440
  upsertSkillFiles,
439
441
  upsertSwarmConfig,
440
442
  withFavoriteFlags
441
- } from "./cli-qxn3g3yx.js";
443
+ } from "./cli-tmn19cdz.js";
442
444
  import {
443
445
  generateDefaultClaudeMd,
444
446
  generateDefaultIdentityMd,
@@ -451,7 +453,7 @@ import"./cli-qt5bt3vk.js";
451
453
  import"./cli-nanaxrz6.js";
452
454
  import"./cli-s35981d0.js";
453
455
  import"./cli-mkq1rk7b.js";
454
- import"./cli-4dakdn30.js";
456
+ import"./cli-4r4jkqep.js";
455
457
  import"./cli-pqv5gvyf.js";
456
458
  import"./cli-pq2ee5ja.js";
457
459
  init_db();
@@ -815,6 +817,8 @@ export {
815
817
  overwriteTerminalTaskResultText,
816
818
  pauseTask,
817
819
  postMessage,
820
+ promoteAbandonedDraftTasks,
821
+ promoteDraftTask,
818
822
  reassociateSessionLogs,
819
823
  recordBudgetRefusalNotification,
820
824
  recordInlineScriptRun,
@@ -5,29 +5,29 @@ import {
5
5
  instantFlush,
6
6
  requestSlackThreadSteering,
7
7
  wasEventSeen
8
- } from "./cli-mfa2eaef.js";
8
+ } from "./cli-35jknh9e.js";
9
9
  import {
10
10
  extractSlackMessageText,
11
11
  extractTaskFromMessage,
12
12
  hasOtherUserMention,
13
13
  routeMessage
14
- } from "./cli-1dfatkzm.js";
14
+ } from "./cli-84vrhesc.js";
15
15
  import {
16
16
  enrichSlackUserEmail,
17
17
  resolveSlackUserId,
18
18
  rewriteSlackMentions
19
- } from "./cli-7ccy0h4r.js";
20
- import"./cli-yw2z5kj9.js";
19
+ } from "./cli-y16cesaq.js";
20
+ import"./cli-spf767vc.js";
21
21
  import {
22
22
  createTaskWithSiblingAwareness
23
- } from "./cli-w0ygcv43.js";
23
+ } from "./cli-gpdtxzar.js";
24
24
  import {
25
25
  ackSlackMessage,
26
26
  buildTreeBlocks,
27
27
  ensureSlackThreadTree,
28
28
  isSlackRenderV2Enabled,
29
29
  registerTreeMessage
30
- } from "./cli-j3xnd5b4.js";
30
+ } from "./cli-d5ygfv18.js";
31
31
  import"./cli-qf9kpsve.js";
32
32
  import"./cli-g2p9bd1z.js";
33
33
  import"./cli-5tnr64pm.js";
@@ -40,7 +40,7 @@ import {
40
40
  init_context_key,
41
41
  init_db,
42
42
  slackContextKey
43
- } from "./cli-qxn3g3yx.js";
43
+ } from "./cli-tmn19cdz.js";
44
44
  import"./cli-d2epf5ae.js";
45
45
  import {
46
46
  init_resolver,
@@ -54,7 +54,7 @@ import {
54
54
  } from "./cli-nanaxrz6.js";
55
55
  import"./cli-s35981d0.js";
56
56
  import"./cli-mkq1rk7b.js";
57
- import"./cli-4dakdn30.js";
57
+ import"./cli-4r4jkqep.js";
58
58
  import"./cli-pqv5gvyf.js";
59
59
  import"./cli-qntkxysp.js";
60
60
  import {
@@ -132,6 +132,11 @@ var cachedBotUserId = null;
132
132
  var cachedBotId = null;
133
133
  var swarmThreadRootCache = new Map;
134
134
  var SWARM_THREAD_ROOT_CACHE_MAX = 1000;
135
+ function resetSlackHandlerCachesForTesting() {
136
+ cachedBotUserId = null;
137
+ cachedBotId = null;
138
+ swarmThreadRootCache.clear();
139
+ }
135
140
  function isSwarmThreadRoot(root, botUserId, botId) {
136
141
  if (!root)
137
142
  return false;
@@ -583,5 +588,6 @@ export {
583
588
  formatFileSize,
584
589
  isBotMessage,
585
590
  isSwarmThreadRoot,
586
- registerMessageHandler
591
+ registerMessageHandler,
592
+ resetSlackHandlerCachesForTesting
587
593
  };
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bun
2
2
  import {
3
3
  summarizeSession
4
- } from "./cli-a1zrc2g6.js";
4
+ } from "./cli-qhfkxrpg.js";
5
5
  import {
6
6
  checkToolLoop,
7
7
  clearToolHistory
@@ -42,7 +42,7 @@ import {
42
42
  import {
43
43
  init_package,
44
44
  package_default
45
- } from "./cli-4dakdn30.js";
45
+ } from "./cli-4r4jkqep.js";
46
46
  import"./cli-pqv5gvyf.js";
47
47
  import"./cli-darcwax3.js";
48
48
  import"./cli-00w4hbam.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  handleHook
3
- } from "./cli-1z01xdqh.js";
4
- import"./cli-a1zrc2g6.js";
3
+ } from "./cli-6gwgzdgw.js";
4
+ import"./cli-qhfkxrpg.js";
5
5
  import"./cli-hp1n6zq3.js";
6
6
  import"./cli-v1mwc5v2.js";
7
7
  import"./cli-8p37s71j.js";
@@ -15,7 +15,7 @@ import"./cli-a1rrkrb4.js";
15
15
  import"./cli-nanaxrz6.js";
16
16
  import"./cli-s35981d0.js";
17
17
  import"./cli-mkq1rk7b.js";
18
- import"./cli-4dakdn30.js";
18
+ import"./cli-4r4jkqep.js";
19
19
  import"./cli-pqv5gvyf.js";
20
20
  import"./cli-darcwax3.js";
21
21
  import"./cli-00w4hbam.js";