macro-agent 0.1.8 → 0.1.11

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 (306) hide show
  1. package/CLAUDE.md +263 -33
  2. package/README.md +781 -131
  3. package/dist/acp/claude-code-replay.d.ts +11 -0
  4. package/dist/acp/claude-code-replay.d.ts.map +1 -0
  5. package/dist/acp/claude-code-replay.js +190 -0
  6. package/dist/acp/claude-code-replay.js.map +1 -0
  7. package/dist/acp/macro-agent.d.ts.map +1 -1
  8. package/dist/acp/macro-agent.js +192 -7
  9. package/dist/acp/macro-agent.js.map +1 -1
  10. package/dist/acp/types.d.ts +9 -0
  11. package/dist/acp/types.d.ts.map +1 -1
  12. package/dist/acp/types.js.map +1 -1
  13. package/dist/adapters/tasks-adapter.d.ts.map +1 -1
  14. package/dist/adapters/tasks-adapter.js +3 -0
  15. package/dist/adapters/tasks-adapter.js.map +1 -1
  16. package/dist/adapters/types.d.ts +1 -0
  17. package/dist/adapters/types.d.ts.map +1 -1
  18. package/dist/agent/agent-manager-v2.d.ts +21 -0
  19. package/dist/agent/agent-manager-v2.d.ts.map +1 -1
  20. package/dist/agent/agent-manager-v2.js +308 -54
  21. package/dist/agent/agent-manager-v2.js.map +1 -1
  22. package/dist/agent/agent-manager.d.ts +12 -0
  23. package/dist/agent/agent-manager.d.ts.map +1 -1
  24. package/dist/agent/agent-manager.js.map +1 -1
  25. package/dist/agent/agent-store.d.ts +10 -0
  26. package/dist/agent/agent-store.d.ts.map +1 -1
  27. package/dist/agent/agent-store.js +22 -0
  28. package/dist/agent/agent-store.js.map +1 -1
  29. package/dist/agent/types.d.ts +15 -2
  30. package/dist/agent/types.d.ts.map +1 -1
  31. package/dist/agent/types.js.map +1 -1
  32. package/dist/boot-v2.d.ts +129 -1
  33. package/dist/boot-v2.d.ts.map +1 -1
  34. package/dist/boot-v2.js +359 -8
  35. package/dist/boot-v2.js.map +1 -1
  36. package/dist/cli/acp.js +4 -0
  37. package/dist/cli/acp.js.map +1 -1
  38. package/dist/cli/index.js +56 -0
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/cognitive/macro-agent-backend.d.ts.map +1 -1
  41. package/dist/cognitive/macro-agent-backend.js +40 -22
  42. package/dist/cognitive/macro-agent-backend.js.map +1 -1
  43. package/dist/integrations/skilltree.d.ts.map +1 -1
  44. package/dist/integrations/skilltree.js +1 -0
  45. package/dist/integrations/skilltree.js.map +1 -1
  46. package/dist/lifecycle/cascade.d.ts +25 -2
  47. package/dist/lifecycle/cascade.d.ts.map +1 -1
  48. package/dist/lifecycle/cascade.js +70 -2
  49. package/dist/lifecycle/cascade.js.map +1 -1
  50. package/dist/lifecycle/cleanup.d.ts +33 -2
  51. package/dist/lifecycle/cleanup.d.ts.map +1 -1
  52. package/dist/lifecycle/cleanup.js +28 -6
  53. package/dist/lifecycle/cleanup.js.map +1 -1
  54. package/dist/lifecycle/handlers-v2.d.ts +7 -0
  55. package/dist/lifecycle/handlers-v2.d.ts.map +1 -1
  56. package/dist/lifecycle/handlers-v2.js +28 -2
  57. package/dist/lifecycle/handlers-v2.js.map +1 -1
  58. package/dist/lifecycle/types.d.ts +11 -0
  59. package/dist/lifecycle/types.d.ts.map +1 -1
  60. package/dist/lifecycle/types.js.map +1 -1
  61. package/dist/map/acp-bridge.d.ts +9 -0
  62. package/dist/map/acp-bridge.d.ts.map +1 -1
  63. package/dist/map/acp-bridge.js +15 -2
  64. package/dist/map/acp-bridge.js.map +1 -1
  65. package/dist/map/cascade-action-handler.d.ts +24 -0
  66. package/dist/map/cascade-action-handler.d.ts.map +1 -0
  67. package/dist/map/cascade-action-handler.js +170 -0
  68. package/dist/map/cascade-action-handler.js.map +1 -0
  69. package/dist/map/cascade-bridge.d.ts +44 -0
  70. package/dist/map/cascade-bridge.d.ts.map +1 -0
  71. package/dist/map/cascade-bridge.js +294 -0
  72. package/dist/map/cascade-bridge.js.map +1 -0
  73. package/dist/map/coordination-handler.d.ts.map +1 -1
  74. package/dist/map/coordination-handler.js +12 -1
  75. package/dist/map/coordination-handler.js.map +1 -1
  76. package/dist/map/lifecycle-bridge.d.ts +1 -1
  77. package/dist/map/lifecycle-bridge.d.ts.map +1 -1
  78. package/dist/map/lifecycle-bridge.js +58 -23
  79. package/dist/map/lifecycle-bridge.js.map +1 -1
  80. package/dist/map/server.d.ts.map +1 -1
  81. package/dist/map/server.js +219 -7
  82. package/dist/map/server.js.map +1 -1
  83. package/dist/map/sidecar.d.ts.map +1 -1
  84. package/dist/map/sidecar.js +49 -2
  85. package/dist/map/sidecar.js.map +1 -1
  86. package/dist/map/types.d.ts +22 -0
  87. package/dist/map/types.d.ts.map +1 -1
  88. package/dist/mcp/tools/done-v2.d.ts.map +1 -1
  89. package/dist/mcp/tools/done-v2.js +8 -0
  90. package/dist/mcp/tools/done-v2.js.map +1 -1
  91. package/dist/teams/team-manager-v2.d.ts.map +1 -1
  92. package/dist/teams/team-manager-v2.js +26 -0
  93. package/dist/teams/team-manager-v2.js.map +1 -1
  94. package/dist/teams/team-runtime-v2.d.ts.map +1 -1
  95. package/dist/teams/team-runtime-v2.js +16 -3
  96. package/dist/teams/team-runtime-v2.js.map +1 -1
  97. package/dist/workspace/config.d.ts +10 -10
  98. package/dist/workspace/config.d.ts.map +1 -1
  99. package/dist/workspace/config.js +4 -4
  100. package/dist/workspace/config.js.map +1 -1
  101. package/dist/workspace/git-cascade-adapter.d.ts +510 -0
  102. package/dist/workspace/git-cascade-adapter.d.ts.map +1 -0
  103. package/dist/workspace/git-cascade-adapter.js +934 -0
  104. package/dist/workspace/git-cascade-adapter.js.map +1 -0
  105. package/dist/workspace/index.d.ts +3 -3
  106. package/dist/workspace/index.d.ts.map +1 -1
  107. package/dist/workspace/index.js +4 -4
  108. package/dist/workspace/index.js.map +1 -1
  109. package/dist/workspace/landing/direct-push.d.ts +20 -0
  110. package/dist/workspace/landing/direct-push.d.ts.map +1 -0
  111. package/dist/workspace/landing/direct-push.js +74 -0
  112. package/dist/workspace/landing/direct-push.js.map +1 -0
  113. package/dist/workspace/landing/index.d.ts +29 -0
  114. package/dist/workspace/landing/index.d.ts.map +1 -0
  115. package/dist/workspace/landing/index.js +37 -0
  116. package/dist/workspace/landing/index.js.map +1 -0
  117. package/dist/workspace/landing/merge-to-parent.d.ts +41 -0
  118. package/dist/workspace/landing/merge-to-parent.d.ts.map +1 -0
  119. package/dist/workspace/landing/merge-to-parent.js +186 -0
  120. package/dist/workspace/landing/merge-to-parent.js.map +1 -0
  121. package/dist/workspace/landing/optimistic-push.d.ts +16 -0
  122. package/dist/workspace/landing/optimistic-push.d.ts.map +1 -0
  123. package/dist/workspace/landing/optimistic-push.js +27 -0
  124. package/dist/workspace/landing/optimistic-push.js.map +1 -0
  125. package/dist/workspace/landing/queue-to-branch.d.ts +24 -0
  126. package/dist/workspace/landing/queue-to-branch.d.ts.map +1 -0
  127. package/dist/workspace/landing/queue-to-branch.js +79 -0
  128. package/dist/workspace/landing/queue-to-branch.js.map +1 -0
  129. package/dist/workspace/merge-queue/merge-queue.d.ts +10 -0
  130. package/dist/workspace/merge-queue/merge-queue.d.ts.map +1 -1
  131. package/dist/workspace/merge-queue/merge-queue.js +10 -0
  132. package/dist/workspace/merge-queue/merge-queue.js.map +1 -1
  133. package/dist/workspace/merge-queue/types.d.ts +16 -2
  134. package/dist/workspace/merge-queue/types.d.ts.map +1 -1
  135. package/dist/workspace/merge-queue/types.js +9 -0
  136. package/dist/workspace/merge-queue/types.js.map +1 -1
  137. package/dist/workspace/pool/types.d.ts +1 -0
  138. package/dist/workspace/pool/types.d.ts.map +1 -1
  139. package/dist/workspace/pool/worktree-pool.d.ts.map +1 -1
  140. package/dist/workspace/pool/worktree-pool.js +1 -0
  141. package/dist/workspace/pool/worktree-pool.js.map +1 -1
  142. package/dist/workspace/recovery/abandon.d.ts +15 -0
  143. package/dist/workspace/recovery/abandon.d.ts.map +1 -0
  144. package/dist/workspace/recovery/abandon.js +45 -0
  145. package/dist/workspace/recovery/abandon.js.map +1 -0
  146. package/dist/workspace/recovery/auto-resolve.d.ts +27 -0
  147. package/dist/workspace/recovery/auto-resolve.d.ts.map +1 -0
  148. package/dist/workspace/recovery/auto-resolve.js +99 -0
  149. package/dist/workspace/recovery/auto-resolve.js.map +1 -0
  150. package/dist/workspace/recovery/defer.d.ts +15 -0
  151. package/dist/workspace/recovery/defer.d.ts.map +1 -0
  152. package/dist/workspace/recovery/defer.js +16 -0
  153. package/dist/workspace/recovery/defer.js.map +1 -0
  154. package/dist/workspace/recovery/escalate.d.ts +16 -0
  155. package/dist/workspace/recovery/escalate.d.ts.map +1 -0
  156. package/dist/workspace/recovery/escalate.js +24 -0
  157. package/dist/workspace/recovery/escalate.js.map +1 -0
  158. package/dist/workspace/recovery/index.d.ts +32 -0
  159. package/dist/workspace/recovery/index.d.ts.map +1 -0
  160. package/dist/workspace/recovery/index.js +45 -0
  161. package/dist/workspace/recovery/index.js.map +1 -0
  162. package/dist/workspace/recovery/spawn-resolver.d.ts +45 -0
  163. package/dist/workspace/recovery/spawn-resolver.d.ts.map +1 -0
  164. package/dist/workspace/recovery/spawn-resolver.js +118 -0
  165. package/dist/workspace/recovery/spawn-resolver.js.map +1 -0
  166. package/dist/workspace/recovery/types.d.ts +63 -0
  167. package/dist/workspace/recovery/types.d.ts.map +1 -0
  168. package/dist/workspace/recovery/types.js +12 -0
  169. package/dist/workspace/recovery/types.js.map +1 -0
  170. package/dist/workspace/topology/index.d.ts +9 -0
  171. package/dist/workspace/topology/index.d.ts.map +1 -0
  172. package/dist/workspace/topology/index.js +8 -0
  173. package/dist/workspace/topology/index.js.map +1 -0
  174. package/dist/workspace/topology/no-workspace.d.ts +18 -0
  175. package/dist/workspace/topology/no-workspace.d.ts.map +1 -0
  176. package/dist/workspace/topology/no-workspace.js +25 -0
  177. package/dist/workspace/topology/no-workspace.js.map +1 -0
  178. package/dist/workspace/topology/types.d.ts +97 -0
  179. package/dist/workspace/topology/types.d.ts.map +1 -0
  180. package/dist/workspace/topology/types.js +20 -0
  181. package/dist/workspace/topology/types.js.map +1 -0
  182. package/dist/workspace/topology/yaml-driven.d.ts +69 -0
  183. package/dist/workspace/topology/yaml-driven.d.ts.map +1 -0
  184. package/dist/workspace/topology/yaml-driven.js +273 -0
  185. package/dist/workspace/topology/yaml-driven.js.map +1 -0
  186. package/dist/workspace/types-v3.d.ts +117 -0
  187. package/dist/workspace/types-v3.d.ts.map +1 -0
  188. package/dist/workspace/types-v3.js +20 -0
  189. package/dist/workspace/types-v3.js.map +1 -0
  190. package/dist/workspace/types.d.ts +162 -17
  191. package/dist/workspace/types.d.ts.map +1 -1
  192. package/dist/workspace/workspace-manager.d.ts +101 -13
  193. package/dist/workspace/workspace-manager.d.ts.map +1 -1
  194. package/dist/workspace/workspace-manager.js +416 -13
  195. package/dist/workspace/workspace-manager.js.map +1 -1
  196. package/dist/workspace/yaml-schema.d.ts +254 -0
  197. package/dist/workspace/yaml-schema.d.ts.map +1 -0
  198. package/dist/workspace/yaml-schema.js +170 -0
  199. package/dist/workspace/yaml-schema.js.map +1 -0
  200. package/docs/conflict-recovery.md +472 -0
  201. package/docs/design/task-dispatcher.md +880 -0
  202. package/docs/git-cascade-integration-gaps.md +678 -0
  203. package/docs/workspace-interfaces.md +731 -0
  204. package/docs/workspace-redesign-plan.md +302 -0
  205. package/package.json +6 -5
  206. package/src/__tests__/boot-v2.test.ts +435 -0
  207. package/src/__tests__/e2e/acp-over-map.e2e.test.ts +92 -0
  208. package/src/__tests__/e2e/auto-sync.e2e.test.ts +257 -0
  209. package/src/__tests__/e2e/bootstrap.e2e.test.ts +319 -0
  210. package/src/__tests__/e2e/cascade-rebase.e2e.test.ts +254 -0
  211. package/src/__tests__/e2e/cli-run.e2e.test.ts +167 -0
  212. package/src/__tests__/e2e/dispatch-coordination.e2e.test.ts +495 -0
  213. package/src/__tests__/e2e/dispatch-live.e2e.test.ts +564 -0
  214. package/src/__tests__/e2e/dispatch-opentasks.e2e.test.ts +496 -0
  215. package/src/__tests__/e2e/dispatch-phase2-live.e2e.test.ts +456 -0
  216. package/src/__tests__/e2e/dispatch-phase2.e2e.test.ts +386 -0
  217. package/src/__tests__/e2e/dispatch.e2e.test.ts +376 -0
  218. package/src/__tests__/e2e/self-driving-v3.e2e.test.ts +197 -0
  219. package/src/__tests__/e2e/spawn-resolver.e2e.test.ts +200 -0
  220. package/src/__tests__/e2e/workspace-lifecycle.e2e.test.ts +30 -22
  221. package/src/__tests__/e2e/workspace-v3.e2e.test.ts +413 -0
  222. package/src/acp/__tests__/claude-code-replay.test.ts +225 -0
  223. package/src/acp/__tests__/macro-agent.test.ts +39 -1
  224. package/src/acp/claude-code-replay.ts +208 -0
  225. package/src/acp/macro-agent.ts +203 -10
  226. package/src/acp/types.ts +10 -0
  227. package/src/adapters/__tests__/tasks-adapter.test.ts +1 -0
  228. package/src/adapters/tasks-adapter.ts +3 -0
  229. package/src/adapters/types.ts +1 -0
  230. package/src/agent/__tests__/agent-manager-topology.test.ts +73 -0
  231. package/src/agent/__tests__/agent-manager-v2.test.ts +66 -0
  232. package/src/agent/__tests__/agent-store.test.ts +52 -0
  233. package/src/agent/__tests__/task-ref-resolution.test.ts +231 -0
  234. package/src/agent/agent-manager-v2.ts +372 -59
  235. package/src/agent/agent-manager.ts +14 -0
  236. package/src/agent/agent-store.ts +24 -0
  237. package/src/agent/types.ts +16 -2
  238. package/src/boot-v2.ts +589 -35
  239. package/src/cli/acp.ts +4 -0
  240. package/src/cli/index.ts +61 -0
  241. package/src/cognitive/macro-agent-backend.ts +45 -29
  242. package/src/integrations/skilltree.ts +1 -0
  243. package/src/lifecycle/__tests__/cascade-consolidation.test.ts +240 -0
  244. package/src/lifecycle/cascade.ts +77 -2
  245. package/src/lifecycle/cleanup.ts +52 -3
  246. package/src/lifecycle/handlers-v2.ts +40 -3
  247. package/src/lifecycle/types.ts +12 -0
  248. package/src/map/__tests__/cascade-bridge.test.ts +229 -0
  249. package/src/map/__tests__/emit-event.test.ts +71 -0
  250. package/src/map/__tests__/lifecycle-bridge.test.ts +86 -10
  251. package/src/map/acp-bridge.ts +26 -3
  252. package/src/map/cascade-action-handler.ts +205 -0
  253. package/src/map/cascade-bridge.ts +339 -0
  254. package/src/map/coordination-handler.ts +13 -1
  255. package/src/map/lifecycle-bridge.ts +52 -17
  256. package/src/map/server.ts +225 -7
  257. package/src/map/sidecar.ts +48 -1
  258. package/src/map/types.ts +23 -0
  259. package/src/mcp/tools/done-v2.ts +9 -0
  260. package/src/teams/team-manager-v2.ts +37 -0
  261. package/src/teams/team-runtime-v2.ts +23 -3
  262. package/src/workspace/__tests__/{dataplane-adapter.test.ts → git-cascade-adapter.test.ts} +209 -14
  263. package/src/workspace/__tests__/land-dispatch.test.ts +214 -0
  264. package/src/workspace/__tests__/self-driving-yaml.test.ts +114 -0
  265. package/src/workspace/__tests__/shared-worktree-refcount.test.ts +154 -0
  266. package/src/workspace/__tests__/standalone-mode.test.ts +118 -0
  267. package/src/workspace/__tests__/workspace-manager-v3.test.ts +245 -0
  268. package/src/workspace/__tests__/yaml-schema.test.ts +210 -0
  269. package/src/workspace/config.ts +11 -11
  270. package/src/workspace/git-cascade-adapter.ts +1213 -0
  271. package/src/workspace/index.ts +11 -11
  272. package/src/workspace/landing/__tests__/strategies.test.ts +184 -0
  273. package/src/workspace/landing/direct-push.ts +91 -0
  274. package/src/workspace/landing/index.ts +40 -0
  275. package/src/workspace/landing/merge-to-parent.ts +229 -0
  276. package/src/workspace/landing/optimistic-push.ts +36 -0
  277. package/src/workspace/landing/queue-to-branch.ts +108 -0
  278. package/src/workspace/merge-queue/merge-queue.ts +10 -0
  279. package/src/workspace/merge-queue/types.ts +16 -2
  280. package/src/workspace/pool/__tests__/worktree-pool.integration.test.ts +5 -5
  281. package/src/workspace/pool/types.ts +1 -0
  282. package/src/workspace/pool/worktree-pool.ts +1 -0
  283. package/src/workspace/recovery/__tests__/auto-resolve-integration.test.ts +127 -0
  284. package/src/workspace/recovery/__tests__/spawn-resolver.test.ts +139 -0
  285. package/src/workspace/recovery/__tests__/strategies.test.ts +145 -0
  286. package/src/workspace/recovery/abandon.ts +51 -0
  287. package/src/workspace/recovery/auto-resolve.ts +119 -0
  288. package/src/workspace/recovery/defer.ts +23 -0
  289. package/src/workspace/recovery/escalate.ts +30 -0
  290. package/src/workspace/recovery/index.ts +58 -0
  291. package/src/workspace/recovery/spawn-resolver.ts +152 -0
  292. package/src/workspace/recovery/types.ts +54 -0
  293. package/src/workspace/topology/__tests__/yaml-driven.test.ts +345 -0
  294. package/src/workspace/topology/index.ts +18 -0
  295. package/src/workspace/topology/no-workspace.ts +39 -0
  296. package/src/workspace/topology/types.ts +116 -0
  297. package/src/workspace/topology/yaml-driven.ts +316 -0
  298. package/src/workspace/types-v3.ts +162 -0
  299. package/src/workspace/types.ts +211 -20
  300. package/src/workspace/workspace-manager.ts +533 -19
  301. package/src/workspace/yaml-schema.ts +216 -0
  302. package/dist/workspace/dataplane-adapter.d.ts +0 -260
  303. package/dist/workspace/dataplane-adapter.d.ts.map +0 -1
  304. package/dist/workspace/dataplane-adapter.js +0 -416
  305. package/dist/workspace/dataplane-adapter.js.map +0 -1
  306. package/src/workspace/dataplane-adapter.ts +0 -546
