@desplega.ai/agent-swarm 1.103.0 → 1.105.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 (129) hide show
  1. package/README.md +3 -0
  2. package/dist/{actions-7txktrdj.js → actions-45g8tvc8.js} +6 -6
  3. package/dist/{app-xm3xsdye.js → app-18x5k1cj.js} +3 -3
  4. package/dist/{assistant-qpv63wk6.js → assistant-ka281qe8.js} +9 -10
  5. package/dist/{boot-reembed-9cxqka3e.js → boot-reembed-f38vbxw8.js} +4 -3
  6. package/dist/{boot-reembed-chxhrwv8.js → boot-reembed-rp2gba79.js} +5 -4
  7. package/dist/{boot-scrub-logs-8qtfkcz8.js → boot-scrub-logs-nsnc9f1a.js} +2 -2
  8. package/dist/{cli-gzepjz54.js → cli-0e24r2b6.js} +900 -352
  9. package/dist/{cli-dz3d6zjg.js → cli-0n4xxmy0.js} +121 -2
  10. package/dist/{cli-jt9d9fjw.js → cli-0s37sw3k.js} +1 -1
  11. package/dist/{cli-yeemwevj.js → cli-2hg6bj31.js} +20 -16
  12. package/dist/{cli-wjyyv518.js → cli-3j01d33e.js} +9 -14
  13. package/dist/{cli-xmtsan9k.js → cli-4df7btj0.js} +1 -1
  14. package/dist/{cli-8w95v19d.js → cli-634jy7sa.js} +351 -24
  15. package/dist/{cli-m8f6qzck.js → cli-7esh9fda.js} +1 -1
  16. package/dist/{cli-4fnp2tc3.js → cli-87fj1jk4.js} +1 -1
  17. package/dist/{cli-ksq38x4n.js → cli-8y7y1vmp.js} +2 -2
  18. package/dist/{cli-rvae030h.js → cli-ba47wf2q.js} +3 -3
  19. package/dist/{cli-2qynerth.js → cli-c4h8m0m3.js} +1 -1
  20. package/dist/{cli-fygaw191.js → cli-dd6tegmp.js} +2 -2
  21. package/dist/{cli-85pf4z38.js → cli-ehcjr5vs.js} +5 -3
  22. package/dist/{cli-rttgde5f.js → cli-gq7gvvrn.js} +1 -1
  23. package/dist/{cli-kk51f3tf.js → cli-gzmv1371.js} +5 -5
  24. package/dist/{http-zts4haq7.js → cli-sdf2qwkt.js} +83970 -76419
  25. package/dist/{cli-krvxq8bc.js → cli-sm9yseh1.js} +23 -4
  26. package/dist/{cli-8hyv6c2v.js → cli-v2fb1fxf.js} +41 -23
  27. package/dist/{cli-fwxdt7kt.js → cli-vpwffend.js} +30 -5
  28. package/dist/{cli-fedn86nz.js → cli-wztagmpk.js} +8 -3
  29. package/dist/{cli-v9283nma.js → cli-yd29d4n4.js} +1 -1
  30. package/dist/{cli-yfwwjeft.js → cli-yfyqsqzj.js} +1 -1
  31. package/dist/{cli-ns0r7mkr.js → cli-yzr0qxx1.js} +3 -3
  32. package/dist/{cli-s14sb64w.js → cli-zmta7t3y.js} +5 -7
  33. package/dist/cli.js +12 -10
  34. package/dist/{commands-aqn63mcw.js → commands-tn8zj0an.js} +2 -2
  35. package/dist/{db-azrvwsnj.js → db-gtqymk7r.js} +2 -2
  36. package/dist/{handlers-hf61har3.js → handlers-5xdqk40d.js} +10 -12
  37. package/dist/{hook-306p3yz4.js → hook-gj6j6zwj.js} +7 -5
  38. package/dist/http-4pceba9h.js +17374 -0
  39. package/dist/{index-bfh9hgek.js → index-0rfp6wh2.js} +5 -5
  40. package/dist/{index-3c651yfk.js → index-as4evz9g.js} +14 -11
  41. package/dist/{index-h2yqjyk0.js → index-paaw4xt5.js} +9 -8
  42. package/dist/{index-29vg51x6.js → index-wf0q4k03.js} +23 -10
  43. package/dist/{keepalive-a0dg5pds.js → keepalive-akbzjt41.js} +4 -4
  44. package/dist/{lead-7mcxedkc.js → lead-g8v85nf4.js} +19 -19
  45. package/dist/{maintenance-mrzqd53t.js → maintenance-9yrzmrh8.js} +5 -4
  46. package/dist/{onboard-4dkpv9wa.js → onboard-v5bx0kpy.js} +2 -2
  47. package/dist/{otel-impl-jt7gpyp9.js → otel-impl-530442da.js} +4510 -4465
  48. package/dist/{pricing-refresh-xqnzh8dt.js → pricing-refresh-dt289v11.js} +4 -4
  49. package/dist/{seed-pricing-56tjm1fj.js → seed-pricing-183er9b3.js} +3 -3
  50. package/dist/{setup-tbwk8j10.js → setup-tjgsvznx.js} +2 -2
  51. package/dist/{worker-e03za92t.js → worker-nxcxk5pb.js} +19 -19
  52. package/openapi.json +90 -4
  53. package/package.json +5 -3
  54. package/src/be/memory/constants.ts +6 -0
  55. package/src/be/memory/providers/sqlite-store.ts +468 -71
  56. package/src/be/memory/raters/retrieval.ts +4 -2
  57. package/src/be/memory/reranker.ts +5 -2
  58. package/src/be/memory/retrieval-store.ts +2 -0
  59. package/src/be/memory/types.ts +46 -0
  60. package/src/be/migrations/099_memory_structured_key_versioning.sql +41 -0
  61. package/src/be/migrations/100_memory_retrieval_source.sql +8 -0
  62. package/src/be/migrations/101_script_connections.sql +67 -0
  63. package/src/be/script-connections.ts +744 -0
  64. package/src/be/script-credential-broker.ts +38 -0
  65. package/src/be/scripts/typecheck.ts +23 -2
  66. package/src/be/seed-scripts/catalog/boot-triage.inline.ts +16 -4
  67. package/src/be/seed-scripts/catalog/boot-triage.ts +16 -4
  68. package/src/commands/runner.ts +8 -6
  69. package/src/heartbeat/heartbeat.ts +42 -1
  70. package/src/heartbeat/index.ts +7 -1
  71. package/src/http/memory.ts +127 -14
  72. package/src/http/pages-public.ts +123 -2
  73. package/src/http/scripts.ts +15 -14
  74. package/src/http/session-data.ts +16 -0
  75. package/src/otel-impl.ts +73 -0
  76. package/src/otel.ts +12 -0
  77. package/src/scripts-runtime/api-client.ts +100 -0
  78. package/src/scripts-runtime/api-types.ts +45 -0
  79. package/src/scripts-runtime/credential-broker/README.md +40 -0
  80. package/src/scripts-runtime/credential-broker/broker.ts +51 -0
  81. package/src/scripts-runtime/credential-broker/default-bindings.ts +19 -0
  82. package/src/scripts-runtime/credential-broker/fetch-patch.ts +102 -0
  83. package/src/scripts-runtime/credential-broker/index.ts +17 -0
  84. package/src/scripts-runtime/credential-broker/store.ts +72 -0
  85. package/src/scripts-runtime/credential-broker/types.ts +54 -0
  86. package/src/scripts-runtime/ctx.ts +11 -1
  87. package/src/scripts-runtime/egress-secrets.ts +14 -76
  88. package/src/scripts-runtime/eval-harness.ts +1 -1
  89. package/src/scripts-runtime/executors/types.ts +5 -5
  90. package/src/scripts-runtime/loader.ts +6 -1
  91. package/src/scripts-runtime/sdk-allowlist.ts +1 -0
  92. package/src/scripts-runtime/types/stdlib.d.ts +11 -0
  93. package/src/scripts-runtime/types/swarm-sdk.d.ts +11 -0
  94. package/src/server.ts +6 -0
  95. package/src/tests/credential-broker.test.ts +281 -0
  96. package/src/tests/heartbeat.test.ts +239 -0
  97. package/src/tests/memory-edit.test.ts +177 -0
  98. package/src/tests/memory-hybrid.test.ts +212 -0
  99. package/src/tests/otel-impl-secret-scrubbing.test.ts +101 -3
  100. package/src/tests/otel-session-cost-metrics.test.ts +281 -0
  101. package/src/tests/pages-authed-mode.test.ts +50 -0
  102. package/src/tests/runner-repo-autostash.test.ts +39 -8
  103. package/src/tests/script-connections.test.ts +360 -0
  104. package/src/tests/scripts-http.test.ts +16 -10
  105. package/src/tests/scripts-runtime-secret-egress.test.ts +26 -5
  106. package/src/tests/swarm-config-reserved-keys.test.ts +23 -0
  107. package/src/tests/update-schedule-mcp-tool.test.ts +83 -4
  108. package/src/tools/credential-bindings/index.ts +1 -0
  109. package/src/tools/credential-bindings/tool.ts +238 -0
  110. package/src/tools/memory-edit.ts +148 -0
  111. package/src/tools/memory-search.ts +17 -10
  112. package/src/tools/schedules/delete-schedule.ts +18 -8
  113. package/src/tools/schedules/update-schedule.ts +4 -9
  114. package/src/tools/script-connections/index.ts +1 -0
  115. package/src/tools/script-connections/tool.ts +167 -0
  116. package/src/tools/swarm-config/delete-config.ts +5 -0
  117. package/src/tools/swarm-config/set-config.ts +23 -1
  118. package/src/tools/tool-config.ts +6 -1
  119. package/src/types.ts +6 -0
  120. package/src/workflows/executors/swarm-script.ts +2 -0
  121. package/templates/community/dora-metrics/PLAYBOOK.md +294 -0
  122. package/templates/community/dora-metrics/README.md +39 -0
  123. package/templates/community/dora-metrics/lead-prompt.md +56 -0
  124. package/templates/community/dora-metrics/report.mjs +393 -0
  125. package/templates/community/dora-metrics/run.sh +113 -0
  126. package/templates/schedules/weekly-dora-metrics/config.json +13 -0
  127. package/templates/schedules/weekly-dora-metrics/content.md +61 -0
  128. package/dist/cli-2307phk1.js +0 -24223
  129. package/dist/cli-2deg0cen.js +0 -120
