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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC"}
@@ -14727,16 +14727,186 @@ function registerEnvVarsWidget() {
14727
14727
  registerWidget(envVarsWidget);
14728
14728
  }
14729
14729
 
14730
+ // src/widgets/gateway-token/index.ts
14731
+ import { Forbidden } from "@agor/core/feathers";
14732
+ import {
14733
+ GATEWAY_SENSITIVE_CONFIG_FIELDS,
14734
+ hasMinimumRole,
14735
+ ROLES
14736
+ } from "@agor/core/types";
14737
+ var SUPPORTED_CHANNEL_TYPES = [
14738
+ "slack",
14739
+ "github",
14740
+ "teams"
14741
+ ];
14742
+ function isSupportedGatewayTokenChannelType(channelType) {
14743
+ return SUPPORTED_CHANNEL_TYPES.includes(channelType);
14744
+ }
14745
+ var MAX_TOKEN_LENGTH = 8192;
14746
+ function orderedFields(fields) {
14747
+ return [...fields].sort();
14748
+ }
14749
+ var gatewayTokenParamsSchema = external_exports.object({
14750
+ gatewayChannelId: external_exports.string().min(1).describe("Gateway channel whose credentials are being set."),
14751
+ channelType: external_exports.enum(["slack", "discord", "whatsapp", "telegram", "github", "teams"]).describe("Platform type of the channel; drives per-field placeholders."),
14752
+ channelName: external_exports.string().min(1).max(200).describe("Human-readable channel name for the form heading and prompts."),
14753
+ fields: external_exports.array(external_exports.enum(GATEWAY_SENSITIVE_CONFIG_FIELDS)).min(1).max(GATEWAY_SENSITIVE_CONFIG_FIELDS.length).refine((fields) => new Set(fields).size === fields.length, {
14754
+ message: "Token field names must be unique"
14755
+ }).describe("Secret config field names to collect (subset of the sensitive fields)."),
14756
+ reason: external_exports.string().min(1).max(200).describe("One sentence explaining why the tokens are needed. Renders as a muted line.")
14757
+ }).strict();
14758
+ var gatewayTokenSubmitSchema = external_exports.object({
14759
+ tokens: external_exports.partialRecord(
14760
+ external_exports.enum(GATEWAY_SENSITIVE_CONFIG_FIELDS),
14761
+ external_exports.string().min(1).max(MAX_TOKEN_LENGTH)
14762
+ ).describe("Map of sensitive field name \u2192 credential value.")
14763
+ }).strict();
14764
+ var submitOutcomes = /* @__PURE__ */ new WeakMap();
14765
+ var HARD_CREDENTIAL_SLACK_ERRORS = /* @__PURE__ */ new Set([
14766
+ "invalid_auth",
14767
+ "account_inactive",
14768
+ "token_revoked",
14769
+ "token_expired",
14770
+ "not_authed",
14771
+ "no_permission"
14772
+ ]);
14773
+ function classifyGatewayTokenTest(result, appTokenExpected) {
14774
+ const unprobable = result.failures.some((failure) => failure.capability === "connector");
14775
+ if (unprobable) {
14776
+ return {
14777
+ enable: false,
14778
+ status: "unverifiable",
14779
+ summary: "credentials cannot be auto-verified for this channel type yet"
14780
+ };
14781
+ }
14782
+ const isAppTokenFailure = (failure) => failure.capability === "app_token";
14783
+ const hardFailure = result.failures.find(
14784
+ (failure) => failure.slackError && HARD_CREDENTIAL_SLACK_ERRORS.has(failure.slackError) || failure.capability === "config" || appTokenExpected && isAppTokenFailure(failure)
14785
+ );
14786
+ if (hardFailure) {
14787
+ return { enable: false, status: "failed", summary: hardFailure.reason };
14788
+ }
14789
+ if (appTokenExpected && result.appTokenValid === false) {
14790
+ return {
14791
+ enable: false,
14792
+ status: "failed",
14793
+ summary: "The app-level token is missing or invalid; Socket Mode cannot connect."
14794
+ };
14795
+ }
14796
+ if (result.ok) {
14797
+ return { enable: true, status: "verified", summary: "passed" };
14798
+ }
14799
+ const followUps = result.failures.filter((failure) => appTokenExpected || !isAppTokenFailure(failure)).map((failure) => failure.reason).filter(Boolean);
14800
+ return {
14801
+ enable: true,
14802
+ status: "verified",
14803
+ summary: followUps.length > 0 ? `passed, with follow-ups: ${followUps.join("; ")}` : "passed"
14804
+ };
14805
+ }
14806
+ function assertGatewayTokenAdmin(ctx) {
14807
+ if (!hasMinimumRole(ctx.submitterRole, ROLES.ADMIN)) {
14808
+ throw new Forbidden("Only admins can set gateway channel tokens");
14809
+ }
14810
+ }
14811
+ async function applyGatewayTokenSubmit(ctx, submit, params) {
14812
+ assertGatewayTokenAdmin(ctx);
14813
+ const channelsService = ctx.app.service("gateway-channels");
14814
+ const channel = await channelsService.get(params.gatewayChannelId);
14815
+ if (!channel) {
14816
+ throw new Forbidden(`Gateway channel ${params.gatewayChannelId} not found`);
14817
+ }
14818
+ if (!isSupportedGatewayTokenChannelType(channel.channel_type)) {
14819
+ throw new Forbidden(
14820
+ `Gateway channel type "${channel.channel_type}" does not support token entry`
14821
+ );
14822
+ }
14823
+ if (channel.channel_type !== params.channelType) {
14824
+ throw new Forbidden("Gateway channel type does not match the widget request");
14825
+ }
14826
+ const sessionsService = ctx.app.service("sessions");
14827
+ const session = await sessionsService.get(ctx.sessionId);
14828
+ if (!session.branch_id || channel.target_branch_id !== session.branch_id) {
14829
+ throw new Forbidden("Gateway channel is not bound to this session's branch");
14830
+ }
14831
+ const requested = new Set(params.fields);
14832
+ const extra = Object.keys(submit.tokens).filter((field) => !requested.has(field));
14833
+ if (extra.length > 0) {
14834
+ throw new Forbidden(
14835
+ `Submitted token fields were not requested: ${orderedFields(extra).join(", ")}`
14836
+ );
14837
+ }
14838
+ const testService = ctx.app.service(
14839
+ "gateway-channels/test"
14840
+ );
14841
+ const testResult = await testService.create({
14842
+ gatewayChannelId: params.gatewayChannelId,
14843
+ config: submit.tokens
14844
+ });
14845
+ const appTokenExpected = params.fields.includes("app_token");
14846
+ const { enable, status, summary } = classifyGatewayTokenTest(testResult, appTokenExpected);
14847
+ await channelsService.patch(
14848
+ params.gatewayChannelId,
14849
+ { config: submit.tokens, enabled: enable },
14850
+ { user: { user_id: ctx.submitterUserId, role: ctx.submitterRole } }
14851
+ );
14852
+ submitOutcomes.set(submit, {
14853
+ channelId: channel.id,
14854
+ channelName: channel.name,
14855
+ channelType: channel.channel_type,
14856
+ enabled: enable,
14857
+ unverified: status === "unverifiable",
14858
+ test: { ok: testResult.ok, summary }
14859
+ });
14860
+ }
14861
+ var gatewayTokenWidget = {
14862
+ type: "gateway_token",
14863
+ schemaVersion: 1,
14864
+ paramsSchema: gatewayTokenParamsSchema,
14865
+ submitSchema: gatewayTokenSubmitSchema,
14866
+ buildResultMeta: (submit) => {
14867
+ const outcome = submitOutcomes.get(submit);
14868
+ return {
14869
+ channelId: outcome?.channelId ?? "",
14870
+ channelName: outcome?.channelName ?? "",
14871
+ channelType: outcome?.channelType ?? "slack",
14872
+ fieldsSet: orderedFields(Object.keys(submit.tokens)),
14873
+ enabled: outcome?.enabled ?? false,
14874
+ unverified: outcome?.unverified ?? false,
14875
+ test: outcome?.test ?? { ok: false, summary: "" }
14876
+ };
14877
+ },
14878
+ applySubmit: applyGatewayTokenSubmit,
14879
+ buildAutoResumePrompt: (rm, params) => {
14880
+ const fields = orderedFields(rm.fieldsSet).join(", ");
14881
+ const name = rm.channelName || params.channelName;
14882
+ const channelType = rm.channelType || params.channelType;
14883
+ if (rm.enabled) {
14884
+ return `[Agor] User set the ${channelType} tokens (${fields}) for channel "${name}". Channel enabled. Connection test: ${rm.test.summary || "passed"}.`;
14885
+ }
14886
+ if (rm.unverified) {
14887
+ return `[Agor] Tokens saved for "${name}" (${fields}); ${channelType} credentials can't be auto-verified yet, so the channel is left disabled \u2014 enable it manually once confirmed.`;
14888
+ }
14889
+ return `[Agor] User set the ${channelType} tokens (${fields}) for channel "${name}", but it was left disabled; test failed: ${rm.test.summary || "unknown error"}. Ask the user to double-check the tokens/scopes.`;
14890
+ },
14891
+ buildDismissedPrompt: (params) => `[Agor] User declined to provide tokens for "${params.channelName}"; it stays disabled. Don't immediately re-ask.`,
14892
+ // Dismissal is admin-only too — otherwise a member could terminally decline
14893
+ // an admin-only credential flow via the generic dismiss endpoint.
14894
+ authorizeDismiss: (ctx) => assertGatewayTokenAdmin(ctx)
14895
+ };
14896
+ function registerGatewayTokenWidget() {
14897
+ registerWidget(gatewayTokenWidget);
14898
+ }
14899
+
14730
14900
  // src/widgets/submissions.ts
