@desplega.ai/agent-swarm 2.4.2 → 2.4.3

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 (127) hide show
  1. package/dist/{acp-adapter-dv7hmx4r.js → acp-adapter-1885dpr7.js} +4 -4
  2. package/dist/{actions-51nc1gny.js → actions-pn76n32q.js} +18 -18
  3. package/dist/{amp-adapter-abp5tdx8.js → amp-adapter-af84rx1d.js} +3 -3
  4. package/dist/{app-9h14qvr6.js → app-6sv8mhzm.js} +3 -3
  5. package/dist/{assistant-wv1gz3mt.js → assistant-sc2tf825.js} +20 -20
  6. package/dist/{boot-reembed-7fcka4z5.js → boot-reembed-gvxjs2py.js} +1 -1
  7. package/dist/{boot-reembed-6yn53ms9.js → boot-reembed-y3m0ydzj.js} +1 -1
  8. package/dist/{boot-scrub-sweep-pm1580ax.js → boot-scrub-sweep-1j9mk05f.js} +3 -3
  9. package/dist/{boot-seeds-g5hfc1x8.js → boot-seeds-37sp626b.js} +4 -4
  10. package/dist/{claude-adapter-gf3kxhf0.js → claude-adapter-rp0jtnwr.js} +4 -4
  11. package/dist/{claude-managed-setup-h00hsgtz.js → claude-managed-setup-rdt248k7.js} +1 -1
  12. package/dist/{claude-sdk-session-s2k1qd8y.js → claude-sdk-session-53rcw5we.js} +9822 -9749
  13. package/dist/{cli-z4wd2ftv.js → cli-038fga5k.js} +2 -2
  14. package/dist/{cli-y2x52gs2.js → cli-0dxxwfkt.js} +8 -8
  15. package/dist/{cli-y8n5k515.js → cli-1012xb7j.js} +28 -28
  16. package/dist/{cli-sv5gb0yb.js → cli-1eszr343.js} +1 -1
  17. package/dist/{cli-7225gwj7.js → cli-1m17dc9d.js} +1 -1
  18. package/dist/{cli-r99kc9yq.js → cli-1ma335fz.js} +3 -3
  19. package/dist/{cli-faypxz7q.js → cli-1n9gdg56.js} +4 -4
  20. package/dist/{cli-shvfedvm.js → cli-1xsraagq.js} +2 -2
  21. package/dist/{cli-xbzvet96.js → cli-36ckw0wx.js} +5 -4
  22. package/dist/{cli-mhywgrrz.js → cli-4sydckyj.js} +1 -1
  23. package/dist/{cli-bcj753sq.js → cli-4yef8ghv.js} +3 -3
  24. package/dist/{cli-g0hgtz4p.js → cli-58vwn100.js} +3 -3
  25. package/dist/{cli-pw7v69vp.js → cli-625tb7aq.js} +1 -1
  26. package/dist/{cli-ftyypbg5.js → cli-6aen3ezb.js} +1 -1
  27. package/dist/{cli-efaqv1c7.js → cli-6eyncg0y.js} +6 -6
  28. package/dist/{cli-h38rjv87.js → cli-73ezfhha.js} +5 -5
  29. package/dist/{cli-x5mq1fyq.js → cli-74c1wpm0.js} +3 -3
  30. package/dist/{cli-b1dfr1m4.js → cli-7a6p4e65.js} +1 -1
  31. package/dist/{cli-fpmsqq59.js → cli-836ehxmt.js} +1 -1
  32. package/dist/{cli-1pa3rz69.js → cli-8vverzf7.js} +1 -1
  33. package/dist/{cli-hyfw2j1e.js → cli-8y99kfey.js} +11 -11
  34. package/dist/{cli-ahtpy9kf.js → cli-aa3tb29r.js} +10 -5
  35. package/dist/{cli-fyzjmseb.js → cli-aypbg9r2.js} +1 -1
  36. package/dist/{cli-0qvtffe9.js → cli-bxrqvpg5.js} +6 -6
  37. package/dist/{cli-0hyhdkdk.js → cli-cebvbc9t.js} +4 -1
  38. package/dist/{cli-10hhg0km.js → cli-dm8p2dpf.js} +7 -7
  39. package/dist/{cli-8sxqsbbq.js → cli-e4d78xsv.js} +1 -1
  40. package/dist/{cli-7a91w22y.js → cli-e8xyjvfc.js} +1 -1
  41. package/dist/{cli-8zwe9mpk.js → cli-f0p0f6ja.js} +10 -10
  42. package/dist/{cli-w9g4sz81.js → cli-gf2850q7.js} +1 -1
  43. package/dist/{cli-n85dqg6d.js → cli-gx0j2khs.js} +4 -4
  44. package/dist/{cli-239yjk27.js → cli-h0mgxann.js} +5 -5
  45. package/dist/{cli-5rk36sjf.js → cli-kgnkyabk.js} +35 -34
  46. package/dist/{cli-hqhzg1qq.js → cli-mzkwkbdy.js} +1 -1
  47. package/dist/{cli-saw9a6f6.js → cli-npfe9t1s.js} +2 -2
  48. package/dist/{cli-t30yj95q.js → cli-p0qerd2r.js} +1 -1
  49. package/dist/{cli-s6vr7r2d.js → cli-pygdsgh8.js} +1 -1
  50. package/dist/{cli-2wag8973.js → cli-qeaq3j6t.js} +1 -1
  51. package/dist/{cli-7awf1fp8.js → cli-qp2m4btv.js} +3 -3
  52. package/dist/{cli-02qm7src.js → cli-s9rr4gr2.js} +5 -5
  53. package/dist/{cli-nmqdc2t3.js → cli-sds5zzs8.js} +1 -1
  54. package/dist/{cli-nn47d7e8.js → cli-tkf4x6ha.js} +15 -15
  55. package/dist/{cli-pkht5hap.js → cli-v87dr6e3.js} +2 -2
  56. package/dist/{cli-d3qqdy4c.js → cli-vcgscaan.js} +12 -12
  57. package/dist/{cli-zfg9enh9.js → cli-vfha21c9.js} +6 -1
  58. package/dist/{cli-h93c9vb3.js → cli-vq9gqarq.js} +1 -1
  59. package/dist/{cli-a4gvwttf.js → cli-wk28hzqn.js} +2 -2
  60. package/dist/{cli-rdyw3mct.js → cli-zvbb4n0e.js} +6 -5
  61. package/dist/cli.js +16 -16
  62. package/dist/{codex-adapter-ttygw382.js → codex-adapter-2zrmab9b.js} +2 -2
  63. package/dist/{codex-hook-x7nejyrr.js → codex-hook-e2he7aca.js} +2 -2
  64. package/dist/{codex-session-runner-60b58vv3.js → codex-session-runner-kbkz62vc.js} +2 -2
  65. package/dist/{commands-edmdwa4x.js → commands-hd574th6.js} +3 -3
  66. package/dist/{controller-m263fg43.js → controller-pz5mcfg4.js} +3 -3
  67. package/dist/{controllers-connect-5fym8sw1.js → controllers-connect-5rgq2hfk.js} +19 -19
  68. package/dist/{cursor-adapter-cz6nm6mj.js → cursor-adapter-mgaprq0j.js} +2 -2
  69. package/dist/{db-nn0hcmx5.js → db-6nf1207q.js} +2 -2
  70. package/dist/{db-2y0mgstc.js → db-h06dxp05.js} +3 -3
  71. package/dist/{dispatcher-0a9wwjcx.js → dispatcher-zthpy4m1.js} +17 -17
  72. package/dist/{dsh-adapter-3n3net33.js → dsh-adapter-64dhw0j7.js} +2 -2
  73. package/dist/{e2b-thdcxtjd.js → e2b-16d6ch39.js} +1 -1
  74. package/dist/{e2b-7am6tmq6.js → e2b-zn0b4w5w.js} +1 -1
  75. package/dist/{external-channel-zhvt95n3.js → external-channel-x01t7ke6.js} +2 -2
  76. package/dist/{grok-adapter-qnr1hp2y.js → grok-adapter-h21jv594.js} +5 -5
  77. package/dist/handlers-2qjw434w.js +39 -0
  78. package/dist/{heartbeat-gz97r7ac.js → heartbeat-zzfksckz.js} +20 -20
  79. package/dist/{hook-x8rthca4.js → hook-3xfqhh2s.js} +2 -2
  80. package/dist/{hook-1mmdgjqs.js → hook-z4zhzj1f.js} +10 -5
  81. package/dist/{http-r8f85xr9.js → http-q813tmya.js} +46 -46
  82. package/dist/{index-y7rbcrc1.js → index-220tk9bw.js} +9 -9
  83. package/dist/index-d0g18bax.js +41 -0
  84. package/dist/{index-vzvfqzfj.js → index-m0a4ydqj.js} +17 -17
  85. package/dist/{index-aex0eba9.js → index-wbbs14c5.js} +17 -17
  86. package/dist/{index-smxyk04s.js → index-x8xbyn1t.js} +1 -1
  87. package/dist/{keepalive-64c0f34c.js → keepalive-y5t1my7m.js} +3 -3
  88. package/dist/{lead-b1da0f97.js → lead-2xwtq66b.js} +30 -30
  89. package/dist/{maintenance-mnxpar12.js → maintenance-ybfsaedv.js} +1 -1
  90. package/dist/{oauth-refresh-sweep-36hs2v4h.js → oauth-refresh-sweep-909jmn12.js} +2 -2
  91. package/dist/{onboard-xes8de61.js → onboard-xn6fkkys.js} +3 -3
  92. package/dist/{opencode-adapter-3s7ax02e.js → opencode-adapter-x4tqzhkh.js} +3 -3
  93. package/dist/{otel-impl-fzc57kcq.js → otel-impl-e6mn0z13.js} +1 -1
  94. package/dist/{pi-mono-adapter-ytp7gz8b.js → pi-mono-adapter-mcfkn9vf.js} +3 -3
  95. package/dist/{pricing-refresh-1nek2w7b.js → pricing-refresh-ygd362ep.js} +3 -3
  96. package/dist/{rbac-roles-ttyfaep2.js → rbac-roles-c9axvfnz.js} +3 -3
  97. package/dist/{rbac-roles-sqefb5hw.js → rbac-roles-mb470p4e.js} +2 -2
  98. package/dist/{render-v2-vb527jwn.js → render-v2-g0306nh1.js} +3 -3
  99. package/dist/{resume-jcdzg1bn.js → resume-v315hnq6.js} +5 -5
  100. package/dist/{session-access-zsp4wsp0.js → session-access-2zg285a1.js} +4 -4
  101. package/dist/{setup-1nb2zqd3.js → setup-a4mtf02k.js} +1 -1
  102. package/dist/{work-objects-61w08fwr.js → work-objects-9fr0fgtn.js} +21 -21
  103. package/dist/{worker-c1e68hpa.js → worker-qae22jeb.js} +30 -30
  104. package/openapi.json +1 -1
  105. package/package.json +2 -2
  106. package/src/be/db.ts +7 -4
  107. package/src/be/migrations/231_slack_tasks_last_updated_index.sql +5 -0
  108. package/src/github/handlers.ts +6 -5
  109. package/src/hooks/hook.ts +2 -1
  110. package/src/providers/amp-adapter.ts +1 -1
  111. package/src/providers/codex-adapter.ts +4 -4
  112. package/src/providers/opencode-adapter.ts +2 -2
  113. package/src/providers/pi-mono-extension.ts +2 -1
  114. package/src/tests/claude-stop-hook.test.ts +47 -0
  115. package/src/tests/codex-adapter.test.ts +42 -0
  116. package/src/tests/env-flag.test.ts +15 -1
  117. package/src/tests/github-handlers-cancel-config.test.ts +29 -8
  118. package/src/tests/github-handlers-inline-comments.test.ts +9 -2
  119. package/src/tests/script-connections.test.ts +2 -0
  120. package/src/tests/skill-script-refs.test.ts +63 -0
  121. package/src/tests/slack-render-v2-query-plans.test.ts +147 -0
  122. package/src/utils/env-flag.ts +9 -0
  123. package/templates/skills/apps/SKILL.md +1 -0
  124. package/templates/skills/apps/content.md +1 -0
  125. package/templates/skills/code-quality/content.md +9 -14
  126. package/dist/handlers-dkcarkd0.js +0 -39
  127. package/dist/index-5jecgp3n.js +0 -41
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  listKeepAliveAuthorizations,
3
3
  init_oauth
