agor-live 0.12.2 → 0.12.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 (372) hide show
  1. package/dist/core/api/index.d.cts +4 -4
  2. package/dist/core/api/index.d.ts +4 -4
  3. package/dist/core/{board-DCNkcsyf.d.cts → board-ByCag4EG.d.cts} +8 -1
  4. package/dist/core/{board-C-PU8jok.d.ts → board-CZuyMRpr.d.ts} +8 -1
  5. package/dist/core/claude/index.cjs +46 -5
  6. package/dist/core/claude/index.js +51 -21
  7. package/dist/core/{client-CGO13BG6.d.ts → client-BoLj-jqT.d.ts} +30 -5
  8. package/dist/core/{client-DKbFqX_X.d.cts → client-gnSCmSyL.d.cts} +30 -5
  9. package/dist/core/config/browser.d.cts +1 -1
  10. package/dist/core/config/browser.d.ts +1 -1
  11. package/dist/core/config/index.cjs +60 -4
  12. package/dist/core/config/index.d.cts +6 -5
  13. package/dist/core/config/index.d.ts +6 -5
  14. package/dist/core/config/index.js +64 -20
  15. package/dist/core/{config-manager-DGBdhxtZ.d.ts → config-manager-BLDGbZHT.d.ts} +16 -2
  16. package/dist/core/{config-manager-sCgziLkz.d.cts → config-manager-CsBk-Rh2.d.cts} +16 -2
  17. package/dist/core/db/index.cjs +332 -60
  18. package/dist/core/db/index.d.cts +33 -7
  19. package/dist/core/db/index.d.ts +33 -7
  20. package/dist/core/db/index.js +338 -77
  21. package/dist/core/drizzle/postgres/meta/_journal.json +1 -1
  22. package/dist/core/drizzle/sqlite/meta/_journal.json +1 -1
  23. package/dist/core/{feathers-B0zjReEk.d.ts → feathers-CYMJeMWB.d.ts} +1 -1
  24. package/dist/core/{feathers-C1uChqXy.d.cts → feathers-Cyk1lpAM.d.cts} +1 -1
  25. package/dist/core/gateway/index.cjs +137 -12
  26. package/dist/core/gateway/index.d.cts +22 -6
  27. package/dist/core/gateway/index.d.ts +22 -6
  28. package/dist/core/gateway/index.js +137 -12
  29. package/dist/core/{gateway-Dy9fVyiS.d.ts → gateway-B4CaePYV.d.ts} +2 -2
  30. package/dist/core/{gateway-DGNtjRnd.d.cts → gateway-C2NOdrxu.d.cts} +2 -2
  31. package/dist/core/git/index.d.cts +2 -2
  32. package/dist/core/git/index.d.ts +2 -2
  33. package/dist/core/index.cjs +226 -48
  34. package/dist/core/index.d.cts +8 -8
  35. package/dist/core/index.d.ts +8 -8
  36. package/dist/core/index.js +230 -64
  37. package/dist/core/mcp/index.cjs +24 -2
  38. package/dist/core/mcp/index.js +26 -4
  39. package/dist/core/seed/index.cjs +83 -13
  40. package/dist/core/seed/index.js +88 -29
  41. package/dist/core/{session-Bt9i9089.d.cts → session-BJbTzw3y.d.cts} +17 -1
  42. package/dist/core/{session-Da9rf6n5.d.ts → session-DLVkt-jY.d.ts} +17 -1
  43. package/dist/core/templates/session-context.d.cts +1 -1
  44. package/dist/core/templates/session-context.d.ts +1 -1
  45. package/dist/core/types/index.d.cts +6 -6
  46. package/dist/core/types/index.d.ts +6 -6
  47. package/dist/core/{types-D_wAaaE3.d.cts → types-Ddri21rw.d.cts} +18 -0
  48. package/dist/core/{types-D_wAaaE3.d.ts → types-Ddri21rw.d.ts} +18 -0
  49. package/dist/core/unix/index.cjs +63 -6
  50. package/dist/core/unix/index.d.cts +4 -3
  51. package/dist/core/unix/index.d.ts +4 -3
  52. package/dist/core/unix/index.js +68 -22
  53. package/dist/core/{user-DT1Qzfep.d.ts → user-B77oCF14.d.ts} +1 -1
  54. package/dist/core/{user-C5id0Zhj.d.cts → user-LBRon9n1.d.cts} +1 -1
  55. package/dist/core/utils/permission-mode-mapper.d.cts +1 -1
  56. package/dist/core/utils/permission-mode-mapper.d.ts +1 -1
  57. package/dist/core/utils/url.cjs +22 -0
  58. package/dist/core/utils/url.d.cts +45 -1
  59. package/dist/core/utils/url.d.ts +45 -1
  60. package/dist/core/utils/url.js +18 -0
  61. package/dist/daemon/index.js +168 -38
  62. package/dist/daemon/mcp/routes.js +5 -5
  63. package/dist/daemon/services/gateway.d.ts +9 -0
  64. package/dist/daemon/services/gateway.js +73 -6
  65. package/dist/daemon/services/repos.js +1 -0
  66. package/dist/daemon/services/thread-session-map.d.ts +6 -0
  67. package/dist/daemon/services/thread-session-map.js +9 -0
  68. package/dist/executor/cli.d.ts +0 -0
  69. package/dist/executor/cli.d.ts.map +0 -0
  70. package/dist/executor/cli.js +0 -0
  71. package/dist/executor/commands/git.d.ts +0 -0
  72. package/dist/executor/commands/git.d.ts.map +1 -1
  73. package/dist/executor/commands/git.js +3 -2
  74. package/dist/executor/commands/index.d.ts +0 -0
  75. package/dist/executor/commands/index.d.ts.map +0 -0
  76. package/dist/executor/commands/index.js +0 -0
  77. package/dist/executor/commands/unix.d.ts +0 -0
  78. package/dist/executor/commands/unix.d.ts.map +0 -0
  79. package/dist/executor/commands/unix.js +0 -0
  80. package/dist/executor/commands/zellij.d.ts +0 -0
  81. package/dist/executor/commands/zellij.d.ts.map +0 -0
  82. package/dist/executor/commands/zellij.js +0 -0
  83. package/dist/executor/config.d.ts +0 -0
  84. package/dist/executor/config.d.ts.map +0 -0
  85. package/dist/executor/config.js +0 -0
  86. package/dist/executor/db/feathers-repositories.d.ts +0 -0
  87. package/dist/executor/db/feathers-repositories.d.ts.map +0 -0
  88. package/dist/executor/db/feathers-repositories.js +0 -0
  89. package/dist/executor/handlers/sdk/base-executor.d.ts +0 -0
  90. package/dist/executor/handlers/sdk/base-executor.d.ts.map +0 -0
  91. package/dist/executor/handlers/sdk/base-executor.js +0 -0
  92. package/dist/executor/handlers/sdk/claude.d.ts +0 -0
  93. package/dist/executor/handlers/sdk/claude.d.ts.map +0 -0
  94. package/dist/executor/handlers/sdk/claude.js +0 -0
  95. package/dist/executor/handlers/sdk/codex.d.ts +0 -0
  96. package/dist/executor/handlers/sdk/codex.d.ts.map +0 -0
  97. package/dist/executor/handlers/sdk/codex.js +0 -0
  98. package/dist/executor/handlers/sdk/gemini.d.ts +0 -0
  99. package/dist/executor/handlers/sdk/gemini.d.ts.map +0 -0
  100. package/dist/executor/handlers/sdk/gemini.js +0 -0
  101. package/dist/executor/handlers/sdk/opencode.d.ts +0 -0
  102. package/dist/executor/handlers/sdk/opencode.d.ts.map +0 -0
  103. package/dist/executor/handlers/sdk/opencode.js +0 -0
  104. package/dist/executor/handlers/sdk/tool-registry.d.ts +0 -0
  105. package/dist/executor/handlers/sdk/tool-registry.d.ts.map +0 -0
  106. package/dist/executor/handlers/sdk/tool-registry.js +0 -0
  107. package/dist/executor/index.d.ts +0 -0
  108. package/dist/executor/index.d.ts.map +0 -0
  109. package/dist/executor/index.js +0 -0
  110. package/dist/executor/payload-types.d.ts +8 -0
  111. package/dist/executor/payload-types.d.ts.map +1 -1
  112. package/dist/executor/payload-types.js +2 -0
  113. package/dist/executor/permissions/permission-manager.d.ts +0 -0
  114. package/dist/executor/permissions/permission-manager.d.ts.map +0 -0
  115. package/dist/executor/permissions/permission-manager.js +0 -0
  116. package/dist/executor/permissions/permission-service.d.ts +0 -0
  117. package/dist/executor/permissions/permission-service.d.ts.map +0 -0
  118. package/dist/executor/permissions/permission-service.js +0 -0
  119. package/dist/executor/sdk-handlers/base/index.d.ts +0 -0
  120. package/dist/executor/sdk-handlers/base/index.d.ts.map +0 -0
  121. package/dist/executor/sdk-handlers/base/index.js +0 -0
  122. package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts +0 -0
  123. package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +0 -0
  124. package/dist/executor/sdk-handlers/base/mcp-scoping.js +0 -0
  125. package/dist/executor/sdk-handlers/base/normalizer.interface.d.ts +0 -0
  126. package/dist/executor/sdk-handlers/base/normalizer.interface.d.ts.map +0 -0
  127. package/dist/executor/sdk-handlers/base/normalizer.interface.js +0 -0
  128. package/dist/executor/sdk-handlers/base/tool.interface.d.ts +0 -0
  129. package/dist/executor/sdk-handlers/base/tool.interface.d.ts.map +0 -0
  130. package/dist/executor/sdk-handlers/base/tool.interface.js +0 -0
  131. package/dist/executor/sdk-handlers/base/types.d.ts +0 -0
  132. package/dist/executor/sdk-handlers/base/types.d.ts.map +0 -0
  133. package/dist/executor/sdk-handlers/base/types.js +0 -0
  134. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +0 -0
  135. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +0 -0
  136. package/dist/executor/sdk-handlers/claude/claude-tool.js +0 -0
  137. package/dist/executor/sdk-handlers/claude/import/load-session.d.ts +0 -0
  138. package/dist/executor/sdk-handlers/claude/import/load-session.d.ts.map +0 -0
  139. package/dist/executor/sdk-handlers/claude/import/load-session.js +0 -0
  140. package/dist/executor/sdk-handlers/claude/import/message-converter.d.ts +0 -0
  141. package/dist/executor/sdk-handlers/claude/import/message-converter.d.ts.map +0 -0
  142. package/dist/executor/sdk-handlers/claude/import/message-converter.js +0 -0
  143. package/dist/executor/sdk-handlers/claude/import/task-extractor.d.ts +0 -0
  144. package/dist/executor/sdk-handlers/claude/import/task-extractor.d.ts.map +0 -0
  145. package/dist/executor/sdk-handlers/claude/import/task-extractor.js +0 -0
  146. package/dist/executor/sdk-handlers/claude/import/transcript-parser.d.ts +0 -0
  147. package/dist/executor/sdk-handlers/claude/import/transcript-parser.d.ts.map +0 -0
  148. package/dist/executor/sdk-handlers/claude/import/transcript-parser.js +0 -0
  149. package/dist/executor/sdk-handlers/claude/index.d.ts +0 -0
  150. package/dist/executor/sdk-handlers/claude/index.d.ts.map +0 -0
  151. package/dist/executor/sdk-handlers/claude/index.js +0 -0
  152. package/dist/executor/sdk-handlers/claude/message-builder.d.ts +0 -0
  153. package/dist/executor/sdk-handlers/claude/message-builder.d.ts.map +0 -0
  154. package/dist/executor/sdk-handlers/claude/message-builder.js +0 -0
  155. package/dist/executor/sdk-handlers/claude/message-processor.d.ts +0 -0
  156. package/dist/executor/sdk-handlers/claude/message-processor.d.ts.map +0 -0
  157. package/dist/executor/sdk-handlers/claude/message-processor.js +0 -0
  158. package/dist/executor/sdk-handlers/claude/models.d.ts +0 -0
  159. package/dist/executor/sdk-handlers/claude/models.d.ts.map +0 -0
  160. package/dist/executor/sdk-handlers/claude/models.js +0 -0
  161. package/dist/executor/sdk-handlers/claude/normalizer.d.ts +0 -0
  162. package/dist/executor/sdk-handlers/claude/normalizer.d.ts.map +0 -0
  163. package/dist/executor/sdk-handlers/claude/normalizer.js +0 -0
  164. package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.d.ts +0 -0
  165. package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.d.ts.map +0 -0
  166. package/dist/executor/sdk-handlers/claude/permissions/permission-hooks.js +0 -0
  167. package/dist/executor/sdk-handlers/claude/prompt-service.d.ts +0 -0
  168. package/dist/executor/sdk-handlers/claude/prompt-service.d.ts.map +0 -0
  169. package/dist/executor/sdk-handlers/claude/prompt-service.js +0 -0
  170. package/dist/executor/sdk-handlers/claude/query-builder.d.ts +0 -0
  171. package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +0 -0
  172. package/dist/executor/sdk-handlers/claude/query-builder.js +0 -0
  173. package/dist/executor/sdk-handlers/claude/safe-message-service.d.ts +0 -0
  174. package/dist/executor/sdk-handlers/claude/safe-message-service.d.ts.map +0 -0
  175. package/dist/executor/sdk-handlers/claude/safe-message-service.js +0 -0
  176. package/dist/executor/sdk-handlers/claude/session-context.d.ts +0 -0
  177. package/dist/executor/sdk-handlers/claude/session-context.d.ts.map +0 -0
  178. package/dist/executor/sdk-handlers/claude/session-context.js +0 -0
  179. package/dist/executor/sdk-handlers/claude/thinking-detector.d.ts +0 -0
  180. package/dist/executor/sdk-handlers/claude/thinking-detector.d.ts.map +0 -0
  181. package/dist/executor/sdk-handlers/claude/thinking-detector.js +0 -0
  182. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +0 -0
  183. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +0 -0
  184. package/dist/executor/sdk-handlers/codex/codex-tool.js +0 -0
  185. package/dist/executor/sdk-handlers/codex/index.d.ts +0 -0
  186. package/dist/executor/sdk-handlers/codex/index.d.ts.map +0 -0
  187. package/dist/executor/sdk-handlers/codex/index.js +0 -0
  188. package/dist/executor/sdk-handlers/codex/models.d.ts +0 -0
  189. package/dist/executor/sdk-handlers/codex/models.d.ts.map +0 -0
  190. package/dist/executor/sdk-handlers/codex/models.js +0 -0
  191. package/dist/executor/sdk-handlers/codex/normalizer.d.ts +0 -0
  192. package/dist/executor/sdk-handlers/codex/normalizer.d.ts.map +0 -0
  193. package/dist/executor/sdk-handlers/codex/normalizer.js +0 -0
  194. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +0 -0
  195. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +0 -0
  196. package/dist/executor/sdk-handlers/codex/prompt-service.js +0 -0
  197. package/dist/executor/sdk-handlers/codex/usage.d.ts +0 -0
  198. package/dist/executor/sdk-handlers/codex/usage.d.ts.map +0 -0
  199. package/dist/executor/sdk-handlers/codex/usage.js +0 -0
  200. package/dist/executor/sdk-handlers/gemini/conversation-converter.d.ts +0 -0
  201. package/dist/executor/sdk-handlers/gemini/conversation-converter.d.ts.map +0 -0
  202. package/dist/executor/sdk-handlers/gemini/conversation-converter.js +0 -0
  203. package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +0 -0
  204. package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +0 -0
  205. package/dist/executor/sdk-handlers/gemini/gemini-tool.js +0 -0
  206. package/dist/executor/sdk-handlers/gemini/index.d.ts +0 -0
  207. package/dist/executor/sdk-handlers/gemini/index.d.ts.map +0 -0
  208. package/dist/executor/sdk-handlers/gemini/index.js +0 -0
  209. package/dist/executor/sdk-handlers/gemini/models.d.ts +0 -0
  210. package/dist/executor/sdk-handlers/gemini/models.d.ts.map +0 -0
  211. package/dist/executor/sdk-handlers/gemini/models.js +0 -0
  212. package/dist/executor/sdk-handlers/gemini/normalizer.d.ts +0 -0
  213. package/dist/executor/sdk-handlers/gemini/normalizer.d.ts.map +0 -0
  214. package/dist/executor/sdk-handlers/gemini/normalizer.js +0 -0
  215. package/dist/executor/sdk-handlers/gemini/permission-mapper.d.ts +0 -0
  216. package/dist/executor/sdk-handlers/gemini/permission-mapper.d.ts.map +0 -0
  217. package/dist/executor/sdk-handlers/gemini/permission-mapper.js +0 -0
  218. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +0 -0
  219. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +0 -0
  220. package/dist/executor/sdk-handlers/gemini/prompt-service.js +0 -0
  221. package/dist/executor/sdk-handlers/gemini/usage.d.ts +0 -0
  222. package/dist/executor/sdk-handlers/gemini/usage.d.ts.map +0 -0
  223. package/dist/executor/sdk-handlers/gemini/usage.js +0 -0
  224. package/dist/executor/sdk-handlers/models.d.ts +0 -0
  225. package/dist/executor/sdk-handlers/models.d.ts.map +0 -0
  226. package/dist/executor/sdk-handlers/models.js +0 -0
  227. package/dist/executor/sdk-handlers/normalizer-factory.d.ts +0 -0
  228. package/dist/executor/sdk-handlers/normalizer-factory.d.ts.map +0 -0
  229. package/dist/executor/sdk-handlers/normalizer-factory.js +0 -0
  230. package/dist/executor/sdk-handlers/opencode/index.d.ts +0 -0
  231. package/dist/executor/sdk-handlers/opencode/index.d.ts.map +0 -0
  232. package/dist/executor/sdk-handlers/opencode/index.js +0 -0
  233. package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts +0 -0
  234. package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts.map +0 -0
  235. package/dist/executor/sdk-handlers/opencode/opencode-tool.js +0 -0
  236. package/dist/executor/services/feathers-client.d.ts +0 -0
  237. package/dist/executor/services/feathers-client.d.ts.map +0 -0
  238. package/dist/executor/services/feathers-client.js +0 -0
  239. package/dist/executor/types/sdk-response.d.ts +0 -0
  240. package/dist/executor/types/sdk-response.d.ts.map +0 -0
  241. package/dist/executor/types/sdk-response.js +0 -0
  242. package/dist/executor/types/token-usage.d.ts +0 -0
  243. package/dist/executor/types/token-usage.d.ts.map +0 -0
  244. package/dist/executor/types/token-usage.js +0 -0
  245. package/dist/executor/types.d.ts +0 -0
  246. package/dist/executor/types.d.ts.map +0 -0
  247. package/dist/executor/types.js +0 -0
  248. package/dist/ui/assets/{_basePickBy-a0JoJgXO.js → _basePickBy-DM-YlwQP.js} +1 -1
  249. package/dist/ui/assets/_basePickBy-DM-YlwQP.js.gz +0 -0
  250. package/dist/ui/assets/{_baseUniq-IFulW561.js → _baseUniq-w9wJK0j5.js} +1 -1
  251. package/dist/ui/assets/_baseUniq-w9wJK0j5.js.gz +0 -0
  252. package/dist/ui/assets/{arc-Dj6SyPh6.js → arc-CVXkw1SJ.js} +1 -1
  253. package/dist/ui/assets/arc-CVXkw1SJ.js.gz +0 -0
  254. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-CjXOzrje.js → architectureDiagram-VXUJARFQ-CevjfWlW.js} +1 -1
  255. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-CjXOzrje.js.gz → architectureDiagram-VXUJARFQ-CevjfWlW.js.gz} +0 -0
  256. package/dist/ui/assets/{blockDiagram-VD42YOAC-IFpdwkfg.js → blockDiagram-VD42YOAC-b9JU-Vzx.js} +1 -1
  257. package/dist/ui/assets/{blockDiagram-VD42YOAC-IFpdwkfg.js.gz → blockDiagram-VD42YOAC-b9JU-Vzx.js.gz} +0 -0
  258. package/dist/ui/assets/{c4Diagram-YG6GDRKO-qL4Ujfnz.js → c4Diagram-YG6GDRKO-j7VSccDF.js} +1 -1
  259. package/dist/ui/assets/c4Diagram-YG6GDRKO-j7VSccDF.js.gz +0 -0
  260. package/dist/ui/assets/channel-BNIBtjaQ.js +1 -0
  261. package/dist/ui/assets/{chunk-4BX2VUAB-CH6tu0mB.js → chunk-4BX2VUAB-D_codqcR.js} +1 -1
  262. package/dist/ui/assets/{chunk-55IACEB6-DDAZjWTD.js → chunk-55IACEB6-nQq1kviw.js} +1 -1
  263. package/dist/ui/assets/{chunk-B4BG7PRW-BDSu72O0.js → chunk-B4BG7PRW-DlVxaJL9.js} +1 -1
  264. package/dist/ui/assets/chunk-B4BG7PRW-DlVxaJL9.js.gz +0 -0
  265. package/dist/ui/assets/{chunk-DI55MBZ5-C7merGRo.js → chunk-DI55MBZ5-Dw95m49m.js} +1 -1
  266. package/dist/ui/assets/chunk-DI55MBZ5-Dw95m49m.js.gz +0 -0
  267. package/dist/ui/assets/{chunk-FMBD7UC4-DX20G6ZX.js → chunk-FMBD7UC4-Bnk79OV8.js} +1 -1
  268. package/dist/ui/assets/{chunk-QN33PNHL-BvT3a5aI.js → chunk-QN33PNHL-sqjI-sXo.js} +1 -1
  269. package/dist/ui/assets/{chunk-QZHKN3VN-oo-Lxdo7.js → chunk-QZHKN3VN-T7CEGHh9.js} +1 -1
  270. package/dist/ui/assets/{chunk-TZMSLE5B-BV4XHxKb.js → chunk-TZMSLE5B-ok9YQuUI.js} +1 -1
  271. package/dist/ui/assets/chunk-TZMSLE5B-ok9YQuUI.js.gz +0 -0
  272. package/dist/ui/assets/classDiagram-2ON5EDUG-DeHTLUto.js +1 -0
  273. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-DeHTLUto.js +1 -0
  274. package/dist/ui/assets/clone-BObtDhw7.js +1 -0
  275. package/dist/ui/assets/{cose-bilkent-S5V4N54A-BA6VY55u.js → cose-bilkent-S5V4N54A-BtanJFqC.js} +1 -1
  276. package/dist/ui/assets/cose-bilkent-S5V4N54A-BtanJFqC.js.gz +0 -0
  277. package/dist/ui/assets/{dagre-6UL2VRFP-DiuqdLez.js → dagre-6UL2VRFP-CIJlfoaz.js} +1 -1
  278. package/dist/ui/assets/dagre-6UL2VRFP-CIJlfoaz.js.gz +0 -0
  279. package/dist/ui/assets/{diagram-PSM6KHXK-DU4u6xZN.js → diagram-PSM6KHXK-DhKlHuZN.js} +1 -1
  280. package/dist/ui/assets/diagram-PSM6KHXK-DhKlHuZN.js.gz +0 -0
  281. package/dist/ui/assets/{diagram-QEK2KX5R-CltgMeel.js → diagram-QEK2KX5R-BbwaTbd7.js} +1 -1
  282. package/dist/ui/assets/diagram-QEK2KX5R-BbwaTbd7.js.gz +0 -0
  283. package/dist/ui/assets/{diagram-S2PKOQOG-SkvAVcTN.js → diagram-S2PKOQOG-Dx1rRlHZ.js} +1 -1
  284. package/dist/ui/assets/diagram-S2PKOQOG-Dx1rRlHZ.js.gz +0 -0
  285. package/dist/ui/assets/{erDiagram-Q2GNP2WA-DJTHxEdE.js → erDiagram-Q2GNP2WA-w60Up3Mg.js} +1 -1
  286. package/dist/ui/assets/erDiagram-Q2GNP2WA-w60Up3Mg.js.gz +0 -0
  287. package/dist/ui/assets/{flowDiagram-NV44I4VS-BwrFtsSc.js → flowDiagram-NV44I4VS-yvyTqNEi.js} +1 -1
  288. package/dist/ui/assets/flowDiagram-NV44I4VS-yvyTqNEi.js.gz +0 -0
  289. package/dist/ui/assets/{ganttDiagram-LVOFAZNH-BnGmdiBB.js → ganttDiagram-LVOFAZNH-NBBWMpCB.js} +1 -1
  290. package/dist/ui/assets/ganttDiagram-LVOFAZNH-NBBWMpCB.js.gz +0 -0
  291. package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-V6mHZ2jy.js → gitGraphDiagram-NY62KEGX-Dc0qrZJi.js} +1 -1
  292. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-Dc0qrZJi.js.gz +0 -0
  293. package/dist/ui/assets/{graph-3Ks94Pqc.js → graph-RIZM2qth.js} +1 -1
  294. package/dist/ui/assets/graph-RIZM2qth.js.gz +0 -0
  295. package/dist/ui/assets/{index-Dl_jng3-.js → index-BcHc8U_m.js} +240 -240
  296. package/dist/ui/assets/index-BcHc8U_m.js.gz +0 -0
  297. package/dist/ui/assets/index-BjxbtAmt.css +1 -0
  298. package/dist/ui/assets/index-BjxbtAmt.css.gz +0 -0
  299. package/dist/ui/assets/{infoDiagram-ER5ION4S-DUuNVOek.js → infoDiagram-ER5ION4S-Co1qQ3-G.js} +1 -1
  300. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-D-N__rLx.js → journeyDiagram-XKPGCS4Q-QaBi_wAx.js} +1 -1
  301. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-QaBi_wAx.js.gz +0 -0
  302. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-DsPDRbRp.js → kanban-definition-3W4ZIXB7-B3k5rpP3.js} +1 -1
  303. package/dist/ui/assets/kanban-definition-3W4ZIXB7-B3k5rpP3.js.gz +0 -0
  304. package/dist/ui/assets/{layout-TuyQIiWI.js → layout-YqNNovOM.js} +1 -1
  305. package/dist/ui/assets/layout-YqNNovOM.js.gz +0 -0
  306. package/dist/ui/assets/{linear-CQUCx9aD.js → linear-DpjTIW7z.js} +1 -1
  307. package/dist/ui/assets/linear-DpjTIW7z.js.gz +0 -0
  308. package/dist/ui/assets/{mermaid.core-HQwFIIbn.js → mermaid.core-D-fYaKXC.js} +5 -5
  309. package/dist/ui/assets/mermaid.core-D-fYaKXC.js.gz +0 -0
  310. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-DlR4HpYx.js → mindmap-definition-VGOIOE7T-CddQalgD.js} +1 -1
  311. package/dist/ui/assets/mindmap-definition-VGOIOE7T-CddQalgD.js.gz +0 -0
  312. package/dist/ui/assets/{pieDiagram-ADFJNKIX-OfCYTJ7S.js → pieDiagram-ADFJNKIX-BCPzhaBq.js} +1 -1
  313. package/dist/ui/assets/pieDiagram-ADFJNKIX-BCPzhaBq.js.gz +0 -0
  314. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B--irB7LvR.js → quadrantDiagram-AYHSOK5B-DrdJW-2E.js} +1 -1
  315. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DrdJW-2E.js.gz +0 -0
  316. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-iPensRLV.js → requirementDiagram-UZGBJVZJ-dV0cdx6D.js} +1 -1
  317. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-dV0cdx6D.js.gz +0 -0
  318. package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-BSidESLx.js → sankeyDiagram-TZEHDZUN-SLmqiy7a.js} +1 -1
  319. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-SLmqiy7a.js.gz +0 -0
  320. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-BUE46svP.js → sequenceDiagram-WL72ISMW-CyH5EbRm.js} +1 -1
  321. package/dist/ui/assets/sequenceDiagram-WL72ISMW-CyH5EbRm.js.gz +0 -0
  322. package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BJ2azfLs.js → stateDiagram-FKZM4ZOC-DbtBIYM6.js} +1 -1
  323. package/dist/ui/assets/stateDiagram-FKZM4ZOC-DbtBIYM6.js.gz +0 -0
  324. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-DOAHUeXQ.js +1 -0
  325. package/dist/ui/assets/{timeline-definition-IT6M3QCI-YfwKc8ip.js → timeline-definition-IT6M3QCI-CzdpjKni.js} +1 -1
  326. package/dist/ui/assets/timeline-definition-IT6M3QCI-CzdpjKni.js.gz +0 -0
  327. package/dist/ui/assets/{treemap-KMMF4GRG-DMpxEEn1.js → treemap-KMMF4GRG-D_MXp3HZ.js} +1 -1
  328. package/dist/ui/assets/treemap-KMMF4GRG-D_MXp3HZ.js.gz +0 -0
  329. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-Bn_I2TeN.js → xychartDiagram-PRI3JC2R-BMwyKz4M.js} +1 -1
  330. package/dist/ui/assets/xychartDiagram-PRI3JC2R-BMwyKz4M.js.gz +0 -0
  331. package/dist/ui/index.html +2 -2
  332. package/package.json +1 -1
  333. package/dist/ui/assets/_basePickBy-a0JoJgXO.js.gz +0 -0
  334. package/dist/ui/assets/_baseUniq-IFulW561.js.gz +0 -0
  335. package/dist/ui/assets/arc-Dj6SyPh6.js.gz +0 -0
  336. package/dist/ui/assets/c4Diagram-YG6GDRKO-qL4Ujfnz.js.gz +0 -0
  337. package/dist/ui/assets/channel-4SJF66Rh.js +0 -1
  338. package/dist/ui/assets/chunk-B4BG7PRW-BDSu72O0.js.gz +0 -0
  339. package/dist/ui/assets/chunk-DI55MBZ5-C7merGRo.js.gz +0 -0
  340. package/dist/ui/assets/chunk-TZMSLE5B-BV4XHxKb.js.gz +0 -0
  341. package/dist/ui/assets/classDiagram-2ON5EDUG-BLjqJ_M9.js +0 -1
  342. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BLjqJ_M9.js +0 -1
  343. package/dist/ui/assets/clone-DjR0SEZ0.js +0 -1
  344. package/dist/ui/assets/cose-bilkent-S5V4N54A-BA6VY55u.js.gz +0 -0
  345. package/dist/ui/assets/dagre-6UL2VRFP-DiuqdLez.js.gz +0 -0
  346. package/dist/ui/assets/diagram-PSM6KHXK-DU4u6xZN.js.gz +0 -0
  347. package/dist/ui/assets/diagram-QEK2KX5R-CltgMeel.js.gz +0 -0
  348. package/dist/ui/assets/diagram-S2PKOQOG-SkvAVcTN.js.gz +0 -0
  349. package/dist/ui/assets/erDiagram-Q2GNP2WA-DJTHxEdE.js.gz +0 -0
  350. package/dist/ui/assets/flowDiagram-NV44I4VS-BwrFtsSc.js.gz +0 -0
  351. package/dist/ui/assets/ganttDiagram-LVOFAZNH-BnGmdiBB.js.gz +0 -0
  352. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-V6mHZ2jy.js.gz +0 -0
  353. package/dist/ui/assets/graph-3Ks94Pqc.js.gz +0 -0
  354. package/dist/ui/assets/index-CoHRmHKF.css +0 -1
  355. package/dist/ui/assets/index-CoHRmHKF.css.gz +0 -0
  356. package/dist/ui/assets/index-Dl_jng3-.js.gz +0 -0
  357. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-D-N__rLx.js.gz +0 -0
  358. package/dist/ui/assets/kanban-definition-3W4ZIXB7-DsPDRbRp.js.gz +0 -0
  359. package/dist/ui/assets/layout-TuyQIiWI.js.gz +0 -0
  360. package/dist/ui/assets/linear-CQUCx9aD.js.gz +0 -0
  361. package/dist/ui/assets/mermaid.core-HQwFIIbn.js.gz +0 -0
  362. package/dist/ui/assets/mindmap-definition-VGOIOE7T-DlR4HpYx.js.gz +0 -0
  363. package/dist/ui/assets/pieDiagram-ADFJNKIX-OfCYTJ7S.js.gz +0 -0
  364. package/dist/ui/assets/quadrantDiagram-AYHSOK5B--irB7LvR.js.gz +0 -0
  365. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-iPensRLV.js.gz +0 -0
  366. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-BSidESLx.js.gz +0 -0
  367. package/dist/ui/assets/sequenceDiagram-WL72ISMW-BUE46svP.js.gz +0 -0
  368. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BJ2azfLs.js.gz +0 -0
  369. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-B9Lx1w-S.js +0 -1
  370. package/dist/ui/assets/timeline-definition-IT6M3QCI-YfwKc8ip.js.gz +0 -0
  371. package/dist/ui/assets/treemap-KMMF4GRG-DMpxEEn1.js.gz +0 -0
  372. package/dist/ui/assets/xychartDiagram-PRI3JC2R-Bn_I2TeN.js.gz +0 -0