14731
- import { Forbidden as Forbidden2, NotAuthenticated as NotAuthenticated2, NotFound as NotFound2 } from "@agor/core/feathers";
14901
+ import { Forbidden as Forbidden3, NotAuthenticated as NotAuthenticated2, NotFound as NotFound2 } from "@agor/core/feathers";
14732
14902
 
14733
14903
  // src/utils/branch-authorization.ts
14734
14904
  import { shortId } from "@agor/core/db";
14735
- import { Forbidden, NotAuthenticated, NotFound } from "@agor/core/feathers";
14736
- import { BRANCH_PERMISSION_LEVELS, hasMinimumRole, ROLES } from "@agor/core/types";
14905
+ import { Forbidden as Forbidden2, NotAuthenticated, NotFound } from "@agor/core/feathers";
14906
+ import { BRANCH_PERMISSION_LEVELS, hasMinimumRole as hasMinimumRole2, ROLES as ROLES2 } from "@agor/core/types";
14737
14907
  function isSuperAdmin(role, allowSuperadmin = true) {
14738
14908
  if (!allowSuperadmin) return false;
14739
- return role === ROLES.SUPERADMIN || role === "owner";
14909
+ return role === ROLES2.SUPERADMIN || role === "owner";
14740
14910
  }
14741
14911
  var PERMISSION_RANK = Object.fromEntries(
14742
14912
  BRANCH_PERMISSION_LEVELS.map((level, i) => [level, i - 1])
@@ -14803,18 +14973,26 @@ async function doResolveWidget(widgetId, action, caller, deps) {
14803
14973
  const isOwner = await deps.isBranchOwner(branch.branch_id, caller.user_id);
14804
14974
  const effectivePermission = await deps.resolveBranchPermission?.(branch, caller.user_id);
14805
14975
  if (!canResolveWidget(caller, session, branch, isOwner, effectivePermission)) {
14806
- throw new Forbidden2(
14976
+ throw new Forbidden3(
14807
14977
  `You need to be the session creator, a branch owner, or have 'prompt' permission on the branch to resolve this widget.`
14808
14978
  );
14809
14979
  }
14810
14980
  if (widget.status !== "pending") {
14811
- throw new Forbidden2(
14981
+ throw new Forbidden3(
14812
14982
  `Widget ${widgetId} is already ${widget.status}; cannot ${action.kind} again.`
14813
14983
  );
14814
14984
  }
14815
14985
  const entry = getWidget(widget.widget_type);
14816
14986
  let resultMeta;
14817
14987
  let autoResumePrompt;
14988
+ const ctx = {
14989
+ // biome-ignore lint/suspicious/noExplicitAny: Pass-through Feathers Application
14990
+ app: deps.app,
14991
+ sessionId: message.session_id,
14992
+ submitterUserId: caller.user_id,
14993
+ submitterRole: caller.role,
14994
+ sessionCreatorUserId: session.created_by
14995
+ };
14818
14996
  if (action.kind === "submit") {
14819
14997
  if (!entry) {
14820
14998
  throw new NotFound2(
@@ -14823,21 +15001,16 @@ async function doResolveWidget(widgetId, action, caller, deps) {
14823
15001
  }
14824
15002
  const parsed = entry.submitSchema.safeParse(action.body);
14825
15003
  if (!parsed.success) {
14826
- throw new Forbidden2(`Invalid submit payload: ${parsed.error.message}`);
15004
+ throw new Forbidden3(`Invalid submit payload: ${parsed.error.message}`);
14827
15005
  }
14828
15006
  const submit = parsed.data;
14829
- const submitCtx = {
14830
- // biome-ignore lint/suspicious/noExplicitAny: Pass-through Feathers Application
14831
- app: deps.app,
14832
- sessionId: message.session_id,
14833
- submitterUserId: caller.user_id,
14834
- submitterRole: caller.role,
14835
- sessionCreatorUserId: session.created_by
14836
- };
14837
- await entry.applySubmit(submitCtx, submit, widget.params);
15007
+ await entry.applySubmit(ctx, submit, widget.params);
14838
15008
  resultMeta = entry.buildResultMeta(submit);
14839
15009
  autoResumePrompt = entry.buildAutoResumePrompt(resultMeta, widget.params);
14840
15010
  } else {
15011
+ if (entry?.authorizeDismiss) {
15012
+ await entry.authorizeDismiss(ctx, widget.params);
15013
+ }
14841
15014
  autoResumePrompt = entry ? entry.buildDismissedPrompt(widget.params) : `[Agor] User dismissed a widget request. Do not re-request immediately \u2014 ask whether to proceed without, or move on to other work.`;
14842
15015
  }
14843
15016
  const newStatus = action.kind === "submit" ? "submitted" : "dismissed";
@@ -14895,6 +15068,7 @@ async function doResolveWidget(widgetId, action, caller, deps) {
14895
15068
  // src/widgets/index.ts
14896
15069
  function registerAllWidgets() {
14897
15070
  registerEnvVarsWidget();
15071
+ registerGatewayTokenWidget();
14898
15072
  }
14899
15073
  export {
14900
15074
  canResolveWidget,
@@ -84,6 +84,13 @@ export interface WidgetRegistryEntry<TParams, TSubmit, TResultMeta> {
84
84
  * explicit ("don't immediately re-ask") to avoid agent loops.
85
85
  */
86
86
  buildDismissedPrompt: (params: TParams) => string;
87
+ /**
88
+ * Optional gate on WHO may dismiss this widget, run before the message is
89
+ * marked 'dismissed'; throw (e.g. Forbidden) to reject. Absent means any
90
+ * caller allowed to reach the resolve endpoint may dismiss. Admin-only
91
+ * widgets set this so a dismissal can't sidestep the submit-side role check.
92
+ */
93
+ authorizeDismiss?: (ctx: WidgetSubmitCtx, params: TParams) => void | Promise<void>;
87
94
  }
88
95
  type AnyWidgetEntry = WidgetRegistryEntry<unknown, unknown, unknown>;
89
96
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/widgets/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,WAAW,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,SAAS,CAAC;IACrB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC;IACxB;;;;mEAI+D;IAC/D,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW;IAChE,2DAA2D;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,wDAAwD;IACxD,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC;;;;OAIG;IACH,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,CAAC;IAClD;;;;;;;;OAQG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF;;;;OAIG;IACH,qBAAqB,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAC5E;;;OAGG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;CACnD;AAID,KAAK,cAAc,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAIrE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAC1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GACxD,IAAI,CASN;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAEtE;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,UAAU,EAAE,CAE9C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/widgets/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,WAAW,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,SAAS,CAAC;IACrB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC;IACxB;;;;mEAI+D;IAC/D,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW;IAChE,2DAA2D;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,wDAAwD;IACxD,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC;;;;OAIG;IACH,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,CAAC;IAClD;;;;;;;;OAQG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF;;;;OAIG;IACH,qBAAqB,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAC5E;;;OAGG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAClD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpF;AAID,KAAK,cAAc,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAIrE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAC1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GACxD,IAAI,CASN;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAEtE;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,UAAU,EAAE,CAE9C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
@@ -92,6 +92,14 @@ async function doResolveWidget(widgetId, action, caller, deps) {
92
92
  const entry = getWidget(widget.widget_type);
93
93
  let resultMeta;
94
94
  let autoResumePrompt;
95
+ const ctx = {
96
+ // biome-ignore lint/suspicious/noExplicitAny: Pass-through Feathers Application
97
+ app: deps.app,
98
+ sessionId: message.session_id,
99
+ submitterUserId: caller.user_id,
100
+ submitterRole: caller.role,
101
+ sessionCreatorUserId: session.created_by
102
+ };
95
103
  if (action.kind === "submit") {
96
104
  if (!entry) {
97
105
  throw new NotFound2(
@@ -103,18 +111,13 @@ async function doResolveWidget(widgetId, action, caller, deps) {
103
111
  throw new Forbidden2(`Invalid submit payload: ${parsed.error.message}`);
104
112
  }
105
113
  const submit = parsed.data;
106
- const submitCtx = {
107
- // biome-ignore lint/suspicious/noExplicitAny: Pass-through Feathers Application
108
- app: deps.app,
109
- sessionId: message.session_id,
110
- submitterUserId: caller.user_id,
111
- submitterRole: caller.role,
112
- sessionCreatorUserId: session.created_by
113
- };
114
- await entry.applySubmit(submitCtx, submit, widget.params);
114
+ await entry.applySubmit(ctx, submit, widget.params);
115
115
  resultMeta = entry.buildResultMeta(submit);
116
116
  autoResumePrompt = entry.buildAutoResumePrompt(resultMeta, widget.params);
117
117
  } else {
118
+ if (entry?.authorizeDismiss) {
119
+ await entry.authorizeDismiss(ctx, widget.params);
120
+ }
118
121
  autoResumePrompt = entry ? entry.buildDismissedPrompt(widget.params) : `[Agor] User dismissed a widget request. Do not re-request immediately \u2014 ask whether to proceed without, or move on to other work.`;
119
122
  }
120
123
  const newStatus = action.kind === "submit" ? "submitted" : "dismissed";
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/commands/git.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAuBH,OAAO,KAAK,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA2FjD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA4DzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6DzB;AAkID;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6DzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA+EzB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA8OzB;AAyFD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA+TzB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAkMzB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6CzB"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/commands/git.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAuBH,OAAO,KAAK,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA2FjD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA4DzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6DzB;AAkID;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6DzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA+EzB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA8OzB;AA2FD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA+TzB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAkMzB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6CzB"}
@@ -792,6 +792,8 @@ async function renderEnvironmentTemplates(client, branchId, repoId, unixGroup, c
792
792
  custom_context: branch.custom_context,
793
793
  unix_gid: unixGid,
794
794
  host_ip_address: hostIpAddress,
795
+ base_ref: branch.base_ref,
796
+ ref_type: branch.ref_type,
795
797
  }, branch.environment_variant);
796
798
  }
797
799
  catch (err) {
@@ -71,7 +71,7 @@ export declare class FeathersSessionMCPServersRepository {
71
71
  * Executors use the session-scoped route so session-token callers can receive
72
72
  * the raw config needed to launch only their own session's MCP servers.
73
73
  */
74
- listEffectiveServers(sessionId: SessionID, enabledOnly?: boolean): Promise<MCPServer[]>;
74
+ listEffectiveServers(sessionId: SessionID, enabledOnly?: boolean, forUserId?: string): Promise<MCPServer[]>;
75
75
  /**
76
76
  * List MCP servers for a session with relationship metadata (added_at timestamp)
77
77
  * Used to detect if servers were added after session creation
@@ -85,6 +85,22 @@ export declare class FeathersSessionMCPServersRepository {
85
85
  enabled: boolean;
86
86
  }>>;
87
87
  }
88
+ /**
89
+ * MCP OAuth auth headers repository - proxies to the trusted executor route.
90
+ *
91
+ * Session-scoped MCP server reads intentionally redact OAuth access tokens in
92
+ * normal API payloads. Executors use this narrow route to retrieve just the
93
+ * launch-time Authorization header for OAuth servers that are already in the
94
+ * session's effective MCP scope.
95
+ */
96
+ export declare class FeathersMCPOAuthAuthHeadersRepository {
97
+ private client;
98
+ constructor(client: AgorClient);
99
+ getAuthHeaders(mcpServerIds: MCPServerID[]): Promise<Record<string, {
100
+ authorization?: string;
101
+ error?: string;
102
+ }>>;
103
+ }
88
104
  /**
89
105
  * Users Repository - proxies to 'users' Feathers service
90
106
  */
@@ -103,6 +119,7 @@ export type BranchRepository = FeathersBranchesRepository;
103
119
  export type RepoRepository = FeathersReposRepository;
104
120
  export type MCPServerRepository = FeathersMCPServersRepository;
105
121
  export type SessionMCPServerRepository = FeathersSessionMCPServersRepository;
122
+ export type MCPOAuthAuthHeadersRepository = FeathersMCPOAuthAuthHeadersRepository;
106
123
  export type UsersRepository = FeathersUsersRepository;
107
124
  /**
108
125
  * Create all Feathers-backed repositories and services
@@ -115,6 +132,7 @@ export declare function createFeathersBackedRepositories(client: AgorClient): {
115
132
  users: FeathersUsersRepository;
116
133
  mcpServers: FeathersMCPServersRepository;
117
134
  sessionMCP: FeathersSessionMCPServersRepository;
135
+ mcpOAuthAuthHeaders: FeathersMCPOAuthAuthHeadersRepository;
118
136
  messagesService: import("@agor/core").MessagesService;
119
137
  tasksService: import("@agor/core").TasksService;
120
138
  tasksStreamingService: import("@agor/core").AgorService<unknown, Partial<unknown>, unknown, import("@agor/core").PatchPayload<unknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"feathers-repositories.d.ts","sourceRoot":"","sources":["../../src/db/feathers-repositories.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,SAAS,EACT,IAAI,EACJ,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,IAAI,EACL,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAYzD,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IASvD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAIrE;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IASvD,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAI7E;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAQ3D;AAED;;GAEG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CAQrD;AAED;;GAEG;AACH,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAS7D,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CA+BpF;AAED;;GAEG;AACH,qBAAa,mCAAmC;IAClC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWlE,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAW9E;;;;;OAKG;IACG,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAYpF;;;;OAIG;IACG,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAY7F;;;;;;OAMG;IACG,uBAAuB,CAC3B,SAAS,EAAE,SAAS,EACpB,WAAW,UAAQ,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAe7E;AAED;;GAEG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CAQrD;AAMD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,uBAAuB,CAAC;AACrD,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;AAC/D,MAAM,MAAM,0BAA0B,GAAG,mCAAmC,CAAC;AAC7E,MAAM,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;EAkBlE"}
1
+ {"version":3,"file":"feathers-repositories.d.ts","sourceRoot":"","sources":["../../src/db/feathers-repositories.ts"],"names":[],"mappings":"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"}
@@ -191,12 +191,15 @@ export class FeathersSessionMCPServersRepository {
191
191
  * Executors use the session-scoped route so session-token callers can receive
192
192
  * the raw config needed to launch only their own session's MCP servers.
193
193
  */
194
- async listEffectiveServers(sessionId, enabledOnly) {
194
+ async listEffectiveServers(sessionId, enabledOnly, forUserId) {
195
195
  const service = this.client.service(`/sessions/${sessionId}/mcp-servers`);
196
196
  const query = { includeGlobal: true };
197
197
  if (enabledOnly) {
198
198
  query.enabledOnly = true;
199
199
  }
200
+ if (forUserId) {
201
+ query.forUserId = forUserId;
202
+ }
200
203
  const result = await service.find({ query });
201
204
  return (Array.isArray(result) ? result : result.data);
202
205
  }
@@ -217,6 +220,32 @@ export class FeathersSessionMCPServersRepository {
217
220
  return (Array.isArray(result) ? result : result.data);
218
221
  }
219
222
  }
223
+ /**
224
+ * MCP OAuth auth headers repository - proxies to the trusted executor route.
225
+ *
226
+ * Session-scoped MCP server reads intentionally redact OAuth access tokens in
227
+ * normal API payloads. Executors use this narrow route to retrieve just the
228
+ * launch-time Authorization header for OAuth servers that are already in the
229
+ * session's effective MCP scope.
230
+ */
231
+ export class FeathersMCPOAuthAuthHeadersRepository {
232
+ client;
233
+ constructor(client) {
234
+ this.client = client;
235
+ }
236
+ async getAuthHeaders(mcpServerIds) {
237
+ if (mcpServerIds.length === 0)
238
+ return {};
239
+ const service = this.client.service('mcp-servers/oauth-auth-headers');
240
+ const executorSessionToken = this.client
241
+ .executorSessionToken;
242
+ const result = (await service.create({
243
+ mcp_server_ids: mcpServerIds,
244
+ ...(executorSessionToken ? { executorSessionToken } : {}),
245
+ }));
246
+ return result.headers ?? {};
247
+ }
248
+ }
220
249
  /**
221
250
  * Users Repository - proxies to 'users' Feathers service
222
251
  */
@@ -248,6 +277,7 @@ export function createFeathersBackedRepositories(client) {
248
277
  users: new FeathersUsersRepository(client),
249
278
  mcpServers: new FeathersMCPServersRepository(client),
250
279
  sessionMCP: new FeathersSessionMCPServersRepository(client),
280
+ mcpOAuthAuthHeaders: new FeathersMCPOAuthAuthHeadersRepository(client),
251
281
  // Services (direct Feathers service access)
252
282
  // SDK handlers can use these services directly with proper typing
253
283
  messagesService: client.service('messages'),
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ChB"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ChB"}
@@ -33,7 +33,7 @@ export async function executeClaudeCodeTask(params) {
33
33
  toolName: 'claude-code',
34
34
  createTool: (repos, apiKey, useNativeAuth) => new ClaudeTool(repos.messages, repos.sessions, apiKey, repos.messagesService, repos.sessionMCP, repos.mcpServers, permissionService, repos.tasksService, repos.tasksStreamingService, repos.sessionsService, repos.branches, repos.repos, true, // mcpEnabled
35
35
  useNativeAuth, // Flag for Claude CLI OAuth (`claude login`)
36
- repos.users),
36
+ repos.users, repos.mcpOAuthAuthHeaders),
37
37
  });
38
38
  }
39
39
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/codex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhB"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/codex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BhB"}
@@ -20,6 +20,6 @@ export async function executeCodexTask(params) {
20
20
  toolName: 'codex',
21
21
  createTool: (repos, apiKey, useNativeAuth) => new CodexTool(repos.messages, repos.sessions, repos.sessionMCP, repos.branches, repos.repos, apiKey, repos.messagesService, repos.tasksService, repos.tasksStreamingService, useNativeAuth, // Flag for native auth (if applicable)
22
22
  repos.mcpServers, // MCPServerRepository for global MCP server resolution
23
- repos.users),
23
+ repos.users, repos.mcpOAuthAuthHeaders),
24
24
  });
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/copilot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA6ChB"}
1
+ {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/copilot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ChB"}
@@ -32,7 +32,7 @@ export async function executeCopilotTask(params) {
32
32
  ...params,
33
33
  apiKeyEnvVar: TOOL_API_KEY_NAMES.copilot,
34
34
  toolName: 'copilot',
35
- createTool: (repos, apiKey, useNativeAuth) => new CopilotTool(repos.messages, repos.sessions, repos.sessionMCP, repos.branches, repos.repos, apiKey, repos.messagesService, repos.tasksService, useNativeAuth, repos.mcpServers, repos.users, permissionService, repos.sessionsService),
35
+ createTool: (repos, apiKey, useNativeAuth) => new CopilotTool(repos.messages, repos.sessions, repos.sessionMCP, repos.branches, repos.repos, apiKey, repos.messagesService, repos.tasksService, useNativeAuth, repos.mcpServers, repos.users, permissionService, repos.sessionsService, repos.mcpOAuthAuthHeaders),
36
36
  });
37
37
  }
38
38
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,YAAY,EAGZ,aAAa,EACb,cAAc,EACd,SAAS,EAET,MAAM,EACP,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAyC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAiCpE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2B5D;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCzB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,YAAY,EAAE,CAgBjB;AAgRD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+MhB"}
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,YAAY,EAGZ,aAAa,EACb,cAAc,EACd,SAAS,EAET,MAAM,EACP,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAyC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAiCpE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2B5D;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCzB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,YAAY,EAAE,CAgBjB;AAiRD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+MhB"}
@@ -154,6 +154,7 @@ async function buildCursorMcpServers(args) {
154
154
  const serversWithSource = await getMcpServersForSession(args.sessionId, {
155
155
  sessionMCPRepo: args.repos.sessionMCP,
156
156
  mcpServerRepo: args.repos.mcpServers,
157
+ mcpOAuthAuthHeadersRepo: args.repos.mcpOAuthAuthHeaders,
157
158
  forUserId: args.forUserId,
158
159
  });
159
160
  for (const { server } of serversWithSource) {
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/gemini.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhB"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/gemini.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BhB"}
@@ -20,6 +20,6 @@ export async function executeGeminiTask(params) {
20
20
  toolName: 'gemini',
21
21
  createTool: (repos, apiKey, useNativeAuth) => new GeminiTool(repos.messages, repos.sessions, apiKey, repos.messagesService, repos.tasksService, repos.branches, repos.repos, repos.mcpServers, repos.sessionMCP, true, // mcpEnabled
22
22
  useNativeAuth, // Flag to use OAuth when no API key
23
- repos.users),
23
+ repos.users, repos.mcpOAuthAuthHeaders),
24
24
  });
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAa,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGpE;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJhB"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAa,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGpE;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwJhB"}
@@ -56,7 +56,7 @@ export async function executeOpenCodeTask(params) {
56
56
  const tool = new OpenCodeTool({
57
57
  enabled: true,
58
58
  serverUrl,
59
- }, repos.messagesService, repos.sessionMCP, repos.mcpServers);
59
+ }, repos.messagesService, repos.sessionMCP, repos.mcpServers, repos.mcpOAuthAuthHeaders);
60
60
  let opencodeSessionId;
