@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,492 +0,0 @@
1
- # Research: Improving Agent Self-Improvement in agent-swarm
2
-
3
- **Author:** Researcher (worker agent)
4
- **Date:** 2026-02-20
5
- **Status:** Reviewed — Approved proposals: P1, P2, P4, P5, P6, P7. Deferred: P8, Tier 3. See [Implementation Plan](#implementation-plan).
6
- **Repo:** desplega-ai/agent-swarm
7
-
8
- ---
9
-
10
- ## Executive Summary
11
-
12
- The agent-swarm system already has foundational self-improvement mechanisms: persistent identity files (SOUL.md, IDENTITY.md, CLAUDE.md, TOOLS.md), a vector-searchable memory system, session summarization, and task completion indexing. However, these mechanisms are largely **passive** — they depend on agents voluntarily choosing to write memories, update their identity files, and search past context. This research identifies concrete gaps and proposes improvements that would make the self-improvement loop more **active, structured, and compounding**.
13
-
14
- The proposals are organized into three tiers:
15
- - **Tier 1 (High Impact, Low Effort):** Quick wins that plug existing gaps
16
- - **Tier 2 (High Impact, Medium Effort):** Structural improvements to the learning loop
17
- - **Tier 3 (High Impact, High Effort):** Architectural changes for compound intelligence
18
-
19
- ---
20
-
21
- ## Current State Analysis
22
-
23
- ### What Exists Today
24
-
25
- | Mechanism | How It Works | Self-Improvement Role |
26
- |-----------|-------------|----------------------|
27
- | **SOUL.md** | Persona/values doc, stored in DB, synced to workspace, injected into system prompt | Agents can edit to refine their behavioral directives |
28
- | **IDENTITY.md** | Expertise/working style, same lifecycle as SOUL.md | Agents can discover and document their strengths |
29
- | **CLAUDE.md** | Personal notes (Learnings, Preferences, Important Context sections), written to `~/.claude/CLAUDE.md` on session start | Agents can accumulate session-persistent notes |
30
- | **TOOLS.md** | Environment-specific knowledge (repos, services, APIs) | Agents can record operational knowledge |
31
- | **start-up.sh** | Setup script with marker-based extraction, runs on container start | Agents can install tools and configure their environment |
32
- | **Memory System** | SQLite-backed vector search (OpenAI text-embedding-3-small, 512d), 4 source types | Searchable long-term storage across sessions |
33
- | **Session Summaries** | Claude Haiku summarizes transcript on session end, indexed into memory | Automatic learning capture from every session |
34
- | **Task Completion Indexing** | Completed task output auto-indexed as agent-scoped memory | Task knowledge persists across sessions |
35
- | **File Auto-Indexing** | Files written to `/workspace/{personal,shared}/memory/` are auto-indexed | Deliberate knowledge can be saved for vector search |
36
- | **Shared Workspace** | `/workspace/shared/` mount + swarm-scoped memories | Cross-agent knowledge sharing |
37
-
38
- ### What's Missing (Gaps)
39
-
40
- #### Gap 1: No Learning from Failures
41
-
42
- Task completion indexing (`store-progress.ts:164`) only fires when `status === "completed"`. **Failed tasks are not indexed into memory.** The only record of failure context comes from session summaries (which are generic, not structured) and the `failureReason` field on the task record (which is not searchable via memory-search).
43
-
44
- **Impact:** Agents repeat the same mistakes because failure patterns are not preserved in a searchable form.
45
-
46
- #### Gap 2: No Structured Reflection Protocol
47
-
48
- The default templates say "reflect on what you learned" but provide no **mechanism** to enforce or trigger reflection. Agents are instructed to update identity files and memories, but in practice they rarely do unless explicitly prompted. There is no post-task reflection step in the task lifecycle.
49
-
50
- **Impact:** Identity files remain at their default templates for most agents. The Growth Mindset section of SOUL.md is aspirational but not operationalized.
51
-
52
- #### Gap 3: No Memory Cleanup or Curation
53
-
54
- There are no TTL, capacity limits, or cleanup policies for the memory system. Memories accumulate indefinitely. There is no mechanism to:
55
- - Mark memories as outdated or superseded
56
- - Consolidate related memories into summaries
57
- - Prune low-value or redundant entries
58
-
59
- **Impact:** As memory grows, search quality degrades (more noise in results). Session summaries pile up with diminishing returns since they cover every session, not just significant ones.
60
-
61
- #### Gap 4: Lead Cannot Inject Learnings into Workers
62
-
63
- The lead agent reviews task outputs via follow-up tasks, but has no mechanism to push learnings, corrections, or feedback *back into the worker's memory or identity*. The lead's observations about worker performance are ephemeral — they exist in the lead's session transcript and maybe a session summary, but are not routed to the worker.
64
-
65
- **Impact:** The lead spots patterns (e.g., "Researcher always forgets to check CLAUDE.md for repo conventions") but cannot systematically improve the worker's behavior.
66
-
67
- #### Gap 5: No Cross-Task Knowledge Transfer
68
-
69
- When a worker completes a task, the output is indexed as agent-scoped memory. Other workers cannot search it unless it's explicitly written to `/workspace/shared/memory/`. The lead can see all memories, but workers are siloed.
70
-
71
- **Impact:** Worker A's solution to a problem is invisible to Worker B even when they face the same problem. Institutional knowledge concentrates in the lead, not the swarm.
72
-
73
- #### Gap 6: No Self-Awareness of Architecture
74
-
75
- Agents have no awareness of how they are built. They don't know:
76
- - That their source code lives in the `agent-swarm` repo
77
- - What hooks fire and when
78
- - How their system prompt is assembled
79
- - What the memory system's limitations are (brute-force search, no cleanup, etc.)
80
-
81
- **Impact:** When something breaks or behaves unexpectedly, agents cannot debug themselves. They can't propose improvements to their own infrastructure because they don't understand it.
82
-
83
- #### Gap 7: Identity Evolution is Unstructured
84
-
85
- Agents can edit SOUL.md, IDENTITY.md, CLAUDE.md at any time, but there is no:
86
- - Versioning of identity changes (the DB stores only the latest)
87
- - Review process for identity updates
88
- - Way to diff identity changes across sessions
89
- - Mechanism to roll back problematic identity changes
90
-
91
- **Impact:** An agent could corrupt its own identity file in a single bad session, with no way to recover. There's no visibility into how identities evolve over time.
92
-
93
- #### Gap 8: Session Summaries are Low-Signal
94
-
95
- Session summaries are generated by Claude Haiku from the last 20KB of transcript, with a generic prompt asking for bullet points. The quality varies significantly and often produces surface-level summaries that don't capture the most valuable learnings.
96
-
97
- **Impact:** The memory system fills up with generic summaries like "Worked on task X, encountered Y, resolved Z" without capturing the *why* or the *transferable pattern*.
98
-
99
- #### Gap 9: No Memory-Informed Prompting
100
-
101
- The base prompt tells agents to "use `memory-search` to recall relevant context at session boot," but this is **merely advisory and easily ignored**. There is no enforced mechanism to automatically inject relevant memories into the session context when a new task starts. The agent must manually search — and in practice, almost never does. The instruction needs to be either enforced programmatically (auto-inject at task start) or prompted much more strictly (e.g., as a hard requirement in the task lifecycle, not a suggestion).
102
-
103
- **Impact:** Agents start most sessions cold, without leveraging their accumulated knowledge. The entire memory system's value is diminished when retrieval is optional.
104
-
105
- #### Gap 10: No Swarm-Level Learning Metrics
106
-
107
- There's no way to measure whether the swarm is actually improving. No metrics on:
108
- - Task completion rates over time
109
- - Average task duration trends
110
- - Memory quality/relevance
111
- - Identity file evolution frequency
112
- - Failure recurrence rates
113
-
114
- **Impact:** Cannot answer "Is the swarm getting better?" with data.
115
-
116
- **Mitigation (prompt-level):** Until a metrics dashboard exists, the lead agent's system prompt MUST include:
117
-
118
- > **Mandatory weekly metrics check:** Every Monday, query task completion/failure counts for the past 7 days using `get-tasks` with status filters. Compare against the previous week. Report trends in a swarm-chat message tagged #metrics. If failure rate exceeds 30%, investigate the top 3 failure reasons and file corrective tasks.
119
-
120
- This forces a minimum viable learning loop without any code changes. The lead's CLAUDE.md should contain this instruction as a hard requirement, not a suggestion.
121
-
122
- ---
123
-
124
- ## Proposals
125
-
126
- ### Tier 1: High Impact, Low Effort
127
-
128
- #### P1: Index Failed Tasks into Memory
129
-
130
- **Gap addressed:** Gap 1
131
-
132
- **Change:** In `store-progress.ts`, extend the memory indexing block (line 164) to also fire when `status === "failed"`. Include the `failureReason` in the content.
133
-
134
- ```typescript
135
- // Current: only indexes completed tasks
136
- if (status === "completed" && result.success && result.task && output.length > 20) {
137
-
138
- // Proposed: also index failed tasks
139
- if ((status === "completed" || status === "failed") && result.success && result.task) {
140
- const content = status === "completed"
141
- ? `Task: ${result.task.task}\n\nOutput:\n${output}`
142
- : `Task: ${result.task.task}\n\nFailure:\n${failureReason}\n\nContext: This task failed. Learn from this to avoid repeating the mistake.`;
143
- ```
144
-
145
- **Effort:** ~10 lines of code
146
- **Files:** `src/tools/store-progress.ts`
147
-
148
- #### P2: Add Architecture Self-Awareness to System Prompt
149
-
150
- **Gap addressed:** Gap 6
151
-
152
- **Change:** Add a new section to `BASE_PROMPT_FILESYSTEM` (or a new `BASE_PROMPT_SELF_AWARENESS` constant) in `base-prompt.ts` that gives agents essential knowledge about their own infrastructure:
153
-
154
- ```markdown
155
- ### How You Are Built
156
-
157
- Your source code lives in the `desplega-ai/agent-swarm` GitHub repository. Key facts:
158
-
159
- - **Runtime:** You run as a headless Claude Code process inside a Docker container
160
- - **Orchestration:** A runner process (`src/commands/runner.ts`) polls for tasks and spawns your Claude sessions
161
- - **Hooks:** Six Claude Code hooks fire during your session (SessionStart, PreCompact, PreToolUse, PostToolUse, UserPromptSubmit, Stop) — defined in `src/hooks/hook.ts`
162
- - **Memory:** Your memories are stored in SQLite with OpenAI embeddings (text-embedding-3-small, 512d). Search is brute-force cosine similarity — all matching rows are loaded into memory
163
- - **Identity Sync:** Your SOUL.md, IDENTITY.md, TOOLS.md are synced to the server DB on every file edit (via PostToolUse hook) and on session end (via Stop hook)
164
- - **System Prompt:** Assembled from `src/prompts/base-prompt.ts` + your SOUL.md + IDENTITY.md, passed via `--append-system-prompt`. Your CLAUDE.md is written to `~/.claude/CLAUDE.md` at session start
165
- - **Task Lifecycle:** Tasks go through: unassigned → offered → pending → in_progress → completed/failed. On completion, your output is auto-indexed into memory
166
- - **MCP Server:** Your tools come from an MCP server at `$MCP_BASE_URL`, defined in `src/server.ts`
167
-
168
- Use this knowledge to debug issues, propose improvements to yourself, and understand why things work the way they do.
169
- ```
170
-
171
- **Effort:** ~20 lines added to `src/prompts/base-prompt.ts`
172
- **Files:** `src/prompts/base-prompt.ts`
173
-
174
- #### P3: Auto-Promote High-Value Task Completions to Swarm Memory
175
-
176
- **Gap addressed:** Gap 5
177
-
178
- **What already exists:** Task completion auto-indexing is already implemented in `store-progress.ts:163-183`. When a task completes successfully with output > 20 chars, it creates an **agent-scoped** memory with source `"task_completion"`, including the task description and output. Embeddings are generated for vector search.
179
-
180
- **What's missing:** The existing indexing is agent-scoped only — other workers cannot search it. There is no quality filtering (every completion gets indexed regardless of value), and no mechanism to promote high-value completions to swarm-wide visibility.
181
-
182
- **Proposed change (reduced scope):** Extend the existing indexing block to *additionally* create a swarm-scoped memory copy for high-value completions. Keep the existing agent-scoped indexing as-is.
183
-
184
- ```typescript
185
- // In store-progress.ts, AFTER the existing agent-scoped memory creation (line 183):
186
- const shouldShareWithSwarm =
187
- result.task.taskType === "research" ||
188
- result.task.tags?.includes("knowledge") ||
189
- result.task.tags?.includes("shared");
190
-
191
- if (shouldShareWithSwarm) {
192
- const swarmMemory = createMemory({
193
- agentId: requestInfo.agentId,
194
- scope: "swarm",
195
- name: `Shared: ${result.task!.task.slice(0, 80)}`,
196
- content: `Task completed by agent ${requestInfo.agentId}:\n\n${taskContent}`,
197
- source: "task_completion",
198
- sourceTaskId: taskId,
199
- });
200
- const swarmEmbedding = await getEmbedding(taskContent);
201
- if (swarmEmbedding) updateMemoryEmbedding(swarmMemory.id, serializeEmbedding(swarmEmbedding));
202
- }
203
- ```
204
-
205
- Note: The output length heuristic (`output.length > 500`) from the original proposal is removed — task type and explicit tags are more reliable quality signals than length.
206
-
207
- **Effort:** ~15 lines of code (additive to existing block)
208
- **Files:** `src/tools/store-progress.ts`
209
-
210
- #### P4: Improve Session Summary Quality with Structured Prompts
211
-
212
- **Gap addressed:** Gap 8
213
-
214
- **Change:** Replace the generic summarization prompt in `hook.ts:811-822` with a structured prompt that extracts higher-signal content:
215
-
216
- ```markdown
217
- You are summarizing an AI agent's work session. Extract ONLY high-value learnings.
218
-
219
- DO NOT include:
220
- - Generic descriptions of what was done ("worked on task X")
221
- - Tool calls or file reads
222
- - Routine progress updates
223
-
224
- DO include (if present):
225
- - **Mistakes made and corrections** — what went wrong and what fixed it
226
- - **Discovered patterns** — reusable patterns, APIs, or approaches
227
- - **Codebase knowledge** — important file paths, architecture decisions, conventions
228
- - **Environment knowledge** — service URLs, config details, tool versions
229
- - **Failed approaches** — what was tried and didn't work (and why)
230
-
231
- Format as a bulleted list. If the session was routine with no significant learnings, respond with just: "No significant learnings."
232
- ```
233
-
234
- Additionally, skip indexing summaries that return "No significant learnings."
235
-
236
- **Effort:** ~15 lines changed
237
- **Files:** `src/hooks/hook.ts`
238
-
239
- ---
240
-
241
- ### Tier 2: High Impact, Medium Effort
242
-
243
- #### P5: Post-Task Reflection Step
244
-
245
- **Gap addressed:** Gap 2
246
-
247
- **Change:** After `store-progress` with `status: "completed"` or `"failed"`, inject a brief reflection prompt into the session before it ends. This could be done by having the `/work-on-task` command include a reflection instruction:
248
-
249
- In `plugin/commands/work-on-task.md`, add after the completion section:
250
-
251
- ```markdown
252
- ### Post-Task Reflection
253
-
254
- After calling `store-progress`, take 30 seconds to reflect:
255
-
256
- 1. **Did you learn something transferable?** If yes, write it to `/workspace/personal/memory/` or `/workspace/shared/memory/`
257
- 2. **Should your IDENTITY.md change?** (new expertise, working style observation)
258
- 3. **Should your TOOLS.md change?** (new service, API endpoint, tool preference)
259
- 4. **Did you make a mistake worth remembering?** Write it to memory.
260
-
261
- Only update files if there's a genuine change — don't write for the sake of writing.
262
- ```
263
-
264
- **Effort:** ~20 lines in the command definition, plus testing
265
- **Files:** `plugin/commands/work-on-task.md`
266
-
267
- #### P6: Lead-to-Worker Feedback Injection
268
-
269
- **Gap addressed:** Gap 4
270
-
271
- **Change:** Add a new MCP tool `inject-learning` that allows the lead to push a learning or correction into a specific worker's memory:
272
-
273
- ```typescript
274
- // New tool: inject-learning
275
- registerTool(server, "inject-learning", {
276
- description: "Push a learning or correction into a worker's memory. Use this when you notice patterns in worker behavior that should be improved.",
277
- inputSchema: {
278
- agentId: { type: "string", format: "uuid", description: "Target worker agent ID" },
279
- learning: { type: "string", description: "The learning to inject" },
280
- category: { type: "string", enum: ["mistake-pattern", "best-practice", "codebase-knowledge", "preference"], description: "Category of learning" },
281
- },
282
- handler: async ({ agentId, learning, category }) => {
283
- await createMemory({
284
- agentId,
285
- scope: "agent",
286
- name: `Lead feedback: ${category}`,
287
- content: `[Injected by Lead]\n\nCategory: ${category}\n\n${learning}`,
288
- source: "manual",
289
- });
290
- // Generate embedding
291
- const embedding = await getEmbedding(learning);
292
- if (embedding) await updateMemoryEmbedding(memoryId, embedding);
293
- }
294
- });
295
- ```
296
-
297
- This could also optionally append to the worker's CLAUDE.md under a "Feedback from Lead" section.
298
-
299
- **Effort:** ~80 lines for the tool + tests
300
- **Files:** New `src/tools/inject-learning.ts`, update `src/server.ts`
301
-
302
- #### P7: Memory-Informed Task Prompting
303
-
304
- **Gap addressed:** Gap 9
305
-
306
- **Change:** When the runner builds a prompt for a new task (in `buildPromptForTrigger()` at `runner.ts:793`), automatically search the agent's memories for context relevant to the task description and inject the top results into the prompt:
307
-
308
- ```typescript
309
- // In buildPromptForTrigger(), after getting task details:
310
- const relevantMemories = await searchMemoriesByVector(
311
- db, agentId, task.task, { limit: 3, isLead: false }
312
- );
313
-
314
- if (relevantMemories.length > 0) {
315
- const memoryContext = relevantMemories
316
- .filter(m => m.similarity > 0.4) // Only include genuinely relevant memories
317
- .map(m => `- ${m.name}: ${m.content.substring(0, 200)}`)
318
- .join('\n');
319
-
320
- if (memoryContext) {
321
- prompt += `\n\n## Relevant Past Context\n${memoryContext}`;
322
- }
323
- }
324
- ```
325
-
326
- **Effort:** ~40 lines, careful threshold tuning needed
327
- **Files:** `src/commands/runner.ts`
328
-
329
- #### P8: Identity Version History *(DEFERRED — too much for now)*
330
-
331
- **Gap addressed:** Gap 7
332
-
333
- **Change:** Add an `agent_identity_history` table that stores snapshots of identity files on every sync. The hook's `syncIdentityFilesToServer()` and `syncClaudeMdToServer()` functions would also call a new `createIdentitySnapshot()` function:
334
-
335
- ```sql
336
- CREATE TABLE IF NOT EXISTS agent_identity_history (
337
- id TEXT PRIMARY KEY,
338
- agentId TEXT NOT NULL,
339
- fileType TEXT NOT NULL CHECK(fileType IN ('soul', 'identity', 'claude', 'tools', 'setup')),
340
- content TEXT NOT NULL,
341
- sessionId TEXT, -- which session made the change
342
- taskId TEXT, -- which task context
343
- createdAt TEXT NOT NULL
344
- );
345
- ```
346
-
347
- The lead could then query this to see how agents evolve and identify problematic changes. A new MCP tool `identity-history` would let agents review their own evolution.
348
-
349
- **Effort:** ~120 lines (schema, snapshot function, MCP tool)
350
- **Files:** `src/be/db.ts`, new `src/tools/identity-history.ts`, `src/hooks/hook.ts`, `src/server.ts`
351
-
352
- ---
353
-
354
- ### Tier 3: High Impact, High Effort *(DEFERRED — tackle later)*
355
-
356
- #### P9: Memory Consolidation and Curation *(DEFERRED)*
357
-
358
- **Gap addressed:** Gap 3
359
-
360
- **Change:** Implement a scheduled task that periodically consolidates the memory system:
361
-
362
- 1. **Session Summary Consolidation:** Weekly, group all session summaries from the past week and ask Claude Haiku to produce a single consolidated summary. Index the consolidation, delete the individual summaries.
363
-
364
- 2. **Duplicate Detection:** After indexing a new memory, check if any existing memories have cosine similarity > 0.9 (near-duplicates). If found, merge or flag for review.
365
-
366
- 3. **Staleness Scoring:** Track `accessedAt` to identify memories that are never retrieved. After N days without access, reduce their search weight or archive them.
367
-
368
- 4. **Memory Budget:** Implement a soft cap (e.g., 500 memories per agent). When exceeded, trigger consolidation of the oldest/least-accessed memories.
369
-
370
- This would be implemented as a new `src/scheduler/memory-consolidation.ts` module that runs as a scheduled task.
371
-
372
- **Effort:** ~300 lines + significant testing
373
- **Files:** New `src/scheduler/memory-consolidation.ts`, update `src/be/db.ts`, `src/scheduler/scheduler.ts`
374
-
375
- #### P10: Swarm Learning Dashboard *(DEFERRED)*
376
-
377
- **Gap addressed:** Gap 10
378
-
379
- **Change:** Add API endpoints and UI components to visualize swarm learning metrics:
380
-
381
- - **Memory Growth:** Charts showing memory accumulation per agent over time
382
- - **Identity Evolution:** Timeline of identity file changes with diffs
383
- - **Task Performance:** Completion rates, duration trends, failure rates per agent
384
- - **Memory Quality:** Search hit rates, which memories are accessed most
385
- - **Knowledge Graph:** Visual representation of what topics each agent has expertise in (derived from memory content)
386
-
387
- This would be a new section in the existing UI (`new-fe/`) with dedicated API endpoints in `src/http.ts`.
388
-
389
- **Effort:** ~500+ lines backend + frontend
390
- **Files:** `src/http.ts`, `new-fe/src/pages/`, `new-fe/src/components/`
391
-
392
- #### P11: Structured Learning Loops via Scheduled Retrospectives *(DEFERRED)*
393
-
394
- **Gap addressed:** Gaps 2, 3, 10
395
-
396
- **Change:** Create pre-built scheduled tasks that enforce periodic self-improvement:
397
-
398
- 1. **Weekly Retrospective (per agent):** A scheduled task assigned to each worker that runs weekly:
399
- ```
400
- Review your last 7 days of task completions and session summaries.
401
- 1. Search your memories for the past week's work.
402
- 2. Identify the top 3 learnings.
403
- 3. Update your IDENTITY.md if your expertise has grown.
404
- 4. Update your TOOLS.md if you discovered new tools/services.
405
- 5. Write a consolidated summary to /workspace/shared/memory/weekly-{agent}-{date}.md
406
- ```
407
-
408
- 2. **Monthly Swarm Review (lead):** A scheduled task for the lead:
409
- ```
410
- Review all workers' recent task outputs and identity changes.
411
- 1. Use memory-search with scope "all" to find patterns.
412
- 2. Identify workers who need coaching.
413
- 3. Use inject-learning to push corrections.
414
- 4. Write a swarm health report to /workspace/shared/memory/.
415
- ```
416
-
417
- 3. **Daily Knowledge Digest (lead):** A lighter daily task:
418
- ```
419
- Scan completed tasks from the last 24 hours.
420
- Identify any knowledge that should be promoted to swarm-scoped memory.
421
- ```
422
-
423
- These would be set up as default schedules when a swarm is first initialized.
424
-
425
- **Effort:** ~150 lines (schedule templates, documentation)
426
- **Files:** `src/scheduler/`, `plugin/commands/`, documentation
427
-
428
- ---
429
-
430
- ## Implementation Priority
431
-
432
- Based on review feedback and impact/effort ratio:
433
-
434
- ### Approved (see [Implementation Plan](../plans/2026-02-20-agent-self-improvement-plan.md))
435
-
436
- | Priority | Proposal | Effort | Impact | Status |
437
- |----------|----------|--------|--------|--------|
438
- | 1 | **P1: Index Failed Tasks** | ~10 lines | Immediate: failure knowledge preserved | Approved |
439
- | 2 | **P4: Better Session Summaries** | ~15 lines | Immediate: higher signal in memory | Approved |
440
- | 3 | **P2: Architecture Self-Awareness** | ~20 lines | Immediate: agents can debug themselves | Approved |
441
- | 4 | **P5: Post-Task Reflection** | ~20 lines | Medium-term: structured learning habit | Approved |
442
- | 5 | **P3: Auto-Promote to Swarm Memory** | ~15 lines | Medium-term: cross-agent knowledge | Approved (scoped down — agent-scoped already exists) |
443
- | 6 | **P7: Memory-Informed Prompting** | ~40 lines | High: agents start warm instead of cold | Approved |
444
- | 7 | **P6: Lead-to-Worker Feedback** | ~80 lines | High: closes the lead→worker learning loop | Approved |
445
-
446
- ### Deferred
447
-
448
- | | **P8: Identity Version History** | ~120 lines | Medium: safety net + visibility | Deferred: too much for now |
449
- | | **P9-P11: Tier 3 items** | 300-500+ lines | Various | Deferred: tackle later |
450
-
451
- ---
452
-
453
- ## Appendix: Current Code References
454
-
455
- ### Memory System
456
- - Database schema: `src/be/db.ts:372-401`
457
- - Embedding generation: `src/be/embedding.ts:15-37` (OpenAI text-embedding-3-small, 512d)
458
- - Vector search: `src/be/db.ts:5088-5148` (brute-force cosine similarity, loads all rows)
459
- - Content chunking: `src/be/chunking.ts:18` (markdown-aware, 2000-char chunks)
460
- - Memory search MCP tool: `src/tools/memory-search.ts:8`
461
- - Memory get MCP tool: `src/tools/memory-get.ts:7`
462
- - Auto-indexing hook: `src/hooks/hook.ts:700-733`
463
- - Session summary hook: `src/hooks/hook.ts:782-874`
464
- - Task completion indexing: `src/tools/store-progress.ts:163-183`
465
- - HTTP ingestion API: `src/http.ts:2288-2376`
466
-
467
- ### Identity System
468
- - Default template generators: `src/be/db.ts:2342-2528`
469
- - Profile update tool: `src/tools/update-profile.ts:7-216`
470
- - Identity file sync (PostToolUse): `src/hooks/hook.ts:673-698`
471
- - Identity file sync (Stop): `src/hooks/hook.ts:770-780`
472
- - CLAUDE.md injection (SessionStart): `src/hooks/hook.ts:609-623`
473
- - Runner profile fetch + file write: `src/commands/runner.ts:1670-1789`
474
-
475
- ### System Prompt
476
- - Base prompt construction: `src/prompts/base-prompt.ts:328-386`
477
- - Role-specific prompts: `src/prompts/base-prompt.ts:11-202` (lead) and `183-202` (worker)
478
- - Filesystem instructions: `src/prompts/base-prompt.ts:204-258`
479
- - Runner prompt assembly: `src/commands/runner.ts:1558-1607`
480
-
481
- ### Task Lifecycle
482
- - Task creation: `src/be/db.ts:1992-2059`
483
- - Task polling: `src/http.ts:529-666`
484
- - store-progress: `src/tools/store-progress.ts:64-237`
485
- - Follow-up task creation: `src/tools/store-progress.ts:188-227`
486
- - Runner task loop: `src/commands/runner.ts:1896-2022`
487
-
488
- ### Hooks
489
- - Hook handler: `src/hooks/hook.ts:174-891`
490
- - Hook configuration: `plugin/hooks/hooks.json`
491
- - PreCompact goal reminder: `src/hooks/hook.ts:625-648`
492
- - Cancellation detection: `src/hooks/hook.ts:456-490`
File without changes