macro-agent 0.0.17 → 0.1.1

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 (338) hide show
  1. package/.claude/settings.local.json +3 -1
  2. package/.sudocode/specs.jsonl +4 -0
  3. package/CLAUDE.md +16 -14
  4. package/README.md +11 -29
  5. package/dist/acp/macro-agent.d.ts +17 -0
  6. package/dist/acp/macro-agent.d.ts.map +1 -1
  7. package/dist/acp/macro-agent.js +183 -55
  8. package/dist/acp/macro-agent.js.map +1 -1
  9. package/dist/acp/types.d.ts +32 -1
  10. package/dist/acp/types.d.ts.map +1 -1
  11. package/dist/acp/types.js.map +1 -1
  12. package/dist/agent/agent-manager.d.ts +65 -1
  13. package/dist/agent/agent-manager.d.ts.map +1 -1
  14. package/dist/agent/agent-manager.js +464 -183
  15. package/dist/agent/agent-manager.js.map +1 -1
  16. package/dist/agent/types.d.ts +1 -1
  17. package/dist/agent/types.d.ts.map +1 -1
  18. package/dist/api/server.d.ts +3 -0
  19. package/dist/api/server.d.ts.map +1 -1
  20. package/dist/api/server.js +37 -6
  21. package/dist/api/server.js.map +1 -1
  22. package/dist/auth/index.d.ts +2 -0
  23. package/dist/auth/index.d.ts.map +1 -0
  24. package/dist/auth/index.js +2 -0
  25. package/dist/auth/index.js.map +1 -0
  26. package/dist/auth/token.d.ts +41 -0
  27. package/dist/auth/token.d.ts.map +1 -0
  28. package/dist/auth/token.js +73 -0
  29. package/dist/auth/token.js.map +1 -0
  30. package/dist/cli/acp.d.ts +2 -23
  31. package/dist/cli/acp.d.ts.map +1 -1
  32. package/dist/cli/acp.js +127 -61
  33. package/dist/cli/acp.js.map +1 -1
  34. package/dist/cli/index.js +147 -15
  35. package/dist/cli/index.js.map +1 -1
  36. package/dist/cli/mcp.d.ts +6 -0
  37. package/dist/cli/mcp.d.ts.map +1 -1
  38. package/dist/cli/mcp.js +268 -181
  39. package/dist/cli/mcp.js.map +1 -1
  40. package/dist/cli/parse-args.d.ts +20 -0
  41. package/dist/cli/parse-args.d.ts.map +1 -0
  42. package/dist/cli/parse-args.js +43 -0
  43. package/dist/cli/parse-args.js.map +1 -0
  44. package/dist/cli/stable-instance-id.d.ts +8 -0
  45. package/dist/cli/stable-instance-id.d.ts.map +1 -0
  46. package/dist/cli/stable-instance-id.js +14 -0
  47. package/dist/cli/stable-instance-id.js.map +1 -0
  48. package/dist/config/project-config.d.ts +74 -7
  49. package/dist/config/project-config.d.ts.map +1 -1
  50. package/dist/config/project-config.js +123 -20
  51. package/dist/config/project-config.js.map +1 -1
  52. package/dist/map/adapter/acp-over-map.d.ts +23 -0
  53. package/dist/map/adapter/acp-over-map.d.ts.map +1 -1
  54. package/dist/map/adapter/acp-over-map.js +482 -55
  55. package/dist/map/adapter/acp-over-map.js.map +1 -1
  56. package/dist/map/adapter/connection-manager.d.ts.map +1 -1
  57. package/dist/map/adapter/connection-manager.js +3 -0
  58. package/dist/map/adapter/connection-manager.js.map +1 -1
  59. package/dist/map/adapter/event-log.d.ts +87 -0
  60. package/dist/map/adapter/event-log.d.ts.map +1 -0
  61. package/dist/map/adapter/event-log.js +122 -0
  62. package/dist/map/adapter/event-log.js.map +1 -0
  63. package/dist/map/adapter/event-translator.js +6 -6
  64. package/dist/map/adapter/event-translator.js.map +1 -1
  65. package/dist/map/adapter/extensions/agent-lifecycle.d.ts +82 -0
  66. package/dist/map/adapter/extensions/agent-lifecycle.d.ts.map +1 -0
  67. package/dist/map/adapter/extensions/agent-lifecycle.js +164 -0
  68. package/dist/map/adapter/extensions/agent-lifecycle.js.map +1 -0
  69. package/dist/map/adapter/extensions/index.d.ts +10 -1
  70. package/dist/map/adapter/extensions/index.d.ts.map +1 -1
  71. package/dist/map/adapter/extensions/index.js +34 -0
  72. package/dist/map/adapter/extensions/index.js.map +1 -1
  73. package/dist/map/adapter/extensions/mcp-bridge.d.ts +57 -0
  74. package/dist/map/adapter/extensions/mcp-bridge.d.ts.map +1 -0
  75. package/dist/map/adapter/extensions/mcp-bridge.js +745 -0
  76. package/dist/map/adapter/extensions/mcp-bridge.js.map +1 -0
  77. package/dist/map/adapter/extensions/rename.d.ts +29 -0
  78. package/dist/map/adapter/extensions/rename.d.ts.map +1 -0
  79. package/dist/map/adapter/extensions/rename.js +49 -0
  80. package/dist/map/adapter/extensions/rename.js.map +1 -0
  81. package/dist/map/adapter/extensions/task.d.ts.map +1 -1
  82. package/dist/map/adapter/extensions/task.js +10 -0
  83. package/dist/map/adapter/extensions/task.js.map +1 -1
  84. package/dist/map/adapter/extensions/update-metadata.d.ts +29 -0
  85. package/dist/map/adapter/extensions/update-metadata.d.ts.map +1 -0
  86. package/dist/map/adapter/extensions/update-metadata.js +67 -0
  87. package/dist/map/adapter/extensions/update-metadata.js.map +1 -0
  88. package/dist/map/adapter/index.d.ts +2 -1
  89. package/dist/map/adapter/index.d.ts.map +1 -1
  90. package/dist/map/adapter/index.js +8 -2
  91. package/dist/map/adapter/index.js.map +1 -1
  92. package/dist/map/adapter/interface.d.ts +2 -0
  93. package/dist/map/adapter/interface.d.ts.map +1 -1
  94. package/dist/map/adapter/map-adapter.d.ts +4 -0
  95. package/dist/map/adapter/map-adapter.d.ts.map +1 -1
  96. package/dist/map/adapter/map-adapter.js +302 -30
  97. package/dist/map/adapter/map-adapter.js.map +1 -1
  98. package/dist/map/adapter/subscription-manager.d.ts.map +1 -1
  99. package/dist/map/adapter/subscription-manager.js +5 -1
  100. package/dist/map/adapter/subscription-manager.js.map +1 -1
  101. package/dist/map/adapter/types.d.ts +2 -0
  102. package/dist/map/adapter/types.d.ts.map +1 -1
  103. package/dist/mcp/map-client.d.ts +39 -0
  104. package/dist/mcp/map-client.d.ts.map +1 -0
  105. package/dist/mcp/map-client.js +129 -0
  106. package/dist/mcp/map-client.js.map +1 -0
  107. package/dist/mcp/mcp-server.d.ts +14 -0
  108. package/dist/mcp/mcp-server.d.ts.map +1 -1
  109. package/dist/mcp/mcp-server.js +113 -85
  110. package/dist/mcp/mcp-server.js.map +1 -1
  111. package/dist/mcp/types.d.ts +9 -1
  112. package/dist/mcp/types.d.ts.map +1 -1
  113. package/dist/mcp/types.js.map +1 -1
  114. package/dist/metrics/metrics.js +1 -1
  115. package/dist/metrics/metrics.js.map +1 -1
  116. package/dist/roles/capabilities.d.ts +3 -1
  117. package/dist/roles/capabilities.d.ts.map +1 -1
  118. package/dist/roles/capabilities.js +17 -7
  119. package/dist/roles/capabilities.js.map +1 -1
  120. package/dist/roles/config-loader.d.ts +6 -6
  121. package/dist/roles/config-loader.d.ts.map +1 -1
  122. package/dist/roles/config-loader.js +6 -6
  123. package/dist/roles/config-loader.js.map +1 -1
  124. package/dist/roles/registry.d.ts +2 -2
  125. package/dist/roles/registry.js +2 -2
  126. package/dist/server/combined-server.d.ts +20 -0
  127. package/dist/server/combined-server.d.ts.map +1 -1
  128. package/dist/server/combined-server.js +107 -8
  129. package/dist/server/combined-server.js.map +1 -1
  130. package/dist/store/event-store.d.ts +7 -1
  131. package/dist/store/event-store.d.ts.map +1 -1
  132. package/dist/store/event-store.js +91 -8
  133. package/dist/store/event-store.js.map +1 -1
  134. package/dist/store/types/agents.d.ts +23 -0
  135. package/dist/store/types/agents.d.ts.map +1 -1
  136. package/dist/store/types/events.d.ts +1 -1
  137. package/dist/store/types/events.d.ts.map +1 -1
  138. package/dist/task/backend/index.d.ts +47 -29
  139. package/dist/task/backend/index.d.ts.map +1 -1
  140. package/dist/task/backend/index.js +109 -71
  141. package/dist/task/backend/index.js.map +1 -1
  142. package/dist/task/backend/memory.d.ts +1 -0
  143. package/dist/task/backend/memory.d.ts.map +1 -1
  144. package/dist/task/backend/memory.js +3 -0
  145. package/dist/task/backend/memory.js.map +1 -1
  146. package/dist/task/backend/opentasks/backend.d.ts +140 -0
  147. package/dist/task/backend/opentasks/backend.d.ts.map +1 -0
  148. package/dist/task/backend/opentasks/backend.js +1023 -0
  149. package/dist/task/backend/opentasks/backend.js.map +1 -0
  150. package/dist/task/backend/opentasks/client.d.ts +337 -0
  151. package/dist/task/backend/opentasks/client.d.ts.map +1 -0
  152. package/dist/task/backend/opentasks/client.js +225 -0
  153. package/dist/task/backend/opentasks/client.js.map +1 -0
  154. package/dist/task/backend/opentasks/daemon-manager.d.ts +89 -0
  155. package/dist/task/backend/opentasks/daemon-manager.d.ts.map +1 -0
  156. package/dist/task/backend/opentasks/daemon-manager.js +195 -0
  157. package/dist/task/backend/opentasks/daemon-manager.js.map +1 -0
  158. package/dist/task/backend/opentasks/index.d.ts +21 -0
  159. package/dist/task/backend/opentasks/index.d.ts.map +1 -0
  160. package/dist/task/backend/opentasks/index.js +21 -0
  161. package/dist/task/backend/opentasks/index.js.map +1 -0
  162. package/dist/task/backend/opentasks/mapping.d.ts +48 -0
  163. package/dist/task/backend/opentasks/mapping.d.ts.map +1 -0
  164. package/dist/task/backend/opentasks/mapping.js +77 -0
  165. package/dist/task/backend/opentasks/mapping.js.map +1 -0
  166. package/dist/task/backend/types.d.ts +33 -53
  167. package/dist/task/backend/types.d.ts.map +1 -1
  168. package/dist/task/backend/types.js +7 -11
  169. package/dist/task/backend/types.js.map +1 -1
  170. package/dist/task/backend/unified-tool-provider.d.ts +57 -0
  171. package/dist/task/backend/unified-tool-provider.d.ts.map +1 -0
  172. package/dist/task/backend/unified-tool-provider.js +623 -0
  173. package/dist/task/backend/unified-tool-provider.js.map +1 -0
  174. package/dist/teams/team-loader.d.ts +2 -2
  175. package/dist/teams/team-loader.js +3 -3
  176. package/dist/teams/team-loader.js.map +1 -1
  177. package/dist/teams/team-runtime.d.ts.map +1 -1
  178. package/dist/teams/team-runtime.js +2 -0
  179. package/dist/teams/team-runtime.js.map +1 -1
  180. package/docs/architecture.md +7 -6
  181. package/docs/configuration.md +26 -62
  182. package/docs/implementation-details.md +5 -5
  183. package/docs/implementation-summary.md +17 -17
  184. package/docs/plan-self-driving-support.md +4 -4
  185. package/docs/spec-self-driving-support.md +10 -10
  186. package/docs/team-templates.md +2 -2
  187. package/docs/teams.md +3 -3
  188. package/docs/troubleshooting.md +10 -11
  189. package/package.json +6 -4
  190. package/src/__tests__/e2e/agent-spawn-visibility.e2e.test.ts +761 -0
  191. package/src/__tests__/e2e/full-agent-conflict-resolution.e2e.test.ts +2 -2
  192. package/src/__tests__/e2e/mcp-thin-client-bridge.e2e.test.ts +304 -0
  193. package/src/__tests__/e2e/mcp-tools-available.e2e.test.ts +324 -0
  194. package/src/__tests__/e2e/multi-agent.e2e.test.ts +5 -5
  195. package/src/__tests__/e2e/spawn-session-streaming.e2e.test.ts +563 -0
  196. package/src/acp/__tests__/history.test.ts +8 -4
  197. package/src/acp/__tests__/integration.test.ts +56 -31
  198. package/src/acp/__tests__/macro-agent.test.ts +16 -7
  199. package/src/acp/macro-agent.ts +230 -62
  200. package/src/acp/types.ts +46 -1
  201. package/src/agent/__tests__/agent-manager.test.ts +228 -2
  202. package/src/agent/agent-manager.ts +714 -261
  203. package/src/agent/types.ts +3 -1
  204. package/src/api/server.ts +41 -7
  205. package/src/auth/__tests__/token.test.ts +100 -0
  206. package/src/auth/index.ts +1 -0
  207. package/src/auth/token.ts +82 -0
  208. package/src/cli/__tests__/acp.test.ts +1 -1
  209. package/src/cli/__tests__/stable-instance-id.test.ts +1 -1
  210. package/src/cli/acp.ts +130 -72
  211. package/src/cli/index.ts +120 -14
  212. package/src/cli/mcp.ts +311 -207
  213. package/src/cli/parse-args.ts +54 -0
  214. package/src/cli/stable-instance-id.ts +14 -0
  215. package/src/config/project-config.ts +190 -27
  216. package/src/lifecycle/__tests__/cascade-termination.test.ts +1 -1
  217. package/src/map/adapter/__tests__/acp-over-map-cancel.test.ts +820 -0
  218. package/src/map/adapter/__tests__/acp-over-map-getmodels.test.ts +355 -0
  219. package/src/map/adapter/__tests__/acp-over-map-history.test.ts +724 -2
  220. package/src/map/adapter/__tests__/acp-over-map-persistence.e2e.test.ts +1 -1
  221. package/src/map/adapter/__tests__/event-broadcast.test.ts +420 -0
  222. package/src/map/adapter/__tests__/event-log.test.ts +527 -0
  223. package/src/map/adapter/__tests__/event-translator.test.ts +3 -3
  224. package/src/map/adapter/__tests__/extensions.test.ts +408 -0
  225. package/src/map/adapter/__tests__/map-adapter.test.ts +99 -0
  226. package/src/map/adapter/__tests__/mcp-bridge.test.ts +1187 -0
  227. package/src/map/adapter/__tests__/multi-client-broadcast.test.ts +711 -0
  228. package/src/map/adapter/__tests__/websocket-integration.test.ts +218 -0
  229. package/src/map/adapter/acp-over-map.ts +777 -92
  230. package/src/map/adapter/connection-manager.ts +3 -0
  231. package/src/map/adapter/event-log.ts +208 -0
  232. package/src/map/adapter/event-translator.ts +6 -6
  233. package/src/map/adapter/extensions/agent-lifecycle.ts +267 -0
  234. package/src/map/adapter/extensions/index.ts +60 -0
  235. package/src/map/adapter/extensions/mcp-bridge.ts +995 -0
  236. package/src/map/adapter/extensions/task.ts +11 -0
  237. package/src/map/adapter/extensions/update-metadata.ts +126 -0
  238. package/src/map/adapter/index.ts +28 -0
  239. package/src/map/adapter/interface.ts +2 -0
  240. package/src/map/adapter/map-adapter.ts +373 -38
  241. package/src/map/adapter/subscription-manager.ts +5 -1
  242. package/src/map/adapter/types.ts +2 -0
  243. package/src/mcp/__tests__/map-client.test.ts +386 -0
  244. package/src/mcp/__tests__/mcp-server-thin-client.test.ts +368 -0
  245. package/src/mcp/__tests__/mcp-server.test.ts +100 -1
  246. package/src/mcp/map-client.ts +177 -0
  247. package/src/mcp/mcp-server.ts +191 -100
  248. package/src/mcp/types.ts +6 -1
  249. package/src/metrics/metrics.ts +1 -1
  250. package/src/monitor/__tests__/stale-agent-flow.integration.test.ts +1 -1
  251. package/src/roles/__tests__/config-loader.test.ts +7 -7
  252. package/src/roles/capabilities.ts +17 -7
  253. package/src/roles/config-loader.ts +6 -6
  254. package/src/roles/registry.ts +2 -2
  255. package/src/server/__tests__/combined-server.test.ts +94 -21
  256. package/src/server/combined-server.ts +189 -33
  257. package/src/steering/__tests__/steering-integration.test.ts +1 -1
  258. package/src/store/__tests__/event-store.test.ts +236 -1
  259. package/src/store/__tests__/instance.test.ts +3 -3
  260. package/src/store/event-store.ts +109 -8
  261. package/src/store/types/agents.ts +16 -0
  262. package/src/store/types/events.ts +1 -1
  263. package/src/task/backend/__tests__/create-task-backend.test.ts +225 -0
  264. package/src/task/backend/__tests__/e2e/unified-tool-provider-opentasks.e2e.test.ts +524 -0
  265. package/src/task/backend/__tests__/unified-tool-provider.test.ts +579 -0
  266. package/src/task/backend/index.ts +156 -106
  267. package/src/task/backend/memory.ts +4 -0
  268. package/src/task/backend/opentasks/__tests__/backend.test.ts +968 -0
  269. package/src/task/backend/opentasks/__tests__/daemon-manager.test.ts +406 -0
  270. package/src/task/backend/opentasks/__tests__/mapping.test.ts +84 -0
  271. package/src/task/backend/opentasks/__tests__/opentasks-backend.e2e.test.ts +1338 -0
  272. package/src/task/backend/opentasks/backend.ts +1323 -0
  273. package/src/task/backend/opentasks/client.ts +652 -0
  274. package/src/task/backend/opentasks/daemon-manager.ts +253 -0
  275. package/src/task/backend/opentasks/index.ts +69 -0
  276. package/src/task/backend/opentasks/mapping.ts +94 -0
  277. package/src/task/backend/types.ts +42 -66
  278. package/src/task/backend/unified-tool-provider.ts +779 -0
  279. package/src/teams/__tests__/cross-subsystem.integration.test.ts +1 -1
  280. package/src/teams/team-loader.ts +3 -3
  281. package/src/teams/team-runtime.ts +2 -0
  282. package/test_fixtures/README.md +2 -3
  283. package/test_fixtures/fixtures/index.ts +0 -3
  284. package/test_fixtures/fixtures/projects/project-with-specs.ts +7 -149
  285. package/test_fixtures/fixtures/repos/index.ts +1 -3
  286. package/test_fixtures/fixtures/repos/temp-repo-factory.ts +0 -116
  287. package/test_fixtures/fixtures/repos/types.ts +0 -11
  288. package/test_fixtures/harness/__tests__/fixtures.test.ts +10 -102
  289. package/test_fixtures/harness/__tests__/temp-repo-and-simulator.test.ts +0 -33
  290. package/test_fixtures/harness/simulator/agent-simulator.ts +4 -4
  291. package/vitest.config.ts +1 -1
  292. package/vitest.e2e.config.ts +1 -1
  293. package/vitest.setup.ts +1 -30
  294. package/.macro-agent/teams/self-driving/prompts/grinder.md +0 -27
  295. package/.macro-agent/teams/self-driving/prompts/judge.md +0 -27
  296. package/.macro-agent/teams/self-driving/prompts/planner.md +0 -33
  297. package/.macro-agent/teams/self-driving/roles/grinder.yaml +0 -17
  298. package/.macro-agent/teams/self-driving/roles/judge.yaml +0 -24
  299. package/.macro-agent/teams/self-driving/roles/planner.yaml +0 -18
  300. package/.macro-agent/teams/self-driving/team.yaml +0 -103
  301. package/.macro-agent/teams/structured/prompts/developer.md +0 -26
  302. package/.macro-agent/teams/structured/prompts/lead.md +0 -25
  303. package/.macro-agent/teams/structured/prompts/reviewer.md +0 -24
  304. package/.macro-agent/teams/structured/roles/developer.yaml +0 -12
  305. package/.macro-agent/teams/structured/roles/lead.yaml +0 -11
  306. package/.macro-agent/teams/structured/roles/reviewer.yaml +0 -19
  307. package/.macro-agent/teams/structured/team.yaml +0 -89
  308. package/docs/sudocode-integration.md +0 -383
  309. package/src/task/backend/__tests__/backend-parity.test.ts +0 -451
  310. package/src/task/backend/__tests__/tool-provider-edge-cases.test.ts +0 -430
  311. package/src/task/backend/__tests__/tool-provider.test.ts +0 -983
  312. package/src/task/backend/sudocode/__tests__/backend-edge-cases.test.ts +0 -575
  313. package/src/task/backend/sudocode/__tests__/backend.test.ts +0 -1194
  314. package/src/task/backend/sudocode/__tests__/client-integration.test.ts +0 -418
  315. package/src/task/backend/sudocode/__tests__/client.test.ts +0 -345
  316. package/src/task/backend/sudocode/__tests__/e2e/backend.e2e.test.ts +0 -753
  317. package/src/task/backend/sudocode/__tests__/e2e/server-client.e2e.test.ts +0 -680
  318. package/src/task/backend/sudocode/__tests__/e2e-workflow.test.ts +0 -666
  319. package/src/task/backend/sudocode/__tests__/integration/standalone-client.integration.test.ts +0 -396
  320. package/src/task/backend/sudocode/__tests__/integration/sudocode-cli.integration.test.ts +0 -328
  321. package/src/task/backend/sudocode/__tests__/integration/test-utils.ts +0 -175
  322. package/src/task/backend/sudocode/__tests__/mapping-edge-cases.test.ts +0 -265
  323. package/src/task/backend/sudocode/__tests__/server-client.test.ts +0 -675
  324. package/src/task/backend/sudocode/__tests__/sync-policy-edge-cases.test.ts +0 -521
  325. package/src/task/backend/sudocode/__tests__/sync-policy.test.ts +0 -519
  326. package/src/task/backend/sudocode/__tests__/tools.test.ts +0 -471
  327. package/src/task/backend/sudocode/backend.ts +0 -1237
  328. package/src/task/backend/sudocode/client.ts +0 -515
  329. package/src/task/backend/sudocode/index.ts +0 -120
  330. package/src/task/backend/sudocode/mapping.ts +0 -93
  331. package/src/task/backend/sudocode/server-client.ts +0 -522
  332. package/src/task/backend/sudocode/standalone-client.ts +0 -623
  333. package/src/task/backend/sudocode/sync-policy.ts +0 -387
  334. package/src/task/backend/sudocode/tools.ts +0 -896
  335. package/src/task/backend/tool-provider.ts +0 -506
  336. package/test_fixtures/fixtures/sudocode/index.ts +0 -29
  337. package/test_fixtures/fixtures/sudocode/issues.ts +0 -185
  338. package/test_fixtures/fixtures/sudocode/specs.ts +0 -159