4
- } from "./cli-d3qqdy4c.js";
4
+ } from "./cli-vcgscaan.js";
5
5
  import {
6
6
  ensureAuthorizationTokenOrThrow
7
- } from "./cli-s6vr7r2d.js";
7
+ } from "./cli-pygdsgh8.js";
8
8
  import {
9
9
  scrubSecrets,
10
10
  init_secret_scrubber
@@ -57,7 +57,7 @@ async function notifySlack(text) {
57
57
  return;
58
58
  }
59
59
  try {
60
- const { getSlackApp } = await import("./app-9h14qvr6.js");
60
+ const { getSlackApp } = await import("./app-6sv8mhzm.js");
61
61
  const app = getSlackApp();
62
62
  if (!app) {
63
63
  console.warn("[OAuth Keepalive] Slack not available, cannot send notification");
@@ -1,67 +1,67 @@
1
1
  import"./cli-qz93y3x5.js";
2
2
  import {
3
3
  getEnabledCapabilities
4
- } from "./cli-5rk36sjf.js";
4
+ } from "./cli-kgnkyabk.js";
5
5
  import"./cli-v1sjhn52.js";
6
- import"./cli-d3qqdy4c.js";
7
- import"./cli-7awf1fp8.js";
8
- import"./cli-faypxz7q.js";
9
- import"./cli-h93c9vb3.js";
10
- import"./cli-saw9a6f6.js";
11
- import"./cli-sv5gb0yb.js";
12
- import"./cli-y2x52gs2.js";
13
- import"./cli-h38rjv87.js";
14
- import"./cli-s6vr7r2d.js";
6
+ import"./cli-vcgscaan.js";
7
+ import"./cli-qp2m4btv.js";
8
+ import"./cli-1n9gdg56.js";
9
+ import"./cli-vq9gqarq.js";
10
+ import"./cli-npfe9t1s.js";
11
+ import"./cli-1eszr343.js";
12
+ import"./cli-0dxxwfkt.js";
13
+ import"./cli-73ezfhha.js";
14
+ import"./cli-pygdsgh8.js";
15
15
  import"./cli-3ggwdtb0.js";
16
- import"./cli-nn47d7e8.js";
17
- import"./cli-pkht5hap.js";
18
- import"./cli-02qm7src.js";
16
+ import"./cli-tkf4x6ha.js";
17
+ import"./cli-v87dr6e3.js";
18
+ import"./cli-s9rr4gr2.js";
19
19
  import"./cli-8nyhf7za.js";
20
20
  import"./cli-kvzgak7c.js";
21
21
  import"./cli-445c1vp7.js";
22
22
  import"./cli-ejs3m1sx.js";
23
23
  import"./cli-wt645v7q.js";
24
- import"./cli-efaqv1c7.js";
25
- import"./cli-7a91w22y.js";
24
+ import"./cli-6eyncg0y.js";
25
+ import"./cli-e8xyjvfc.js";
26
26
  import"./cli-qje9k2nh.js";
27
- import"./cli-n85dqg6d.js";
27
+ import"./cli-gx0j2khs.js";
28
28
  import"./cli-3h26v7yj.js";
29
29
  import"./cli-smvcw9z5.js";
30
30
  import"./cli-0xk505e8.js";
31
31
  import"./cli-bn0rewsy.js";
32
32
  import"./cli-77cd6gy8.js";
33
- import"./cli-ftyypbg5.js";
33
+ import"./cli-6aen3ezb.js";
34
34
  import {
35
35
  runAgent
36
- } from "./cli-y8n5k515.js";
36
+ } from "./cli-1012xb7j.js";
37
37
  import"./cli-a5ebc95n.js";
38
38
  import"./cli-gx4rm0qx.js";
39
39
  import"./cli-5kqnemen.js";
40
40
  import"./cli-jc1g9ndz.js";
41
- import"./cli-r99kc9yq.js";
42
- import"./cli-7225gwj7.js";
41
+ import"./cli-1ma335fz.js";
42
+ import"./cli-1m17dc9d.js";
43
43
  import"./cli-pnp2j5zg.js";
44
44
  import"./cli-d82btycs.js";
45
45
  import"./cli-0726awxw.js";
46
- import"./cli-ahtpy9kf.js";
47
- import"./cli-239yjk27.js";
46
+ import"./cli-aa3tb29r.js";
47
+ import"./cli-h0mgxann.js";
48
48
  import"./cli-4bd1rck6.js";
49
49
  import"./cli-vbhgkw9h.js";
50
50
  import"./cli-er83cjbn.js";
51
51
  import"./cli-a0kcty51.js";
52
52
  import"./cli-kr5tjjtz.js";
53
- import"./cli-rdyw3mct.js";
54
- import"./cli-g0hgtz4p.js";
53
+ import"./cli-zvbb4n0e.js";
54
+ import"./cli-58vwn100.js";
55
55
  import"./cli-s95dknxh.js";
56
- import"./cli-a4gvwttf.js";
57
- import"./cli-z4wd2ftv.js";
58
- import"./cli-zfg9enh9.js";
59
- import"./cli-xbzvet96.js";
60
- import"./cli-fyzjmseb.js";
56
+ import"./cli-wk28hzqn.js";
57
+ import"./cli-038fga5k.js";
58
+ import"./cli-vfha21c9.js";
59
+ import"./cli-36ckw0wx.js";
60
+ import"./cli-aypbg9r2.js";
61
61
  import"./cli-4zsenjhy.js";
62
62
  import"./cli-13p25grh.js";
63
63
  import"./cli-0adyhvq2.js";
64
- import"./cli-nmqdc2t3.js";
64
+ import"./cli-sds5zzs8.js";
65
65
 
66
66
  // src/commands/lead.ts
67
67
  var leadConfig = {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  reembedAllScripts,
3
3
  init_embeddings
4
- } from "./cli-d3qqdy4c.js";
4
+ } from "./cli-vcgscaan.js";
5
5
 
