@desplega.ai/agent-swarm 1.49.0 → 1.52.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 (547) hide show
  1. package/README.md +1 -1
  2. package/openapi.json +2070 -728
  3. package/package.json +10 -1
  4. package/src/agentmail/handlers.ts +65 -10
  5. package/src/agentmail/templates.ts +111 -0
  6. package/src/be/db.ts +1233 -7
  7. package/src/be/migrations/014_prompt_templates.sql +33 -0
  8. package/src/be/migrations/015_workflow_workspace.sql +3 -0
  9. package/src/be/migrations/016_active_session_runner_session.sql +4 -0
  10. package/src/be/migrations/017_channel_activity_cursors.sql +6 -0
  11. package/src/be/migrations/018_fix_seed_double_version.sql +30 -0
  12. package/src/be/migrations/019_skills.sql +65 -0
  13. package/src/be/migrations/020_approval_requests.sql +41 -0
  14. package/src/be/seed.ts +62 -0
  15. package/src/be/skill-parser.ts +70 -0
  16. package/src/be/skill-sync.ts +106 -0
  17. package/src/commands/runner.ts +320 -132
  18. package/src/commands/templates.ts +172 -0
  19. package/src/github/handlers.ts +292 -77
  20. package/src/github/mentions-aliases.test.ts +73 -0
  21. package/src/github/mentions.test.ts +3 -3
  22. package/src/github/mentions.ts +32 -6
  23. package/src/github/templates.ts +398 -0
  24. package/src/gitlab/handlers.ts +63 -22
  25. package/src/gitlab/templates.ts +140 -0
  26. package/src/heartbeat/heartbeat.ts +19 -10
  27. package/src/heartbeat/templates.ts +30 -0
  28. package/src/http/active-sessions.ts +27 -0
  29. package/src/http/approval-requests.ts +247 -0
  30. package/src/http/config.ts +3 -3
  31. package/src/http/index.ts +9 -2
  32. package/src/http/poll.ts +135 -14
  33. package/src/http/prompt-templates.ts +412 -0
  34. package/src/http/schedules.ts +35 -0
  35. package/src/http/skills.ts +479 -0
  36. package/src/http/workflows.ts +8 -0
  37. package/src/linear/sync.ts +28 -4
  38. package/src/linear/templates.ts +47 -0
  39. package/src/prompts/base-prompt.ts +41 -490
  40. package/src/prompts/registry.ts +57 -0
  41. package/src/prompts/resolver.ts +296 -0
  42. package/src/prompts/session-templates.ts +604 -0
  43. package/src/providers/claude-adapter.ts +15 -2
  44. package/src/providers/pi-mono-extension.ts +5 -1
  45. package/src/scheduler/scheduler.ts +125 -91
  46. package/src/server.ts +44 -0
  47. package/src/slack/assistant.ts +7 -4
  48. package/src/slack/channel-activity.ts +177 -0
  49. package/src/slack/handlers.ts +21 -6
  50. package/src/slack/templates.ts +55 -0
  51. package/src/tests/approval-requests.test.ts +735 -0
  52. package/src/tests/artifact-sdk.test.ts +12 -12
  53. package/src/tests/base-prompt.test.ts +49 -49
  54. package/src/tests/channel-activity.test.ts +363 -0
  55. package/src/tests/heartbeat.test.ts +1 -0
  56. package/src/tests/linear-webhook.test.ts +7 -3
  57. package/src/tests/pool-session-logs.test.ts +199 -0
  58. package/src/tests/prompt-template-github.test.ts +682 -0
  59. package/src/tests/prompt-template-remaining.test.ts +504 -0
  60. package/src/tests/prompt-template-resolver.test.ts +621 -0
  61. package/src/tests/prompt-template-session.test.ts +363 -0
  62. package/src/tests/prompt-templates-db.test.ts +616 -0
  63. package/src/tests/self-improvement.test.ts +8 -7
  64. package/src/tests/skill-parser.test.ts +178 -0
  65. package/src/tests/skill-sync.test.ts +171 -0
  66. package/src/tests/slack-metadata-inheritance.test.ts +1 -1
  67. package/src/tests/slack-thread-followups.test.ts +1 -1
  68. package/src/tests/structured-output.test.ts +0 -4
  69. package/src/tests/tool-annotations.test.ts +2 -1
  70. package/src/tests/update-profile-agentid.test.ts +248 -0
  71. package/src/tests/update-profile-auth.test.ts +195 -0
  72. package/src/tests/workflow-async-v2.test.ts +126 -4
  73. package/src/tests/workflow-definition-validation.test.ts +76 -0
  74. package/src/tests/workflow-executors.test.ts +4 -2
  75. package/src/tests/workflow-retry-v2.test.ts +1 -1
  76. package/src/tests/workflow-schedule-trigger.test.ts +104 -0
  77. package/src/tests/workflow-workspace.test.ts +272 -0
  78. package/src/tools/prompt-templates/delete.ts +86 -0
  79. package/src/tools/prompt-templates/get.ts +89 -0
  80. package/src/tools/prompt-templates/index.ts +5 -0
  81. package/src/tools/prompt-templates/list.ts +95 -0
  82. package/src/tools/prompt-templates/preview.ts +84 -0
  83. package/src/tools/prompt-templates/set.ts +117 -0
  84. package/src/tools/request-human-input.ts +106 -0
  85. package/src/tools/skills/index.ts +11 -0
  86. package/src/tools/skills/skill-create.ts +105 -0
  87. package/src/tools/skills/skill-delete.ts +67 -0
  88. package/src/tools/skills/skill-get.ts +75 -0
  89. package/src/tools/skills/skill-install-remote.ts +152 -0
  90. package/src/tools/skills/skill-install.ts +101 -0
  91. package/src/tools/skills/skill-list.ts +77 -0
  92. package/src/tools/skills/skill-publish.ts +123 -0
  93. package/src/tools/skills/skill-search.ts +43 -0
  94. package/src/tools/skills/skill-sync-remote.ts +128 -0
  95. package/src/tools/skills/skill-uninstall.ts +60 -0
  96. package/src/tools/skills/skill-update.ts +128 -0
  97. package/src/tools/store-progress.ts +22 -4
  98. package/src/tools/task-action.ts +20 -0
  99. package/src/tools/templates.ts +53 -0
  100. package/src/tools/tool-config.ts +23 -0
  101. package/src/tools/update-profile.ts +106 -34
  102. package/src/tools/workflows/create-workflow.ts +19 -1
  103. package/src/tools/workflows/update-workflow.ts +16 -1
  104. package/src/types.ts +109 -2
  105. package/src/workflows/definition.ts +30 -12
  106. package/src/workflows/engine.ts +40 -14
  107. package/src/workflows/executors/agent-task.ts +14 -3
  108. package/src/workflows/executors/human-in-the-loop.ts +160 -0
  109. package/src/workflows/executors/registry.ts +2 -0
  110. package/src/workflows/index.ts +1 -1
  111. package/src/workflows/recovery.ts +72 -0
  112. package/src/workflows/resume.ts +162 -12
  113. package/src/workflows/triggers.ts +31 -2
  114. package/src/workflows/version.ts +2 -0
  115. package/.claude/settings.json +0 -84
  116. package/.claude/settings.local.json +0 -117
  117. package/.dockerignore +0 -61
  118. package/.editorconfig +0 -15
  119. package/.entire/settings.json +0 -4
  120. package/.env.docker.example +0 -56
  121. package/.env.example +0 -78
  122. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -78
  123. package/.github/ISSUE_TEMPLATE/community-template.yml +0 -77
  124. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  125. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -60
  126. package/.github/PULL_REQUEST_TEMPLATE/community-template.md +0 -29
  127. package/.github/workflows/ci.yml +0 -52
  128. package/.github/workflows/docker-and-deploy.yml +0 -132
  129. package/.github/workflows/merge-gate.yml +0 -233
  130. package/.opencode/plugins/entire.ts +0 -133
  131. package/.superset/config.json +0 -6
  132. package/.wts-config.json +0 -4
  133. package/.wts-setup.ts +0 -171
  134. package/CHANGELOG.md +0 -447
  135. package/CLAUDE.md +0 -521
  136. package/CONTRIBUTING.md +0 -315
  137. package/DEPLOYMENT.md +0 -622
  138. package/Dockerfile +0 -65
  139. package/Dockerfile.worker +0 -189
  140. package/MCP.md +0 -841
  141. package/UI.md +0 -40
  142. package/api-entrypoint.sh +0 -56
  143. package/assets/agent-swarm-logo-orange.png +0 -0
  144. package/assets/agent-swarm-logo.png +0 -0
  145. package/assets/agent-swarm.mp4 +0 -0
  146. package/assets/agent-swarm.png +0 -0
  147. package/biome.json +0 -39
  148. package/deploy/DEPLOY.md +0 -60
  149. package/deploy/agent-swarm.service +0 -17
  150. package/deploy/docker-push.ts +0 -30
  151. package/deploy/install.ts +0 -85
  152. package/deploy/prod-db.ts +0 -42
  153. package/deploy/uninstall.ts +0 -12
  154. package/deploy/update.ts +0 -21
  155. package/depot.json +0 -1
  156. package/docker-compose.example.yml +0 -350
  157. package/docker-compose.local.yml +0 -119
  158. package/docker-entrypoint.sh +0 -632
  159. package/docs-site/app/api/search/route.ts +0 -4
  160. package/docs-site/app/docs/[[...slug]]/page.tsx +0 -87
  161. package/docs-site/app/docs/layout.tsx +0 -12
  162. package/docs-site/app/globals.css +0 -24
  163. package/docs-site/app/layout.config.tsx +0 -34
  164. package/docs-site/app/layout.tsx +0 -119
  165. package/docs-site/app/llms-full.txt/route.ts +0 -11
  166. package/docs-site/app/llms.mdx/docs/[[...slug]]/route.ts +0 -24
  167. package/docs-site/app/llms.txt/route.ts +0 -8
  168. package/docs-site/app/page.tsx +0 -5
  169. package/docs-site/app/robots.ts +0 -13
  170. package/docs-site/app/sitemap.ts +0 -37
  171. package/docs-site/components/api-page.client.tsx +0 -4
  172. package/docs-site/components/api-page.tsx +0 -7
  173. package/docs-site/components/mdx/mermaid.tsx +0 -55
  174. package/docs-site/content/docs/(documentation)/architecture/agents.mdx +0 -117
  175. package/docs-site/content/docs/(documentation)/architecture/hooks.mdx +0 -77
  176. package/docs-site/content/docs/(documentation)/architecture/memory.mdx +0 -96
  177. package/docs-site/content/docs/(documentation)/architecture/meta.json +0 -4
  178. package/docs-site/content/docs/(documentation)/architecture/overview.mdx +0 -172
  179. package/docs-site/content/docs/(documentation)/concepts/epics.mdx +0 -98
  180. package/docs-site/content/docs/(documentation)/concepts/meta.json +0 -4
  181. package/docs-site/content/docs/(documentation)/concepts/scheduling.mdx +0 -136
  182. package/docs-site/content/docs/(documentation)/concepts/services.mdx +0 -104
  183. package/docs-site/content/docs/(documentation)/concepts/task-lifecycle.mdx +0 -148
  184. package/docs-site/content/docs/(documentation)/concepts/workflows.mdx +0 -209
  185. package/docs-site/content/docs/(documentation)/contributing.mdx +0 -158
  186. package/docs-site/content/docs/(documentation)/getting-started.mdx +0 -157
  187. package/docs-site/content/docs/(documentation)/guides/agentmail-integration.mdx +0 -79
  188. package/docs-site/content/docs/(documentation)/guides/deployment.mdx +0 -171
  189. package/docs-site/content/docs/(documentation)/guides/github-integration.mdx +0 -81
  190. package/docs-site/content/docs/(documentation)/guides/gitlab-integration.mdx +0 -93
  191. package/docs-site/content/docs/(documentation)/guides/linear-integration.mdx +0 -98
  192. package/docs-site/content/docs/(documentation)/guides/meta.json +0 -13
  193. package/docs-site/content/docs/(documentation)/guides/sentry-integration.mdx +0 -52
  194. package/docs-site/content/docs/(documentation)/guides/slack-integration.mdx +0 -179
  195. package/docs-site/content/docs/(documentation)/guides/x402-payments.mdx +0 -154
  196. package/docs-site/content/docs/(documentation)/index.mdx +0 -65
  197. package/docs-site/content/docs/(documentation)/meta.json +0 -19
  198. package/docs-site/content/docs/(documentation)/reference/cli.mdx +0 -241
  199. package/docs-site/content/docs/(documentation)/reference/environment-variables.mdx +0 -205
  200. package/docs-site/content/docs/(documentation)/reference/mcp-tools.mdx +0 -449
  201. package/docs-site/content/docs/(documentation)/reference/meta.json +0 -4
  202. package/docs-site/content/docs/api-reference/active-sessions.mdx +0 -9
  203. package/docs-site/content/docs/api-reference/agents.mdx +0 -9
  204. package/docs-site/content/docs/api-reference/channels.mdx +0 -9
  205. package/docs-site/content/docs/api-reference/config.mdx +0 -9
  206. package/docs-site/content/docs/api-reference/debug.mdx +0 -9
  207. package/docs-site/content/docs/api-reference/ecosystem.mdx +0 -9
  208. package/docs-site/content/docs/api-reference/epics.mdx +0 -9
  209. package/docs-site/content/docs/api-reference/index.mdx +0 -32
  210. package/docs-site/content/docs/api-reference/memory.mdx +0 -9
  211. package/docs-site/content/docs/api-reference/meta.json +0 -25
  212. package/docs-site/content/docs/api-reference/poll.mdx +0 -9
  213. package/docs-site/content/docs/api-reference/repos.mdx +0 -9
  214. package/docs-site/content/docs/api-reference/schedules.mdx +0 -9
  215. package/docs-site/content/docs/api-reference/session-data.mdx +0 -9
  216. package/docs-site/content/docs/api-reference/stats.mdx +0 -9
  217. package/docs-site/content/docs/api-reference/tasks.mdx +0 -9
  218. package/docs-site/content/docs/api-reference/trackers.mdx +0 -9
  219. package/docs-site/content/docs/api-reference/webhooks.mdx +0 -9
  220. package/docs-site/content/docs/api-reference/workflows.mdx +0 -9
  221. package/docs-site/content/docs/meta.json +0 -3
  222. package/docs-site/lib/get-llm-text.ts +0 -10
  223. package/docs-site/lib/openapi.ts +0 -23
  224. package/docs-site/lib/source.ts +0 -8
  225. package/docs-site/mdx-components.tsx +0 -13
  226. package/docs-site/next.config.mjs +0 -29
  227. package/docs-site/package.json +0 -35
  228. package/docs-site/pnpm-lock.yaml +0 -5407
  229. package/docs-site/postcss.config.mjs +0 -8
  230. package/docs-site/public/logo.png +0 -0
  231. package/docs-site/scripts/generate-docs.ts +0 -171
  232. package/docs-site/source.config.ts +0 -17
  233. package/docs-site/tsconfig.json +0 -46
  234. package/ecosystem.config.cjs +0 -66
  235. package/landing/next.config.ts +0 -14
  236. package/landing/package.json +0 -31
  237. package/landing/pnpm-lock.yaml +0 -1091
  238. package/landing/postcss.config.mjs +0 -8
  239. package/landing/public/apple-touch-icon.png +0 -0
  240. package/landing/public/favicon.ico +0 -0
  241. package/landing/public/logo.png +0 -0
  242. package/landing/public/og-image.png +0 -0
  243. package/landing/public/omghost-desplega.svg +0 -30
  244. package/landing/public/omghost-openfort.svg +0 -9
  245. package/landing/src/app/actions/waitlist.ts +0 -25
  246. package/landing/src/app/blog/openfort-hackathon/page.tsx +0 -863
  247. package/landing/src/app/blog/page.tsx +0 -162
  248. package/landing/src/app/blog/swarm-metrics/page.tsx +0 -685
  249. package/landing/src/app/examples/page.tsx +0 -174
  250. package/landing/src/app/examples/x402/page.tsx +0 -456
  251. package/landing/src/app/globals.css +0 -122
  252. package/landing/src/app/layout.tsx +0 -134
  253. package/landing/src/app/page.tsx +0 -27
  254. package/landing/src/app/robots.ts +0 -13
  255. package/landing/src/app/sitemap.ts +0 -44
  256. package/landing/src/components/architecture.tsx +0 -163
  257. package/landing/src/components/cta.tsx +0 -52
  258. package/landing/src/components/features.tsx +0 -160
  259. package/landing/src/components/footer.tsx +0 -100
  260. package/landing/src/components/hero.tsx +0 -217
  261. package/landing/src/components/how-it-works.tsx +0 -165
  262. package/landing/src/components/navbar.tsx +0 -147
  263. package/landing/src/components/waitlist.tsx +0 -110
  264. package/landing/src/components/why-choose.tsx +0 -149
  265. package/landing/src/components/workshops.tsx +0 -328
  266. package/landing/src/lib/utils.ts +0 -6
  267. package/landing/tsconfig.json +0 -41
  268. package/misc/transcripts/2026-03-09-pi-mono-e2e-verification.md +0 -154
  269. package/new-ui/CLAUDE.md +0 -92
  270. package/new-ui/README.md +0 -73
  271. package/new-ui/biome.json +0 -42
  272. package/new-ui/components.json +0 -21
  273. package/new-ui/index.html +0 -25
  274. package/new-ui/package.json +0 -49
  275. package/new-ui/pnpm-lock.yaml +0 -4845
  276. package/new-ui/public/logo.png +0 -0
  277. package/new-ui/src/api/client.ts +0 -814
  278. package/new-ui/src/api/hooks/index.ts +0 -64
  279. package/new-ui/src/api/hooks/use-agents.ts +0 -58
  280. package/new-ui/src/api/hooks/use-channels.ts +0 -115
  281. package/new-ui/src/api/hooks/use-config-api.ts +0 -46
  282. package/new-ui/src/api/hooks/use-costs.ts +0 -122
  283. package/new-ui/src/api/hooks/use-db-query.ts +0 -29
  284. package/new-ui/src/api/hooks/use-epics.ts +0 -75
  285. package/new-ui/src/api/hooks/use-repos.ts +0 -61
  286. package/new-ui/src/api/hooks/use-schedules.ts +0 -81
  287. package/new-ui/src/api/hooks/use-services.ts +0 -16
  288. package/new-ui/src/api/hooks/use-stats.ts +0 -27
  289. package/new-ui/src/api/hooks/use-tasks.ts +0 -89
  290. package/new-ui/src/api/hooks/use-workflows.ts +0 -109
  291. package/new-ui/src/api/types.ts +0 -549
  292. package/new-ui/src/app/App.tsx +0 -13
  293. package/new-ui/src/app/providers.tsx +0 -32
  294. package/new-ui/src/app/router.tsx +0 -52
  295. package/new-ui/src/components/layout/app-header.tsx +0 -47
  296. package/new-ui/src/components/layout/app-sidebar.tsx +0 -128
  297. package/new-ui/src/components/layout/breadcrumbs.tsx +0 -57
  298. package/new-ui/src/components/layout/config-guard.tsx +0 -22
  299. package/new-ui/src/components/layout/root-layout.tsx +0 -40
  300. package/new-ui/src/components/layout/swarm-switcher.tsx +0 -85
  301. package/new-ui/src/components/shared/command-menu.tsx +0 -131
  302. package/new-ui/src/components/shared/data-grid.tsx +0 -141
  303. package/new-ui/src/components/shared/empty-state.tsx +0 -24
  304. package/new-ui/src/components/shared/error-boundary.tsx +0 -72
  305. package/new-ui/src/components/shared/json-viewer.tsx +0 -47
  306. package/new-ui/src/components/shared/name-connection-modal.tsx +0 -99
  307. package/new-ui/src/components/shared/page-skeleton.tsx +0 -16
  308. package/new-ui/src/components/shared/session-log-viewer.tsx +0 -364
  309. package/new-ui/src/components/shared/stats-bar.tsx +0 -132
  310. package/new-ui/src/components/shared/status-badge.tsx +0 -131
  311. package/new-ui/src/components/shared/usage-summary.tsx +0 -179
  312. package/new-ui/src/components/ui/alert-dialog.tsx +0 -176
  313. package/new-ui/src/components/ui/alert.tsx +0 -60
  314. package/new-ui/src/components/ui/avatar.tsx +0 -96
  315. package/new-ui/src/components/ui/badge.tsx +0 -46
  316. package/new-ui/src/components/ui/button.tsx +0 -62
  317. package/new-ui/src/components/ui/card.tsx +0 -75
  318. package/new-ui/src/components/ui/command.tsx +0 -160
  319. package/new-ui/src/components/ui/dialog.tsx +0 -143
  320. package/new-ui/src/components/ui/dropdown-menu.tsx +0 -226
  321. package/new-ui/src/components/ui/input.tsx +0 -21
  322. package/new-ui/src/components/ui/label.tsx +0 -19
  323. package/new-ui/src/components/ui/progress.tsx +0 -26
  324. package/new-ui/src/components/ui/scroll-area.tsx +0 -54
  325. package/new-ui/src/components/ui/select.tsx +0 -175
  326. package/new-ui/src/components/ui/separator.tsx +0 -28
  327. package/new-ui/src/components/ui/sheet.tsx +0 -132
  328. package/new-ui/src/components/ui/sidebar.tsx +0 -691
  329. package/new-ui/src/components/ui/skeleton.tsx +0 -13
  330. package/new-ui/src/components/ui/sonner.tsx +0 -35
  331. package/new-ui/src/components/ui/switch.tsx +0 -33
  332. package/new-ui/src/components/ui/table.tsx +0 -92
  333. package/new-ui/src/components/ui/tabs.tsx +0 -79
  334. package/new-ui/src/components/ui/textarea.tsx +0 -18
  335. package/new-ui/src/components/ui/tooltip.tsx +0 -51
  336. package/new-ui/src/components/workflows/action-node.tsx +0 -53
  337. package/new-ui/src/components/workflows/condition-node.tsx +0 -50
  338. package/new-ui/src/components/workflows/graph-utils.ts +0 -124
  339. package/new-ui/src/components/workflows/json-tree.tsx +0 -189
  340. package/new-ui/src/components/workflows/node-styles.ts +0 -10
  341. package/new-ui/src/components/workflows/step-detail-sheet.tsx +0 -87
  342. package/new-ui/src/components/workflows/trigger-node.tsx +0 -41
  343. package/new-ui/src/components/workflows/workflow-graph.tsx +0 -65
  344. package/new-ui/src/hooks/use-auto-scroll.ts +0 -82
  345. package/new-ui/src/hooks/use-config.ts +0 -203
  346. package/new-ui/src/hooks/use-keyboard-shortcuts.ts +0 -41
  347. package/new-ui/src/hooks/use-mobile.ts +0 -19
  348. package/new-ui/src/hooks/use-theme.ts +0 -60
  349. package/new-ui/src/lib/config.ts +0 -188
  350. package/new-ui/src/lib/slugs.ts +0 -71
  351. package/new-ui/src/lib/utils.ts +0 -120
  352. package/new-ui/src/main.tsx +0 -11
  353. package/new-ui/src/pages/agents/[id]/page.tsx +0 -492
  354. package/new-ui/src/pages/agents/page.tsx +0 -134
  355. package/new-ui/src/pages/chat/page.tsx +0 -674
  356. package/new-ui/src/pages/config/page.tsx +0 -1109
  357. package/new-ui/src/pages/dashboard/page.tsx +0 -454
  358. package/new-ui/src/pages/debug/page.tsx +0 -275
  359. package/new-ui/src/pages/epics/[id]/page.tsx +0 -809
  360. package/new-ui/src/pages/epics/page.tsx +0 -321
  361. package/new-ui/src/pages/not-found/page.tsx +0 -18
  362. package/new-ui/src/pages/repos/page.tsx +0 -369
  363. package/new-ui/src/pages/schedules/[id]/page.tsx +0 -664
  364. package/new-ui/src/pages/schedules/page.tsx +0 -477
  365. package/new-ui/src/pages/services/page.tsx +0 -128
  366. package/new-ui/src/pages/tasks/[id]/page.tsx +0 -670
  367. package/new-ui/src/pages/tasks/page.tsx +0 -592
  368. package/new-ui/src/pages/usage/page.tsx +0 -195
  369. package/new-ui/src/pages/workflow-runs/[id]/page.tsx +0 -363
  370. package/new-ui/src/pages/workflows/[id]/page.tsx +0 -417
  371. package/new-ui/src/pages/workflows/page.tsx +0 -266
  372. package/new-ui/src/styles/ag-grid.css +0 -36
  373. package/new-ui/src/styles/globals.css +0 -213
  374. package/new-ui/test-results/.last-run.json +0 -4
  375. package/new-ui/tsconfig.app.json +0 -34
  376. package/new-ui/tsconfig.json +0 -4
  377. package/new-ui/tsconfig.node.json +0 -26
  378. package/new-ui/vercel.json +0 -4
  379. package/new-ui/vite.config.ts +0 -28
  380. package/plugin/README.md +0 -1
  381. package/plugin/build-pi-skills.ts +0 -233
  382. package/plugin/hooks/hooks.json +0 -71
  383. package/prek.toml +0 -75
  384. package/pyproject.toml +0 -9
  385. package/scripts/check-db-boundary.sh +0 -60
  386. package/scripts/e2e-docker-provider.ts +0 -820
  387. package/scripts/e2e-io-schemas-test.ts +0 -807
  388. package/scripts/e2e-provider-test.ts +0 -220
  389. package/scripts/e2e-workflow-redesign.sh +0 -229
  390. package/scripts/e2e-workflow-test.sh +0 -285
  391. package/scripts/e2e-workflow-test.ts +0 -857
  392. package/scripts/generate-mcp-docs.ts +0 -415
  393. package/scripts/generate-openapi.ts +0 -26
  394. package/scripts/measure-tool-tokens.ts +0 -118
  395. package/scripts/x402-e2e-test.ts +0 -195
  396. package/scripts/x402-test-server.ts +0 -236
  397. package/scripts/x402-testnet-e2e.ts +0 -668
  398. package/slack-manifest.json +0 -88
  399. package/templates-ui/README.md +0 -46
  400. package/templates-ui/components.json +0 -17
  401. package/templates-ui/eslint.config.mjs +0 -18
  402. package/templates-ui/next.config.ts +0 -7
  403. package/templates-ui/package.json +0 -35
  404. package/templates-ui/pnpm-lock.yaml +0 -4571
  405. package/templates-ui/postcss.config.mjs +0 -7
  406. package/templates-ui/public/file.svg +0 -1
  407. package/templates-ui/public/globe.svg +0 -1
  408. package/templates-ui/public/logo.png +0 -0
  409. package/templates-ui/public/next.svg +0 -1
  410. package/templates-ui/public/vercel.svg +0 -1
  411. package/templates-ui/public/window.svg +0 -1
  412. package/templates-ui/src/app/[category]/[name]/page.tsx +0 -89
  413. package/templates-ui/src/app/api/templates/[...slug]/route.ts +0 -52
  414. package/templates-ui/src/app/api/templates/route.ts +0 -18
  415. package/templates-ui/src/app/builder/page.tsx +0 -37
  416. package/templates-ui/src/app/globals.css +0 -94
  417. package/templates-ui/src/app/layout.tsx +0 -79
  418. package/templates-ui/src/app/page.tsx +0 -38
  419. package/templates-ui/src/app/robots.ts +0 -11
  420. package/templates-ui/src/app/sitemap.ts +0 -31
  421. package/templates-ui/src/components/compose-builder.tsx +0 -442
  422. package/templates-ui/src/components/compose-preview.tsx +0 -117
  423. package/templates-ui/src/components/file-preview.tsx +0 -77
  424. package/templates-ui/src/components/footer.tsx +0 -40
  425. package/templates-ui/src/components/header.tsx +0 -41
  426. package/templates-ui/src/components/template-card.tsx +0 -87
  427. package/templates-ui/src/components/template-detail.tsx +0 -125
  428. package/templates-ui/src/components/template-gallery.tsx +0 -263
  429. package/templates-ui/src/components/ui/badge.tsx +0 -36
  430. package/templates-ui/src/components/ui/button.tsx +0 -57
  431. package/templates-ui/src/components/ui/card.tsx +0 -76
  432. package/templates-ui/src/components/ui/separator.tsx +0 -31
  433. package/templates-ui/src/components/ui/tooltip.tsx +0 -32
  434. package/templates-ui/src/lib/compose-generator.ts +0 -241
  435. package/templates-ui/src/lib/templates.ts +0 -137
  436. package/templates-ui/src/lib/utils.ts +0 -6
  437. package/templates-ui/tsconfig.json +0 -34
  438. package/thoughts/research/2026-02-28-openfort-viem-x402-research.md +0 -679
  439. package/thoughts/research/2026-02-28-x402-payments-research.md +0 -686
  440. package/thoughts/researcher/plans/2026-02-20-agent-self-improvement-plan.md +0 -282
  441. package/thoughts/researcher/research/2026-02-20-agent-self-improvement.md +0 -492
  442. package/thoughts/shared/plans/.gitkeep +0 -0
  443. package/thoughts/shared/plans/2025-12-18-slack-integration.md +0 -1195
  444. package/thoughts/shared/plans/2025-12-19-agent-log-streaming.md +0 -732
  445. package/thoughts/shared/plans/2025-12-19-role-based-swarm-plugin.md +0 -361
  446. package/thoughts/shared/plans/2025-12-20-mobile-responsive-ui.md +0 -501
  447. package/thoughts/shared/plans/2025-12-20-startup-team-swarm.md +0 -560
  448. package/thoughts/shared/plans/2025-12-23-runner-level-polling.md +0 -934
  449. package/thoughts/shared/plans/2025-12-23-runner-session-logs.md +0 -1000
  450. package/thoughts/shared/plans/2025-12-23-worker-lead-spawn-triggers.md +0 -568
  451. package/thoughts/shared/plans/2026-01-09-inverse-teleport.md +0 -1516
  452. package/thoughts/shared/plans/2026-01-12-agent-rename-pm2-control.md +0 -1133
  453. package/thoughts/shared/plans/2026-01-12-github-app-integration.md +0 -380
  454. package/thoughts/shared/plans/2026-01-12-lead-inbox-model.md +0 -876
  455. package/thoughts/shared/plans/2026-01-12-ralph-wiggum-integration.md +0 -463
  456. package/thoughts/shared/plans/2026-01-13-agent-concurrency.md +0 -691
  457. package/thoughts/shared/plans/2026-01-13-github-assignment-handling.md +0 -690
  458. package/thoughts/shared/plans/2026-01-13-prevent-duplicate-trigger-processing.md +0 -1071
  459. package/thoughts/shared/plans/2026-01-14-fix-slack-thread-context.md +0 -507
  460. package/thoughts/shared/plans/2026-01-15-scheduled-tasks-implementation.md +0 -565
  461. package/thoughts/shared/plans/2026-01-15-usage-cost-tracking-ui.md +0 -1479
  462. package/thoughts/shared/plans/2026-01-16-epics-feature-implementation.md +0 -1230
  463. package/thoughts/shared/plans/2026-02-26-mcp-tool-context-reduction.md +0 -282
  464. package/thoughts/shared/plans/2026-03-02-claude-context-mode-integration.md +0 -328
  465. package/thoughts/shared/plans/2026-03-02-code-level-heartbeat.md +0 -224
  466. package/thoughts/shared/research/.gitkeep +0 -0
  467. package/thoughts/shared/research/2025-01-09-inverse-teleport-plan-review.md +0 -420
  468. package/thoughts/shared/research/2025-12-18-slack-integration.md +0 -442
  469. package/thoughts/shared/research/2025-12-19-agent-log-streaming.md +0 -339
  470. package/thoughts/shared/research/2025-12-19-agent-secrets-cli-research.md +0 -390
  471. package/thoughts/shared/research/2025-12-21-gemini-cli-integration.md +0 -376
  472. package/thoughts/shared/research/2025-12-22-runner-loop-architecture.md +0 -582
  473. package/thoughts/shared/research/2025-12-22-setup-experience-improvements.md +0 -264
  474. package/thoughts/shared/research/2026-01-13-lead-duplicate-trigger-processing.md +0 -223
  475. package/thoughts/shared/research/2026-01-14-lead-slack-thread-context.md +0 -277
  476. package/thoughts/shared/research/2026-01-15-ai-tracker-agent-swarm-integration.md +0 -376
  477. package/thoughts/shared/research/2026-01-15-auto-starting-processes-in-worker-containers.md +0 -787
  478. package/thoughts/shared/research/2026-01-15-scheduled-tasks.md +0 -390
  479. package/thoughts/shared/research/2026-01-16-epics-feature-research.md +0 -437
  480. package/thoughts/shared/research/2026-02-26-cliffy-mcp-tools.md +0 -159
  481. package/thoughts/shared/research/2026-03-03-database-migration-system-refactor.md +0 -337
  482. package/thoughts/swarm-researcher/plans/2026-02-23-openclaw-improvements-plan.md +0 -778
  483. package/thoughts/swarm-researcher/plans/2026-02-26-artifacts-localtunnel-plan.md +0 -1269
  484. package/thoughts/swarm-researcher/research/2026-02-23-openclaw-vs-agent-swarm-comparison.md +0 -411
  485. package/thoughts/swarm-researcher/research/2026-02-26-artifacts-localtunnel.md +0 -724
  486. package/thoughts/taras/brainstorms/2026-03-20-prompt-template-registry.md +0 -443
  487. package/thoughts/taras/brainstorms/2026-03-20-setup-cli-onboarding.md +0 -307
  488. package/thoughts/taras/plans/2026-01-22-agent-swarm-schemas.md +0 -98
  489. package/thoughts/taras/plans/2026-01-28-per-worker-claude-md.md +0 -617
  490. package/thoughts/taras/plans/2026-01-28-sentry-cli-integration.md +0 -214
  491. package/thoughts/taras/plans/2026-02-20-auto-improvement.md +0 -803
  492. package/thoughts/taras/plans/2026-02-20-env-management.md +0 -538
  493. package/thoughts/taras/plans/2026-02-20-memory-system.md +0 -882
  494. package/thoughts/taras/plans/2026-02-20-repos-knowledge.md +0 -806
  495. package/thoughts/taras/plans/2026-02-20-session-attach.md +0 -647
  496. package/thoughts/taras/plans/2026-02-20-worker-identity.md +0 -820
  497. package/thoughts/taras/plans/2026-02-25-feat-new-ui-visual-redesign-plan.md +0 -768
  498. package/thoughts/taras/plans/2026-03-04-fix-buildSystemPrompt-missing-fields.md +0 -77
  499. package/thoughts/taras/plans/2026-03-04-new-ui-missing-actions.md +0 -543
  500. package/thoughts/taras/plans/2026-03-06-one-time-scheduled-tasks.md +0 -373
  501. package/thoughts/taras/plans/2026-03-08-memory-self-improvement-enhancements.md +0 -512
  502. package/thoughts/taras/plans/2026-03-08-pi-mono-provider-implementation.md +0 -919
  503. package/thoughts/taras/plans/2026-03-09-templates-registry.md +0 -723
  504. package/thoughts/taras/plans/2026-03-10-task-working-directory.md +0 -371
  505. package/thoughts/taras/plans/2026-03-11-archil-per-agent-write-strategy.md +0 -621
  506. package/thoughts/taras/plans/2026-03-12-eliminate-inbox-route-to-tasks.md +0 -61
  507. package/thoughts/taras/plans/2026-03-12-slack-thread-followup-additive.md +0 -488
  508. package/thoughts/taras/plans/2026-03-13-slack-ai-improvements.md +0 -644
  509. package/thoughts/taras/plans/2026-03-16-route-wrapper-openapi.md +0 -636
  510. package/thoughts/taras/plans/2026-03-17-multi-api-config.md +0 -444
  511. package/thoughts/taras/plans/2026-03-18-agent-fs-integration.md +0 -591
  512. package/thoughts/taras/plans/2026-03-18-debug-db-explorer.md +0 -446
  513. package/thoughts/taras/plans/2026-03-18-workflow-redesign.md +0 -987
  514. package/thoughts/taras/plans/2026-03-19-compound-learnings.md +0 -403
  515. package/thoughts/taras/plans/2026-03-19-ticket-tracker-linear-integration.md +0 -860
  516. package/thoughts/taras/plans/2026-03-19-workflow-io-schemas-and-bugs.md +0 -899
  517. package/thoughts/taras/plans/2026-03-20-setup-cli-onboarding.md +0 -874
  518. package/thoughts/taras/plans/2026-03-20-workflow-structured-output-validation-workspace.md +0 -723
  519. package/thoughts/taras/research/2026-01-22-vercel-cli-integration.md +0 -287
  520. package/thoughts/taras/research/2026-01-27-excessive-polling-issue.md +0 -311
  521. package/thoughts/taras/research/2026-01-28-per-worker-claude-md.md +0 -383
  522. package/thoughts/taras/research/2026-01-28-sentry-cli-integration.md +0 -240
  523. package/thoughts/taras/research/2026-02-19-agent-native-swarm-architecture.md +0 -390
  524. package/thoughts/taras/research/2026-02-19-swarm-gaps-implementation.md +0 -594
  525. package/thoughts/taras/research/2026-02-25-dashboard-ui-design-best-practices.md +0 -825
  526. package/thoughts/taras/research/2026-02-26-task-detail-page-redesign.md +0 -393
  527. package/thoughts/taras/research/2026-03-03-new-ui-missing-actions.md +0 -168
  528. package/thoughts/taras/research/2026-03-05-pi-mono-provider-research.md +0 -230
  529. package/thoughts/taras/research/2026-03-06-workflow-engine-design.md +0 -445
  530. package/thoughts/taras/research/2026-03-08-drive-loop-concept.md +0 -375
  531. package/thoughts/taras/research/2026-03-08-pi-mono-deep-dive.md +0 -869
  532. package/thoughts/taras/research/2026-03-09-templates-registry.md +0 -373
  533. package/thoughts/taras/research/2026-03-10-agent-working-directory.md +0 -223
  534. package/thoughts/taras/research/2026-03-10-configurable-event-prompts.md +0 -339
  535. package/thoughts/taras/research/2026-03-11-archil-production-setup.md +0 -181
  536. package/thoughts/taras/research/2026-03-11-archil-shared-disk-write-strategies.md +0 -437
  537. package/thoughts/taras/research/2026-03-13-slack-ai-features.md +0 -258
  538. package/thoughts/taras/research/2026-03-16-openapi-docs-generation.md +0 -335
  539. package/thoughts/taras/research/2026-03-16-route-wrapper-openapi.md +0 -670
  540. package/thoughts/taras/research/2026-03-16-slack-thread-followups-e2e.md +0 -54
  541. package/thoughts/taras/research/2026-03-18-agent-fs-integration.md +0 -558
  542. package/thoughts/taras/research/2026-03-18-linear-integration-finalization.md +0 -526
  543. package/thoughts/taras/research/2026-03-18-workflow-redesign.md +0 -797
  544. package/thoughts/taras/research/2026-03-19-workflow-node-io-schemas-and-bugs.md +0 -563
  545. package/thoughts/taras/research/2026-03-19-workflow-structured-output-validation-workspace.md +0 -486
  546. package/thoughts/taras/research/2026-03-20-prompt-template-registry.md +0 -469
  547. package/tsconfig.json +0 -37