@@ -3,14 +3,14 @@ import {
3
3
  runScheduleNow,
4
4
  startScheduler,
5
5
  stopScheduler
6
- } from "./cli-ns0r7mkr.js";
7
- import"./cli-rttgde5f.js";
8
- import"./cli-jt9d9fjw.js";
9
- import"./cli-fedn86nz.js";
6
+ } from "./cli-yzr0qxx1.js";
7
+ import"./cli-gq7gvvrn.js";
8
+ import"./cli-0s37sw3k.js";
9
+ import"./cli-wztagmpk.js";
10
10
  import"./cli-z2zcxes1.js";
11
11
  import"./cli-q21d49ac.js";
12
12
  import"./cli-anrj584m.js";
13
- import"./cli-85pf4z38.js";
13
+ import"./cli-ehcjr5vs.js";
14
14
  import"./cli-3pp1362w.js";
15
15
  import"./cli-p9swy5t3.js";
16
16
  export {
@@ -1,23 +1,25 @@
1
1
  import {
2
+ getBootEpochMs,
2
3
  getRebootAffectedTasks,
3
4
  runRebootSweep,
4
5
  startHeartbeat,
5
6
  stopHeartbeat
6
- } from "./cli-fwxdt7kt.js";
7
- import"./cli-4fnp2tc3.js";
8
- import"./cli-8hyv6c2v.js";
7
+ } from "./cli-vpwffend.js";
8
+ import"./cli-87fj1jk4.js";
9
+ import"./cli-v2fb1fxf.js";
9
10
  import"./cli-f14fvzag.js";
