agor-live 0.14.3 → 0.15.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 (344) hide show
  1. package/dist/cli/commands/init.js +26 -0
  2. package/dist/cli/commands/session/list.js +1 -1
  3. package/dist/core/api/index.cjs +3 -2
  4. package/dist/core/api/index.d.cts +10 -6
  5. package/dist/core/api/index.d.ts +10 -6
  6. package/dist/core/api/index.js +3 -2
  7. package/dist/core/{board-HBLXfsPa.d.cts → board-B8ItLtRy.d.cts} +91 -9
  8. package/dist/core/{board-CD258gWW.d.ts → board-DoB0I5Bf.d.ts} +91 -9
  9. package/dist/core/callbacks/child-completion-template.d.cts +1 -0
  10. package/dist/core/callbacks/child-completion-template.d.ts +1 -0
  11. package/dist/core/claude/index.cjs +152 -27
  12. package/dist/core/claude/index.js +152 -27
  13. package/dist/core/{client-BOtnEgnk.d.ts → client-BLFnRbF1.d.ts} +1579 -595
  14. package/dist/core/{client-uz0_yQFy.d.cts → client-D9Kijj2K.d.cts} +1579 -595
  15. package/dist/core/config/browser.cjs +1 -0
  16. package/dist/core/config/browser.d.cts +2 -2
  17. package/dist/core/config/browser.d.ts +2 -2
  18. package/dist/core/config/browser.js +1 -0
  19. package/dist/core/config/index.cjs +153 -27
  20. package/dist/core/config/index.d.cts +6 -6
  21. package/dist/core/config/index.d.ts +6 -6
  22. package/dist/core/config/index.js +153 -27
  23. package/dist/core/{config-manager-BDJG7HPR.d.ts → config-manager-D0Yshxlj.d.ts} +1 -1
  24. package/dist/core/{config-manager-Dw2LXbKq.d.cts → config-manager-_JsUrFp_.d.cts} +1 -1
  25. package/dist/core/db/index.cjs +894 -224
  26. package/dist/core/db/index.d.cts +1160 -98
  27. package/dist/core/db/index.d.ts +1160 -98
  28. package/dist/core/db/index.js +867 -201
  29. package/dist/core/db/session-guard.d.cts +4 -4
  30. package/dist/core/db/session-guard.d.ts +4 -4
  31. package/dist/core/drizzle/postgres/0018_married_lady_deathstrike.sql +41 -0
  32. package/dist/core/drizzle/postgres/meta/0018_snapshot.json +2673 -0
  33. package/dist/core/drizzle/postgres/meta/_journal.json +7 -0
  34. package/dist/core/drizzle/sqlite/0028_abnormal_micromacro.sql +57 -0
  35. package/dist/core/drizzle/sqlite/meta/0028_snapshot.json +2104 -0
  36. package/dist/core/drizzle/sqlite/meta/_journal.json +7 -0
  37. package/dist/core/environment/variable-resolver.cjs +3 -6
  38. package/dist/core/environment/variable-resolver.d.cts +7 -6
  39. package/dist/core/environment/variable-resolver.d.ts +7 -6
  40. package/dist/core/environment/variable-resolver.js +3 -6
  41. package/dist/core/{feathers-5DsXBqOW.d.cts → feathers-Be7aUDva.d.cts} +2 -2
  42. package/dist/core/{feathers-qrz_9jSJ.d.ts → feathers-Cg1J1efu.d.ts} +2 -2
  43. package/dist/core/gateway/index.cjs +440 -19
  44. package/dist/core/gateway/index.d.cts +131 -4
  45. package/dist/core/gateway/index.d.ts +131 -4
  46. package/dist/core/gateway/index.js +428 -19
  47. package/dist/core/{gateway-BlmPS6ee.d.ts → gateway-DTy9-ZKL.d.ts} +3 -3
  48. package/dist/core/{gateway-DmSEDGAS.d.cts → gateway-V6KNZUEh.d.cts} +3 -3
  49. package/dist/core/git/index.cjs +22 -1
  50. package/dist/core/git/index.d.cts +2 -2
  51. package/dist/core/git/index.d.ts +2 -2
  52. package/dist/core/git/index.js +22 -1
  53. package/dist/core/index.cjs +926 -230
  54. package/dist/core/index.d.cts +12 -12
  55. package/dist/core/index.d.ts +12 -12
  56. package/dist/core/index.js +899 -207
  57. package/dist/core/lib/feathers-validation.cjs +2 -1
  58. package/dist/core/lib/feathers-validation.d.cts +2 -2
  59. package/dist/core/lib/feathers-validation.d.ts +2 -2
  60. package/dist/core/lib/feathers-validation.js +2 -1
  61. package/dist/core/mcp/index.cjs +118 -10
  62. package/dist/core/mcp/index.d.cts +1 -1
  63. package/dist/core/mcp/index.d.ts +1 -1
  64. package/dist/core/mcp/index.js +118 -10
  65. package/dist/core/{mcp-Db0cL7Xc.d.ts → mcp-Bw8QAZjb.d.ts} +1 -0
  66. package/dist/core/{mcp-DhSSHDnR.d.cts → mcp-DXLeQBg4.d.cts} +1 -0
  67. package/dist/core/models/index.cjs +20 -26
  68. package/dist/core/models/index.d.cts +2 -2
  69. package/dist/core/models/index.d.ts +2 -2
  70. package/dist/core/models/index.js +20 -26
  71. package/dist/core/seed/index.cjs +322 -99
  72. package/dist/core/seed/index.js +315 -92
  73. package/dist/core/{session-DmaExlXI.d.cts → session-AK6sM0bA.d.cts} +33 -3
  74. package/dist/core/{session-guard-qC9VSoXI.d.cts → session-guard-CdRfdFNG.d.cts} +2 -2
  75. package/dist/core/{session-guard-gS4J2Iob.d.ts → session-guard-DapC7XBf.d.ts} +2 -2
  76. package/dist/core/{session-0b_yCNQr.d.ts → session-sk7Brc9j.d.ts} +33 -3
  77. package/dist/core/templates/session-context.d.cts +3 -3
  78. package/dist/core/templates/session-context.d.ts +3 -3
  79. package/dist/core/tools/mcp/jwt-auth.d.cts +1 -1
  80. package/dist/core/tools/mcp/jwt-auth.d.ts +1 -1
  81. package/dist/core/tools/mcp/oauth-mcp-transport.cjs +152 -31
  82. package/dist/core/tools/mcp/oauth-mcp-transport.d.cts +9 -1
  83. package/dist/core/tools/mcp/oauth-mcp-transport.d.ts +9 -1
  84. package/dist/core/tools/mcp/oauth-mcp-transport.js +152 -31
  85. package/dist/core/types/index.cjs +3 -0
  86. package/dist/core/types/index.d.cts +8 -8
  87. package/dist/core/types/index.d.ts +8 -8
  88. package/dist/core/types/index.js +3 -0
  89. package/dist/core/{types-Cox7HmbB.d.cts → types-Cir-hbkf.d.cts} +7 -1
  90. package/dist/core/{types-Cox7HmbB.d.ts → types-Cir-hbkf.d.ts} +7 -1
  91. package/dist/core/unix/index.cjs +269 -89
  92. package/dist/core/unix/index.d.cts +4 -4
  93. package/dist/core/unix/index.d.ts +4 -4
  94. package/dist/core/unix/index.js +262 -82
  95. package/dist/core/{user-D8Z4aURB.d.cts → user-D5SSlZZa.d.cts} +4 -1
  96. package/dist/core/{user-BpflK7uR.d.ts → user-nwb8amML.d.ts} +4 -1
  97. package/dist/core/utils/permission-mode-mapper.cjs +1 -0
  98. package/dist/core/utils/permission-mode-mapper.d.cts +1 -1
  99. package/dist/core/utils/permission-mode-mapper.d.ts +1 -1
  100. package/dist/core/utils/permission-mode-mapper.js +1 -0
  101. package/dist/core/{worktree-CvakJ5w4.d.cts → worktree-C9dSOqZc.d.cts} +13 -1
  102. package/dist/core/{worktree-Dr_m10w8.d.ts → worktree-CaN2rWHR.d.ts} +13 -1
  103. package/dist/daemon/adapters/drizzle.js +1 -1
  104. package/dist/daemon/index.js +24871 -9991
  105. package/dist/daemon/mcp/server.d.ts +55 -0
  106. package/dist/daemon/mcp/server.js +16814 -0
  107. package/dist/daemon/mcp/tool-registry.d.ts +57 -0
  108. package/dist/daemon/mcp/tool-registry.js +97 -0
  109. package/dist/daemon/mcp/tools/analytics.d.ts +12 -0
  110. package/dist/daemon/mcp/tools/analytics.js +13859 -0
  111. package/dist/daemon/mcp/tools/boards.d.ts +12 -0
  112. package/dist/daemon/mcp/tools/boards.js +13937 -0
  113. package/dist/daemon/mcp/tools/card-types.d.ts +12 -0
  114. package/dist/daemon/mcp/tools/card-types.js +13912 -0
  115. package/dist/daemon/mcp/tools/cards.d.ts +12 -0
  116. package/dist/daemon/mcp/tools/cards.js +14204 -0
  117. package/dist/daemon/mcp/tools/environment.d.ts +12 -0
  118. package/dist/daemon/mcp/tools/environment.js +13984 -0
  119. package/dist/daemon/mcp/tools/mcp-servers.d.ts +12 -0
  120. package/dist/daemon/mcp/tools/mcp-servers.js +14031 -0
  121. package/dist/daemon/mcp/tools/messages.d.ts +12 -0
  122. package/dist/daemon/mcp/tools/messages.js +13939 -0
  123. package/dist/daemon/mcp/tools/repos.d.ts +12 -0
  124. package/dist/daemon/mcp/tools/repos.js +13907 -0
  125. package/dist/daemon/mcp/tools/search.d.ts +7 -0
  126. package/dist/daemon/mcp/tools/search.js +14000 -0
  127. package/dist/daemon/mcp/tools/sessions.d.ts +12 -0
  128. package/dist/daemon/mcp/tools/sessions.js +14362 -0
  129. package/dist/daemon/mcp/tools/tasks.d.ts +12 -0
  130. package/dist/daemon/mcp/tools/tasks.js +13847 -0
  131. package/dist/daemon/mcp/tools/users.d.ts +12 -0
  132. package/dist/daemon/mcp/tools/users.js +13951 -0
  133. package/dist/daemon/mcp/tools/worktrees.d.ts +12 -0
  134. package/dist/daemon/mcp/tools/worktrees.js +14393 -0
  135. package/dist/daemon/services/board-comments.js +1 -1
  136. package/dist/daemon/services/board-objects.d.ts +4 -1
  137. package/dist/daemon/services/board-objects.js +2 -2
  138. package/dist/daemon/services/boards.js +1 -1
  139. package/dist/daemon/services/card-types.d.ts +20 -0
  140. package/dist/daemon/services/card-types.js +234 -0
  141. package/dist/daemon/services/cards.d.ts +89 -0
  142. package/dist/daemon/services/cards.js +362 -0
  143. package/dist/daemon/services/gateway-channels.js +1 -1
  144. package/dist/daemon/services/gateway.d.ts +16 -0
  145. package/dist/daemon/services/gateway.js +252 -21
  146. package/dist/daemon/services/github-app-setup.d.ts +37 -0
  147. package/dist/daemon/services/github-app-setup.js +178 -0
  148. package/dist/daemon/services/mcp-servers.js +1 -1
  149. package/dist/daemon/services/messages.js +1 -1
  150. package/dist/daemon/services/repos.js +67 -21
  151. package/dist/daemon/services/scheduler.d.ts +1 -0
  152. package/dist/daemon/services/scheduler.js +27 -2
  153. package/dist/daemon/services/sessions.d.ts +11 -0
  154. package/dist/daemon/services/sessions.js +66 -4
  155. package/dist/daemon/services/tasks.d.ts +4 -2
  156. package/dist/daemon/services/tasks.js +31 -27
  157. package/dist/daemon/services/thread-session-map.js +1 -1
  158. package/dist/daemon/services/worktrees.js +1 -1
  159. package/dist/daemon/setup/credentials.d.ts +17 -1
  160. package/dist/daemon/setup/credentials.js +21 -1
  161. package/dist/daemon/setup/index.js +38 -1
  162. package/dist/daemon/setup/socketio.js +18 -0
  163. package/dist/daemon/utils/git-shell-capture.d.ts +31 -0
  164. package/dist/daemon/utils/git-shell-capture.js +47 -0
  165. package/dist/daemon/utils/worktree-authorization.d.ts +21 -2
  166. package/dist/daemon/utils/worktree-authorization.js +54 -5
  167. package/dist/executor/cli.js +1 -1
  168. package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
  169. package/dist/executor/handlers/sdk/base-executor.js +40 -1
  170. package/dist/executor/handlers/sdk/copilot.d.ts +23 -0
  171. package/dist/executor/handlers/sdk/copilot.d.ts.map +1 -0
  172. package/dist/executor/handlers/sdk/copilot.js +44 -0
  173. package/dist/executor/handlers/sdk/tool-registry.d.ts +1 -1
  174. package/dist/executor/handlers/sdk/tool-registry.d.ts.map +1 -1
  175. package/dist/executor/handlers/sdk/tool-registry.js +9 -1
  176. package/dist/executor/index.d.ts +1 -1
  177. package/dist/executor/index.d.ts.map +1 -1
  178. package/dist/executor/payload-types.d.ts +3 -0
  179. package/dist/executor/payload-types.d.ts.map +1 -1
  180. package/dist/executor/payload-types.js +1 -1
  181. package/dist/executor/sdk-handlers/base/types.d.ts +1 -1
  182. package/dist/executor/sdk-handlers/base/types.d.ts.map +1 -1
  183. package/dist/executor/sdk-handlers/claude/import/task-extractor.js +1 -1
  184. package/dist/executor/sdk-handlers/claude/message-processor.d.ts.map +1 -1
  185. package/dist/executor/sdk-handlers/claude/prompt-service.d.ts.map +1 -1
  186. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +3 -1
  187. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
  188. package/dist/executor/sdk-handlers/codex/codex-tool.js +9 -3
  189. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
  190. package/dist/executor/sdk-handlers/codex/prompt-service.js +55 -16
  191. package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts +94 -0
  192. package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts.map +1 -0
  193. package/dist/executor/sdk-handlers/copilot/copilot-tool.js +327 -0
  194. package/dist/executor/sdk-handlers/copilot/event-mapper.d.ts +131 -0
  195. package/dist/executor/sdk-handlers/copilot/event-mapper.d.ts.map +1 -0
  196. package/dist/executor/sdk-handlers/copilot/event-mapper.js +139 -0
  197. package/dist/executor/sdk-handlers/copilot/index.d.ts +9 -0
  198. package/dist/executor/sdk-handlers/copilot/index.d.ts.map +1 -0
  199. package/dist/executor/sdk-handlers/copilot/index.js +8 -0
  200. package/dist/executor/sdk-handlers/copilot/models.d.ts +36 -0
  201. package/dist/executor/sdk-handlers/copilot/models.d.ts.map +1 -0
  202. package/dist/executor/sdk-handlers/copilot/models.js +57 -0
  203. package/dist/executor/sdk-handlers/copilot/normalizer.d.ts +37 -0
  204. package/dist/executor/sdk-handlers/copilot/normalizer.d.ts.map +1 -0
  205. package/dist/executor/sdk-handlers/copilot/normalizer.js +53 -0
  206. package/dist/executor/sdk-handlers/copilot/permission-mapper.d.ts +57 -0
  207. package/dist/executor/sdk-handlers/copilot/permission-mapper.d.ts.map +1 -0
  208. package/dist/executor/sdk-handlers/copilot/permission-mapper.js +309 -0
  209. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +135 -0
  210. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -0
  211. package/dist/executor/sdk-handlers/copilot/prompt-service.js +392 -0
  212. package/dist/executor/sdk-handlers/normalizer-factory.d.ts.map +1 -1
  213. package/dist/executor/sdk-handlers/normalizer-factory.js +4 -0
  214. package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts +1 -1
  215. package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts.map +1 -1
  216. package/dist/executor/sdk-handlers/opencode/opencode-tool.js +15 -4
  217. package/dist/executor/services/feathers-client.d.ts.map +1 -1
  218. package/dist/executor/services/feathers-client.js +29 -1
  219. package/dist/executor/types/sdk-response.d.ts +9 -1
  220. package/dist/executor/types/sdk-response.d.ts.map +1 -1
  221. package/dist/ui/assets/{_basePickBy-a-UPuVdu.js → _basePickBy-Bot5PTMf.js} +1 -1
  222. package/dist/ui/assets/_basePickBy-Bot5PTMf.js.gz +0 -0
  223. package/dist/ui/assets/{_baseUniq-BsamLjHu.js → _baseUniq-BiadTt1m.js} +1 -1
  224. package/dist/ui/assets/_baseUniq-BiadTt1m.js.gz +0 -0
  225. package/dist/ui/assets/{arc-DyqZs1Vh.js → arc-ChDTFPx2.js} +1 -1
  226. package/dist/ui/assets/arc-ChDTFPx2.js.gz +0 -0
  227. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-CgsIeOuk.js → architectureDiagram-VXUJARFQ-BD-EJNP6.js} +1 -1
  228. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-CgsIeOuk.js.gz → architectureDiagram-VXUJARFQ-BD-EJNP6.js.gz} +0 -0
  229. package/dist/ui/assets/{blockDiagram-VD42YOAC-D1eydKiU.js → blockDiagram-VD42YOAC-DAlkiBRw.js} +1 -1
  230. package/dist/ui/assets/blockDiagram-VD42YOAC-DAlkiBRw.js.gz +0 -0
  231. package/dist/ui/assets/{c4Diagram-YG6GDRKO-CTRsvfoC.js → c4Diagram-YG6GDRKO-DxoeLyzn.js} +1 -1
  232. package/dist/ui/assets/c4Diagram-YG6GDRKO-DxoeLyzn.js.gz +0 -0
  233. package/dist/ui/assets/channel-ektqaOu4.js +1 -0
  234. package/dist/ui/assets/{chunk-4BX2VUAB-DywfV5U9.js → chunk-4BX2VUAB-C1SxH1q6.js} +1 -1
  235. package/dist/ui/assets/{chunk-55IACEB6-_2HiUO9U.js → chunk-55IACEB6-mzz4nQTH.js} +1 -1
  236. package/dist/ui/assets/{chunk-B4BG7PRW-fTTNlIHk.js → chunk-B4BG7PRW-BYc7C1Yf.js} +1 -1
  237. package/dist/ui/assets/chunk-B4BG7PRW-BYc7C1Yf.js.gz +0 -0
  238. package/dist/ui/assets/{chunk-DI55MBZ5-CkK99YYw.js → chunk-DI55MBZ5-BGX5IQ0D.js} +1 -1
  239. package/dist/ui/assets/chunk-DI55MBZ5-BGX5IQ0D.js.gz +0 -0
  240. package/dist/ui/assets/{chunk-FMBD7UC4-DQTX-Hsy.js → chunk-FMBD7UC4-bKSuA5NL.js} +1 -1
  241. package/dist/ui/assets/{chunk-QN33PNHL-CzeO2t_E.js → chunk-QN33PNHL-BD4Z8QU9.js} +1 -1
  242. package/dist/ui/assets/{chunk-QZHKN3VN-CHoat9Pt.js → chunk-QZHKN3VN-suaJ5j2D.js} +1 -1
  243. package/dist/ui/assets/{chunk-TZMSLE5B-S7n8674o.js → chunk-TZMSLE5B-CscopKPs.js} +1 -1
  244. package/dist/ui/assets/chunk-TZMSLE5B-CscopKPs.js.gz +0 -0
  245. package/dist/ui/assets/classDiagram-2ON5EDUG-h7au4VHy.js +1 -0
  246. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-h7au4VHy.js +1 -0
  247. package/dist/ui/assets/clone-ubO55Q5e.js +1 -0
  248. package/dist/ui/assets/copilot-CI1k0esO.png +0 -0
  249. package/dist/ui/assets/{cose-bilkent-S5V4N54A-siMLCMvS.js → cose-bilkent-S5V4N54A-xHv-ZHO9.js} +1 -1
  250. package/dist/ui/assets/{cose-bilkent-S5V4N54A-siMLCMvS.js.gz → cose-bilkent-S5V4N54A-xHv-ZHO9.js.gz} +0 -0
  251. package/dist/ui/assets/{dagre-6UL2VRFP-_OX2gkxc.js → dagre-6UL2VRFP-CDDS4Pwv.js} +1 -1
  252. package/dist/ui/assets/dagre-6UL2VRFP-CDDS4Pwv.js.gz +0 -0
  253. package/dist/ui/assets/{diagram-PSM6KHXK-DiegU_YP.js → diagram-PSM6KHXK-Cf2uu4fz.js} +1 -1
  254. package/dist/ui/assets/diagram-PSM6KHXK-Cf2uu4fz.js.gz +0 -0
  255. package/dist/ui/assets/{diagram-QEK2KX5R-RLTZ88ZV.js → diagram-QEK2KX5R-QWhFFu_e.js} +1 -1
  256. package/dist/ui/assets/diagram-QEK2KX5R-QWhFFu_e.js.gz +0 -0
  257. package/dist/ui/assets/{diagram-S2PKOQOG-yQSuJDK3.js → diagram-S2PKOQOG-DxnCZpoP.js} +1 -1
  258. package/dist/ui/assets/diagram-S2PKOQOG-DxnCZpoP.js.gz +0 -0
  259. package/dist/ui/assets/{erDiagram-Q2GNP2WA--p-2-5N5.js → erDiagram-Q2GNP2WA-CSYL-aff.js} +1 -1
  260. package/dist/ui/assets/erDiagram-Q2GNP2WA-CSYL-aff.js.gz +0 -0
  261. package/dist/ui/assets/{flowDiagram-NV44I4VS-C4zjWB0K.js → flowDiagram-NV44I4VS-CJdeNjL8.js} +1 -1
  262. package/dist/ui/assets/flowDiagram-NV44I4VS-CJdeNjL8.js.gz +0 -0
  263. package/dist/ui/assets/{ganttDiagram-LVOFAZNH-mxE44wXO.js → ganttDiagram-LVOFAZNH-VpQo6xQp.js} +1 -1
  264. package/dist/ui/assets/ganttDiagram-LVOFAZNH-VpQo6xQp.js.gz +0 -0
  265. package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-DMrIQq3G.js → gitGraphDiagram-NY62KEGX-BJpArTNa.js} +1 -1
  266. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-BJpArTNa.js.gz +0 -0
  267. package/dist/ui/assets/{graph-VhrcdIIR.js → graph-CgflqCqF.js} +1 -1
  268. package/dist/ui/assets/graph-CgflqCqF.js.gz +0 -0
  269. package/dist/ui/assets/{index-DKOtdAlC.js → index-CquDvxQt.js} +264 -260
  270. package/dist/ui/assets/index-CquDvxQt.js.gz +0 -0
  271. package/dist/ui/assets/{infoDiagram-ER5ION4S-Xoedk4d-.js → infoDiagram-ER5ION4S-BaUlLKe-.js} +1 -1
  272. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-B_a5FCHm.js → journeyDiagram-XKPGCS4Q-DKDR94af.js} +1 -1
  273. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-DKDR94af.js.gz +0 -0
  274. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-DiBtDV_W.js → kanban-definition-3W4ZIXB7-C1QCVo4j.js} +1 -1
  275. package/dist/ui/assets/kanban-definition-3W4ZIXB7-C1QCVo4j.js.gz +0 -0
  276. package/dist/ui/assets/{layout-bk99zgxO.js → layout-BIX2oMtR.js} +1 -1
  277. package/dist/ui/assets/layout-BIX2oMtR.js.gz +0 -0
  278. package/dist/ui/assets/{linear-DZd1s0sw.js → linear-3ftczdqe.js} +1 -1
  279. package/dist/ui/assets/linear-3ftczdqe.js.gz +0 -0
  280. package/dist/ui/assets/{mermaid.core-Dc9f_1yv.js → mermaid.core-D-K-DYGP.js} +5 -5
  281. package/dist/ui/assets/mermaid.core-D-K-DYGP.js.gz +0 -0
  282. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-J9nYSB--.js → mindmap-definition-VGOIOE7T-DXjgGAyc.js} +1 -1
  283. package/dist/ui/assets/mindmap-definition-VGOIOE7T-DXjgGAyc.js.gz +0 -0
  284. package/dist/ui/assets/{pieDiagram-ADFJNKIX-Dh-hO5TS.js → pieDiagram-ADFJNKIX-DBmSRQku.js} +1 -1
  285. package/dist/ui/assets/pieDiagram-ADFJNKIX-DBmSRQku.js.gz +0 -0
  286. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-COUMk2nQ.js → quadrantDiagram-AYHSOK5B-CvT5fhC1.js} +1 -1
  287. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-CvT5fhC1.js.gz +0 -0
  288. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-DVSwLaEz.js → requirementDiagram-UZGBJVZJ-CB3zyFoP.js} +1 -1
  289. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-CB3zyFoP.js.gz +0 -0
  290. package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-CCEMM6UB.js → sankeyDiagram-TZEHDZUN-CCl6krK4.js} +1 -1
  291. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-CCl6krK4.js.gz +0 -0
  292. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DnlaHA2K.js → sequenceDiagram-WL72ISMW-DDjQhjCG.js} +1 -1
  293. package/dist/ui/assets/sequenceDiagram-WL72ISMW-DDjQhjCG.js.gz +0 -0
  294. package/dist/ui/assets/{stateDiagram-FKZM4ZOC-DJftQqhn.js → stateDiagram-FKZM4ZOC-DsRmveuj.js} +1 -1
  295. package/dist/ui/assets/stateDiagram-FKZM4ZOC-DsRmveuj.js.gz +0 -0
  296. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BUm_20Sg.js +1 -0
  297. package/dist/ui/assets/{timeline-definition-IT6M3QCI-BB3mW5UW.js → timeline-definition-IT6M3QCI-ZZyF9jEo.js} +1 -1
  298. package/dist/ui/assets/timeline-definition-IT6M3QCI-ZZyF9jEo.js.gz +0 -0
  299. package/dist/ui/assets/{treemap-KMMF4GRG-KI87p8ms.js → treemap-KMMF4GRG--6k63E1P.js} +1 -1
  300. package/dist/ui/assets/treemap-KMMF4GRG--6k63E1P.js.gz +0 -0
  301. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-BcAowgbC.js → xychartDiagram-PRI3JC2R-DpvEuXwx.js} +1 -1
  302. package/dist/ui/assets/xychartDiagram-PRI3JC2R-DpvEuXwx.js.gz +0 -0
  303. package/dist/ui/index.html +1 -1
  304. package/package.json +6 -3
  305. package/dist/daemon/mcp/routes.d.ts +0 -16
  306. package/dist/daemon/mcp/routes.js +0 -3656
  307. package/dist/ui/assets/_basePickBy-a-UPuVdu.js.gz +0 -0
  308. package/dist/ui/assets/_baseUniq-BsamLjHu.js.gz +0 -0
  309. package/dist/ui/assets/arc-DyqZs1Vh.js.gz +0 -0
  310. package/dist/ui/assets/blockDiagram-VD42YOAC-D1eydKiU.js.gz +0 -0
  311. package/dist/ui/assets/c4Diagram-YG6GDRKO-CTRsvfoC.js.gz +0 -0
  312. package/dist/ui/assets/channel-Buowy_Lw.js +0 -1
  313. package/dist/ui/assets/chunk-B4BG7PRW-fTTNlIHk.js.gz +0 -0
  314. package/dist/ui/assets/chunk-DI55MBZ5-CkK99YYw.js.gz +0 -0
  315. package/dist/ui/assets/chunk-TZMSLE5B-S7n8674o.js.gz +0 -0
  316. package/dist/ui/assets/classDiagram-2ON5EDUG-6NEyxcEx.js +0 -1
  317. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-6NEyxcEx.js +0 -1
  318. package/dist/ui/assets/clone-D03hM6j2.js +0 -1
  319. package/dist/ui/assets/dagre-6UL2VRFP-_OX2gkxc.js.gz +0 -0
  320. package/dist/ui/assets/diagram-PSM6KHXK-DiegU_YP.js.gz +0 -0
  321. package/dist/ui/assets/diagram-QEK2KX5R-RLTZ88ZV.js.gz +0 -0
  322. package/dist/ui/assets/diagram-S2PKOQOG-yQSuJDK3.js.gz +0 -0
  323. package/dist/ui/assets/erDiagram-Q2GNP2WA--p-2-5N5.js.gz +0 -0
  324. package/dist/ui/assets/flowDiagram-NV44I4VS-C4zjWB0K.js.gz +0 -0
  325. package/dist/ui/assets/ganttDiagram-LVOFAZNH-mxE44wXO.js.gz +0 -0
  326. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-DMrIQq3G.js.gz +0 -0
  327. package/dist/ui/assets/graph-VhrcdIIR.js.gz +0 -0
  328. package/dist/ui/assets/index-DKOtdAlC.js.gz +0 -0
  329. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-B_a5FCHm.js.gz +0 -0
  330. package/dist/ui/assets/kanban-definition-3W4ZIXB7-DiBtDV_W.js.gz +0 -0
  331. package/dist/ui/assets/layout-bk99zgxO.js.gz +0 -0
  332. package/dist/ui/assets/linear-DZd1s0sw.js.gz +0 -0
  333. package/dist/ui/assets/mermaid.core-Dc9f_1yv.js.gz +0 -0
  334. package/dist/ui/assets/mindmap-definition-VGOIOE7T-J9nYSB--.js.gz +0 -0
  335. package/dist/ui/assets/pieDiagram-ADFJNKIX-Dh-hO5TS.js.gz +0 -0
  336. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-COUMk2nQ.js.gz +0 -0
  337. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-DVSwLaEz.js.gz +0 -0
  338. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-CCEMM6UB.js.gz +0 -0
  339. package/dist/ui/assets/sequenceDiagram-WL72ISMW-DnlaHA2K.js.gz +0 -0
  340. package/dist/ui/assets/stateDiagram-FKZM4ZOC-DJftQqhn.js.gz +0 -0
  341. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-9ApJophA.js +0 -1
  342. package/dist/ui/assets/timeline-definition-IT6M3QCI-BB3mW5UW.js.gz +0 -0
  343. package/dist/ui/assets/treemap-KMMF4GRG-KI87p8ms.js.gz +0 -0
  344. package/dist/ui/assets/xychartDiagram-PRI3JC2R-BcAowgbC.js.gz +0 -0
