@desplega.ai/agent-swarm 1.131.1 → 1.134.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 (360) hide show
  1. package/README.md +3 -3
  2. package/dist/{actions-jgcy477k.js → actions-7kast243.js} +20 -18
  3. package/dist/{anthropic-messages-rjmd2e7n.js → anthropic-messages-706yad38.js} +33 -17
  4. package/dist/app-0g84t8wf.js +28 -0
  5. package/dist/{artifact-jysj3wrg.js → artifact-dje5ke4h.js} +37 -131
  6. package/dist/{assistant-f2vkk1hj.js → assistant-ac4htcky.js} +25 -22
  7. package/dist/{azure-openai-responses-c0yjmbfd.js → azure-openai-responses-be59fbsz.js} +13 -13
  8. package/dist/{boot-reembed-q7mp8hcr.js → boot-reembed-b1rcqn85.js} +13 -11
  9. package/dist/{boot-reembed-xmw8wcx6.js → boot-reembed-kw2541c4.js} +14 -12
  10. package/dist/{boot-scrub-logs-dsqrv79n.js → boot-scrub-logs-ja29t92g.js} +11 -9
  11. package/dist/{claude-adapter-q6x7yspx.js → claude-adapter-5cg1fv8s.js} +33 -29
  12. package/dist/{claude-managed-adapter-wsg37bt8.js → claude-managed-adapter-9z9sdytx.js} +9 -9
  13. package/dist/{claude-managed-setup-52z4mq9w.js → claude-managed-setup-3zqp51cr.js} +5 -5
  14. package/dist/{claude-1ex232fc.js → claude-wqn3dtca.js} +1 -1
  15. package/dist/{cli-4wgngmwv.js → cli-00w4hbam.js} +1 -1
  16. package/dist/{cli-er3a4bb0.js → cli-15429qdw.js} +6 -1
  17. package/dist/{cli-e5dabkx0.js → cli-1cwhyvta.js} +4 -4
  18. package/dist/{cli-zsspvvm2.js → cli-1ybr6vw2.js} +237 -237
  19. package/dist/{cli-xpxde7rm.js → cli-2wv4kj0e.js} +60 -31
  20. package/dist/cli-34w2584r.js +530 -0
  21. package/dist/{cli-se2p6rkb.js → cli-38taxznr.js} +6 -6
  22. package/dist/{cli-9sbhdpvb.js → cli-3cgfyfzm.js} +14 -14
  23. package/dist/{cli-5n6e5yfn.js → cli-3zmdzfjf.js} +79 -74
  24. package/dist/{cli-3ty0t082.js → cli-43x36mty.js} +197 -8
  25. package/dist/{cli-ycrnynpw.js → cli-480nehnh.js} +29 -22
  26. package/dist/{cli-0258203w.js → cli-492e7ap5.js} +140 -20
  27. package/dist/{cli-3fj60etf.js → cli-497b685t.js} +3 -3
  28. package/dist/{cli-pxfxkx5m.js → cli-4bap00k0.js} +1 -1
  29. package/dist/{cli-w2wxd56v.js → cli-4bc8vmhm.js} +848 -770
  30. package/dist/{cli-aca5pz9f.js → cli-589599p9.js} +1 -1
  31. package/dist/{cli-t930g0xh.js → cli-5tnr64pm.js} +1 -1
  32. package/dist/{cli-jxg3s9ey.js → cli-65d93ves.js} +7 -7
  33. package/dist/{cli-6dpytdr2.js → cli-6x363v1z.js} +2 -2
  34. package/dist/{cli-dxak0fqd.js → cli-787ph852.js} +11 -11
  35. package/dist/{cli-793jvbsh.js → cli-7bv8nckk.js} +16 -11
  36. package/dist/{cli-zyxs93y9.js → cli-7jcc9y1r.js} +3 -3
  37. package/dist/{cli-f1am9szv.js → cli-87t2gstf.js} +1 -1
  38. package/dist/{cli-9aryf9tv.js → cli-95m51ztz.js} +1 -1
  39. package/dist/{cli-4w4fmq9x.js → cli-9w49enmh.js} +2 -2
  40. package/dist/{cli-v69vk5h0.js → cli-9y5b02vr.js} +13 -13
  41. package/dist/{cli-x23me2mg.js → cli-a1rrkrb4.js} +1 -1
  42. package/dist/{cli-psrqtw2m.js → cli-a3pkfpqs.js} +2 -2
  43. package/dist/{cli-h0rgxd24.js → cli-a4ajmfvp.js} +6 -6
  44. package/dist/{cli-ygrbmjja.js → cli-aw8bb6sf.js} +6 -6
  45. package/dist/{cli-g74vpjp2.js → cli-brm3et47.js} +55 -22
  46. package/dist/{cli-czkae1fp.js → cli-c5ddbdfj.js} +9 -9
  47. package/dist/{cli-114fvtmj.js → cli-c79a9zrc.js} +1 -1
  48. package/dist/{cli-49n9f49x.js → cli-dx3dz0ms.js} +3 -3
  49. package/dist/{cli-6dp3ydxa.js → cli-e07exmsb.js} +18 -14
  50. package/dist/cli-et1bbwqf.js +13 -0
  51. package/dist/{cli-yazx6hap.js → cli-f3s9dry0.js} +14 -14
  52. package/dist/{cli-t8d349cy.js → cli-f4wj0s3m.js} +3 -3
  53. package/dist/{cli-d6n0thxw.js → cli-f64gdfxc.js} +1 -1
  54. package/dist/{cli-pwfsqc2x.js → cli-fyd58xgb.js} +55 -55
  55. package/dist/{cli-7dm2zqy2.js → cli-g0j14czv.js} +2 -2
  56. package/dist/{cli-b0p7rfnd.js → cli-g2p9bd1z.js} +14 -14
  57. package/dist/{cli-z905tvmm.js → cli-g814jbst.js} +2 -2
  58. package/dist/{cli-5dsbcjjw.js → cli-ghexzd2d.js} +970 -970
  59. package/dist/{cli-jvv0g8bh.js → cli-gpt9kf01.js} +15 -15
  60. package/dist/{cli-rgrfzg8z.js → cli-grt6qv91.js} +380 -380
  61. package/dist/{cli-wz9115x0.js → cli-gtafvdy0.js} +8 -8
  62. package/dist/{cli-q5dzzak0.js → cli-gy07xk4s.js} +2 -2
  63. package/dist/{cli-sy7jk3tx.js → cli-h0djenzm.js} +2 -2
  64. package/dist/{cli-nrkkknat.js → cli-h37gbjbf.js} +2 -281
  65. package/dist/{cli-jevgrb4w.js → cli-h39xxnq6.js} +1200 -491
  66. package/dist/{cli-gz9sbyk3.js → cli-jepmgn7r.js} +1 -1
  67. package/dist/{cli-ccf9vy7q.js → cli-jmvk6et8.js} +7 -7
  68. package/dist/{cli-2rk0cx7s.js → cli-jxj92gkt.js} +51 -41
  69. package/dist/{cli-bqw0mt1n.js → cli-k46t4664.js} +18 -3
  70. package/dist/{cli-50vbt00w.js → cli-m07313tr.js} +1153 -696
  71. package/dist/{cli-4j2mrzag.js → cli-mkq1rk7b.js} +1 -1
  72. package/dist/{cli-1z7048dy.js → cli-mnm7w46e.js} +1 -1
  73. package/dist/{cli-kd1ck4rx.js → cli-mp9sg4cg.js} +14 -8
  74. package/dist/{cli-jbcva0xj.js → cli-mrammd8c.js} +60 -35
  75. package/dist/cli-nanaxrz6.js +27 -0
  76. package/dist/{cli-p9swy5t3.js → cli-pq2ee5ja.js} +8 -6
  77. package/dist/{cli-2wadx7p2.js → cli-pt43pdp1.js} +2 -2
  78. package/dist/{cli-7sgrxg9a.js → cli-q6d0vvey.js} +4 -4
  79. package/dist/{cli-k9qkf1hw.js → cli-qf9kpsve.js} +9 -9
  80. package/dist/cli-qh4sqfws.js +15 -0
  81. package/dist/{cli-e15jhafb.js → cli-qntkxysp.js} +14 -14
  82. package/dist/{cli-sajgpkqg.js → cli-qs9hhsvb.js} +1723 -325
  83. package/dist/{cli-z2zcxes1.js → cli-qt5bt3vk.js} +1 -1
  84. package/dist/{cli-wx82tw1k.js → cli-qtekrty1.js} +3 -3
  85. package/dist/{cli-g1re8r05.js → cli-rh6f3s9n.js} +3 -3
  86. package/dist/{cli-n0krnc6d.js → cli-rzhcrw2p.js} +2 -2
  87. package/dist/{cli-gecy3z2s.js → cli-snw62ze5.js} +4 -4
  88. package/dist/{cli-n6h8qt8n.js → cli-snz3p4yf.js} +15 -10
  89. package/dist/{cli-r6kqqbj0.js → cli-tkf8n6cw.js} +11 -11
  90. package/dist/{cli-4rkfg1wx.js → cli-tkrr24mz.js} +14 -9
  91. package/dist/{cli-9dr5qzc0.js → cli-tv9f1kyb.js} +54 -43
  92. package/dist/{cli-gm9cbhbq.js → cli-vtz6yj3v.js} +28 -9
  93. package/dist/{cli-2f07m0xr.js → cli-wf86d5t7.js} +1 -1
  94. package/dist/{cli-7zd05xb4.js → cli-whrvct19.js} +45 -45
  95. package/dist/{cli-ap1czx8f.js → cli-wrrea8xm.js} +3 -3
  96. package/dist/{cli-57khth04.js → cli-xmyqv00z.js} +120 -4
  97. package/dist/{cli-cwy5hqbq.js → cli-yjmk7tzc.js} +1 -1
  98. package/dist/{cli-6pcz9h15.js → cli-zykjrwcx.js} +180 -394
  99. package/dist/cli.js +45 -45
  100. package/dist/{codex-adapter-htjkn22b.js → codex-adapter-hsq6mz3m.js} +21 -19
  101. package/dist/{codex-hook-hq54t9ft.js → codex-hook-8c500gq8.js} +8 -7
  102. package/dist/{codex-login-z6yhbkmk.js → codex-login-x7603481.js} +3 -3
  103. package/dist/{codex-session-runner-wjfc7smz.js → codex-session-runner-c1x3x143.js} +15 -13
  104. package/dist/{commands-xhrfwqsk.js → commands-rwtddtst.js} +11 -9
  105. package/dist/{db-anvwb22f.js → db-j2b355vz.js} +458 -444
  106. package/dist/{devin-adapter-v1sarqtw.js → devin-adapter-8qmhqpy3.js} +3 -3
  107. package/dist/{devtools-2y1r7yqk.js → devtools-j2rnj8w7.js} +4 -4
  108. package/dist/{e2b-jdkwemv2.js → e2b-znpx78eg.js} +16 -16
  109. package/dist/{es5-vjgtkgp6.js → es5-fmqrjzy3.js} +2 -2
  110. package/dist/{event-bus-axn823e9.js → event-bus-n8sb35pw.js} +4 -4
  111. package/dist/{getMachineId-bsd-6tc9wxdj.js → getMachineId-bsd-wpzbhkm6.js} +4 -4
  112. package/dist/{getMachineId-darwin-sjt9sgnc.js → getMachineId-darwin-45zabjy0.js} +4 -4
  113. package/dist/{getMachineId-linux-v5n18y9p.js → getMachineId-linux-warnp5pd.js} +3 -3
  114. package/dist/{getMachineId-unsupported-yrjyqw3d.js → getMachineId-unsupported-5spent2a.js} +3 -3
  115. package/dist/{getMachineId-win-w3r8063c.js → getMachineId-win-v4bvcw7a.js} +4 -4
  116. package/dist/{google-generative-ai-hysrd8qx.js → google-generative-ai-b0wzss55.js} +17 -14
  117. package/dist/{google-vertex-p5arrga0.js → google-vertex-e8q4dpya.js} +18 -15
  118. package/dist/{handlers-b9kbc621.js → handlers-hchgrxkh.js} +32 -29
  119. package/dist/{hook-xkvn6c5h.js → hook-p49egqc0.js} +66 -52
  120. package/dist/hook-spb00w76.js +34 -0
  121. package/dist/{http-9xh6ta4r.js → http-nh14kkms.js} +663 -181
  122. package/dist/index-1qthq7vc.js +6 -0
  123. package/dist/{index-0g68f0p6.js → index-20xqmn3v.js} +3 -3
  124. package/dist/{index-vdkr5z2w.js → index-3e03k6e4.js} +114 -114
  125. package/dist/{index-ywds4812.js → index-4cbyhq2g.js} +43 -41
  126. package/dist/index-67pzqfrb.js +36 -0
  127. package/dist/{index-bccrkdkn.js → index-7m8yxkw5.js} +16 -16
  128. package/dist/{index-eaxyqcmj.js → index-dvsk64sm.js} +163 -83
  129. package/dist/{index-dqkpnmqm.js → index-e19s2m8k.js} +18 -18
  130. package/dist/{index-j30k5zxn.js → index-emvxcy98.js} +16 -16
  131. package/dist/{index-7ndw6ecy.js → index-gqnmr60d.js} +9 -9
  132. package/dist/{index-9znhar3x.js → index-j02xvjtd.js} +184 -185
  133. package/dist/{index-1s2442yw.js → index-ns5kksc1.js} +7 -7
  134. package/dist/{index-dpy2hth8.js → index-pdxc8kfh.js} +71 -71
  135. package/dist/{index-z1m7pw0v.js → index-ptcqm8bc.js} +107 -107
  136. package/dist/{index-070v4eyb.js → index-pyp7rexm.js} +5 -6
  137. package/dist/{index-86znjz1p.js → index-shne41sd.js} +13 -13
  138. package/dist/{index-2qn2qndv.js → index-t36q2v4t.js} +183 -183
  139. package/dist/index-tcnvv8w6.js +7 -0
  140. package/dist/index-w91qbfv1.js +7 -0
  141. package/dist/{index-fzc0mwvj.js → index-yqweff5n.js} +32 -32
  142. package/dist/index-yrfphye1.js +39 -0
  143. package/dist/{keepalive-vc7s2aa6.js → keepalive-9k51nqhc.js} +21 -15
  144. package/dist/lead-2xq3dxbz.js +88 -0
  145. package/dist/maintenance-0c0g6nym.js +28 -0
  146. package/dist/mistral-conversations-2njwdwhj.js +717 -0
  147. package/dist/{multipart-parser-qaktc7p8.js → multipart-parser-6gftesw0.js} +2 -2
  148. package/dist/{oauth-refresh-sweep-yecgjpk4.js → oauth-refresh-sweep-273a64r2.js} +14 -12
  149. package/dist/{onboard-xj0f73f9.js → onboard-tsv9wwhz.js} +12 -12
  150. package/dist/{openai-codex-responses-5g27pd6f.js → openai-codex-responses-kt84eq86.js} +26 -26
  151. package/dist/{openai-completions-3vkmfz2a.js → openai-completions-mrypq7qp.js} +17 -16
  152. package/dist/{openai-responses-dg4t7j7a.js → openai-responses-qhrk21ez.js} +20 -17
  153. package/dist/{opencode-adapter-1gm38aba.js → opencode-adapter-rar9676j.js} +13 -11
  154. package/dist/{openrouter-images-g3gm8931.js → openrouter-images-684fysx9.js} +5 -5
  155. package/dist/{otel-impl-nxg0n0b3.js → otel-impl-wp1mfzd2.js} +752 -537
  156. package/dist/{photon_rs-ky7dj5qw.js → photon_rs-8dwt2pzy.js} +581 -581
  157. package/dist/{pi-messages-tqj8q6b9.js → pi-messages-txp9f97r.js} +7 -7
  158. package/dist/{pi-mono-adapter-4g5kby31.js → pi-mono-adapter-yz47kk8e.js} +1910 -1180
  159. package/dist/pricing-refresh-jw1yw2fn.js +22 -0
  160. package/dist/rbac-roles-dg964c8p.js +32 -0
  161. package/dist/{rbac-roles-1hcxdtg7.js → rbac-roles-p53cg5cv.js} +19 -17
  162. package/dist/{registry-02cy9z5z.js → registry-mh12y17v.js} +4 -4
  163. package/dist/render-v2-56vn2rk9.js +36 -0
  164. package/dist/seed-pricing-52xx6z63.js +19 -0
  165. package/dist/{setup-46xtgq3c.js → setup-e8gp79sy.js} +7 -7
  166. package/dist/token-util-zy908s1a.js +6 -0
  167. package/dist/{token-fxkn2zf2.js → token-xg5711x5.js} +4 -4
  168. package/dist/worker-s17f1g46.js +88 -0
  169. package/dist/{x-6mg4kfpe.js → x-xkfh0w0v.js} +5 -5
  170. package/openapi.json +566 -22
  171. package/package.json +6 -6
  172. package/src/be/budget-refusal-notify.ts +14 -7
  173. package/src/be/db-queries/task-artifacts.ts +182 -0
  174. package/src/be/db.ts +834 -171
  175. package/src/be/events.ts +5 -0
  176. package/src/be/migrations/131_session_logs_created_at_index.sql +2 -0
  177. package/src/be/migrations/132_multi_runtime_instances.sql +44 -0
  178. package/src/be/migrations/133_workflow_run_trigger_type.sql +12 -0
  179. package/src/be/migrations/135_backfill_task_pull_request_attachments.sql +228 -0
  180. package/src/be/migrations/136_task_requester_provenance.sql +37 -0
  181. package/src/be/migrations/137_memory_retrieval_composite_index.sql +1 -0
  182. package/src/be/migrations/runner.ts +17 -11
  183. package/src/be/multi-runtime.ts +430 -0
  184. package/src/be/scripts/extract-schema.ts +3 -1
  185. package/src/be/scripts/typecheck.ts +6 -2
  186. package/src/be/seed-prompt-templates.ts +25 -2
  187. package/src/be/seed-skills/index.ts +7 -0
  188. package/src/be/steering.ts +1 -1
  189. package/src/be/swarm-config-guard.ts +18 -0
  190. package/src/commands/credential-wait.ts +54 -0
  191. package/src/commands/onboard/steps/core-credentials.tsx +1 -1
  192. package/src/commands/onboard/steps/custom-templates.tsx +1 -1
  193. package/src/commands/onboard/steps/harness-credentials.tsx +1 -1
  194. package/src/commands/onboard/steps/health-check.tsx +1 -1
  195. package/src/commands/onboard/steps/start.tsx +1 -1
  196. package/src/commands/profile-sync-audit.ts +56 -0
  197. package/src/commands/profile-sync.ts +287 -15
  198. package/src/commands/provider-credentials.ts +46 -19
  199. package/src/commands/runner.ts +199 -33
  200. package/src/commands/templates.ts +22 -0
  201. package/src/github/handlers.ts +55 -9
  202. package/src/heartbeat/heartbeat.ts +109 -17
  203. package/src/hooks/hook.ts +49 -33
  204. package/src/http/active-sessions.ts +11 -1
  205. package/src/http/agents.ts +261 -30
  206. package/src/http/all-routes.ts +1 -0
  207. package/src/http/config.ts +13 -2
  208. package/src/http/core.ts +102 -4
  209. package/src/http/db-query-bounded.ts +313 -0
  210. package/src/http/db-query-shared.ts +249 -0
  211. package/src/http/db-query.ts +54 -42
  212. package/src/http/events.ts +2 -0
  213. package/src/http/index.ts +23 -2
  214. package/src/http/mcp-bridge.ts +37 -3
  215. package/src/http/mcp.ts +12 -0
  216. package/src/http/memory.ts +13 -2
  217. package/src/http/openapi.ts +1 -0
  218. package/src/http/poll.ts +70 -27
  219. package/src/http/prompt-templates.ts +36 -13
  220. package/src/http/route-def.ts +43 -9
  221. package/src/http/schedules.ts +2 -2
  222. package/src/http/scripts.ts +10 -1
  223. package/src/http/session-data.ts +44 -0
  224. package/src/http/tasks.ts +2 -2
  225. package/src/http/users.ts +74 -52
  226. package/src/http/webhooks.ts +5 -2
  227. package/src/http/workflows.ts +1 -4
  228. package/src/integrations/kapso/inbound.ts +1 -1
  229. package/src/jira/outbound.ts +39 -8
  230. package/src/jira/webhook-lifecycle.ts +13 -2
  231. package/src/linear/outbound.ts +43 -10
  232. package/src/oauth/keepalive.ts +13 -2
  233. package/src/prompts/base-prompt.ts +1 -1
  234. package/src/prompts/default-drift.ts +21 -0
  235. package/src/prompts/session-templates.ts +56 -7
  236. package/src/providers/claude-adapter.ts +6 -0
  237. package/src/providers/codex-adapter.ts +6 -0
  238. package/src/providers/opencode-adapter.ts +6 -0
  239. package/src/providers/pi-mono-adapter.ts +8 -0
  240. package/src/providers/pricing-sources.md +24 -0
  241. package/src/queue-stall-alarm.ts +216 -0
  242. package/src/rbac/legacy-policy.ts +3 -0
  243. package/src/rbac/permissions.ts +12 -0
  244. package/src/scheduler/scheduler.ts +7 -0
  245. package/src/script-workflows/executor.ts +2 -1
  246. package/src/scripts-runtime/executors/native.ts +2 -1
  247. package/src/scripts-runtime/executors/types.ts +5 -0
  248. package/src/scripts-runtime/loader.ts +5 -0
  249. package/src/scripts-runtime/sdk-allowlist.ts +3 -0
  250. package/src/scripts-runtime/swarm-config.ts +8 -0
  251. package/src/scripts-runtime/swarm-sdk.ts +7 -0
  252. package/src/scripts-runtime/types/stdlib.d.ts +4 -0
  253. package/src/scripts-runtime/types/swarm-sdk.d.ts +4 -0
  254. package/src/server.ts +6 -0
  255. package/src/slack/channel-join.ts +22 -3
  256. package/src/slack/channel-lifecycle.ts +114 -0
  257. package/src/tests/budget-claim-gate.test.ts +20 -0
  258. package/src/tests/claude-adapter.test.ts +32 -0
  259. package/src/tests/codex-adapter.test.ts +30 -0
  260. package/src/tests/create-task-validation.test.ts +128 -0
  261. package/src/tests/credential-wait.test.ts +67 -1
  262. package/src/tests/db-query.test.ts +711 -2
  263. package/src/tests/heartbeat-checklist.test.ts +28 -0
  264. package/src/tests/http-api-integration.test.ts +81 -0
  265. package/src/tests/http-users.test.ts +166 -1
  266. package/src/tests/identity-field-budget.test.ts +176 -0
  267. package/src/tests/mcp-tools-user.test.ts +34 -0
  268. package/src/tests/mcp-user-route.test.ts +17 -0
  269. package/src/tests/metrics-http.test.ts +44 -0
  270. package/src/tests/migration-failure.test.ts +86 -0
  271. package/src/tests/multi-runtime-registration.test.ts +2810 -0
  272. package/src/tests/openapi-response-contract.test.ts +24 -0
  273. package/src/tests/openapi-route-headers.test.ts +83 -0
  274. package/src/tests/opencode-adapter.test.ts +40 -0
  275. package/src/tests/outbound-listener-rejection.test.ts +138 -0
  276. package/src/tests/pi-mono-adapter.test.ts +98 -0
  277. package/src/tests/preload.ts +2 -0
  278. package/src/tests/profile-sync-warning.test.ts +277 -0
  279. package/src/tests/profile-sync.test.ts +232 -6
  280. package/src/tests/prompt-template-resolver.test.ts +177 -6
  281. package/src/tests/prompt-template-session.test.ts +39 -3
  282. package/src/tests/queue-stall-alarm.test.ts +226 -0
  283. package/src/tests/rbac-charact-slack.test.ts +29 -0
  284. package/src/tests/rbac-engine.test.ts +3 -0
  285. package/src/tests/requester-comms.test.ts +32 -0
  286. package/src/tests/runner-requester-profile.test.ts +38 -0
  287. package/src/tests/schedule-target-type.test.ts +38 -0
  288. package/src/tests/script-connections.test.ts +13 -1
  289. package/src/tests/scripts-runtime-identity.test.ts +375 -0
  290. package/src/tests/scripts-runtime.test.ts +4 -3
  291. package/src/tests/sdk-allowlist.test.ts +47 -0
  292. package/src/tests/send-task-requested-by.test.ts +9 -0
  293. package/src/tests/session-costs.test.ts +506 -1
  294. package/src/tests/shutdown-error-scrubbing.test.ts +92 -0
  295. package/src/tests/slack-channel-lifecycle.test.ts +241 -0
  296. package/src/tests/slack-render-v2.test.ts +43 -0
  297. package/src/tests/steering-core.test.ts +28 -0
  298. package/src/tests/swarm-config-reserved-keys.test.ts +22 -0
  299. package/src/tests/task-artifacts.test.ts +386 -0
  300. package/src/tests/task-attachments-schema.test.ts +17 -1
  301. package/src/tests/task-completion-idempotency.test.ts +57 -0
  302. package/src/tests/task-pull-request-backfill-migration.test.ts +321 -0
  303. package/src/tests/tool-annotations.test.ts +4 -0
  304. package/src/tests/update-profile-api.test.ts +67 -39
  305. package/src/tests/update-profile-auth.test.ts +48 -4
  306. package/src/tests/user-attribution-migration.test.ts +54 -0
  307. package/src/tests/user-identity.test.ts +72 -0
  308. package/src/tests/workflow-async-v2.test.ts +39 -1
  309. package/src/tests/workflow-http-v2.test.ts +3 -2
  310. package/src/tests/workflow-mcp-trigger-schema.test.ts +52 -3
  311. package/src/tests/workflow-retry-v2.test.ts +45 -1
  312. package/src/tools/db-query.ts +18 -8
  313. package/src/tools/get-task-details.ts +24 -3
  314. package/src/tools/manage-user.ts +36 -3
  315. package/src/tools/poll-task.ts +93 -14
  316. package/src/tools/script-common.ts +5 -0
  317. package/src/tools/send-task.ts +1 -4
  318. package/src/tools/slack-archive-channel.ts +70 -0
  319. package/src/tools/slack-create-channel.ts +74 -0
  320. package/src/tools/slack-invite-to-channel.ts +78 -0
  321. package/src/tools/store-progress.ts +13 -2
  322. package/src/tools/swarm-config/delete-config.ts +9 -0
  323. package/src/tools/swarm-config/set-config.ts +3 -2
  324. package/src/tools/task-action.ts +30 -0
  325. package/src/tools/task-tool-ctx.ts +8 -1
  326. package/src/tools/tool-config.ts +4 -1
  327. package/src/tools/update-profile.ts +16 -21
  328. package/src/tools/utils.ts +5 -0
  329. package/src/tools/workflows/trigger-workflow.ts +7 -1
  330. package/src/types.ts +165 -1
  331. package/src/utils/github-pull-request.ts +76 -0
  332. package/src/utils/identity-field-budget.ts +73 -0
  333. package/src/utils/multi-runtime.ts +20 -0
  334. package/src/utils/requester-comms.ts +24 -0
  335. package/src/workflows/engine.ts +22 -2
  336. package/src/workflows/resume.ts +19 -11
  337. package/src/workflows/retry-poller.ts +1 -0
  338. package/src/workflows/triggers.ts +4 -0
  339. package/templates/skills/db-query-guidance/config.json +14 -0
  340. package/templates/skills/db-query-guidance/content.md +57 -0
  341. package/dist/app-5da78bd4.js +0 -26
  342. package/dist/cli-3te4jdkm.js +0 -225
  343. package/dist/cli-bmze986d.js +0 -7
  344. package/dist/cli-kh3ba2zf.js +0 -607
  345. package/dist/hook-cgk4wxmx.js +0 -31
  346. package/dist/index-25wjsdv2.js +0 -34
  347. package/dist/index-76at2ymp.js +0 -7
  348. package/dist/index-hase6zbe.js +0 -6
  349. package/dist/index-vg4snay4.js +0 -36
  350. package/dist/index-vy8edt27.js +0 -7
  351. package/dist/lead-r2yqfmx7.js +0 -85
  352. package/dist/maintenance-mw70k468.js +0 -26
  353. package/dist/mistral-conversations-81fwav0j.js +0 -30578
  354. package/dist/otel-nqa12wf3.js +0 -3149
  355. package/dist/pricing-refresh-2cn6effr.js +0 -20
  356. package/dist/rbac-roles-vynday5g.js +0 -30
  357. package/dist/render-v2-tc0bh8kk.js +0 -34
  358. package/dist/seed-pricing-8kceb43f.js +0 -17
  359. package/dist/token-util-pqyc8kng.js +0 -6
  360. package/dist/worker-qrbz6hmv.js +0 -85