10
- import"./cli-gzepjz54.js";
11
- import"./cli-fygaw191.js";
12
- import"./cli-8w95v19d.js";
13
- import"./cli-rttgde5f.js";
11
+ import"./cli-0e24r2b6.js";
12
+ import"./cli-dd6tegmp.js";
13
+ import"./cli-634jy7sa.js";
14
+ import"./cli-3j01d33e.js";
15
+ import"./cli-gq7gvvrn.js";
14
16
  import"./cli-dh55d5fg.js";
15
- import"./cli-jt9d9fjw.js";
16
- import"./cli-fedn86nz.js";
17
+ import"./cli-0s37sw3k.js";
18
+ import"./cli-wztagmpk.js";
17
19
  import"./cli-z2zcxes1.js";
18
20
  import"./cli-q21d49ac.js";
19
21
  import"./cli-anrj584m.js";
20
- import"./cli-85pf4z38.js";
22
+ import"./cli-ehcjr5vs.js";
21
23
  import"./cli-3pp1362w.js";
22
24
  import"./cli-9aryf9tv.js";
23
25
  import"./cli-p9swy5t3.js";
@@ -25,5 +27,6 @@ export {
25
27
  stopHeartbeat,
26
28
  startHeartbeat,
27
29
  runRebootSweep,
28
- getRebootAffectedTasks
30
+ getRebootAffectedTasks,
31
+ getBootEpochMs
29
32
  };