@@ -1 +1 @@
1
- {"version":3,"file":"tasks-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/tasks-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,GAAE,kBAAuB;IAI3C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAIK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B,UAAU,IAAI,IAAI;IAUZ,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBpD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1D,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAW5C,UAAU,CACd,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACzC,OAAO,CAAC,UAAU,EAAE,CAAC;IAclB,SAAS,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAmB3D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/D,SAAS,CACb,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA4BvB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1C,aAAa,CACjB,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC,UAAU,EAAE,CAAC;IAMxB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,gBAAgB;CAgBzB"}
1
+ {"version":3,"file":"tasks-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/tasks-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,GAAE,kBAAuB;IAI3C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAIK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B,UAAU,IAAI,IAAI;IAUZ,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBpD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1D,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAW5C,UAAU,CACd,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACzC,OAAO,CAAC,UAAU,EAAE,CAAC;IAelB,SAAS,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAoB3D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/D,SAAS,CACb,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA4BvB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1C,aAAa,CACjB,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC,UAAU,EAAE,CAAC;IAMxB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,gBAAgB;CAgBzB"}
@@ -58,6 +58,7 @@ export class DefaultTasksAdapter {
58
58
  parent_id: opts.parent,
59
59
  tags: opts.tags,
60
60
  priority: opts.priority,
61
+ metadata: opts.metadata,
61
62
  });
