agor-live 0.17.2 → 0.17.3

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 (316) hide show
  1. package/dist/cli/lib/banner.d.ts +1 -1
  2. package/dist/cli/lib/banner.js +1 -1
  3. package/dist/cli/lib/check-migrations.test.js +9627 -9112
  4. package/dist/cli/lib/daemon-manager.test.js +9632 -9117
  5. package/dist/cli/lib/help.js +1 -1
  6. package/dist/core/api/index.d.cts +3 -3
  7. package/dist/core/api/index.d.ts +3 -3
  8. package/dist/core/{board-comment-DIdOJrSF.d.cts → board-comment-CCFVVN7K.d.cts} +0 -2
  9. package/dist/core/{board-comment-3N-jSgsk.d.ts → board-comment-iT3DgZb4.d.ts} +0 -2
  10. package/dist/core/claude/index.cjs +29 -19
  11. package/dist/core/claude/index.d.cts +2 -2
  12. package/dist/core/claude/index.d.ts +2 -2
  13. package/dist/core/claude/index.js +32 -33
  14. package/dist/core/client/index.cjs +49 -0
  15. package/dist/core/client/index.d.cts +7 -7
  16. package/dist/core/client/index.d.ts +7 -7
  17. package/dist/core/client/index.js +46 -0
  18. package/dist/core/{client-B5PyIvNc.d.cts → client-CemqXk0v.d.cts} +116 -100
  19. package/dist/core/{client-C1CsRi19.d.ts → client-uYEOha6g.d.ts} +116 -100
  20. package/dist/core/config/browser.d.cts +3 -3
  21. package/dist/core/config/browser.d.ts +3 -3
  22. package/dist/core/config/index.cjs +84 -41
  23. package/dist/core/config/index.d.cts +59 -17
  24. package/dist/core/config/index.d.ts +59 -17
  25. package/dist/core/config/index.js +86 -55
  26. package/dist/core/{config-manager-TxxjFMRd.d.cts → config-manager-B8TP9Kz0.d.cts} +12 -3
  27. package/dist/core/{config-manager-DTrsj6G3.d.ts → config-manager-CDEB0FY4.d.ts} +12 -3
  28. package/dist/core/{config-services-YEZ4DwCD.d.cts → config-services-CXyQKEK5.d.cts} +1 -1
  29. package/dist/core/{config-services-DcO2GRgh.d.ts → config-services-DhM7_yWn.d.ts} +1 -1
  30. package/dist/core/db/index.cjs +235 -175
  31. package/dist/core/db/index.d.cts +190 -147
  32. package/dist/core/db/index.d.ts +190 -147
  33. package/dist/core/db/index.js +239 -190
  34. package/dist/core/db/session-guard.d.cts +4 -4
  35. package/dist/core/db/session-guard.d.ts +4 -4
  36. package/dist/core/drizzle/postgres/0028_queued_tasks.sql +8 -0
  37. package/dist/core/drizzle/postgres/0030_migrate_queued_messages.sql +24 -0
  38. package/dist/core/drizzle/postgres/0031_restructure_agentic_tool_config.sql +201 -0
  39. package/dist/core/drizzle/postgres/meta/_journal.json +21 -0
  40. package/dist/core/drizzle/sqlite/0039_queued_tasks.sql +13 -0
  41. package/dist/core/drizzle/sqlite/0040_migrate_queued_messages.sql +61 -0
  42. package/dist/core/drizzle/sqlite/0041_restructure_agentic_tool_config.sql +204 -0
  43. package/dist/core/drizzle/sqlite/meta/_journal.json +21 -0
  44. package/dist/core/gateway/index.d.cts +2 -2
  45. package/dist/core/gateway/index.d.ts +2 -2
  46. package/dist/core/{gateway-BnOlAelY.d.cts → gateway-BWq4j_Ll.d.cts} +1 -1
  47. package/dist/core/{gateway-B_4X-v07.d.ts → gateway-C3Jm_akw.d.ts} +1 -1
  48. package/dist/core/git/index.d.cts +4 -4
  49. package/dist/core/git/index.d.ts +4 -4
  50. package/dist/core/index.cjs +474 -201
  51. package/dist/core/index.d.cts +12 -10
  52. package/dist/core/index.d.ts +12 -10
  53. package/dist/core/index.js +473 -216
  54. package/dist/core/lib/feathers-validation.cjs +2 -1
  55. package/dist/core/lib/feathers-validation.d.cts +1 -1
  56. package/dist/core/lib/feathers-validation.d.ts +1 -1
  57. package/dist/core/lib/feathers-validation.js +2 -1
  58. package/dist/core/mcp/index.cjs +26 -16
  59. package/dist/core/mcp/index.js +26 -16
  60. package/dist/core/{message-DinITA7a.d.cts → message-CSWOsdcZ.d.cts} +1 -9
  61. package/dist/core/{message-CHUUP6OS.d.ts → message-DZa8g0s0.d.ts} +1 -9
  62. package/dist/core/models/index.d.cts +3 -73
  63. package/dist/core/models/index.d.ts +3 -73
  64. package/dist/core/package.json +5 -0
  65. package/dist/core/permissions/index.d.cts +1 -1
  66. package/dist/core/permissions/index.d.ts +1 -1
  67. package/dist/core/resolve-config-BcL-Hv8k.d.ts +74 -0
  68. package/dist/core/resolve-config-DTCxuSBx.d.cts +74 -0
  69. package/dist/core/seed/index.cjs +145 -98
  70. package/dist/core/seed/index.js +148 -112
  71. package/dist/core/{session-guard-C0LkDEN7.d.ts → session-guard-BFqVtBoS.d.ts} +1 -1
  72. package/dist/core/{session-guard-kvAx_8Fb.d.cts → session-guard-KHh0cnET.d.cts} +1 -1
  73. package/dist/core/sessions/index.cjs +184 -0
  74. package/dist/core/sessions/index.d.cts +79 -0
  75. package/dist/core/sessions/index.d.ts +79 -0
  76. package/dist/core/sessions/index.js +157 -0
  77. package/dist/core/{task-BLPFCORT.d.ts → task-BHV-YHg1.d.ts} +41 -3
  78. package/dist/core/{task-wht1RJEL.d.cts → task-C2Hy7H6u.d.cts} +41 -3
  79. package/dist/core/templates/session-context.d.cts +1 -1
  80. package/dist/core/templates/session-context.d.ts +1 -1
  81. package/dist/core/tools/mcp/oauth-mcp-transport.cjs +168 -66
  82. package/dist/core/tools/mcp/oauth-mcp-transport.d.cts +92 -16
  83. package/dist/core/tools/mcp/oauth-mcp-transport.d.ts +92 -16
  84. package/dist/core/tools/mcp/oauth-mcp-transport.js +165 -66
  85. package/dist/core/tools/mcp/oauth-refresh.cjs +43 -53
  86. package/dist/core/tools/mcp/oauth-refresh.d.cts +3 -3
  87. package/dist/core/tools/mcp/oauth-refresh.d.ts +3 -3
  88. package/dist/core/tools/mcp/oauth-refresh.js +58 -78
  89. package/dist/core/types/index.cjs +49 -0
  90. package/dist/core/types/index.d.cts +7 -7
  91. package/dist/core/types/index.d.ts +7 -7
  92. package/dist/core/types/index.js +46 -0
  93. package/dist/core/{types-DNqfdt1z.d.cts → types-D4Rl6ZKN.d.cts} +18 -2
  94. package/dist/core/{types-DqPMmTad.d.ts → types-n61iaXub.d.ts} +18 -2
  95. package/dist/core/unix/index.cjs +164 -110
  96. package/dist/core/unix/index.d.cts +7 -8
  97. package/dist/core/unix/index.d.ts +7 -8
  98. package/dist/core/unix/index.js +167 -124
  99. package/dist/core/{user-DkNdeFoz.d.cts → user-CpfkcV2C.d.cts} +139 -13
  100. package/dist/core/{user-BfVWBmXA.d.ts → user-DP-XZMIM.d.ts} +139 -13
  101. package/dist/core/utils/permission-mode-mapper.d.cts +0 -2
  102. package/dist/core/utils/permission-mode-mapper.d.ts +0 -2
  103. package/dist/daemon/index.js +2976 -2791
  104. package/dist/daemon/main.js +2976 -2791
  105. package/dist/daemon/mcp/server.js +177 -134
  106. package/dist/daemon/mcp/tools/analytics.js +19 -5
  107. package/dist/daemon/mcp/tools/artifacts.js +19 -5
  108. package/dist/daemon/mcp/tools/boards.js +19 -5
  109. package/dist/daemon/mcp/tools/card-types.js +19 -5
  110. package/dist/daemon/mcp/tools/cards.js +19 -5
  111. package/dist/daemon/mcp/tools/environment.js +19 -5
  112. package/dist/daemon/mcp/tools/mcp-servers.d.ts +29 -2
  113. package/dist/daemon/mcp/tools/mcp-servers.js +64 -54
  114. package/dist/daemon/mcp/tools/messages.js +19 -5
  115. package/dist/daemon/mcp/tools/repos.js +19 -5
  116. package/dist/daemon/mcp/tools/search.js +19 -5
  117. package/dist/daemon/mcp/tools/sessions.js +175 -53
  118. package/dist/daemon/mcp/tools/tasks.js +19 -5
  119. package/dist/daemon/mcp/tools/users.js +19 -5
  120. package/dist/daemon/mcp/tools/worktrees.js +37 -38
  121. package/dist/daemon/register-hooks.js +52 -1
  122. package/dist/daemon/register-routes.js +436 -424
  123. package/dist/daemon/register-services.js +255 -140
  124. package/dist/daemon/services/config.d.ts +7 -1
  125. package/dist/daemon/services/config.js +3 -2
  126. package/dist/daemon/services/gateway.js +28 -15
  127. package/dist/daemon/services/mcp-servers.d.ts +7 -2
  128. package/dist/daemon/services/repos.js +2 -0
  129. package/dist/daemon/services/sessions.d.ts +1 -1
  130. package/dist/daemon/services/sessions.js +8 -16
  131. package/dist/daemon/services/tasks.js +16 -10
  132. package/dist/daemon/services/terminals.js +2 -0
  133. package/dist/daemon/services/users.d.ts +27 -11
  134. package/dist/daemon/services/users.js +89 -43
  135. package/dist/daemon/services/worktree-owners.js +2 -0
  136. package/dist/daemon/services/worktrees.js +2 -0
  137. package/dist/daemon/setup/index.js +5 -2
  138. package/dist/daemon/setup/socketio.d.ts +10 -1
  139. package/dist/daemon/setup/socketio.js +7 -3
  140. package/dist/daemon/startup.js +13 -1
  141. package/dist/daemon/utils/apply-session-config-defaults.d.ts +54 -0
  142. package/dist/daemon/utils/apply-session-config-defaults.js +46 -0
  143. package/dist/daemon/utils/spawn-executor.js +2 -0
  144. package/dist/daemon/utils/worktree-authorization.d.ts +2 -4
  145. package/dist/executor/commands/zellij.d.ts.map +1 -1
  146. package/dist/executor/commands/zellij.js +2 -2
  147. package/dist/executor/handlers/sdk/base-executor.d.ts +4 -3
  148. package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
  149. package/dist/executor/handlers/sdk/base-executor.js +11 -5
  150. package/dist/executor/payload-types.d.ts +14 -14
  151. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
  152. package/dist/executor/sdk-handlers/claude/claude-tool.js +9 -4
  153. package/dist/executor/sdk-handlers/claude/import/task-extractor.d.ts.map +1 -1
  154. package/dist/executor/sdk-handlers/claude/import/task-extractor.js +0 -5
  155. package/dist/executor/sdk-handlers/claude/message-builder.d.ts +23 -2
  156. package/dist/executor/sdk-handlers/claude/message-builder.d.ts.map +1 -1
  157. package/dist/executor/sdk-handlers/claude/message-builder.js +33 -2
  158. package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.d.ts +9 -1
  159. package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.d.ts.map +1 -1
  160. package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.js +12 -0
  161. package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
  162. package/dist/executor/sdk-handlers/claude/query-builder.js +11 -6
  163. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +0 -5
  164. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
  165. package/dist/executor/sdk-handlers/codex/codex-tool.js +9 -24
  166. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +15 -2
  167. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
  168. package/dist/executor/sdk-handlers/codex/prompt-service.js +39 -10
  169. package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts +0 -5
  170. package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts.map +1 -1
  171. package/dist/executor/sdk-handlers/copilot/copilot-tool.js +5 -22
  172. package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +0 -5
  173. package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +1 -1
  174. package/dist/executor/sdk-handlers/gemini/gemini-tool.js +9 -24
  175. package/dist/ui/assets/{CodeEditor.inner-CO-5PAnZ.js → CodeEditor.inner-CVLqZBtM.js} +1 -1
  176. package/dist/ui/assets/{CodeEditor.inner-CO-5PAnZ.js.gz → CodeEditor.inner-CVLqZBtM.js.gz} +0 -0
  177. package/dist/ui/assets/{_basePickBy-DfxojsEt.js → _basePickBy-CFq5ES2J.js} +1 -1
  178. package/dist/ui/assets/_basePickBy-CFq5ES2J.js.gz +0 -0
  179. package/dist/ui/assets/{_baseUniq-DWFPJOTC.js → _baseUniq-C4uKBvNt.js} +1 -1
  180. package/dist/ui/assets/_baseUniq-C4uKBvNt.js.gz +0 -0
  181. package/dist/ui/assets/{arc-vMZ_XGSI.js → arc-BnrcXDJJ.js} +1 -1
  182. package/dist/ui/assets/arc-BnrcXDJJ.js.gz +0 -0
  183. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-DGpk_uOD.js → architectureDiagram-VXUJARFQ-DD9HD-WR.js} +1 -1
  184. package/dist/ui/assets/architectureDiagram-VXUJARFQ-DD9HD-WR.js.gz +0 -0
  185. package/dist/ui/assets/{base-80a1f760-BsVlOKqO.js → base-80a1f760-BK1VmxWU.js} +1 -1
  186. package/dist/ui/assets/{blockDiagram-VD42YOAC-BkRnxc94.js → blockDiagram-VD42YOAC-LBAckZZe.js} +1 -1
  187. package/dist/ui/assets/blockDiagram-VD42YOAC-LBAckZZe.js.gz +0 -0
  188. package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dcf-anJy.js → c4Diagram-YG6GDRKO-yEdylcYP.js} +1 -1
  189. package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dcf-anJy.js.gz → c4Diagram-YG6GDRKO-yEdylcYP.js.gz} +0 -0
  190. package/dist/ui/assets/channel-CMN-iY3Q.js +1 -0
  191. package/dist/ui/assets/{chunk-4BX2VUAB-C4oVWDo8.js → chunk-4BX2VUAB-IHtzKbmQ.js} +1 -1
  192. package/dist/ui/assets/{chunk-55IACEB6-CsBbTu57.js → chunk-55IACEB6-C4o5tv_F.js} +1 -1
  193. package/dist/ui/assets/{chunk-B4BG7PRW-DtkeCZab.js → chunk-B4BG7PRW-EPkzLvlB.js} +1 -1
  194. package/dist/ui/assets/chunk-B4BG7PRW-EPkzLvlB.js.gz +0 -0
  195. package/dist/ui/assets/{chunk-DI55MBZ5-BQ_asW-1.js → chunk-DI55MBZ5-CW-Bzkzj.js} +1 -1
  196. package/dist/ui/assets/chunk-DI55MBZ5-CW-Bzkzj.js.gz +0 -0
  197. package/dist/ui/assets/{chunk-FMBD7UC4-DAdcLNG-.js → chunk-FMBD7UC4-DvGU02Io.js} +1 -1
  198. package/dist/ui/assets/{chunk-QN33PNHL-Do2zad3m.js → chunk-QN33PNHL-C-PIlz9n.js} +1 -1
  199. package/dist/ui/assets/{chunk-QZHKN3VN-CyhMmSdC.js → chunk-QZHKN3VN-BhpJFm6h.js} +1 -1
  200. package/dist/ui/assets/{chunk-TZMSLE5B-DlPypnIq.js → chunk-TZMSLE5B-Biake8IU.js} +1 -1
  201. package/dist/ui/assets/chunk-TZMSLE5B-Biake8IU.js.gz +0 -0
  202. package/dist/ui/assets/classDiagram-2ON5EDUG-Bz1et8oA.js +1 -0
  203. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-Bz1et8oA.js +1 -0
  204. package/dist/ui/assets/clone-Dxo5sEAf.js +1 -0
  205. package/dist/ui/assets/{consoleHook-59e792cb-DHYIclEd.js → consoleHook-59e792cb-BzEkHWE8.js} +1 -1
  206. package/dist/ui/assets/consoleHook-59e792cb-BzEkHWE8.js.gz +0 -0
  207. package/dist/ui/assets/{cose-bilkent-S5V4N54A-DotJH9qH.js → cose-bilkent-S5V4N54A-vAiVi74s.js} +1 -1
  208. package/dist/ui/assets/cose-bilkent-S5V4N54A-vAiVi74s.js.gz +0 -0
  209. package/dist/ui/assets/{dagre-6UL2VRFP-Btssr8QF.js → dagre-6UL2VRFP-C8w7TshD.js} +1 -1
  210. package/dist/ui/assets/dagre-6UL2VRFP-C8w7TshD.js.gz +0 -0
  211. package/dist/ui/assets/{diagram-PSM6KHXK-D5_Jkog3.js → diagram-PSM6KHXK-CvnjEmtQ.js} +1 -1
  212. package/dist/ui/assets/diagram-PSM6KHXK-CvnjEmtQ.js.gz +0 -0
  213. package/dist/ui/assets/{diagram-QEK2KX5R-DlPEVSL5.js → diagram-QEK2KX5R-D245unng.js} +1 -1
  214. package/dist/ui/assets/diagram-QEK2KX5R-D245unng.js.gz +0 -0
  215. package/dist/ui/assets/{diagram-S2PKOQOG-CjO1k8aG.js → diagram-S2PKOQOG-DgGUHL8Z.js} +1 -1
  216. package/dist/ui/assets/diagram-S2PKOQOG-DgGUHL8Z.js.gz +0 -0
  217. package/dist/ui/assets/{erDiagram-Q2GNP2WA-3cO02-K3.js → erDiagram-Q2GNP2WA-Cf5paK9b.js} +1 -1
  218. package/dist/ui/assets/erDiagram-Q2GNP2WA-Cf5paK9b.js.gz +0 -0
  219. package/dist/ui/assets/{flowDiagram-NV44I4VS-CajTpSxI.js → flowDiagram-NV44I4VS-BJpHmEXV.js} +1 -1
  220. package/dist/ui/assets/flowDiagram-NV44I4VS-BJpHmEXV.js.gz +0 -0
  221. package/dist/ui/assets/{ganttDiagram-LVOFAZNH-CnY_bV3o.js → ganttDiagram-LVOFAZNH-zOyTZcXC.js} +1 -1
  222. package/dist/ui/assets/{ganttDiagram-LVOFAZNH-CnY_bV3o.js.gz → ganttDiagram-LVOFAZNH-zOyTZcXC.js.gz} +0 -0
  223. package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-CH16bg-j.js → gitGraphDiagram-NY62KEGX-B0uxwqMv.js} +1 -1
  224. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-B0uxwqMv.js.gz +0 -0
  225. package/dist/ui/assets/{graph-IQoZvE3o.js → graph-NWXc73TO.js} +1 -1
  226. package/dist/ui/assets/graph-NWXc73TO.js.gz +0 -0
  227. package/dist/ui/assets/{index-599aeaf7-RUCkgwsg.js → index-599aeaf7-BKmNqoNF.js} +1 -1
  228. package/dist/ui/assets/index-599aeaf7-BKmNqoNF.js.gz +0 -0
  229. package/dist/ui/assets/{index-B3AvIgqP.js → index-BRYNiHLB.js} +345 -349
  230. package/dist/ui/assets/index-BRYNiHLB.js.gz +0 -0
  231. package/dist/ui/assets/{index-QV5-5yA2.js → index-BX6Xmhes.js} +1 -1
  232. package/dist/ui/assets/index-BX6Xmhes.js.gz +0 -0
  233. package/dist/ui/assets/{index-ChmRuj_T.js → index-W1hIq1uU.js} +1 -1
  234. package/dist/ui/assets/index-W1hIq1uU.js.gz +0 -0
  235. package/dist/ui/assets/{index-C-quzPWC.js → index-ctuok0zf.js} +1 -1
  236. package/dist/ui/assets/index-ctuok0zf.js.gz +0 -0
  237. package/dist/ui/assets/{infoDiagram-ER5ION4S-2e4gZVGT.js → infoDiagram-ER5ION4S-CquCuoTH.js} +1 -1
  238. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-B5bgV3GH.js → journeyDiagram-XKPGCS4Q-B_XkufZ8.js} +1 -1
  239. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-B_XkufZ8.js.gz +0 -0
  240. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-Bp-aWRSc.js → kanban-definition-3W4ZIXB7-C2Bo9HkB.js} +1 -1
  241. package/dist/ui/assets/kanban-definition-3W4ZIXB7-C2Bo9HkB.js.gz +0 -0
  242. package/dist/ui/assets/katex-C6wkUDai.css +1 -0
  243. package/dist/ui/assets/{katex-DGRguze2.css.gz → katex-C6wkUDai.css.gz} +0 -0
  244. package/dist/ui/assets/{layout-BH-2XJZq.js → layout-D9A7Uaku.js} +1 -1
  245. package/dist/ui/assets/layout-D9A7Uaku.js.gz +0 -0
  246. package/dist/ui/assets/{linear-DCYXhl_f.js → linear-BJUwJsxE.js} +1 -1
  247. package/dist/ui/assets/linear-BJUwJsxE.js.gz +0 -0
  248. package/dist/ui/assets/{mermaid.core-BAuL6kgQ.js → mermaid.core-DcOEcjcA.js} +5 -5
  249. package/dist/ui/assets/mermaid.core-DcOEcjcA.js.gz +0 -0
  250. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-DpH5N-N0.js → mindmap-definition-VGOIOE7T-BFT1m7BG.js} +1 -1
  251. package/dist/ui/assets/mindmap-definition-VGOIOE7T-BFT1m7BG.js.gz +0 -0
  252. package/dist/ui/assets/{pieDiagram-ADFJNKIX-BB8fBxj1.js → pieDiagram-ADFJNKIX-BFaX1oBV.js} +1 -1
  253. package/dist/ui/assets/pieDiagram-ADFJNKIX-BFaX1oBV.js.gz +0 -0
  254. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-D6oZLdUD.js → quadrantDiagram-AYHSOK5B-DQps5392.js} +1 -1
  255. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DQps5392.js.gz +0 -0
  256. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-B4uGPp8w.js → requirementDiagram-UZGBJVZJ-3EZ5KWEi.js} +1 -1
  257. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-3EZ5KWEi.js.gz +0 -0
  258. package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-MXhIjhme.js → sankeyDiagram-TZEHDZUN-D0qcydqq.js} +1 -1
  259. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-D0qcydqq.js.gz +0 -0
  260. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-Cm53TYug.js → sequenceDiagram-WL72ISMW-BCR5gaaN.js} +1 -1
  261. package/dist/ui/assets/sequenceDiagram-WL72ISMW-BCR5gaaN.js.gz +0 -0
  262. package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BVuxUkj5.js → stateDiagram-FKZM4ZOC-BvX4FLQ9.js} +1 -1
  263. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BvX4FLQ9.js.gz +0 -0
  264. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CxLDvgTF.js +1 -0
  265. package/dist/ui/assets/{timeline-definition-IT6M3QCI-CMypNiEP.js → timeline-definition-IT6M3QCI-_AWp5LJn.js} +1 -1
  266. package/dist/ui/assets/timeline-definition-IT6M3QCI-_AWp5LJn.js.gz +0 -0
  267. package/dist/ui/assets/{treemap-KMMF4GRG-BEtnV3BT.js → treemap-KMMF4GRG-BZ9FBl5-.js} +1 -1
  268. package/dist/ui/assets/treemap-KMMF4GRG-BZ9FBl5-.js.gz +0 -0
  269. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-BnioEYUM.js → xychartDiagram-PRI3JC2R-_wB7yuVd.js} +1 -1
  270. package/dist/ui/assets/xychartDiagram-PRI3JC2R-_wB7yuVd.js.gz +0 -0
  271. package/dist/ui/index.html +1 -1
  272. package/package.json +8 -8
  273. package/dist/ui/assets/_basePickBy-DfxojsEt.js.gz +0 -0
  274. package/dist/ui/assets/_baseUniq-DWFPJOTC.js.gz +0 -0
  275. package/dist/ui/assets/arc-vMZ_XGSI.js.gz +0 -0
  276. package/dist/ui/assets/architectureDiagram-VXUJARFQ-DGpk_uOD.js.gz +0 -0
  277. package/dist/ui/assets/blockDiagram-VD42YOAC-BkRnxc94.js.gz +0 -0
  278. package/dist/ui/assets/channel-B9aI4bYN.js +0 -1
  279. package/dist/ui/assets/chunk-B4BG7PRW-DtkeCZab.js.gz +0 -0
  280. package/dist/ui/assets/chunk-DI55MBZ5-BQ_asW-1.js.gz +0 -0
  281. package/dist/ui/assets/chunk-TZMSLE5B-DlPypnIq.js.gz +0 -0
  282. package/dist/ui/assets/classDiagram-2ON5EDUG-p-68WO4Z.js +0 -1
  283. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-p-68WO4Z.js +0 -1
  284. package/dist/ui/assets/clone-DzK5ogfn.js +0 -1
  285. package/dist/ui/assets/consoleHook-59e792cb-DHYIclEd.js.gz +0 -0
  286. package/dist/ui/assets/cose-bilkent-S5V4N54A-DotJH9qH.js.gz +0 -0
  287. package/dist/ui/assets/dagre-6UL2VRFP-Btssr8QF.js.gz +0 -0
  288. package/dist/ui/assets/diagram-PSM6KHXK-D5_Jkog3.js.gz +0 -0
  289. package/dist/ui/assets/diagram-QEK2KX5R-DlPEVSL5.js.gz +0 -0
  290. package/dist/ui/assets/diagram-S2PKOQOG-CjO1k8aG.js.gz +0 -0
  291. package/dist/ui/assets/erDiagram-Q2GNP2WA-3cO02-K3.js.gz +0 -0
  292. package/dist/ui/assets/flowDiagram-NV44I4VS-CajTpSxI.js.gz +0 -0
  293. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CH16bg-j.js.gz +0 -0
  294. package/dist/ui/assets/graph-IQoZvE3o.js.gz +0 -0
  295. package/dist/ui/assets/index-599aeaf7-RUCkgwsg.js.gz +0 -0
  296. package/dist/ui/assets/index-B3AvIgqP.js.gz +0 -0
  297. package/dist/ui/assets/index-C-quzPWC.js.gz +0 -0
  298. package/dist/ui/assets/index-ChmRuj_T.js.gz +0 -0
  299. package/dist/ui/assets/index-QV5-5yA2.js.gz +0 -0
  300. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-B5bgV3GH.js.gz +0 -0
  301. package/dist/ui/assets/kanban-definition-3W4ZIXB7-Bp-aWRSc.js.gz +0 -0
  302. package/dist/ui/assets/katex-DGRguze2.css +0 -1
  303. package/dist/ui/assets/layout-BH-2XJZq.js.gz +0 -0
  304. package/dist/ui/assets/linear-DCYXhl_f.js.gz +0 -0
  305. package/dist/ui/assets/mermaid.core-BAuL6kgQ.js.gz +0 -0
  306. package/dist/ui/assets/mindmap-definition-VGOIOE7T-DpH5N-N0.js.gz +0 -0
  307. package/dist/ui/assets/pieDiagram-ADFJNKIX-BB8fBxj1.js.gz +0 -0
  308. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-D6oZLdUD.js.gz +0 -0
  309. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-B4uGPp8w.js.gz +0 -0
  310. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-MXhIjhme.js.gz +0 -0
  311. package/dist/ui/assets/sequenceDiagram-WL72ISMW-Cm53TYug.js.gz +0 -0
  312. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BVuxUkj5.js.gz +0 -0
  313. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-8Jeww6Dc.js +0 -1
  314. package/dist/ui/assets/timeline-definition-IT6M3QCI-CMypNiEP.js.gz +0 -0
  315. package/dist/ui/assets/treemap-KMMF4GRG-BEtnV3BT.js.gz +0 -0
  316. package/dist/ui/assets/xychartDiagram-PRI3JC2R-BnioEYUM.js.gz +0 -0