@@ -15,27 +15,28 @@ import {
15
15
  stopWaitPoller,
16
16
  subscribeWaitToBus,
17
17
  validateTemplateVariables
18
- } from "./cli-8hyv6c2v.js";
18
+ } from "./cli-v2fb1fxf.js";
19
19
  import"./cli-f14fvzag.js";
20
- import"./cli-gzepjz54.js";
21
- import"./cli-fygaw191.js";
22
- import"./cli-8w95v19d.js";
20
+ import"./cli-0e24r2b6.js";
21
+ import"./cli-dd6tegmp.js";
22
+ import"./cli-634jy7sa.js";
23
+ import"./cli-3j01d33e.js";
23
24
  import {
24
25
  findEntryNodes,
25
26
  getSuccessors,
26
27
  handleScheduleTrigger,
27
28
  handleWebhookTrigger,
28
29
  startWorkflowExecution
29
- } from "./cli-rttgde5f.js";
30
+ } from "./cli-gq7gvvrn.js";
30
31
  import"./cli-dh55d5fg.js";
31
- import"./cli-jt9d9fjw.js";
32
+ import"./cli-0s37sw3k.js";
32
33
  import {
33
34
  interpolate
34
- } from "./cli-fedn86nz.js";
35
+ } from "./cli-wztagmpk.js";
35
36
  import"./cli-z2zcxes1.js";
36
37
  import"./cli-q21d49ac.js";
37
38
  import"./cli-anrj584m.js";
38
- import"./cli-85pf4z38.js";
39
+ import"./cli-ehcjr5vs.js";
39
40
  import"./cli-3pp1362w.js";
40
41
  import {
41
42
  workflowEventBus
@@ -2,14 +2,15 @@ import {
2
2
  extractArgsJsonSchema,
3
3
  extractScriptSignature,
4
4
  typecheckScript
5
- } from "./cli-krvxq8bc.js";
5
+ } from "./cli-sm9yseh1.js";
6
6
  import {
7
7
  getScript,
8
8
  upsertScriptByName,
9
9
  validateScriptImports
10
- } from "./cli-gzepjz54.js";
11
- import"./cli-fygaw191.js";
12
- import"./cli-8w95v19d.js";
10
+ } from "./cli-0e24r2b6.js";
11
+ import"./cli-dd6tegmp.js";
12
+ import"./cli-634jy7sa.js";
13
+ import"./cli-3j01d33e.js";
13
14
  import {
14
15
  computeContentHash,
15
16
  createSkill,
@@ -17,11 +18,11 @@ import {
17
18
  getSkillByName,
18
19
  init_db,
19
20
  updateSkill
20
- } from "./cli-fedn86nz.js";
21
+ } from "./cli-wztagmpk.js";
21
22
  import"./cli-z2zcxes1.js";
22
23
  import"./cli-q21d49ac.js";