62
63
  return node?.id ?? "";
63
64
  }
@@ -89,6 +90,7 @@ export class DefaultTasksAdapter {
89
90
  limit: opts?.limit,
90
91
  tags: opts?.tags,
91
92
  },
93
+ verbose: true,
92
94
  });
93
95
  return (result.items ?? []).map((n) => this.nodeToTaskRecord(n));
94
96
  }
@@ -102,6 +104,7 @@ export class DefaultTasksAdapter {
102
104
  tags: filter?.tags,
103
105
  limit: filter?.limit,
104
106
  },
107
+ verbose: true,
105
108
  });
106
109
  return (result.items ?? []).map((n) => this.nodeToTaskRecord(n));
107
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tasks-adapter.js","sourceRoot":"","sources":["../../src/adapters/tasks-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks-adapter.js","sourceRoot":"","sources":["../../src/adapters/tasks-adapter.ts"],"names":[],"mappings":"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"}
@@ -123,6 +123,7 @@ export interface CreateTaskOptions {
123
123
  parent?: string;
124
124
  tags?: string[];
125
125
  priority?: number;
126
+ metadata?: Record<string, unknown>;
126
127
  }
127
128
  /**
128
129
  * Options for querying tasks.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMvE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IACnC,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,KACb,OAAO,CAAC;AAEb;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,KACb,MAAM,GAAG,IAAI,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAG3B,oEAAoE;IACpE,aAAa,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,mDAAmD;IACnD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAIhD;;;;;OAKG;IACH,IAAI,CACF,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EACrB,OAAO,EAAE,cAAc,GAAG,MAAM,EAChC,IAAI,CAAC,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAAC;IAInB;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAE3C,iCAAiC;IACjC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAI5C,8BAA8B;IAC9B,UAAU,CACR,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9C,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEtB,oCAAoC;IACpC,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAItB,8DAA8D;IAC9D,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAE9C,uEAAuE;IACvE,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAI3D,kDAAkD;IAClD,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAE1D,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC,uDAAuD;IACvD,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEvE,yCAAyC;IACzC,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAI1C,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,iEAAiE;IACjE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAMD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAG3B,8CAA8C;IAC9C,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAErD,iCAAiC;IACjC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D,4DAA4D;IAC5D,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAIlE,+BAA+B;IAC/B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE7C,yDAAyD;IACzD,UAAU,CAAC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAE9E,wCAAwC;IACxC,SAAS,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAI5D,0DAA0D;IAC1D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,oCAAoC;IACpC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAIhE,yDAAyD;IACzD,SAAS,CACP,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE9B,+CAA+C;IAC/C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C,yCAAyC;IACzC,aAAa,CACX,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAIzB,8DAA8D;IAC9D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,4CAA4C;IAC5C,UAAU,IAAI,IAAI,CAAC;IAEnB,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { type PermissionMode } from "acp-factory";
11
11
  import { AgentStore } from "./agent-store.js";
12
+ import type { SpawnAgentOptions } from "./types.js";
12
13
  import type { RoleRegistry } from "../roles/types.js";
13
14
  import type { WorkspaceManager } from "../workspace/types.js";
14
15
  import { AgentTokenManager } from "../auth/token.js";
@@ -32,6 +33,26 @@ export interface AgentManagerV2Config {
32
33
  serverToken?: string;
33
34
  /** Control socket path for MCP subprocess lifecycle RPC */
