@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
@@ -2,9 +2,9 @@ import {
2
2
  PRICING_REFRESH_INTERVAL_MS,
3
3
  refreshPricingFromModelsDev,
4
4
  startPricingRefreshLoop
5
- } from "./cli-cm4z7w7w.js";
6
- import"./cli-1857msnd.js";
7
- import"./cli-qxn3g3yx.js";
5
+ } from "./cli-z6e8eqrm.js";
6
+ import"./cli-tee8w7tq.js";
7
+ import"./cli-tmn19cdz.js";
8
8
  import"./cli-d2epf5ae.js";
9
9
  import"./cli-87zrjxdb.js";
10
10
  import"./cli-a1rrkrb4.js";
@@ -12,7 +12,7 @@ import"./cli-qt5bt3vk.js";
12
12
  import"./cli-nanaxrz6.js";
13
13
  import"./cli-s35981d0.js";
14
14
  import"./cli-mkq1rk7b.js";
15
- import"./cli-4dakdn30.js";
15
+ import"./cli-4r4jkqep.js";
16
16
  import"./cli-pqv5gvyf.js";
17
17
  import"./cli-pq2ee5ja.js";
18
18
  export {
@@ -5,7 +5,7 @@ import {
5
5
  getDb,
6
6
  getDbClient,
7
7
  init_db
8
- } from "./cli-qxn3g3yx.js";
8
+ } from "./cli-tmn19cdz.js";
9
9
  import"./cli-d2epf5ae.js";
10
10
  import"./cli-87zrjxdb.js";
11
11
  import"./cli-a1rrkrb4.js";
@@ -13,7 +13,7 @@ import"./cli-qt5bt3vk.js";
13
13
  import"./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
 
@@ -7,9 +7,9 @@ import {
7
7
  getUserGrant,
8
8
  listUserRoles,
9
9
  runRbacCliCommand
10
- } from "./cli-cv2vjg2y.js";
10
+ } from "./cli-3y553gws.js";
11
11
  import"./cli-s9yg23fg.js";
12
- import"./cli-qxn3g3yx.js";
12
+ import"./cli-tmn19cdz.js";
13
13
  import"./cli-d2epf5ae.js";
14
14
  import"./cli-87zrjxdb.js";
15
15
  import"./cli-a1rrkrb4.js";
@@ -17,7 +17,7 @@ import"./cli-qt5bt3vk.js";
17
17
  import"./cli-nanaxrz6.js";
18
18
  import"./cli-s35981d0.js";
19
19
  import"./cli-mkq1rk7b.js";
20
- import"./cli-4dakdn30.js";
20
+ import"./cli-4r4jkqep.js";
21
21
  import"./cli-pqv5gvyf.js";
22
22
  import"./cli-pq2ee5ja.js";
23
23
  export {
@@ -7,11 +7,11 @@ import {
7
7
  processSlackRenderV2,
8
8
  renderThreadTree,
9
9
  streamOutcomeCard
10
- } from "./cli-j3xnd5b4.js";
10
+ } from "./cli-d5ygfv18.js";
11
11
  import"./cli-qf9kpsve.js";
12
12
  import"./cli-g2p9bd1z.js";
13
13
  import"./cli-5tnr64pm.js";
14
- import"./cli-qxn3g3yx.js";
14
+ import"./cli-tmn19cdz.js";
15
15
  import"./cli-d2epf5ae.js";
16
16
  import"./cli-87zrjxdb.js";
17
17
  import"./cli-a1rrkrb4.js";
@@ -19,7 +19,7 @@ import"./cli-qt5bt3vk.js";
19
19
  import"./cli-nanaxrz6.js";
20
20
  import"./cli-s35981d0.js";
21
21
  import"./cli-mkq1rk7b.js";
22
- import"./cli-4dakdn30.js";
22
+ import"./cli-4r4jkqep.js";
23
23
  import"./cli-pqv5gvyf.js";
24
24
  import"./cli-qntkxysp.js";
