@desplega.ai/agent-swarm 1.49.0 → 1.51.2

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 (520) hide show
  1. package/README.md +1 -1
  2. package/openapi.json +582 -3
  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 +591 -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/seed.ts +62 -0
  13. package/src/commands/runner.ts +186 -93
  14. package/src/commands/templates.ts +172 -0
  15. package/src/github/handlers.ts +292 -77
  16. package/src/github/mentions-aliases.test.ts +73 -0
  17. package/src/github/mentions.test.ts +3 -3
  18. package/src/github/mentions.ts +32 -6
  19. package/src/github/templates.ts +398 -0
  20. package/src/gitlab/handlers.ts +63 -22
  21. package/src/gitlab/templates.ts +140 -0
  22. package/src/heartbeat/heartbeat.ts +19 -10
  23. package/src/heartbeat/templates.ts +30 -0
  24. package/src/http/active-sessions.ts +27 -0
  25. package/src/http/index.ts +5 -2
  26. package/src/http/poll.ts +135 -14
  27. package/src/http/prompt-templates.ts +412 -0
  28. package/src/http/schedules.ts +35 -0
  29. package/src/http/workflows.ts +8 -0
  30. package/src/linear/sync.ts +28 -4
  31. package/src/linear/templates.ts +47 -0
  32. package/src/prompts/base-prompt.ts +33 -490
  33. package/src/prompts/registry.ts +57 -0
  34. package/src/prompts/resolver.ts +296 -0
  35. package/src/prompts/session-templates.ts +604 -0
  36. package/src/providers/claude-adapter.ts +15 -2
  37. package/src/providers/pi-mono-extension.ts +5 -1
  38. package/src/scheduler/scheduler.ts +125 -91
  39. package/src/server.ts +15 -0
  40. package/src/slack/assistant.ts +7 -4
  41. package/src/slack/channel-activity.ts +177 -0
  42. package/src/slack/handlers.ts +21 -6
  43. package/src/slack/templates.ts +55 -0
  44. package/src/tests/artifact-sdk.test.ts +12 -12
  45. package/src/tests/base-prompt.test.ts +49 -49
  46. package/src/tests/channel-activity.test.ts +363 -0
  47. package/src/tests/heartbeat.test.ts +1 -0
  48. package/src/tests/linear-webhook.test.ts +7 -3
  49. package/src/tests/pool-session-logs.test.ts +199 -0
  50. package/src/tests/prompt-template-github.test.ts +682 -0
  51. package/src/tests/prompt-template-remaining.test.ts +504 -0
  52. package/src/tests/prompt-template-resolver.test.ts +621 -0
  53. package/src/tests/prompt-template-session.test.ts +363 -0
  54. package/src/tests/prompt-templates-db.test.ts +616 -0
  55. package/src/tests/self-improvement.test.ts +8 -7
  56. package/src/tests/slack-metadata-inheritance.test.ts +1 -1
  57. package/src/tests/slack-thread-followups.test.ts +1 -1
  58. package/src/tests/structured-output.test.ts +0 -4
  59. package/src/tests/tool-annotations.test.ts +1 -1
  60. package/src/tests/update-profile-agentid.test.ts +248 -0
  61. package/src/tests/update-profile-auth.test.ts +195 -0
  62. package/src/tests/workflow-async-v2.test.ts +126 -4
  63. package/src/tests/workflow-definition-validation.test.ts +76 -0
  64. package/src/tests/workflow-retry-v2.test.ts +1 -1
  65. package/src/tests/workflow-schedule-trigger.test.ts +104 -0
  66. package/src/tests/workflow-workspace.test.ts +272 -0
  67. package/src/tools/prompt-templates/delete.ts +86 -0
  68. package/src/tools/prompt-templates/get.ts +89 -0
  69. package/src/tools/prompt-templates/index.ts +5 -0
  70. package/src/tools/prompt-templates/list.ts +95 -0
  71. package/src/tools/prompt-templates/preview.ts +84 -0
  72. package/src/tools/prompt-templates/set.ts +117 -0
  73. package/src/tools/store-progress.ts +22 -4
  74. package/src/tools/task-action.ts +20 -0
  75. package/src/tools/templates.ts +53 -0
  76. package/src/tools/tool-config.ts +7 -0
  77. package/src/tools/update-profile.ts +106 -34
  78. package/src/tools/workflows/create-workflow.ts +19 -1
  79. package/src/tools/workflows/update-workflow.ts +16 -1
  80. package/src/types.ts +55 -2
  81. package/src/workflows/definition.ts +30 -12
  82. package/src/workflows/engine.ts +40 -14
  83. package/src/workflows/executors/agent-task.ts +14 -3
  84. package/src/workflows/index.ts +1 -1
  85. package/src/workflows/resume.ts +98 -12
  86. package/src/workflows/triggers.ts +31 -2
  87. package/src/workflows/version.ts +2 -0
  88. package/.claude/settings.json +0 -84
  89. package/.claude/settings.local.json +0 -117
  90. package/.dockerignore +0 -61
  91. package/.editorconfig +0 -15
  92. package/.entire/settings.json +0 -4
  93. package/.env.docker.example +0 -56
  94. package/.env.example +0 -78
  95. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -78
  96. package/.github/ISSUE_TEMPLATE/community-template.yml +0 -77
  97. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  98. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -60
  99. package/.github/PULL_REQUEST_TEMPLATE/community-template.md +0 -29
  100. package/.github/workflows/ci.yml +0 -52
  101. package/.github/workflows/docker-and-deploy.yml +0 -132
  102. package/.github/workflows/merge-gate.yml +0 -233
  103. package/.opencode/plugins/entire.ts +0 -133
  104. package/.superset/config.json +0 -6
  105. package/.wts-config.json +0 -4
  106. package/.wts-setup.ts +0 -171
  107. package/CHANGELOG.md +0 -447
  108. package/CLAUDE.md +0 -521
  109. package/CONTRIBUTING.md +0 -315
  110. package/DEPLOYMENT.md +0 -622
  111. package/Dockerfile +0 -65
  112. package/Dockerfile.worker +0 -189
  113. package/MCP.md +0 -841
  114. package/UI.md +0 -40
  115. package/api-entrypoint.sh +0 -56
  116. package/assets/agent-swarm-logo-orange.png +0 -0
  117. package/assets/agent-swarm-logo.png +0 -0
  118. package/assets/agent-swarm.mp4 +0 -0
  119. package/assets/agent-swarm.png +0 -0
  120. package/biome.json +0 -39
  121. package/deploy/DEPLOY.md +0 -60
  122. package/deploy/agent-swarm.service +0 -17
  123. package/deploy/docker-push.ts +0 -30
  124. package/deploy/install.ts +0 -85
  125. package/deploy/prod-db.ts +0 -42
  126. package/deploy/uninstall.ts +0 -12
  127. package/deploy/update.ts +0 -21
  128. package/depot.json +0 -1
  129. package/docker-compose.example.yml +0 -350
  130. package/docker-compose.local.yml +0 -119
  131. package/docker-entrypoint.sh +0 -632
  132. package/docs-site/app/api/search/route.ts +0 -4
  133. package/docs-site/app/docs/[[...slug]]/page.tsx +0 -87
  134. package/docs-site/app/docs/layout.tsx +0 -12
  135. package/docs-site/app/globals.css +0 -24
  136. package/docs-site/app/layout.config.tsx +0 -34
  137. package/docs-site/app/layout.tsx +0 -119
  138. package/docs-site/app/llms-full.txt/route.ts +0 -11
  139. package/docs-site/app/llms.mdx/docs/[[...slug]]/route.ts +0 -24
  140. package/docs-site/app/llms.txt/route.ts +0 -8
  141. package/docs-site/app/page.tsx +0 -5
  142. package/docs-site/app/robots.ts +0 -13
  143. package/docs-site/app/sitemap.ts +0 -37
  144. package/docs-site/components/api-page.client.tsx +0 -4
  145. package/docs-site/components/api-page.tsx +0 -7
  146. package/docs-site/components/mdx/mermaid.tsx +0 -55
  147. package/docs-site/content/docs/(documentation)/architecture/agents.mdx +0 -117
  148. package/docs-site/content/docs/(documentation)/architecture/hooks.mdx +0 -77
  149. package/docs-site/content/docs/(documentation)/architecture/memory.mdx +0 -96
  150. package/docs-site/content/docs/(documentation)/architecture/meta.json +0 -4
  151. package/docs-site/content/docs/(documentation)/architecture/overview.mdx +0 -172
  152. package/docs-site/content/docs/(documentation)/concepts/epics.mdx +0 -98
  153. package/docs-site/content/docs/(documentation)/concepts/meta.json +0 -4
  154. package/docs-site/content/docs/(documentation)/concepts/scheduling.mdx +0 -136
  155. package/docs-site/content/docs/(documentation)/concepts/services.mdx +0 -104
  156. package/docs-site/content/docs/(documentation)/concepts/task-lifecycle.mdx +0 -148
  157. package/docs-site/content/docs/(documentation)/concepts/workflows.mdx +0 -209
  158. package/docs-site/content/docs/(documentation)/contributing.mdx +0 -158
  159. package/docs-site/content/docs/(documentation)/getting-started.mdx +0 -157
  160. package/docs-site/content/docs/(documentation)/guides/agentmail-integration.mdx +0 -79
  161. package/docs-site/content/docs/(documentation)/guides/deployment.mdx +0 -171
  162. package/docs-site/content/docs/(documentation)/guides/github-integration.mdx +0 -81
  163. package/docs-site/content/docs/(documentation)/guides/gitlab-integration.mdx +0 -93
  164. package/docs-site/content/docs/(documentation)/guides/linear-integration.mdx +0 -98
  165. package/docs-site/content/docs/(documentation)/guides/meta.json +0 -13
  166. package/docs-site/content/docs/(documentation)/guides/sentry-integration.mdx +0 -52
  167. package/docs-site/content/docs/(documentation)/guides/slack-integration.mdx +0 -179
  168. package/docs-site/content/docs/(documentation)/guides/x402-payments.mdx +0 -154
  169. package/docs-site/content/docs/(documentation)/index.mdx +0 -65
  170. package/docs-site/content/docs/(documentation)/meta.json +0 -19
  171. package/docs-site/content/docs/(documentation)/reference/cli.mdx +0 -241
  172. package/docs-site/content/docs/(documentation)/reference/environment-variables.mdx +0 -205
  173. package/docs-site/content/docs/(documentation)/reference/mcp-tools.mdx +0 -449
  174. package/docs-site/content/docs/(documentation)/reference/meta.json +0 -4
  175. package/docs-site/content/docs/api-reference/active-sessions.mdx +0 -9
  176. package/docs-site/content/docs/api-reference/agents.mdx +0 -9
  177. package/docs-site/content/docs/api-reference/channels.mdx +0 -9
  178. package/docs-site/content/docs/api-reference/config.mdx +0 -9
  179. package/docs-site/content/docs/api-reference/debug.mdx +0 -9
  180. package/docs-site/content/docs/api-reference/ecosystem.mdx +0 -9
  181. package/docs-site/content/docs/api-reference/epics.mdx +0 -9
  182. package/docs-site/content/docs/api-reference/index.mdx +0 -32
  183. package/docs-site/content/docs/api-reference/memory.mdx +0 -9
  184. package/docs-site/content/docs/api-reference/meta.json +0 -25
  185. package/docs-site/content/docs/api-reference/poll.mdx +0 -9
  186. package/docs-site/content/docs/api-reference/repos.mdx +0 -9
  187. package/docs-site/content/docs/api-reference/schedules.mdx +0 -9
  188. package/docs-site/content/docs/api-reference/session-data.mdx +0 -9
  189. package/docs-site/content/docs/api-reference/stats.mdx +0 -9
  190. package/docs-site/content/docs/api-reference/tasks.mdx +0 -9
  191. package/docs-site/content/docs/api-reference/trackers.mdx +0 -9
  192. package/docs-site/content/docs/api-reference/webhooks.mdx +0 -9
  193. package/docs-site/content/docs/api-reference/workflows.mdx +0 -9
  194. package/docs-site/content/docs/meta.json +0 -3
  195. package/docs-site/lib/get-llm-text.ts +0 -10
  196. package/docs-site/lib/openapi.ts +0 -23
  197. package/docs-site/lib/source.ts +0 -8
  198. package/docs-site/mdx-components.tsx +0 -13
  199. package/docs-site/next.config.mjs +0 -29
  200. package/docs-site/package.json +0 -35
  201. package/docs-site/pnpm-lock.yaml +0 -5407
  202. package/docs-site/postcss.config.mjs +0 -8
  203. package/docs-site/public/logo.png +0 -0
  204. package/docs-site/scripts/generate-docs.ts +0 -171
  205. package/docs-site/source.config.ts +0 -17
  206. package/docs-site/tsconfig.json +0 -46
  207. package/ecosystem.config.cjs +0 -66
  208. package/landing/next.config.ts +0 -14
  209. package/landing/package.json +0 -31
  210. package/landing/pnpm-lock.yaml +0 -1091
  211. package/landing/postcss.config.mjs +0 -8
  212. package/landing/public/apple-touch-icon.png +0 -0
  213. package/landing/public/favicon.ico +0 -0
  214. package/landing/public/logo.png +0 -0
  215. package/landing/public/og-image.png +0 -0
  216. package/landing/public/omghost-desplega.svg +0 -30
  217. package/landing/public/omghost-openfort.svg +0 -9
  218. package/landing/src/app/actions/waitlist.ts +0 -25
  219. package/landing/src/app/blog/openfort-hackathon/page.tsx +0 -863
  220. package/landing/src/app/blog/page.tsx +0 -162
  221. package/landing/src/app/blog/swarm-metrics/page.tsx +0 -685
  222. package/landing/src/app/examples/page.tsx +0 -174
  223. package/landing/src/app/examples/x402/page.tsx +0 -456
  224. package/landing/src/app/globals.css +0 -122
  225. package/landing/src/app/layout.tsx +0 -134
  226. package/landing/src/app/page.tsx +0 -27
  227. package/landing/src/app/robots.ts +0 -13
  228. package/landing/src/app/sitemap.ts +0 -44
  229. package/landing/src/components/architecture.tsx +0 -163
  230. package/landing/src/components/cta.tsx +0 -52
  231. package/landing/src/components/features.tsx +0 -160
  232. package/landing/src/components/footer.tsx +0 -100
  233. package/landing/src/components/hero.tsx +0 -217
  234. package/landing/src/components/how-it-works.tsx +0 -165
  235. package/landing/src/components/navbar.tsx +0 -147
  236. package/landing/src/components/waitlist.tsx +0 -110
  237. package/landing/src/components/why-choose.tsx +0 -149
  238. package/landing/src/components/workshops.tsx +0 -328
  239. package/landing/src/lib/utils.ts +0 -6
  240. package/landing/tsconfig.json +0 -41
  241. package/misc/transcripts/2026-03-09-pi-mono-e2e-verification.md +0 -154
  242. package/new-ui/CLAUDE.md +0 -92
  243. package/new-ui/README.md +0 -73
  244. package/new-ui/biome.json +0 -42
  245. package/new-ui/components.json +0 -21
  246. package/new-ui/index.html +0 -25
  247. package/new-ui/package.json +0 -49
  248. package/new-ui/pnpm-lock.yaml +0 -4845
  249. package/new-ui/public/logo.png +0 -0
  250. package/new-ui/src/api/client.ts +0 -814
  251. package/new-ui/src/api/hooks/index.ts +0 -64
  252. package/new-ui/src/api/hooks/use-agents.ts +0 -58
  253. package/new-ui/src/api/hooks/use-channels.ts +0 -115
  254. package/new-ui/src/api/hooks/use-config-api.ts +0 -46
  255. package/new-ui/src/api/hooks/use-costs.ts +0 -122
  256. package/new-ui/src/api/hooks/use-db-query.ts +0 -29
  257. package/new-ui/src/api/hooks/use-epics.ts +0 -75
  258. package/new-ui/src/api/hooks/use-repos.ts +0 -61
  259. package/new-ui/src/api/hooks/use-schedules.ts +0 -81
  260. package/new-ui/src/api/hooks/use-services.ts +0 -16
  261. package/new-ui/src/api/hooks/use-stats.ts +0 -27
  262. package/new-ui/src/api/hooks/use-tasks.ts +0 -89
  263. package/new-ui/src/api/hooks/use-workflows.ts +0 -109
  264. package/new-ui/src/api/types.ts +0 -549
  265. package/new-ui/src/app/App.tsx +0 -13
  266. package/new-ui/src/app/providers.tsx +0 -32
  267. package/new-ui/src/app/router.tsx +0 -52
  268. package/new-ui/src/components/layout/app-header.tsx +0 -47
  269. package/new-ui/src/components/layout/app-sidebar.tsx +0 -128
  270. package/new-ui/src/components/layout/breadcrumbs.tsx +0 -57
  271. package/new-ui/src/components/layout/config-guard.tsx +0 -22
  272. package/new-ui/src/components/layout/root-layout.tsx +0 -40
  273. package/new-ui/src/components/layout/swarm-switcher.tsx +0 -85
  274. package/new-ui/src/components/shared/command-menu.tsx +0 -131
  275. package/new-ui/src/components/shared/data-grid.tsx +0 -141
  276. package/new-ui/src/components/shared/empty-state.tsx +0 -24
  277. package/new-ui/src/components/shared/error-boundary.tsx +0 -72
  278. package/new-ui/src/components/shared/json-viewer.tsx +0 -47
  279. package/new-ui/src/components/shared/name-connection-modal.tsx +0 -99
  280. package/new-ui/src/components/shared/page-skeleton.tsx +0 -16
  281. package/new-ui/src/components/shared/session-log-viewer.tsx +0 -364
  282. package/new-ui/src/components/shared/stats-bar.tsx +0 -132
  283. package/new-ui/src/components/shared/status-badge.tsx +0 -131
  284. package/new-ui/src/components/shared/usage-summary.tsx +0 -179
  285. package/new-ui/src/components/ui/alert-dialog.tsx +0 -176
  286. package/new-ui/src/components/ui/alert.tsx +0 -60
  287. package/new-ui/src/components/ui/avatar.tsx +0 -96
  288. package/new-ui/src/components/ui/badge.tsx +0 -46
  289. package/new-ui/src/components/ui/button.tsx +0 -62
  290. package/new-ui/src/components/ui/card.tsx +0 -75
  291. package/new-ui/src/components/ui/command.tsx +0 -160
  292. package/new-ui/src/components/ui/dialog.tsx +0 -143
  293. package/new-ui/src/components/ui/dropdown-menu.tsx +0 -226
  294. package/new-ui/src/components/ui/input.tsx +0 -21
  295. package/new-ui/src/components/ui/label.tsx +0 -19
  296. package/new-ui/src/components/ui/progress.tsx +0 -26
  297. package/new-ui/src/components/ui/scroll-area.tsx +0 -54
  298. package/new-ui/src/components/ui/select.tsx +0 -175
  299. package/new-ui/src/components/ui/separator.tsx +0 -28
  300. package/new-ui/src/components/ui/sheet.tsx +0 -132
  301. package/new-ui/src/components/ui/sidebar.tsx +0 -691
  302. package/new-ui/src/components/ui/skeleton.tsx +0 -13
  303. package/new-ui/src/components/ui/sonner.tsx +0 -35
  304. package/new-ui/src/components/ui/switch.tsx +0 -33
  305. package/new-ui/src/components/ui/table.tsx +0 -92
  306. package/new-ui/src/components/ui/tabs.tsx +0 -79
  307. package/new-ui/src/components/ui/textarea.tsx +0 -18
  308. package/new-ui/src/components/ui/tooltip.tsx +0 -51
  309. package/new-ui/src/components/workflows/action-node.tsx +0 -53
  310. package/new-ui/src/components/workflows/condition-node.tsx +0 -50
  311. package/new-ui/src/components/workflows/graph-utils.ts +0 -124
  312. package/new-ui/src/components/workflows/json-tree.tsx +0 -189
  313. package/new-ui/src/components/workflows/node-styles.ts +0 -10
  314. package/new-ui/src/components/workflows/step-detail-sheet.tsx +0 -87
  315. package/new-ui/src/components/workflows/trigger-node.tsx +0 -41
  316. package/new-ui/src/components/workflows/workflow-graph.tsx +0 -65
  317. package/new-ui/src/hooks/use-auto-scroll.ts +0 -82
  318. package/new-ui/src/hooks/use-config.ts +0 -203
  319. package/new-ui/src/hooks/use-keyboard-shortcuts.ts +0 -41
  320. package/new-ui/src/hooks/use-mobile.ts +0 -19
  321. package/new-ui/src/hooks/use-theme.ts +0 -60
  322. package/new-ui/src/lib/config.ts +0 -188
  323. package/new-ui/src/lib/slugs.ts +0 -71
  324. package/new-ui/src/lib/utils.ts +0 -120
  325. package/new-ui/src/main.tsx +0 -11
  326. package/new-ui/src/pages/agents/[id]/page.tsx +0 -492
  327. package/new-ui/src/pages/agents/page.tsx +0 -134
  328. package/new-ui/src/pages/chat/page.tsx +0 -674
  329. package/new-ui/src/pages/config/page.tsx +0 -1109
  330. package/new-ui/src/pages/dashboard/page.tsx +0 -454
  331. package/new-ui/src/pages/debug/page.tsx +0 -275
  332. package/new-ui/src/pages/epics/[id]/page.tsx +0 -809
  333. package/new-ui/src/pages/epics/page.tsx +0 -321
  334. package/new-ui/src/pages/not-found/page.tsx +0 -18
  335. package/new-ui/src/pages/repos/page.tsx +0 -369
  336. package/new-ui/src/pages/schedules/[id]/page.tsx +0 -664
  337. package/new-ui/src/pages/schedules/page.tsx +0 -477
  338. package/new-ui/src/pages/services/page.tsx +0 -128
  339. package/new-ui/src/pages/tasks/[id]/page.tsx +0 -670
  340. package/new-ui/src/pages/tasks/page.tsx +0 -592
  341. package/new-ui/src/pages/usage/page.tsx +0 -195
  342. package/new-ui/src/pages/workflow-runs/[id]/page.tsx +0 -363
  343. package/new-ui/src/pages/workflows/[id]/page.tsx +0 -417
  344. package/new-ui/src/pages/workflows/page.tsx +0 -266
  345. package/new-ui/src/styles/ag-grid.css +0 -36
  346. package/new-ui/src/styles/globals.css +0 -213
  347. package/new-ui/test-results/.last-run.json +0 -4
  348. package/new-ui/tsconfig.app.json +0 -34
  349. package/new-ui/tsconfig.json +0 -4
  350. package/new-ui/tsconfig.node.json +0 -26
  351. package/new-ui/vercel.json +0 -4
  352. package/new-ui/vite.config.ts +0 -28
  353. package/plugin/README.md +0 -1
  354. package/plugin/build-pi-skills.ts +0 -233
  355. package/plugin/hooks/hooks.json +0 -71
  356. package/prek.toml +0 -75
  357. package/pyproject.toml +0 -9
  358. package/scripts/check-db-boundary.sh +0 -60
  359. package/scripts/e2e-docker-provider.ts +0 -820
  360. package/scripts/e2e-io-schemas-test.ts +0 -807
  361. package/scripts/e2e-provider-test.ts +0 -220
  362. package/scripts/e2e-workflow-redesign.sh +0 -229
  363. package/scripts/e2e-workflow-test.sh +0 -285
  364. package/scripts/e2e-workflow-test.ts +0 -857
  365. package/scripts/generate-mcp-docs.ts +0 -415
  366. package/scripts/generate-openapi.ts +0 -26
  367. package/scripts/measure-tool-tokens.ts +0 -118
  368. package/scripts/x402-e2e-test.ts +0 -195
  369. package/scripts/x402-test-server.ts +0 -236
  370. package/scripts/x402-testnet-e2e.ts +0 -668
  371. package/slack-manifest.json +0 -88
  372. package/templates-ui/README.md +0 -46
  373. package/templates-ui/components.json +0 -17
  374. package/templates-ui/eslint.config.mjs +0 -18
  375. package/templates-ui/next.config.ts +0 -7
  376. package/templates-ui/package.json +0 -35
  377. package/templates-ui/pnpm-lock.yaml +0 -4571
  378. package/templates-ui/postcss.config.mjs +0 -7
  379. package/templates-ui/public/file.svg +0 -1
  380. package/templates-ui/public/globe.svg +0 -1
  381. package/templates-ui/public/logo.png +0 -0
  382. package/templates-ui/public/next.svg +0 -1
  383. package/templates-ui/public/vercel.svg +0 -1
  384. package/templates-ui/public/window.svg +0 -1
  385. package/templates-ui/src/app/[category]/[name]/page.tsx +0 -89
  386. package/templates-ui/src/app/api/templates/[...slug]/route.ts +0 -52
  387. package/templates-ui/src/app/api/templates/route.ts +0 -18
  388. package/templates-ui/src/app/builder/page.tsx +0 -37
  389. package/templates-ui/src/app/globals.css +0 -94
  390. package/templates-ui/src/app/layout.tsx +0 -79
  391. package/templates-ui/src/app/page.tsx +0 -38
  392. package/templates-ui/src/app/robots.ts +0 -11
  393. package/templates-ui/src/app/sitemap.ts +0 -31
  394. package/templates-ui/src/components/compose-builder.tsx +0 -442
  395. package/templates-ui/src/components/compose-preview.tsx +0 -117
  396. package/templates-ui/src/components/file-preview.tsx +0 -77
  397. package/templates-ui/src/components/footer.tsx +0 -40
  398. package/templates-ui/src/components/header.tsx +0 -41
  399. package/templates-ui/src/components/template-card.tsx +0 -87
  400. package/templates-ui/src/components/template-detail.tsx +0 -125
  401. package/templates-ui/src/components/template-gallery.tsx +0 -263
  402. package/templates-ui/src/components/ui/badge.tsx +0 -36
  403. package/templates-ui/src/components/ui/button.tsx +0 -57
  404. package/templates-ui/src/components/ui/card.tsx +0 -76
  405. package/templates-ui/src/components/ui/separator.tsx +0 -31
  406. package/templates-ui/src/components/ui/tooltip.tsx +0 -32
  407. package/templates-ui/src/lib/compose-generator.ts +0 -241
  408. package/templates-ui/src/lib/templates.ts +0 -137
  409. package/templates-ui/src/lib/utils.ts +0 -6
  410. package/templates-ui/tsconfig.json +0 -34
  411. package/thoughts/research/2026-02-28-openfort-viem-x402-research.md +0 -679
  412. package/thoughts/research/2026-02-28-x402-payments-research.md +0 -686
  413. package/thoughts/researcher/plans/2026-02-20-agent-self-improvement-plan.md +0 -282
  414. package/thoughts/researcher/research/2026-02-20-agent-self-improvement.md +0 -492
  415. package/thoughts/shared/plans/.gitkeep +0 -0
  416. package/thoughts/shared/plans/2025-12-18-slack-integration.md +0 -1195
  417. package/thoughts/shared/plans/2025-12-19-agent-log-streaming.md +0 -732
  418. package/thoughts/shared/plans/2025-12-19-role-based-swarm-plugin.md +0 -361
  419. package/thoughts/shared/plans/2025-12-20-mobile-responsive-ui.md +0 -501
  420. package/thoughts/shared/plans/2025-12-20-startup-team-swarm.md +0 -560
  421. package/thoughts/shared/plans/2025-12-23-runner-level-polling.md +0 -934
  422. package/thoughts/shared/plans/2025-12-23-runner-session-logs.md +0 -1000
  423. package/thoughts/shared/plans/2025-12-23-worker-lead-spawn-triggers.md +0 -568
  424. package/thoughts/shared/plans/2026-01-09-inverse-teleport.md +0 -1516
  425. package/thoughts/shared/plans/2026-01-12-agent-rename-pm2-control.md +0 -1133
  426. package/thoughts/shared/plans/2026-01-12-github-app-integration.md +0 -380
  427. package/thoughts/shared/plans/2026-01-12-lead-inbox-model.md +0 -876
  428. package/thoughts/shared/plans/2026-01-12-ralph-wiggum-integration.md +0 -463
  429. package/thoughts/shared/plans/2026-01-13-agent-concurrency.md +0 -691
  430. package/thoughts/shared/plans/2026-01-13-github-assignment-handling.md +0 -690
  431. package/thoughts/shared/plans/2026-01-13-prevent-duplicate-trigger-processing.md +0 -1071
  432. package/thoughts/shared/plans/2026-01-14-fix-slack-thread-context.md +0 -507
  433. package/thoughts/shared/plans/2026-01-15-scheduled-tasks-implementation.md +0 -565
  434. package/thoughts/shared/plans/2026-01-15-usage-cost-tracking-ui.md +0 -1479
  435. package/thoughts/shared/plans/2026-01-16-epics-feature-implementation.md +0 -1230
  436. package/thoughts/shared/plans/2026-02-26-mcp-tool-context-reduction.md +0 -282
  437. package/thoughts/shared/plans/2026-03-02-claude-context-mode-integration.md +0 -328
  438. package/thoughts/shared/plans/2026-03-02-code-level-heartbeat.md +0 -224
  439. package/thoughts/shared/research/.gitkeep +0 -0
  440. package/thoughts/shared/research/2025-01-09-inverse-teleport-plan-review.md +0 -420
  441. package/thoughts/shared/research/2025-12-18-slack-integration.md +0 -442
  442. package/thoughts/shared/research/2025-12-19-agent-log-streaming.md +0 -339
  443. package/thoughts/shared/research/2025-12-19-agent-secrets-cli-research.md +0 -390
  444. package/thoughts/shared/research/2025-12-21-gemini-cli-integration.md +0 -376
  445. package/thoughts/shared/research/2025-12-22-runner-loop-architecture.md +0 -582
  446. package/thoughts/shared/research/2025-12-22-setup-experience-improvements.md +0 -264
  447. package/thoughts/shared/research/2026-01-13-lead-duplicate-trigger-processing.md +0 -223
  448. package/thoughts/shared/research/2026-01-14-lead-slack-thread-context.md +0 -277
  449. package/thoughts/shared/research/2026-01-15-ai-tracker-agent-swarm-integration.md +0 -376
  450. package/thoughts/shared/research/2026-01-15-auto-starting-processes-in-worker-containers.md +0 -787
  451. package/thoughts/shared/research/2026-01-15-scheduled-tasks.md +0 -390
  452. package/thoughts/shared/research/2026-01-16-epics-feature-research.md +0 -437
  453. package/thoughts/shared/research/2026-02-26-cliffy-mcp-tools.md +0 -159
  454. package/thoughts/shared/research/2026-03-03-database-migration-system-refactor.md +0 -337
  455. package/thoughts/swarm-researcher/plans/2026-02-23-openclaw-improvements-plan.md +0 -778
  456. package/thoughts/swarm-researcher/plans/2026-02-26-artifacts-localtunnel-plan.md +0 -1269
  457. package/thoughts/swarm-researcher/research/2026-02-23-openclaw-vs-agent-swarm-comparison.md +0 -411
  458. package/thoughts/swarm-researcher/research/2026-02-26-artifacts-localtunnel.md +0 -724
  459. package/thoughts/taras/brainstorms/2026-03-20-prompt-template-registry.md +0 -443
  460. package/thoughts/taras/brainstorms/2026-03-20-setup-cli-onboarding.md +0 -307
  461. package/thoughts/taras/plans/2026-01-22-agent-swarm-schemas.md +0 -98
  462. package/thoughts/taras/plans/2026-01-28-per-worker-claude-md.md +0 -617
  463. package/thoughts/taras/plans/2026-01-28-sentry-cli-integration.md +0 -214
  464. package/thoughts/taras/plans/2026-02-20-auto-improvement.md +0 -803
  465. package/thoughts/taras/plans/2026-02-20-env-management.md +0 -538
  466. package/thoughts/taras/plans/2026-02-20-memory-system.md +0 -882
  467. package/thoughts/taras/plans/2026-02-20-repos-knowledge.md +0 -806
  468. package/thoughts/taras/plans/2026-02-20-session-attach.md +0 -647
  469. package/thoughts/taras/plans/2026-02-20-worker-identity.md +0 -820
  470. package/thoughts/taras/plans/2026-02-25-feat-new-ui-visual-redesign-plan.md +0 -768
  471. package/thoughts/taras/plans/2026-03-04-fix-buildSystemPrompt-missing-fields.md +0 -77
  472. package/thoughts/taras/plans/2026-03-04-new-ui-missing-actions.md +0 -543
  473. package/thoughts/taras/plans/2026-03-06-one-time-scheduled-tasks.md +0 -373
  474. package/thoughts/taras/plans/2026-03-08-memory-self-improvement-enhancements.md +0 -512
  475. package/thoughts/taras/plans/2026-03-08-pi-mono-provider-implementation.md +0 -919
  476. package/thoughts/taras/plans/2026-03-09-templates-registry.md +0 -723
  477. package/thoughts/taras/plans/2026-03-10-task-working-directory.md +0 -371
  478. package/thoughts/taras/plans/2026-03-11-archil-per-agent-write-strategy.md +0 -621
  479. package/thoughts/taras/plans/2026-03-12-eliminate-inbox-route-to-tasks.md +0 -61
  480. package/thoughts/taras/plans/2026-03-12-slack-thread-followup-additive.md +0 -488
  481. package/thoughts/taras/plans/2026-03-13-slack-ai-improvements.md +0 -644
  482. package/thoughts/taras/plans/2026-03-16-route-wrapper-openapi.md +0 -636
  483. package/thoughts/taras/plans/2026-03-17-multi-api-config.md +0 -444
  484. package/thoughts/taras/plans/2026-03-18-agent-fs-integration.md +0 -591
  485. package/thoughts/taras/plans/2026-03-18-debug-db-explorer.md +0 -446
  486. package/thoughts/taras/plans/2026-03-18-workflow-redesign.md +0 -987
  487. package/thoughts/taras/plans/2026-03-19-compound-learnings.md +0 -403
  488. package/thoughts/taras/plans/2026-03-19-ticket-tracker-linear-integration.md +0 -860
  489. package/thoughts/taras/plans/2026-03-19-workflow-io-schemas-and-bugs.md +0 -899
  490. package/thoughts/taras/plans/2026-03-20-setup-cli-onboarding.md +0 -874
  491. package/thoughts/taras/plans/2026-03-20-workflow-structured-output-validation-workspace.md +0 -723
  492. package/thoughts/taras/research/2026-01-22-vercel-cli-integration.md +0 -287
  493. package/thoughts/taras/research/2026-01-27-excessive-polling-issue.md +0 -311
  494. package/thoughts/taras/research/2026-01-28-per-worker-claude-md.md +0 -383
  495. package/thoughts/taras/research/2026-01-28-sentry-cli-integration.md +0 -240
  496. package/thoughts/taras/research/2026-02-19-agent-native-swarm-architecture.md +0 -390
  497. package/thoughts/taras/research/2026-02-19-swarm-gaps-implementation.md +0 -594
  498. package/thoughts/taras/research/2026-02-25-dashboard-ui-design-best-practices.md +0 -825
  499. package/thoughts/taras/research/2026-02-26-task-detail-page-redesign.md +0 -393
  500. package/thoughts/taras/research/2026-03-03-new-ui-missing-actions.md +0 -168
  501. package/thoughts/taras/research/2026-03-05-pi-mono-provider-research.md +0 -230
  502. package/thoughts/taras/research/2026-03-06-workflow-engine-design.md +0 -445
  503. package/thoughts/taras/research/2026-03-08-drive-loop-concept.md +0 -375
  504. package/thoughts/taras/research/2026-03-08-pi-mono-deep-dive.md +0 -869
  505. package/thoughts/taras/research/2026-03-09-templates-registry.md +0 -373
  506. package/thoughts/taras/research/2026-03-10-agent-working-directory.md +0 -223
  507. package/thoughts/taras/research/2026-03-10-configurable-event-prompts.md +0 -339
  508. package/thoughts/taras/research/2026-03-11-archil-production-setup.md +0 -181
  509. package/thoughts/taras/research/2026-03-11-archil-shared-disk-write-strategies.md +0 -437
  510. package/thoughts/taras/research/2026-03-13-slack-ai-features.md +0 -258
  511. package/thoughts/taras/research/2026-03-16-openapi-docs-generation.md +0 -335
  512. package/thoughts/taras/research/2026-03-16-route-wrapper-openapi.md +0 -670
  513. package/thoughts/taras/research/2026-03-16-slack-thread-followups-e2e.md +0 -54
  514. package/thoughts/taras/research/2026-03-18-agent-fs-integration.md +0 -558
  515. package/thoughts/taras/research/2026-03-18-linear-integration-finalization.md +0 -526
  516. package/thoughts/taras/research/2026-03-18-workflow-redesign.md +0 -797
  517. package/thoughts/taras/research/2026-03-19-workflow-node-io-schemas-and-bugs.md +0 -563
  518. package/thoughts/taras/research/2026-03-19-workflow-structured-output-validation-workspace.md +0 -486
  519. package/thoughts/taras/research/2026-03-20-prompt-template-registry.md +0 -469
  520. package/tsconfig.json +0 -37
