macro-agent 0.1.0 → 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 (337) 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 +15 -0
  6. package/dist/acp/macro-agent.d.ts.map +1 -1
  7. package/dist/acp/macro-agent.js +131 -35
  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 +17 -0
  53. package/dist/map/adapter/acp-over-map.d.ts.map +1 -1
  54. package/dist/map/adapter/acp-over-map.js +384 -23
  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 +3 -0
  95. package/dist/map/adapter/map-adapter.d.ts.map +1 -1
  96. package/dist/map/adapter/map-adapter.js +258 -35
  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 +2 -1
  131. package/dist/store/event-store.d.ts.map +1 -1
  132. package/dist/store/event-store.js +69 -20
  133. package/dist/store/event-store.js.map +1 -1
  134. package/dist/store/types/agents.d.ts +18 -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__/integration.test.ts +56 -31
  197. package/src/acp/__tests__/macro-agent.test.ts +16 -7
  198. package/src/acp/macro-agent.ts +170 -36
  199. package/src/acp/types.ts +46 -1
  200. package/src/agent/__tests__/agent-manager.test.ts +228 -2
  201. package/src/agent/agent-manager.ts +714 -261
  202. package/src/agent/types.ts +3 -1
  203. package/src/api/server.ts +41 -7
  204. package/src/auth/__tests__/token.test.ts +100 -0
  205. package/src/auth/index.ts +1 -0
  206. package/src/auth/token.ts +82 -0
  207. package/src/cli/__tests__/acp.test.ts +1 -1
  208. package/src/cli/__tests__/stable-instance-id.test.ts +1 -1
  209. package/src/cli/acp.ts +130 -72
  210. package/src/cli/index.ts +120 -14
  211. package/src/cli/mcp.ts +311 -207
  212. package/src/cli/parse-args.ts +54 -0
  213. package/src/cli/stable-instance-id.ts +14 -0
  214. package/src/config/project-config.ts +190 -27
  215. package/src/lifecycle/__tests__/cascade-termination.test.ts +1 -1
  216. package/src/map/adapter/__tests__/acp-over-map-cancel.test.ts +22 -4
  217. package/src/map/adapter/__tests__/acp-over-map-getmodels.test.ts +355 -0
  218. package/src/map/adapter/__tests__/acp-over-map-history.test.ts +263 -0
  219. package/src/map/adapter/__tests__/acp-over-map-persistence.e2e.test.ts +1 -1
  220. package/src/map/adapter/__tests__/event-broadcast.test.ts +420 -0
  221. package/src/map/adapter/__tests__/event-log.test.ts +527 -0
  222. package/src/map/adapter/__tests__/event-translator.test.ts +3 -3
  223. package/src/map/adapter/__tests__/extensions.test.ts +408 -0
  224. package/src/map/adapter/__tests__/map-adapter.test.ts +99 -0
  225. package/src/map/adapter/__tests__/mcp-bridge.test.ts +1187 -0
  226. package/src/map/adapter/__tests__/multi-client-broadcast.test.ts +711 -0
  227. package/src/map/adapter/__tests__/websocket-integration.test.ts +218 -0
  228. package/src/map/adapter/acp-over-map.ts +678 -66
  229. package/src/map/adapter/connection-manager.ts +3 -0
  230. package/src/map/adapter/event-log.ts +208 -0
  231. package/src/map/adapter/event-translator.ts +6 -6
  232. package/src/map/adapter/extensions/agent-lifecycle.ts +267 -0
  233. package/src/map/adapter/extensions/index.ts +60 -0
  234. package/src/map/adapter/extensions/mcp-bridge.ts +995 -0
  235. package/src/map/adapter/extensions/task.ts +11 -0
  236. package/src/map/adapter/extensions/update-metadata.ts +126 -0
  237. package/src/map/adapter/index.ts +28 -0
  238. package/src/map/adapter/interface.ts +2 -0
  239. package/src/map/adapter/map-adapter.ts +312 -47
  240. package/src/map/adapter/subscription-manager.ts +5 -1
  241. package/src/map/adapter/types.ts +2 -0
  242. package/src/mcp/__tests__/map-client.test.ts +386 -0
  243. package/src/mcp/__tests__/mcp-server-thin-client.test.ts +368 -0
  244. package/src/mcp/__tests__/mcp-server.test.ts +100 -1
  245. package/src/mcp/map-client.ts +177 -0
  246. package/src/mcp/mcp-server.ts +191 -100
  247. package/src/mcp/types.ts +6 -1
  248. package/src/metrics/metrics.ts +1 -1
  249. package/src/monitor/__tests__/stale-agent-flow.integration.test.ts +1 -1
  250. package/src/roles/__tests__/config-loader.test.ts +7 -7
  251. package/src/roles/capabilities.ts +17 -7
  252. package/src/roles/config-loader.ts +6 -6
  253. package/src/roles/registry.ts +2 -2
  254. package/src/server/__tests__/combined-server.test.ts +94 -21
  255. package/src/server/combined-server.ts +189 -33
  256. package/src/steering/__tests__/steering-integration.test.ts +1 -1
  257. package/src/store/__tests__/event-store.test.ts +196 -1
  258. package/src/store/__tests__/instance.test.ts +3 -3
  259. package/src/store/event-store.ts +80 -21
  260. package/src/store/types/agents.ts +15 -0
  261. package/src/store/types/events.ts +1 -1
  262. package/src/task/backend/__tests__/create-task-backend.test.ts +225 -0
  263. package/src/task/backend/__tests__/e2e/unified-tool-provider-opentasks.e2e.test.ts +524 -0
  264. package/src/task/backend/__tests__/unified-tool-provider.test.ts +579 -0
  265. package/src/task/backend/index.ts +156 -106
  266. package/src/task/backend/memory.ts +4 -0
  267. package/src/task/backend/opentasks/__tests__/backend.test.ts +968 -0
  268. package/src/task/backend/opentasks/__tests__/daemon-manager.test.ts +406 -0
  269. package/src/task/backend/opentasks/__tests__/mapping.test.ts +84 -0
  270. package/src/task/backend/opentasks/__tests__/opentasks-backend.e2e.test.ts +1338 -0
  271. package/src/task/backend/opentasks/backend.ts +1323 -0
  272. package/src/task/backend/opentasks/client.ts +652 -0
  273. package/src/task/backend/opentasks/daemon-manager.ts +253 -0
  274. package/src/task/backend/opentasks/index.ts +69 -0
  275. package/src/task/backend/opentasks/mapping.ts +94 -0
  276. package/src/task/backend/types.ts +42 -66
  277. package/src/task/backend/unified-tool-provider.ts +779 -0
  278. package/src/teams/__tests__/cross-subsystem.integration.test.ts +1 -1
  279. package/src/teams/team-loader.ts +3 -3
  280. package/src/teams/team-runtime.ts +2 -0
  281. package/test_fixtures/README.md +2 -3
  282. package/test_fixtures/fixtures/index.ts +0 -3
  283. package/test_fixtures/fixtures/projects/project-with-specs.ts +7 -149
  284. package/test_fixtures/fixtures/repos/index.ts +1 -3
  285. package/test_fixtures/fixtures/repos/temp-repo-factory.ts +0 -116
  286. package/test_fixtures/fixtures/repos/types.ts +0 -11
  287. package/test_fixtures/harness/__tests__/fixtures.test.ts +10 -102
  288. package/test_fixtures/harness/__tests__/temp-repo-and-simulator.test.ts +0 -33
  289. package/test_fixtures/harness/simulator/agent-simulator.ts +4 -4
  290. package/vitest.config.ts +1 -1
  291. package/vitest.e2e.config.ts +1 -1
  292. package/vitest.setup.ts +1 -30
  293. package/.macro-agent/teams/self-driving/prompts/grinder.md +0 -27
  294. package/.macro-agent/teams/self-driving/prompts/judge.md +0 -27
  295. package/.macro-agent/teams/self-driving/prompts/planner.md +0 -33
  296. package/.macro-agent/teams/self-driving/roles/grinder.yaml +0 -17
  297. package/.macro-agent/teams/self-driving/roles/judge.yaml +0 -24
  298. package/.macro-agent/teams/self-driving/roles/planner.yaml +0 -18
  299. package/.macro-agent/teams/self-driving/team.yaml +0 -103
  300. package/.macro-agent/teams/structured/prompts/developer.md +0 -26
  301. package/.macro-agent/teams/structured/prompts/lead.md +0 -25
  302. package/.macro-agent/teams/structured/prompts/reviewer.md +0 -24
  303. package/.macro-agent/teams/structured/roles/developer.yaml +0 -12
  304. package/.macro-agent/teams/structured/roles/lead.yaml +0 -11
  305. package/.macro-agent/teams/structured/roles/reviewer.yaml +0 -19
  306. package/.macro-agent/teams/structured/team.yaml +0 -89
  307. package/docs/sudocode-integration.md +0 -383
  308. package/src/task/backend/__tests__/backend-parity.test.ts +0 -451
  309. package/src/task/backend/__tests__/tool-provider-edge-cases.test.ts +0 -430
  310. package/src/task/backend/__tests__/tool-provider.test.ts +0 -983
  311. package/src/task/backend/sudocode/__tests__/backend-edge-cases.test.ts +0 -575
  312. package/src/task/backend/sudocode/__tests__/backend.test.ts +0 -1194
  313. package/src/task/backend/sudocode/__tests__/client-integration.test.ts +0 -418
  314. package/src/task/backend/sudocode/__tests__/client.test.ts +0 -345
  315. package/src/task/backend/sudocode/__tests__/e2e/backend.e2e.test.ts +0 -753
  316. package/src/task/backend/sudocode/__tests__/e2e/server-client.e2e.test.ts +0 -680
  317. package/src/task/backend/sudocode/__tests__/e2e-workflow.test.ts +0 -666
  318. package/src/task/backend/sudocode/__tests__/integration/standalone-client.integration.test.ts +0 -396
  319. package/src/task/backend/sudocode/__tests__/integration/sudocode-cli.integration.test.ts +0 -328
  320. package/src/task/backend/sudocode/__tests__/integration/test-utils.ts +0 -175
  321. package/src/task/backend/sudocode/__tests__/mapping-edge-cases.test.ts +0 -265
  322. package/src/task/backend/sudocode/__tests__/server-client.test.ts +0 -675
  323. package/src/task/backend/sudocode/__tests__/sync-policy-edge-cases.test.ts +0 -521
  324. package/src/task/backend/sudocode/__tests__/sync-policy.test.ts +0 -519
  325. package/src/task/backend/sudocode/__tests__/tools.test.ts +0 -471
  326. package/src/task/backend/sudocode/backend.ts +0 -1237
  327. package/src/task/backend/sudocode/client.ts +0 -515
  328. package/src/task/backend/sudocode/index.ts +0 -120
  329. package/src/task/backend/sudocode/mapping.ts +0 -93
  330. package/src/task/backend/sudocode/server-client.ts +0 -522
  331. package/src/task/backend/sudocode/standalone-client.ts +0 -623
  332. package/src/task/backend/sudocode/sync-policy.ts +0 -387
  333. package/src/task/backend/sudocode/tools.ts +0 -896
  334. package/src/task/backend/tool-provider.ts +0 -506
  335. package/test_fixtures/fixtures/sudocode/index.ts +0 -29
  336. package/test_fixtures/fixtures/sudocode/issues.ts +0 -185
  337. 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;
