agor-live 0.23.1 → 0.23.2

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 (469) hide show
  1. package/dist/core/claude/index.cjs +51 -27
  2. package/dist/core/claude/index.js +51 -27
  3. package/dist/core/claude-cli/index.cjs +13 -0
  4. package/dist/core/claude-cli/index.js +13 -0
  5. package/dist/core/claude-cli/pricing.d.ts.map +1 -1
  6. package/dist/core/client/index.cjs +17 -0
  7. package/dist/core/client/index.js +16 -0
  8. package/dist/core/db/index.cjs +618 -421
  9. package/dist/core/db/index.js +550 -353
  10. package/dist/core/db/repositories/boards.d.ts +27 -0
  11. package/dist/core/db/repositories/boards.d.ts.map +1 -1
  12. package/dist/core/db/repositories/branches.d.ts +11 -1
  13. package/dist/core/db/repositories/branches.d.ts.map +1 -1
  14. package/dist/core/db/repositories/gateway-channels.d.ts +9 -0
  15. package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
  16. package/dist/core/db/repositories/sessions.d.ts +7 -0
  17. package/dist/core/db/repositories/sessions.d.ts.map +1 -1
  18. package/dist/core/environment/render-snapshot.cjs +6 -2
  19. package/dist/core/environment/render-snapshot.d.ts +2 -0
  20. package/dist/core/environment/render-snapshot.d.ts.map +1 -1
  21. package/dist/core/environment/render-snapshot.js +6 -2
  22. package/dist/core/environment/variable-resolver.cjs +3 -1
  23. package/dist/core/environment/variable-resolver.js +3 -1
  24. package/dist/core/index.cjs +684 -486
  25. package/dist/core/index.js +684 -486
  26. package/dist/core/lib/feathers-validation.cjs +3 -0
  27. package/dist/core/lib/feathers-validation.d.ts +1 -0
  28. package/dist/core/lib/feathers-validation.d.ts.map +1 -1
  29. package/dist/core/lib/feathers-validation.js +3 -0
  30. package/dist/core/local-actions/index.cjs +123 -56
  31. package/dist/core/local-actions/index.js +121 -54
  32. package/dist/core/mcp/index.cjs +21 -3
  33. package/dist/core/mcp/index.d.ts +1 -1
  34. package/dist/core/mcp/index.d.ts.map +1 -1
  35. package/dist/core/mcp/index.js +18 -3
  36. package/dist/core/mcp/template-patterns.d.ts +15 -0
  37. package/dist/core/mcp/template-patterns.d.ts.map +1 -0
  38. package/dist/core/mcp/template-resolver.d.ts +13 -0
  39. package/dist/core/mcp/template-resolver.d.ts.map +1 -1
  40. package/dist/core/models/browser.cjs +6 -0
  41. package/dist/core/models/browser.js +6 -0
  42. package/dist/core/models/claude.d.ts.map +1 -1
  43. package/dist/core/models/index.cjs +6 -0
  44. package/dist/core/models/index.js +6 -0
  45. package/dist/core/seed/index.cjs +360 -216
  46. package/dist/core/seed/index.js +329 -185
  47. package/dist/core/templates/handlebars-helpers.cjs +3 -1
  48. package/dist/core/templates/handlebars-helpers.d.ts +5 -0
  49. package/dist/core/templates/handlebars-helpers.d.ts.map +1 -1
  50. package/dist/core/templates/handlebars-helpers.js +3 -1
  51. package/dist/core/tools/mcp/auth-secrets.cjs +3460 -3
  52. package/dist/core/tools/mcp/auth-secrets.d.ts.map +1 -1
  53. package/dist/core/tools/mcp/auth-secrets.js +3477 -3
  54. package/dist/core/tools/mcp/http-headers.cjs +17 -1
  55. package/dist/core/tools/mcp/http-headers.d.ts.map +1 -1
  56. package/dist/core/tools/mcp/http-headers.js +15 -1
  57. package/dist/core/tools/mcp/oauth-refresh.cjs +67 -43
  58. package/dist/core/tools/mcp/oauth-refresh.js +65 -41
  59. package/dist/core/types/board.d.ts +12 -0
  60. package/dist/core/types/board.d.ts.map +1 -1
  61. package/dist/core/types/gateway.d.ts +14 -0
  62. package/dist/core/types/gateway.d.ts.map +1 -1
  63. package/dist/core/types/index.cjs +17 -0
  64. package/dist/core/types/index.js +16 -0
  65. package/dist/core/unix/index.cjs +67 -0
  66. package/dist/core/unix/index.js +67 -0
  67. package/dist/daemon/auth/executor-runtime-scope.d.ts.map +1 -1
  68. package/dist/daemon/auth/executor-runtime-scope.js +19 -5
  69. package/dist/daemon/auth/executor-session-token.d.ts +15 -0
  70. package/dist/daemon/auth/executor-session-token.d.ts.map +1 -0
  71. package/dist/daemon/auth/executor-session-token.js +17 -0
  72. package/dist/daemon/auth/issue-browser-tokens-hook.d.ts +24 -0
  73. package/dist/daemon/auth/issue-browser-tokens-hook.d.ts.map +1 -0
  74. package/dist/daemon/auth/issue-browser-tokens-hook.js +95 -0
  75. package/dist/daemon/auth/service-jwt-strategy.d.ts.map +1 -1
  76. package/dist/daemon/auth/service-jwt-strategy.js +14 -2
  77. package/dist/daemon/declarations.d.ts +1 -0
  78. package/dist/daemon/declarations.d.ts.map +1 -1
  79. package/dist/daemon/index.js +1365 -418
  80. package/dist/daemon/main.js +1365 -418
  81. package/dist/daemon/mcp/server.js +294 -31
  82. package/dist/daemon/mcp/tools/analytics.js +73 -24
  83. package/dist/daemon/mcp/tools/artifacts.js +73 -24
  84. package/dist/daemon/mcp/tools/boards.js +73 -24
  85. package/dist/daemon/mcp/tools/branches.js +73 -24
  86. package/dist/daemon/mcp/tools/card-types.js +73 -24
  87. package/dist/daemon/mcp/tools/cards.js +73 -24
  88. package/dist/daemon/mcp/tools/environment.js +73 -24
  89. package/dist/daemon/mcp/tools/gateway-channels.d.ts.map +1 -1
  90. package/dist/daemon/mcp/tools/gateway-channels.js +190 -38
  91. package/dist/daemon/mcp/tools/knowledge.js +73 -24
  92. package/dist/daemon/mcp/tools/mcp-servers.js +73 -24
  93. package/dist/daemon/mcp/tools/messages.js +73 -24
  94. package/dist/daemon/mcp/tools/proxies.js +73 -24
  95. package/dist/daemon/mcp/tools/repos.js +73 -24
  96. package/dist/daemon/mcp/tools/schedules.js +73 -24
  97. package/dist/daemon/mcp/tools/search.js +73 -24
  98. package/dist/daemon/mcp/tools/sessions.js +73 -24
  99. package/dist/daemon/mcp/tools/tasks.js +73 -24
  100. package/dist/daemon/mcp/tools/users.js +76 -27
  101. package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
  102. package/dist/daemon/mcp/tools/widgets.js +257 -99
  103. package/dist/daemon/oauth-auth-helpers.d.ts +35 -0
  104. package/dist/daemon/oauth-auth-helpers.d.ts.map +1 -0
  105. package/dist/daemon/oauth-auth-helpers.js +14 -0
  106. package/dist/daemon/register-hooks.d.ts +1 -0
  107. package/dist/daemon/register-hooks.d.ts.map +1 -1
  108. package/dist/daemon/register-hooks.js +304 -53
  109. package/dist/daemon/register-routes.d.ts.map +1 -1
  110. package/dist/daemon/register-routes.js +738 -288
  111. package/dist/daemon/register-services.d.ts.map +1 -1
  112. package/dist/daemon/register-services.js +386 -155
  113. package/dist/daemon/services/boards.d.ts +5 -0
  114. package/dist/daemon/services/boards.d.ts.map +1 -1
  115. package/dist/daemon/services/boards.js +7 -0
  116. package/dist/daemon/services/branches.d.ts.map +1 -1
  117. package/dist/daemon/services/branches.js +31 -2
  118. package/dist/daemon/services/claude-models.d.ts.map +1 -1
  119. package/dist/daemon/services/claude-models.js +4 -1
  120. package/dist/daemon/services/gateway.d.ts +15 -0
  121. package/dist/daemon/services/gateway.d.ts.map +1 -1
  122. package/dist/daemon/services/gateway.js +34 -0
  123. package/dist/daemon/services/health-monitor.d.ts.map +1 -1
  124. package/dist/daemon/services/health-monitor.js +10 -7
  125. package/dist/daemon/services/session-streams.d.ts +29 -0
  126. package/dist/daemon/services/session-streams.d.ts.map +1 -0
  127. package/dist/daemon/services/session-streams.js +84 -0
  128. package/dist/daemon/services/session-token-service.d.ts.map +1 -1
  129. package/dist/daemon/services/session-token-service.js +8 -4
  130. package/dist/daemon/setup/index.js +43 -11
  131. package/dist/daemon/setup/socketio.d.ts.map +1 -1
  132. package/dist/daemon/setup/socketio.js +43 -11
  133. package/dist/daemon/startup.d.ts.map +1 -1
  134. package/dist/daemon/startup.js +37 -16
  135. package/dist/daemon/utils/authorization.js +19 -5
  136. package/dist/daemon/utils/emit-service-event.d.ts +56 -0
  137. package/dist/daemon/utils/emit-service-event.d.ts.map +1 -0
  138. package/dist/daemon/utils/emit-service-event.js +23 -0
  139. package/dist/daemon/utils/mcp-header-secrets.d.ts +3 -5
  140. package/dist/daemon/utils/mcp-header-secrets.d.ts.map +1 -1
  141. package/dist/daemon/utils/mcp-header-secrets.js +31 -2
  142. package/dist/daemon/utils/realtime-access-cache.d.ts +9 -0
  143. package/dist/daemon/utils/realtime-access-cache.d.ts.map +1 -1
  144. package/dist/daemon/utils/realtime-access-cache.js +24 -0
  145. package/dist/daemon/utils/realtime-publish.d.ts +24 -0
  146. package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
  147. package/dist/daemon/utils/realtime-publish.js +120 -2
  148. package/dist/daemon/utils/session-queue-tenant-scope.d.ts +24 -0
  149. package/dist/daemon/utils/session-queue-tenant-scope.d.ts.map +1 -0
  150. package/dist/daemon/utils/session-queue-tenant-scope.js +133 -0
  151. package/dist/daemon/widgets/gateway-token/index.d.ts +114 -0
  152. package/dist/daemon/widgets/gateway-token/index.d.ts.map +1 -0
  153. package/dist/daemon/widgets/gateway-token/index.js +14711 -0
  154. package/dist/daemon/widgets/index.d.ts.map +1 -1
  155. package/dist/daemon/widgets/index.js +190 -16
  156. package/dist/daemon/widgets/registry.d.ts +7 -0
  157. package/dist/daemon/widgets/registry.d.ts.map +1 -1
  158. package/dist/daemon/widgets/submissions.js +12 -9
  159. package/dist/executor/commands/git.d.ts.map +1 -1
  160. package/dist/executor/commands/git.js +2 -0
  161. package/dist/executor/db/feathers-repositories.d.ts +19 -1
  162. package/dist/executor/db/feathers-repositories.d.ts.map +1 -1
  163. package/dist/executor/db/feathers-repositories.js +31 -1
  164. package/dist/executor/handlers/sdk/claude.d.ts.map +1 -1
  165. package/dist/executor/handlers/sdk/claude.js +1 -1
  166. package/dist/executor/handlers/sdk/codex.d.ts.map +1 -1
  167. package/dist/executor/handlers/sdk/codex.js +1 -1
  168. package/dist/executor/handlers/sdk/copilot.d.ts.map +1 -1
  169. package/dist/executor/handlers/sdk/copilot.js +1 -1
  170. package/dist/executor/handlers/sdk/cursor.d.ts.map +1 -1
  171. package/dist/executor/handlers/sdk/cursor.js +1 -0
  172. package/dist/executor/handlers/sdk/gemini.d.ts.map +1 -1
  173. package/dist/executor/handlers/sdk/gemini.js +1 -1
  174. package/dist/executor/handlers/sdk/opencode.d.ts.map +1 -1
  175. package/dist/executor/handlers/sdk/opencode.js +1 -1
  176. package/dist/executor/payload-types.d.ts +5 -5
  177. package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts +8 -1
  178. package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
  179. package/dist/executor/sdk-handlers/base/mcp-scoping.js +58 -6
  180. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +2 -2
  181. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
  182. package/dist/executor/sdk-handlers/claude/claude-tool.js +2 -2
  183. package/dist/executor/sdk-handlers/claude/prompt-service.d.ts +13 -3
  184. package/dist/executor/sdk-handlers/claude/prompt-service.d.ts.map +1 -1
  185. package/dist/executor/sdk-handlers/claude/prompt-service.js +16 -3
  186. package/dist/executor/sdk-handlers/claude/query-builder.d.ts +2 -1
  187. package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
  188. package/dist/executor/sdk-handlers/claude/query-builder.js +2 -1
  189. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +2 -2
  190. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
  191. package/dist/executor/sdk-handlers/codex/codex-tool.js +2 -2
  192. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +3 -2
  193. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
  194. package/dist/executor/sdk-handlers/codex/prompt-service.js +70 -6
  195. package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts +2 -2
  196. package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts.map +1 -1
  197. package/dist/executor/sdk-handlers/copilot/copilot-tool.js +2 -2
  198. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +3 -2
  199. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
  200. package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -1
  201. package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +2 -2
  202. package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +1 -1
  203. package/dist/executor/sdk-handlers/gemini/gemini-tool.js +2 -2
  204. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +3 -2
  205. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
  206. package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -1
  207. package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts +3 -2
  208. package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts.map +1 -1
  209. package/dist/executor/sdk-handlers/opencode/opencode-tool.js +4 -1
  210. package/dist/executor/services/feathers-client.d.ts.map +1 -1
  211. package/dist/executor/services/feathers-client.js +119 -20
  212. package/dist/ui/assets/AgorEmojiPickerInner-leeNywMc.js +1 -0
  213. package/dist/ui/assets/App-Dpl4Cc0U.js +4 -0
  214. package/dist/ui/assets/App-Dpl4Cc0U.js.gz +0 -0
  215. package/dist/ui/assets/AppNode-wN3UZlFK.js +1 -0
  216. package/dist/ui/assets/AppNode-wN3UZlFK.js.gz +0 -0
  217. package/dist/ui/assets/{ArtifactConsentModal-oMMzRn8L.js → ArtifactConsentModal-DjzXcP_L.js} +1 -1
  218. package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js.gz +0 -0
  219. package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js +9 -0
  220. package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js.gz +0 -0
  221. package/dist/ui/assets/ArtifactNode-DISy2T-6.js +9 -0
  222. package/dist/ui/assets/ArtifactNode-DISy2T-6.js.gz +0 -0
  223. package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js +19 -0
  224. package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js.gz +0 -0
  225. package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js +34 -0
  226. package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js.gz +0 -0
  227. package/dist/ui/assets/{CodeEditor.inner-Cuj6RuLL.js → CodeEditor.inner-HmSdTLW5.js} +1 -1
  228. package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js.gz +0 -0
  229. package/dist/ui/assets/ConversationView-mWaA-B1f.js +1 -0
  230. package/dist/ui/assets/ConversationView-mWaA-B1f.js.gz +0 -0
  231. package/dist/ui/assets/{EmbeddedTerminal-Lx5I9EOJ.js → EmbeddedTerminal-NNoyPA81.js} +1 -1
  232. package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js.gz +0 -0
  233. package/dist/ui/assets/KnowledgePage-CkxVnRvz.js +24 -0
  234. package/dist/ui/assets/KnowledgePage-CkxVnRvz.js.gz +0 -0
  235. package/dist/ui/assets/{MarketingScreenshotPage-CmDPBHOl.js → MarketingScreenshotPage-B86Gs8jx.js} +2 -2
  236. package/dist/ui/assets/MarketingScreenshotPage-B86Gs8jx.js.gz +0 -0
  237. package/dist/ui/assets/MobileApp-BPs-SXvz.js +1 -0
  238. package/dist/ui/assets/MobileApp-BPs-SXvz.js.gz +0 -0
  239. package/dist/ui/assets/SessionCanvas-xVfDoEtz.js +13 -0
  240. package/dist/ui/assets/SessionCanvas-xVfDoEtz.js.gz +0 -0
  241. package/dist/ui/assets/{StreamdownDemoPage-okKKR2QH.js → StreamdownDemoPage-CvWLzVsv.js} +2 -2
  242. package/dist/ui/assets/StreamdownDemoPage-CvWLzVsv.js.gz +0 -0
  243. package/dist/ui/assets/{TerminalModal-D9jMGZXv.js → TerminalModal-ExOgsuOP.js} +2 -2
  244. package/dist/ui/assets/TerminalModal-ExOgsuOP.js.gz +0 -0
  245. package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js +1 -0
  246. package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js.gz +0 -0
  247. package/dist/ui/assets/{ThemedSyntaxHighlighter.inner-C1FdIHn0.js → ThemedSyntaxHighlighter.inner-rpCN9S6K.js} +1 -1
  248. package/dist/ui/assets/{antd-DT5ackd0.js → antd-BCqimh1J.js} +5 -5
  249. package/dist/ui/assets/{antd-DT5ackd0.js.gz → antd-BCqimh1J.js.gz} +0 -0
  250. package/dist/ui/assets/architecture-U656AL7Q-BxSQIjrE.js +1 -0
  251. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-DwTJGGoj.js → architectureDiagram-VXUJARFQ-pDpGHSqT.js} +1 -1
  252. package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js.gz +0 -0
  253. package/dist/ui/assets/{blockDiagram-VD42YOAC-Dh1_TVW2.js → blockDiagram-VD42YOAC-uP8JTJpK.js} +1 -1
  254. package/dist/ui/assets/blockDiagram-VD42YOAC-uP8JTJpK.js.gz +0 -0
  255. package/dist/ui/assets/{c4Diagram-YG6GDRKO-B1e96AcB.js → c4Diagram-YG6GDRKO-qQe72Mm7.js} +1 -1
  256. package/dist/ui/assets/c4Diagram-YG6GDRKO-qQe72Mm7.js.gz +0 -0
  257. package/dist/ui/assets/channel-CoUBs6Zn.js +1 -0
  258. package/dist/ui/assets/{chunk-4BX2VUAB-BODpCjJx.js → chunk-4BX2VUAB-sz-YE8Nt.js} +1 -1
  259. package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js +3 -0
  260. package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js.gz +0 -0
  261. package/dist/ui/assets/chunk-55IACEB6-BS04dgKF.js +1 -0
  262. package/dist/ui/assets/{chunk-ABZYJK2D-DCTXWSzV.js → chunk-ABZYJK2D-t3Gkphds.js} +3 -3
  263. package/dist/ui/assets/chunk-ABZYJK2D-t3Gkphds.js.gz +0 -0
  264. package/dist/ui/assets/{chunk-AGHRB4JF-CbNphBjE.js → chunk-AGHRB4JF-D_QmWxbY.js} +1 -1
  265. package/dist/ui/assets/chunk-AGHRB4JF-D_QmWxbY.js.gz +0 -0
  266. package/dist/ui/assets/{chunk-ATLVNIR6-rWg3qxof.js → chunk-ATLVNIR6-Bmg7-Ufz.js} +1 -1
  267. package/dist/ui/assets/chunk-ATLVNIR6-Bmg7-Ufz.js.gz +0 -0
  268. package/dist/ui/assets/{chunk-B4BG7PRW-CgtLCbpE.js → chunk-B4BG7PRW-dnSEE1u-.js} +1 -1
  269. package/dist/ui/assets/chunk-B4BG7PRW-dnSEE1u-.js.gz +0 -0
  270. package/dist/ui/assets/{chunk-CVBHYZKI-DTL6Zgr0.js → chunk-CVBHYZKI-BStaYnF0.js} +1 -1
  271. package/dist/ui/assets/{chunk-DI55MBZ5-Dwvx2Kva.js → chunk-DI55MBZ5-28dvx6o3.js} +1 -1
  272. package/dist/ui/assets/chunk-DI55MBZ5-28dvx6o3.js.gz +0 -0
  273. package/dist/ui/assets/chunk-EXTU4WIE-X-FURkEh.js +1 -0
  274. package/dist/ui/assets/{chunk-FMBD7UC4-BogA_9CV.js → chunk-FMBD7UC4-C_63gC9S.js} +1 -1
  275. package/dist/ui/assets/{chunk-HN2XXSSU-2blQO3Gb.js → chunk-HN2XXSSU-UFD374KI.js} +1 -1
  276. package/dist/ui/assets/chunk-HN2XXSSU-UFD374KI.js.gz +0 -0
  277. package/dist/ui/assets/{chunk-JA3XYJ7Z-Cr1rmOui.js → chunk-JA3XYJ7Z-B60hLNeR.js} +1 -1
  278. package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js.gz +0 -0
  279. package/dist/ui/assets/{chunk-JZLCHNYA-BsgZ79Fa.js → chunk-JZLCHNYA-ButC6pwN.js} +1 -1
  280. package/dist/ui/assets/chunk-JZLCHNYA-ButC6pwN.js.gz +0 -0
  281. package/dist/ui/assets/{chunk-MI3HLSF2-dwYeUy5S.js → chunk-MI3HLSF2-BivYzoSV.js} +1 -1
  282. package/dist/ui/assets/chunk-MI3HLSF2-BivYzoSV.js.gz +0 -0
  283. package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js +2 -0
  284. package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js.gz +0 -0
  285. package/dist/ui/assets/{chunk-QN33PNHL-DxdIDCAa.js → chunk-QN33PNHL-tXtHZpaG.js} +1 -1
  286. package/dist/ui/assets/{chunk-QXUST7PY-BCK2V0i-.js → chunk-QXUST7PY-DATib_Vv.js} +1 -1
  287. package/dist/ui/assets/chunk-QXUST7PY-DATib_Vv.js.gz +0 -0
  288. package/dist/ui/assets/chunk-QZHKN3VN-y6l249e5.js +1 -0
  289. package/dist/ui/assets/{chunk-S3R3BYOJ-GP3zIxrB.js → chunk-S3R3BYOJ-BEtfmflI.js} +1 -1
  290. package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js.gz +0 -0
  291. package/dist/ui/assets/{chunk-TZMSLE5B-dX5RaM6g.js → chunk-TZMSLE5B-BY1ZtogK.js} +1 -1
  292. package/dist/ui/assets/chunk-TZMSLE5B-BY1ZtogK.js.gz +0 -0
  293. package/dist/ui/assets/classDiagram-2ON5EDUG-BYvq-uPY.js +1 -0
  294. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BYvq-uPY.js +1 -0
  295. package/dist/ui/assets/constants-CYzQKfD1.js +1 -0
  296. package/dist/ui/assets/{cose-bilkent-S5V4N54A-Dx0BJVDl.js → cose-bilkent-S5V4N54A-DPvYrqGG.js} +1 -1
  297. package/dist/ui/assets/cose-bilkent-S5V4N54A-DPvYrqGG.js.gz +0 -0
  298. package/dist/ui/assets/{dagre-6UL2VRFP-DiQSUxqN.js → dagre-6UL2VRFP-D800J6qb.js} +1 -1
  299. package/dist/ui/assets/dagre-6UL2VRFP-D800J6qb.js.gz +0 -0
  300. package/dist/ui/assets/{dagre-Bekd9Vdj.js → dagre-TNc4wezg.js} +1 -1
  301. package/dist/ui/assets/dagre-TNc4wezg.js.gz +0 -0
  302. package/dist/ui/assets/{diagram-PSM6KHXK-DtJnDQjc.js → diagram-PSM6KHXK-CGdP9F-X.js} +1 -1
  303. package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js.gz +0 -0
  304. package/dist/ui/assets/{diagram-QEK2KX5R-CobkCRdj.js → diagram-QEK2KX5R-BD5lOCe5.js} +1 -1
  305. package/dist/ui/assets/diagram-QEK2KX5R-BD5lOCe5.js.gz +0 -0
  306. package/dist/ui/assets/{diagram-S2PKOQOG-DHEZYivc.js → diagram-S2PKOQOG-cp3l22vN.js} +1 -1
  307. package/dist/ui/assets/diagram-S2PKOQOG-cp3l22vN.js.gz +0 -0
  308. package/dist/ui/assets/editor-Cr0W5BQI.js +39 -0
  309. package/dist/ui/assets/editor-Cr0W5BQI.js.gz +0 -0
  310. package/dist/ui/assets/{emoji-B0hLmSLZ.js → emoji-Bv3m24sO.js} +1 -1
  311. package/dist/ui/assets/emoji-Bv3m24sO.js.gz +0 -0
  312. package/dist/ui/assets/{erDiagram-Q2GNP2WA-BVNeTZPQ.js → erDiagram-Q2GNP2WA-CQSXRgqr.js} +1 -1
  313. package/dist/ui/assets/erDiagram-Q2GNP2WA-CQSXRgqr.js.gz +0 -0
  314. package/dist/ui/assets/{flowDiagram-NV44I4VS-C73VFdyk.js → flowDiagram-NV44I4VS-CKcKpkph.js} +1 -1
  315. package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js.gz +0 -0
  316. package/dist/ui/assets/{ganttDiagram-LVOFAZNH-B_RosuD1.js → ganttDiagram-LVOFAZNH-DlAHzXO5.js} +1 -1
  317. package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js.gz +0 -0
  318. package/dist/ui/assets/{gitGraph-F6HP7TQM-DMFIqn4h.js → gitGraph-F6HP7TQM-DeuXy4B1.js} +1 -1
  319. package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-hxbgwNA1.js → gitGraphDiagram-NY62KEGX-aB-AI4Vq.js} +1 -1
  320. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js.gz +0 -0
  321. package/dist/ui/assets/index-B-qHc0o5.js +63 -0
  322. package/dist/ui/assets/index-B-qHc0o5.js.gz +0 -0
  323. package/dist/ui/assets/{info-NVLQJR56-DZ3K-w48.js → info-NVLQJR56-B9PG7xsc.js} +1 -1
  324. package/dist/ui/assets/{infoDiagram-ER5ION4S-CxnBJQu6.js → infoDiagram-ER5ION4S-C5Wpoqim.js} +1 -1
  325. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CHYNj-f8.js → journeyDiagram-XKPGCS4Q-CHLziqfS.js} +1 -1
  326. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHLziqfS.js.gz +0 -0
  327. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-DQPCCsj2.js → kanban-definition-3W4ZIXB7-Dq7GzQE_.js} +1 -1
  328. package/dist/ui/assets/kanban-definition-3W4ZIXB7-Dq7GzQE_.js.gz +0 -0
  329. package/dist/ui/assets/{line-DBRjKmfa.js → line-DHKNg83I.js} +1 -1
  330. package/dist/ui/assets/{linear-DFao5Wyp.js → linear-BvUfn0I8.js} +1 -1
  331. package/dist/ui/assets/linear-BvUfn0I8.js.gz +0 -0
  332. package/dist/ui/assets/{mermaid-parser.core-DYCfacHj.js → mermaid-parser.core-C6d9tKoo.js} +2 -2
  333. package/dist/ui/assets/mermaid-parser.core-C6d9tKoo.js.gz +0 -0
  334. package/dist/ui/assets/{mermaid.core-C6xGFSdE.js → mermaid.core-CxE5KezR.js} +3 -3
  335. package/dist/ui/assets/mermaid.core-CxE5KezR.js.gz +0 -0
  336. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-L3Pw-YM7.js → mindmap-definition-VGOIOE7T-DmPoQ48w.js} +1 -1
  337. package/dist/ui/assets/mindmap-definition-VGOIOE7T-DmPoQ48w.js.gz +0 -0
  338. package/dist/ui/assets/{packet-BFZMPI3H-CpL6iNoa.js → packet-BFZMPI3H-JZEkVZxU.js} +1 -1
  339. package/dist/ui/assets/{particles-CT8hcJOA.js → particles-CxMmUw86.js} +1 -1
  340. package/dist/ui/assets/particles-CxMmUw86.js.gz +0 -0
  341. package/dist/ui/assets/{pie-7BOR55EZ-hTqChbTo.js → pie-7BOR55EZ-_1II5pYQ.js} +1 -1
  342. package/dist/ui/assets/{pieDiagram-ADFJNKIX-Bf4Nou75.js → pieDiagram-ADFJNKIX-DrNkH33i.js} +1 -1
  343. package/dist/ui/assets/pieDiagram-ADFJNKIX-DrNkH33i.js.gz +0 -0
  344. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-DpjUTLB1.js → quadrantDiagram-AYHSOK5B-DOpC-HEF.js} +1 -1
  345. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DOpC-HEF.js.gz +0 -0
  346. package/dist/ui/assets/{radar-NHE76QYJ-myy7OENC.js → radar-NHE76QYJ-DDmqhzEZ.js} +1 -1
  347. package/dist/ui/assets/{reactflow-Cubtnk8i.js → reactflow-D98uPOMq.js} +1 -1
  348. package/dist/ui/assets/reactflow-D98uPOMq.js.gz +0 -0
  349. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-Bfrfh-0-.js → requirementDiagram-UZGBJVZJ-Bzx0iEPP.js} +1 -1
  350. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bzx0iEPP.js.gz +0 -0
  351. package/dist/ui/assets/{sandpack-C58bwfIS.js → sandpack-059Z4UWP.js} +1 -1
  352. package/dist/ui/assets/sandpack-059Z4UWP.js.gz +0 -0
  353. package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js +1 -0
  354. package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js.gz +0 -0
  355. package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-ClZAZ6va.js → sankeyDiagram-TZEHDZUN-Do9pvfDv.js} +1 -1
  356. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js.gz +0 -0
  357. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-CNgly63p.js → sequenceDiagram-WL72ISMW-CN8neUTA.js} +1 -1
  358. package/dist/ui/assets/sequenceDiagram-WL72ISMW-CN8neUTA.js.gz +0 -0
  359. package/dist/ui/assets/{src-DAeyG22O.js → src-DEbsv3pp.js} +2 -2
  360. package/dist/ui/assets/src-DEbsv3pp.js.gz +0 -0
  361. package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BrEAoDpE.js → stateDiagram-FKZM4ZOC-BluWJi8n.js} +1 -1
  362. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js.gz +0 -0
  363. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-DeyqBMDR.js +1 -0
  364. package/dist/ui/assets/{streamdown-BdAVfkeF.js → streamdown-BT1twtFc.js} +5 -5
  365. package/dist/ui/assets/streamdown-BT1twtFc.js.gz +0 -0
  366. package/dist/ui/assets/{syntax-BOfTnQiy.js → syntax-CBu6nLfm.js} +1 -1
  367. package/dist/ui/assets/syntax-CBu6nLfm.js.gz +0 -0
  368. package/dist/ui/assets/{timeline-definition-IT6M3QCI-CaRH3k4l.js → timeline-definition-IT6M3QCI-WdUNkiRj.js} +1 -1
  369. package/dist/ui/assets/timeline-definition-IT6M3QCI-WdUNkiRj.js.gz +0 -0
  370. package/dist/ui/assets/{treemap-KMMF4GRG-CUaLOV_B.js → treemap-KMMF4GRG-CoriU4Jl.js} +1 -1
  371. package/dist/ui/assets/{useUserLocalStorage-C8sgXgXR.js → useUserLocalStorage-GidNiOPC.js} +1 -1
  372. package/dist/ui/assets/useUserLocalStorage-GidNiOPC.js.gz +0 -0
  373. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-BlhkI9T_.js → xychartDiagram-PRI3JC2R-CgBAKNt2.js} +1 -1
  374. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CgBAKNt2.js.gz +0 -0
  375. package/dist/ui/index.html +9 -8
  376. package/dist/ui/index.html.gz +0 -0
  377. package/package.json +2 -2
  378. package/dist/ui/assets/AgorEmojiPickerInner-DQjr8M3_.js +0 -1
  379. package/dist/ui/assets/App-hJtcOxHv.js +0 -5
  380. package/dist/ui/assets/App-hJtcOxHv.js.gz +0 -0
  381. package/dist/ui/assets/AppNode-BhuMpn8O.js +0 -1
  382. package/dist/ui/assets/AppNode-BhuMpn8O.js.gz +0 -0
  383. package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js.gz +0 -0
  384. package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js +0 -9
  385. package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js.gz +0 -0
  386. package/dist/ui/assets/ArtifactNode-BzQcrwFS.js +0 -9
  387. package/dist/ui/assets/ArtifactNode-BzQcrwFS.js.gz +0 -0
  388. package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js +0 -19
  389. package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js.gz +0 -0
  390. package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js +0 -34
  391. package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js.gz +0 -0
  392. package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js.gz +0 -0
  393. package/dist/ui/assets/ConversationView-9-3ma1u-.js +0 -1
  394. package/dist/ui/assets/ConversationView-9-3ma1u-.js.gz +0 -0
  395. package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js.gz +0 -0
  396. package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js +0 -24
  397. package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js.gz +0 -0
  398. package/dist/ui/assets/MarketingScreenshotPage-CmDPBHOl.js.gz +0 -0
  399. package/dist/ui/assets/MobileApp-BpgSG_gz.js +0 -1
  400. package/dist/ui/assets/MobileApp-BpgSG_gz.js.gz +0 -0
  401. package/dist/ui/assets/SessionCanvas-B6_mtlxK.js +0 -13
  402. package/dist/ui/assets/SessionCanvas-B6_mtlxK.js.gz +0 -0
  403. package/dist/ui/assets/StreamdownDemoPage-okKKR2QH.js.gz +0 -0
  404. package/dist/ui/assets/TerminalModal-D9jMGZXv.js.gz +0 -0
  405. package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js +0 -1
  406. package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js.gz +0 -0
  407. package/dist/ui/assets/architecture-U656AL7Q-DMnxkQRZ.js +0 -1
  408. package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js.gz +0 -0
  409. package/dist/ui/assets/blockDiagram-VD42YOAC-Dh1_TVW2.js.gz +0 -0
  410. package/dist/ui/assets/c4Diagram-YG6GDRKO-B1e96AcB.js.gz +0 -0
  411. package/dist/ui/assets/channel-Jv4dT4S5.js +0 -1
  412. package/dist/ui/assets/chunk-55IACEB6-lJXvUquf.js +0 -1
  413. package/dist/ui/assets/chunk-ABZYJK2D-DCTXWSzV.js.gz +0 -0
  414. package/dist/ui/assets/chunk-AGHRB4JF-CbNphBjE.js.gz +0 -0
  415. package/dist/ui/assets/chunk-ATLVNIR6-rWg3qxof.js.gz +0 -0
  416. package/dist/ui/assets/chunk-B4BG7PRW-CgtLCbpE.js.gz +0 -0
  417. package/dist/ui/assets/chunk-DI55MBZ5-Dwvx2Kva.js.gz +0 -0
  418. package/dist/ui/assets/chunk-EXTU4WIE-DHyaqTsP.js +0 -1
  419. package/dist/ui/assets/chunk-HN2XXSSU-2blQO3Gb.js.gz +0 -0
  420. package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js.gz +0 -0
  421. package/dist/ui/assets/chunk-JZLCHNYA-BsgZ79Fa.js.gz +0 -0
  422. package/dist/ui/assets/chunk-MI3HLSF2-dwYeUy5S.js.gz +0 -0
  423. package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js +0 -2
  424. package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js.gz +0 -0
  425. package/dist/ui/assets/chunk-QXUST7PY-BCK2V0i-.js.gz +0 -0
  426. package/dist/ui/assets/chunk-QZHKN3VN-CALjGrEE.js +0 -1
  427. package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js.gz +0 -0
  428. package/dist/ui/assets/chunk-TZMSLE5B-dX5RaM6g.js.gz +0 -0
  429. package/dist/ui/assets/classDiagram-2ON5EDUG-C3_RVP70.js +0 -1
  430. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-C3_RVP70.js +0 -1
  431. package/dist/ui/assets/constants-GjIDNVyt.js +0 -1
  432. package/dist/ui/assets/cose-bilkent-S5V4N54A-Dx0BJVDl.js.gz +0 -0
  433. package/dist/ui/assets/dagre-6UL2VRFP-DiQSUxqN.js.gz +0 -0
  434. package/dist/ui/assets/dagre-Bekd9Vdj.js.gz +0 -0
  435. package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js.gz +0 -0
  436. package/dist/ui/assets/diagram-QEK2KX5R-CobkCRdj.js.gz +0 -0
  437. package/dist/ui/assets/diagram-S2PKOQOG-DHEZYivc.js.gz +0 -0
  438. package/dist/ui/assets/editor-DQIG-JYZ.js +0 -43
  439. package/dist/ui/assets/editor-DQIG-JYZ.js.gz +0 -0
  440. package/dist/ui/assets/emoji-B0hLmSLZ.js.gz +0 -0
  441. package/dist/ui/assets/erDiagram-Q2GNP2WA-BVNeTZPQ.js.gz +0 -0
  442. package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js.gz +0 -0
  443. package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js.gz +0 -0
  444. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js.gz +0 -0
  445. package/dist/ui/assets/index-DTz1Dif6.js +0 -64
  446. package/dist/ui/assets/index-DTz1Dif6.js.gz +0 -0
  447. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHYNj-f8.js.gz +0 -0
  448. package/dist/ui/assets/kanban-definition-3W4ZIXB7-DQPCCsj2.js.gz +0 -0
  449. package/dist/ui/assets/linear-DFao5Wyp.js.gz +0 -0
  450. package/dist/ui/assets/mermaid-parser.core-DYCfacHj.js.gz +0 -0
  451. package/dist/ui/assets/mermaid.core-C6xGFSdE.js.gz +0 -0
  452. package/dist/ui/assets/mindmap-definition-VGOIOE7T-L3Pw-YM7.js.gz +0 -0
  453. package/dist/ui/assets/particles-CT8hcJOA.js.gz +0 -0
  454. package/dist/ui/assets/pieDiagram-ADFJNKIX-Bf4Nou75.js.gz +0 -0
  455. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DpjUTLB1.js.gz +0 -0
  456. package/dist/ui/assets/reactflow-Cubtnk8i.js.gz +0 -0
  457. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bfrfh-0-.js.gz +0 -0
  458. package/dist/ui/assets/sandpack-C58bwfIS.js.gz +0 -0
  459. package/dist/ui/assets/sandpackDefaults-Bkga8XAE.js +0 -1
  460. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js.gz +0 -0
  461. package/dist/ui/assets/sequenceDiagram-WL72ISMW-CNgly63p.js.gz +0 -0
  462. package/dist/ui/assets/src-DAeyG22O.js.gz +0 -0
  463. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js.gz +0 -0
  464. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BNL52_oN.js +0 -1
  465. package/dist/ui/assets/streamdown-BdAVfkeF.js.gz +0 -0
  466. package/dist/ui/assets/syntax-BOfTnQiy.js.gz +0 -0
  467. package/dist/ui/assets/timeline-definition-IT6M3QCI-CaRH3k4l.js.gz +0 -0
  468. package/dist/ui/assets/useUserLocalStorage-C8sgXgXR.js.gz +0 -0
  469. package/dist/ui/assets/xychartDiagram-PRI3JC2R-BlhkI9T_.js.gz +0 -0