@@ -0,0 +1,79 @@
1
+ import { M as ModelConfigInput, R as ResolvedModelConfig } from '../resolve-config-DTCxuSBx.cjs';
2
+ import { c as AgenticToolName, g as CodexSandboxMode, d as CodexApprovalPolicy, e as CodexNetworkAccess } from '../agentic-tool-BulhIUGb.cjs';
3
+ import { P as PermissionMode, a as Session } from '../session-MNU4BQv4.cjs';
4
+ import { q as User } from '../user-CpfkcV2C.cjs';
5
+ import '../id-CoIbY_uc.cjs';
6
+ import '../context-BpkCELpO.cjs';
7
+
8
+ /**
9
+ * Session creation config resolution
10
+ *
11
+ * Single source of truth for "given a user (and optional overrides), what
12
+ * permission_config / model_config / mcp_server_ids should this new session
13
+ * be stamped with?"
14
+ *
15
+ * This collapses the resolution dance that was duplicated across:
16
+ * - `apps/agor-daemon/src/mcp/tools/sessions.ts` (`agor_sessions_create`)
17
+ * - `apps/agor-daemon/src/mcp/tools/worktrees.ts` (`agor_worktrees_set_zone`)
18
+ * - `apps/agor-daemon/src/services/gateway.ts` (gateway session creation)
19
+ * - `apps/agor-daemon/src/services/sessions.ts` (cross-tool spawn fallback)
20
+ * - `apps/agor-daemon/src/utils/apply-session-config-defaults.ts` (the
21
+ * `before:create` hook, which applies these defaults to ANY caller — UI
22
+ * drag-into-zone, raw REST, etc. — that omits permission/model config)
23
+ *
24
+ * Resolution order (highest priority first):
25
+ * 1. `overrides.*` — explicit caller intent
26
+ * 2. `user.default_agentic_config[tool].*` — user's saved default for this tool
27
+ * 3. Hardcoded `getDefaultPermissionMode(tool)` (permission only) /
28
+ * `undefined` (model)
29
+ *
30
+ * MCP server inheritance (separate axis):
31
+ * 1. `overrides.mcpServerIds` — explicit (incl. empty array = "no MCPs")
32
+ * 2. `worktree.mcp_server_ids` — worktree-level override
33
+ * 3. `user.default_agentic_config[tool].mcpServerIds`
34
+ * 4. `[]`
35
+ */
36
+
37
+ /** Explicit per-call overrides. Each field, when defined, wins over user defaults. */
38
+ interface SessionDefaultsOverrides {
39
+ permissionMode?: PermissionMode;
40
+ modelConfig?: ModelConfigInput;
41
+ codexSandboxMode?: CodexSandboxMode;
42
+ codexApprovalPolicy?: CodexApprovalPolicy;
43
+ codexNetworkAccess?: CodexNetworkAccess;
44
+ /**
45
+ * Explicit MCP server ID list. An empty array means "no MCPs" — does NOT
46
+ * fall through to worktree/user defaults. Pass `undefined` to fall through.
47
+ */
48
+ mcpServerIds?: string[];
49
+ }
50
+ interface ResolveSessionDefaultsArgs {
51
+ agenticTool: AgenticToolName;
52
+ /** User whose `default_agentic_config[tool]` provides the next-priority defaults. */
53
+ user?: Pick<User, 'default_agentic_config'> | null;
54
+ /** Optional worktree for MCP server inheritance (worktree-level overrides user defaults). */
55
+ worktree?: {
56
+ mcp_server_ids?: string[] | null;
57
+ } | null;
58
+ overrides?: SessionDefaultsOverrides;
59
+ /** Override `new Date()` for deterministic tests. */
60
+ now?: Date;
61
+ }
62
+ interface ResolvedSessionDefaults {
63
+ /** Always populated — falls back to `getDefaultPermissionMode(tool)` mapped through `mapPermissionMode`. */
64
+ permission_config: NonNullable<Session['permission_config']>;
65
+ /** Optional — `undefined` when neither overrides nor user defaults specify a model. */
66
+ model_config?: ResolvedModelConfig;
67
+ /** Resolved MCP server list. Empty array means "no MCPs". */
68
+ mcp_server_ids: string[];
69
+ }
70
+ /**
71
+ * Resolve session creation defaults from caller overrides + user defaults.
72
+ *
73
+ * The returned `permission_config` is always populated (using the system
74
+ * fallback when nothing else applies), so callers can persist it directly.
75
+ * `model_config` may be `undefined` when no model has been chosen anywhere.
76
+ */
77
+ declare function resolveSessionDefaults(args: ResolveSessionDefaultsArgs): ResolvedSessionDefaults;
78
+
79
+ export { type ResolveSessionDefaultsArgs, type ResolvedSessionDefaults, type SessionDefaultsOverrides, resolveSessionDefaults };
@@ -0,0 +1,79 @@
1
+ import { M as ModelConfigInput, R as ResolvedModelConfig } from '../resolve-config-BcL-Hv8k.js';
2
+ import { c as AgenticToolName, g as CodexSandboxMode, d as CodexApprovalPolicy, e as CodexNetworkAccess } from '../agentic-tool-cYqsU5i5.js';
3
+ import { P as PermissionMode, a as Session } from '../session-CAfhv1qL.js';
4
+ import { q as User } from '../user-DP-XZMIM.js';
5
+ import '../id-CoIbY_uc.js';
6
+ import '../context-BpkCELpO.js';
7
+
8
+ /**
9
+ * Session creation config resolution
10
+ *
11
+ * Single source of truth for "given a user (and optional overrides), what
12
+ * permission_config / model_config / mcp_server_ids should this new session
13
+ * be stamped with?"
14
+ *
15
+ * This collapses the resolution dance that was duplicated across:
16
+ * - `apps/agor-daemon/src/mcp/tools/sessions.ts` (`agor_sessions_create`)
17
+ * - `apps/agor-daemon/src/mcp/tools/worktrees.ts` (`agor_worktrees_set_zone`)
18
+ * - `apps/agor-daemon/src/services/gateway.ts` (gateway session creation)
19
+ * - `apps/agor-daemon/src/services/sessions.ts` (cross-tool spawn fallback)
20
+ * - `apps/agor-daemon/src/utils/apply-session-config-defaults.ts` (the
21
+ * `before:create` hook, which applies these defaults to ANY caller — UI
22
+ * drag-into-zone, raw REST, etc. — that omits permission/model config)
23
+ *
24
+ * Resolution order (highest priority first):
25
+ * 1. `overrides.*` — explicit caller intent
26
+ * 2. `user.default_agentic_config[tool].*` — user's saved default for this tool
27
+ * 3. Hardcoded `getDefaultPermissionMode(tool)` (permission only) /
28
+ * `undefined` (model)
29
+ *
30
+ * MCP server inheritance (separate axis):
31
+ * 1. `overrides.mcpServerIds` — explicit (incl. empty array = "no MCPs")
32
+ * 2. `worktree.mcp_server_ids` — worktree-level override
33
+ * 3. `user.default_agentic_config[tool].mcpServerIds`
34
+ * 4. `[]`
35
+ */
36
+
37
+ /** Explicit per-call overrides. Each field, when defined, wins over user defaults. */
38
+ interface SessionDefaultsOverrides {
39
+ permissionMode?: PermissionMode;
40
+ modelConfig?: ModelConfigInput;
41
+ codexSandboxMode?: CodexSandboxMode;
42
+ codexApprovalPolicy?: CodexApprovalPolicy;
43
+ codexNetworkAccess?: CodexNetworkAccess;
44
+ /**
45
+ * Explicit MCP server ID list. An empty array means "no MCPs" — does NOT
46
+ * fall through to worktree/user defaults. Pass `undefined` to fall through.
47
+ */
48
+ mcpServerIds?: string[];
49
+ }
50
+ interface ResolveSessionDefaultsArgs {
51
+ agenticTool: AgenticToolName;
52
+ /** User whose `default_agentic_config[tool]` provides the next-priority defaults. */
53
+ user?: Pick<User, 'default_agentic_config'> | null;
54
+ /** Optional worktree for MCP server inheritance (worktree-level overrides user defaults). */
55
+ worktree?: {
56
+ mcp_server_ids?: string[] | null;
57
+ } | null;
58
+ overrides?: SessionDefaultsOverrides;
59
+ /** Override `new Date()` for deterministic tests. */
60
+ now?: Date;
61
+ }
62
+ interface ResolvedSessionDefaults {
63
+ /** Always populated — falls back to `getDefaultPermissionMode(tool)` mapped through `mapPermissionMode`. */
64
+ permission_config: NonNullable<Session['permission_config']>;
65
+ /** Optional — `undefined` when neither overrides nor user defaults specify a model. */
66
+ model_config?: ResolvedModelConfig;
67
+ /** Resolved MCP server list. Empty array means "no MCPs". */
68
+ mcp_server_ids: string[];
69
+ }
70
+ /**
71
+ * Resolve session creation defaults from caller overrides + user defaults.
72
+ *
73
+ * The returned `permission_config` is always populated (using the system
74
+ * fallback when nothing else applies), so callers can persist it directly.
75
+ * `model_config` may be `undefined` when no model has been chosen anywhere.
76
+ */
77
+ declare function resolveSessionDefaults(args: ResolveSessionDefaultsArgs): ResolvedSessionDefaults;
78
+
79
+ export { type ResolveSessionDefaultsArgs, type ResolvedSessionDefaults, type SessionDefaultsOverrides, resolveSessionDefaults };
@@ -0,0 +1,157 @@
1
+ // src/models/resolve-config.ts
2
+ function resolveModelConfig(input, opts) {
3
+ if (!input?.model) return void 0;
4
+ return {
5
+ mode: input.mode ?? "alias",
6
+ model: input.model,
7
+ updated_at: (opts?.now ?? /* @__PURE__ */ new Date()).toISOString(),
8
+ ...input.effort !== void 0 && { effort: input.effort },
9
+ ...input.provider !== void 0 && { provider: input.provider }
10
+ };
11
+ }
12
+
13
+ // src/types/session.ts
14
+ function getDefaultPermissionMode(agenticTool) {
15
+ switch (agenticTool) {
16
+ case "gemini":
17
+ return "autoEdit";
18
+ // Native Gemini SDK mode
19
+ case "codex":
20
+ return "auto";
21
+ // Native Codex SDK mode
22
+ case "opencode":
23
+ return "autoEdit";
24
+ // OpenCode auto-approves, similar to Gemini
25
+ case "copilot":
26
+ return "acceptEdits";
27
+ // Copilot uses same semantics as Claude Code
28
+ default:
29
+ return "acceptEdits";
30
+ }
31
+ }
32
+
33
+ // src/utils/permission-mode-mapper.ts
34
+ function mapPermissionMode(mode, agenticTool) {
35
+ switch (agenticTool) {
36
+ case "claude-code":
37
+ case "copilot":
38
+ switch (mode) {
39
+ // Native Claude modes - pass through
40
+ case "default":
41
+ case "acceptEdits":
42
+ case "bypassPermissions":
43
+ case "plan":
44
+ case "dontAsk":
45
+ return mode;
46
+ // Gemini modes → Claude equivalents
47
+ case "autoEdit":
48
+ return "acceptEdits";
49
+ case "yolo":
50
+ return "bypassPermissions";
51
+ // Codex modes → Claude equivalents
52
+ case "ask":
53
+ return "default";
54
+ case "auto":
55
+ return "acceptEdits";
56
+ case "on-failure":
57
+ return "acceptEdits";
58
+ case "allow-all":
59
+ return "bypassPermissions";
60
+ default:
61
+ return "acceptEdits";
62
+ }
63
+ case "gemini":
64
+ case "opencode":
65
+ switch (mode) {
66
+ // Native Gemini modes - pass through
67
+ case "default":
68
+ case "autoEdit":
69
+ case "yolo":
70
+ return mode;
71
+ // Claude modes → Gemini equivalents
72
+ case "acceptEdits":
73
+ return "autoEdit";
74
+ case "bypassPermissions":
75
+ case "dontAsk":
76
+ return "yolo";
77
+ case "plan":
78
+ return "default";
79
+ // Plan mode → restrictive
80
+ // Codex modes → Gemini equivalents
81
+ case "ask":
82
+ return "default";
83
+ case "auto":
84
+ return "autoEdit";
85
+ case "on-failure":
86
+ return "autoEdit";
87
+ case "allow-all":
88
+ return "yolo";
89
+ default:
90
+ return "autoEdit";
91
+ }
92
+ case "codex":
93
+ switch (mode) {
94
+ // Native Codex modes - pass through
95
+ case "ask":
96
+ case "auto":
97
+ case "on-failure":
98
+ case "allow-all":
99
+ return mode;
100
+ // Claude modes → Codex equivalents
101
+ case "default":
102
+ return "ask";
103
+ case "acceptEdits":
104
+ return "auto";
105
+ case "bypassPermissions":
106
+ case "dontAsk":
107
+ return "allow-all";
108
+ case "plan":
109
+ return "ask";
110
+ // Gemini modes → Codex equivalents
111
+ case "autoEdit":
112
+ return "auto";
113
+ case "yolo":
114
+ return "allow-all";
115
+ default:
116
+ return "auto";
117
+ }
118
+ default:
119
+ return mode;
120
+ }
121
+ }
122
+
123
+ // src/sessions/resolve-session-defaults.ts
124
+ function resolveSessionDefaults(args) {
125
+ const { agenticTool, user, worktree, overrides, now } = args;
126
+ const userToolDefaults = user?.default_agentic_config?.[agenticTool];
127
+ const requestedMode = overrides?.permissionMode ?? userToolDefaults?.permissionMode ?? getDefaultPermissionMode(agenticTool);
128
+ const permissionMode = mapPermissionMode(requestedMode, agenticTool);
129
+ const permission_config = {
130
+ mode: permissionMode
131
+ };
132
+ if (agenticTool === "codex") {
133
+ const sandboxMode = overrides?.codexSandboxMode ?? userToolDefaults?.codexSandboxMode;
134
+ const approvalPolicy = overrides?.codexApprovalPolicy ?? userToolDefaults?.codexApprovalPolicy;
135
+ const networkAccess = overrides?.codexNetworkAccess ?? userToolDefaults?.codexNetworkAccess;
136
+ if (sandboxMode && approvalPolicy) {
137
+ permission_config.codex = {
138
+ sandboxMode,
139
+ approvalPolicy,
140
+ ...networkAccess !== void 0 && { networkAccess }
141
+ };
142
+ }
143
+ }
144
+ const model_config = resolveModelConfig(overrides?.modelConfig, { now }) ?? resolveModelConfig(userToolDefaults?.modelConfig, { now });
145
+ let mcp_server_ids;
146
+ if (overrides?.mcpServerIds !== void 0) {
147
+ mcp_server_ids = overrides.mcpServerIds;
148
+ } else if (worktree?.mcp_server_ids && worktree.mcp_server_ids.length > 0) {
149
+ mcp_server_ids = worktree.mcp_server_ids;
150
+ } else {
151
+ mcp_server_ids = userToolDefaults?.mcpServerIds ?? [];
152
+ }
153
+ return { permission_config, model_config, mcp_server_ids };
154
+ }
155
+ export {
156
+ resolveSessionDefaults
157
+ };
@@ -1,4 +1,5 @@
1
1
  import { T as TaskID, S as SessionID } from './id-CoIbY_uc.js';