23
24
  import"./cli-anrj584m.js";
24
- import"./cli-85pf4z38.js";
25
+ import"./cli-ehcjr5vs.js";
25
26
  import"./cli-3pp1362w.js";
26
27
  import"./cli-p9swy5t3.js";
27
28
 
@@ -169,20 +170,32 @@ export default async function bootTriage(args: any, ctx: any) {
169
170
  .filter((row) => !BENIGN_FAILURE_RE.test(String(row.failureReason || "")))
170
171
  .map(summarizeTask);
171
172
 
172
- const stuckOfflineRows = await query(
173
+ // Catches in_progress tasks on offline agents OR tasks whose session is a
174
+ // pre-boot artifact (stale lastHeartbeatAt). The session check mirrors the
175
+ // heartbeat.ts runRebootSweep boot-epoch logic — a session that heartbeated
176
+ // after the stuckMinutes threshold is considered live.
177
+ const recentThreshold = new Date(nowMs - stuckMinutes * 60 * 1000).toISOString();
178
+ const stuckRows = await query(
173
179
  ctx,
174
180
  \`SELECT t.id, t.task, t.status, t.taskType, t.agentId, a.name as agentName,
175
181
  t.scheduleId, t.parentTaskId, t.failureReason, t.createdAt, t.lastUpdatedAt
176
182
  FROM agent_tasks t
177
183
  JOIN agents a ON a.id = t.agentId
178
184
  WHERE t.status = 'in_progress'
179
- AND a.status = 'offline'
180
185
  AND datetime(t.lastUpdatedAt) <= datetime(?, ?)
186
+ AND (
187
+ a.status = 'offline'
188
+ OR NOT EXISTS (
189
+ SELECT 1 FROM active_sessions s
190
+ WHERE s.taskId = t.id
191
+ AND datetime(s.lastHeartbeatAt) >= datetime(?)
192
+ )
193
+ )
181
194
  ORDER BY datetime(t.lastUpdatedAt) ASC
182
195
  LIMIT 50\`,
183
- [now.toISOString(), \`-\${stuckMinutes} minutes\`],
196
+ [now.toISOString(), \`-\${stuckMinutes} minutes\`, recentThreshold],
184
197
  );
185
- const stuckInProgressOnOfflineAgents = stuckOfflineRows
198
+ const stuckInProgressOnOfflineAgents = stuckRows
186
199
  .filter((row) => !row.unavailable)
187
200
  .map(summarizeTask);
188
201
 
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  ensureTokenOrThrow
3
- } from "./cli-v9283nma.js";
4
- import"./cli-fedn86nz.js";
3
+ } from "./cli-yd29d4n4.js";
4
+ import"./cli-wztagmpk.js";
5
5
  import"./cli-z2zcxes1.js";
6
6
  import"./cli-q21d49ac.js";
7
7
  import"./cli-anrj584m.js";
8
- import"./cli-85pf4z38.js";
8
+ import"./cli-ehcjr5vs.js";
9
9
  import"./cli-3pp1362w.js";
10
10
  import {
11
11
  __require
@@ -54,7 +54,7 @@ async function notifySlack(text) {
54
54
  return;
55
55
  }
56
56
  try {
57
- const { getSlackApp } = await import("./app-xm3xsdye.js");
57
+ const { getSlackApp } = await import("./app-18x5k1cj.js");
58
58
  const app = getSlackApp();
59
59
  if (!app) {
60
60
  console.warn("[OAuth Keepalive] Slack not available, cannot send notification");
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  runAgent
3
- } from "./cli-yeemwevj.js";
4
- import"./cli-wjyyv518.js";
3
+ } from "./cli-2hg6bj31.js";
5
4
  import"./cli-khe4x17a.js";
6
5
  import"./cli-p03mawph.js";
7
6
  import"./cli-4wmnp8q3.js";
@@ -16,7 +15,7 @@ import"./cli-d6n0thxw.js";
16
15
  import"./cli-hx1dcevq.js";
17
16
  import {
18
17
  getEnabledCapabilities
19
- } from "./cli-2307phk1.js";
18
+ } from "./cli-sdf2qwkt.js";
20
19
  import"./cli-09rxrad0.js";
21
20
  import"./cli-dcfyyh3t.js";
22
21
  import"./cli-gz9sbyk3.js";
@@ -25,31 +24,32 @@ import"./cli-psrqtw2m.js";
25
24
  import"./cli-tng3131n.js";
26
25
  import"./cli-zm7njwzd.js";
27
26
  import"./cli-0k9dc6ks.js";
28
- import"./cli-v9283nma.js";
29
- import"./cli-ksq38x4n.js";
30
- import"./cli-m8f6qzck.js";
31
- import"./cli-4fnp2tc3.js";
32
- import"./cli-8hyv6c2v.js";
27
+ import"./cli-yd29d4n4.js";
28
+ import"./cli-8y7y1vmp.js";
29
+ import"./cli-7esh9fda.js";
30
+ import"./cli-87fj1jk4.js";
31
+ import"./cli-v2fb1fxf.js";
33
32
  import"./cli-f14fvzag.js";
34
- import"./cli-gzepjz54.js";
35
- import"./cli-fygaw191.js";
36
- import"./cli-8w95v19d.js";
33
+ import"./cli-0e24r2b6.js";
34
+ import"./cli-dd6tegmp.js";
35
+ import"./cli-634jy7sa.js";
36
+ import"./cli-3j01d33e.js";
37
37
  import"./cli-fad8m16k.js";
38
- import"./cli-ns0r7mkr.js";
39
- import"./cli-rttgde5f.js";
40
- import"./cli-2deg0cen.js";
41
- import"./cli-kk51f3tf.js";
38
+ import"./cli-yzr0qxx1.js";
39
+ import"./cli-gq7gvvrn.js";
40
+ import"./cli-0n4xxmy0.js";
41
+ import"./cli-gzmv1371.js";
42
42
  import"./cli-fete3y1e.js";
43
43
  import"./cli-b0p7rfnd.js";
44
- import"./cli-yfwwjeft.js";
44
+ import"./cli-yfyqsqzj.js";
45
45
  import"./cli-z92pkwzn.js";
46
46
  import"./cli-dh55d5fg.js";
47
- import"./cli-jt9d9fjw.js";
48
- import"./cli-fedn86nz.js";
47
+ import"./cli-0s37sw3k.js";
48
+ import"./cli-wztagmpk.js";
49
49
  import"./cli-z2zcxes1.js";
50
50
  import"./cli-q21d49ac.js";
51
51
  import"./cli-anrj584m.js";
52
- import"./cli-85pf4z38.js";
52
+ import"./cli-ehcjr5vs.js";
53
53
  import"./cli-3pp1362w.js";
54
54
  import"./cli-e15jhafb.js";
55
55
  import"./cli-9aryf9tv.js";
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  reembedAllScripts
3
- } from "./cli-fygaw191.js";
4
- import"./cli-8w95v19d.js";
5
- import"./cli-fedn86nz.js";
3
+ } from "./cli-dd6tegmp.js";
4
+ import"./cli-634jy7sa.js";
5
+ import"./cli-3j01d33e.js";
6
+ import"./cli-wztagmpk.js";
6
7
  import"./cli-z2zcxes1.js";
7
8
  import"./cli-q21d49ac.js";
8
9
  import"./cli-anrj584m.js";
9
- import"./cli-85pf4z38.js";
10
+ import"./cli-ehcjr5vs.js";
10
11
  import"./cli-3pp1362w.js";
11
12
  import"./cli-p9swy5t3.js";
12
13
 
@@ -3,7 +3,7 @@ import {
3
3
  createDefaultMcpJson,
4
4
  createDefaultSettingsLocal,
5
5
  createHooksConfig
6
- } from "./cli-xmtsan9k.js";
6
+ } from "./cli-4df7btj0.js";
7
7
  import {
8
8
  require_jsx_dev_runtime
9
9
  } from "./cli-6n1nnzm7.js";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  init_package,
15
15
  package_default
16
- } from "./cli-85pf4z38.js";
16
+ } from "./cli-ehcjr5vs.js";
17
17
  import {
18
18
  Box_default,
19
19
  Select,