@@ -564,6 +564,32 @@ var Init = class _Init extends Command {
564
564
  await setConfigValue("credentials.GEMINI_API_KEY", geminiKey);
565
565
  this.log(`${chalk.green(" \u2713")} Gemini API key saved`);
566
566
  }
567
+ const { setupCopilot } = await inquirer.prompt([
568
+ {
569
+ type: "confirm",
570
+ name: "setupCopilot",
571
+ message: "Set up GitHub token for Copilot agent?",
572
+ default: false
573
+ }
574
+ ]);
575
+ if (setupCopilot) {
576
+ const { copilotToken } = await inquirer.prompt([
577
+ {
578
+ type: "password",
579
+ name: "copilotToken",
580
+ message: "GitHub token (for Copilot):",
581
+ mask: "*",
582
+ validate: (input) => {
583
+ if (!input || input.length < 10) {
584
+ return "Please enter a valid GitHub token";
585
+ }
586
+ return true;
587
+ }
588
+ }
589
+ ]);
590
+ await setConfigValue("credentials.COPILOT_GITHUB_TOKEN", copilotToken);
591
+ this.log(`${chalk.green(" \u2713")} Copilot GitHub token saved`);
592
+ }
567
593
  this.log("");
568
594
  this.log(
569
595
  chalk.gray("Note: API keys are stored in ~/.agor/config.yaml (keep this file secure!)")
@@ -162,7 +162,7 @@ var SessionList = class _SessionList extends BaseCommand {
162
162
  agent: Flags.string({
163
163
  char: "a",
164
164
  description: "Filter by agent",
165
- options: ["claude-code", "codex", "gemini"]
165
+ options: ["claude-code", "codex", "gemini", "opencode", "copilot"]
166
166
  }),
167
167
  board: Flags.string({
168
168
  char: "b",
@@ -155,13 +155,14 @@ function createClient(url = DEFAULT_DAEMON_URL, autoConnect = true, options) {
155
155
  });
156
156
  if (options?.verbose) {
157
157
  let attemptCount = 0;
158
+ const maxAttempts = options?.reconnectionAttempts ?? (isBrowser ? Infinity : 2);
158
159
  socket.on("connect_error", (error) => {
159
160
  attemptCount++;
160
161
  if (attemptCount === 1) {
161
162
  console.error(`\u2717 Daemon not running at ${url}`);
162
- console.error(` Retrying connection (${attemptCount}/2)...`);
163
+ console.error(` Retrying connection (${attemptCount}/${maxAttempts})...`);
163
164
  } else {
164
- console.error(` Retry ${attemptCount}/2 failed`);
165
+ console.error(` Retry ${attemptCount}/${maxAttempts} failed`);
165
166
  }
166
167
  });
167
168
  socket.on("connect", () => {
@@ -1,11 +1,11 @@
1
1
  import { i as Message } from '../message-kDoxvdzV.cjs';
2
- import { e as Board, f as BoardExportBlob } from '../board-HBLXfsPa.cjs';
2
+ import { f as Board, k as CardWithType, i as CardType, g as BoardExportBlob } from '../board-B8ItLtRy.cjs';
3
3
  import { a as ContextFileListItem, b as ContextFileDetail } from '../context-ByxGjp5l.cjs';
4
- import { b as AuthenticationResult } from '../feathers-5DsXBqOW.cjs';
5
- import { f as Session } from '../session-DmaExlXI.cjs';
6
- import { d as User } from '../user-D8Z4aURB.cjs';
7
- import { i as MCPServer } from '../mcp-DhSSHDnR.cjs';
8
- import { b as Repo, d as Worktree } from '../worktree-CvakJ5w4.cjs';
4
+ import { b as AuthenticationResult } from '../feathers-Be7aUDva.cjs';
5
+ import { h as Session } from '../session-AK6sM0bA.cjs';
6
+ import { d as User } from '../user-D5SSlZZa.cjs';
7
+ import { i as MCPServer } from '../mcp-DXLeQBg4.cjs';
8
+ import { b as Repo, d as Worktree } from '../worktree-C9dSOqZc.cjs';
9
9
  import { c as Task } from '../task-Cw2N74jk.cjs';
10
10
  import { Params, Paginated, Application } from '@feathersjs/feathers';
11
11
  import { Socket } from 'socket.io-client';
@@ -29,6 +29,8 @@ interface ServiceTypes {
29
29
  'repos/local': Repo;
30
30
  worktrees: Worktree;
31
31
  users: User;
32
+ cards: CardWithType;
33
+ 'card-types': CardType;
32
34
  'mcp-servers': MCPServer;
33
35
  context: ContextFileListItem | ContextFileDetail;
34
36
  }
@@ -250,6 +252,8 @@ interface AgorClient extends Omit<Application<ServiceTypes>, 'service'> {
250
252
  service(path: 'boards'): BoardsService;
251
253
  service(path: 'messages/bulk'): MessagesService;
252
254
  service(path: 'tasks/bulk'): TasksService;
255
+ service(path: 'cards'): AgorService<CardWithType>;
256
+ service(path: 'card-types'): AgorService<CardType>;
253
257
  service(path: 'users'): AgorService<User>;
254
258
  service(path: 'mcp-servers'): AgorService<MCPServer>;
255
259
  service(path: 'context'): AgorService<ContextFileListItem | ContextFileDetail>;
@@ -1,11 +1,11 @@
1
1
  import { i as Message } from '../message-C9XTt2nM.js';
2
- import { e as Board, f as BoardExportBlob } from '../board-CD258gWW.js';
2
+ import { f as Board, k as CardWithType, i as CardType, g as BoardExportBlob } from '../board-DoB0I5Bf.js';
3
3
  import { a as ContextFileListItem, b as ContextFileDetail } from '../context-ByxGjp5l.js';
4
- import { b as AuthenticationResult } from '../feathers-qrz_9jSJ.js';
5
- import { f as Session } from '../session-0b_yCNQr.js';
6
- import { d as User } from '../user-BpflK7uR.js';
7
- import { i as MCPServer } from '../mcp-Db0cL7Xc.js';
8
- import { b as Repo, d as Worktree } from '../worktree-Dr_m10w8.js';
4
+ import { b as AuthenticationResult } from '../feathers-Cg1J1efu.js';
5
+ import { h as Session } from '../session-sk7Brc9j.js';
6
+ import { d as User } from '../user-nwb8amML.js';
7
+ import { i as MCPServer } from '../mcp-Bw8QAZjb.js';
8
+ import { b as Repo, d as Worktree } from '../worktree-CaN2rWHR.js';
9
9
  import { c as Task } from '../task-C2jNGWSt.js';
10
10
  import { Params, Paginated, Application } from '@feathersjs/feathers';
11
11
  import { Socket } from 'socket.io-client';
@@ -29,6 +29,8 @@ interface ServiceTypes {
29
29
  'repos/local': Repo;
30
30
  worktrees: Worktree;
31
31
  users: User;
32
+ cards: CardWithType;
33
+ 'card-types': CardType;
32
34
  'mcp-servers': MCPServer;
33
35
  context: ContextFileListItem | ContextFileDetail;
34
36
  }
@@ -250,6 +252,8 @@ interface AgorClient extends Omit<Application<ServiceTypes>, 'service'> {
250
252
  service(path: 'boards'): BoardsService;
251
253
  service(path: 'messages/bulk'): MessagesService;
252
254
  service(path: 'tasks/bulk'): TasksService;
255
+ service(path: 'cards'): AgorService<CardWithType>;
256
+ service(path: 'card-types'): AgorService<CardType>;
253
257
  service(path: 'users'): AgorService<User>;
254
258
  service(path: 'mcp-servers'): AgorService<MCPServer>;
255
259
  service(path: 'context'): AgorService<ContextFileListItem | ContextFileDetail>;
@@ -118,13 +118,14 @@ function createClient(url = DEFAULT_DAEMON_URL, autoConnect = true, options) {
118
118
  });
119
119
  if (options?.verbose) {
120
120
  let attemptCount = 0;
121
+ const maxAttempts = options?.reconnectionAttempts ?? (isBrowser ? Infinity : 2);
121
122
  socket.on("connect_error", (error) => {
122
123
  attemptCount++;
123
124
  if (attemptCount === 1) {
124
125
  console.error(`\u2717 Daemon not running at ${url}`);
125
- console.error(` Retrying connection (${attemptCount}/2)...`);
126
+ console.error(` Retrying connection (${attemptCount}/${maxAttempts})...`);
126
127
  } else {
127
- console.error(` Retry ${attemptCount}/2 failed`);
128
+ console.error(` Retry ${attemptCount}/${maxAttempts} failed`);
128
129
  }
129
130
  });
130
131
  socket.on("connect", () => {
@@ -1,29 +1,111 @@
1
- import { A as AgenticToolName } from './session-DmaExlXI.cjs';
2
- import { B as BoardID, W as WorktreeID } from './id-BwPJtWxW.cjs';
1
+ import { A as AgenticToolName } from './session-AK6sM0bA.cjs';
2
+ import { U as UUID, B as BoardID, W as WorktreeID } from './id-BwPJtWxW.cjs';
3
+
4
+ /**
5
+ * Card identifier
6
+ *
7
+ * Uniquely identifies a card on a board.
8
+ */
9
+ type CardID = UUID;
10
+ /**
11
+ * CardType identifier
12
+ *
13
+ * Uniquely identifies a global card type definition.
14
+ */
15
+ type CardTypeID = UUID;
16
+ /**
17
+ * CardType - Global card type definition
18
+ *
19
+ * CardTypes are org-level templates defining a category of cards
20
+ * with default emoji, color, and optional JSON Schema for data validation.
21
+ * Global scope: usable on any board.
22
+ */
23
+ interface CardType {
24
+ card_type_id: CardTypeID;
25
+ name: string;
26
+ emoji?: string;
27
+ color?: string;
28
+ json_schema?: Record<string, unknown>;
29
+ created_by?: string;
30
+ created_at: string;
31
+ updated_at: string;
32
+ }
33
+ /**
34
+ * Card - Generic entity on a board
35
+ *
36
+ * Cards are visual work items managed by agents via MCP tools.
37
+ * They live on boards alongside worktrees and can be placed in zones.
38
+ *
39
+ * Key fields:
40
+ * - title: Always shown on card
41
+ * - url: Makes title clickable to external resource
42
+ * - description: Stable context about the entity, collapsed on card
43
+ * - note: Agent's live commentary, always shown in full on card
44
+ * - data: JSON blob for structured workflow state (not displayed on card)
45
+ */
46
+ interface Card {
47
+ card_id: CardID;
48
+ board_id: BoardID;
49
+ card_type_id?: CardTypeID;
50
+ title: string;
51
+ url?: string;
52
+ description?: string;
53
+ note?: string;
54
+ data?: Record<string, unknown>;
55
+ color_override?: string;
56
+ emoji_override?: string;
57
+ created_by?: string;
58
+ created_at: string;
59
+ updated_at: string;
60
+ archived: boolean;
61
+ archived_at?: string;
62
+ }
63
+ /**
64
+ * Card with resolved CardType info
65
+ *
66
+ * Used in API responses to include the effective emoji/color
67
+ * (from override or inherited from CardType).
68
+ */
69
+ interface CardWithType extends Card {
70
+ /** Resolved card type (if card_type_id is set) */
71
+ card_type?: CardType;
72
+ /** Effective emoji (override > card_type > undefined) */
73
+ effective_emoji?: string;
74
+ /** Effective color (override > card_type > undefined) */
75
+ effective_color?: string;
76
+ }
3
77
 
4
78
  /**
5
79
  * Board object types for canvas annotations
6
80
  */
7
81
  type BoardObjectType = 'text' | 'zone' | 'markdown';
8
82
  /**
9
- * Positioned worktree card on a board
83
+ * Entity type discriminator for board objects
84
+ */
85
+ type BoardEntityType = 'worktree' | 'card';
86
+ /**
87
+ * Positioned entity on a board (worktree or card)
10
88
  *
11
- * Boards display worktrees as primary units. Sessions are accessed
12
- * through the worktree card's session tree.
89
+ * Polymorphic placement: exactly one of worktree_id or card_id is set.
90
+ * The entity_type field indicates which one.
13
91
  */
14
92
  interface BoardEntityObject {
15
93
  /** Unique object identifier */
16
94
  object_id: string;
17
95
  /** Board this entity belongs to */
18
96
  board_id: BoardID;
19
- /** Worktree reference */
20
- worktree_id: WorktreeID;
97
+ /** Worktree reference (set when entity_type === 'worktree') */
98
+ worktree_id?: WorktreeID;
99
+ /** Card reference (set when entity_type === 'card') */
100
+ card_id?: CardID;
101
+ /** Computed entity type discriminator */
102
+ entity_type: BoardEntityType;
21
103
  /** Position on canvas */
22
104
  position: {
23
105
  x: number;
24
106
  y: number;
25
107
  };
26
- /** Zone this worktree is pinned to (optional) */
108
+ /** Zone this entity is pinned to (optional) */
27
109
  zone_id?: string;
28
110
  /** When this entity was added to the board */
29
111
  created_at: string;
@@ -181,4 +263,4 @@ interface BoardExportBlob {
181
263
  custom_context?: Record<string, unknown>;
182
264
  }
183
265
 
184
- export type { BoardObjectType as B, MarkdownBoardObject as M, TextBoardObject as T, ZoneTriggerBehavior as Z, BoardEntityObject as a, ZoneTrigger as b, ZoneBoardObject as c, BoardObject as d, Board as e, BoardExportBlob as f };
266
+ export type { BoardObjectType as B, CardID as C, MarkdownBoardObject as M, TextBoardObject as T, ZoneTriggerBehavior as Z, BoardEntityType as a, BoardEntityObject as b, ZoneTrigger as c, ZoneBoardObject as d, BoardObject as e, Board as f, BoardExportBlob as g, CardTypeID as h, CardType as i, Card as j, CardWithType as k };
@@ -1,29 +1,111 @@
1
- import { A as AgenticToolName } from './session-0b_yCNQr.js';
2
- import { B as BoardID, W as WorktreeID } from './id-BwPJtWxW.js';
1
+ import { A as AgenticToolName } from './session-sk7Brc9j.js';
2
+ import { U as UUID, B as BoardID, W as WorktreeID } from './id-BwPJtWxW.js';
3
+
4
+ /**
5
+ * Card identifier
6
+ *
7
+ * Uniquely identifies a card on a board.
8
+ */
9
+ type CardID = UUID;
10
+ /**
11
+ * CardType identifier
12
+ *
13
+ * Uniquely identifies a global card type definition.
14
+ */
15
+ type CardTypeID = UUID;
16
+ /**
17
+ * CardType - Global card type definition
18
+ *
19
+ * CardTypes are org-level templates defining a category of cards
20
+ * with default emoji, color, and optional JSON Schema for data validation.
21
+ * Global scope: usable on any board.
22
+ */
23
+ interface CardType {
24
+ card_type_id: CardTypeID;
25
+ name: string;
26
+ emoji?: string;
27
+ color?: string;
28
+ json_schema?: Record<string, unknown>;
29
+ created_by?: string;
30
+ created_at: string;
31
+ updated_at: string;
32
+ }
33
+ /**
34
+ * Card - Generic entity on a board
35
+ *
36
+ * Cards are visual work items managed by agents via MCP tools.
37
+ * They live on boards alongside worktrees and can be placed in zones.
38
+ *
39
+ * Key fields:
40
+ * - title: Always shown on card
41
+ * - url: Makes title clickable to external resource
42
+ * - description: Stable context about the entity, collapsed on card
43
+ * - note: Agent's live commentary, always shown in full on card
44
+ * - data: JSON blob for structured workflow state (not displayed on card)
45
+ */
46
+ interface Card {
47
+ card_id: CardID;
48
+ board_id: BoardID;
49
+ card_type_id?: CardTypeID;
50
+ title: string;
51
+ url?: string;
52
+ description?: string;
53
+ note?: string;
54
+ data?: Record<string, unknown>;
55
+ color_override?: string;
56
+ emoji_override?: string;
57
+ created_by?: string;
58
+ created_at: string;
59
+ updated_at: string;
60
+ archived: boolean;
61
+ archived_at?: string;
62
+ }
63
+ /**
64
+ * Card with resolved CardType info
65
+ *
66
+ * Used in API responses to include the effective emoji/color
67
+ * (from override or inherited from CardType).
68
+ */
69
+ interface CardWithType extends Card {
70
+ /** Resolved card type (if card_type_id is set) */
71
+ card_type?: CardType;
72
+ /** Effective emoji (override > card_type > undefined) */
73
+ effective_emoji?: string;
74
+ /** Effective color (override > card_type > undefined) */
75
+ effective_color?: string;
76
+ }
3
77
 
4
78
  /**
5
79
  * Board object types for canvas annotations
6
80
  */
7
81
  type BoardObjectType = 'text' | 'zone' | 'markdown';
8
82
  /**
9
- * Positioned worktree card on a board
83
+ * Entity type discriminator for board objects
84
+ */
85
+ type BoardEntityType = 'worktree' | 'card';
86
+ /**
87
+ * Positioned entity on a board (worktree or card)
10
88
  *
11
- * Boards display worktrees as primary units. Sessions are accessed
12
- * through the worktree card's session tree.
89
+ * Polymorphic placement: exactly one of worktree_id or card_id is set.
90
+ * The entity_type field indicates which one.
13
91
  */
14
92
  interface BoardEntityObject {
15
93
  /** Unique object identifier */
16
94
  object_id: string;
17
95
  /** Board this entity belongs to */
18
96
  board_id: BoardID;
19
- /** Worktree reference */
20
- worktree_id: WorktreeID;
97
+ /** Worktree reference (set when entity_type === 'worktree') */
98
+ worktree_id?: WorktreeID;
99
+ /** Card reference (set when entity_type === 'card') */
100
+ card_id?: CardID;
101
+ /** Computed entity type discriminator */
102
+ entity_type: BoardEntityType;
21
103
  /** Position on canvas */
22
104
  position: {
23
105
  x: number;
24
106
  y: number;
25
107
  };
26
- /** Zone this worktree is pinned to (optional) */
108
+ /** Zone this entity is pinned to (optional) */
27
109
  zone_id?: string;
28
110
  /** When this entity was added to the board */
29
111
  created_at: string;
@@ -181,4 +263,4 @@ interface BoardExportBlob {
181
263
  custom_context?: Record<string, unknown>;
182
264
  }
183
265
 
184
- export type { BoardObjectType as B, MarkdownBoardObject as M, TextBoardObject as T, ZoneTriggerBehavior as Z, BoardEntityObject as a, ZoneTrigger as b, ZoneBoardObject as c, BoardObject as d, Board as e, BoardExportBlob as f };
266
+ export type { BoardObjectType as B, CardID as C, MarkdownBoardObject as M, TextBoardObject as T, ZoneTriggerBehavior as Z, BoardEntityType as a, BoardEntityObject as b, ZoneTrigger as c, ZoneBoardObject as d, BoardObject as e, Board as f, BoardExportBlob as g, CardTypeID as h, CardType as i, Card as j, CardWithType as k };
@@ -4,6 +4,7 @@ interface ChildCompletionContext {
4
4
  childTaskId: string;
5
5
  childTaskFullId: string;
6
6
  parentSessionId: string;
7
+ callbackSessionId: string;
7
8
  spawnPrompt?: string;
8
9
  status: string;
9
10
  completedAt: string;
@@ -4,6 +4,7 @@ interface ChildCompletionContext {
4
4
  childTaskId: string;
5
5
  childTaskFullId: string;
6
6
  parentSessionId: string;
7
+ callbackSessionId: string;
7
8
  spawnPrompt?: string;
8
9
  status: string;
9
10
  completedAt: string;