@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,96 +0,0 @@
1
- ---
2
- title: Memory System
3
- description: How agents build compounding knowledge across sessions
4
- ---
5
-
6
- # Memory System
7
-
8
- Agent Swarm agents aren't stateless. They build compounding knowledge through multiple automatic mechanisms.
9
-
10
- ## How Memory Works
11
-
12
- Every agent has a searchable memory backed by OpenAI embeddings (`text-embedding-3-small`, 512 dimensions). Memories are stored in SQLite and retrieved via brute-force cosine similarity search.
13
-
14
- ### Memory Sources
15
-
16
- Memories are automatically created from:
17
-
18
- - **Session summaries** — At the end of each session, a lightweight model (Haiku) extracts key learnings: mistakes made, patterns discovered, failed approaches, and codebase knowledge. These summaries become searchable memories.
19
- - **Task completions** — Every completed (or failed) task's output is indexed. Failed tasks include notes about what went wrong, so the agent avoids repeating the same mistake.
20
- - **File-based notes** — Agents write to `/workspace/personal/memory/` in their per-agent directory. Files written here are automatically indexed via the PostToolUse hook and can be promoted to swarm scope.
21
- - **Lead-to-worker injection** — The lead agent can push specific learnings into any worker's memory using the `inject-learning` tool, closing the feedback loop.
22
-
23
- ### Memory Scopes
24
-
25
- | Scope | Path | Visibility |
26
- |-------|------|-----------|
27
- | Agent (private) | `/workspace/personal/memory/` | Only the owning agent |
28
- | Swarm (shared) | Promoted via `inject-learning` or epic completion | All agents in the swarm |
29
-
30
- ### Automatic Scope Promotion
31
-
32
- When a task is linked to an epic, its completion output is automatically promoted to **swarm scope** — making it visible to all agents, not just the one that completed it. This ensures that learnings from epic-related work benefit the entire swarm.
33
-
34
- Similarly, the `inject-learning` tool creates swarm-scoped memories by default, so learnings injected by the lead are available to all workers.
35
-
36
- ## Memory Retrieval
37
-
38
- Before starting each task, the runner automatically searches for relevant memories and includes them in the agent's context. Agents are required to run `memory-search` at the start of every task.
39
-
40
- ### Search Process
41
-
42
- 1. Task description is used as the search query (enriched with epic name/goal if linked)
43
- 2. Embedding is generated for the query
44
- 3. Cosine similarity is computed against all stored memories
45
- 4. Top matches are included in the task context as "Relevant Past Knowledge"
46
- 5. For epic-linked tasks, recent completed task summaries from the same epic are also injected
47
-
48
- ### Manual Search
49
-
50
- Agents can also search memories manually using MCP tools:
51
-
52
- - **`memory-search`** — Search with natural language queries. Returns summaries with IDs.
53
- - **`memory-get`** — Retrieve full details of a specific memory by ID.
54
-
55
- ## Writing Memories
56
-
57
- The best practice is to write memories to files immediately when something important is learned:
58
-
59
- ```
60
- Write("/workspace/personal/memory/auth-header-fix.md",
61
- "The API requires Bearer prefix on all auth headers.
62
- Without it, you get a misleading 403 instead of 401.")
63
- ```
64
-
65
- Files are automatically indexed by the PostToolUse hook — no additional action needed.
66
-
67
- ### What to Save
68
-
69
- - Solutions to problems you solved
70
- - Codebase patterns you discovered
71
- - Mistakes you made and how to avoid them
72
- - Important configurations
73
- - Instructions from the lead or user
74
-
75
- ### What Not to Save
76
-
77
- - Session-specific context (temporary state)
78
- - Unverified conclusions
79
- - Information that duplicates existing documentation
80
-
81
- ## Memory Categories
82
-
83
- When the lead injects learnings via `inject-learning`, they're categorized:
84
-
85
- | Category | Purpose |
86
- |----------|---------|
87
- | `mistake-pattern` | Common mistakes to avoid |
88
- | `best-practice` | Preferred approaches |
89
- | `codebase-knowledge` | Facts about the codebase |
90
- | `preference` | User or team preferences |
91
-
92
- ## Related
93
-
94
- - [Hook System](/docs/architecture/hooks) — The PostToolUse hook that auto-indexes memory files
95
- - [Agent Identity & Configuration](/docs/architecture/agents) — How identity files persist across sessions
96
- - [Architecture Overview](/docs/architecture/overview) — System-level view of how memory fits in
@@ -1,4 +0,0 @@
1
- {
2
- "title": "Architecture",
3
- "pages": ["overview", "agents", "memory", "hooks"]
4
- }
@@ -1,172 +0,0 @@
1
- ---
2
- title: Architecture Overview
3
- description: How Agent Swarm is built and how the components fit together
4
- ---
5
-
6
- # Architecture Overview
7
-
8
- Agent Swarm follows a hub-and-spoke architecture where a central MCP API server coordinates communication between agents.
9
-
10
- ## System Diagram
11
-
12
- ```mermaid
13
- graph TD
14
- User["You (Slack / GitHub / Email / CLI)"] --> Lead["Lead Agent"]
15
- Lead <--> API["MCP API Server"]
16
- API <--> DB["SQLite DB"]
17
- Lead --> W1["Worker"]
18
- Lead --> W2["Worker"]
19
- Lead --> W3["Worker"]
20
- W1 -.- D1["Docker container"]
21
- W2 -.- D2["Docker container"]
22
- W3 -.- D3["Docker container"]
23
- ```
24
-
25
- ## Core Components
26
-
27
- ### MCP API Server
28
-
29
- The MCP (Model Context Protocol) server is the central coordination point. It:
30
-
31
- - Exposes tools via the MCP protocol (both STDIO and HTTP transports)
32
- - Manages agent registration and task assignment
33
- - Stores all state in a SQLite database
34
- - Handles integrations (Slack, GitHub, GitLab, AgentMail, Linear webhooks)
35
- - Runs the task scheduler for recurring automation
36
-
37
- The server runs on port `3013` by default and is implemented in `src/http/` (modular route handlers) with tool definitions in `src/server.ts`.
38
-
39
- It also runs three background subsystems:
40
- - **Scheduler** — Polls for scheduled tasks and creates them at the configured interval
41
- - **Workflow Engine** — Redesigned DAG executor with executor registry (8 types), checkpoint durability, webhook/schedule/manual triggers, per-step retry, and version history (see [Workflows](/docs/concepts/workflows))
42
- - **Heartbeat** — A lightweight triage module that sweeps the swarm every 90 seconds (configurable via `HEARTBEAT_INTERVAL_MS`). It uses a 3-tier approach: a preflight gate that bails if the swarm is healthy, code-level triage for routine fixes (stall detection, worker status correction, pool task auto-assignment, stale resource cleanup), and Claude escalation only when ambiguous situations require human reasoning. See [Environment Variables](/docs/reference/environment-variables) for heartbeat configuration.
43
-
44
- ### Lead Agent
45
-
46
- The lead agent is the coordinator. It:
47
-
48
- - Receives incoming tasks from external sources (Slack, GitHub, email)
49
- - Has an **inbox** for triaging incoming messages
50
- - Breaks down complex tasks and delegates to workers
51
- - Monitors worker progress and provides feedback
52
- - Communicates results back to the user
53
- - Can inject learnings into worker memories
54
-
55
- ### Worker Agents
56
-
57
- Workers are the execution layer. Each worker:
58
-
59
- - Runs in an isolated Docker container with a full development environment
60
- - Has access to git, Node.js, Python, Bun, and common CLI tools
61
- - Executes tasks assigned by the lead agent
62
- - Reports progress via the `store-progress` MCP tool
63
- - Can expose HTTP services on port 3000
64
- - Learns from each session and builds compounding knowledge
65
-
66
- ### Docker Runtime
67
-
68
- Each worker container includes:
69
-
70
- - **Languages**: Python 3, Node.js 22, Bun
71
- - **Build tools**: gcc, g++, make, cmake
72
- - **Process manager**: PM2 (for background services)
73
- - **CLI tools**: GitHub CLI (`gh`), GitLab CLI (`glab`), sqlite3
74
- - **Agent tools**: `wts` (git worktree manager), `agent-fs` (persistent shared filesystem)
75
- - **Utilities**: git, git-lfs, vim, nano, jq, curl, wget, ssh
76
- - **Sudo access**: Workers can install packages with `sudo apt-get install`
77
-
78
- ## Data Flow
79
-
80
- ### Task Creation
81
-
82
- 1. User sends a message (Slack DM, GitHub @mention, email, or API call)
83
- 2. MCP server receives the webhook/request
84
- 3. Lead agent's inbox receives the message
85
- 4. Lead agent triages and creates tasks for workers
86
-
87
- ### Task Execution
88
-
89
- 1. Worker polls for or receives a task assignment
90
- 2. Worker starts a Claude Code session with the task context
91
- 3. Worker executes the task, using MCP tools for coordination
92
- 4. Worker reports progress via `store-progress`
93
- 5. On completion, output is saved and the lead is notified
94
-
95
- ### Learning Loop
96
-
97
- 1. At session end, a summary model extracts key learnings
98
- 2. Learnings are embedded and stored in the memory system
99
- 3. On next task, relevant memories are retrieved and included in context
100
- 4. The lead can also inject learnings directly into workers
101
-
102
- ## Project Structure
103
-
104
- ```
105
- agent-swarm/
106
- ├── src/
107
- │ ├── cli.tsx # CLI entry point (Ink/React)
108
- │ ├── http/ # Modular HTTP route handlers
109
- │ │ ├── index.ts # Handler registry & dispatch
110
- │ │ ├── tasks.ts # Task endpoints
111
- │ │ ├── agents.ts # Agent endpoints
112
- │ │ ├── epics.ts # Epic endpoints
113
- │ │ ├── schedules.ts # Schedule endpoints
114
- │ │ ├── core.ts # Core endpoints (join, poll, progress)
115
- │ │ ├── config.ts # Config endpoints
116
- │ │ ├── memory.ts # Memory endpoints
117
- │ │ ├── db-query.ts # Read-only SQL query endpoint (lead-only)
118
- │ │ ├── workflows.ts # Workflow CRUD + trigger endpoints
119
- │ │ └── ... # Additional route modules
120
- │ ├── server.ts # MCP server setup & tool registration
121
- │ ├── tools/ # MCP tool implementations
122
- │ ├── heartbeat/ # Lightweight swarm triage module
123
- │ │ └── heartbeat.ts # 3-tier heartbeat (gate → code triage → escalation)
124
- │ ├── be/ # Backend (database, business logic)
125
- │ │ ├── db.ts # SQLite database
126
- │ │ └── migrations/ # Database migration system
127
- │ ├── workflows/ # Workflow automation engine (DAG executor, triggers, nodes)
128
- │ ├── artifact-sdk/ # Artifact SDK (serve files/apps via localtunnel)
129
- │ ├── providers/ # AI provider adapters (formatCommand for provider-aware prompts)
130
- │ │ ├── types.ts # ProviderAdapter interface
131
- │ │ ├── claude-adapter.ts # Claude Code adapter
132
- │ │ └── pi-mono-adapter.ts # Pi-mono adapter
133
- │ ├── oauth/ # Generic OAuth module (PKCE, token management)
134
- │ ├── gitlab/ # GitLab webhook handlers
135
- │ ├── commands/ # CLI command implementations
136
- │ │ ├── runner.ts # Task runner (polls and spawns sessions)
137
- │ │ ├── worker.ts # Worker agent command
138
- │ │ ├── lead.ts # Lead agent command
139
- │ │ └── artifact.ts # Artifact serve/list/stop commands
140
- │ └── hooks/ # Claude Code hooks
141
- ├── templates/ # Agent templates (official + community)
142
- ├── templates-ui/ # Templates registry (Next.js app)
143
- ├── deploy/ # Deployment scripts
144
- ├── scripts/ # Utility scripts
145
- ├── new-ui/ # Dashboard UI (React + AG Grid)
146
- ├── docker-compose.example.yml
147
- ├── Dockerfile # API server image
148
- ├── Dockerfile.worker # Worker image
149
- └── package.json
150
- ```
151
-
152
- ## Technology Stack
153
-
154
- | Component | Technology |
155
- |-----------|-----------|
156
- | Runtime | Bun |
157
- | API Protocol | MCP (Model Context Protocol) |
158
- | Database | SQLite (via `bun:sqlite`) |
159
- | AI Runtime | Claude Code (headless) or pi-mono (via `HARNESS_PROVIDER`) |
160
- | Containerization | Docker |
161
- | Process Management | PM2 |
162
- | Memory Embeddings | OpenAI `text-embedding-3-small` |
163
- | Dashboard | React + Vite |
164
- | Schema Validation | Zod |
165
-
166
- ## Next Steps
167
-
168
- - [Agent Identity & Configuration](/docs/architecture/agents) — How agents are personalized and evolve
169
- - [Hook System](/docs/architecture/hooks) — The six hooks that fire during each session
170
- - [Memory System](/docs/architecture/memory) — How agents build compounding knowledge
171
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — How tasks flow through the swarm
172
- - [Deployment Guide](/docs/guides/deployment) — Production deployment options
@@ -1,98 +0,0 @@
1
- ---
2
- title: Epics
3
- description: Group related tasks into epics to track multi-step projects, monitor progress, and coordinate work across agents
4
- ---
5
-
6
- # Epics
7
-
8
- Epics are a way to organize related tasks into larger projects. They provide a high-level view of progress across multiple tasks.
9
-
10
- ## Creating an Epic
11
-
12
- ```
13
- create-epic(
14
- name: "auth-system-revamp",
15
- goal: "Replace the legacy auth system with JWT-based authentication",
16
- description: "Full rewrite of the authentication module...",
17
- plan: "## Phase 1\n- Task A\n- Task B\n\n## Phase 2\n..."
18
- )
19
- ```
20
-
21
- ## Epic Properties
22
-
23
- | Property | Description |
24
- |----------|-------------|
25
- | `name` | Unique name for the epic |
26
- | `goal` | The objective this epic achieves |
27
- | `description` | Detailed description |
28
- | `plan` | Implementation plan (markdown) |
29
- | `prd` | Product Requirements Document (markdown) |
30
- | `status` | `draft`, `active`, `paused`, `completed`, `cancelled` |
31
- | `priority` | 0-100 (default: 50) |
32
- | `tags` | Labels for filtering |
33
- | `leadAgentId` | Agent responsible for this epic |
34
- | `planDocPath` | Path to a plan document in the repo |
35
- | `researchDocPath` | Path to a research document |
36
-
37
- ## Managing Tasks in Epics
38
-
39
- ### Assigning Tasks to Epics
40
-
41
- When creating a task, associate it with an epic:
42
-
43
- ```
44
- send-task(task: "Implement JWT token generation", epicId: "epic-uuid")
45
- ```
46
-
47
- Or assign an existing task:
48
-
49
- ```
50
- assign-task-to-epic(taskId: "task-uuid", epicName: "auth-system-revamp")
51
- ```
52
-
53
- ### Removing Tasks from Epics
54
-
55
- ```
56
- unassign-task-from-epic(taskId: "task-uuid")
57
- ```
58
-
59
- The task is kept but no longer associated with the epic.
60
-
61
- ## Tracking Progress
62
-
63
- Use `get-epic-details` to see progress:
64
-
65
- - Total tasks in the epic
66
- - Tasks by status (completed, in progress, pending, etc.)
67
- - Overall completion percentage
68
-
69
- ## GitHub Integration
70
-
71
- Epics can be linked to GitHub:
72
-
73
- | Property | Description |
74
- |----------|-------------|
75
- | `githubRepo` | Repository identifier (e.g., `desplega-ai/agent-swarm`) |
76
- | `githubMilestone` | GitHub milestone to track progress |
77
-
78
- ## Slack Integration
79
-
80
- Epics can have a dedicated Slack thread:
81
-
82
- | Property | Description |
83
- |----------|-------------|
84
- | `slackChannelId` | Slack channel for updates |
85
- | `slackThreadTs` | Thread timestamp for conversation |
86
-
87
- ## Epic Lifecycle
88
-
89
- 1. **Draft** — Epic is being planned, tasks are being defined
90
- 2. **Active** — Work is in progress on the epic's tasks
91
- 3. **Paused** — Work is temporarily on hold
92
- 4. **Completed** — All tasks are done, epic goals achieved
93
- 5. **Cancelled** — Epic was abandoned
94
-
95
- ## Related
96
-
97
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — How individual tasks flow through the swarm
98
- - [MCP Tools Reference](/docs/reference/mcp-tools) — Epic management tools (create-epic, get-epic-details, etc.)
@@ -1,4 +0,0 @@
1
- {
2
- "title": "Concepts",
3
- "pages": ["task-lifecycle", "epics", "services", "scheduling", "workflows"]
4
- }
@@ -1,136 +0,0 @@
1
- ---
2
- title: Scheduled Tasks
3
- description: Automate recurring and one-time tasks with cron-based and delayed scheduling
4
- ---
5
-
6
- # Scheduled Tasks
7
-
8
- Agent Swarm supports both **recurring** and **one-time** schedules to automate task creation. Recurring schedules create tasks at specified intervals, while one-time schedules run once at a specific time or after a delay, then auto-disable.
9
-
10
- ## Creating a Recurring Schedule
11
-
12
- ```
13
- create-schedule(
14
- name: "daily-standup",
15
- taskTemplate: "Generate a daily standup report summarizing yesterday's completed tasks",
16
- cronExpression: "0 9 * * *",
17
- timezone: "America/New_York"
18
- )
19
- ```
20
-
21
- Or use interval-based scheduling:
22
-
23
- ```
24
- create-schedule(
25
- name: "health-check",
26
- taskTemplate: "Check all services are healthy and report any issues",
27
- intervalMs: 3600000
28
- )
29
- ```
30
-
31
- ## Creating a One-Time Schedule
32
-
33
- One-time schedules run once and then auto-disable. Use `delayMs` for a relative delay or `runAt` for an absolute time:
34
-
35
- ```
36
- create-schedule(
37
- name: "deploy-reminder",
38
- scheduleType: "one_time",
39
- taskTemplate: "Remind the team about the deployment at 3 PM",
40
- delayMs: 1800000
41
- )
42
- ```
43
-
44
- ```
45
- create-schedule(
46
- name: "scheduled-report",
47
- scheduleType: "one_time",
48
- taskTemplate: "Generate the quarterly report",
49
- runAt: "2026-03-15T09:00:00Z"
50
- )
51
- ```
52
-
53
- ## Schedule Properties
54
-
55
- | Property | Description |
56
- |----------|-------------|
57
- | `name` | Unique name for the schedule |
58
- | `taskTemplate` | Task description created each time |
59
- | `scheduleType` | `recurring` (default) or `one_time` |
60
- | `cronExpression` | Cron expression for recurring schedules (e.g., `0 9 * * *`) |
61
- | `intervalMs` | Interval in milliseconds for recurring schedules |
62
- | `delayMs` | Delay in milliseconds for one-time schedules |
63
- | `runAt` | ISO datetime for one-time schedules (e.g., `2026-03-15T09:00:00Z`) |
64
- | `timezone` | Timezone for cron schedules (default: UTC) |
65
- | `targetAgentId` | Agent to assign tasks to (omit for task pool) |
66
- | `priority` | Task priority 0-100 (default: 50) |
67
- | `tags` | Tags applied to created tasks |
68
- | `taskType` | Type classification for created tasks |
69
- | `model` | Model for created tasks: `haiku`, `sonnet`, or `opus` (falls back to global config) |
70
- | `enabled` | Whether the schedule is active (default: true) |
71
-
72
- ## Managing Schedules
73
-
74
- ### List Schedules
75
-
76
- ```
77
- list-schedules()
78
- list-schedules(enabled: true)
79
- list-schedules(name: "daily")
80
- list-schedules(scheduleType: "one_time")
81
- ```
82
-
83
- By default, completed one-time schedules are hidden. Pass `hideCompleted: false` to include them.
84
-
85
- ### Update a Schedule
86
-
87
- ```
88
- update-schedule(name: "daily-standup", cronExpression: "0 10 * * *")
89
- update-schedule(name: "daily-standup", enabled: false)
90
- ```
91
-
92
- ### Delete a Schedule
93
-
94
- ```
95
- delete-schedule(name: "daily-standup")
96
- ```
97
-
98
- ### Run Immediately
99
-
100
- Trigger a scheduled task now without waiting for the next interval:
101
-
102
- ```
103
- run-schedule-now(name: "daily-standup")
104
- ```
105
-
106
- This creates a task immediately but does not affect the regular schedule timing.
107
-
108
- ## Cron Expression Examples
109
-
110
- | Expression | Description |
111
- |-----------|-------------|
112
- | `0 9 * * *` | Every day at 9:00 AM |
113
- | `0 9 * * 1-5` | Weekdays at 9:00 AM |
114
- | `*/30 * * * *` | Every 30 minutes |
115
- | `0 0 * * 0` | Every Sunday at midnight |
116
- | `0 9,17 * * *` | At 9 AM and 5 PM daily |
117
-
118
- ## How Scheduling Works
119
-
120
- The MCP server runs a scheduler that polls for due schedules at a configurable interval (default: 10 seconds, set via `SCHEDULER_INTERVAL_MS`).
121
-
122
- When a schedule is due:
123
- 1. A new task is created with the schedule's `taskTemplate`
124
- 2. The task is linked back to its schedule via a `scheduleId` field (use the `scheduleId` filter in `get-tasks` to find all tasks from a schedule)
125
- 3. If `targetAgentId` is set, the task is assigned to that agent; otherwise it goes into the unassigned pool
126
- 4. If `model` is set, the task inherits that model setting
127
- 5. The schedule's `lastRunAt` is updated
128
- 6. **One-time schedules** are automatically disabled after execution
129
-
130
- Only the schedule creator or the lead agent can update or delete schedules.
131
-
132
- ## Related
133
-
134
- - [Task Lifecycle](/docs/concepts/task-lifecycle) — How scheduled tasks flow through the system after creation
135
- - [Environment Variables](/docs/reference/environment-variables) — `SCHEDULER_INTERVAL_MS` and other configuration
136
- - [MCP Tools Reference](/docs/reference/mcp-tools) — Scheduling tools (create-schedule, list-schedules, etc.)
@@ -1,104 +0,0 @@
1
- ---
2
- title: Service Discovery
3
- description: Register, discover, and health-check HTTP services that agents expose for inter-agent communication
4
- ---
5
-
6
- # Service Discovery
7
-
8
- Workers can run background HTTP services on port 3000 and register them for discovery by other agents. This enables inter-agent communication beyond the MCP tools.
9
-
10
- ## How It Works
11
-
12
- Each worker container exposes port 3000. When a worker runs an HTTP service, it registers it with the MCP server for discovery. Other agents can then find and communicate with the service.
13
-
14
- ### Service URL Pattern
15
-
16
- ```
17
- https://{agentId}.{SWARM_URL}
18
- ```
19
-
20
- The URL is automatically derived from the agent's ID and the swarm's base domain.
21
-
22
- ## Starting a Service
23
-
24
- ### 1. Start with PM2
25
-
26
- ```bash
27
- pm2 start /workspace/myapp/server.js --name my-api
28
- ```
29
-
30
- ### 2. Register for Discovery
31
-
32
- Use the `register-service` MCP tool:
33
-
34
- ```
35
- register-service(
36
- script: "/workspace/myapp/server.js",
37
- description: "My API service"
38
- )
39
- ```
40
-
41
- ### 3. Mark as Healthy
42
-
43
- ```
44
- update-service-status(name: "my-api", status: "healthy")
45
- ```
46
-
47
- ## Finding Services
48
-
49
- Other agents can discover services using:
50
-
51
- ```
52
- list-services()
53
- ```
54
-
55
- Filter by agent or name:
56
-
57
- ```
58
- list-services(agentId: "worker-uuid")
59
- list-services(name: "my-api")
60
- ```
61
-
62
- ## Health Checks
63
-
64
- Services should implement a `/health` endpoint that returns HTTP 200 OK. The swarm monitors service health status.
65
-
66
- ### Health Statuses
67
-
68
- | Status | Description |
69
- |--------|-------------|
70
- | `starting` | Service is initializing |
71
- | `healthy` | Service is running and responding |
72
- | `unhealthy` | Service is not responding correctly |
73
- | `stopped` | Service has been stopped |
74
-
75
- ## PM2 Management
76
-
77
- PM2 is the recommended process manager for background services:
78
-
79
- ```bash
80
- pm2 start <script> --name <name> # Start a service
81
- pm2 stop|restart|delete <name> # Manage services
82
- pm2 logs [name] # View logs
83
- pm2 list # Show running processes
84
- ```
85
-
86
- ## Auto-Restart
87
-
88
- Registered services are automatically restarted on container restart via `ecosystem.config.js`. The PM2 state is saved during the Stop hook and restored on container start.
89
-
90
- ## Stopping a Service
91
-
92
- ```bash
93
- # 1. Stop locally
94
- pm2 delete my-api
95
-
96
- # 2. Remove from registry
97
- unregister-service(name: "my-api")
98
- ```
99
-
100
- ## Related
101
-
102
- - [Architecture Overview](/docs/architecture/overview) — How services fit into the swarm architecture
103
- - [Hook System](/docs/architecture/hooks) — The Stop hook saves PM2 state for auto-restart
104
- - [MCP Tools Reference](/docs/reference/mcp-tools) — Service discovery tools (register-service, list-services, etc.)