@@ -234,251 +234,251 @@ import {
234
234
  uuidv7,
235
235
  xid,
236
236
  xor
237
- } from "./cli-5dsbcjjw.js";
237
+ } from "./cli-ghexzd2d.js";
238
238
  import {
239
239
  __esm,
240
240
  __export
241
- } from "./cli-p9swy5t3.js";
241
+ } from "./cli-pq2ee5ja.js";
242
242
 
243
243
  // node_modules/zod/index.js
244
244
  var exports_zod = {};
245
245
  __export(exports_zod, {
246
- z: () => exports_external,
247
- xor: () => xor,
248
- xid: () => xid,
249
- void: () => _void,
250
- uuidv7: () => uuidv7,
251
- uuidv6: () => uuidv6,
252
- uuidv4: () => uuidv4,
253
- uuid: () => uuid,
254
- util: () => exports_util,
255
- url: () => url,
256
- uppercase: () => _uppercase,
257
- unknown: () => unknown,
258
- union: () => union,
259
- undefined: () => _undefined,
260
- ulid: () => ulid,
261
- uint64: () => uint64,
262
- uint32: () => uint32,
263
- tuple: () => tuple,
264
- trim: () => _trim,
265
- treeifyError: () => treeifyError,
266
- transform: () => transform,
267
- toUpperCase: () => _toUpperCase,
268
- toLowerCase: () => _toLowerCase,
269
- toJSONSchema: () => toJSONSchema,
270
- templateLiteral: () => templateLiteral,
271
- symbol: () => symbol,
272
- superRefine: () => superRefine,
273
- success: () => success,
274
- stringbool: () => stringbool,
275
- stringFormat: () => stringFormat,
276
- string: () => string,
277
- strictObject: () => strictObject,
278
- startsWith: () => _startsWith,
279
- slugify: () => _slugify,
280
- size: () => _size,
281
- setErrorMap: () => setErrorMap,
282
- set: () => set,
283
- safeParseAsync: () => safeParseAsync,
284
- safeParse: () => safeParse,
285
- safeEncodeAsync: () => safeEncodeAsync,
286
- safeEncode: () => safeEncode,
287
- safeDecodeAsync: () => safeDecodeAsync,
288
- safeDecode: () => safeDecode,
289
- registry: () => registry,
290
- regexes: () => exports_regexes,
291
- regex: () => _regex,
292
- refine: () => refine,
293
- record: () => record,
294
- readonly: () => readonly,
295
- property: () => _property,
296
- promise: () => promise,
297
- prettifyError: () => prettifyError,
298
- preprocess: () => preprocess,
299
- prefault: () => prefault,
300
- positive: () => _positive,
301
- pipe: () => pipe,
302
- partialRecord: () => partialRecord,
303
- parseAsync: () => parseAsync,
304
- parse: () => parse,
305
- overwrite: () => _overwrite,
306
- optional: () => optional,
307
- object: () => object,
308
- number: () => number,
309
- nullish: () => nullish,
310
- nullable: () => nullable,
311
- null: () => _null,
312
- normalize: () => _normalize,
313
- nonpositive: () => _nonpositive,
314
- nonoptional: () => nonoptional,
315
- nonnegative: () => _nonnegative,
316
- never: () => never,
317
- negative: () => _negative,
318
- nativeEnum: () => nativeEnum,
319
- nanoid: () => nanoid,
320
- nan: () => nan,
321
- multipleOf: () => _multipleOf,
322
- minSize: () => _minSize,
323
- minLength: () => _minLength,
324
- mime: () => _mime,
325
- meta: () => meta,
326
- maxSize: () => _maxSize,
327
- maxLength: () => _maxLength,
328
- map: () => map,
329
- mac: () => mac,
330
- lte: () => _lte,
331
- lt: () => _lt,
332
- lowercase: () => _lowercase,
333
- looseRecord: () => looseRecord,
334
- looseObject: () => looseObject,
335
- locales: () => exports_locales,
336
- literal: () => literal,
337
- length: () => _length,
338
- lazy: () => lazy,
339
- ksuid: () => ksuid,
340
- keyof: () => keyof,
341
- jwt: () => jwt,
342
- json: () => json,
343
- iso: () => exports_iso,
344
- ipv6: () => ipv6,
345
- ipv4: () => ipv4,
346
- intersection: () => intersection,
347
- int64: () => int64,
348
- int32: () => int32,
349
- int: () => int,
350
- instanceof: () => _instanceof,
351
- includes: () => _includes,
352
- httpUrl: () => httpUrl,
353
- hostname: () => hostname,
354
- hex: () => hex,
355
- hash: () => hash,
356
- guid: () => guid,
357
- gte: () => _gte,
358
- gt: () => _gt,
359
- globalRegistry: () => globalRegistry,
360
- getErrorMap: () => getErrorMap,
361
- function: () => _function,
362
- fromJSONSchema: () => fromJSONSchema,
363
- formatError: () => formatError,
364
- float64: () => float64,
365
- float32: () => float32,
366
- flattenError: () => flattenError,
367
- file: () => file,
368
- enum: () => _enum,
369
- endsWith: () => _endsWith,
370
- encodeAsync: () => encodeAsync,
371
- encode: () => encode,
372
- emoji: () => emoji,
373
- email: () => email,
374
- e164: () => e164,
375
- discriminatedUnion: () => discriminatedUnion,
376
- describe: () => describe,
377
- default: () => zod_default,
378
- decodeAsync: () => decodeAsync,
379
- decode: () => decode,
380
- date: () => date,
381
- custom: () => custom,
382
- cuid2: () => cuid2,
383
- cuid: () => cuid,
384
- core: () => exports_core,
385
- config: () => config,
386
- coerce: () => exports_coerce,
387
- codec: () => codec,
388
- clone: () => clone,
389
- cidrv6: () => cidrv6,
390
- cidrv4: () => cidrv4,
391
- check: () => check,
392
- catch: () => _catch,
393
- boolean: () => boolean,
394
- bigint: () => bigint,
395
- base64url: () => base64url,
396
- base64: () => base64,
397
- array: () => array,
398
- any: () => any,
399
- _function: () => _function,
400
- _default: () => _default,
401
- _ZodString: () => _ZodString,
402
- ZodXor: () => ZodXor,
403
- ZodXID: () => ZodXID,
404
- ZodVoid: () => ZodVoid,
405
- ZodUnknown: () => ZodUnknown,
406
- ZodUnion: () => ZodUnion,
407
- ZodUndefined: () => ZodUndefined,
408
- ZodUUID: () => ZodUUID,
409
- ZodURL: () => ZodURL,
410
- ZodULID: () => ZodULID,
411
- ZodType: () => ZodType,
412
- ZodTuple: () => ZodTuple,
413
- ZodTransform: () => ZodTransform,
414
- ZodTemplateLiteral: () => ZodTemplateLiteral,
415
- ZodSymbol: () => ZodSymbol,
416
- ZodSuccess: () => ZodSuccess,
417
- ZodStringFormat: () => ZodStringFormat,
418
- ZodString: () => ZodString,
419
- ZodSet: () => ZodSet,
420
- ZodRecord: () => ZodRecord,
421
- ZodRealError: () => ZodRealError,
422
- ZodReadonly: () => ZodReadonly,
423
- ZodPromise: () => ZodPromise,
424
- ZodPrefault: () => ZodPrefault,
425
- ZodPipe: () => ZodPipe,
426
- ZodOptional: () => ZodOptional,
427
- ZodObject: () => ZodObject,
428
- ZodNumberFormat: () => ZodNumberFormat,
429
- ZodNumber: () => ZodNumber,
430
- ZodNullable: () => ZodNullable,
431
- ZodNull: () => ZodNull,
432
- ZodNonOptional: () => ZodNonOptional,
433
- ZodNever: () => ZodNever,
434
- ZodNanoID: () => ZodNanoID,
435
- ZodNaN: () => ZodNaN,
436
- ZodMap: () => ZodMap,
437
- ZodMAC: () => ZodMAC,
438
- ZodLiteral: () => ZodLiteral,
439
- ZodLazy: () => ZodLazy,
440
- ZodKSUID: () => ZodKSUID,
441
- ZodJWT: () => ZodJWT,
442
- ZodIssueCode: () => ZodIssueCode,
443
- ZodIntersection: () => ZodIntersection,
444
- ZodISOTime: () => ZodISOTime,
445
- ZodISODuration: () => ZodISODuration,
446
- ZodISODateTime: () => ZodISODateTime,
447
- ZodISODate: () => ZodISODate,
448
- ZodIPv6: () => ZodIPv6,
449
- ZodIPv4: () => ZodIPv4,
450
- ZodGUID: () => ZodGUID,
451
- ZodFunction: () => ZodFunction,
452
- ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind,
453
- ZodFile: () => ZodFile,
454
- ZodError: () => ZodError,
455
- ZodEnum: () => ZodEnum,
456
- ZodEmoji: () => ZodEmoji,
457
- ZodEmail: () => ZodEmail,
458
- ZodE164: () => ZodE164,
459
- ZodDiscriminatedUnion: () => ZodDiscriminatedUnion,
460
- ZodDefault: () => ZodDefault,
461
- ZodDate: () => ZodDate,
462
- ZodCustomStringFormat: () => ZodCustomStringFormat,
463
- ZodCustom: () => ZodCustom,
464
- ZodCodec: () => ZodCodec,
465
- ZodCatch: () => ZodCatch,
466
- ZodCUID2: () => ZodCUID2,
467
- ZodCUID: () => ZodCUID,
468
- ZodCIDRv6: () => ZodCIDRv6,
469
- ZodCIDRv4: () => ZodCIDRv4,
470
- ZodBoolean: () => ZodBoolean,
471
- ZodBigIntFormat: () => ZodBigIntFormat,
472
- ZodBigInt: () => ZodBigInt,
473
- ZodBase64URL: () => ZodBase64URL,
474
- ZodBase64: () => ZodBase64,
475
- ZodArray: () => ZodArray,
476
- ZodAny: () => ZodAny,
477
- TimePrecision: () => TimePrecision,
478
- NEVER: () => NEVER,
479
- $output: () => $output,
246
+ $brand: () => $brand,
480
247
  $input: () => $input,
481
- $brand: () => $brand
248
+ $output: () => $output,
249
+ NEVER: () => NEVER,
250
+ TimePrecision: () => TimePrecision,
251
+ ZodAny: () => ZodAny,
252
+ ZodArray: () => ZodArray,
253
+ ZodBase64: () => ZodBase64,
254
+ ZodBase64URL: () => ZodBase64URL,
255
+ ZodBigInt: () => ZodBigInt,
256
+ ZodBigIntFormat: () => ZodBigIntFormat,
257
+ ZodBoolean: () => ZodBoolean,
258
+ ZodCIDRv4: () => ZodCIDRv4,
259
+ ZodCIDRv6: () => ZodCIDRv6,
260
+ ZodCUID: () => ZodCUID,
261
+ ZodCUID2: () => ZodCUID2,
262
+ ZodCatch: () => ZodCatch,
263
+ ZodCodec: () => ZodCodec,
264
+ ZodCustom: () => ZodCustom,
265
+ ZodCustomStringFormat: () => ZodCustomStringFormat,
266
+ ZodDate: () => ZodDate,
267
+ ZodDefault: () => ZodDefault,
268
+ ZodDiscriminatedUnion: () => ZodDiscriminatedUnion,
269
+ ZodE164: () => ZodE164,
270
+ ZodEmail: () => ZodEmail,
271
+ ZodEmoji: () => ZodEmoji,
272
+ ZodEnum: () => ZodEnum,
273
+ ZodError: () => ZodError,
274
+ ZodFile: () => ZodFile,
275
+ ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind,
276
+ ZodFunction: () => ZodFunction,
277
+ ZodGUID: () => ZodGUID,
278
+ ZodIPv4: () => ZodIPv4,
279
+ ZodIPv6: () => ZodIPv6,
280
+ ZodISODate: () => ZodISODate,
281
+ ZodISODateTime: () => ZodISODateTime,
282
+ ZodISODuration: () => ZodISODuration,
283
+ ZodISOTime: () => ZodISOTime,
284
+ ZodIntersection: () => ZodIntersection,
285
+ ZodIssueCode: () => ZodIssueCode,
286
+ ZodJWT: () => ZodJWT,
287
+ ZodKSUID: () => ZodKSUID,
288
+ ZodLazy: () => ZodLazy,
289
+ ZodLiteral: () => ZodLiteral,
290
+ ZodMAC: () => ZodMAC,
291
+ ZodMap: () => ZodMap,
292
+ ZodNaN: () => ZodNaN,
293
+ ZodNanoID: () => ZodNanoID,
294
+ ZodNever: () => ZodNever,
295
+ ZodNonOptional: () => ZodNonOptional,
296
+ ZodNull: () => ZodNull,
297
+ ZodNullable: () => ZodNullable,
298
+ ZodNumber: () => ZodNumber,
299
+ ZodNumberFormat: () => ZodNumberFormat,
300
+ ZodObject: () => ZodObject,
301
+ ZodOptional: () => ZodOptional,
302
+ ZodPipe: () => ZodPipe,
303
+ ZodPrefault: () => ZodPrefault,
304
+ ZodPromise: () => ZodPromise,
305
+ ZodReadonly: () => ZodReadonly,
306
+ ZodRealError: () => ZodRealError,
307
+ ZodRecord: () => ZodRecord,
308
+ ZodSet: () => ZodSet,
309
+ ZodString: () => ZodString,
310
+ ZodStringFormat: () => ZodStringFormat,
311
+ ZodSuccess: () => ZodSuccess,
312
+ ZodSymbol: () => ZodSymbol,
313
+ ZodTemplateLiteral: () => ZodTemplateLiteral,
314
+ ZodTransform: () => ZodTransform,
315
+ ZodTuple: () => ZodTuple,
316
+ ZodType: () => ZodType,
317
+ ZodULID: () => ZodULID,
318
+ ZodURL: () => ZodURL,
319
+ ZodUUID: () => ZodUUID,
320
+ ZodUndefined: () => ZodUndefined,
321
+ ZodUnion: () => ZodUnion,
322
+ ZodUnknown: () => ZodUnknown,
323
+ ZodVoid: () => ZodVoid,
324
+ ZodXID: () => ZodXID,
325
+ ZodXor: () => ZodXor,
326
+ _ZodString: () => _ZodString,
327
+ _default: () => _default,
328
+ _function: () => _function,
329
+ any: () => any,
330
+ array: () => array,
331
+ base64: () => base64,
332
+ base64url: () => base64url,
333
+ bigint: () => bigint,
334
+ boolean: () => boolean,
335
+ catch: () => _catch,
336
+ check: () => check,
337
+ cidrv4: () => cidrv4,
338
+ cidrv6: () => cidrv6,
339
+ clone: () => clone,
340
+ codec: () => codec,
341
+ coerce: () => exports_coerce,
342
+ config: () => config,
343
+ core: () => exports_core,
344
+ cuid: () => cuid,
345
+ cuid2: () => cuid2,
346
+ custom: () => custom,
347
+ date: () => date,
348
+ decode: () => decode,
349
+ decodeAsync: () => decodeAsync,
350
+ default: () => zod_default,
351
+ describe: () => describe,
352
+ discriminatedUnion: () => discriminatedUnion,
353
+ e164: () => e164,
354
+ email: () => email,
355
+ emoji: () => emoji,
356
+ encode: () => encode,
357
+ encodeAsync: () => encodeAsync,
358
+ endsWith: () => _endsWith,
359
+ enum: () => _enum,
360
+ file: () => file,
361
+ flattenError: () => flattenError,
362
+ float32: () => float32,
363
+ float64: () => float64,
364
+ formatError: () => formatError,
365
+ fromJSONSchema: () => fromJSONSchema,
366
+ function: () => _function,
367
+ getErrorMap: () => getErrorMap,
368
+ globalRegistry: () => globalRegistry,
369
+ gt: () => _gt,
370
+ gte: () => _gte,
371
+ guid: () => guid,
372
+ hash: () => hash,
373
+ hex: () => hex,
374
+ hostname: () => hostname,
375
+ httpUrl: () => httpUrl,
376
+ includes: () => _includes,
377
+ instanceof: () => _instanceof,
378
+ int: () => int,
379
+ int32: () => int32,
380
+ int64: () => int64,
381
+ intersection: () => intersection,
382
+ ipv4: () => ipv4,
383
+ ipv6: () => ipv6,
384
+ iso: () => exports_iso,
385
+ json: () => json,
386
+ jwt: () => jwt,
387
+ keyof: () => keyof,
388
+ ksuid: () => ksuid,
389
+ lazy: () => lazy,
390
+ length: () => _length,
391
+ literal: () => literal,
392
+ locales: () => exports_locales,
393
+ looseObject: () => looseObject,
394
+ looseRecord: () => looseRecord,
395
+ lowercase: () => _lowercase,
396
+ lt: () => _lt,
397
+ lte: () => _lte,
398
+ mac: () => mac,
399
+ map: () => map,
400
+ maxLength: () => _maxLength,
401
+ maxSize: () => _maxSize,
402
+ meta: () => meta,
403
+ mime: () => _mime,
404
+ minLength: () => _minLength,
405
+ minSize: () => _minSize,
406
+ multipleOf: () => _multipleOf,
407
+ nan: () => nan,
408
+ nanoid: () => nanoid,
409
+ nativeEnum: () => nativeEnum,
410
+ negative: () => _negative,
411
+ never: () => never,
412
+ nonnegative: () => _nonnegative,
413
+ nonoptional: () => nonoptional,
414
+ nonpositive: () => _nonpositive,
415
+ normalize: () => _normalize,
416
+ null: () => _null,
417
+ nullable: () => nullable,
418
+ nullish: () => nullish,
419
+ number: () => number,
420
+ object: () => object,
421
+ optional: () => optional,
422
+ overwrite: () => _overwrite,
423
+ parse: () => parse,
424
+ parseAsync: () => parseAsync,
425
+ partialRecord: () => partialRecord,
426
+ pipe: () => pipe,
427
+ positive: () => _positive,
428
+ prefault: () => prefault,
429
+ preprocess: () => preprocess,
430
+ prettifyError: () => prettifyError,
431
+ promise: () => promise,
432
+ property: () => _property,
433
+ readonly: () => readonly,
434
+ record: () => record,
435
+ refine: () => refine,
436
+ regex: () => _regex,
437
+ regexes: () => exports_regexes,
438
+ registry: () => registry,
439
+ safeDecode: () => safeDecode,
440
+ safeDecodeAsync: () => safeDecodeAsync,
441
+ safeEncode: () => safeEncode,
442
+ safeEncodeAsync: () => safeEncodeAsync,
443
+ safeParse: () => safeParse,
444
+ safeParseAsync: () => safeParseAsync,
445
+ set: () => set,
446
+ setErrorMap: () => setErrorMap,
447
+ size: () => _size,
448
+ slugify: () => _slugify,
449
+ startsWith: () => _startsWith,
450
+ strictObject: () => strictObject,
451
+ string: () => string,
452
+ stringFormat: () => stringFormat,
453
+ stringbool: () => stringbool,
454
+ success: () => success,
455
+ superRefine: () => superRefine,
456
+ symbol: () => symbol,
457
+ templateLiteral: () => templateLiteral,
458
+ toJSONSchema: () => toJSONSchema,
459
+ toLowerCase: () => _toLowerCase,
460
+ toUpperCase: () => _toUpperCase,
461
+ transform: () => transform,
462
+ treeifyError: () => treeifyError,
463
+ trim: () => _trim,
464
+ tuple: () => tuple,
465
+ uint32: () => uint32,
466
+ uint64: () => uint64,
467
+ ulid: () => ulid,
468
+ undefined: () => _undefined,
469
+ union: () => union,
470
+ unknown: () => unknown,
471
+ uppercase: () => _uppercase,
472
+ url: () => url,
473
+ util: () => exports_util,
474
+ uuid: () => uuid,
475
+ uuidv4: () => uuidv4,
476
+ uuidv6: () => uuidv6,
477
+ uuidv7: () => uuidv7,
478
+ void: () => _void,
479
+ xid: () => xid,
480
+ xor: () => xor,
481
+ z: () => exports_external
482
482
  });