@@ -5,7 +5,10 @@ import {
5
5
  getAgentMailInboxMapping,
6
6
  getAllAgents,
7
7
  } from "../be/db";
8
+ import { resolveTemplate } from "../prompts/resolver";
8
9
  import { workflowEventBus } from "../workflows/event-bus";
10
+ // Side-effect import: registers all AgentMail event templates in the in-memory registry
11
+ import "./templates";
9
12
  import type { AgentMailMessage, AgentMailWebhookPayload } from "./types";
10
13
 
11
14
  /**
@@ -109,9 +112,19 @@ export async function handleMessageReceived(
109
112
  const existingTask = findTaskByAgentMailThread(thread_id);
110
113
  if (existingTask) {
111
114
  // Create a follow-up task with parentTaskId to continue the session
112
- const taskDescription = `[AgentMail] Follow-up email in thread\n\nFrom: ${from}\nSubject: ${subject}\nInbox: ${inbox_id}\nThread: ${thread_id}\n\n${preview}`;
115
+ const followupResult = resolveTemplate("agentmail.email.followup", {
116
+ from,
117
+ subject,
118
+ inbox_id,
119
+ thread_id,
120
+ preview,
121
+ });
122
+
123
+ if (followupResult.skipped) {
124
+ return { created: false };
125
+ }
113
126
 
114
- const task = createTaskExtended(taskDescription, {
127
+ const task = createTaskExtended(followupResult.text, {
115
128
  agentId: existingTask.agentId,
116
129
  source: "agentmail",
117
130
  taskType: "agentmail-reply",
@@ -135,9 +148,20 @@ export async function handleMessageReceived(
135
148
  if (agent) {
136
149
  if (agent.isLead) {
137
150
  // Route to lead as task
138
- const taskDescription = `[AgentMail] New email received\n\nFrom: ${from}\nSubject: ${subject}\nInbox: ${inbox_id}\nThread: ${thread_id}\nMessage: ${message_id}\n\n${preview}`;
151
+ const leadResult = resolveTemplate("agentmail.email.mapped_lead", {
152
+ from,
153
+ subject,
154
+ inbox_id,
155
+ thread_id,
156
+ message_id,
157
+ preview,
158
+ });
159
+
160
+ if (leadResult.skipped) {
161
+ return { created: false };
162
+ }
139
163
 
140
- const task = createTaskExtended(taskDescription, {
164
+ const task = createTaskExtended(leadResult.text, {
141
165
  agentId: agent.id,
142
166
  source: "agentmail",
143
167
  taskType: "agentmail-message",
@@ -153,9 +177,19 @@ export async function handleMessageReceived(
153
177
  }
154
178
 
155
179
  // Route to worker as task
156
- const taskDescription = `[AgentMail] New email received\n\nFrom: ${from}\nSubject: ${subject}\nInbox: ${inbox_id}\nThread: ${thread_id}\n\n${preview}`;
180
+ const workerResult = resolveTemplate("agentmail.email.mapped_worker", {
181
+ from,
182
+ subject,
183
+ inbox_id,
184
+ thread_id,
185
+ preview,
186
+ });
187
+
188
+ if (workerResult.skipped) {
189
+ return { created: false };
190
+ }
157
191
 
158
- const task = createTaskExtended(taskDescription, {
192
+ const task = createTaskExtended(workerResult.text, {
159
193
  agentId: agent.id,
160
194
  source: "agentmail",
161
195
  taskType: "agentmail-message",
@@ -174,9 +208,20 @@ export async function handleMessageReceived(
174
208
  // No mapping found - route to lead as task
175
209
  const lead = findLeadAgent();
176
210
  if (lead) {
177
- const taskDescription = `[AgentMail] New email received (unmapped inbox)\n\nFrom: ${from}\nSubject: ${subject}\nInbox: ${inbox_id}\nThread: ${thread_id}\nMessage: ${message_id}\n\n${preview}`;
211
+ const unmappedResult = resolveTemplate("agentmail.email.unmapped", {
212
+ from,
213
+ subject,
214
+ inbox_id,
215
+ thread_id,
216
+ message_id,
217
+ preview,
218
+ });
178
219
 
179
- const task = createTaskExtended(taskDescription, {
220
+ if (unmappedResult.skipped) {
221
+ return { created: false };
222
+ }
223
+
224
+ const task = createTaskExtended(unmappedResult.text, {
180
225
  agentId: lead.id,
181
226
  source: "agentmail",
182
227
  taskType: "agentmail-message",
@@ -192,9 +237,19 @@ export async function handleMessageReceived(
192
237
  }
193
238
 
194
239
  // No lead available - create unassigned task
195
- const taskDescription = `[AgentMail] New email received (no agent available)\n\nFrom: ${from}\nSubject: ${subject}\nInbox: ${inbox_id}\nThread: ${thread_id}\n\n${preview}`;
240
+ const noAgentResult = resolveTemplate("agentmail.email.no_agent", {
241
+ from,
242
+ subject,
243
+ inbox_id,
244
+ thread_id,
245
+ preview,
246
+ });
247
+
248
+ if (noAgentResult.skipped) {
249
+ return { created: false };
250
+ }
196
251
 
197
- const task = createTaskExtended(taskDescription, {
252
+ const task = createTaskExtended(noAgentResult.text, {
198
253
  source: "agentmail",
199
254
  taskType: "agentmail-message",
200
255
  agentmailInboxId: inbox_id,
@@ -0,0 +1,111 @@
1
+ /**
2
+ * AgentMail event prompt template definitions.
3
+ *
4
+ * Each template is registered at module load time via registerTemplate().
5
+ * Handlers import this module for the side-effect of registration.
6
+ */
7
+
8
+ import { registerTemplate } from "../prompts/registry";
9
+
10
+ // ============================================================================
11
+ // Email events
12
+ // ============================================================================
13
+
14
+ registerTemplate({
15
+ eventType: "agentmail.email.followup",
16
+ header: "[AgentMail] Follow-up email in thread",
17
+ defaultBody: `From: {{from}}
18
+ Subject: {{subject}}
19
+ Inbox: {{inbox_id}}
20
+ Thread: {{thread_id}}
21
+
22
+ {{preview}}`,
23
+ variables: [
24
+ { name: "from", description: "Sender address(es)" },
25
+ { name: "subject", description: "Email subject" },
26
+ { name: "inbox_id", description: "AgentMail inbox ID" },
27
+ { name: "thread_id", description: "AgentMail thread ID" },
28
+ { name: "preview", description: "Email body preview (truncated to 500 chars)" },
29
+ ],
30
+ category: "event",
31
+ });
32
+
33
+ registerTemplate({
34
+ eventType: "agentmail.email.mapped_lead",
35
+ header: "[AgentMail] New email received",
36
+ defaultBody: `From: {{from}}
37
+ Subject: {{subject}}
38
+ Inbox: {{inbox_id}}
39
+ Thread: {{thread_id}}
40
+ Message: {{message_id}}
41
+
42
+ {{preview}}`,
43
+ variables: [
44
+ { name: "from", description: "Sender address(es)" },
45
+ { name: "subject", description: "Email subject" },
46
+ { name: "inbox_id", description: "AgentMail inbox ID" },
47
+ { name: "thread_id", description: "AgentMail thread ID" },
48
+ { name: "message_id", description: "AgentMail message ID" },
49
+ { name: "preview", description: "Email body preview (truncated to 500 chars)" },
50
+ ],
51
+ category: "event",
52
+ });
53
+
54
+ registerTemplate({
55
+ eventType: "agentmail.email.mapped_worker",
56
+ header: "[AgentMail] New email received",
57
+ defaultBody: `From: {{from}}
58
+ Subject: {{subject}}
59
+ Inbox: {{inbox_id}}
60
+ Thread: {{thread_id}}
61
+
62
+ {{preview}}`,
63
+ variables: [
64
+ { name: "from", description: "Sender address(es)" },
65
+ { name: "subject", description: "Email subject" },
66
+ { name: "inbox_id", description: "AgentMail inbox ID" },
67
+ { name: "thread_id", description: "AgentMail thread ID" },
68
+ { name: "preview", description: "Email body preview (truncated to 500 chars)" },
69
+ ],
70
+ category: "event",
71
+ });
72
+
73
+ registerTemplate({
74
+ eventType: "agentmail.email.unmapped",
75
+ header: "[AgentMail] New email received (unmapped inbox)",
76
+ defaultBody: `From: {{from}}
77
+ Subject: {{subject}}
78
+ Inbox: {{inbox_id}}
79
+ Thread: {{thread_id}}
80
+ Message: {{message_id}}
81
+
82
+ {{preview}}`,
83
+ variables: [
84
+ { name: "from", description: "Sender address(es)" },
85
+ { name: "subject", description: "Email subject" },
86
+ { name: "inbox_id", description: "AgentMail inbox ID" },
87
+ { name: "thread_id", description: "AgentMail thread ID" },
88
+ { name: "message_id", description: "AgentMail message ID" },
89
+ { name: "preview", description: "Email body preview (truncated to 500 chars)" },
90
+ ],
91
+ category: "event",
92
+ });
93
+
94
+ registerTemplate({
95
+ eventType: "agentmail.email.no_agent",
96
+ header: "[AgentMail] New email received (no agent available)",
97
+ defaultBody: `From: {{from}}
98
+ Subject: {{subject}}
99
+ Inbox: {{inbox_id}}
100
+ Thread: {{thread_id}}
101
+
102
+ {{preview}}`,
103
+ variables: [
104
+ { name: "from", description: "Sender address(es)" },
105
+ { name: "subject", description: "Email subject" },
106
+ { name: "inbox_id", description: "AgentMail inbox ID" },
107
+ { name: "thread_id", description: "AgentMail thread ID" },
108
+ { name: "preview", description: "Email body preview (truncated to 500 chars)" },
109
+ ],
110
+ category: "event",
111
+ });