34
35
  controlSocketPath?: string;
36
+ /**
37
+ * Default opentasks resource ID hosted on the OpenHive hub. When set,
38
+ * spawn paths build `taskRef = { resource_id: <this>, node_id: task_id }`
39
+ * automatically from `SpawnAgentOptions.task_id` (for any spawn where
40
+ * `resolveTaskRef` returned undefined AND the caller didn't supply an
41
+ * explicit `taskRef`).
42
+ *
43
+ * Operators set this once at swarm registration for the common
44
+ * single-graph case. Multi-graph deployments should use `resolveTaskRef`
45
+ * instead.
46
+ */
47
+ taskResourceId?: string;
48
+ /**
49
+ * Multi-graph resolver. Called at every spawn; return a `TaskRef` to set
50
+ * the binding or `undefined` to fall through to the `taskResourceId`
51
+ * default. Explicit `SpawnAgentOptions.taskRef` always wins over both.
52
+ *
53
+ * Keep cheap — runs per-spawn.
54
+ */
55
+ resolveTaskRef?: (spawnOptions: SpawnAgentOptions) => import("git-cascade/events").TaskRef | undefined;
35
56
  }
36
57
  export declare function createAgentManagerV2(agentStore: AgentStore, inboxAdapter: InboxAdapter, tasksAdapter: TasksAdapter, config?: AgentManagerV2Config): AgentManager;
