@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,79 +0,0 @@
1
- ---
2
- title: AgentMail Integration
3
- description: Set up AgentMail to give each agent its own email inbox for receiving newsletters, notifications, and external messages
4
- ---
5
-
6
- # AgentMail Integration
7
-
8
- Give your agents email addresses via [AgentMail](https://agentmail.to). Emails are routed to agents as tasks or inbox messages.
9
-
10
- ## Setup
11
-
12
- 1. Create an account at [AgentMail](https://agentmail.to)
13
- 2. Set up a webhook pointing to your server
14
-
15
- **Webhook URL:** `https://your-server.com/api/agentmail/webhook`
16
-
17
- ## Configuration
18
-
19
- ```bash
20
- AGENTMAIL_WEBHOOK_SECRET=your-svix-secret
21
-
22
- # Optional: filter incoming webhooks by domain
23
- AGENTMAIL_INBOX_DOMAIN_FILTER=yourdomain.com
24
- AGENTMAIL_SENDER_DOMAIN_FILTER=gmail.com,company.com
25
- ```
26
-
27
- ### Domain Filtering
28
-
29
- You can restrict which emails are processed using domain filters:
30
-
31
- - **`AGENTMAIL_INBOX_DOMAIN_FILTER`** — Only process webhooks for inboxes on the specified domains. Emails to inboxes on other domains are silently dropped.
32
- - **`AGENTMAIL_SENDER_DOMAIN_FILTER`** — Only process emails from senders on the specified domains. Emails from other sender domains are silently dropped.
33
-
34
- Both accept comma-separated domain lists and are optional. When not set, all domains are allowed.
35
-
36
- ## How It Works
37
-
38
- ### Email Routing
39
-
40
- Agents self-register which inboxes they receive mail from using the `register-agentmail-inbox` MCP tool.
41
-
42
- - **Emails to a worker's inbox** become tasks
43
- - **Emails to a lead's inbox** become inbox messages for triage
44
- - **Follow-up emails in the same thread** are automatically routed to the same agent
45
-
46
- ### Registering an Inbox
47
-
48
- ```
49
- register-agentmail-inbox(
50
- action: "register",
51
- inboxId: "inb_xxx",
52
- inboxEmail: "worker@yourdomain.com"
53
- )
54
- ```
55
-
56
- ### Managing Inboxes
57
-
58
- ```
59
- # List your registered inboxes
60
- register-agentmail-inbox(action: "list")
61
-
62
- # Unregister an inbox
63
- register-agentmail-inbox(action: "unregister", inboxId: "inb_xxx")
64
- ```
65
-
66
- ### Sending Email
67
-
68
- Agents can send emails using AgentMail MCP tools:
69
-
70
- - `send_message` — Send a new email
71
- - `reply_to_message` — Reply to an existing thread
72
- - `forward_message` — Forward an email
73
- - `list_threads` — List email threads in an inbox
74
-
75
- ## Related
76
-
77
- - [Environment Variables](/docs/reference/environment-variables) — AgentMail configuration (`AGENTMAIL_WEBHOOK_SECRET`, domain filters)
78
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — How emails become tasks
79
- - [Slack Integration](/docs/guides/slack-integration) — Another external task source
@@ -1,171 +0,0 @@
1
- ---
2
- title: Deployment Guide
3
- description: Deploy Agent Swarm to production with Docker Compose, configure networking, secrets, and persistent storage
4
- ---
5
-
6
- # Deployment Guide
7
-
8
- Agent Swarm supports multiple deployment options, from Docker Compose to systemd services.
9
-
10
- ## Docker Compose (Recommended)
11
-
12
- The easiest way to deploy a full swarm with API, workers, and lead agent.
13
-
14
- ### Quick Start
15
-
16
- ```bash
17
- cp docker-compose.example.yml docker-compose.yml
18
- cp .env.docker.example .env
19
- # Edit .env with your values
20
- docker-compose up -d
21
- ```
22
-
23
- ### ARM Compatibility (Apple Silicon)
24
-
25
- All services in the docker-compose files include `platform: linux/amd64` to avoid `no matching manifest for linux/arm64/v8` errors on Apple Silicon Macs. The Docker images are built for `linux/amd64` and run via Rosetta emulation.
26
-
27
- ### What's Included
28
-
29
- The example `docker-compose.yml` sets up:
30
-
31
- - **API service** (port 3013) — MCP HTTP server
32
- - **2 Worker agents** — Containerized Claude workers
33
- - **1 Lead agent** — Coordinator agent
34
-
35
- ### Volumes
36
-
37
- | Volume | Purpose |
38
- |--------|---------|
39
- | `swarm_api` | SQLite database persistence |
40
- | `swarm_logs` | Session logs |
41
- | `swarm_shared` | Shared workspace between agents |
42
- | `swarm_lead` | Lead agent's personal workspace |
43
- | `swarm_worker_*` | Personal workspace per worker |
44
-
45
- ### Graceful Shutdown
46
-
47
- The docker-compose example uses `stop_grace_period: 60s` to allow graceful task pause during deployments. When a container receives SIGTERM:
48
-
49
- 1. In-progress tasks are **paused** (not failed)
50
- 2. Task state and progress are preserved
51
- 3. After restart, paused tasks are automatically **resumed** with context
52
-
53
- Use stable `AGENT_ID` values for each worker to enable task resume after restarts.
54
-
55
- ### Pre-installed Agent Tools
56
-
57
- Worker containers include several tools pre-installed:
58
-
59
- - **`wts`** — Git worktree manager for isolated branch work
60
- - **`agent-fs`** — Persistent, searchable filesystem shared across the swarm (auto-configured on first boot when `AGENT_FS_API_URL` is set). Also available as a Claude plugin.
61
- - **`qa-use`** — Browser-based UI testing tool
62
- - **`context-mode`** — Context window compression for data-heavy operations
63
-
64
- ### Claude Code Version
65
-
66
- Claude Code is installed via `npm install -g @anthropic-ai/claude-code@VERSION` with a pinned version (build arg `CLAUDE_CODE_VERSION`). To update the version, change the `CLAUDE_CODE_VERSION` ARG in `Dockerfile.worker` and rebuild.
67
-
68
- ### Corepack
69
-
70
- The worker image sets `COREPACK_HOME=/home/worker/.corepack` to avoid permission errors when running npm/pnpm/yarn as the non-root worker user.
71
-
72
- ## Docker Worker
73
-
74
- ### Pull from Registry
75
-
76
- ```bash
77
- docker pull ghcr.io/desplega-ai/agent-swarm-worker:latest
78
- ```
79
-
80
- ### Run
81
-
82
- ```bash
83
- docker run --rm -it \
84
- -e CLAUDE_CODE_OAUTH_TOKEN=your-token \
85
- -e API_KEY=your-api-key \
86
- -v ./logs:/logs \
87
- -v ./work:/workspace \
88
- ghcr.io/desplega-ai/agent-swarm-worker
89
- ```
90
-
91
- ### With Custom System Prompt
92
-
93
- ```bash
94
- docker run --rm -it \
95
- -e CLAUDE_CODE_OAUTH_TOKEN=your-token \
96
- -e API_KEY=your-api-key \
97
- -e SYSTEM_PROMPT="You are a Python specialist" \
98
- -v ./logs:/logs \
99
- -v ./work:/workspace \
100
- ghcr.io/desplega-ai/agent-swarm-worker
101
- ```
102
-
103
- ## Server Deployment (systemd)
104
-
105
- Deploy the MCP server to a Linux host with systemd.
106
-
107
- ### Prerequisites
108
-
109
- - Linux with systemd
110
- - Bun installed (`curl -fsSL https://bun.sh/install | bash`)
111
-
112
- ### Install
113
-
114
- ```bash
115
- git clone https://github.com/desplega-ai/agent-swarm.git
116
- cd agent-swarm
117
- sudo bun deploy/install.ts
118
- ```
119
-
120
- This will:
121
- - Copy files to `/opt/agent-swarm`
122
- - Create `.env` file (edit to set `API_KEY`)
123
- - Install systemd service with health checks every 30s
124
- - Start the service on port 3013
125
-
126
- ### Management
127
-
128
- ```bash
129
- sudo systemctl status agent-swarm # Check status
130
- sudo journalctl -u agent-swarm -f # View logs
131
- sudo systemctl restart agent-swarm # Restart
132
- sudo systemctl stop agent-swarm # Stop
133
- ```
134
-
135
- ### Update
136
-
137
- ```bash
138
- git pull
139
- sudo bun deploy/update.ts
140
- ```
141
-
142
- ## Graceful Shutdown Configuration
143
-
144
- ```bash
145
- # Grace period before force-pausing tasks (milliseconds)
146
- SHUTDOWN_TIMEOUT=30000
147
-
148
- # Docker compose stop grace period (should be >= SHUTDOWN_TIMEOUT + buffer)
149
- stop_grace_period: 60s
150
- ```
151
-
152
- ### Resume Behavior
153
-
154
- When a worker starts, it:
155
- 1. Registers with the MCP server
156
- 2. Checks for paused tasks assigned to its `AGENT_ID`
157
- 3. Resumes each paused task with original context and progress
158
-
159
- ### Best Practices
160
-
161
- - **Use stable Agent IDs** — Set explicit `AGENT_ID` for each worker
162
- - **Save progress regularly** — Workers should call `store-progress` during long tasks
163
- - **Test deployments** — Verify tasks resume correctly in staging first
164
-
165
- ## Related
166
-
167
- - [Getting Started](/docs/getting-started) — Initial setup and first deployment
168
- - [Environment Variables](/docs/reference/environment-variables) — All configuration options
169
- - [Architecture Overview](/docs/architecture/overview) — How the system components fit together
170
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — Graceful shutdown and task resume behavior
171
- - [x402 Payments](/docs/guides/x402-payments) — Enable agents to make USDC micropayments
@@ -1,81 +0,0 @@
1
- ---
2
- title: GitHub App Integration
3
- description: Set up GitHub webhooks for automated task creation from PR reviews, issues, and @mentions
4
- ---
5
-
6
- # GitHub App Integration
7
-
8
- Enable GitHub webhooks for automated task creation from PR reviews, issue assignments, and @mentions.
9
-
10
- ## Setup
11
-
12
- 1. Create a [GitHub App](https://github.com/settings/apps/new)
13
- 2. Set webhook URL: `https://your-server.com/api/github/webhook`
14
- 3. Generate a webhook secret
15
-
16
- ### Required Permissions
17
-
18
- - **Issues**: Read & Write
19
- - **Pull requests**: Read & Write
20
-
21
- ### Subscribe to Events
22
-
23
- - Issues
24
- - Issue comments
25
- - Pull requests
26
- - Pull request reviews
27
- - Pull request review comments
28
- - Check runs
29
- - Check suites
30
- - Workflow runs
31
-
32
- ## Configuration
33
-
34
- ```bash
35
- # Required for GitHub webhooks
36
- GITHUB_WEBHOOK_SECRET=your-webhook-secret
37
-
38
- # Optional: Bot name for @mentions (default: agent-swarm-bot)
39
- GITHUB_BOT_NAME=your-bot-name
40
-
41
- # Optional: Enable bot reactions (requires GitHub App)
42
- GITHUB_APP_ID=123456
43
- GITHUB_APP_PRIVATE_KEY=base64-encoded-key
44
-
45
- # Optional: Disable GitHub integration
46
- GITHUB_DISABLE=true
47
- ```
48
-
49
- ## Supported Events
50
-
51
- | Event | What happens |
52
- |-------|-------------|
53
- | Bot assigned to PR/issue | Creates a task for the lead agent |
54
- | Review requested from bot | Creates a review task |
55
- | `@bot-name` in comment/issue/PR | Creates a task with the mention context |
56
- | PR review submitted (on bot's PR) | Creates a notification task with review feedback |
57
- | CI failure (on PRs with existing tasks) | Creates a CI notification task |
58
-
59
- ## Bot Reactions
60
-
61
- If GitHub App credentials are provided (`GITHUB_APP_ID` and `GITHUB_APP_PRIVATE_KEY`), the bot can react to comments and issues with emoji to acknowledge receipt.
62
-
63
- ## Worker Git Configuration
64
-
65
- Workers need git credentials to create PRs and push code:
66
-
67
- ```bash
68
- GITHUB_TOKEN=your-github-token # For git operations
69
- GITHUB_EMAIL=worker@desplega.ai # Git commit email
70
- GITHUB_NAME=Worker Agent # Git commit name
71
- ```
72
-
73
- ## Related
74
-
75
- - [GitLab Integration](/docs/guides/gitlab-integration) — GitLab webhook support (same adapter pattern)
76
- - [Linear Integration](/docs/guides/linear-integration) — Bidirectional ticket tracking with Linear
77
- - [Environment Variables](/docs/reference/environment-variables) — GitHub configuration variables
78
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — How GitHub events become tasks
79
- - [Slack Integration](/docs/guides/slack-integration) — Another external task source
80
- - [Sentry Integration](/docs/guides/sentry-integration) — Automated error triage from Sentry
81
- - [AgentMail Integration](/docs/guides/agentmail-integration) — Give agents email addresses
@@ -1,93 +0,0 @@
1
- ---
2
- title: GitLab Integration
3
- description: Set up GitLab webhooks for automated task creation from merge requests, issues, and comments
4
- ---
5
-
6
- # GitLab Integration
7
-
8
- Agent Swarm supports GitLab alongside GitHub through a provider adapter pattern. GitLab webhooks create tasks from MR reviews, issue assignments, and @mentions — just like the GitHub integration.
9
-
10
- ## Setup
11
-
12
- 1. Go to your GitLab project or group **Settings > Webhooks**
13
- 2. Set the webhook URL: `https://your-server.com/api/gitlab/webhook`
14
- 3. Set a secret token for verification
15
- 4. Select the events you want to receive
16
-
17
- ### Events to Enable
18
-
19
- - **Merge request events**
20
- - **Issue events**
21
- - **Note (comment) events**
22
- - **Pipeline events**
23
-
24
- ## Configuration
25
-
26
- ```bash
27
- # Required for GitLab webhooks
28
- GITLAB_WEBHOOK_SECRET=your-webhook-secret
29
-
30
- # GitLab API access (PAT or Group Access Token)
31
- GITLAB_TOKEN=your-gitlab-token
32
-
33
- # Optional: GitLab instance URL (default: https://gitlab.com)
34
- GITLAB_URL=https://gitlab.com
35
-
36
- # Optional: Bot name for @mentions (default: agent-swarm-bot)
37
- GITLAB_BOT_NAME=your-bot-name
38
-
39
- # Optional: Disable GitLab integration
40
- GITLAB_DISABLE=true
41
- ```
42
-
43
- ## Supported Events
44
-
45
- | Event | What happens |
46
- |-------|-------------|
47
- | Bot assigned to MR/issue | Creates a task for the lead agent |
48
- | `@bot-name` in comment/issue/MR | Creates a task with the mention context |
49
- | Pipeline failure (on MRs with existing tasks) | Creates a CI notification task |
50
-
51
- ## Worker Git Configuration
52
-
53
- Workers have `glab` CLI pre-installed for GitLab operations. Configure git credentials for GitLab repos:
54
-
55
- ```bash
56
- GITLAB_TOKEN=your-gitlab-token # For git operations and glab CLI
57
- GITLAB_EMAIL=worker@example.com # Git commit email for GitLab repos
58
- GITLAB_NAME=Worker Agent # Git commit name for GitLab repos
59
- ```
60
-
61
- The runner automatically detects whether a task targets a GitHub or GitLab repository and uses the appropriate CLI tool (`gh` or `glab`).
62
-
63
- ## VCS Provider Detection
64
-
65
- Agent Swarm uses a provider adapter pattern to support both GitHub and GitLab. When a task is created from a webhook event, the `vcsProvider` field is set automatically. Workers use this to select the right CLI:
66
-
67
- | Operation | GitHub (`gh`) | GitLab (`glab`) |
68
- |---|---|---|
69
- | Create PR/MR | `gh pr create` | `glab mr create` |
70
- | View PR/MR | `gh pr view` | `glab mr view` |
71
- | Review | `gh pr review` | `glab mr approve` / `glab mr note` |
72
- | Comment on issue | `gh issue comment` | `glab issue note` |
73
- | Clone | `gh repo clone` | `glab repo clone` |
74
-
75
- ## Workflow Triggers
76
-
77
- GitLab events can trigger [workflows](/docs/concepts/workflows):
78
-
79
- - `gitlab.merge_request.opened`
80
- - `gitlab.merge_request.merged`
81
- - `gitlab.merge_request.closed`
82
- - `gitlab.issue.opened`
83
- - `gitlab.issue.closed`
84
- - `gitlab.note.created`
85
- - `gitlab.pipeline.failed`
86
- - `gitlab.pipeline.success`
87
-
88
- ## Related
89
-
90
- - [GitHub Integration](/docs/guides/github-integration) — GitHub webhook setup
91
- - [Environment Variables](/docs/reference/environment-variables) — GitLab configuration variables
92
- - [Workflows](/docs/concepts/workflows) — Automate actions on GitLab events
93
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — How webhook events become tasks
@@ -1,98 +0,0 @@
1
- ---
2
- title: Linear Integration
3
- description: Connect Agent Swarm to Linear for bidirectional ticket tracking with AgentSession support
4
- ---
5
-
6
- # Linear Integration
7
-
8
- Agent Swarm integrates with [Linear](https://linear.app) as the first provider in its generic ticket tracker framework. The integration enables bidirectional sync between Linear issues/sessions and swarm tasks.
9
-
10
- ## Features
11
-
12
- - **OAuth-based authentication** — PKCE flow via the generic `oauth4webapi` module
13
- - **AgentSession support** — Agents appear as participants in Linear's agent panel, with thought/action/response/error activity posts
14
- - **Bidirectional sync** — Task completion/failure syncs back to Linear; Linear follow-up messages create new swarm tasks
15
- - **Webhook handling** — HMAC-SHA256 verified webhooks with Linear-Delivery header dedup (5-min TTL)
16
- - **Dashboard linking** — `externalUrls` on sessions link back to the swarm dashboard
17
-
18
- ## Setup
19
-
20
- ### 1. Create a Linear OAuth App
21
-
22
- 1. Go to Linear > Settings > API > Applications
23
- 2. Create a new application with:
24
- - **Actor**: Application
25
- - **Callback URL**: `http://localhost:3013/api/trackers/linear/callback` (or your production URL)
26
- - **Webhook URL**: `http://localhost:3013/api/trackers/linear/webhook`
27
- 3. Enable "Agent session events" in webhook settings
28
- 4. Copy the Client ID, Client Secret, and Webhook Signing Secret
29
-
30
- ### 2. Configure Environment
31
-
32
- Add to your `.env`:
33
-
34
- ```bash
35
- LINEAR_CLIENT_ID=your-client-id
36
- LINEAR_CLIENT_SECRET=your-client-secret
37
- LINEAR_REDIRECT_URI=http://localhost:3013/api/trackers/linear/callback
38
- LINEAR_SIGNING_SECRET=your-webhook-signing-secret
39
- ```
40
-
41
- With portless:
42
- ```bash
43
- LINEAR_REDIRECT_URI=https://api.swarm.localhost:1355/api/trackers/linear/callback
44
- ```
45
-
46
- ### 3. Complete OAuth
47
-
48
- Start the server and visit `/api/trackers/linear/authorize` in your browser to complete the OAuth flow.
49
-
50
- ## How It Works
51
-
52
- ### Inbound (Linear to Swarm)
53
-
54
- 1. A user creates an AgentSession in Linear (assigns work to the agent)
55
- 2. Linear sends a webhook to `/api/trackers/linear/webhook`
56
- 3. The webhook handler creates a swarm task linked to the Linear session
57
- 4. The agent acknowledges the session and begins work
58
-
59
- ### Outbound (Swarm to Linear)
60
-
61
- 1. Agent posts activities (thoughts, actions, responses, errors) to the Linear session
62
- 2. On task completion, the response activity is posted and the session is auto-completed
63
- 3. On task failure, an error activity is posted
64
- 4. `externalUrls` are set on the session, linking to the swarm dashboard
65
-
66
- ### Follow-up Messages
67
-
68
- When a user sends a follow-up message in a Linear agent chat:
69
- 1. Linear fires a `prompted` event webhook
70
- 2. The handler creates a new swarm task with the follow-up context
71
- 3. The agent processes the follow-up and responds via session activities
72
-
73
- ## MCP Tools
74
-
75
- | Tool | Description |
76
- |------|-------------|
77
- | `tracker-status` | Check tracker connection status |
78
- | `tracker-link-task` | Link a swarm task to a Linear issue |
79
- | `tracker-link-epic` | Link a swarm epic to a Linear project |
80
- | `tracker-unlink` | Remove a tracker link |
81
- | `tracker-sync-status` | View sync status for linked items |
82
- | `tracker-map-agent` | Map a swarm agent to a Linear user for assignment routing |
83
-
84
- ## Architecture
85
-
86
- The integration is built on a generic tracker abstraction:
87
-
88
- - **`src/oauth/`** — Reusable OAuth module with `oauth_apps`/`oauth_tokens` tables and PKCE support
89
- - **`src/be/db-queries/tracker.ts`** — Generic `tracker_sync` and `tracker_agent_mapping` tables
90
- - **Linear provider** — Implements the tracker interface with Linear-specific webhook handling and AgentSession lifecycle
91
-
92
- This design makes it straightforward to add other ticket trackers (Jira, GitHub Issues, etc.) in the future.
93
-
94
- ## Related
95
-
96
- - [Environment Variables](/docs/reference/environment-variables#linear-integration) — Linear configuration reference
97
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — How tasks created from Linear flow through the swarm
98
- - [Architecture Overview](/docs/architecture/overview) — System architecture including integrations
@@ -1,13 +0,0 @@
1
- {
2
- "title": "Guides",
3
- "pages": [
4
- "deployment",
5
- "slack-integration",
6
- "github-integration",
7
- "gitlab-integration",
8
- "agentmail-integration",
9
- "sentry-integration",
10
- "linear-integration",
11
- "x402-payments"
12
- ]
13
- }
@@ -1,52 +0,0 @@
1
- ---
2
- title: Sentry Integration
3
- description: Enable agents to investigate and triage Sentry issues
4
- ---
5
-
6
- # Sentry Integration
7
-
8
- Docker workers include `sentry-cli` pre-installed, enabling agents to investigate and triage Sentry issues directly.
9
-
10
- ## Setup
11
-
12
- 1. Create an Organization Auth Token at `https://sentry.io/settings/{org}/auth-tokens/` with scopes:
13
- - `event:read` — Read issues and events
14
- - `project:read` — Read project data
15
- - `org:read` — Read organization info
16
-
17
- 2. Add to your worker environment:
18
-
19
- ```bash
20
- SENTRY_AUTH_TOKEN=your-auth-token
21
- SENTRY_ORG=your-org-slug
22
- ```
23
-
24
- 3. Verify authentication in a worker:
25
-
26
- ```bash
27
- sentry-cli info
28
- ```
29
-
30
- ## Usage
31
-
32
- Workers can use the `/investigate-sentry-issue` command to:
33
- - Get issue details and stacktraces
34
- - Analyze breadcrumbs and context
35
- - Resolve, mute, or unresolve issues
36
-
37
- ### Examples
38
-
39
- ```
40
- /investigate-sentry-issue https://sentry.io/organizations/myorg/issues/123456/
41
- ```
42
-
43
- Or just the issue ID:
44
-
45
- ```
46
- /investigate-sentry-issue 123456
47
- ```
48
-
49
- ## Related
50
-
51
- - [Environment Variables](/docs/reference/environment-variables) — Sentry configuration (`SENTRY_AUTH_TOKEN`, `SENTRY_ORG`)
52
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — How Sentry issues become tasks