6
6
  // src/be/scripts/maintenance.ts
7
7
  init_embeddings();
@@ -2,10 +2,10 @@ import {
2
2
  getAuthorizationById,
3
3
  listAuthorizationSweepRows,
4
4
  init_oauth
5
- } from "./cli-d3qqdy4c.js";
5
+ } from "./cli-vcgscaan.js";
6
6
  import {
7
7
  forceRefreshAuthorizationOrThrow
8
- } from "./cli-s6vr7r2d.js";
8
+ } from "./cli-pygdsgh8.js";
9
9
  import {
10
10
  scrubSecrets,
11
11
  init_secret_scrubber
@@ -16,16 +16,16 @@ import {
16
16
  createDefaultSettingsLocal,
17
17
  createDefaultMcpJson,
18
18
  createHooksConfig
19
- } from "./cli-8sxqsbbq.js";
19
+ } from "./cli-e4d78xsv.js";
20
20
  import {
21
21
  getSlackConfiguration,
22
22
  isSlackConfigured,
23
23
  init_config
24
- } from "./cli-2wag8973.js";
24
+ } from "./cli-qeaq3j6t.js";
25
25
  import {
26
26
  init_package,
27
27
  package_default
28
- } from "./cli-shvfedvm.js";
28
+ } from "./cli-1xsraagq.js";
29
29
  import {
30
30
  getApiKey,
31
31
  init_api_key
@@ -3,8 +3,8 @@ import {
3
3
  applyOpenRouterBaseUrlOverride2,
4
4
  buildOpenAICompatibleProviderBlock2,
5
5
  OpencodeAdapter2
6
- } from "./cli-xbzvet96.js";
7
- import"./cli-zfg9enh9.js";
6
+ } from "./cli-36ckw0wx.js";
7
+ import"./cli-vfha21c9.js";
8
8
  import"./cli-4bd1rck6.js";