37
58
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"agent-manager-v2.d.ts","sourceRoot":"","sources":["../../src/agent/agent-manager-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,UAAU,EAGX,MAAM,kBAAkB,CAAC;AA0B1B,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,mBAAmB,CAAC;AAIlE,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,uBAAuB,CAAC;AAMzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;AAkCzE,oEAAoE;AACpE,UAAU,kBAAkB;IAC1B,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,CAAC,EAAE,cAAc,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,MAAM,GAAE,oBAAyB,GAChC,YAAY,CAqyCd"}
1
+ {"version":3,"file":"agent-manager-v2.d.ts","sourceRoot":"","sources":["../../src/agent/agent-manager-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,UAAU,EAGX,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EACV,iBAAiB,EAelB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,mBAAmB,CAAC;AAIlE,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,uBAAuB,CAAC;AAMzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;AAkCzE,oEAAoE;AACpE,UAAU,kBAAkB;IAC1B,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,CAAC,EAAE,cAAc,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CACf,YAAY,EAAE,iBAAiB,KAC5B,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAAC;CACvD;AAMD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,MAAM,GAAE,oBAAyB,GAChC,YAAY,CAukDd"}
@@ -44,7 +44,7 @@ function generateName() {
44
44
  // Factory
45
45
  // ─────────────────────────────────────────────────────────────────
46
46
  export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, config = {}) {
47
- const { defaultPermissionMode = "auto-approve", defaultAgentType = "claude-code", defaultCwd = process.cwd(), workspaceManager, roleRegistry = new DefaultRoleRegistry(), healthCheckService, serverUrl, serverToken, agentTokenManager, controlSocketPath, } = config;
47
+ const { defaultPermissionMode = "auto-approve", defaultAgentType = "claude-code", defaultCwd = process.cwd(), workspaceManager, roleRegistry = new DefaultRoleRegistry(), healthCheckService, serverUrl, serverToken, agentTokenManager, controlSocketPath, taskResourceId, resolveTaskRef, } = config;
48
48
  // In-memory state
49
49
  const activeSessions = new Map();
50
50
  const agentWorkspaces = new Map();
@@ -60,6 +60,9 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
60
60
  const skillLoadouts = new Map();
61
61
  // MAP sidecar reference for trajectory reporting (set via setSidecar)
62
62
  let sidecarRef = null;
63
+ // TopologyPolicy for workspace allocation (Phase 3+); set via setTopologyPolicy.
64
+ // When null, createWorkspaceForRole falls back to legacy role-name dispatch.
65
+ let topologyPolicy = null;
63
66
  // ── Helpers ──────────────────────────────────────────────────
64
67
  function notifyLifecycle(event) {
65
68
  for (const listener of lifecycleListeners) {
@@ -134,49 +137,170 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
134
137
  };
135
138
  }
136
139
  // ── Workspace Helper ─────────────────────────────────────────
140
+ /**
141
+ * Execute a TopologyPolicy decision against the WorkspaceManager.
142
+ *
143
+ * Translates declarative `WorkspaceDecision` into concrete workspace
144
+ * allocations. Returns a `Workspace` compatible with the legacy shape
145
+ * so the rest of AgentManagerV2 doesn't need to change.
146
+ */
147
+ async function executeWorkspaceDecision(agentId, decision, role, spawnOptions) {
148
+ if (!workspaceManager)
149
+ return undefined;
150
+ switch (decision.kind) {
151
+ case 'none':
152
+ case 'share-parent-cwd':
153
+ return undefined;
154
+ case 'share-with-agent': {
155
+ const worktree = workspaceManager.allocateWorktree({
156
+ agentId,
157
+ sharedWithAgent: decision.agentId,
158
+ });
159
+ return {
160
+ agentId,
161
+ path: worktree.path,
162
+ branch: worktree.currentStream
163
+ ? `stream/${worktree.currentStream}`
164
+ : 'unknown',
165
+ streamId: worktree.currentStream ?? '',
166
+ role: 'v3', // V3 path — bypass legacy worker task/merge-queue flows
167
+ createdAt: worktree.createdAt,
168
+ };
169
+ }
170
+ case 'attach-to-stream': {
171
+ // Record even if no worktree — the topology needs the stream↔role
172
+ // mapping for event-driven features like on_parent_advanced.
173
+ const attachPolicy = topologyPolicy;
174
+ attachPolicy.recordAgentStream?.(agentId, decision.streamId, role);
175
+ if (!decision.allocateWorktree) {
176
+ return undefined;
177
+ }
178
+ const worktree = workspaceManager.allocateWorktree({
179
+ agentId,
180
+ streamId: decision.streamId,
181
+ });
182
+ return {
183
+ agentId,
184
+ path: worktree.path,
185
+ branch: `stream/${decision.streamId}`,
186
+ streamId: decision.streamId,
187
+ role: 'v3', // V3 path — attach-to-team-root
188
+ createdAt: worktree.createdAt,
189
+ };
190
+ }
191
+ case 'new-stream': {
192
+ // If the spawning agent has a taskRef and the streamSpec doesn't
193
+ // already carry one, weave it into metadata so the resulting stream
194
+ // binds to the OpenTasks node. Explicit streamSpec.metadata.task_ref
195
+ // wins.
196
+ const taskRef = spawnOptions?.taskRef;
197
+ const existingMeta = decision.streamSpec.metadata;
198
+ const streamSpec = taskRef && !existingMeta?.task_ref
199
+ ? {
200
+ ...decision.streamSpec,
201
+ metadata: { ...(existingMeta ?? {}), task_ref: taskRef },
202
+ }
203
+ : decision.streamSpec;
204
+ const streamId = workspaceManager.createStreamV3(streamSpec);
205
+ // Record the mapping in the topology if it supports it (for share-with lookup).
206
+ const policy = topologyPolicy;
207
+ policy.recordAgentStream?.(agentId, streamId, role);
208
+ if (!decision.allocateWorktree) {
209
+ return undefined;
210
+ }
211
+ const worktree = workspaceManager.allocateWorktree({
212
+ agentId,
213
+ streamId,
214
+ });
215
+ return {
216
+ agentId,
217
+ path: worktree.path,
218
+ branch: `stream/${streamId}`,
219
+ streamId,
220
+ role: 'v3', // V3 path — new-stream
221
+ createdAt: worktree.createdAt,
222
+ };
223
+ }
224
+ }
225
+ }
137
226
  async function createWorkspaceForRole(agentId, role, options) {
138
227
  if (!workspaceManager)
139
228
  return undefined;
229
+ // V3 path — TopologyPolicy-driven. Set by boot-v2 when team YAML has
230
+ // `macro_agent.workspace`. When set, this takes precedence over the legacy
231
+ // capability/role-name dispatch below.
232
+ if (topologyPolicy) {
233
+ const decision = await topologyPolicy.onAgentSpawn({
234
+ agentId,
235
+ role,
236
+ parentAgentId: options.parent ?? undefined,
237
+ parentStreamId: options.streamId,
238
+ teamStreamId: (() => {
239
+ const stream = topologyPolicy.getAgentStream?.(agentId);
240
+ return stream ?? undefined;
241
+ })(),
242
+ workspaceManager,
243
+ getAgentByRole: (r) => {
244
+ for (const [aid, ws] of agentWorkspaces) {
245
+ const rec = agentStore.getAgent(aid);
246
+ if (rec?.role === r)
247
+ return aid;
248
+ }
249
+ return null;
250
+ },
251
+ });
252
+ return executeWorkspaceDecision(agentId, decision, role, options);
253
+ }
254
+ // Capability-based dispatch for programmatic callers that don't use
255
+ // team YAML. This is the supported path for libraries that construct
256
+ // WorkspaceManager + GitCascadeAdapter directly and spawn agents with
257
+ // explicit `capabilities` + `streamId` arguments. It coexists with the
258
+ // V3 topology path above.
259
+ return capabilityBasedDispatch(agentId, options, workspaceManager);
260
+ }
261
+ /**
262
+ * Capability-based workspace allocation for programmatic callers.
263
+ *
264
+ * Matches on `workspace.stream` / `workspace.integrate` / `workspace.worktree`
265
+ * capabilities + corresponding streamId/streamConfig args. Delegates to the
266
+ * role-shaped WorkspaceManager methods (createWorkerWorkspace,
267
+ * createIntegratorWorkspace, createCoordinatorWorkspace).
268
+ *
269
+ * Not used by team-YAML-driven teams — those go through TopologyPolicy above.
270
+ */
271
+ async function capabilityBasedDispatch(agentId, options, ws) {
140
272
  const capabilities = options.capabilities ?? [];
141
273
  const streamId = options.streamId;
142
- const streamConfig = options.streamConfig;
143
- const dataplaneTaskId = options.dataplaneTaskId;
144
- // Capability-based dispatch
274
+ // Merge taskRef (if set at spawn time) into streamConfig.metadata so that
275
+ // adapter.createStream x-cascade/stream.opened carries the binding to
276
+ // OpenTasks. Explicit streamConfig.metadata.task_ref wins if already set.
277
+ const streamConfig = options.streamConfig
278
+ ? options.taskRef &&
279
+ !(options.streamConfig.metadata &&
280
+ options.streamConfig.metadata.task_ref)
281
+ ? {
282
+ ...options.streamConfig,
283
+ metadata: {
284
+ ...(options.streamConfig.metadata ?? {}),
285
+ task_ref: options.taskRef,
286
+ },
287
+ }
288
+ : options.streamConfig
289
+ : undefined;
290
+ const gitCascadeTaskId = options.gitCascadeTaskId;
145
291
  if (capabilities.includes("workspace.stream") && streamConfig) {
146
- const newStreamId = workspaceManager.createIntegrationStream(agentId, streamConfig);
147
- return workspaceManager.createCoordinatorWorkspace(agentId, newStreamId);
292
+ const newStreamId = ws.createIntegrationStream(agentId, streamConfig);
293
+ return ws.createCoordinatorWorkspace(agentId, newStreamId);
148
294
  }
149
295
  if (capabilities.includes("workspace.integrate") && streamId) {
150
- return workspaceManager.createIntegratorWorkspace(agentId, streamId);
296
+ return ws.createIntegratorWorkspace(agentId, streamId);
151
297
  }
152
298
  if (capabilities.includes("workspace.worktree") && streamId) {
153
- const taskId = dataplaneTaskId ?? agentId;
154
- return workspaceManager.createWorkerWorkspace(agentId, taskId, streamId);
155
- }
156
- // Role-name fallback
157
- switch (role) {
158
- case "coordinator":
159
- if (streamConfig) {
160
- const sid = workspaceManager.createIntegrationStream(agentId, streamConfig);
161
- return workspaceManager.createCoordinatorWorkspace(agentId, sid);
162
- }
163
- return undefined;
164
- case "integrator":
165
- if (streamId) {
166
- return workspaceManager.createIntegratorWorkspace(agentId, streamId);
167
- }
168
- return undefined;
169
- case "worker":
170
- case "worker.resolver": {
171
- if (streamId) {
172
- const tid = dataplaneTaskId ?? agentId;
173
- return workspaceManager.createWorkerWorkspace(agentId, tid, streamId);
174
- }
175
- return undefined;
176
- }
177
- default:
178
- return undefined;
299
+ const taskId = gitCascadeTaskId ?? agentId;
300
+ return ws.createWorkerWorkspace(agentId, taskId, streamId);
179
301
  }
302
+ // No matching capability — agent inherits parent cwd (no workspace)
303
+ return undefined;
180
304
  }
181
305
  // ── Core Lifecycle ───────────────────────────────────────────
182
306
  async function spawn(rawOptions) {
@@ -184,9 +308,36 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
184
308
  throw new AgentManagerError("Cannot spawn agent during shutdown", "SHUTDOWN_IN_PROGRESS");
185
309
  }
186
310
  // Apply spawn interceptor (set by TeamRuntime)
187
- const options = spawnInterceptor
311
+ const interceptedOptions = spawnInterceptor
188
312
  ? await spawnInterceptor(rawOptions)
189
313
  : rawOptions;
314
+ // Resolve taskRef with three-level precedence:
315
+ // 1. Explicit `options.taskRef` (caller knows exactly what graph).
316
+ // 2. `resolveTaskRef(opts)` (multi-graph deployments decide per spawn).
317
+ // 3. `taskResourceId` + `options.task_id` (single-graph default).
318
+ // If none resolves, spawn proceeds with no taskRef — cascade events
319
+ // land without a task binding (hub back-fills from first commit that
320
+ // carries one, if any).
321
+ let resolvedTaskRef = interceptedOptions.taskRef;
322
+ if (!resolvedTaskRef && resolveTaskRef) {
323
+ try {
324
+ resolvedTaskRef = resolveTaskRef(interceptedOptions);
325
+ }
326
+ catch (err) {
327
+ // Resolver failures must not block spawn. Log + fall through.
328
+ // eslint-disable-next-line no-console
329
+ console.warn("[agent-manager-v2] resolveTaskRef threw; falling back to taskResourceId default:", err instanceof Error ? err.message : err);
330
+ }
331
+ }
332
+ if (!resolvedTaskRef && taskResourceId && interceptedOptions.task_id) {
333
+ resolvedTaskRef = {
334
+ resource_id: taskResourceId,
335
+ node_id: String(interceptedOptions.task_id),
336
+ };
337
+ }
338
+ const options = resolvedTaskRef === interceptedOptions.taskRef
339
+ ? interceptedOptions
340
+ : { ...interceptedOptions, taskRef: resolvedTaskRef };
190
341
  const { task, task_id, parent, cwd = defaultCwd, permissionMode = defaultPermissionMode, subscribeParent = true, topics = [], config: agentConfig, agentType = defaultAgentType, customPrompt, interactionPatterns, role, team_instance, capabilities, } = options;
191
342
  // Generate IDs
192
343
  const agentId = `agent_${nanoid(12)}`;
@@ -240,7 +391,9 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
240
391
  if (interactionPatterns?.length) {
241
392
  systemPrompt += `\n\n${interactionPatterns.join("\n\n")}`;
242
393
  }
243
- // Persist agent in store
394
+ // Persist agent in store. Stash taskRef in metadata so done()'s
395
+ // lifecycle context can read it without separate plumbing — this is the
396
+ // path that makes per-commit task_ref binding work end-to-end.
244
397
  const now = Date.now();
245
398
  const agentRecord = {
246
399
  id: agentId,
@@ -258,7 +411,7 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
258
411
  created_at: now,
259
412
  started_at: now,
260
413
  config: agentConfig,
261
- metadata: {},
414
+ metadata: options.taskRef ? { task_ref: options.taskRef } : {},
262
415
  };
263
416
  agentStore.putAgent(agentRecord);
264
417
  let handle;
@@ -286,11 +439,11 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
286
439
  workspace = await createWorkspaceForRole(agentId, role ?? "", options);
287
440
  if (workspace) {
288
441
  agentWorkspaces.set(agentId, workspace);
289
- // Create and claim dataplane task for workers
442
+ // Create and claim git-cascade task for workers
290
443
  if (workspace.role === "worker" &&
291
444
  workspace.streamId &&
292
445
  workspaceManager) {
293
- const dpTaskId = options.dataplaneTaskId ?? agentId;
446
+ const dpTaskId = options.gitCascadeTaskId ?? agentId;
294
447
  workspaceManager.createTask(workspace.streamId, {
295
448
  title: task ?? `Task for ${agentId}`,
296
449
  });
@@ -404,9 +557,11 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
404
557
  provider_session_id: session.id,
405
558
  created_at: now,
406
559
  });
407
- // Update agent with provider session ID
560
+ // Update agent with provider session ID. Merge with existing metadata
561
+ // so fields set at spawn time (e.g. task_ref) aren't clobbered.
562
+ const existingMeta = agentStore.getAgent(agentId)?.metadata ?? {};
408
563
  agentStore.updateAgent(agentId, {
409
- metadata: { provider_session_id: session.id },
564
+ metadata: { ...existingMeta, provider_session_id: session.id },
410
565
  });
411
566
  // Register agent in inbox
412
567
  await inboxAdapter.registerAgent(agentId, {
@@ -478,25 +633,61 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
478
633
  if (healthCheckService && record.role === "coordinator") {
479
634
  healthCheckService.stopForCoordinator(agentId);
480
635
  }
481
- // Submit merge request if worker completed with workspace
636
+ // Land the worker's work if completed with a workspace.
637
+ //
638
+ // V3 path (preferred): look up the role's YAML landing strategy via
639
+ // TopologyPolicy.getRoleConfig and dispatch through
640
+ // WorkspaceManager.land(). This fires cascade events (stream.merged or
641
+ // queue.added) so the hub sees the work. Landing = 'none' short-circuits.
642
+ //
643
+ // Legacy fallback: if no TopologyPolicy is wired or it can't resolve a
644
+ // landing for this role, submit to the legacy MergeQueue as before.
645
+ // Keeps pre-V3 programmatic callers + tests that bypass YAML working.
482
646
  if (workspaceManager &&
483
647
  agentWorkspaces.has(agentId) &&
484
648
  reason === "completed") {
485
649
  const ws = agentWorkspaces.get(agentId);
486
650
  if (ws.role === "worker" && ws.streamId) {
487
- try {
488
- const mergeQueue = workspaceManager.getMergeQueue();
489
- if (mergeQueue) {
490
- mergeQueue.submit({
651
+ const roleConfig = topologyPolicy?.getRoleConfig?.(record.role);
652
+ const yamlLandingName = roleConfig?.landing;
653
+ const usingV3Landing = typeof yamlLandingName === "string" && yamlLandingName.length > 0;
654
+ if (usingV3Landing) {
655
+ try {
656
+ const taskRef = record.metadata
657
+ ?.task_ref;
658
+ await workspaceManager.land({
659
+ agentId,
491
660
  streamId: ws.streamId,
492
- workerBranch: ws.branch,
493
- taskId: record.task_id ?? agentId,
494
- workerAgentId: agentId,
661
+ sourceWorktree: ws.path,
662
+ strategyName: yamlLandingName,
663
+ strategyConfig: roleConfig?.landing_config,
664
+ taskRef,
665
+ // Dispatcher overwrites this with `this`; placeholder keeps the
666
+ // type satisfied without a cast.
667
+ workspaceManager,
495
668
  });
496
669
  }
670
+ catch {
671
+ // Non-fatal landing failure — agent still terminates; conflicts
672
+ // and strategy errors surface via WorkspaceEvent emission and
673
+ // the strategy's own logs.
674
+ }
497
675
  }
498
- catch {
499
- // Non-fatal merge queue submission failure
676
+ else {
677
+ try {
678
+ const mergeQueue = workspaceManager.getMergeQueue();
679
+ if (mergeQueue) {
680
+ mergeQueue.submit({
681
+ streamId: ws.streamId,
682
+ workerBranch: ws.branch,
683
+ taskId: record.task_id ?? agentId,
684
+ workerAgentId: agentId,
685
+ });
686
+ }
687
+ }
688
+ catch {
689
+ // Non-fatal merge queue submission failure
690
+ }
500
691
  }
501
692
  }
502
693
  }
@@ -574,7 +765,9 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
574
765
  .map((r) => agentRecordToAgent(r)),
575
766
  terminate: (id, r) => terminate(id, r),
576
767
  };
577
- await terminateWithChangeConsolidation(child.id, agentId, cascadeAdapter, wsProvider);
768
+ const parentTaskRef = record.metadata
769
+ ?.task_ref;
770
+ await terminateWithChangeConsolidation(child.id, agentId, cascadeAdapter, wsProvider, undefined, workspaceManager ?? undefined, parentTaskRef);
578
771
  }
579
772
  }
580
773
  }
@@ -647,6 +840,19 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
647
840
  created_at: now,
648
841
  });
649
842
  const agent = agentRecordToAgent(agentStore.getAgent(agentId));
843
+ // Re-publish the agent to subscribers (local MAP server, hub lifecycle
844
+ // bridge, team auto-join listeners) so a resumed agent is a first-class
845
+ // registered agent — not just an in-memory handle. Without this, the hub
846
+ // never re-registers the agent after cold-start; ACP routing works but
847
+ // the hub's "Registered Agents" view stays empty and capabilities never
848
+ // propagate back through `map/agents/register`.
849
+ //
850
+ // Spawn semantics are correct here: the process is new, the session is
851
+ // (re)loaded, and subscribers treat it as a fresh registration. Paired
852
+ // with the `stopped` event that fired on the prior termination, this
853
+ // keeps the bridge's `registered` map consistent.
854
+ notifyLifecycle({ type: "spawned", agent });
855
+ notifyLifecycle({ type: "started", agent });
650
856
  return {
651
857
  id: agentId,
652
858
  session_id: sessionRecord?.session_id ?? "",
@@ -821,11 +1027,17 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
821
1027
  }
822
1028
  // ── Head Manager ─────────────────────────────────────────────
823
1029
  async function getOrCreateHeadManager(options) {
824
- // Check for existing head manager
1030
+ // Check for an existing head manager matching this cwd that ALSO has a
1031
+ // live session in this process. The activeSessions check has to be inside
1032
+ // the predicate (not after .find) — the agentStore is persistent across
1033
+ // process restarts, so without this filter we'd match stale "running"
1034
+ // records from previous processes whose sessions are gone, then fall
1035
+ // through to spawn() and create a duplicate coordinator.
825
1036
  const existing = agentStore
826
1037
  .listAgents({ parent_id: null, state: "running" })
827
- .find((a) => a.cwd === options.cwd);
828
- if (existing && activeSessions.has(existing.id)) {
1038
+ .find((a) => a.cwd === options.cwd &&
1039
+ activeSessions.has(a.id));
1040
+ if (existing) {
829
1041
  const sessionEntry = activeSessions.get(existing.id);
830
1042
  const storedSession = agentStore.getSession(existing.id);
831
1043
  return {
@@ -850,6 +1062,31 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
850
1062
  .listAgents({ parent_id: null })
851
1063
  .map(agentRecordToAgent);
852
1064
  }
1065
+ /**
1066
+ * Look up the spawned-agent shape for any agent that's still alive in this
1067
+ * process (any role, not just coordinators). Returns null if the agent
1068
+ * doesn't exist, isn't running, or has no live session in `activeSessions`.
1069
+ *
1070
+ * Used by the ACP layer to bind a session to a specific agent when the MAP
1071
+ * stream targets one explicitly — preserving the routing intent that
1072
+ * cwd-based head-manager lookup would otherwise lose in multi-coordinator
1073
+ * scenarios.
1074
+ */
1075
+ function getActiveAgentSession(agentId) {
1076
+ if (!activeSessions.has(agentId))
1077
+ return null;
1078
+ const record = agentStore.getAgent(agentId);
1079
+ if (!record || record.state !== "running")
1080
+ return null;
1081
+ const sessionEntry = activeSessions.get(agentId);
1082
+ const storedSession = agentStore.getSession(agentId);
1083
+ return {
1084
+ id: agentId,
1085
+ session_id: storedSession?.session_id ?? sessionEntry.session.id ?? "",
1086
+ agent: agentRecordToAgent(record),
1087
+ session: sessionEntry.session,
1088
+ };
1089
+ }
853
1090
  // ── Session Interaction ──────────────────────────────────────
854
1091
  async function* prompt(agentId, message) {
855
1092
  const activeSession = activeSessions.get(agentId);
@@ -915,6 +1152,18 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
915
1152
  "Please call the done() tool to signal that you have completed your work.";
916
1153
  }
917
1154
  }
1155
+ // Auto-terminate when done() was called and the handler signaled shouldTerminate.
1156
+ // This closes the lifecycle gap: without this, agents stay in "running" state
1157
+ // after calling done() because nothing triggers terminate().
1158
+ if (doneCalled) {
1159
+ const reason = doneStatus === "completed" ? "completed" : (doneStatus ?? "failed");
1160
+ try {
1161
+ await terminate(agentId, reason);
1162
+ }
1163
+ catch {
1164
+ // Best effort — agent may already be stopping
1165
+ }
1166
+ }
918
1167
  return { doneCalled, doneStatus, updates: allUpdates };
919
1168
  }
920
1169
  function getSession(agentId) {
@@ -1006,6 +1255,9 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
1006
1255
  function setSidecar(sidecar) {
1007
1256
  sidecarRef = sidecar;
1008
1257
  }
1258
+ function setTopologyPolicyFn(policy) {
1259
+ topologyPolicy = policy;
1260
+ }
1009
1261
  function setMailServices() {
1010
1262
  // No-op: agent-inbox handles conversation tracking
1011
1263
  }
@@ -1043,6 +1295,7 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
1043
1295
  getHierarchy,
1044
1296
  getOrCreateHeadManager,
1045
1297
  listHeadManagers,
1298
+ getActiveAgentSession,
1046
1299
  prompt,
1047
1300
  promptUntilDone,
1048
1301
  getSession,
@@ -1062,6 +1315,7 @@ export function createAgentManagerV2(agentStore, inboxAdapter, tasksAdapter, con
1062
1315
  setIntegrationConfigs,
1063
1316
  setSkillLoadout,
1064
1317
  setSidecar,
1318
+ setTopologyPolicy: setTopologyPolicyFn,
1065
1319
  setMailServices,
1066
1320
  close,
1067
1321
  };