@@ -1,148 +0,0 @@
1
- ---
2
- title: Task Lifecycle
3
- description: How tasks flow through the swarm from creation to completion
4
- ---
5
-
6
- # Task Lifecycle
7
-
8
- Tasks are the fundamental unit of work in Agent Swarm. Understanding the task lifecycle is essential for working with the system effectively.
9
-
10
- ## Task States
11
-
12
- ```mermaid
13
- stateDiagram-v2
14
- [*] --> backlog
15
- backlog --> unassigned
16
- unassigned --> offered
17
- offered --> pending : accepted
18
- offered --> [*] : rejected
19
- pending --> in_progress
20
- in_progress --> completed
21
- in_progress --> failed
22
- in_progress --> paused
23
- paused --> in_progress
24
- paused --> completed
25
- paused --> failed
26
- ```
27
-
28
- ### State Descriptions
29
-
30
- | State | Description |
31
- |-------|-------------|
32
- | `backlog` | Task is in the backlog, not yet ready for assignment |
33
- | `unassigned` | Task is in the pool, available for any worker to claim |
34
- | `offered` | Task has been offered to a specific agent, awaiting accept/reject |
35
- | `pending` | Task has been accepted/assigned but work hasn't started yet |
36
- | `in_progress` | Worker is actively executing the task |
37
- | `paused` | Task was paused (e.g., during container restart) and can be resumed |
38
- | `completed` | Task finished successfully |
39
- | `failed` | Task could not be completed |
40
- | `cancelled` | Task was cancelled by the lead or creator |
41
-
42
- ## Task Creation
43
-
44
- Tasks can be created in several ways:
45
-
46
- ### Direct Assignment
47
-
48
- The lead sends a task directly to a specific worker:
49
-
50
- ```
51
- send-task(task: "Fix the login bug", agentId: "worker-uuid")
52
- ```
53
-
54
- ### Task Pool
55
-
56
- Tasks can be created without assignment, going into a shared pool:
57
-
58
- ```
59
- task-action(action: "create", task: "Review PR #42")
60
- ```
61
-
62
- Workers claim tasks from the pool:
63
-
64
- ```
65
- task-action(action: "claim", taskId: "task-uuid")
66
- ```
67
-
68
- ### Offer Mode
69
-
70
- Tasks can be offered to a worker who must accept or reject:
71
-
72
- ```
73
- send-task(task: "Refactor auth module", agentId: "worker-uuid", offerMode: true)
74
- ```
75
-
76
- ### External Sources
77
-
78
- Tasks are automatically created from:
79
- - **Slack** — Direct messages to the bot
80
- - **GitHub** — @mentions, issue assignments, PR review requests
81
- - **Email** — Messages to registered AgentMail inboxes
82
- - **Schedules** — Cron-based recurring tasks
83
-
84
- ## Task Dependencies
85
-
86
- Tasks can depend on other tasks:
87
-
88
- ```
89
- send-task(
90
- task: "Deploy to production",
91
- dependsOn: ["build-task-id", "test-task-id"]
92
- )
93
- ```
94
-
95
- A task with dependencies won't be offered or claimable until all dependencies are completed.
96
-
97
- ## Task Properties
98
-
99
- | Property | Description |
100
- |----------|-------------|
101
- | `task` | Description of what needs to be done |
102
- | `priority` | 0-100 (default: 50). Higher priority tasks are processed first |
103
- | `tags` | Labels for filtering (e.g., `['urgent', 'frontend']`) |
104
- | `taskType` | Classification (e.g., `bug`, `feature`, `review`) |
105
- | `dependsOn` | Array of task IDs that must complete first |
106
- | `epicId` | Optional association with an epic |
107
- | `parentTaskId` | For session continuity — child task resumes parent's Claude session |
108
- | `dir` | Working directory (absolute path) for the agent to start in. Falls back to repo clone path or default cwd |
109
- | `model` | Model override: `haiku`, `sonnet`, or `opus`. Priority: task > `MODEL_OVERRIDE` config > `opus` |
110
- | `scheduleId` | Back-reference to the originating schedule (set automatically for schedule-created tasks) |
111
-
112
- ## Progress Tracking
113
-
114
- Workers report progress using the `store-progress` tool:
115
-
116
- ```
117
- store-progress(taskId: "...", progress: "Fixed the auth check, running tests now")
118
- ```
119
-
120
- When done:
121
-
122
- ```
123
- store-progress(taskId: "...", status: "completed", output: "PR #42 created")
124
- ```
125
-
126
- Or on failure:
127
-
128
- ```
129
- store-progress(taskId: "...", status: "failed", failureReason: "Tests still failing after 3 attempts")
130
- ```
131
-
132
- ## Graceful Shutdown & Resume
133
-
134
- When a worker container receives SIGTERM:
135
-
136
- 1. **Grace period** — Worker waits for active tasks to complete (default: 30s)
137
- 2. **Tasks paused** — Any tasks still running are marked as `paused`
138
- 3. **State preserved** — Progress is saved to the database
139
- 4. **On restart** — Worker automatically resumes paused tasks with full context
140
-
141
- This enables zero-downtime deployments.
142
-
143
- ## Related
144
-
145
- - [Epics](/docs/concepts/epics) — Organizing related tasks into larger projects
146
- - [Scheduled Tasks](/docs/concepts/scheduling) — Automate recurring task creation
147
- - [Architecture Overview](/docs/architecture/overview) — How the task system fits into the overall architecture
148
- - [Deployment Guide](/docs/guides/deployment) — Graceful shutdown and task resume in production
@@ -1,209 +0,0 @@
1
- ---
2
- title: Workflows
3
- description: Automate multi-step processes with DAG-based workflow definitions
4
- ---
5
-
6
- # Workflows
7
-
8
- Agent Swarm includes a **workflow automation engine** that lets you define multi-step processes as directed acyclic graphs (DAGs). Workflows connect triggers, conditions, and actions into pipelines that execute automatically.
9
-
10
- ## Core Concepts
11
-
12
- A workflow consists of:
13
-
14
- - **Nodes** — Individual steps with a `next` field that defines routing (no explicit edges needed)
15
- - **Executors** — Class-based step implementations with Zod-typed config and output schemas
16
- - **Triggers** — Entry points: webhook (HMAC-SHA256), schedule (ref), or manual
17
- - **Checkpoint durability** — Atomic DB write after every step; resume from last checkpoint on crash
18
-
19
- ### Executor Types
20
-
21
- The engine includes 8 built-in executor types:
22
-
23
- | Executor | Description |
24
- |----------|-------------|
25
- | `script` | Run a shell script or JavaScript expression |
26
- | `agent-task` | Create and delegate a task to a swarm agent |
27
- | `raw-llm` | Call an LLM directly with a prompt template |
28
- | `vcs` | Version control operations (create PR, merge, etc.) |
29
- | `property-match` | Route based on matching properties in step input |
30
- | `code-match` | Route based on a custom JavaScript expression in a sandbox |
31
- | `notify` | Send a notification (Slack, email, or internal message) |
32
- | `validate` | Validate step output; can halt or trigger retry |
33
-
34
- Each executor has typed config and output schemas available via `GET /api/executor-types` (returns JSON Schemas via Zod v4 `z.toJSONSchema()`).
35
-
36
- ## Defining a Workflow
37
-
38
- Workflows use a **nodes-with-next** schema. Each node declares its `next` field for routing — edges are auto-generated for the UI graph visualization.
39
-
40
- ```json
41
- {
42
- "name": "pr-review-pipeline",
43
- "description": "Auto-assign PR reviews on webhook",
44
- "triggers": [
45
- { "type": "webhook", "config": { "hmacSecret": "my-secret" } }
46
- ],
47
- "definition": {
48
- "nodes": [
49
- {
50
- "id": "check-type",
51
- "type": "property-match",
52
- "label": "Check Event Type",
53
- "config": { "property": "event", "match": "pull_request.opened" },
54
- "next": { "match": "create-review", "no_match": null }
55
- },
56
- {
57
- "id": "create-review",
58
- "type": "agent-task",
59
- "label": "Create Review Task",
60
- "config": {
61
- "taskTemplate": "Review PR #{{input.number}}: {{input.title}}",
62
- "tags": ["review", "automated"],
63
- "priority": 60
64
- }
65
- }
66
- ]
67
- }
68
- }
69
- ```
70
-
71
- ### Triggers
72
-
73
- | Type | Description |
74
- |------|-------------|
75
- | `webhook` | HTTP POST to `/api/workflows/:id/trigger` with optional HMAC-SHA256 verification |
76
- | `schedule` | References a schedule by ID — the schedule creates workflow runs at configured times |
77
- | `manual` | Triggered via the `trigger-workflow` MCP tool or dashboard UI |
78
-
79
- ### Cooldown
80
-
81
- Workflows support a cooldown period to prevent rapid re-triggering:
82
-
83
- ```json
84
- {
85
- "cooldown": { "hours": 0, "minutes": 5, "seconds": 0 }
86
- }
87
- ```
88
-
89
- A second trigger within the cooldown window results in a run with `skipped` status.
90
-
91
- ## Execution Model
92
-
93
- When a workflow triggers:
94
-
95
- 1. The trigger source (webhook, schedule, or manual) creates a new **workflow run**
96
- 2. The engine's `walkGraph()` finds ready nodes and executes them in parallel
97
- 3. Each node's executor runs and produces output that determines port-based routing via `next`
98
- 4. **Checkpoint durability** — after every step, an atomic DB write saves the step result and execution context
99
- 5. On crash or restart, execution resumes from the last checkpoint
100
-
101
- ### Per-Step Retry
102
-
103
- Each node can define a `retryPolicy`:
104
-
105
- ```json
106
- {
107
- "retryPolicy": {
108
- "maxRetries": 3,
109
- "backoff": "exponential",
110
- "initialDelayMs": 1000
111
- }
112
- }
113
- ```
114
-
115
- Backoff strategies: `exponential`, `linear`, `static`. The poller detects failed steps and re-executes them according to the policy.
116
-
117
- ### Per-Step Validation
118
-
119
- The `validate` executor runs after a step to check output quality. It can:
120
- - **Pass** — continue to the next step
121
- - **Halt** — stop the workflow run
122
- - **Retry** — re-execute the previous step
123
-
124
- ### Cross-Node Data Access (`inputs` Mapping)
125
-
126
- By default, upstream step outputs are **not** available for interpolation. Only `trigger` (trigger data) and `input` (workflow-level resolved inputs) are in scope. To access another node's output, declare an `inputs` mapping on the node:
127
-
128
- ```json
129
- {
130
- "id": "summarize",
131
- "type": "agent-task",
132
- "inputs": { "cityData": "generate-city" },
133
- "config": {
134
- "template": "The city is {{cityData.taskOutput.city}} in {{cityData.taskOutput.country}}"
135
- }
136
- }
137
- ```
138
-
139
- - Keys are local names used in `{{interpolation}}`, values are context paths (usually a node ID)
140
- - Agent-task output shape is `{ taskId, taskOutput }` — access fields via `localName.taskOutput.field`
141
- - For trigger data: `{ "pr": "trigger.pullRequest" }` → `{{pr.number}}`
142
- - Without `inputs`, templates referencing upstream nodes silently resolve to empty strings
143
-
144
- ### Structured Output (`outputSchema`)
145
-
146
- Agent-task nodes can require structured JSON output from the agent via `config.outputSchema`:
147
-
148
- ```json
149
- {
150
- "id": "generate-city",
151
- "type": "agent-task",
152
- "config": {
153
- "template": "Pick a random city and return it as JSON",
154
- "outputSchema": {
155
- "type": "object",
156
- "required": ["city", "country"],
157
- "properties": {
158
- "city": { "type": "string" },
159
- "country": { "type": "string" }
160
- }
161
- }
162
- }
163
- }
164
- ```
165
-
166
- There are **two different `outputSchema` locations** — they validate at different layers:
167
-
168
- | Location | Validates |
169
- |----------|-----------|
170
- | `config.outputSchema` (inside config) | The **agent's raw JSON** response |
171
- | Node-level `outputSchema` (sibling of config) | The **executor's return** envelope (rarely needed) |
172
-
173
- For agent-task nodes, put your schema in `config.outputSchema`. The agent is prompted to produce JSON matching this schema, and `store-progress` validates it inline.
174
-
175
- ### Workspace Scoping
176
-
177
- Agent-task nodes support workspace scoping via `config.vcsRepo`. When set, the agent is started in a workspace pre-configured with the specified git repository.
178
-
179
- ### Version History
180
-
181
- Every workflow update creates a snapshot in the version history table, recording the previous definition. This provides an audit trail and enables rollback.
182
-
183
- ## MCP Tools
184
-
185
- | Tool | Description |
186
- |------|-------------|
187
- | `create-workflow` | Create a new workflow with a DAG definition |
188
- | `get-workflow` | Get workflow details by ID |
189
- | `list-workflows` | List all workflows (optionally filter by enabled status) |
190
- | `update-workflow` | Update a workflow's definition, name, or enabled status |
191
- | `delete-workflow` | Delete a workflow and its run history |
192
- | `trigger-workflow` | Manually trigger a workflow execution |
193
- | `get-workflow-run` | Get details of a specific workflow run |
194
- | `list-workflow-runs` | List runs for a workflow |
195
- | `retry-workflow-run` | Retry a failed workflow run |
196
-
197
- ## Dashboard UI
198
-
199
- The dashboard includes a **Workflows** section (under Operations) with:
200
-
201
- - **Workflows list** — View all workflows with enable/disable status
202
- - **Workflow detail** — Tabbed view with Definition (node inspector showing config/input/output schemas) and Runs tabs
203
- - **Run detail** — Split layout with interactive graph and collapsible steps panel, JsonTree viewer, bidirectional node selection, expand/collapse all, millisecond duration display
204
-
205
- ## Related
206
-
207
- - [Scheduled Tasks](/docs/concepts/scheduling) — Time-based task automation (complementary to event-driven workflows)
208
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — How tasks created by workflows flow through the system
209
- - [MCP Tools Reference](/docs/reference/mcp-tools) — Full tool documentation
@@ -1,158 +0,0 @@
1
- ---
2
- title: Contributing
3
- description: How to contribute to Agent Swarm — development setup, coding standards, PR workflow, and project architecture
4
- ---
5
-
6
- # Contributing
7
-
8
- Agent Swarm is open source and welcomes contributions from the community. Whether you're fixing a bug, adding a feature, creating a template, or improving documentation — we appreciate your help.
9
-
10
- ## Getting Started
11
-
12
- If you're new to the project, start with the [Getting Started guide](/docs/getting-started) for an overview of the setup and architecture. The [Architecture Overview](/docs/architecture/overview) explains how the components fit together.
13
-
14
- 1. **Fork the repository** — [desplega-ai/agent-swarm](https://github.com/desplega-ai/agent-swarm)
15
- 2. **Clone your fork** and create a branch:
16
- ```bash
17
- git clone https://github.com/<your-username>/agent-swarm.git
18
- cd agent-swarm
19
- git checkout -b my-feature
20
- ```
21
- 3. **Install dependencies**:
22
- ```bash
23
- bun install
24
- ```
25
-
26
- ## Code Contributions
27
-
28
- ### Development Workflow
29
-
30
- ```bash
31
- # Start the API server in dev mode
32
- bun run dev:http
33
-
34
- # Run a worker locally
35
- bun run worker
36
-
37
- # Lint and format
38
- bun run lint:fix
39
- bun run format
40
-
41
- # Type-check
42
- bun run tsc:check
43
- ```
44
-
45
- ### Pull Request Guidelines
46
-
47
- - **One concern per PR** — keep changes focused and reviewable
48
- - **Write clear commit messages** — describe _why_, not just _what_
49
- - **Follow existing patterns** — match the codebase's style and conventions
50
- - **Test your changes** — run `bun run lint` and `bun run tsc:check` before submitting
51
- - **Keep PRs small** — large PRs are harder to review. Break big features into smaller incremental PRs when possible
52
-
53
- ### Code Style
54
-
55
- - TypeScript throughout, strict mode
56
- - Use `bun` as the package manager and runtime
57
- - Prefer explicit types over `any`
58
- - Follow the existing project structure (commands in `src/commands/`, tools in `src/tools/`, hooks in `src/hooks/`)
59
-
60
- ## Contributing Templates
61
-
62
- Templates are a great way to contribute — they let other teams bootstrap specialized agents quickly.
63
-
64
- ### Creating a Template
65
-
66
- 1. Create a directory under `templates/community/<your-template-name>/`
67
- 2. Add the required files:
68
-
69
- ```
70
- templates/community/your-template/
71
- ├── config.json # Template metadata and agent defaults
72
- ├── SOUL.md # Agent persona and values
73
- ├── IDENTITY.md # Expertise, working style
74
- ├── CLAUDE.md # Instructions and notes
75
- ├── TOOLS.md # Environment-specific knowledge
76
- └── start-up.sh # Setup script (runs on container start)
77
- ```
78
-
79
- 3. Define your `config.json`:
80
-
81
- ```json
82
- {
83
- "name": "your-template",
84
- "displayName": "Your Template",
85
- "description": "A short description of what this agent specializes in",
86
- "version": "1.0.0",
87
- "category": "community",
88
- "icon": "bot",
89
- "author": "Your Name <you@example.com>",
90
- "agentDefaults": {
91
- "role": "worker",
92
- "capabilities": ["your", "capabilities"],
93
- "maxTasks": 3
94
- },
95
- "files": {
96
- "claudeMd": "CLAUDE.md",
97
- "soulMd": "SOUL.md",
98
- "identityMd": "IDENTITY.md",
99
- "toolsMd": "TOOLS.md",
100
- "setupScript": "start-up.sh"
101
- }
102
- }
103
- ```
104
-
105
- 4. Use `{{agent.name}}`, `{{agent.role}}`, and `{{agent.capabilities}}` placeholders in your identity files — they get interpolated at agent startup.
106
-
107
- 5. Submit a PR. Community templates are reviewed for quality and safety before merging.
108
-
109
- ### Template Guidelines
110
-
111
- - **Clear purpose** — the template should serve a specific, well-defined role
112
- - **Good defaults** — capabilities, max tasks, and identity files should make sense out of the box
113
- - **Documentation** — include a brief description and any setup notes in the template's `CLAUDE.md`
114
- - **No secrets** — never include API keys, tokens, or credentials in template files
115
-
116
- Browse existing templates at [templates.agent-swarm.dev](https://templates.agent-swarm.dev) for inspiration.
117
-
118
- ## Documentation
119
-
120
- The docs site lives in `docs-site/` and uses [Fumadocs](https://fumadocs.dev) with MDX content.
121
-
122
- ### Editing Docs
123
-
124
- 1. Content files are in `docs-site/content/docs/`
125
- 2. Add new pages as `.mdx` files in the appropriate directory
126
- 3. Register new pages in the section's `meta.json`
127
- 4. Build and verify:
128
- ```bash
129
- cd docs-site
130
- pnpm install
131
- pnpm build
132
- ```
133
-
134
- ### Landing Page
135
-
136
- The landing page lives in `landing/` and is built with Next.js, Tailwind CSS, and Framer Motion.
137
-
138
- ## Reporting Issues
139
-
140
- - Use [GitHub Issues](https://github.com/desplega-ai/agent-swarm/issues) for bugs and feature requests
141
- - Include reproduction steps, expected vs. actual behavior, and relevant logs
142
- - Check existing issues before opening a new one
143
-
144
- ## Community
145
-
146
- - [Discord](https://discord.gg/KZgfyyDVZa) — chat, ask questions, share your swarm setups
147
- - [GitHub Discussions](https://github.com/desplega-ai/agent-swarm/discussions) — longer-form conversations
148
-
149
- ## Useful References
150
-
151
- - [CLI Reference](/docs/reference/cli) — command details for managing agents, tasks, and configuration
152
- - [MCP Tools Reference](/docs/reference/mcp-tools) — all tools available to agents in the swarm
153
- - [Environment Variables](/docs/reference/environment-variables) — configuration options
154
- - [Deployment Guide](/docs/guides/deployment) — production deployment with Docker Compose
155
-
156
- ## License
157
-
158
- Agent Swarm is released under the [MIT License](https://github.com/desplega-ai/agent-swarm/blob/main/LICENSE). By contributing, you agree that your contributions will be licensed under the same terms.
@@ -1,157 +0,0 @@
1
- ---
2
- title: Getting Started
3
- description: Install Agent Swarm, configure your first lead and worker agents, and run your first multi-agent task in minutes
4
- ---
5
-
6
- # Getting Started
7
-
8
- This guide walks you through setting up a fully operational Agent Swarm with a lead agent and workers.
9
-
10
- > Agent Swarm currently supports **Claude Code** as the AI coding assistant. Support for other agents is coming soon.
11
-
12
- ## Prerequisites
13
-
14
- - [Docker](https://docker.com) and Docker Compose
15
- - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) installed, with an OAuth token (`claude setup-token`)
16
-
17
- ## Using Templates
18
-
19
- Agent Swarm ships with **official templates** that give your agents pre-configured identities, skills, and setup scripts. Instead of starting from scratch, pick a template that matches the role you need.
20
-
21
- | Template | Role | Best for |
22
- |----------|------|----------|
23
- | **Lead** | `lead` | Orchestrating workers, decomposing tasks, managing epics |
24
- | **Coder** | `worker` | Implementation, PRs, code reviews |
25
- | **Researcher** | `worker` | Web research, analysis, documentation |
26
- | **Reviewer** | `worker` | Code review, quality assurance |
27
- | **Tester** | `worker` | Testing, validation, CI/CD |
28
- | **Forward Deployed Engineer** | `worker` | Client-facing work, rapid prototyping |
29
-
30
- To use a template, set the `TEMPLATE_ID` environment variable when starting an agent:
31
-
32
- ```bash
33
- # Use the coder template for a worker
34
- TEMPLATE_ID=official/coder docker compose up worker-1 -d
35
-
36
- # Use the lead template
37
- TEMPLATE_ID=official/lead docker compose up lead -d
38
- ```
39
-
40
- Templates are fetched from the [Templates Registry](https://templates.agent-swarm.dev) and cached locally for 24 hours. You can also [create your own templates](/docs/contributing#contributing-templates) and contribute them to the community.
41
-
42
- Browse all available templates at [templates.agent-swarm.dev](https://templates.agent-swarm.dev).
43
-
44
- ## Option A: Onboard Wizard (Recommended)
45
-
46
- The fastest way to get a full swarm running. The interactive wizard collects credentials, generates `docker-compose.yml` + `.env`, starts the stack, and verifies health.
47
-
48
- ```bash
49
- bunx @desplega.ai/agent-swarm onboard
50
- ```
51
-
52
- Or in non-interactive mode with a preset:
53
-
54
- ```bash
55
- ANTHROPIC_API_KEY=sk-... bunx @desplega.ai/agent-swarm onboard --yes --preset=dev
56
- ```
57
-
58
- Available presets: `dev`, `content`, `research`, `solo`. Use `--dry-run` to preview without writing files.
59
-
60
- ## Option B: Manual Docker Compose
61
-
62
- Set up manually with Docker Compose for full control.
63
-
64
- ```bash
65
- git clone https://github.com/desplega-ai/agent-swarm.git
66
- cd agent-swarm
67
-
68
- # Configure environment
69
- cp .env.docker.example .env
70
- # Edit .env — set API_KEY and CLAUDE_CODE_OAUTH_TOKEN at minimum
71
- # Optionally set TEMPLATE_ID=official/coder for workers, TEMPLATE_ID=official/lead for leads
72
-
73
- # Start everything
74
- docker compose -f docker-compose.example.yml --env-file .env up -d
75
- ```
76
-
77
- The API runs on port `3013`. The dashboard is available separately (see the [Dashboard UI](/docs/reference/cli) section).
78
-
79
- ## Option C: Local API + Docker Workers
80
-
81
- Run the API locally and connect Docker workers to it.
82
-
83
- ```bash
84
- git clone https://github.com/desplega-ai/agent-swarm.git
85
- cd agent-swarm
86
- bun install
87
-
88
- # 1. Configure and start the API server
89
- cp .env.example .env
90
- # Edit .env — set API_KEY
91
- bun run start:http
92
- ```
93
-
94
- In a new terminal, start a worker:
95
-
96
- ```bash
97
- # 2. Configure and run a Docker worker
98
- cp .env.docker.example .env.docker
99
- # Edit .env.docker — set API_KEY (same as above) and CLAUDE_CODE_OAUTH_TOKEN
100
- bun run docker:build:worker
101
- mkdir -p ./logs ./work/shared ./work/worker-1
102
- bun run docker:run:worker
103
- ```
104
-
105
- ## Option D: Claude Code as Lead Agent
106
-
107
- Use Claude Code directly as the lead agent — no Docker required for the lead.
108
-
109
- ```bash
110
- # After starting the API server (Option C, step 1):
111
- bunx @desplega.ai/agent-swarm connect
112
- ```
113
-
114
- This configures Claude Code to connect to the swarm. Start Claude Code and tell it:
115
-
116
- ```
117
- Register yourself as the lead agent in the agent-swarm.
118
- ```
119
-
120
- ## Verifying Your Setup
121
-
122
- Once your swarm is running, you can verify it's working:
123
-
124
- 1. **Check the API** — Visit `http://localhost:3013/health`
125
- 2. **Check agents** — Use the dashboard or API to see registered agents
126
- 3. **Send a test task** — Message the lead agent via Slack or the API
127
-
128
- ## Configuration
129
-
130
- ### Required Environment Variables
131
-
132
- | Variable | Description |
133
- |----------|-------------|
134
- | `API_KEY` | Secret key for API authentication |
135
- | `CLAUDE_CODE_OAUTH_TOKEN` | OAuth token for Claude CLI |
136
-
137
- ### Optional Variables
138
-
139
- | Variable | Default | Description |
140
- |----------|---------|-------------|
141
- | `PORT` | `3013` | API server port |
142
- | `AGENT_ID` | Auto-generated | Stable UUID for task resume |
143
- | `AGENT_NAME` | Auto-generated | Display name for the agent |
144
- | `AGENT_ROLE` | `worker` | Role: `worker` or `lead` |
145
- | `MCP_BASE_URL` | `http://host.docker.internal:3013` | MCP server URL |
146
-
147
- For the complete list, see [Environment Variables](/docs/reference/environment-variables).
148
-
149
- ## Next Steps
150
-
151
- - [Browse Templates](https://templates.agent-swarm.dev) — Explore and preview agent templates
152
- - [Architecture Overview](/docs/architecture/overview) — Understand the system design
153
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — Learn how tasks flow through the swarm
154
- - [Deployment Guide](/docs/guides/deployment) — Production deployment options
155
- - [AgentMail Integration](/docs/guides/agentmail-integration) — Give agents their own email inboxes
156
- - [Linear Integration](/docs/guides/linear-integration) — Bidirectional ticket tracking with Linear
157
- - [Contributing](/docs/contributing) — Learn how to contribute code, templates, and docs