9
9
  import"./cli-jc1g9ndz.js";
10
10
  import"./cli-a5ebc95n.js";
@@ -12,7 +12,7 @@ import"./cli-pnp2j5zg.js";
12
12
  import"./cli-0726awxw.js";
13
13
  import"./cli-bn0rewsy.js";
14
14
  import"./cli-3h26v7yj.js";
15
- import"./cli-7a91w22y.js";
15
+ import"./cli-e8xyjvfc.js";
16
16
  import"./cli-8nyhf7za.js";
17
17
  import"./cli-ejs3m1sx.js";
18
18
  import"./cli-13p25grh.js";
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  init_package,
16
16
  package_default
17
- } from "./cli-shvfedvm.js";
17
+ } from "./cli-1xsraagq.js";
18
18
  import {
19
19
  scrubSecrets,
20
20
  init_secret_scrubber
@@ -21,7 +21,7 @@ import {
21
21
  import"./cli-kvzgak7c.js";
22
22
  import {
23
23
  swarmRuntimeInstanceId
24
- } from "./cli-7a91w22y.js";
24
+ } from "./cli-e8xyjvfc.js";
25
25
  import {
26
26
  readPkgVersion
27
27
  } from "./cli-kr5tjjtz.js";
@@ -29,7 +29,7 @@ import"./cli-3h26v7yj.js";
29
29
  import"./cli-0726awxw.js";
30
30
  import {
31
31
  createSwarmHooksExtension
32
- } from "./cli-zfg9enh9.js";
32
+ } from "./cli-vfha21c9.js";
33
33
  import"./cli-ejs3m1sx.js";