2
+ import { f as MessageSource } from './message-DZa8g0s0.js';
2
3
  import { b as ContextFilePath } from './context-BpkCELpO.js';
3
4
 
4
5
  /**
@@ -57,6 +58,7 @@ interface Report {
57
58
  }
58
59
 
59
60
  declare const TaskStatus: {
61
+ readonly QUEUED: "queued";
60
62
  readonly CREATED: "created";
61
63
  readonly RUNNING: "running";
62
64
  readonly STOPPING: "stopping";
@@ -68,6 +70,31 @@ declare const TaskStatus: {
68
70
  readonly STOPPED: "stopped";
69
71
  };
70
72
  type TaskStatus = (typeof TaskStatus)[keyof typeof TaskStatus];
73
+ /**
74
+ * Structured metadata attached to a task. All fields are optional, but the
75
+ * ones that are present are load-bearing — typing them here prevents drift
76
+ * between the daemon (which writes them) and the UI/services that read them.
77
+ *
78
+ * - `is_agor_callback`: marks a task whose prompt was synthesized by the
79
+ * callback machinery (child session finished → parent gets a system
80
+ * message). Drives both auth attribution and UI styling.
81
+ * - `source`: where the prompt entered the system. Copied onto the
82
+ * user-message row so message-level provenance survives the queue → run
83
+ * transition.
84
+ * - `queued_by_user_id`: who scheduled the task (distinct from
85
+ * `task.created_by` for callback tasks, where `created_by` is the
86
+ * callback owner and `queued_by_user_id` is set to the same value but
87
+ * the field carries semantic intent rather than ownership).
88
+ * - `child_session_id` / `child_task_id`: lineage breadcrumbs for callback
89
+ * tasks — the child session/task whose completion produced this prompt.
90
+ */
91
+ interface TaskMetadata {
92
+ is_agor_callback?: boolean;
93
+ source?: MessageSource;
94
+ queued_by_user_id?: string;
95
+ child_session_id?: SessionID;
96
+ child_task_id?: TaskID;
97
+ }
71
98
  /**
72
99
  * A task reached a terminal state *on its own* (finished or hit an error),
73
100
  * as opposed to being user-stopped/timed-out/cancelled. Used e.g. to gate
@@ -83,9 +110,20 @@ interface Task {
83
110
  created_by: string;
84
111
  /** Original user prompt (can be multi-line) */