25
25
  import"./cli-497b685t.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  buildModelsDevSeedRows,
3
3
  seedPricingFromModelsDev
4
- } from "./cli-1857msnd.js";
5
- import"./cli-qxn3g3yx.js";
4
+ } from "./cli-tee8w7tq.js";
5
+ import"./cli-tmn19cdz.js";
6
6
  import"./cli-d2epf5ae.js";
7
7
  import"./cli-87zrjxdb.js";
8
8
  import"./cli-a1rrkrb4.js";
@@ -10,7 +10,7 @@ import"./cli-qt5bt3vk.js";
10
10
  import"./cli-nanaxrz6.js";
11
11
  import"./cli-s35981d0.js";
12
12
  import"./cli-mkq1rk7b.js";
13
- import"./cli-4dakdn30.js";
13
+ import"./cli-4r4jkqep.js";
14
14
  import"./cli-pqv5gvyf.js";
15
15
  import"./cli-pq2ee5ja.js";
16
16
  export {
@@ -4,14 +4,14 @@ import {
4
4
  createDefaultMcpJson,
5
5
  createDefaultSettingsLocal,
6
6
  createHooksConfig
7
- } from "./cli-cf6vq6qa.js";
7
+ } from "./cli-mgef08pc.js";
8
8
  import {
9
9
  require_jsx_dev_runtime
10
10
  } from "./cli-6t2fgxpv.js";
11
11
  import {
12
12
  getApiKey
13
13
  } from "./cli-f14fvzag.js";
14
- import"./cli-4dakdn30.js";
14
+ import"./cli-4r4jkqep.js";
15
15
  import {
16
16
  Box_default,
17
17
  Spinner,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  runAgent
3
- } from "./cli-jfrh963q.js";
3
+ } from "./cli-8v57p983.js";
4
4
  import"./cli-tdtmw1r5.js";
5
- import"./cli-6mmwmy45.js";
5
+ import"./cli-j7qp8gtf.js";
6
6
  import"./cli-0crn5kaz.js";
7
7
  import"./cli-hsxj0yar.js";
8
8
  import"./cli-9b13ggd1.js";
@@ -10,10 +10,10 @@ import"./cli-06ghj6pe.js";
10
10
  import"./cli-f3s9dry0.js";
11
11
  import"./cli-r94z9p1z.js";
12
12
  import"./cli-f64gdfxc.js";
13
- import"./cli-8f4h27gm.js";
14
- import"./cli-1z01xdqh.js";
13
+ import"./cli-edwrx42s.js";
14
+ import"./cli-6gwgzdgw.js";
15
15
  import"./cli-a3pkfpqs.js";
16
- import"./cli-a1zrc2g6.js";
16
+ import"./cli-qhfkxrpg.js";
17
17
  import"./cli-hp1n6zq3.js";
18
18
  import"./cli-tng3131n.js";
19
19
  import"./cli-zm7njwzd.js";
@@ -21,41 +21,41 @@ import"./cli-cw70hymf.js";
21
21
  import"./cli-v1mwc5v2.js";
22
22
  import {
23
23
  getEnabledCapabilities
24
- } from "./cli-3f0tnh34.js";
24
+ } from "./cli-ads0hfw2.js";
25
25
  import"./cli-mnm7w46e.js";
26
26
  import"./cli-jepmgn7r.js";
27
27
  import"./cli-8p37s71j.js";
28
28
  import"./cli-e7d20cty.js";
29
29
  import"./cli-8whqavk2.js";
30
- import"./cli-6290n4yz.js";
30
+ import"./cli-5bnz1t86.js";
31
31
  import"./cli-qh4sqfws.js";
32
- import"./cli-r5vwg1ma.js";
33
- import"./cli-cm4z7w7w.js";
34
- import"./cli-1857msnd.js";
35
- import"./cli-cv2vjg2y.js";
32
+ import"./cli-fpjmcbhz.js";
33
+ import"./cli-z6e8eqrm.js";
34
+ import"./cli-tee8w7tq.js";
35
+ import"./cli-3y553gws.js";
36
36
  import"./cli-s9yg23fg.js";