34
34
  import"./cli-pnp2j5zg.js";
35
35
  import {
@@ -69,7 +69,7 @@ import {
69
69
  import {
70
70
  parseEnvFlag,
71
71
  init_env_flag
72
- } from "./cli-0hyhdkdk.js";
72
+ } from "./cli-cebvbc9t.js";
73
73
  import {
74
74
  scrubSecrets,
75
75
  scrubObject,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  requestModelCatalogRefresh2,
3
3
  startPricingRefreshLoop2
4
- } from "./cli-saw9a6f6.js";
5
- import"./cli-h93c9vb3.js";
6
- import"./cli-d3qqdy4c.js";
4
+ } from "./cli-npfe9t1s.js";
5
+ import"./cli-vq9gqarq.js";
6
+ import"./cli-vcgscaan.js";
7
7
  export {
8
8
  requestModelCatalogRefresh2 as requestModelCatalogRefresh,
9
9
  startPricingRefreshLoop2 as startPricingRefreshLoop
@@ -2,15 +2,15 @@ import {
2
2
  getDb2,
3
3
  getDbClient2,
4
4
  init_db3
5
- } from "./cli-d3qqdy4c.js";
5
+ } from "./cli-vcgscaan.js";
6
6
  import {
7
7
  PermissionVerbSchema,
8
8
  init_rbac
9
- } from "./cli-1pa3rz69.js";
9
+ } from "./cli-8vverzf7.js";
10
10
  import {
11
11
  isEnvFlagEnabled,
12
12
  init_env_flag
13
- } from "./cli-0hyhdkdk.js";
13
+ } from "./cli-cebvbc9t.js";
14
14
 
15
15
  // src/be/rbac-roles.ts
16
16
  init_rbac();
@@ -2,8 +2,8 @@ import {
2
2
  getUserGrant2,
3
3
  ensureRbacSeedsSynced2,
4
4
  init_rbac_roles
5
- } from "./cli-7awf1fp8.js";
6
- import"./cli-d3qqdy4c.js";
5
+ } from "./cli-qp2m4btv.js";
6
+ import"./cli-vcgscaan.js";
7
7
  init_rbac_roles();
8
8
 
9
9
  export {
@@ -2,9 +2,9 @@ import {
2
2
  isSlackRenderV2Enabled2,
3
3
  ensureSlackThreadTree2,
4
4
  processSlackRenderV22
5
- } from "./cli-nn47d7e8.js";
6
- import"./cli-pkht5hap.js";
7
- import"./cli-d3qqdy4c.js";
5
+ } from "./cli-tkf4x6ha.js";
6
+ import"./cli-v87dr6e3.js";
7
+ import"./cli-vcgscaan.js";
8
8
  export {
9
9
  ensureSlackThreadTree2 as ensureSlackThreadTree,
10
10
  isSlackRenderV2Enabled2 as isSlackRenderV2Enabled,
@@ -9,17 +9,17 @@ import {
9
9
  resumeFromChildRun2,
10
10
  initWaitBusSubscriptions2,
11
11
  subscribeWaitToBus2
12
- } from "./cli-y2x52gs2.js";
13
- import"./cli-02qm7src.js";
12
+ } from "./cli-0dxxwfkt.js";
13
+ import"./cli-s9rr4gr2.js";
14
14
  import"./cli-8nyhf7za.js";
15
15
  import"./cli-ejs3m1sx.js";
16
16
  import"./cli-13p25grh.js";
17
17
  import"./cli-0adyhvq2.js";
18
- import"./cli-nn47d7e8.js";
19
- import"./cli-pkht5hap.js";
18
+ import"./cli-tkf4x6ha.js";
19
+ import"./cli-v87dr6e3.js";
20
20
  import"./cli-445c1vp7.js";
21
21
  import"./cli-kvzgak7c.js";
22
- import"./cli-d3qqdy4c.js";
22
+ import"./cli-vcgscaan.js";
23
23
  import"./cli-wt645v7q.js";