@@ -107,6 +107,11 @@ export declare class BoardsService extends DrizzleService<Board, Partial<Board>,
107
107
  * Custom method: Batch upsert board objects
108
108
  */
109
109
  batchUpsertBoardObjects(boardId: string, objects: Record<string, BoardObject>, _params?: BoardParams): Promise<Board>;
110
+ /**
111
+ * Custom method: Atomically shallow-merge field patches into existing board
112
+ * objects (used by z-order reorder to persist only the changed zIndex).
113
+ */
114
+ mergeBoardObjectFields(boardId: string, patches: Record<string, Partial<BoardObject>>, _params?: BoardParams): Promise<Board>;
110
115
  /**
111
116
  * Custom method: Delete a zone and handle associated sessions
112
117
  */
@@ -1 +1 @@
1
- {"version":3,"file":"boards.d.ts","sourceRoot":"","sources":["../../src/services/boards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boards.d.ts","sourceRoot":"","sources":["../../src/services/boards.ts"],"names":[],"mappings":"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"}
@@ -473,6 +473,13 @@ var BoardsService = class extends DrizzleService {
473
473
  async batchUpsertBoardObjects(boardId, objects, _params) {
474
474
  return this.boardRepo.batchUpsertBoardObjects(boardId, objects);
475
475
  }
476
+ /**
477
+ * Custom method: Atomically shallow-merge field patches into existing board
478
+ * objects (used by z-order reorder to persist only the changed zIndex).
479
+ */
480
+ async mergeBoardObjectFields(boardId, patches, _params) {
481
+ return this.boardRepo.mergeBoardObjectFields(boardId, patches);
482
+ }
476
483
  /**
477
484
  * Custom method: Delete a zone and handle associated sessions
478
485
  */
@@ -1 +1 @@
1
- {"version":3,"file":"branches.d.ts","sourceRoot":"","sources":["../../src/services/branches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branches.d.ts","sourceRoot":"","sources":["../../src/services/branches.ts"],"names":[],"mappings":"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"}
@@ -557,6 +557,27 @@ function shouldUseCloneReferencePath() {
557
557
  return (config.execution?.unix_user_mode ?? "simple") !== "strict";
558
558
  }
559
559
 
560
+ // src/utils/emit-service-event.ts
561
+ var DEFAULT_EVENT_METHOD = {
562
+ created: "create",
563
+ updated: "update",
564
+ patched: "patch",
565
+ removed: "remove"
566
+ };
567
+ function emitServiceEvent(app, event) {
568
+ const service = app.service(event.path);
569
+ service.emit?.(event.event, event.data, {
570
+ app,
571
+ service,
572
+ path: event.path,
573
+ method: event.method ?? DEFAULT_EVENT_METHOD[event.event] ?? "patch",
574
+ event: event.event,
575
+ id: event.id,
576
+ result: event.data,
577
+ params: event.params ?? {}
578
+ });
579
+ }
580
+
560
581
  // src/utils/git-impersonation.ts
561
582
  async function resolveDaemonUserForGroupRefresh() {
562
583
  const { getDaemonUser: getDaemonUser2, isUnixGroupRefreshNeeded } = await import("@agor/core/config");
@@ -2553,7 +2574,13 @@ var BranchesService = class extends DrizzleService {
2553
2574
  },
2554
2575
  resolvedParams
2555
2576
  );
2556
- this.app.service("branches").emit?.("patched", branch);
2577
+ emitServiceEvent(this.app, {
2578
+ path: "branches",
2579
+ event: "patched",
2580
+ data: branch,
2581
+ params: resolvedParams,
2582
+ id
2583
+ });
2557
2584
  return branch;
2558
2585
  }
2559
2586
  /**
@@ -2988,7 +3015,9 @@ var BranchesService = class extends DrizzleService {
2988
3015
  path: branch.path,
2989
3016
  custom_context: branch.custom_context,
2990
3017
  unix_gid: unixGid,
2991
- host_ip_address: hostIpAddress
3018
+ host_ip_address: hostIpAddress,
3019
+ base_ref: branch.base_ref,
3020
+ ref_type: branch.ref_type
2992
3021
  },
2993
3022
  requestedVariant
2994
3023
  );
@@ -1 +1 @@
1
- {"version":3,"file":"claude-models.d.ts","sourceRoot":"","sources":["../../src/services/claude-models.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAW,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC9B;AAeD,UAAU,mBAAoB,SAAQ,MAAM;IAC1C,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAuDD,qBAAa,mBAAmB;IAClB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,wBAAwB;IAE1C,IAAI,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAoDtE;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,wBAAwB,GAAG,mBAAmB,CAE3F"}
1
+ {"version":3,"file":"claude-models.d.ts","sourceRoot":"","sources":["../../src/services/claude-models.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAW,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC9B;AAeD,UAAU,mBAAoB,SAAQ,MAAM;IAC1C,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAqED,qBAAa,mBAAmB;IAClB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,wBAAwB;IAE1C,IAAI,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAoDtE;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,wBAAwB,GAAG,mBAAmB,CAE3F"}
@@ -11987,6 +11987,9 @@ function isAlias(id) {
11987
11987
  }
11988
11988
  var CONTEXT_1M_BETA = "context-1m-2025-08-07";
11989
11989
  var ONE_MILLION_TOKENS = 9e5;
11990
+ function hasNativeMillionContext(id) {
11991
+ return id.startsWith("claude-fable");
11992
+ }
11990
11993
  function toModelOptions(models) {
11991
11994
  const aliases = models.filter((m) => isAlias(m.id));
11992
11995
  const options = [];
@@ -11997,7 +12000,7 @@ function toModelOptions(models) {
11997
12000
  description: void 0,
11998
12001
  source: "dynamic"
11999
12002
  });
12000
- if (m.max_input_tokens && m.max_input_tokens >= ONE_MILLION_TOKENS) {
12003
+ if (m.max_input_tokens && m.max_input_tokens >= ONE_MILLION_TOKENS && !hasNativeMillionContext(m.id)) {
12001
12004
  options.push({
12002
12005
  id: `${m.id}[1m]`,
12003
12006
  displayName: `${m.display_name} (1M context)`,
@@ -47,6 +47,12 @@ interface EmitGatewayMessageData {
47
47
  target?: string;
48
48
  purpose?: string;
49
49
  emittedByUserId: UserID;
50
+ /**
51
+ * Trust contract: must be sourced from verified auth context (MCP
52
+ * ctx.sessionId), never from tool/user input. When set, the outbound emit is
53
+ * hard-bound to the session's branch — it is denied unless the session's
54
+ * branch matches the channel's target branch, regardless of user role.
55
+ */
50
56
  emittedBySessionId?: SessionID;
51
57
  emittedByTaskId?: string;
52
58
  emittedByScheduleId?: string;
@@ -82,6 +88,7 @@ export declare class GatewayService {
82
88
  private threadMapRepo;
83
89
  private outboundRepo;
84
90
  private branchRepo;
91
+ private sessionRepo;
85
92
  private usersRepo;
86
93
  private mcpServerRepo;
87
94
  private userTokenRepo;
@@ -167,6 +174,14 @@ export declare class GatewayService {
167
174
  private stopSlackTaskStream;
168
175
  private updateProgressNow;
169
176
  handleMessageStreamingEvent(event: 'streaming:start' | 'streaming:chunk' | 'streaming:end' | 'streaming:error', data: Record<string, unknown>): Promise<void>;
177
+ /**
178
+ * Session-context emits are hard-bound to the session's branch, with no
179
+ * admin-role bypass — agent sessions run as admin users, so a role bypass
180
+ * would let any session impersonate another assistant's channel. The error
181
+ * deliberately never echoes the channel's target branch, so a denied emit
182
+ * cannot be used to enumerate which branch a foreign channel serves.
183
+ */
184
+ private ensureSessionBranchBoundToChannel;
170
185
  private ensureCanEmitFromChannel;
171
186
  emitMessage(data: EmitGatewayMessageData): Promise<EmitGatewayMessageResult>;
172
187
  private fetchExistingSessionUrlForGatewayUser;
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/services/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/services/gateway.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import {
9
9
  MCPServerRepository,
10
10
  runWithoutTenantDatabaseScope as runWithoutTenantDatabaseScope2,
11
11
  runWithTenantDatabaseScope as runWithTenantDatabaseScope2,
12
+ SessionRepository,
12
13
  shortId as shortId2,
13
14
  ThreadSessionMapRepository,
14
15
  UserMCPOAuthTokenRepository,
@@ -182,6 +183,13 @@ function oneLineForPrompt(text, maxChars = 900) {
182
183
  if (normalized.length <= maxChars) return normalized;
183
184
  return `${normalized.slice(0, Math.max(0, maxChars - 1))}\u2026`;
184
185
  }
186
+ var SLACK_GATEWAY_REPLY_NOTE = "Note: Any assistant message you send in this current Agor session is streamed back directly to the Slack conversation. Only use outbound gateway tools when you intentionally need to start a separate thread, DM, or message.";
187
+ function prependSlackGatewayReplyNote(prompt) {
188
+ if (prompt.includes(SLACK_GATEWAY_REPLY_NOTE)) return prompt;
189
+ return `${SLACK_GATEWAY_REPLY_NOTE}
190
+
191
+ ${prompt}`;
192
+ }
185
193
  function formatSlackCatchUpPrompt(args) {
186
194
  const slackChannelName = typeof args.metadata?.slack_channel_name === "string" ? args.metadata.slack_channel_name : null;
187
195
  const slackChannelId = typeof args.metadata?.channel === "string" ? args.metadata.channel : args.threadId.split("-")[0];
@@ -368,6 +376,7 @@ var GatewayService = class _GatewayService {
368
376
  threadMapRepo;
369
377
  outboundRepo;
370
378
  branchRepo;
379
+ sessionRepo;
371
380
  usersRepo;
372
381
  mcpServerRepo;
373
382
  userTokenRepo;
@@ -410,6 +419,7 @@ var GatewayService = class _GatewayService {
410
419
  this.threadMapRepo = new ThreadSessionMapRepository(db);
411
420
  this.outboundRepo = new GatewayOutboundMessageRepository(db);
412
421
  this.branchRepo = new BranchRepository(db);
422
+ this.sessionRepo = new SessionRepository(db);
413
423
  this.usersRepo = new UsersRepository(db);
414
424
  this.mcpServerRepo = new MCPServerRepository(db);
415
425
  this.userTokenRepo = new UserMCPOAuthTokenRepository(db);
@@ -905,6 +915,24 @@ ${chunk}` : chunk;
905
915
  console.warn("[gateway] Failed to mirror message stream to Slack:", error);
906
916
  }
907
917
  }
918
+ /**
919
+ * Session-context emits are hard-bound to the session's branch, with no
920
+ * admin-role bypass — agent sessions run as admin users, so a role bypass
921
+ * would let any session impersonate another assistant's channel. The error
922
+ * deliberately never echoes the channel's target branch, so a denied emit
923
+ * cannot be used to enumerate which branch a foreign channel serves.
924
+ */
925
+ async ensureSessionBranchBoundToChannel(channel, sessionId) {
926
+ const session = await this.sessionRepo.findById(sessionId);
927
+ if (!session) {
928
+ throw new Error("Gateway outbound denied: emitting session not found");
929
+ }
930
+ if (session.branch_id !== channel.target_branch_id) {
931
+ throw new Error(
932
+ `Gateway outbound denied: session ${shortId2(sessionId)} runs on branch ${shortId2(session.branch_id)}, but this channel targets a different branch. Sessions can emit only through gateway channels whose target branch matches their own. Call agor_gateway_outbound_targets_list to see usable channels.`
933
+ );
934
+ }
935
+ }
908
936
  async ensureCanEmitFromChannel(channel, userId, userRole) {
909
937
  if (hasMinimumRole2(userRole, ROLES2.ADMIN)) return;
910
938
  const branch = await this.branchRepo.findById(channel.target_branch_id);
@@ -938,6 +966,9 @@ ${chunk}` : chunk;
938
966
  if (config.outbound_enabled !== true) {
939
967
  throw new Error("Gateway outbound is disabled for this channel");
940
968
  }
969
+ if (data.emittedBySessionId) {
970
+ await this.ensureSessionBranchBoundToChannel(channel, data.emittedBySessionId);
971
+ }
941
972
  await this.ensureCanEmitFromChannel(channel, data.emittedByUserId, data.userRole);
942
973
  const target = data.target ?? (typeof config.default_outbound_target === "string" ? config.default_outbound_target : void 0);
943
974
  if (!target) throw new Error("No usable default outbound target configured");
@@ -1512,6 +1543,9 @@ ${chunk}` : chunk;
1512
1543
  promptText = contextPrefix + promptText;
1513
1544
  }
1514
1545
  }
1546
+ if (channel.channel_type === "slack") {
1547
+ promptText = prependSlackGatewayReplyNote(promptText);
1548
+ }
1515
1549
  if (created && mcpAuthWarning) {
1516
1550
  promptText = `${mcpAuthWarning}
1517
1551
 
@@ -1 +1 @@
1
- {"version":3,"file":"health-monitor.d.ts","sourceRoot":"","sources":["../../src/services/health-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAML,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAU,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAalF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,wDAAwD;IACxD,EAAE,CAAC,EAAE,wBAAwB,CAAC;IAC9B,8HAA8H;IAC9H,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,+FAA+F;IAC/F,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6FAA6F;IAC7F,6BAA6B,CAAC,EAAE,MAAM,OAAO,CAAC,iCAAiC,EAAE,CAAC,CAAC;CACpF;AAQD,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAC,CAAsB;IAC5C,OAAO,CAAC,EAAE,CAAC,CAA2B;IACtC,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,QAAQ,CAAC,CAAoB;IACrC,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,6BAA6B,CAAC,CAAqD;gBAE/E,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,oBAAyB;IAchE,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;YACW,WAAW;IAmDzB;;;;OAIG;IACG,UAAU;YAaF,+BAA+B;YAqC/B,kCAAkC;YA8ClC,yBAAyB;IAkCvC;;;;OAIG;IACH,OAAO;IAcP;;OAEG;IACH,SAAS;;;;;CAOV;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAIxB"}
1
+ {"version":3,"file":"health-monitor.d.ts","sourceRoot":"","sources":["../../src/services/health-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAOL,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAU,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAalF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,wDAAwD;IACxD,EAAE,CAAC,EAAE,wBAAwB,CAAC;IAC9B,8HAA8H;IAC9H,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,+FAA+F;IAC/F,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6FAA6F;IAC7F,6BAA6B,CAAC,EAAE,MAAM,OAAO,CAAC,iCAAiC,EAAE,CAAC,CAAC;CACpF;AAQD,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAC,CAAsB;IAC5C,OAAO,CAAC,EAAE,CAAC,CAA2B;IACtC,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,QAAQ,CAAC,CAAoB;IACrC,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,6BAA6B,CAAC,CAAqD;gBAE/E,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,oBAAyB;IAchE,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;YACW,WAAW;IAmDzB;;;;OAIG;IACG,UAAU;YAaF,+BAA+B;YAqC/B,kCAAkC;YA8ClC,yBAAyB;IAkCvC;;;;OAIG;IACH,OAAO;IAcP;;OAEG;IACH,SAAS;;;;;CAOV;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAIxB"}
@@ -3,6 +3,7 @@ import { ENVIRONMENT } from "@agor/core/config";
3
3
  import {
4
4
  BranchRepository,
5
5
  getHiddenTenantId,
6
+ runWithoutTenantDatabaseScope,
6
7
  runWithSystemDatabaseScope,
7
8
  runWithTenantDatabaseScope,
8
9
  shortId
@@ -92,15 +93,17 @@ var HealthMonitor = class {
92
93
  startMonitoring(branchId, params = this.branchParams.get(branchId)) {
93
94
  this.stopMonitoring(branchId);
94
95
  if (params) this.branchParams.set(branchId, params);
95
- setTimeout(() => {
96
- if (this.isShuttingDown) return;
97
- this.checkHealth(branchId);
98
- const interval = setInterval(() => {
96
+ runWithoutTenantDatabaseScope(() => {
97
+ setTimeout(() => {
99
98
  if (this.isShuttingDown) return;
100
99
  this.checkHealth(branchId);
101
- }, ENVIRONMENT.HEALTH_CHECK_INTERVAL_MS);
102
- this.intervals.set(branchId, interval);
103
- }, ENVIRONMENT.STARTUP_GRACE_PERIOD_MS);
100
+ const interval = setInterval(() => {
101
+ if (this.isShuttingDown) return;
102
+ this.checkHealth(branchId);
103
+ }, ENVIRONMENT.HEALTH_CHECK_INTERVAL_MS);
104
+ this.intervals.set(branchId, interval);
105
+ }, ENVIRONMENT.STARTUP_GRACE_PERIOD_MS);
106
+ });
104
107
  }
105
108
  /**
106
109
  * Stop monitoring a branch's health
@@ -0,0 +1,29 @@
1
+ import type { Application } from '@agor/core/feathers';
2
+ import type { Params } from '@agor/core/types';
3
+ /**
4
+ * `session-streams` — a realtime control-plane service that lets a browser
5
+ * declare interest in a session's streaming events. Subscribing joins the
6
+ * calling CONNECTION to the per-session stream channel so the daemon can route
7
+ * high-frequency streaming chunks to only the tabs viewing that session,
8
+ * instead of broadcasting them to the whole tenant.
9
+ *
10
+ * Access is gated by a tenant-scoped `sessions.get`, which runs the same auth /
11
+ * tenant / branch-view checks a normal session read does — no weaker path to a
12
+ * session's live text than to its stored messages. Feathers drops connections
13
+ * from channels automatically on disconnect, so unsubscribe on refresh /
14
+ * navigation is best-effort; the socket teardown is the real cleanup.
15
+ */
16
+ export interface SessionStreamSubscription {
17
+ session_id: string;
18
+ subscribed: boolean;
19
+ }
20
+ interface SubscribeData {
21
+ session_id?: string;
22
+ sessionId?: string;
23
+ }
24
+ export declare function createSessionStreamsService(app: Application): {
25
+ create(data: SubscribeData, params: Params): Promise<SessionStreamSubscription>;
26
+ remove(id: string, params: Params): Promise<SessionStreamSubscription>;
27
+ };
28
+ export {};
29
+ //# sourceMappingURL=session-streams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-streams.d.ts","sourceRoot":"","sources":["../../src/services/session-streams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,WAAW;iBAqBrC,aAAa,UAAU,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;eAgBpE,MAAM,UAAU,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;EAwB/E"}
@@ -0,0 +1,84 @@
1
+ // src/services/session-streams.ts
2
+ import { BadRequest } from "@agor/core/feathers";
3
+
4
+ // src/utils/realtime-publish.ts
5
+ import {
6
+ resolveTenantContext,
7
+ TenantResolutionError
8
+ } from "@agor/core/config";
9
+ import { getCurrentTenantId, shortId as shortId2 } from "@agor/core/db";
10
+ import { hasMinimumRole as hasMinimumRole2, ROLES as ROLES2 } from "@agor/core/types";
11
+
12
+ // src/utils/branch-authorization.ts
13
+ import { shortId } from "@agor/core/db";
14
+ import { Forbidden, NotAuthenticated, NotFound } from "@agor/core/feathers";
15
+ import { BRANCH_PERMISSION_LEVELS, hasMinimumRole, ROLES } from "@agor/core/types";
16
+ var PERMISSION_RANK = Object.fromEntries(
17
+ BRANCH_PERMISSION_LEVELS.map((level, i) => [level, i - 1])
18
+ );
19
+
20
+ // src/utils/realtime-access-cache.ts
21
+ var DEFAULT_BRANCH_VISIBILITY_TTL_MS = 5 * 6e4;
22
+ var DEFAULT_SESSION_BRANCH_TTL_MS = 60 * 6e4;
23
+
24
+ // src/utils/realtime-publish.ts
25
+ var SESSION_STREAM_CHANNEL_PREFIX = "session-stream:";
26
+ function sessionStreamChannelName(sessionId) {
27
+ return `${SESSION_STREAM_CHANNEL_PREFIX}${sessionId}`;
28
+ }
29
+ function existingChannel(app, name) {
30
+ return (app.channels ?? []).includes(name) ? app.channel(name) : null;
31
+ }
32
+ function joinSessionStreamChannel(app, sessionId, connection) {
33
+ app.channel(sessionStreamChannelName(sessionId)).join(connection);
34
+ }
35
+ function leaveSessionStreamChannel(app, sessionId, connection) {
36
+ existingChannel(app, sessionStreamChannelName(sessionId))?.leave(connection);
37
+ }
38
+ var DEBUG_REALTIME_PUBLISH = process.env.AGOR_DEBUG_REALTIME_PUBLISH === "1" || process.env.DEBUG?.includes("realtime-publish");
39
+
40
+ // src/services/session-streams.ts
41
+ var UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
42
+ function isCanonicalSessionId(id) {
43
+ return UUID_RE.test(id);
44
+ }
45
+ function createSessionStreamsService(app) {
46
+ const resolveAccessibleSessionId = async (sessionId, params) => {
47
+ const session = await app.service("sessions").get(sessionId, { ...params ?? {}, query: {} });
48
+ return session?.session_id ?? null;
49
+ };
50
+ return {
51
+ async create(data, params) {
52
+ const connection = params?.connection;
53
+ if (!connection) {
54
+ throw new BadRequest("session stream subscription requires a realtime connection");
55
+ }
56
+ const sessionId = data?.session_id ?? data?.sessionId;
57
+ if (!sessionId || typeof sessionId !== "string") {
58
+ throw new BadRequest("session_id is required");
59
+ }
60
+ const canonicalId = await resolveAccessibleSessionId(sessionId, params) ?? sessionId;
61
+ joinSessionStreamChannel(app, canonicalId, connection);
62
+ return { session_id: canonicalId, subscribed: true };
63
+ },
64
+ async remove(id, params) {
65
+ const connection = params?.connection;
66
+ const sessionId = typeof id === "string" ? id : "";
67
+ if (!connection || !sessionId) {
68
+ return { session_id: sessionId, subscribed: false };
69
+ }
70
+ let canonicalId = sessionId;
71
+ if (!isCanonicalSessionId(sessionId)) {
72
+ try {
73
+ canonicalId = await resolveAccessibleSessionId(sessionId, params) ?? sessionId;
74
+ } catch {
75
+ }
76
+ }
77
+ leaveSessionStreamChannel(app, canonicalId, connection);
78
+ return { session_id: canonicalId, subscribed: false };
79
+ }
80
+ };
81
+ }
82
+ export {
83
+ createSessionStreamsService
84
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"session-token-service.d.ts","sourceRoot":"","sources":["../../src/services/session-token-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyBH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,MAAM;IAJhB,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,SAAS,CAAuB;gBAG9B,MAAM,EAAE;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB;IAMH;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC;;;OAGG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GACnE,OAAO,CAAC,MAAM,CAAC;IAoDlB;;;;;;OAMG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACpE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAqD9B;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhC;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAe5C;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAU1B"}
1
+ {"version":3,"file":"session-token-service.d.ts","sourceRoot":"","sources":["../../src/services/session-token-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA6BH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,MAAM;IAJhB,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,SAAS,CAAuB;gBAG9B,MAAM,EAAE;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB;IAMH;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC;;;OAGG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GACnE,OAAO,CAAC,MAAM,CAAC;IAmDlB;;;;;;OAMG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACpE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAqD9B;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhC;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAe5C;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAU1B"}
@@ -1,6 +1,12 @@
1
1
  // src/services/session-token-service.ts
2
2
  import { getCurrentTenantId } from "@agor/core/db";
3
3
  import jwt from "jsonwebtoken";
4
+
5
+ // src/auth/executor-session-token.ts
6
+ var EXECUTOR_SESSION_TOKEN_TYPE = "executor-session";
7
+ var EXECUTOR_SESSION_TOKEN_PURPOSE = "executor-task";
8
+
9
+ // src/services/session-token-service.ts
4
10
  var DEBUG_SESSION_TOKENS = process.env.AGOR_DEBUG_SESSION_TOKENS === "1" || process.env.DEBUG?.includes("session-token");
5
11
  function sessionTokenDebug(...args) {
6
12
  if (DEBUG_SESSION_TOKENS) {
@@ -35,10 +41,8 @@ var SessionTokenService = class {
35
41
  const payload = {
36
42
  sub: userId,
37
43
  // Standard JWT subject claim (used by Feathers for user lookup)
38
- type: "executor-session",
39
- purpose: "executor-task",
40
- sessionId,
41
- // Custom claim for session tracking
44
+ type: EXECUTOR_SESSION_TOKEN_TYPE,
45
+ purpose: EXECUTOR_SESSION_TOKEN_PURPOSE,
42
46
  session_id: sessionId,
43
47
  task_id: scope.taskId,
44
48
  branch_id: scope.branchId,
@@ -477,8 +477,8 @@ async function initializeDatabase(dbPath, options = {}) {
477
477
  }
478
478
 
479
479
  // src/setup/socketio.ts
480
- import { resolveTenantContext } from "@agor/core/config";
481
- import { shortId } from "@agor/core/db";
480
+ import { resolveTenantContext as resolveTenantContext2 } from "@agor/core/config";
481
+ import { shortId as shortId3 } from "@agor/core/db";
482
482
  import jwt2 from "jsonwebtoken";
483
483
 
484
484
  // src/auth/runtime-tokens.ts
@@ -486,6 +486,37 @@ import jwt from "jsonwebtoken";
486
486
  var RUNTIME_JWT_ISSUER = "agor";
487
487
  var RUNTIME_JWT_AUDIENCE = "https://agor.dev";
488
488
 
489
+ // src/utils/realtime-publish.ts
490
+ import {
491
+ resolveTenantContext,
492
+ TenantResolutionError
493
+ } from "@agor/core/config";
494
+ import { getCurrentTenantId, shortId as shortId2 } from "@agor/core/db";
495
+ import { hasMinimumRole as hasMinimumRole2, ROLES as ROLES2 } from "@agor/core/types";
496
+
497
+ // src/utils/branch-authorization.ts
498
+ import { shortId } from "@agor/core/db";
499
+ import { Forbidden, NotAuthenticated, NotFound } from "@agor/core/feathers";
500
+ import { BRANCH_PERMISSION_LEVELS, hasMinimumRole, ROLES } from "@agor/core/types";
501
+ var PERMISSION_RANK = Object.fromEntries(
502
+ BRANCH_PERMISSION_LEVELS.map((level, i) => [level, i - 1])
503
+ );
504
+
505
+ // src/utils/realtime-access-cache.ts
506
+ var DEFAULT_BRANCH_VISIBILITY_TTL_MS = 5 * 6e4;
507
+ var DEFAULT_SESSION_BRANCH_TTL_MS = 60 * 6e4;
508
+
509
+ // src/utils/realtime-publish.ts
510
+ var SESSION_STREAM_CHANNEL_PREFIX = "session-stream:";
511
+ function leaveAllSessionStreamChannels(app, connection) {
512
+ for (const name of app.channels ?? []) {
513
+ if (name.startsWith(SESSION_STREAM_CHANNEL_PREFIX)) {
514
+ app.channel(name).leave(connection);
515
+ }
516
+ }
517
+ }
518
+ var DEBUG_REALTIME_PUBLISH = process.env.AGOR_DEBUG_REALTIME_PUBLISH === "1" || process.env.DEBUG?.includes("realtime-publish");
519
+
489
520
  // src/setup/socketio.ts
490
521
  function socketAuthState(userId, isService, tenant) {
491
522
  return tenant ? { userId, isService, tenant } : { userId, isService };
@@ -585,7 +616,7 @@ function createSocketIOConfig(app, options) {
585
616
  if (tokenType !== void 0 && tokenType !== "access" && tokenType !== "service") {
586
617
  return next(new Error("Invalid token type"));
587
618
  }
588
- const tenant = multiTenancy ? resolveTenantContext(multiTenancy, {
619
+ const tenant = multiTenancy ? resolveTenantContext2(multiTenancy, {
589
620
  authPayload: decoded,
590
621
  headers: socket.handshake.headers
591
622
  }) : void 0;
@@ -622,7 +653,7 @@ function createSocketIOConfig(app, options) {
622
653
  fs.tenant = tenant;
623
654
  if (fs.data) fs.data.tenant = tenant;
624
655
  }
625
- console.log(`\u{1F510} WebSocket authenticated: ${socket.id} (user: ${shortId(user.user_id)})`);
656
+ console.log(`\u{1F510} WebSocket authenticated: ${socket.id} (user: ${shortId3(user.user_id)})`);
626
657
  next();
627
658
  } catch (error) {
628
659
  console.error(`\u274C WebSocket authentication failed for ${socket.id}:`, error);
@@ -633,7 +664,7 @@ function createSocketIOConfig(app, options) {
633
664
  activeConnections++;
634
665
  const user = socket.feathers?.user;
635
666
  console.log(
636
- `\u{1F50C} Socket.io connection established: ${socket.id} (user: ${user ? shortId(user.user_id) : "unknown"}, total: ${activeConnections})`
667
+ `\u{1F50C} Socket.io connection established: ${socket.id} (user: ${user ? shortId3(user.user_id) : "unknown"}, total: ${activeConnections})`
637
668
  );
638
669
  if (buildInfo) {
639
670
  socket.emit("server-info", {
@@ -644,7 +675,7 @@ function createSocketIOConfig(app, options) {
644
675
  if (user?.user_id) {
645
676
  socket.join(userRoomName(user.user_id));
646
677
  console.log(
647
- `\u{1F3E0} Socket ${socket.id} joined user room at connection: user:${shortId(user.user_id)}`
678
+ `\u{1F3E0} Socket ${socket.id} joined user room at connection: user:${shortId3(user.user_id)}`
648
679
  );
649
680
  }
650
681
  setTimeout(() => {
@@ -729,7 +760,7 @@ function createSocketIOConfig(app, options) {
729
760
  if (typeof payloadUserId !== "string" || payloadUserId !== auth.userId) {
730
761
  rejectTerminal(
731
762
  event,
732
- `payload userId (${shortId(String(payloadUserId))}\u2026) does not match authed userId (${shortId(auth.userId)}\u2026)`
763
+ `payload userId (${shortId3(String(payloadUserId))}\u2026) does not match authed userId (${shortId3(auth.userId)}\u2026)`
733
764
  );
734
765
  return null;
735
766
  }
@@ -753,7 +784,7 @@ function createSocketIOConfig(app, options) {
753
784
  if (!auth.isService && auth.userId !== target) {
754
785
  rejectTerminal(
755
786
  "join",
756
- `user ${auth.userId ? shortId(auth.userId) : "unknown"}\u2026 tried to join ${shortId(target)}\u2026's channel`
787
+ `user ${auth.userId ? shortId3(auth.userId) : "unknown"}\u2026 tried to join ${shortId3(target)}\u2026's channel`
757
788
  );
758
789
  return;
759
790
  }
@@ -771,7 +802,7 @@ function createSocketIOConfig(app, options) {
771
802
  if (!auth.isService && auth.userId !== target) {
772
803
  rejectTerminal(
773
804
  "leave",
774
- `user ${auth.userId ? shortId(auth.userId) : "unknown"}\u2026 tried to leave ${shortId(target)}\u2026's channel`
805
+ `user ${auth.userId ? shortId3(auth.userId) : "unknown"}\u2026 tried to leave ${shortId3(target)}\u2026's channel`
775
806
  );
776
807
  return;
777
808
  }
@@ -872,7 +903,7 @@ function createSocketIOConfig(app, options) {
872
903
  if (socket.feathers === context.connection) {
873
904
  socket.join(userRoomName(userId));
874
905
  console.debug(
875
- `\u{1F3E0} Socket ${socket.id} joined user room after login: user:${shortId(userId)}`
906
+ `\u{1F3E0} Socket ${socket.id} joined user room after login: user:${shortId3(userId)}`
876
907
  );
877
908
  break;
878
909
  }
@@ -900,7 +931,7 @@ function configureChannels(app, options = {}) {
900
931
  const result = authResult;
901
932
  console.debug("\u2705 Login event fired:", result.user?.user_id, result.user?.email);
902
933
  const connection = context.connection;
903
- const tenant = options.multiTenancy ? resolveTenantContext(options.multiTenancy, {
934
+ const tenant = options.multiTenancy ? resolveTenantContext2(options.multiTenancy, {
904
935
  params: {
905
936
  user: result.user,
906
937
  authentication: { payload: result.authentication?.payload }
@@ -932,6 +963,7 @@ function configureChannels(app, options = {}) {
932
963
  app.channel(tenantUserChannelName(tenant.tenant_id, userId)).leave(context.connection);
933
964
  }
934
965
  }
966
+ leaveAllSessionStreamChannels(app, context.connection);
935
967
  }
936
968
  });
937
969
  }
@@ -1 +1 @@
1
- {"version":3,"file":"socketio.d.ts","sourceRoot":"","sources":["../../src/setup/socketio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,0BAA0B,EAAwB,MAAM,mBAAmB,CAAC;AAE1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAMV,aAAa,EACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAsC5C,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gFAAgF;IAChF,YAAY,CAAC,EAAE,0BAA0B,CAAC;CAC3C;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAUD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAalE;AAUD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,GAAG,GAAE,MAAM,MAAiB,GAC3B,MAAM,OAAO,CAcf;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQnE;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AASD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,eAAe,GACvB;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACtC,CA4hBA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,0BAA0B,CAAA;CAAO,GAC1D,IAAI,CAmEN"}
1
+ {"version":3,"file":"socketio.d.ts","sourceRoot":"","sources":["../../src/setup/socketio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,0BAA0B,EAAwB,MAAM,mBAAmB,CAAC;AAE1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAMV,aAAa,EACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAsC5C,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gFAAgF;IAChF,YAAY,CAAC,EAAE,0BAA0B,CAAC;CAC3C;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAUD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAalE;AAUD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,GAAG,GAAE,MAAM,MAAiB,GAC3B,MAAM,OAAO,CAcf;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQnE;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AASD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,eAAe,GACvB;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACtC,CA4hBA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,0BAA0B,CAAA;CAAO,GAC1D,IAAI,CAuEN"}