37
- import"./cli-6bz2hzvw.js";
38
- import"./cli-5a5nrq3g.js";
37
+ import"./cli-68vayryq.js";
38
+ import"./cli-jjhnma34.js";
39
39
  import"./cli-3dpj7atn.js";
40
- import"./cli-fmha74ga.js";
40
+ import"./cli-bnq8h7ea.js";
41
41
  import"./cli-epan13p1.js";
42
42
  import"./cli-f14fvzag.js";
43
- import"./cli-0jhyxtdj.js";
44
- import"./cli-4rdjdddh.js";
43
+ import"./cli-qckgdqmr.js";
44
+ import"./cli-hz5hp6wn.js";
45
45
  import"./cli-dr5tcz68.js";
46
46
  import"./cli-vsap7a8d.js";
47
- import"./cli-ey09krp2.js";
47
+ import"./cli-m3z53bed.js";
48
48
  import"./cli-fad8m16k.js";
49
49
  import"./cli-fhsz3twr.js";
50
50
  import"./cli-whrvct19.js";
51
- import"./cli-1dfatkzm.js";
52
- import"./cli-yw2z5kj9.js";
53
- import"./cli-w0ygcv43.js";
54
- import"./cli-j3xnd5b4.js";
51
+ import"./cli-84vrhesc.js";
52
+ import"./cli-spf767vc.js";
53
+ import"./cli-gpdtxzar.js";
54
+ import"./cli-d5ygfv18.js";
55
55
  import"./cli-qf9kpsve.js";
56
56
  import"./cli-g2p9bd1z.js";
57
57
  import"./cli-5tnr64pm.js";
58
- import"./cli-qxn3g3yx.js";
58
+ import"./cli-tmn19cdz.js";
59
59
  import"./cli-d2epf5ae.js";
60
60
  import"./cli-87zrjxdb.js";
61
61
  import"./cli-a1rrkrb4.js";
@@ -63,7 +63,7 @@ import"./cli-qt5bt3vk.js";
63
63
  import"./cli-nanaxrz6.js";
64
64
  import"./cli-s35981d0.js";
65
65
  import"./cli-mkq1rk7b.js";
66
- import"./cli-4dakdn30.js";
66
+ import"./cli-4r4jkqep.js";
67
67
  import"./cli-pqv5gvyf.js";
68
68
  import"./cli-qntkxysp.js";