@@ -11,10 +11,11 @@ import { WebSocketServer } from "ws";
11
11
  import { getAncestors } from "../activity/index.js";
12
12
  import { setupACPWebSocket } from "../acp/websocket-server.js";
13
13
  import { createAPIApp, setupAPIWebSocket } from "../api/server.js";
14
- import { createMAPAdapter, createMAPWebSocketHandler, registerWorkspaceFileExtensions, } from "../map/adapter/index.js";
14
+ import { createMAPAdapter, createMAPWebSocketHandler, registerWorkspaceFileExtensions, registerUpdateMetadataExtension, registerMCPBridgeExtensions, registerTaskExtensions, registerResumeExtension, registerAgentLifecycleExtensions, } from "../map/adapter/index.js";
15
15
  import { createMailService } from "../mail/mail-service.js";
16
- import { createConversationMap } from "../mail/conversation-map.js";
16
+ import { createConversationMap, } from "../mail/conversation-map.js";
17
17
  import { createTurnRecorder } from "../mail/turn-recorder.js";
18
+ import { secureCompare, } from "../auth/token.js";
18
19
  // ─────────────────────────────────────────────────────────────────
19
20
  // MAP Services Wiring
20
21
  // ─────────────────────────────────────────────────────────────────
@@ -45,10 +46,12 @@ function createMAPServices(services) {
45
46
  const mapAgent = (agent) => agent
46
47
  ? {
47
48
  id: agent.id,
49
+ name: agent.name,
48
50
  role: agent.role,
49
51
  state: agent.state,
50
52
  parent: agent.parent ?? undefined,
51
53
  createdAt: agent.created_at,
54
+ metadata: agent.metadata,
52
55
  }
53
56
  : undefined;
54
57
  return {
@@ -75,7 +78,11 @@ function createMAPServices(services) {
75
78
  // Server Implementation
76
79
  // ─────────────────────────────────────────────────────────────────
77
80
  export function createCombinedServer(services, config = {}) {
78
- const { port = 3001, host = "localhost", defaultCwd = process.cwd(), cors = true, mapPath = "/map", disableMap = false, } = config;
81
+ const { port = 3001, host = "localhost", defaultCwd = process.cwd(), cors = true, mapPath = "/map", disableMap = false, serverToken: configToken, noAuth = false, } = config;
82
+ // Resolve server token: disabled > config > env > none (no auth by default)
83
+ const resolvedServerToken = noAuth
84
+ ? undefined
85
+ : (configToken ?? process.env.MACRO_SERVER_SECRET ?? undefined);
79
86
  // Set up mail service and conversation map (always created, independent of MAP)
80
87
  const mailService = createMailService({ eventStore: services.eventStore });
81
88
  const conversationMap = createConversationMap();
@@ -93,7 +100,7 @@ export function createCombinedServer(services, config = {}) {
93
100
  services.messageRouter.setTurnRecorder(turnRecorder);
94
101
  }
95
102
  // Create Express app with API routes (include mail services)
96
- const app = createAPIApp({ ...services, mailService, conversationMap }, { cors });
103
+ const app = createAPIApp({ ...services, mailService, conversationMap }, { cors, serverToken: resolvedServerToken });
97
104
  // Create HTTP server with Express
98
105
  const httpServer = http.createServer(app);
99
106
  // Create WebSocket servers in noServer mode
@@ -120,11 +127,86 @@ export function createCombinedServer(services, config = {}) {
120
127
  getWorkspace: () => ({ path: defaultCwd }),
121
128
  agentExists: () => true,
122
129
  });
130
+ // Register generic metadata update extension
131
+ registerUpdateMetadataExtension(mapAdapter, {
132
+ getAgent: (id) => services.agentManager.get(id),
133
+ updateAgentMetadata: (id, updates) => services.eventStore.updateAgentMetadata(id, updates),
134
+ });
135
+ // Register task extensions for direct MAP task management
136
+ if (services.taskBackend) {
137
+ registerTaskExtensions(mapAdapter, {
138
+ taskBackend: services.taskBackend,
139
+ sendMessage: async (from, to, content, options) => {
140
+ const result = await services.messageRouter.sendToAddress({
141
+ from: from,
142
+ to,
143
+ content: typeof content === "string" ? content : JSON.stringify(content),
144
+ options: options ? { priority: options.priority } : undefined,
145
+ });
146
+ return { delivered: result.delivered };
147
+ },
148
+ });
149
+ }
150
+ // Register resume extension for restarting stopped agents
151
+ registerResumeExtension(mapAdapter, {
152
+ getAgent: (id) => {
153
+ const agent = services.agentManager.get(id);
154
+ if (!agent)
155
+ return undefined;
156
+ return { id: agent.id, state: agent.state, session_id: agent.session_id };
157
+ },
158
+ resume: (id) => services.agentManager.resume(id),
159
+ });
160
+ // Register agent lifecycle extensions (spawn, fork, permission management)
161
+ registerAgentLifecycleExtensions(mapAdapter, {
162
+ getAgent: (id) => services.agentManager.get(id),
163
+ spawn: (opts) => services.agentManager.spawn(opts),
164
+ forkAgent: (id, opts) => services.agentManager.forkAgent(id, opts),
165
+ prompt: (id, msg) => services.agentManager.prompt(id, msg),
166
+ setPermissionMode: (id, mode) => services.agentManager.setPermissionMode(id, mode),
167
+ getPermissionMode: (id) => services.agentManager.getPermissionMode(id),
168
+ respondToPermission: (id, reqId, optId) => services.agentManager.respondToPermission(id, reqId, optId),
169
+ onAgentRegistered: (agent) => {
170
+ // Emit agent_registered event to all MAP subscribers
171
+ // mapAdapter is guaranteed non-null here (inside if (!disableMap) block)
172
+ mapAdapter.emitEvent({
173
+ eventId: `agent-reg-${agent.id}-${Date.now()}`,
174
+ type: "agent_registered",
175
+ timestamp: Date.now(),
176
+ data: agent,
177
+ });
178
+ },
179
+ listHeadManagers: () => services.agentManager.listHeadManagers(),
180
+ defaultCwd,
181
+ });
182
+ // Register MCP bridge extensions for thin-client MCP subprocesses
183
+ registerMCPBridgeExtensions(mapAdapter, {
184
+ eventStore: services.eventStore,
185
+ agentManager: services.agentManager,
186
+ taskManager: services.taskManager,
187
+ messageRouter: services.messageRouter,
188
+ peerManager: services.peerManager,
189
+ activityWatcher: services.activityWatcher,
190
+ taskBackend: services.taskBackend,
191
+ taskToolProvider: services.taskToolProvider,
192
+ taskToolContext: services.taskToolContext,
193
+ agentTokenManager: services.agentTokenManager,
194
+ });
123
195
  mapHandler = createMAPWebSocketHandler(mapAdapter);
124
196
  }
125
197
  // Handle upgrade requests - route by path
126
198
  httpServer.on("upgrade", (request, socket, head) => {
127
- const pathname = new URL(request.url ?? "/", `http://${request.headers.host}`).pathname;
199
+ const parsedUrl = new URL(request.url ?? "/", `http://${request.headers.host}`);
200
+ const pathname = parsedUrl.pathname;
201
+ // Validate server token on WebSocket upgrade (skip when auth disabled)
202
+ if (resolvedServerToken) {
203
+ const urlToken = parsedUrl.searchParams.get("token");
204
+ if (!urlToken || !secureCompare(urlToken, resolvedServerToken)) {
205
+ socket.write("HTTP/1.1 401 Unauthorized\r\n\r\n");
206
+ socket.destroy();
207
+ return;
208
+ }
209
+ }
128
210
  if (pathname === "/acp") {
129
211
  acpWss.handleUpgrade(request, socket, head, (ws) => {
130
212
  acpWss.emit("connection", ws, request);
@@ -149,10 +231,15 @@ export function createCombinedServer(services, config = {}) {
149
231
  });
150
232
  // Add health endpoint
151
233
  app.get("/health", (_req, res) => {
234
+ const connectedProjects = services.getConnectedProjects?.() ?? [];
152
235
  res.json({
153
236
  status: "ok",
154
237
  acp_connections: acpHandler.getConnectionCount(),
155
238
  map_connections: mapHandler?.getConnectionCount() ?? 0,
239
+ opentasks: {
240
+ connected_projects: connectedProjects,
241
+ project_count: connectedProjects.length,
242
+ },
156
243
  timestamp: Date.now(),
157
244
  });
158
245
  });
@@ -168,13 +255,20 @@ export function createCombinedServer(services, config = {}) {
168
255
  httpServer.on("error", reject);
169
256
  httpServer.listen(port, host, () => {
170
257
  httpServer.removeListener("error", reject);
258
+ const tokenParam = resolvedServerToken ? `?token=${resolvedServerToken}` : "";
171
259
  console.error(`[combined] Server listening on http://${host}:${port}`);
172
- console.error(`[combined] ACP WebSocket: ws://${host}:${port}/acp`);
260
+ console.error(`[combined] ACP WebSocket: ws://${host}:${port}/acp${tokenParam}`);
173
261
  if (mapHandler) {
174
- console.error(`[combined] MAP WebSocket: ws://${host}:${port}${mapPath}`);
262
+ console.error(`[combined] MAP WebSocket: ws://${host}:${port}${mapPath}${tokenParam}`);
175
263
  }
176
- console.error(`[combined] API WebSocket: ws://${host}:${port}/api/ws`);
264
+ console.error(`[combined] API WebSocket: ws://${host}:${port}/api/ws${tokenParam}`);
177
265
  console.error(`[combined] REST API: http://${host}:${port}/api/*`);
266
+ if (resolvedServerToken) {
267
+ console.error(`[combined] Server token: ${resolvedServerToken.substring(0, 8)}...`);
268
+ }
269
+ else {
270
+ console.error(`[combined] Auth: disabled`);
271
+ }
178
272
  resolve();
179
273
  });
180
274
  });
@@ -208,6 +302,10 @@ export function createCombinedServer(services, config = {}) {
208
302
  console.error(`[combined] Server stopped`);
209
303
  }
210
304
  function getUrl() {
305
+ const addr = httpServer.address();
306
+ if (addr && typeof addr === "object") {
307
+ return `http://${host}:${addr.port}`;
308
+ }
211
309
  return `http://${host}:${port}`;
212
310
  }
213
311
  function getACPConnectionCount() {
@@ -227,6 +325,7 @@ export function createCombinedServer(services, config = {}) {
227
325
  mapAdapter,
228
326
  mailService,
229
327
  conversationMap,
328
+ serverToken: resolvedServerToken,
230
329
  };
231
330
  }
232
331
  //# sourceMappingURL=combined-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combined-server.js","sourceRoot":"","sources":["../../src/server/combined-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combined-server.js","sourceRoot":"","sources":["../../src/server/combined-server.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * - Messages (per-agent queues)
8
8
  * - Subscriptions
9
9
  */
10
- import type { Event, EventInput, EventFilter, Agent, AgentState, Task, TaskStatus, QueuedMessage, Subscription, AgentId, TaskId, EventId, Timestamp, Conversation, ConversationTurn, ConversationParticipant, ConversationFilter, TurnFilter, ConversationChangeCallback, TurnChangeCallback, Session, SessionState } from './types/index.js';
10
+ import type { Event, EventInput, EventFilter, Agent, AgentState, AgentMetadataUpdate, Task, TaskStatus, QueuedMessage, Subscription, AgentId, TaskId, EventId, Timestamp, Conversation, ConversationTurn, ConversationParticipant, ConversationFilter, TurnFilter, ConversationChangeCallback, TurnChangeCallback, Session, SessionState } from './types/index.js';
11
11
  import { type StoreConfig } from './instance.js';
12
12
  import type { ExportedEvent } from './backends/types.js';
13
13
  export type AgentChangeCallback = (agentId: AgentId, agent: Agent | null) => void;
@@ -60,6 +60,12 @@ export interface EventStore {
60
60
  state?: AgentState;
61
61
  parent?: AgentId | null;
62
62
  }): Agent[];
63
+ updateAgentPlan(agentId: AgentId, plan: Array<{
64
+ content: string;
65
+ priority: string;
66
+ status: string;
67
+ }>): void;
68
+ updateAgentMetadata(agentId: AgentId, updates: AgentMetadataUpdate): void;
63
69
  getTask(taskId: TaskId): Task | null;
64
70
  listTasks(filter?: {
65
71
  status?: TaskStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../src/store/event-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../src/store/event-store.ts"],"names":[],"mappings":"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"}
@@ -74,8 +74,8 @@ function createTabularBetterSqlite3Persister(store, db) {
74
74
  undefined,
75
75
  // onIgnoredError
76
76
  (error) => console.warn('[EventStore] Persister error:', error),
77
- // destroy
78
- () => db.close(),
77
+ // destroy — do NOT close DB here; close() handles it after the persister drains
78
+ () => { },
79
79
  // persist mode (1 = StoreOnly)
80
80
  1,
81
81
  // thing (the db instance)
@@ -286,6 +286,39 @@ export async function createEventStore(config = {}) {
286
286
  }
287
287
  return agents;
288
288
  }
289
+ /**
290
+ * Update agent metadata fields (name, plan, metadata).
291
+ * Only provided fields are updated. Metadata is shallow-merged with existing.
292
+ */
293
+ function updateAgentMetadata(agentId, updates) {
294
+ const row = store.getRow('agents', agentId);
295
+ if (!row.id)
296
+ return;
297
+ const partial = {
298
+ last_activity_at: Date.now(),
299
+ };
300
+ if (updates.name !== undefined) {
301
+ partial.name = updates.name;
302
+ }
303
+ if (updates.plan !== undefined) {
304
+ partial.plan = JSON.stringify(updates.plan);
305
+ }
306
+ if (updates.metadata !== undefined) {
307
+ // Shallow merge with existing metadata
308
+ const existing = row.metadata ? JSON.parse(row.metadata) : {};
309
+ partial.metadata = JSON.stringify({ ...existing, ...updates.metadata });
310
+ }
311
+ store.setPartialRow('agents', agentId, partial);
312
+ const agent = rowToAgent(store.getRow('agents', agentId));
313
+ notifyAgentChange(agentId, agent);
314
+ }
315
+ /**
316
+ * Update an agent's plan entries (persisted to SQLite via TinyBase).
317
+ * Convenience wrapper around updateAgentMetadata.
318
+ */
319
+ function updateAgentPlan(agentId, plan) {
320
+ updateAgentMetadata(agentId, { plan });
321
+ }
289
322
  /**
290
323
  * Get task by ID
291
324
  */
@@ -650,8 +683,18 @@ export async function createEventStore(config = {}) {
650
683
  */
651
684
  async function close() {
652
685
  if (persister) {
686
+ // Stop auto-save first to prevent race conditions between
687
+ // auto-save callbacks and the explicit save/destroy sequence.
688
+ await persister.stopAutoSave();
653
689
  await persister.save();
690
+ // Destroy the persister (removes store listeners) BEFORE closing the DB.
691
+ // The destroy callback is a no-op — we close the DB ourselves below
692
+ // after giving TinyBase's internal async queues time to drain.
654
693
  persister.destroy();
694
+ // Allow any in-flight TinyBase microtasks to settle before closing
695
+ // the database connection. Without this, pending writes from store
696
+ // change listeners can race against db.close().
697
+ await new Promise(resolve => setTimeout(resolve, 50));
655
698
  }
656
699
  if (db) {
657
700
  db.close();
@@ -893,6 +936,8 @@ export async function createEventStore(config = {}) {
893
936
  // Views
894
937
  getAgent,
895
938
  listAgents,
939
+ updateAgentPlan,
940
+ updateAgentMetadata,
896
941
  getTask,
897
942
  listTasks,
898
943
  getMessages,
@@ -951,6 +996,24 @@ function initializeTables(store) {
951
996
  * Rebuild materialized views from the event log
952
997
  */
953
998
  function rebuildViews(store) {
999
+ // Preserve out-of-band agent fields that aren't derived from events.
1000
+ // These fields are written directly (not through events),
1001
+ // so they would be lost when we clear and replay.
1002
+ const OUT_OF_BAND_FIELDS = ['plan', 'name', 'metadata'];
1003
+ const savedOutOfBand = new Map();
1004
+ for (const rowId of store.getRowIds('agents')) {
1005
+ const row = store.getRow('agents', rowId);
1006
+ const saved = {};
1007
+ for (const field of OUT_OF_BAND_FIELDS) {
1008
+ const val = row[field];
1009
+ if (val && val !== '' && val !== '[]') {
1010
+ saved[field] = val;
1011
+ }
1012
+ }
1013
+ if (Object.keys(saved).length > 0) {
1014
+ savedOutOfBand.set(rowId, saved);
1015
+ }
1016
+ }
954
1017
  // Clear existing views
955
1018
  for (const rowId of store.getRowIds('agents')) {
956
1019
  store.delRow('agents', rowId);
@@ -1002,6 +1065,13 @@ function rebuildViews(store) {
1002
1065
  for (const event of events) {
1003
1066
  applyEventToViews(store, event, noop, noop, noop, noop, noop, noop);
1004
1067
  }
1068
+ // Restore out-of-band agent fields preserved before the wipe
1069
+ for (const [agentId, fields] of savedOutOfBand) {
1070
+ const row = store.getRow('agents', agentId);
1071
+ if (row.id) {
1072
+ store.setPartialRow('agents', agentId, fields);
1073
+ }
1074
+ }
1005
1075
  }
1006
1076
  /**
1007
1077
  * Apply a single event to materialized views
@@ -1011,8 +1081,8 @@ function applyEventToViews(store, event, notifyAgentChange, notifyTaskChange, no
1011
1081
  case 'spawn':
1012
1082
  applySpawnEvent(store, event, notifyAgentChange);
1013
1083
  break;
1014
- case 'terminate':
1015
- applyTerminateEvent(store, event, notifyAgentChange);
1084
+ case 'stop':
1085
+ applyStopEvent(store, event, notifyAgentChange);
1016
1086
  break;
1017
1087
  case 'status':
1018
1088
  applyStatusEvent(store, event, notifyAgentChange);
@@ -1063,6 +1133,7 @@ function applySpawnEvent(store, event, notify) {
1063
1133
  }
1064
1134
  store.setRow('agents', agentId, {
1065
1135
  id: agentId,
1136
+ name: '',
1066
1137
  session_id: payload.session_id,
1067
1138
  provider_session_id: '',
1068
1139
  parent: parent ?? '',
@@ -1074,6 +1145,8 @@ function applySpawnEvent(store, event, notify) {
1074
1145
  role: payload.role ?? '',
1075
1146
  config: JSON.stringify(payload.config ?? {}),
1076
1147
  cwd: payload.cwd ?? process.cwd(),
1148
+ plan: '[]',
1149
+ metadata: '',
1077
1150
  created_at: event.timestamp,
1078
1151
  started_at: 0,
1079
1152
  stopped_at: 0,
@@ -1083,9 +1156,9 @@ function applySpawnEvent(store, event, notify) {
1083
1156
  notify(agentId, agent);
1084
1157
  }
1085
1158
  /**
1086
- * Apply terminate event to agents view
1159
+ * Apply stop event to agents view
1087
1160
  */
1088
- function applyTerminateEvent(store, event, notify) {
1161
+ function applyStopEvent(store, event, notify) {
1089
1162
  const agentId = event.source.agent_id;
1090
1163
  if (!agentId)
1091
1164
  return;
@@ -1201,6 +1274,7 @@ function applyTaskEvent(store, event, notify) {
1201
1274
  parent_task: details.parent_task ?? '',
1202
1275
  subtasks: JSON.stringify([]),
1203
1276
  blockers: JSON.stringify([]),
1277
+ tags: details.tags ? JSON.stringify(details.tags) : '',
1204
1278
  created_at: event.timestamp,
1205
1279
  started_at: 0,
1206
1280
  completed_at: 0,
@@ -1247,10 +1321,15 @@ function applyTaskEvent(store, event, notify) {
1247
1321
  break;
1248
1322
  }
1249
1323
  }
1250
- store.setPartialRow('tasks', taskId, {
1324
+ const updates = {
1251
1325
  assigned_agent: '',
1252
1326
  agent_history: JSON.stringify(history),
1253
- });
1327
+ };
1328
+ // Reset to pending if task was only assigned (not yet started)
1329
+ if (existing.status === 'assigned') {
1330
+ updates.status = 'pending';
1331
+ }
1332
+ store.setPartialRow('tasks', taskId, updates);
1254
1333
  break;
1255
1334
  }
1256
1335
  case 'status_change': {
@@ -1355,6 +1434,7 @@ function rowToAgent(row) {
1355
1434
  const stopReason = row.stop_reason;
1356
1435
  return {
1357
1436
  id: row.id,
1437
+ name: row.name || undefined,
1358
1438
  session_id: row.session_id,
1359
1439
  provider_session_id: row.provider_session_id || undefined,
1360
1440
  parent: row.parent || null,
@@ -1366,6 +1446,8 @@ function rowToAgent(row) {
1366
1446
  role: row.role || undefined,
1367
1447
  config: row.config ? JSON.parse(row.config) : {},
1368
1448
  cwd: row.cwd || process.cwd(),
1449
+ plan: row.plan ? JSON.parse(row.plan) : [],
1450
+ metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
1369
1451
  created_at: row.created_at,
1370
1452
  started_at: row.started_at || undefined,
1371
1453
  stopped_at: row.stopped_at || undefined,
@@ -1392,6 +1474,7 @@ function rowToTask(row) {
1392
1474
  outputs: row.outputs ? JSON.parse(row.outputs) : undefined,
1393
1475
  artifacts: row.artifacts ? JSON.parse(row.artifacts) : undefined,
1394
1476
  agent_history: row.agent_history ? JSON.parse(row.agent_history) : undefined,
1477
+ tags: row.tags ? JSON.parse(row.tags) : undefined,
1395
1478
  retryPolicy: row.retry_policy ? JSON.parse(row.retry_policy) : undefined,
1396
1479
  retryState: row.retry_state ? JSON.parse(row.retry_state) : undefined,
1397
1480
  };