85
112
  full_prompt: string;
86
- /** Optional: LLM-generated short summary */
87
- description?: string;
88
113
  status: TaskStatus;
114
+ /**
115
+ * Queue position when status is QUEUED. Lower values drain first.
116
+ * Undefined for non-queued tasks.
117
+ */
118
+ queue_position?: number;
119
+ /**
120
+ * Structured metadata for the task. Fields here are load-bearing for
121
+ * auth, lineage, and UI styling — see the per-field comments. When a
122
+ * QUEUED task transitions to RUNNING and a user-message row is written,
123
+ * `is_agor_callback` and `source` are copied onto the new message.metadata
124
+ * so the UI styling for callbacks survives the queue → run hop.
125
+ */
126
+ metadata?: TaskMetadata;
89
127
  message_range: {
90
128
  start_index: number;
91
129
  end_index: number;
@@ -153,4 +191,4 @@ interface Task {
153
191
  completed_at?: string;
154
192
  }
155
193
 
156
- export { type Report as R, type Task as T, type ReportPath as a, type ReportTemplate as b, TaskStatus as c, isNaturalCompletion as i };
194
+ export { type Report as R, type Task as T, type ReportPath as a, type ReportTemplate as b, type TaskMetadata as c, TaskStatus as d, isNaturalCompletion as i };
@@ -1,4 +1,5 @@
1
1
  import { T as TaskID, S as SessionID } from './id-CoIbY_uc.cjs';
2
+ import { f as MessageSource } from './message-CSWOsdcZ.cjs';
2
3
  import { b as ContextFilePath } from './context-BpkCELpO.cjs';
3
4
 
4
5
  /**
@@ -57,6 +58,7 @@ interface Report {
57
58
  }
58
59
 
59
60
  declare const TaskStatus: {
61
+ readonly QUEUED: "queued";
60
62
  readonly CREATED: "created";
61
63
  readonly RUNNING: "running";
62
64
  readonly STOPPING: "stopping";
@@ -68,6 +70,31 @@ declare const TaskStatus: {
68
70
  readonly STOPPED: "stopped";
69
71
  };
70
72
  type TaskStatus = (typeof TaskStatus)[keyof typeof TaskStatus];
73
+ /**
74
+ * Structured metadata attached to a task. All fields are optional, but the
75
+ * ones that are present are load-bearing — typing them here prevents drift
76
+ * between the daemon (which writes them) and the UI/services that read them.
77
+ *
78
+ * - `is_agor_callback`: marks a task whose prompt was synthesized by the
79
+ * callback machinery (child session finished → parent gets a system
80
+ * message). Drives both auth attribution and UI styling.
81
+ * - `source`: where the prompt entered the system. Copied onto the
82
+ * user-message row so message-level provenance survives the queue → run
83
+ * transition.
84
+ * - `queued_by_user_id`: who scheduled the task (distinct from
85
+ * `task.created_by` for callback tasks, where `created_by` is the
86
+ * callback owner and `queued_by_user_id` is set to the same value but
87
+ * the field carries semantic intent rather than ownership).
88
+ * - `child_session_id` / `child_task_id`: lineage breadcrumbs for callback
89
+ * tasks — the child session/task whose completion produced this prompt.
90
+ */
91
+ interface TaskMetadata {
92
+ is_agor_callback?: boolean;
93
+ source?: MessageSource;
94
+ queued_by_user_id?: string;
95
+ child_session_id?: SessionID;
96
+ child_task_id?: TaskID;
97
+ }
71
98
  /**
72
99
  * A task reached a terminal state *on its own* (finished or hit an error),
73
100
  * as opposed to being user-stopped/timed-out/cancelled. Used e.g. to gate
@@ -83,9 +110,20 @@ interface Task {
83
110
  created_by: string;
84
111
  /** Original user prompt (can be multi-line) */
85
112
  full_prompt: string;
86
- /** Optional: LLM-generated short summary */
87
- description?: string;
88
113
  status: TaskStatus;
114
+ /**
115
+ * Queue position when status is QUEUED. Lower values drain first.
116
+ * Undefined for non-queued tasks.
117
+ */
118
+ queue_position?: number;
119
+ /**
120
+ * Structured metadata for the task. Fields here are load-bearing for
121
+ * auth, lineage, and UI styling — see the per-field comments. When a
122
+ * QUEUED task transitions to RUNNING and a user-message row is written,
123
+ * `is_agor_callback` and `source` are copied onto the new message.metadata
124
+ * so the UI styling for callbacks survives the queue → run hop.
125
+ */
126
+ metadata?: TaskMetadata;
89
127
  message_range: {
90
128
  start_index: number;
91
129
  end_index: number;
@@ -153,4 +191,4 @@ interface Task {
153
191
  completed_at?: string;
154
192
  }
155
193
 
156
- export { type Report as R, type Task as T, type ReportPath as a, type ReportTemplate as b, TaskStatus as c, isNaturalCompletion as i };
194
+ export { type Report as R, type Task as T, type ReportPath as a, type ReportTemplate as b, type TaskMetadata as c, TaskStatus as d, isNaturalCompletion as i };
@@ -1,7 +1,7 @@
1
1
  import { S as SessionID, W as WorktreeID, e as UUID } from '../id-CoIbY_uc.cjs';
2
2
  import { h as Worktree, R as Repo } from '../repo-Ckl-vaAk.cjs';
3
3
  import { a as Session } from '../session-MNU4BQv4.cjs';
4
- import { g as User } from '../user-DkNdeFoz.cjs';
4
+ import { q as User } from '../user-CpfkcV2C.cjs';
5
5
  import '../agentic-tool-BulhIUGb.cjs';
6
6
  import '../context-BpkCELpO.cjs';
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { S as SessionID, W as WorktreeID, e as UUID } from '../id-CoIbY_uc.js';
2
2
  import { h as Worktree, R as Repo } from '../repo-84E0A2gV.js';
3
3
  import { a as Session } from '../session-CAfhv1qL.js';
4
- import { g as User } from '../user-BfVWBmXA.js';
4
+ import { q as User } from '../user-DP-XZMIM.js';
5
5
  import '../agentic-tool-cYqsU5i5.js';
6
6
  import '../context-BpkCELpO.js';
7
7