24
24
  export {
25
25
  cancelWorkflowRun2 as cancelWorkflowRun,
@@ -8,10 +8,10 @@ import {
8
8
  pathSessionDenial2,
9
9
  bodySessionDenial2,
10
10
  userAgentIdentityDenial2
11
- } from "./cli-efaqv1c7.js";
12
- import"./cli-nmqdc2t3.js";
13
- import"./cli-7awf1fp8.js";
14
- import"./cli-d3qqdy4c.js";
11
+ } from "./cli-6eyncg0y.js";
12
+ import"./cli-sds5zzs8.js";
13
+ import"./cli-qp2m4btv.js";
14
+ import"./cli-vcgscaan.js";
15
15
  export {
16
16
  SESSION_READ_DENIED2 as SESSION_READ_DENIED,
17
17
  SESSION_WRITE_DENIED2 as SESSION_WRITE_DENIED,
@@ -15,7 +15,7 @@ import {
15
15
  createDefaultSettingsLocal,
16
16
  createDefaultMcpJson,
17
17
  createHooksConfig
18
- } from "./cli-8sxqsbbq.js";
18
+ } from "./cli-e4d78xsv.js";
19
19
  import {
20
20
  getApiKey,
21
21
  init_api_key
@@ -2,49 +2,49 @@ import {
2
2
  getAgentById2,
3
3
  getTaskById2,
4
4
  init_db3
5
- } from "./cli-d3qqdy4c.js";
5
+ } from "./cli-vcgscaan.js";
6
6
  import {
7
7
  slackTaskOutput,
8
8
  getTaskUrl
9
- } from "./cli-nn47d7e8.js";
9
+ } from "./cli-tkf4x6ha.js";
10
10
  import {
11
11
  shouldBlockChannel2
12
- } from "./cli-pkht5hap.js";
13
- import"./cli-5rk36sjf.js";
14
- import"./cli-y2x52gs2.js";
15
- import"./cli-h38rjv87.js";
16
- import"./cli-s6vr7r2d.js";
12
+ } from "./cli-v87dr6e3.js";
13
+ import"./cli-kgnkyabk.js";
14
+ import"./cli-0dxxwfkt.js";
15
+ import"./cli-73ezfhha.js";
16
+ import"./cli-pygdsgh8.js";
17
17
  import"./cli-3ggwdtb0.js";
18
- import"./cli-02qm7src.js";
18
+ import"./cli-s9rr4gr2.js";
19
19
  import"./cli-8nyhf7za.js";
20
20
  import"./cli-kvzgak7c.js";
21
21
  import"./cli-445c1vp7.js";
22
22
  import"./cli-ejs3m1sx.js";
23
23
  import"./cli-wt645v7q.js";
24
- import"./cli-sv5gb0yb.js";
25
- import"./cli-h93c9vb3.js";
26
- import"./cli-saw9a6f6.js";
24
+ import"./cli-1eszr343.js";
25
+ import"./cli-vq9gqarq.js";
26
+ import"./cli-npfe9t1s.js";
27
27
  import"./cli-qz93y3x5.js";
28
- import"./cli-7awf1fp8.js";
29
- import"./cli-faypxz7q.js";
30
- import"./cli-7a91w22y.js";
28
+ import"./cli-qp2m4btv.js";
29
+ import"./cli-1n9gdg56.js";
30
+ import"./cli-e8xyjvfc.js";
31
31
  import"./cli-qje9k2nh.js";
32
- import"./cli-n85dqg6d.js";
33
- import"./cli-efaqv1c7.js";
32
+ import"./cli-gx0j2khs.js";
33
+ import"./cli-6eyncg0y.js";
34
34
  import"./cli-3h26v7yj.js";
35
35
  import"./cli-smvcw9z5.js";
36
- import"./cli-bcj753sq.js";
37
- import"./cli-0qvtffe9.js";
36
+ import"./cli-4yef8ghv.js";
37
+ import"./cli-bxrqvpg5.js";
38
38
  import {
39
39
  isUserAllowed2
40
- } from "./cli-10hhg0km.js";
40
+ } from "./cli-dm8p2dpf.js";
41
41
  import"./cli-13p25grh.js";
42
42
  import"./cli-0adyhvq2.js";
43
- import"./cli-nmqdc2t3.js";
43
+ import"./cli-sds5zzs8.js";
44
44
  import {
45
45
  isEnvFlagEnabled,
46
46
  init_env_flag
47
- } from "./cli-0hyhdkdk.js";
47
+ } from "./cli-cebvbc9t.js";
48
48
 
49
49
  // src/slack/work-objects.ts
50
50
  init_db3();
@@ -1,67 +1,67 @@
1
1
  import"./cli-qz93y3x5.js";
2
2
  import {
3
3
  getEnabledCapabilities
4
- } from "./cli-5rk36sjf.js";
4
+ } from "./cli-kgnkyabk.js";
5
5
  import"./cli-v1sjhn52.js";
6
- import"./cli-d3qqdy4c.js";
7
- import"./cli-7awf1fp8.js";
8
- import"./cli-faypxz7q.js";
9
- import"./cli-h93c9vb3.js";
10
- import"./cli-saw9a6f6.js";
11
- import"./cli-sv5gb0yb.js";
12
- import"./cli-y2x52gs2.js";
13
- import"./cli-h38rjv87.js";
14
- import"./cli-s6vr7r2d.js";
6
+ import"./cli-vcgscaan.js";
7
+ import"./cli-qp2m4btv.js";
8
+ import"./cli-1n9gdg56.js";
9
+ import"./cli-vq9gqarq.js";
10
+ import"./cli-npfe9t1s.js";
11
+ import"./cli-1eszr343.js";
12
+ import"./cli-0dxxwfkt.js";
13
+ import"./cli-73ezfhha.js";
14
+ import"./cli-pygdsgh8.js";
15
15
  import"./cli-3ggwdtb0.js";
16
- import"./cli-nn47d7e8.js";
17
- import"./cli-pkht5hap.js";
18
- import"./cli-02qm7src.js";
16
+ import"./cli-tkf4x6ha.js";
17
+ import"./cli-v87dr6e3.js";
18
+ import"./cli-s9rr4gr2.js";
19
19
  import"./cli-8nyhf7za.js";
20
20
  import"./cli-kvzgak7c.js";
21
21
  import"./cli-445c1vp7.js";
22
22
  import"./cli-ejs3m1sx.js";
23
23
  import"./cli-wt645v7q.js";