483
483
  var zod_default;
484
484
  var init_zod = __esm(() => {
@@ -1,6 +1,10 @@
1
+ import {
2
+ init_env_flag,
3
+ parseEnvFlag
4
+ } from "./cli-nanaxrz6.js";
1
5
  import {
2
6
  __esm
3
- } from "./cli-p9swy5t3.js";
7
+ } from "./cli-pq2ee5ja.js";
4
8
 
5
9
  // src/utils/template.ts
6
10
  function findInterpolationTokens(template) {
@@ -219,28 +223,6 @@ var init_resolver = __esm(() => {
219
223
  TEMPLATE_REF_REGEX = /\{\{@template\[([^\]]+)\]\}\}/g;
220
224
  });
221
225
 
222
- // src/utils/env-flag.ts
223
- function parseEnvFlag(raw, defaultValue) {
224
- if (raw === undefined || raw === null)
225
- return defaultValue;
226
- const normalized = raw.trim().toLowerCase();
227
- if (normalized === "")
228
- return defaultValue;
229
- if (TRUTHY.has(normalized))
230
- return true;
231
- if (FALSY.has(normalized))
232
- return false;
233
- return defaultValue;
234
- }
235
- function isEnvFlagEnabled(key, defaultValue, env = process.env) {
236
- return parseEnvFlag(env[key], defaultValue);
237
- }
238
- var TRUTHY, FALSY;
239
- var init_env_flag = __esm(() => {
240
- TRUTHY = new Set(["true", "1"]);
241
- FALSY = new Set(["false", "0"]);
242
- });
243
-
244
226
  // src/utils/steering-enabled.ts
245
227
  function isSteeringEnabled(env = process.env) {
246
228
  return parseEnvFlag(env.STEERING_ENABLED, false);
@@ -298,7 +280,7 @@ As the lead agent, you coordinate all worker agents in the swarm.
298
280
 
299
281
  **Identity:**
300
282
  - \`update-profile\`: Update your own or other agents' profile fields (name, role, capabilities, soulMd, identityMd, heartbeatMd, claudeMd, toolsMd, setupScript)
301
- - \`manage-user\`: Register or update human users (resolve from GitHub/GitLab identity or other source metadata)
283
+ - \`manage-user\`: Register or update human users (resolve from GitHub/GitLab identity or other source metadata). When you learn a requester's stable communication preferences (tone, language, verbosity), persist them with its \`comms\` field so future sessions adapt.
302
284
 
303
285
  #### Task Routing
304
286
 
@@ -378,6 +360,17 @@ As a worker agent of the swarm, you are responsible for executing tasks assigned
378
360
  - Each worker focuses on specific tasks or objectives, contributing to the overall goals of the swarm.
379
361
  - Workers MUST report their progress back to the lead and collaborate with other workers as needed.
380
362
 
363
+ #### Skills (CHECK BEFORE STARTING WORK)
364
+
365
+ You have installed skills with tested procedures for common tasks. Before doing manual research or implementation, check the installed skill catalog and invoke a matching skill first.
366
+
367
+ Examples:
368
+ - Researching a codebase → use \`researching\`
369
+ - Planning an implementation → use \`planning\`
370
+ - Reviewing code changes → use \`code-reviewing\`
371
+
372
+ **Rule: If a skill exists for your task type, USE IT. Do not research what the skill already documents.**
373
+
381
374
  #### Useful tools for workers
382
375
 
383
376
  - \`store-progress\`: Save your work progress on tasks (critical!)
@@ -989,6 +982,31 @@ When working in a repository, your system prompt may include a **Repository Guid
989
982
  **When reviewing:**
990
983
  - Follow the repo's review guidance from the Repository Guidelines
991
984
  - Failing CI is an automatic REQUEST_CHANGES
985
+ `,
986
+ variables: [],
987
+ category: "system"
988
+ });
989
+ registerTemplate({
990
+ eventType: "system.agent.communication_style",
991
+ header: "",
992
+ defaultBody: `
993
+ ### Communication Style
994
+
995
+ Your persona lives in your SOUL.md (see Your Identity, when present). It defines who you are. The rules below define how you write, whoever you are.
996
+
997
+ They govern everything a human reads from you: Slack, PR and issue comments, tickets, email, pages, and task summaries.
998
+
999
+ - Write like a person, not a press release. Plain words, direct statements.
1000
+ - Lead with the outcome or the answer. Context comes after.
1001
+ - Keep sentences short (25 words or fewer). One idea per sentence.
1002
+ - Use active voice. Say who did what.
1003
+ - Never use em dashes. Use a period, a comma, a colon, or parentheses.
1004
+ - No marketing adjectives (seamless, robust, powerful). State the fact that earns the claim instead.
1005
+ - No hedge stacks ("might possibly perhaps"). Keep a hedge only when you are genuinely unsure, and keep it: "may have failed" never becomes "failed".
1006
+ - No filler ("I hope this helps", "Great question!") and no formal sign-offs.
1007
+ - If something is broken, blocked, or a bad idea, say so plainly and say why.
1008
+ - Mirror the requester: reply in the language they wrote in, match their register, and answer at the depth they asked. A one-line question gets the answer first, detail after.
1009
+ - If a Requester Profile section is present, it wins on tone, depth, and format. Correctness always wins over style.
992
1010
  `,
993
1011
  variables: [],
994
1012
  category: "system"
@@ -998,12 +1016,17 @@ When working in a repository, your system prompt may include a **Repository Guid
998
1016
  header: "",
999
1017
  defaultBody: `
1000
1018
  ## Requester Profile
1001
- This task was requested by {{requester_name}}{{requester_role_suffix}}.{{requester_notes_section}}
1019
+ This task was requested by {{requester_name}}{{requester_role_suffix}}.{{requester_comms_section}}{{requester_notes_section}}
1002
1020
  Honor this requester profile in tone, depth, and format where it doesn't conflict with correctness or your operating rules.
1021
+ If this task reveals new stable communication preferences for this requester, persist them: the lead updates \`comms\` (tone, language, verbosity) via \`manage-user\`.
1003
1022
  `,
1004
1023
  variables: [
1005
1024
  { name: "requester_name", description: "The requesting user's display name" },
1006
1025
  { name: "requester_role_suffix", description: "Formatted role suffix, including parentheses" },
1026
+ {
1027
+ name: "requester_comms_section",
1028
+ description: "Formatted communication preferences (tone/language/verbosity) sourced from users.metadata.comms, or empty string"
1029
+ },
1007
1030
  {
1008
1031
  name: "requester_notes_section",
1009
1032
  description: "Formatted notes section sourced from users.notes, or empty string"
@@ -1039,7 +1062,8 @@ Honor this requester profile in tone, depth, and format where it doesn't conflic
1039
1062
 
1040
1063
  {{@template[system.agent.system]}}
1041
1064
  {{@template[system.agent.share_urls]}}
1042
- {{@template[system.agent.code_quality]}}`,
1065
+ {{@template[system.agent.code_quality]}}
1066
+ {{@template[system.agent.communication_style]}}`,
1043
1067
  variables: [
1044
1068
  { name: "role", description: "The agent's role" },
1045
1069
  { name: "agentId", description: "The agent's unique identifier" }
@@ -1060,7 +1084,8 @@ Honor this requester profile in tone, depth, and format where it doesn't conflic
1060
1084
 
1061
1085
  {{@template[system.agent.system]}}
1062
1086
  {{@template[system.agent.share_urls]}}
1063
- {{@template[system.agent.code_quality]}}`,
1087
+ {{@template[system.agent.code_quality]}}
1088
+ {{@template[system.agent.communication_style]}}`,
1064
1089
  variables: [
1065
1090
  { name: "role", description: "The agent's role" },
1066
1091
  { name: "agentId", description: "The agent's unique identifier" }
@@ -1082,7 +1107,8 @@ Honor this requester profile in tone, depth, and format where it doesn't conflic
1082
1107
 
1083
1108
  {{@template[system.agent.system]}}
1084
1109
  {{@template[system.agent.share_urls]}}
1085
- {{@template[system.agent.code_quality]}}`,
1110
+ {{@template[system.agent.code_quality]}}
1111
+ {{@template[system.agent.communication_style]}}`,
1086
1112
  variables: [
1087
1113
  { name: "role", description: "The agent's role" },
1088
1114
  { name: "agentId", description: "The agent's unique identifier" }
@@ -1104,7 +1130,8 @@ Honor this requester profile in tone, depth, and format where it doesn't conflic
1104
1130
 
1105
1131
  {{@template[system.agent.system]}}
1106
1132
  {{@template[system.agent.share_urls]}}
1107
- {{@template[system.agent.code_quality]}}`,
1133
+ {{@template[system.agent.code_quality]}}
1134
+ {{@template[system.agent.communication_style]}}`,
1108
1135
  variables: [
1109
1136
  { name: "role", description: "The agent's role" },
1110
1137
  { name: "agentId", description: "The agent's unique identifier" }
@@ -1141,7 +1168,9 @@ Your output is captured automatically — focus on doing the work and communicat
1141
1168
  header: "",
1142
1169
  defaultBody: `{{@template[system.agent.role]}}
1143
1170
 
1144
- {{@template[system.agent.worker.remote]}}`,
1171
+ {{@template[system.agent.worker.remote]}}
1172
+
1173
+ {{@template[system.agent.communication_style]}}`,
1145
1174
  variables: [
1146
1175
  { name: "role", description: "The agent's role" },
1147
1176
  { name: "agentId", description: "The agent's unique identifier" }
@@ -1150,4 +1179,4 @@ Your output is captured automatically — focus on doing the work and communicat
1150
1179
  });
1151
1180
  });
1152
1181
 
1153
- export { findInterpolationTokens, interpolate, deepInterpolate, init_template, registerTemplate, getTemplateDefinition, getAllTemplateDefinitions, init_registry, configureDbResolver, configureHttpResolver, resolveTemplate, resolveTemplateAsync, init_resolver, parseEnvFlag, isEnvFlagEnabled, init_env_flag, init_session_templates, isSteeringEnabled, init_steering_enabled };
1182
+ export { findInterpolationTokens, interpolate, deepInterpolate, init_template, registerTemplate, getTemplateDefinition, getAllTemplateDefinitions, init_registry, configureDbResolver, configureHttpResolver, resolveTemplate, resolveTemplateAsync, init_resolver, isSteeringEnabled, init_steering_enabled, init_session_templates };