69
69
  import"./cli-95m51ztz.js";
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": "1.135.2",
5
+ "version": "1.136.0",
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": [
@@ -142,6 +142,7 @@
142
142
  "status": {
143
143
  "type": "string",
144
144
  "enum": [
145
+ "draft",
145
146
  "backlog",
146
147
  "unassigned",
147
148
  "offered",
@@ -8085,6 +8086,7 @@
8085
8086
  "status": {
8086
8087
  "type": "string",
8087
8088
  "enum": [
8089
+ "draft",
8088
8090
  "backlog",
8089
8091
  "unassigned",
8090
8092
  "offered",
@@ -31568,6 +31570,7 @@
31568
31570
  "status": {
31569
31571
  "type": "string",
31570
31572
  "enum": [
31573
+ "draft",
31571
31574
  "backlog",
31572
31575
  "unassigned",
31573
31576
  "offered",
@@ -32692,6 +32695,7 @@
32692
32695
  "status": {
32693
32696
  "type": "string",
32694
32697
  "enum": [
32698
+ "draft",
32695
32699
  "backlog",
32696
32700
  "unassigned",
32697
32701
  "offered",
@@ -32843,6 +32847,7 @@
32843
32847
  "latestStatus": {
32844
32848
  "type": "string",
32845
32849
  "enum": [
32850
+ "draft",
32846
32851
  "backlog",
32847
32852
  "unassigned",
32848
32853
  "offered",
@@ -36730,6 +36735,104 @@
36730
36735
  "required": [
36731
36736
  "total"
36732
36737
  ]
36738
+ },
36739
+ "retention": {
36740
+ "type": "object",
36741
+ "properties": {
36742
+ "sessionLogs": {
36743
+ "type": "object",
36744
+ "properties": {
36745
+ "at": {
36746
+ "type": "string"
36747
+ },
36748
+ "rowsDeleted": {
36749
+ "type": "number"
36750
+ },
36751
+ "batches": {
36752
+ "type": "number"
36753
+ },
36754
+ "durationMs": {
36755
+ "type": "number"
36756
+ },
36757
+ "dryRun": {
36758
+ "type": "boolean"
36759
+ },
36760
+ "cumulativeRowsDeleted": {
36761
+ "type": "number"
36762
+ }
36763
+ },
36764
+ "required": [
36765
+ "at",
36766
+ "rowsDeleted",
36767
+ "batches",
36768
+ "durationMs",
36769
+ "dryRun",
36770
+ "cumulativeRowsDeleted"
36771
+ ]
36772
+ },
36773
+ "agentLog": {
36774
+ "type": "object",
36775
+ "properties": {
36776
+ "at": {
36777
+ "type": "string"
36778
+ },
36779
+ "rowsDeleted": {
36780
+ "type": "number"
36781
+ },
36782
+ "batches": {
36783
+ "type": "number"
36784
+ },
36785
+ "durationMs": {
36786
+ "type": "number"
36787
+ },
36788
+ "dryRun": {
36789
+ "type": "boolean"
36790
+ },
36791
+ "cumulativeRowsDeleted": {
36792
+ "type": "number"
36793
+ }
36794
+ },
36795
+ "required": [
36796
+ "at",
36797
+ "rowsDeleted",
36798
+ "batches",
36799
+ "durationMs",
36800
+ "dryRun",
36801
+ "cumulativeRowsDeleted"
36802
+ ]
36803
+ },
36804
+ "events": {
36805
+ "type": "object",
36806
+ "properties": {
36807
+ "at": {
36808
+ "type": "string"
36809
+ },
36810
+ "rowsDeleted": {
36811
+ "type": "number"
36812
+ },
36813
+ "batches": {
36814
+ "type": "number"
36815
+ },
36816
+ "durationMs": {
36817
+ "type": "number"
36818
+ },
36819
+ "dryRun": {
36820
+ "type": "boolean"
36821
+ },
36822
+ "cumulativeRowsDeleted": {
36823
+ "type": "number"
36824
+ }
36825
+ },
36826
+ "required": [
36827
+ "at",
36828
+ "rowsDeleted",
36829
+ "batches",
36830
+ "durationMs",
36831
+ "dryRun",
36832
+ "cumulativeRowsDeleted"
36833
+ ]
36834
+ }
36835
+ }
36733
36836
  }
36734
36837
  },
36735
36838
  "required": [
@@ -36738,7 +36841,8 @@
36738
36841
  "workflows",
36739
36842
  "pages",
36740
36843
  "sessions",
36741
- "skills"
36844
+ "skills",
36845
+ "retention"
36742
36846
  ]
36743
36847
  }
36744
36848
  }
@@ -37770,6 +37874,7 @@
37770
37874
  "status": {
37771
37875
  "type": "string",
37772
37876
  "enum": [
37877
+ "draft",
37773
37878
  "backlog",
37774
37879
  "unassigned",
37775
37880
  "offered",
@@ -38044,6 +38149,9 @@
38044
38149
  "xhigh",
38045
38150
  "max"
38046
38151
  ]
38152
+ },
38153
+ "draft": {
38154
+ "type": "boolean"
38047
38155
  }
38048
38156
  },
38049
38157
  "required": [
@@ -38077,6 +38185,62 @@
38077
38185
  }
38078
38186
  }
38079
38187
  },
38188
+ "/api/tasks/{id}/promote-draft": {
38189
+ "post": {
38190
+ "summary": "Promote a draft task out of the pre-dispatch draft state",
38191
+ "description": "Transitions a `draft` task (#1240 — created with attachments still uploading) to its normal dispatch-eligible status: `offered` if it was offered to an agent, `pending` if it has an owning agent (the common case — UI-composer tasks default to Lead), otherwise `unassigned`. Called by the UI composer once its attachment upload batch settles, whether every file uploaded, some failed, or all failed — a draft must never be stranded by an upload error. Idempotent: calling it on a task that already left `draft` returns the current task unchanged rather than erroring, so a retried request is safe.",
38192
+ "tags": [
38193
+ "Tasks"
38194
+ ],
38195
+ "security": [
38196
+ {
38197
+ "bearerAuth": []
38198
+ }
38199
+ ],
38200
+ "parameters": [
38201
+ {
38202
+ "schema": {
38203
+ "type": "string"
38204
+ },
38205
+ "required": true,
38206
+ "name": "id",
38207
+ "in": "path"
38208
+ }
38209
+ ],
38210
+ "responses": {
38211
+ "200": {
38212
+ "description": "Task promoted (or already out of draft)",
38213
+ "content": {
38214
+ "application/json": {
38215
+ "schema": {
38216
+ "$ref": "#/components/schemas/AgentTask"
38217
+ }
38218
+ }
38219
+ }
38220
+ },
38221
+ "403": {
38222
+ "description": "Caller does not own this task",
38223
+ "content": {
38224
+ "application/json": {
38225
+ "schema": {
38226
+ "$ref": "#/components/schemas/ErrorResponse"
38227
+ }
38228
+ }
38229
+ }
38230
+ },
38231
+ "404": {
38232
+ "description": "Task not found",
38233
+ "content": {
38234
+ "application/json": {
38235
+ "schema": {
38236
+ "$ref": "#/components/schemas/ErrorResponse"
38237
+ }
38238
+ }
38239
+ }
38240
+ }
38241
+ }
38242
+ }
38243
+ },
38080
38244
  "/api/tasks/{id}/session": {
38081
38245
  "put": {
38082
38246
  "summary": "Update provider session ID and harness metadata for a task",
@@ -39405,6 +39569,7 @@
39405
39569
  "resumeTaskStatus": {
39406
39570
  "type": "string",
39407
39571
  "enum": [
39572
+ "draft",
39408
39573
  "backlog",
39409
39574
  "unassigned",
39410
39575
  "offered",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@desplega.ai/agent-swarm",
3
- "version": "1.135.2",
3
+ "version": "1.136.0",
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",
@@ -171,14 +171,14 @@
171
171
  "@aws-sdk/client-bedrock": "3.1048.0",
172
172
  "@desplega.ai/business-use": "^0.4.2",
173
173
  "@desplega.ai/localtunnel": "^2.2.0",
174
- "@earendil-works/pi-agent-core": "^0.84.3",
175
- "@earendil-works/pi-ai": "^0.84.3",
176
- "@earendil-works/pi-coding-agent": "^0.84.3",
174
+ "@earendil-works/pi-agent-core": "^0.84.4",
175
+ "@earendil-works/pi-ai": "^0.84.4",
176
+ "@earendil-works/pi-coding-agent": "^0.84.4",
177
177
  "@inkjs/ui": "^2.0.0",
178
178
  "@linear/sdk": "^77.0.0",
179
179
  "@modelcontextprotocol/sdk": "^1.25.1",
180
- "@openai/codex-sdk": "^0.149.1",
181
- "@opencode-ai/sdk": "^1.18.23",
180
+ "@openai/codex-sdk": "^0.151.0",
181
+ "@opencode-ai/sdk": "^1.18.25",
182
182
  "@openfort/openfort-node": "^0.9.1",
183
183
  "@opentelemetry/api": "^1.9.1",
184
184
  "@opentelemetry/exporter-metrics-otlp-http": "^0.218.0",