@@ -1,4 +1,4 @@
1
- import { A as AgenticToolID, a as SessionID, W as WorktreeID, T as TaskID } from './id-BwPJtWxW.js';
1
+ import { A as AgenticToolID, a as SessionID, W as WorktreeID, B as BoardID, T as TaskID } from './id-BwPJtWxW.js';
2
2
  import { C as ContextFilePath } from './context-ByxGjp5l.js';
3
3
 
4
4
  /**
@@ -176,6 +176,22 @@ interface Session {
176
176
  unix_username: string | null;
177
177
  /** Worktree ID - all sessions must be associated with an Agor-managed worktree */
178
178
  worktree_id: WorktreeID;
179
+ /**
180
+ * Board ID from the session's worktree (populated via LEFT JOIN)
181
+ *
182
+ * This is a computed property populated by the repository layer when fetching sessions.
183
+ * It avoids N+1 queries by joining with the worktrees table.
184
+ * Null if the worktree is not placed on any board.
185
+ */
186
+ worktree_board_id?: BoardID | null;
187
+ /**
188
+ * External/user-facing URL for viewing this session in the UI
189
+ *
190
+ * Computed property added by API hooks based on worktree_board_id.
191
+ * Format: {baseUrl}/b/{boardId}/{sessionId}/
192
+ * Null if the worktree is not on a board.
193
+ */
194
+ url: string | null;
179
195
  git_state: {
180
196
  ref: string;
181
197
  base_sha: string;
@@ -1,5 +1,5 @@
1
1
  import { a as SessionID, W as WorktreeID, U as UUID } from '../id-BwPJtWxW.cjs';
2
- import { f as Session } from '../session-Bt9i9089.cjs';
2
+ import { f as Session } from '../session-BJbTzw3y.cjs';
3
3
  import { d as Worktree, b as Repo } from '../worktree-hZImhblR.cjs';
4
4
  import '../context-ByxGjp5l.cjs';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { a as SessionID, W as WorktreeID, U as UUID } from '../id-BwPJtWxW.js';
2
- import { f as Session } from '../session-Da9rf6n5.js';
2
+ import { f as Session } from '../session-DLVkt-jY.js';
3
3
  import { d as Worktree, b as Repo } from '../worktree-BR7Inm0-.js';
4
4
  import '../context-ByxGjp5l.js';
5
5
 
@@ -1,16 +1,16 @@
1
1
  export { PermissionDecision, PermissionRequest } from '../permissions/index.cjs';
2
- export { b as AgenticTool, A as AgenticToolName, C as ClaudeCodePermissionMode, d as CodexApprovalPolicy, e as CodexNetworkAccess, a as CodexPermissionMode, c as CodexSandboxMode, G as GeminiPermissionMode, O as OpenCodePermissionMode, P as PermissionMode, h as ScheduledRunMetadata, f as Session, S as SessionStatus, i as SpawnConfig, g as getDefaultPermissionMode } from '../session-Bt9i9089.cjs';
3
- export { e as Board, a as BoardEntityObject, f as BoardExportBlob, d as BoardObject, B as BoardObjectType, M as MarkdownBoardObject, T as TextBoardObject, c as ZoneBoardObject, b as ZoneTrigger, Z as ZoneTriggerBehavior } from '../board-DCNkcsyf.cjs';
2
+ export { b as AgenticTool, A as AgenticToolName, C as ClaudeCodePermissionMode, d as CodexApprovalPolicy, e as CodexNetworkAccess, a as CodexPermissionMode, c as CodexSandboxMode, G as GeminiPermissionMode, O as OpenCodePermissionMode, P as PermissionMode, h as ScheduledRunMetadata, f as Session, S as SessionStatus, i as SpawnConfig, g as getDefaultPermissionMode } from '../session-BJbTzw3y.cjs';
3
+ export { e as Board, a as BoardEntityObject, f as BoardExportBlob, d as BoardObject, B as BoardObjectType, M as MarkdownBoardObject, T as TextBoardObject, c as ZoneBoardObject, b as ZoneTrigger, Z as ZoneTriggerBehavior } from '../board-ByCag4EG.cjs';
4
4
  export { B as BoardComment, b as BoardCommentCreate, c as BoardCommentPatch, a as CommentAttachmentType, C as CommentReaction, R as ReactionSummary, g as getCommentAttachmentType, f as groupReactions, d as isReply, e as isResolvable, i as isThreadRoot } from '../board-comment-D9NA4gOJ.cjs';
5
5
  export { b as ContextFileDetail, a as ContextFileListItem, C as ContextFilePath } from '../context-ByxGjp5l.cjs';
6
- export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from '../feathers-C1uChqXy.cjs';
7
- export { C as ChannelType, b as GatewayAgenticConfig, c as GatewayChannel, G as GatewayChannelID, d as ThreadSessionMap, T as ThreadSessionMapID, a as ThreadStatus } from '../gateway-DGNtjRnd.cjs';
6
+ export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from '../feathers-Cyk1lpAM.cjs';
7
+ export { C as ChannelType, b as GatewayAgenticConfig, c as GatewayChannel, G as GatewayChannelID, d as ThreadSessionMap, T as ThreadSessionMapID, a as ThreadStatus } from '../gateway-C2NOdrxu.cjs';
8
8
  import { B as BoardID } from '../id-BwPJtWxW.cjs';
9
9
  export { A as AgenticToolID, C as CommentID, I as IDPrefix, M as MessageID, R as RepoID, a as SessionID, S as ShortID, T as TaskID, U as UUID, b as UserID, W as WorktreeID } from '../id-BwPJtWxW.cjs';
10
10
  export { C as CreateMCPServerInput, J as JSONSchema, d as MCPAuth, h as MCPCapabilities, l as MCPConfigFile, g as MCPPrompt, f as MCPResource, b as MCPScope, i as MCPServer, j as MCPServerFilters, M as MCPServerID, m as MCPServersConfig, c as MCPSource, k as MCPTestResult, e as MCPTool, a as MCPTransport, P as PromptArgument, S as SessionMCPServer, T as ToolPermission, U as UpdateMCPServerInput } from '../mcp-DqadENYY.cjs';
11
11
  export { C as ContentBlock, e as Message, f as MessageCreate, M as MessageRole, a as MessageStatus, b as MessageType, d as PermissionRequestContent, P as PermissionScope, c as PermissionStatus, S as StreamingEventType, T as ToolUse } from '../message-DZitapX9.cjs';
12
- import { d as User } from '../user-C5id0Zhj.cjs';
13
- export { A as AudioPreferences, B as BaseUserFields, C as ChimeSound, e as CreateUserInput, b as DefaultAgenticConfig, a as DefaultAgenticToolConfig, D as DefaultModelConfig, E as EventStreamPreferences, f as UpdateUserInput, c as UserPreferences, U as UserRole } from '../user-C5id0Zhj.cjs';
12
+ import { d as User } from '../user-LBRon9n1.cjs';
13
+ export { A as AudioPreferences, B as BaseUserFields, C as ChimeSound, e as CreateUserInput, b as DefaultAgenticConfig, a as DefaultAgenticToolConfig, D as DefaultModelConfig, E as EventStreamPreferences, f as UpdateUserInput, c as UserPreferences, U as UserRole } from '../user-LBRon9n1.cjs';
14
14
  export { b as Repo, h as RepoEnvironmentConfig, R as RepoSlug, a as RepoType, d as Worktree, c as WorktreeConfig, g as WorktreeEnvironmentInstance, W as WorktreeName, e as WorktreePermissionLevel, f as WorktreeScheduleConfig } from '../worktree-hZImhblR.cjs';
15
15
  export { b as Report, R as ReportPath, a as ReportTemplate, c as Task, T as TaskStatus } from '../task-D5cWUcAY.cjs';
16
16
  export { Id, NullableId, Paginated, Params, Service, ServiceMethods } from '@feathersjs/feathers';
@@ -1,16 +1,16 @@
1
1
  export { PermissionDecision, PermissionRequest } from '../permissions/index.js';
2
- export { b as AgenticTool, A as AgenticToolName, C as ClaudeCodePermissionMode, d as CodexApprovalPolicy, e as CodexNetworkAccess, a as CodexPermissionMode, c as CodexSandboxMode, G as GeminiPermissionMode, O as OpenCodePermissionMode, P as PermissionMode, h as ScheduledRunMetadata, f as Session, S as SessionStatus, i as SpawnConfig, g as getDefaultPermissionMode } from '../session-Da9rf6n5.js';
3
- export { e as Board, a as BoardEntityObject, f as BoardExportBlob, d as BoardObject, B as BoardObjectType, M as MarkdownBoardObject, T as TextBoardObject, c as ZoneBoardObject, b as ZoneTrigger, Z as ZoneTriggerBehavior } from '../board-C-PU8jok.js';
2
+ export { b as AgenticTool, A as AgenticToolName, C as ClaudeCodePermissionMode, d as CodexApprovalPolicy, e as CodexNetworkAccess, a as CodexPermissionMode, c as CodexSandboxMode, G as GeminiPermissionMode, O as OpenCodePermissionMode, P as PermissionMode, h as ScheduledRunMetadata, f as Session, S as SessionStatus, i as SpawnConfig, g as getDefaultPermissionMode } from '../session-DLVkt-jY.js';
3
+ export { e as Board, a as BoardEntityObject, f as BoardExportBlob, d as BoardObject, B as BoardObjectType, M as MarkdownBoardObject, T as TextBoardObject, c as ZoneBoardObject, b as ZoneTrigger, Z as ZoneTriggerBehavior } from '../board-CZuyMRpr.js';
4
4
  export { B as BoardComment, b as BoardCommentCreate, c as BoardCommentPatch, a as CommentAttachmentType, C as CommentReaction, R as ReactionSummary, g as getCommentAttachmentType, f as groupReactions, d as isReply, e as isResolvable, i as isThreadRoot } from '../board-comment-rH4c6eVl.js';
5
5
  export { b as ContextFileDetail, a as ContextFileListItem, C as ContextFilePath } from '../context-ByxGjp5l.js';
6
- export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from '../feathers-B0zjReEk.js';
7
- export { C as ChannelType, b as GatewayAgenticConfig, c as GatewayChannel, G as GatewayChannelID, d as ThreadSessionMap, T as ThreadSessionMapID, a as ThreadStatus } from '../gateway-Dy9fVyiS.js';
6
+ export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from '../feathers-CYMJeMWB.js';
7
+ export { C as ChannelType, b as GatewayAgenticConfig, c as GatewayChannel, G as GatewayChannelID, d as ThreadSessionMap, T as ThreadSessionMapID, a as ThreadStatus } from '../gateway-B4CaePYV.js';
8
8
  import { B as BoardID } from '../id-BwPJtWxW.js';
9
9
  export { A as AgenticToolID, C as CommentID, I as IDPrefix, M as MessageID, R as RepoID, a as SessionID, S as ShortID, T as TaskID, U as UUID, b as UserID, W as WorktreeID } from '../id-BwPJtWxW.js';
10
10
  export { C as CreateMCPServerInput, J as JSONSchema, d as MCPAuth, h as MCPCapabilities, l as MCPConfigFile, g as MCPPrompt, f as MCPResource, b as MCPScope, i as MCPServer, j as MCPServerFilters, M as MCPServerID, m as MCPServersConfig, c as MCPSource, k as MCPTestResult, e as MCPTool, a as MCPTransport, P as PromptArgument, S as SessionMCPServer, T as ToolPermission, U as UpdateMCPServerInput } from '../mcp-Bm9HwvDf.js';
11
11
  export { C as ContentBlock, e as Message, f as MessageCreate, M as MessageRole, a as MessageStatus, b as MessageType, d as PermissionRequestContent, P as PermissionScope, c as PermissionStatus, S as StreamingEventType, T as ToolUse } from '../message-CrqsdxNE.js';
12
- import { d as User } from '../user-DT1Qzfep.js';
13
- export { A as AudioPreferences, B as BaseUserFields, C as ChimeSound, e as CreateUserInput, b as DefaultAgenticConfig, a as DefaultAgenticToolConfig, D as DefaultModelConfig, E as EventStreamPreferences, f as UpdateUserInput, c as UserPreferences, U as UserRole } from '../user-DT1Qzfep.js';
12
+ import { d as User } from '../user-B77oCF14.js';
13
+ export { A as AudioPreferences, B as BaseUserFields, C as ChimeSound, e as CreateUserInput, b as DefaultAgenticConfig, a as DefaultAgenticToolConfig, D as DefaultModelConfig, E as EventStreamPreferences, f as UpdateUserInput, c as UserPreferences, U as UserRole } from '../user-B77oCF14.js';
14
14
  export { b as Repo, h as RepoEnvironmentConfig, R as RepoSlug, a as RepoType, d as Worktree, c as WorktreeConfig, g as WorktreeEnvironmentInstance, W as WorktreeName, e as WorktreePermissionLevel, f as WorktreeScheduleConfig } from '../worktree-BR7Inm0-.js';
15
15
  export { b as Report, R as ReportPath, a as ReportTemplate, c as Task, T as TaskStatus } from '../task-D0i_mU9u.js';
16
16
  export { Id, NullableId, Paginated, Params, Service, ServiceMethods } from '@feathersjs/feathers';
@@ -48,6 +48,24 @@ interface AgorDaemonSettings {
48
48
  * ```
49
49
  */
50
50
  public_url?: string;
51
+ /**
52
+ * Base URL for external/user-facing links (e.g., session URLs in Slack messages).
53
+ *
54
+ * Used to generate clickable URLs to sessions, boards, and other resources
55
+ * that are sent to external platforms like Slack, email, etc.
56
+ *
57
+ * Defaults to `http://localhost:{port}` in development.
58
+ * Should be set to your public domain in production (e.g., https://agor.example.com).
59
+ *
60
+ * Note: Should NOT include trailing slash.
61
+ *
62
+ * @example
63
+ * ```yaml
64
+ * daemon:
65
+ * base_url: https://agor.sandbox.preset.zone
66
+ * ```
67
+ */
68
+ base_url?: string;
51
69
  /** Allow anonymous access (default: true for local mode) */
52
70
  allowAnonymous?: boolean;
53
71
  /** Require authentication for all requests (default: false) */
@@ -48,6 +48,24 @@ interface AgorDaemonSettings {
48
48
  * ```
49
49
  */
50
50
  public_url?: string;
51
+ /**
52
+ * Base URL for external/user-facing links (e.g., session URLs in Slack messages).
53
+ *
54
+ * Used to generate clickable URLs to sessions, boards, and other resources
55
+ * that are sent to external platforms like Slack, email, etc.
56
+ *
57
+ * Defaults to `http://localhost:{port}` in development.
58
+ * Should be set to your public domain in production (e.g., https://agor.example.com).
59
+ *
60
+ * Note: Should NOT include trailing slash.
61
+ *
62
+ * @example
63
+ * ```yaml
64
+ * daemon:
65
+ * base_url: https://agor.sandbox.preset.zone
66
+ * ```
67
+ */
68
+ base_url?: string;
51
69
  /** Allow anonymous access (default: true for local mode) */
52
70
  allowAnonymous?: boolean;
53
71
  /** Require authentication for all requests (default: false) */
@@ -62,6 +62,7 @@ __export(config_manager_exports, {
62
62
  ensureCodexHome: () => ensureCodexHome,
63
63
  expandHomePath: () => expandHomePath,
64
64
  getAgorHome: () => getAgorHome,
65
+ getBaseUrl: () => getBaseUrl,
65
66
  getConfigPath: () => getConfigPath,
66
67
  getConfigValue: () => getConfigValue,
67
68
  getCredential: () => getCredential,
@@ -279,6 +280,32 @@ async function getDaemonUrl() {
279
280
  const host = config.daemon?.host || defaults.daemon?.host || DAEMON.DEFAULT_HOST;
280
281
  return `http://${host}:${port}`;
281
282
  }
283
+ function validateBaseUrl(url) {
284
+ const trimmed = url.trim().replace(/\/$/, "");
285
+ if (!trimmed.startsWith("http://") && !trimmed.startsWith("https://")) {
286
+ throw new Error(`Invalid base URL: "${url}". Must start with http:// or https://`);
287
+ }
288
+ try {
289
+ new URL(trimmed);
290
+ } catch {
291
+ throw new Error(`Invalid base URL format: "${url}". Must be a valid HTTP(S) URL.`);
292
+ }
293
+ return trimmed;
294
+ }
295
+ async function getBaseUrl() {
296
+ if (process.env.AGOR_BASE_URL) {
297
+ return validateBaseUrl(process.env.AGOR_BASE_URL);
298
+ }
299
+ const config = await loadConfig();
300
+ if (config.daemon?.base_url) {
301
+ return validateBaseUrl(config.daemon.base_url);
302
+ }
303
+ const defaults = getDefaultConfig();
304
+ const envPort = process.env.PORT ? Number.parseInt(process.env.PORT, 10) : void 0;
305
+ const port = envPort || config.daemon?.port || defaults.daemon?.port || DAEMON.DEFAULT_PORT;
306
+ const host = config.daemon?.host || defaults.daemon?.host || DAEMON.DEFAULT_HOST;
307
+ return `http://${host}:${port}`;
308
+ }
282
309
  function loadConfigSync() {
283
310
  const configPath = getConfigPath();
284
311
  try {
@@ -607,13 +634,15 @@ __export(schema_postgres_exports, {
607
634
  repos: () => repos,
608
635
  sessionMcpServers: () => sessionMcpServers,
609
636
  sessions: () => sessions,
637
+ sessionsRelations: () => sessionsRelations,
610
638
  tasks: () => tasks,
611
639
  threadSessionMap: () => threadSessionMap,
612
640
  users: () => users,
613
641
  worktreeOwners: () => worktreeOwners,
614
- worktrees: () => worktrees
642
+ worktrees: () => worktrees,
643
+ worktreesRelations: () => worktreesRelations
615
644
  });
616
- var import_drizzle_orm2, import_pg_core, t, sessions, tasks, messages, boards, repos, worktrees, worktreeOwners, users, mcpServers, boardObjects, sessionMcpServers, boardComments, gatewayChannels, threadSessionMap;
645
+ var import_drizzle_orm2, import_pg_core, t, sessions, tasks, messages, boards, repos, worktrees, worktreeOwners, users, mcpServers, boardObjects, sessionMcpServers, boardComments, gatewayChannels, threadSessionMap, sessionsRelations, worktreesRelations;
617
646
  var init_schema_postgres = __esm({
618
647
  "src/db/schema.postgres.ts"() {
619
648
  "use strict";
@@ -1102,6 +1131,15 @@ var init_schema_postgres = __esm({
1102
1131
  channelStatusIdx: (0, import_pg_core.index)("idx_thread_map_channel_status").on(table.channel_id, table.status)
1103
1132
  })
1104
1133
  );
1134
+ sessionsRelations = (0, import_drizzle_orm2.relations)(sessions, ({ one }) => ({
1135
+ worktree: one(worktrees, {
1136
+ fields: [sessions.worktree_id],
1137
+ references: [worktrees.worktree_id]
1138
+ })
1139
+ }));
1140
+ worktreesRelations = (0, import_drizzle_orm2.relations)(worktrees, ({ many }) => ({
1141
+ sessions: many(sessions)
1142
+ }));
1105
1143
  }
1106
1144
  });
1107
1145
 
@@ -1117,13 +1155,15 @@ __export(schema_sqlite_exports, {
1117
1155
  repos: () => repos2,
1118
1156
  sessionMcpServers: () => sessionMcpServers2,
1119
1157
  sessions: () => sessions2,
1158
+ sessionsRelations: () => sessionsRelations2,
1120
1159
  tasks: () => tasks2,
1121
1160
  threadSessionMap: () => threadSessionMap2,
1122
1161
  users: () => users2,
1123
1162
  worktreeOwners: () => worktreeOwners2,
1124
- worktrees: () => worktrees2
1163
+ worktrees: () => worktrees2,
1164
+ worktreesRelations: () => worktreesRelations2
1125
1165
  });
1126
- var import_drizzle_orm3, import_sqlite_core, t2, sessions2, tasks2, messages2, boards2, repos2, worktrees2, worktreeOwners2, users2, mcpServers2, boardObjects2, sessionMcpServers2, boardComments2, gatewayChannels2, threadSessionMap2;
1166
+ var import_drizzle_orm3, import_sqlite_core, t2, sessions2, tasks2, messages2, boards2, repos2, worktrees2, worktreeOwners2, users2, mcpServers2, boardObjects2, sessionMcpServers2, boardComments2, gatewayChannels2, threadSessionMap2, sessionsRelations2, worktreesRelations2;
1127
1167
  var init_schema_sqlite = __esm({
1128
1168
  "src/db/schema.sqlite.ts"() {
1129
1169
  "use strict";
@@ -1613,6 +1653,15 @@ var init_schema_sqlite = __esm({
1613
1653
  channelStatusIdx: (0, import_sqlite_core.index)("idx_thread_map_channel_status").on(table.channel_id, table.status)
1614
1654
  })
1615
1655
  );
1656
+ sessionsRelations2 = (0, import_drizzle_orm3.relations)(sessions2, ({ one }) => ({
1657
+ worktree: one(worktrees2, {
1658
+ fields: [sessions2.worktree_id],
1659
+ references: [worktrees2.worktree_id]
1660
+ })
1661
+ }));
1662
+ worktreesRelations2 = (0, import_drizzle_orm3.relations)(worktrees2, ({ many }) => ({
1663
+ sessions: many(sessions2)
1664
+ }));
1616
1665
  }
1617
1666
  });
1618
1667
 
@@ -2479,7 +2528,14 @@ init_schema();
2479
2528
  init_cjs_shims();
2480
2529
  var import_drizzle_orm8 = require("drizzle-orm");
2481
2530
  var yaml3 = __toESM(require("js-yaml"), 1);
2531
+ init_config_manager();
2482
2532
  init_ids();
2533
+
2534
+ // src/utils/url.ts
2535
+ init_cjs_shims();
2536
+ init_ids();
2537
+
2538
+ // src/db/repositories/boards.ts
2483
2539
  init_database_wrapper();
2484
2540
  init_schema();
2485
2541
 
@@ -2852,6 +2908,7 @@ init_cjs_shims();
2852
2908
 
2853
2909
  // src/db/repositories/sessions.ts
2854
2910
  var import_drizzle_orm13 = require("drizzle-orm");
2911
+ init_config_manager();
2855
2912
  init_ids();
2856
2913
  init_database_wrapper();
2857
2914
  init_schema();
@@ -3644,7 +3701,7 @@ var WorktreeRepository = class {
3644
3701
  fullText = messageData.content.filter((block) => block.type === "text" && block.text).map((block) => block.text).join("\n");
3645
3702
  }
3646
3703
  if (fullText.length > truncationLength) {
3647
- fullText = fullText.substring(0, truncationLength) + "...";
3704
+ fullText = `${fullText.substring(0, truncationLength)}...`;
3648
3705
  }
3649
3706
  lastMessageBySession.set(sessionId, fullText);
3650
3707
  }
@@ -3655,7 +3712,7 @@ var WorktreeRepository = class {
3655
3712
  const sessionId = row.session_id;
3656
3713
  let lastMessage = lastMessageBySession.get(sessionId) || "";
3657
3714
  if (lastMessage.length > truncationLength) {
3658
- lastMessage = lastMessage.substring(0, truncationLength) + "...truncated";
3715
+ lastMessage = `${lastMessage.substring(0, truncationLength)}...truncated`;
3659
3716
  }
3660
3717
  const sessionData = row.data;
3661
3718
  const messageCount = sessionData?.message_count ?? 0;
@@ -1,13 +1,14 @@
1
1
  import { SpawnOptions, ChildProcess } from 'node:child_process';
2
- import { d as Database } from '../client-DKbFqX_X.cjs';
2
+ import { d as Database } from '../client-gnSCmSyL.cjs';
3
3
  import { d as Worktree } from '../worktree-hZImhblR.cjs';
4
4
  import { W as WorktreeID, R as RepoID, U as UUID, b as UserID } from '../id-BwPJtWxW.cjs';
5
5
  import 'drizzle-orm/libsql';
6
6
  import 'drizzle-orm/postgres-js';
7
+ import 'drizzle-orm';
7
8
  import '../message-DZitapX9.cjs';
8
- import '../session-Bt9i9089.cjs';
9
+ import '../session-BJbTzw3y.cjs';
9
10
  import '../context-ByxGjp5l.cjs';
10
- import '../board-DCNkcsyf.cjs';
11
+ import '../board-ByCag4EG.cjs';
11
12
  import '../task-D5cWUcAY.cjs';
12
13
  import 'drizzle-orm/pg-core';
13
14
  import 'drizzle-orm/sqlite-core';
@@ -1,13 +1,14 @@
1
1
  import { SpawnOptions, ChildProcess } from 'node:child_process';
2
- import { d as Database } from '../client-CGO13BG6.js';
2
+ import { d as Database } from '../client-BoLj-jqT.js';
3
3
  import { d as Worktree } from '../worktree-BR7Inm0-.js';
4
4
  import { W as WorktreeID, R as RepoID, U as UUID, b as UserID } from '../id-BwPJtWxW.js';
5
5
  import 'drizzle-orm/libsql';
6
6
  import 'drizzle-orm/postgres-js';
7
+ import 'drizzle-orm';
7
8
  import '../message-CrqsdxNE.js';
8
- import '../session-Da9rf6n5.js';
9
+ import '../session-DLVkt-jY.js';
9
10
  import '../context-ByxGjp5l.js';
10
- import '../board-C-PU8jok.js';
11
+ import '../board-CZuyMRpr.js';
11
12
  import '../task-D0i_mU9u.js';
12
13
  import 'drizzle-orm/pg-core';
13
14
  import 'drizzle-orm/sqlite-core';
@@ -42,6 +42,7 @@ __export(config_manager_exports, {
42
42
  ensureCodexHome: () => ensureCodexHome,
43
43
  expandHomePath: () => expandHomePath,
44
44
  getAgorHome: () => getAgorHome,
45
+ getBaseUrl: () => getBaseUrl,
45
46
  getConfigPath: () => getConfigPath,
46
47
  getConfigValue: () => getConfigValue,
47
48
  getCredential: () => getCredential,
@@ -264,6 +265,32 @@ async function getDaemonUrl() {
264
265
  const host = config.daemon?.host || defaults.daemon?.host || DAEMON.DEFAULT_HOST;
265
266
  return `http://${host}:${port}`;
266
267
  }
268
+ function validateBaseUrl(url) {
269
+ const trimmed = url.trim().replace(/\/$/, "");
270
+ if (!trimmed.startsWith("http://") && !trimmed.startsWith("https://")) {
271
+ throw new Error(`Invalid base URL: "${url}". Must start with http:// or https://`);
272
+ }
273
+ try {
274
+ new URL(trimmed);
275
+ } catch {
276
+ throw new Error(`Invalid base URL format: "${url}". Must be a valid HTTP(S) URL.`);
277
+ }
278
+ return trimmed;
279
+ }
280
+ async function getBaseUrl() {
281
+ if (process.env.AGOR_BASE_URL) {
282
+ return validateBaseUrl(process.env.AGOR_BASE_URL);
283
+ }
284
+ const config = await loadConfig();
285
+ if (config.daemon?.base_url) {
286
+ return validateBaseUrl(config.daemon.base_url);
287
+ }
288
+ const defaults = getDefaultConfig();
289
+ const envPort = process.env.PORT ? Number.parseInt(process.env.PORT, 10) : void 0;
290
+ const port = envPort || config.daemon?.port || defaults.daemon?.port || DAEMON.DEFAULT_PORT;
291
+ const host = config.daemon?.host || defaults.daemon?.host || DAEMON.DEFAULT_HOST;
292
+ return `http://${host}:${port}`;
293
+ }
267
294
  function loadConfigSync() {
268
295
  const configPath = getConfigPath();
269
296
  try {
@@ -585,13 +612,15 @@ __export(schema_postgres_exports, {
585
612
  repos: () => repos,
586
613
  sessionMcpServers: () => sessionMcpServers,
587
614
  sessions: () => sessions,
615
+ sessionsRelations: () => sessionsRelations,
588
616
  tasks: () => tasks,
589
617
  threadSessionMap: () => threadSessionMap,
590
618
  users: () => users,
591
619
  worktreeOwners: () => worktreeOwners,
592
- worktrees: () => worktrees
620
+ worktrees: () => worktrees,
621
+ worktreesRelations: () => worktreesRelations
593
622
  });
594
- import { sql as sql2 } from "drizzle-orm";
623
+ import { relations, sql as sql2 } from "drizzle-orm";
595
624
  import {
596
625
  bigint,
597
626
  boolean,
@@ -605,7 +634,7 @@ import {
605
634
  uniqueIndex,
606
635
  varchar
607
636
  } from "drizzle-orm/pg-core";
608
- var t, sessions, tasks, messages, boards, repos, worktrees, worktreeOwners, users, mcpServers, boardObjects, sessionMcpServers, boardComments, gatewayChannels, threadSessionMap;
637
+ var t, sessions, tasks, messages, boards, repos, worktrees, worktreeOwners, users, mcpServers, boardObjects, sessionMcpServers, boardComments, gatewayChannels, threadSessionMap, sessionsRelations, worktreesRelations;
609
638
  var init_schema_postgres = __esm({
610
639
  "src/db/schema.postgres.ts"() {
611
640
  "use strict";
@@ -1092,6 +1121,15 @@ var init_schema_postgres = __esm({
1092
1121
  channelStatusIdx: index("idx_thread_map_channel_status").on(table.channel_id, table.status)
1093
1122
  })
1094
1123
  );
1124
+ sessionsRelations = relations(sessions, ({ one }) => ({
1125
+ worktree: one(worktrees, {
1126
+ fields: [sessions.worktree_id],
1127
+ references: [worktrees.worktree_id]
1128
+ })
1129
+ }));
1130
+ worktreesRelations = relations(worktrees, ({ many }) => ({
1131
+ sessions: many(sessions)
1132
+ }));
1095
1133
  }
1096
1134
  });
1097
1135
 
@@ -1107,13 +1145,15 @@ __export(schema_sqlite_exports, {
1107
1145
  repos: () => repos2,
1108
1146
  sessionMcpServers: () => sessionMcpServers2,
1109
1147
  sessions: () => sessions2,
1148
+ sessionsRelations: () => sessionsRelations2,
1110
1149
  tasks: () => tasks2,
1111
1150
  threadSessionMap: () => threadSessionMap2,
1112
1151
  users: () => users2,
1113
1152
  worktreeOwners: () => worktreeOwners2,
1114
- worktrees: () => worktrees2
1153
+ worktrees: () => worktrees2,
1154
+ worktreesRelations: () => worktreesRelations2
1115
1155
  });
1116
- import { sql as sql3 } from "drizzle-orm";
1156
+ import { relations as relations2, sql as sql3 } from "drizzle-orm";
1117
1157
  import {
1118
1158
  index as index2,
1119
1159
  integer as integer2,
@@ -1122,7 +1162,7 @@ import {
1122
1162
  text as text2,
1123
1163
  uniqueIndex as uniqueIndex2
1124
1164
  } from "drizzle-orm/sqlite-core";
1125
- var t2, sessions2, tasks2, messages2, boards2, repos2, worktrees2, worktreeOwners2, users2, mcpServers2, boardObjects2, sessionMcpServers2, boardComments2, gatewayChannels2, threadSessionMap2;
1165
+ var t2, sessions2, tasks2, messages2, boards2, repos2, worktrees2, worktreeOwners2, users2, mcpServers2, boardObjects2, sessionMcpServers2, boardComments2, gatewayChannels2, threadSessionMap2, sessionsRelations2, worktreesRelations2;
1126
1166
  var init_schema_sqlite = __esm({
1127
1167
  "src/db/schema.sqlite.ts"() {
1128
1168
  "use strict";
@@ -1610,6 +1650,15 @@ var init_schema_sqlite = __esm({
1610
1650
  channelStatusIdx: index2("idx_thread_map_channel_status").on(table.channel_id, table.status)
1611
1651
  })
1612
1652
  );
1653
+ sessionsRelations2 = relations2(sessions2, ({ one }) => ({
1654
+ worktree: one(worktrees2, {
1655
+ fields: [sessions2.worktree_id],
1656
+ references: [worktrees2.worktree_id]
1657
+ })
1658
+ }));
1659
+ worktreesRelations2 = relations2(worktrees2, ({ many }) => ({
1660
+ sessions: many(sessions2)
1661
+ }));
1613
1662
  }
1614
1663
  });
1615
1664
 
@@ -2422,9 +2471,16 @@ import { eq as eq4 } from "drizzle-orm";
2422
2471
 
2423
2472
  // src/db/repositories/boards.ts
2424
2473
  init_esm_shims();
2474
+ init_config_manager();
2425
2475
  init_ids();
2426
2476
  import { and as and2, eq as eq5, like as like2, ne } from "drizzle-orm";
2427
2477
  import * as yaml3 from "js-yaml";
2478
+
2479
+ // src/utils/url.ts
2480
+ init_esm_shims();
2481
+ init_ids();
2482
+
2483
+ // src/db/repositories/boards.ts
2428
2484
  init_database_wrapper();
2429
2485
  init_schema();
2430
2486
 
@@ -2796,21 +2852,11 @@ init_esm_shims();
2796
2852
  init_esm_shims();
2797
2853
 
2798
2854
  // src/db/repositories/sessions.ts
2855
+ init_config_manager();
2799
2856
  init_ids();
2857
+ import { and as and4, desc, eq as eq10, inArray, isNotNull, isNull as isNull2, like as like6, or, sql as sql6 } from "drizzle-orm";
2800
2858
  init_database_wrapper();
2801
2859
  init_schema();
2802
- import {
2803
- and as and4,
2804
- desc,
2805
- eq as eq10,
2806
- getTableColumns,
2807
- inArray,
2808
- isNotNull,
2809
- isNull as isNull2,
2810
- like as like6,
2811
- or,
2812
- sql as sql6
2813
- } from "drizzle-orm";
2814
2860
 
2815
2861
  // src/db/repositories/tasks.ts
2816
2862
  init_esm_shims();
@@ -3143,7 +3189,7 @@ import {
3143
3189
  and as and7,
3144
3190
  desc as desc2,
3145
3191
  eq as eq15,
3146
- getTableColumns as getTableColumns2,
3192
+ getTableColumns,
3147
3193
  inArray as inArray2,
3148
3194
  isNotNull as isNotNull2,
3149
3195
  isNull as isNull3,
@@ -3462,7 +3508,7 @@ var WorktreeRepository = class {
3462
3508
  * @returns Array of accessible worktrees
3463
3509
  */
3464
3510
  async findAccessibleWorktrees(userId) {
3465
- const rows = await select(this.db, getTableColumns2(worktrees3)).from(worktrees3).leftJoin(
3511
+ const rows = await select(this.db, getTableColumns(worktrees3)).from(worktrees3).leftJoin(
3466
3512
  worktreeOwners3,
3467
3513
  and7(
3468
3514
  eq15(worktreeOwners3.worktree_id, worktrees3.worktree_id),
@@ -3611,7 +3657,7 @@ var WorktreeRepository = class {
3611
3657
  fullText = messageData.content.filter((block) => block.type === "text" && block.text).map((block) => block.text).join("\n");
3612
3658
  }
3613
3659
  if (fullText.length > truncationLength) {
3614
- fullText = fullText.substring(0, truncationLength) + "...";
3660
+ fullText = `${fullText.substring(0, truncationLength)}...`;
3615
3661
  }
3616
3662
  lastMessageBySession.set(sessionId, fullText);
3617
3663
  }
@@ -3622,7 +3668,7 @@ var WorktreeRepository = class {
3622
3668
  const sessionId = row.session_id;
3623
3669
  let lastMessage = lastMessageBySession.get(sessionId) || "";
3624
3670
  if (lastMessage.length > truncationLength) {
3625
- lastMessage = lastMessage.substring(0, truncationLength) + "...truncated";
3671
+ lastMessage = `${lastMessage.substring(0, truncationLength)}...truncated`;
3626
3672
  }
3627
3673
  const sessionData = row.data;
3628
3674
  const messageCount = sessionData?.message_count ?? 0;
@@ -1,4 +1,4 @@
1
- import { P as PermissionMode, c as CodexSandboxMode, d as CodexApprovalPolicy, e as CodexNetworkAccess } from './session-Da9rf6n5.js';
1
+ import { P as PermissionMode, c as CodexSandboxMode, d as CodexApprovalPolicy, e as CodexNetworkAccess } from './session-DLVkt-jY.js';
2
2
  import { b as UserID } from './id-BwPJtWxW.js';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { P as PermissionMode, c as CodexSandboxMode, d as CodexApprovalPolicy, e as CodexNetworkAccess } from './session-Bt9i9089.cjs';
1
+ import { P as PermissionMode, c as CodexSandboxMode, d as CodexApprovalPolicy, e as CodexNetworkAccess } from './session-BJbTzw3y.cjs';
2
2
  import { b as UserID } from './id-BwPJtWxW.cjs';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { P as PermissionMode, A as AgenticToolName } from '../session-Bt9i9089.cjs';
1
+ import { P as PermissionMode, A as AgenticToolName } from '../session-BJbTzw3y.cjs';
2
2
  import '../id-BwPJtWxW.cjs';
3
3
  import '../context-ByxGjp5l.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { P as PermissionMode, A as AgenticToolName } from '../session-Da9rf6n5.js';
1
+ import { P as PermissionMode, A as AgenticToolName } from '../session-DLVkt-jY.js';
2
2
  import '../id-BwPJtWxW.js';
3
3
  import '../context-ByxGjp5l.js';
4
4
 
@@ -20,9 +20,29 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/utils/url.ts
21
21
  var url_exports = {};
22
22
  __export(url_exports, {
23
+ getBoardUrl: () => getBoardUrl,
24
+ getSessionUrl: () => getSessionUrl,
23
25
  normalizeOptionalHttpUrl: () => normalizeOptionalHttpUrl
24
26
  });
25
27
  module.exports = __toCommonJS(url_exports);
28
+
29
+ // src/lib/ids.ts
30
+ var import_uuid = require("uuid");
31
+ function shortId(uuid, length = 8) {
32
+ const cleanUuid = uuid.replace(/-/g, "");
33
+ return cleanUuid.slice(0, Math.min(length, 32));
34
+ }
35
+
36
+ // src/utils/url.ts
37
+ function getSessionUrl(sessionId, boardId, boardSlug, baseUrl) {
38
+ if (!boardId) return null;
39
+ const boardParam = boardSlug || shortId(boardId);
40
+ return `${baseUrl}/b/${boardParam}/${shortId(sessionId)}`;
41
+ }
42
+ function getBoardUrl(boardId, boardSlug, baseUrl) {
43
+ const boardParam = boardSlug || shortId(boardId);
44
+ return `${baseUrl}/b/${boardParam}`;
45
+ }
26
46
  function normalizeOptionalHttpUrl(value, fieldName = "value") {
27
47
  if (value === null || value === void 0) {
28
48
  return void 0;
@@ -49,5 +69,7 @@ function normalizeOptionalHttpUrl(value, fieldName = "value") {
49
69
  }
50
70
  // Annotate the CommonJS export names for ESM import in node:
51
71
  0 && (module.exports = {
72
+ getBoardUrl,
73
+ getSessionUrl,
52
74
  normalizeOptionalHttpUrl
53
75
  });