24
- import"./cli-efaqv1c7.js";
25
- import"./cli-7a91w22y.js";
24
+ import"./cli-6eyncg0y.js";
25
+ import"./cli-e8xyjvfc.js";
26
26
  import"./cli-qje9k2nh.js";
27
- import"./cli-n85dqg6d.js";
27
+ import"./cli-gx0j2khs.js";
28
28
  import"./cli-3h26v7yj.js";
29
29
  import"./cli-smvcw9z5.js";
30
30
  import"./cli-0xk505e8.js";
31
31
  import"./cli-bn0rewsy.js";
32
32
  import"./cli-77cd6gy8.js";
33
- import"./cli-ftyypbg5.js";
33
+ import"./cli-6aen3ezb.js";
34
34
  import {
35
35
  runAgent
36
- } from "./cli-y8n5k515.js";
36
+ } from "./cli-1012xb7j.js";
37
37
  import"./cli-a5ebc95n.js";
38
38
  import"./cli-gx4rm0qx.js";
39
39
  import"./cli-5kqnemen.js";
40
40
  import"./cli-jc1g9ndz.js";
41
- import"./cli-r99kc9yq.js";
42
- import"./cli-7225gwj7.js";
41
+ import"./cli-1ma335fz.js";
42
+ import"./cli-1m17dc9d.js";
43
43
  import"./cli-pnp2j5zg.js";
44
44
  import"./cli-d82btycs.js";
45
45
  import"./cli-0726awxw.js";
46
- import"./cli-ahtpy9kf.js";
47
- import"./cli-239yjk27.js";
46
+ import"./cli-aa3tb29r.js";
47
+ import"./cli-h0mgxann.js";
48
48
  import"./cli-4bd1rck6.js";
49
49
  import"./cli-vbhgkw9h.js";
50
50
  import"./cli-er83cjbn.js";
51
51
  import"./cli-a0kcty51.js";
52
52
  import"./cli-kr5tjjtz.js";
53
- import"./cli-rdyw3mct.js";
54
- import"./cli-g0hgtz4p.js";
53
+ import"./cli-zvbb4n0e.js";
54
+ import"./cli-58vwn100.js";
55
55
  import"./cli-s95dknxh.js";
56
- import"./cli-a4gvwttf.js";
57
- import"./cli-z4wd2ftv.js";
58
- import"./cli-zfg9enh9.js";
59
- import"./cli-xbzvet96.js";
60
- import"./cli-fyzjmseb.js";
56
+ import"./cli-wk28hzqn.js";
57
+ import"./cli-038fga5k.js";
58
+ import"./cli-vfha21c9.js";
59
+ import"./cli-36ckw0wx.js";
60
+ import"./cli-aypbg9r2.js";
61
61
  import"./cli-4zsenjhy.js";
62
62
  import"./cli-13p25grh.js";
63
63
  import"./cli-0adyhvq2.js";
64
- import"./cli-nmqdc2t3.js";
64
+ import"./cli-sds5zzs8.js";
65
65
 
66
66
  // src/commands/worker.ts
67
67
  var workerConfig = {
package/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "Agent Swarm API",
5
- "version": "2.4.2",
5
+ "version": "2.4.3",
6
6
  "description": "Multi-agent orchestration API for Claude Code, Codex, and Gemini CLI. Enables task distribution, agent communication, and service discovery.\n\nMCP tools are documented separately in [MCP.md](./MCP.md)."
7
7
  },
8
8
  "servers": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@desplega.ai/agent-swarm",
3
- "version": "2.4.2",
3
+ "version": "2.4.3",
4
4
  "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.",