@@ -65,6 +65,7 @@ export interface EventStore {
65
65
  priority: string;
66
66
  status: string;
67
67
  }>): void;
68
+ updateAgentMetadata(agentId: AgentId, updates: AgentMetadataUpdate): void;
68
69
  getTask(taskId: TaskId): Task | null;
69
70
  listTasks(filter?: {
70
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)
@@ -287,19 +287,38 @@ export async function createEventStore(config = {}) {
287
287
  return agents;
288
288
  }
289
289
  /**
290
- * Update an agent's plan entries (persisted to SQLite via TinyBase)
290
+ * Update agent metadata fields (name, plan, metadata).
291
+ * Only provided fields are updated. Metadata is shallow-merged with existing.
291
292
  */
292
- function updateAgentPlan(agentId, plan) {
293
+ function updateAgentMetadata(agentId, updates) {
293
294
  const row = store.getRow('agents', agentId);
294
295
  if (!row.id)
295
296
  return;
296
- store.setPartialRow('agents', agentId, {
297
- plan: JSON.stringify(plan),
297
+ const partial = {
298
298
  last_activity_at: Date.now(),
299
- });
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);
300
312
  const agent = rowToAgent(store.getRow('agents', agentId));
301
313
  notifyAgentChange(agentId, agent);
302
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
+ }
303
322
  /**
304
323
  * Get task by ID
305
324
  */
@@ -664,8 +683,18 @@ export async function createEventStore(config = {}) {
664
683
  */
665
684
  async function close() {
666
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();
667
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.
668
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));
669
698
  }
670
699
  if (db) {
671
700
  db.close();
@@ -908,6 +937,7 @@ export async function createEventStore(config = {}) {
908
937
  getAgent,
909
938
  listAgents,
910
939
  updateAgentPlan,
940
+ updateAgentMetadata,
911
941
  getTask,
912
942
  listTasks,
913
943
  getMessages,
@@ -967,13 +997,21 @@ function initializeTables(store) {
967
997
  */
968
998
  function rebuildViews(store) {
969
999
  // Preserve out-of-band agent fields that aren't derived from events.
970
- // `plan` is written directly via updateAgentPlan(), not through events,
971
- // so it would be lost when we clear and replay.
972
- const savedAgentPlan = new Map();
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();
973
1004
  for (const rowId of store.getRowIds('agents')) {
974
1005
  const row = store.getRow('agents', rowId);
975
- if (row.plan && row.plan !== '[]') {
976
- savedAgentPlan.set(rowId, row.plan);
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);
977
1015
  }
978
1016
  }
979
1017
  // Clear existing views
@@ -1028,10 +1066,10 @@ function rebuildViews(store) {
1028
1066
  applyEventToViews(store, event, noop, noop, noop, noop, noop, noop);
1029
1067
  }
1030
1068
  // Restore out-of-band agent fields preserved before the wipe
1031
- for (const [agentId, plan] of savedAgentPlan) {
1069
+ for (const [agentId, fields] of savedOutOfBand) {
1032
1070
  const row = store.getRow('agents', agentId);
1033
1071
  if (row.id) {
1034
- store.setPartialRow('agents', agentId, { plan });
1072
+ store.setPartialRow('agents', agentId, fields);
1035
1073
  }
1036
1074
  }
1037
1075
  }
@@ -1043,8 +1081,8 @@ function applyEventToViews(store, event, notifyAgentChange, notifyTaskChange, no
1043
1081
  case 'spawn':
1044
1082
  applySpawnEvent(store, event, notifyAgentChange);
1045
1083
  break;
1046
- case 'terminate':
1047
- applyTerminateEvent(store, event, notifyAgentChange);
1084
+ case 'stop':
1085
+ applyStopEvent(store, event, notifyAgentChange);
1048
1086
  break;
1049
1087
  case 'status':
1050
1088
  applyStatusEvent(store, event, notifyAgentChange);
@@ -1095,6 +1133,7 @@ function applySpawnEvent(store, event, notify) {
1095
1133
  }
1096
1134
  store.setRow('agents', agentId, {
1097
1135
  id: agentId,
1136
+ name: '',
1098
1137
  session_id: payload.session_id,
1099
1138
  provider_session_id: '',
1100
1139
  parent: parent ?? '',
@@ -1107,6 +1146,7 @@ function applySpawnEvent(store, event, notify) {
1107
1146
  config: JSON.stringify(payload.config ?? {}),
1108
1147
  cwd: payload.cwd ?? process.cwd(),
1109
1148
  plan: '[]',
1149
+ metadata: '',
1110
1150
  created_at: event.timestamp,
1111
1151
  started_at: 0,
1112
1152
  stopped_at: 0,
@@ -1116,9 +1156,9 @@ function applySpawnEvent(store, event, notify) {
1116
1156
  notify(agentId, agent);
1117
1157
  }
1118
1158
  /**
1119
- * Apply terminate event to agents view
1159
+ * Apply stop event to agents view
1120
1160
  */
1121
- function applyTerminateEvent(store, event, notify) {
1161
+ function applyStopEvent(store, event, notify) {
1122
1162
  const agentId = event.source.agent_id;
1123
1163
  if (!agentId)
1124
1164
  return;
@@ -1234,6 +1274,7 @@ function applyTaskEvent(store, event, notify) {
1234
1274
  parent_task: details.parent_task ?? '',
1235
1275
  subtasks: JSON.stringify([]),
1236
1276
  blockers: JSON.stringify([]),
1277
+ tags: details.tags ? JSON.stringify(details.tags) : '',
1237
1278
  created_at: event.timestamp,
1238
1279
  started_at: 0,
1239
1280
  completed_at: 0,
@@ -1280,10 +1321,15 @@ function applyTaskEvent(store, event, notify) {
1280
1321
  break;
1281
1322
  }
1282
1323
  }
1283
- store.setPartialRow('tasks', taskId, {
1324
+ const updates = {
1284
1325
  assigned_agent: '',
1285
1326
  agent_history: JSON.stringify(history),
1286
- });
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);
1287
1333
  break;
1288
1334
  }
1289
1335
  case 'status_change': {
@@ -1388,6 +1434,7 @@ function rowToAgent(row) {
1388
1434
  const stopReason = row.stop_reason;
1389
1435
  return {
1390
1436
  id: row.id,
1437
+ name: row.name || undefined,
1391
1438
  session_id: row.session_id,
1392
1439
  provider_session_id: row.provider_session_id || undefined,
1393
1440
  parent: row.parent || null,
@@ -1400,6 +1447,7 @@ function rowToAgent(row) {
1400
1447
  config: row.config ? JSON.parse(row.config) : {},
1401
1448
  cwd: row.cwd || process.cwd(),
1402
1449
  plan: row.plan ? JSON.parse(row.plan) : [],
1450
+ metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
1403
1451
  created_at: row.created_at,
1404
1452
  started_at: row.started_at || undefined,
1405
1453
  stopped_at: row.stopped_at || undefined,
@@ -1426,6 +1474,7 @@ function rowToTask(row) {
1426
1474
  outputs: row.outputs ? JSON.parse(row.outputs) : undefined,
1427
1475
  artifacts: row.artifacts ? JSON.parse(row.artifacts) : undefined,
1428
1476
  agent_history: row.agent_history ? JSON.parse(row.agent_history) : undefined,
1477
+ tags: row.tags ? JSON.parse(row.tags) : undefined,
1429
1478
  retryPolicy: row.retry_policy ? JSON.parse(row.retry_policy) : undefined,
1430
1479
  retryState: row.retry_state ? JSON.parse(row.retry_state) : undefined,
1431
1480
  };