61
61
  // Check if we already have an OpenCode session (stored in sdk_session_id)
62
62
  if (session.sdk_session_id) {
@@ -14,11 +14,11 @@ export { type ResolvedConfigSlice, ResolvedConfigSliceSchema };
14
14
  * Tool types supported by the prompt command
15
15
  */
16
16
  export declare const ToolTypeSchema: z.ZodEnum<{
17
+ opencode: "opencode";
17
18
  "claude-code": "claude-code";
18
19
  "claude-code-cli": "claude-code-cli";
19
20
  gemini: "gemini";
20
21
  codex: "codex";
21
- opencode: "opencode";
22
22
  copilot: "copilot";
23
23
  cursor: "cursor";
24
24
  }>;
@@ -103,11 +103,11 @@ export declare const PromptPayloadSchema: z.ZodObject<{
103
103
  taskId: z.ZodString;
104
104
  prompt: z.ZodString;
105
105
  tool: z.ZodEnum<{
106
+ opencode: "opencode";
106
107
  "claude-code": "claude-code";
107
108
  "claude-code-cli": "claude-code-cli";
108
109
  gemini: "gemini";
109
110
  codex: "codex";
110
- opencode: "opencode";
111
111
  copilot: "copilot";
112
112
  cursor: "cursor";
113
113
  }>;
@@ -460,8 +460,8 @@ export declare const EnvironmentLifecyclePayloadSchema: z.ZodObject<{
460
460
  action: z.ZodEnum<{
461
461
  start: "start";
462
462
  stop: "stop";
463
- restart: "restart";
464
463
  nuke: "nuke";
464
+ restart: "restart";
465
465
  }>;
466
466
  startCommand: z.ZodOptional<z.ZodString>;
467
467
  stopCommand: z.ZodOptional<z.ZodString>;
@@ -821,11 +821,11 @@ export declare const ExecutorPayloadSchema: z.ZodDiscriminatedUnion<[z.ZodObject
821
821
  taskId: z.ZodString;
822
822
  prompt: z.ZodString;
823
823
  tool: z.ZodEnum<{
824
+ opencode: "opencode";
824
825
  "claude-code": "claude-code";
825
826
  "claude-code-cli": "claude-code-cli";
826
827
  gemini: "gemini";
827
828
  codex: "codex";
828
- opencode: "opencode";
829
829
  copilot: "copilot";
830
830
  cursor: "cursor";
831
831
  }>;
@@ -1116,8 +1116,8 @@ export declare const ExecutorPayloadSchema: z.ZodDiscriminatedUnion<[z.ZodObject
1116
1116
  action: z.ZodEnum<{
1117
1117
  start: "start";
1118
1118
  stop: "stop";
1119
- restart: "restart";
1120
1119
  nuke: "nuke";
1120
+ restart: "restart";
1121
1121
  }>;
1122
1122
  startCommand: z.ZodOptional<z.ZodString>;
1123
1123
  stopCommand: z.ZodOptional<z.ZodString>;