5
5
  "keywords": [
6
6
  "agent-swarm.dev",
@@ -200,7 +200,7 @@
200
200
  "dependencies": {
201
201
  "@agentclientprotocol/sdk": "1.9.0",
202
202
  "@ai-sdk/openai": "^3.0.41",
203
- "@anthropic-ai/claude-agent-sdk": "0.3.303",
203
+ "@anthropic-ai/claude-agent-sdk": "0.3.304",
204
204
  "@anthropic-ai/sdk": "^0.135.0",
205
205
  "@asteasolutions/zod-to-openapi": "^8.0.0",
206
206
  "@aws-sdk/client-bedrock": "3.1048.0",
package/src/be/db.ts CHANGED
@@ -813,6 +813,9 @@ export async function getSlackOutcomeMessage(taskId: string): Promise<SlackMessa
813
813
  * subsequent re-defers to the latest wake, keeping the original card open.
814
814
  * `deferredAt` (not the `deferred` tag) identifies the deferring task,
815
815
  * because the wake-up task inherits the tag.
816
+ *
817
+ * CROSS JOIN and `+wake.taskType` pin the join order to the small chain. Without
818
+ * them the planner drives the outer join from every terminal task (~1s at 150k tasks).
816
819
  */
817
820
  export async function getResolvableDeferralOutcomes(
818
821
  limit = 50,
@@ -826,13 +829,13 @@ export async function getResolvableDeferralOutcomes(
826
829
  AND card.ts NOT LIKE 'pending:%'
827
830
  UNION
828
831
  SELECT chain.card_id, wake.id FROM chain
829
- JOIN agent_tasks parent ON parent.id = chain.task_id AND parent.deferredAt IS NOT NULL
830
- JOIN agent_tasks wake ON wake.parentTaskId = parent.id AND wake.taskType = 'deferred'
832
+ CROSS JOIN agent_tasks parent ON parent.id = chain.task_id AND parent.deferredAt IS NOT NULL
833
+ CROSS JOIN agent_tasks wake ON wake.parentTaskId = parent.id AND +wake.taskType = 'deferred'
831
834
  )
832
835
  SELECT card.*, wake.id AS wake_task_id
833
836
  FROM chain
834
- JOIN slack_messages card ON card.id = chain.card_id
835
- JOIN agent_tasks wake ON wake.id = chain.task_id AND wake.id != card.task_id
837
+ CROSS JOIN slack_messages card ON card.id = chain.card_id
838
+ CROSS JOIN agent_tasks wake ON wake.id = chain.task_id AND wake.id != card.task_id
836
839
  WHERE card.kind = 'outcome'
837
840
  AND card.finalized_at IS NOT NULL
838
841
  AND card.deferral_resolved_at IS NULL
@@ -0,0 +1,5 @@
1
+ -- getSlackTasksMissingTree runs on every Slack watcher tick. Without this index it walks
2
+ -- idx_agent_tasks_last_updated across every task to find the few Slack ones.
3
+ CREATE INDEX IF NOT EXISTS idx_agent_tasks_slack_last_updated
4
+ ON agent_tasks(lastUpdatedAt DESC)
5
+ WHERE source = 'slack' AND slackChannelId IS NOT NULL AND slackThreadTs IS NOT NULL;
@@ -4,6 +4,7 @@ import { findUserByExternalId } from "../be/users";
4
4
  import { resolveTemplate } from "../prompts/resolver";
5
5
  import { githubContextKey } from "../tasks/context-key";
6
6
  import { createTaskWithSiblingAwareness } from "../tasks/sibling-awareness";
7
+ import { parseEnvFlag } from "../utils/env-flag";
7
8
  import { getInstallationToken } from "./app";
8
9
  import {
9
10
  detectMention,
@@ -50,12 +51,12 @@ function buildGithubContextKey(
50
51
 
51
52
  /**
52
53
  * Runtime-config guards for cancel-on-unassign and cancel-on-review-request-removed.
53
- * Absent key / any value other than "false" → true (cancel, current behavior).
54
- * Value "false" → false (skip cancel, leave task untouched).
54
+ * Values "false" / "0" (case-insensitive, trimmed) leave the task untouched.
55
+ * Absent, empty, or unrecognized values default to true (cancel).
55
56
  */
56
57
  async function cancelFlagEnabled(key: string): Promise<boolean> {
57
58
  const row = (await getSwarmConfigs({ scope: "global", key }))[0];
58
- return row?.value !== "false";
59
+ return parseEnvFlag(row?.value, true);
59
60
  }
60
61
  const cancelOnUnassignEnabled = () => cancelFlagEnabled("github.cancelOnUnassign");
61
62
  const cancelOnReviewRequestRemovedEnabled = () =>
@@ -1186,9 +1187,9 @@ const PR_REVIEW_ACTION_ITEMS_QUERY = `query($owner: String!, $name: String!, $nu
1186
1187
  }
1187
1188
  }`;
1188
1189
 
1189
- /** Approved reviews with nothing to act on skip the lead task unless this is "false". */
1190
+ /** Approved reviews with nothing to act on skip the lead task by default. */
1190
1191
  function skipNoopApprovalsEnabled(): boolean {
1191
- return process.env.GITHUB_SKIP_NOOP_APPROVALS?.trim().toLowerCase() !== "false";
1192
+ return parseEnvFlag(process.env.GITHUB_SKIP_NOOP_APPROVALS, true);
1192
1193
  }
1193
1194
 
1194
1195
  /**
package/src/hooks/hook.ts CHANGED
@@ -21,6 +21,7 @@ import {
21
21
  import type { Agent } from "../types";
22
22
  import { getApiKey } from "../utils/api-key";
23
23
  import { getMcpBaseUrl, MAX_PROFILE_FILE_LENGTH } from "../utils/constants";
24
+ import { isSessionSummarySkipped } from "../utils/env-flag";
24
25
  import { summarizeSession as runSummarize } from "../utils/internal-ai";
25
26
  import { scrubSecrets } from "../utils/secret-scrubber";
26
27
  import { guardGhPrBody } from "./pr-body-guard";
@@ -315,7 +316,7 @@ export async function runStopHookSessionSummary(
315
316
  deps: RunStopHookSessionSummaryDeps = {},
316
317
  ): Promise<void> {
317
318
  const env = opts.env ?? process.env;
318
- if (env.SKIP_SESSION_SUMMARY) {
319
+ if (isSessionSummarySkipped(env)) {
319
320
  console.debug("session_summary skipped (claude): SKIP_SESSION_SUMMARY is set");
320
321
  return;
321
322
  }
@@ -44,7 +44,7 @@ import type {
44
44
  * default; the image installs exactly this version and the per-task settings
45
45
  * set `amp.updates.mode: "disabled"`. Bump it deliberately, with a live run.
46
46
  */
47
- export const AMP_PACKAGE = "@ampcode/cli@0.0.1792411243-gb8cffc";
47
+ export const AMP_PACKAGE = "@ampcode/cli@0.0.1792470027-g8c393d";
48
48
 
49
49
  /** MCP server name. Amp exposes its tools as `agent_swarm` / `store_progress` (dashes become underscores). */
50
50
  const AMP_MCP_SERVER_NAME = "agent-swarm";