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
@@ -24,13 +24,13 @@ export class CopilotTool {
24
24
  sessionsRepo;
25
25
  messagesService;
26
26
  tasksService;
27
- constructor(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, messagesService, tasksService, _useNativeAuth, mcpServerRepo, usersRepo, permissionService, sessionsService) {
27
+ constructor(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, messagesService, tasksService, _useNativeAuth, mcpServerRepo, usersRepo, permissionService, sessionsService, mcpOAuthAuthHeadersRepo) {
28
28
  this.messagesRepo = messagesRepo;
29
29
  this.sessionsRepo = sessionsRepo;
30
30
  this.messagesService = messagesService;
31
31
  this.tasksService = tasksService;
32
32
  if (messagesRepo && sessionsRepo) {
33
- this.promptService = new CopilotPromptService(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, mcpServerRepo, usersRepo, permissionService, messagesService, tasksService, sessionsService);
33
+ this.promptService = new CopilotPromptService(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, mcpServerRepo, usersRepo, permissionService, messagesService, tasksService, sessionsService, mcpOAuthAuthHeadersRepo);
34
34
  }
35
35
  }
36
36
  getCapabilities() {
@@ -10,7 +10,7 @@
10
10
  * - Sessions are created or resumed via the client
11
11
  * - Events stream back through the session's event emitter
12
12
  */
13
- import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
13
+ import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
14
14
  import type { PermissionService } from '../../permissions/permission-service.js';
15
15
  import type { TokenUsage } from '../../types/token-usage.js';
16
16
  import type { PermissionMode, SessionID, TaskID } from '../../types.js';
@@ -80,6 +80,7 @@ export declare class CopilotPromptService {
80
80
  private sessionMCPServerRepo?;
81
81
  private branchesRepo?;
82
82
  private mcpServerRepo?;
83
+ private mcpOAuthAuthHeadersRepo?;
83
84
  private client;
84
85
  private stopRequested;
85
86
  private apiKey;
@@ -89,7 +90,7 @@ export declare class CopilotPromptService {
89
90
  private tasksService?;
90
91
  private sessionsService?;
91
92
  private permissionLocks;
92
- constructor(messagesRepo: MessagesRepository, sessionsRepo: SessionRepository, sessionMCPServerRepo?: SessionMCPServerRepository | undefined, branchesRepo?: BranchRepository | undefined, _reposRepo?: RepoRepository, apiKey?: string, mcpServerRepo?: MCPServerRepository | undefined, _usersRepo?: UsersRepository, permissionService?: PermissionService, messagesService?: MessagesService, tasksService?: TasksService, sessionsService?: SessionsPatchClient);
93
+ constructor(messagesRepo: MessagesRepository, sessionsRepo: SessionRepository, sessionMCPServerRepo?: SessionMCPServerRepository | undefined, branchesRepo?: BranchRepository | undefined, _reposRepo?: RepoRepository, apiKey?: string, mcpServerRepo?: MCPServerRepository | undefined, _usersRepo?: UsersRepository, permissionService?: PermissionService, messagesService?: MessagesService, tasksService?: TasksService, sessionsService?: SessionsPatchClient, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository | undefined);
93
94
  /**
94
95
  * Build MCP servers configuration for Copilot session
95
96
  *
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/copilot/prompt-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/copilot/prompt-service.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ export class CopilotPromptService {
24
24
  sessionMCPServerRepo;
25
25
  branchesRepo;
26
26
  mcpServerRepo;
27
+ mcpOAuthAuthHeadersRepo;
27
28
  client = null;
28
29
  stopRequested = new Map();
29
30
  apiKey;
@@ -34,11 +35,12 @@ export class CopilotPromptService {
34
35
  tasksService;
35
36
  sessionsService;
36
37
  permissionLocks = new Map();
37
- constructor(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, _reposRepo, apiKey, mcpServerRepo, _usersRepo, permissionService, messagesService, tasksService, sessionsService) {
38
+ constructor(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, _reposRepo, apiKey, mcpServerRepo, _usersRepo, permissionService, messagesService, tasksService, sessionsService, mcpOAuthAuthHeadersRepo) {
38
39
  this.sessionsRepo = sessionsRepo;
39
40
  this.sessionMCPServerRepo = sessionMCPServerRepo;
40
41
  this.branchesRepo = branchesRepo;
41
42
  this.mcpServerRepo = mcpServerRepo;
43
+ this.mcpOAuthAuthHeadersRepo = mcpOAuthAuthHeadersRepo;
42
44
  this.apiKey = apiKey;
43
45
  this.messagesRepo = messagesRepo;
44
46
  this.permissionService = permissionService;
@@ -58,6 +60,7 @@ export class CopilotPromptService {
58
60
  const serversWithSource = await getMcpServersForSession(sessionId, {
59
61
  sessionMCPRepo: this.sessionMCPServerRepo,
60
62
  mcpServerRepo: this.mcpServerRepo,
63
+ mcpOAuthAuthHeadersRepo: this.mcpOAuthAuthHeadersRepo,
61
64
  });
62
65
  const mcpServers = serversWithSource.map((s) => s.server);
63
66
  console.log(`📊 [Copilot MCP] Found ${mcpServers.length} MCP server(s) for session`);
@@ -9,7 +9,7 @@
9
9
  * - ❌ Import sessions (deferred - need checkpoint format)
10
10
  * - ❌ Session creation (handled via live execution)
11
11
  */
12
- import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
12
+ import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
13
13
  import type { NormalizedSdkResponse, RawSdkResponse } from '../../types/sdk-response.js';
14
14
  import type { TokenUsage } from '../../types/token-usage.js';
15
15
  import { type MessageID, type MessageSource, type PermissionMode, type SessionID, type TaskID } from '../../types.js';
@@ -31,7 +31,7 @@ export declare class GeminiTool implements ITool {
31
31
  readonly name = "Google Gemini";
32
32
  private promptService?;
33
33
  constructor(messagesRepo?: MessagesRepository | undefined, sessionsRepo?: SessionRepository, apiKey?: string, messagesService?: MessagesService | undefined, tasksService?: TasksService | undefined, branchesRepo?: BranchRepository, reposRepo?: RepoRepository, mcpServerRepo?: MCPServerRepository, sessionMCPRepo?: SessionMCPServerRepository, mcpEnabled?: boolean, useNativeAuth?: boolean, // Flag to use OAuth when no API key
34
- usersRepo?: UsersRepository);
34
+ usersRepo?: UsersRepository, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository);
35
35
  getCapabilities(): ToolCapabilities;
36
36
  checkInstalled(): Promise<boolean>;
37
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/gemini/gemini-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/gemini/gemini-tool.ts"],"names":[],"mappings":"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"}
@@ -24,12 +24,12 @@ export class GeminiTool {
24
24
  name = 'Google Gemini';
25
25
  promptService;
26
26
  constructor(messagesRepo, sessionsRepo, apiKey, messagesService, tasksService, branchesRepo, reposRepo, mcpServerRepo, sessionMCPRepo, mcpEnabled, useNativeAuth, // Flag to use OAuth when no API key
27
- usersRepo) {
27
+ usersRepo, mcpOAuthAuthHeadersRepo) {
28
28
  this.messagesRepo = messagesRepo;
29
29
  this.messagesService = messagesService;
30
30
  this.tasksService = tasksService;
31
31
  if (messagesRepo && sessionsRepo) {
32
- this.promptService = new GeminiPromptService(messagesRepo, sessionsRepo, apiKey, branchesRepo, reposRepo, mcpServerRepo, sessionMCPRepo, mcpEnabled, useNativeAuth, usersRepo, this.tasksService);
32
+ this.promptService = new GeminiPromptService(messagesRepo, sessionsRepo, apiKey, branchesRepo, reposRepo, mcpServerRepo, sessionMCPRepo, mcpEnabled, useNativeAuth, usersRepo, this.tasksService, mcpOAuthAuthHeadersRepo);
33
33
  }
34
34
  }
35
35
  getCapabilities() {
@@ -8,7 +8,7 @@
8
8
  * - Event-driven architecture (13 event types)
9
9
  * - CLAUDE.md auto-loading
10
10
  */
11
- import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
11
+ import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
12
12
  import type { TokenUsage } from '../../types/token-usage.js';
13
13
  import type { PermissionMode, SessionID, TaskID } from '../../types.js';
14
14
  import type { TasksService } from '../base/index.js';
@@ -61,6 +61,7 @@ export declare class GeminiPromptService {
61
61
  private sessionMCPRepo?;
62
62
  private mcpEnabled?;
63
63
  private tasksService?;
64
+ private mcpOAuthAuthHeadersRepo?;
64
65
  private sessionClients;
65
66
  /** Invocation model bound on each cached client — triggers recreate when it changes. */
66
67
  private sessionClientInvocationModels;
@@ -68,7 +69,7 @@ export declare class GeminiPromptService {
68
69
  private apiKey?;
69
70
  private useNativeAuth;
70
71
  constructor(_messagesRepo: MessagesRepository, sessionsRepo: SessionRepository, apiKey?: string, branchesRepo?: BranchRepository | undefined, _reposRepo?: RepoRepository, mcpServerRepo?: MCPServerRepository | undefined, sessionMCPRepo?: SessionMCPServerRepository | undefined, mcpEnabled?: boolean | undefined, useNativeAuth?: boolean, // Flag from base-executor indicating OAuth should be used
71
- _usersRepo?: UsersRepository, tasksService?: TasksService | undefined);
72
+ _usersRepo?: UsersRepository, tasksService?: TasksService | undefined, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository | undefined);
72
73
  /**
73
74
  * Execute prompt with streaming via @google/gemini-cli-core SDK
74
75
  *
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/gemini/prompt-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/gemini/prompt-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiBH,OAAO,KAAK,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAU,MAAM,gBAAgB,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAarE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,0BAA0B,EAAE,iBAAiB,CAAC;CACvE,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEN,2FAA2F;AAC3F,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,YAAY,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC,GAAG,WAAW,CAEd;AAED,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,YAAY,CAAC;IAErB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,UAAU,CAAC;IAGnB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,uBAAuB,CAAC;IAnBlC,OAAO,CAAC,cAAc,CAAkE;IACxF,wFAAwF;IACxF,OAAO,CAAC,6BAA6B,CAAgC;IACrE,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,aAAa,CAAU;gBAG7B,aAAa,EAAE,kBAAkB,EACzB,YAAY,EAAE,iBAAiB,EACvC,MAAM,CAAC,EAAE,MAAM,EACP,YAAY,CAAC,EAAE,gBAAgB,YAAA,EACvC,UAAU,CAAC,EAAE,cAAc,EACnB,aAAa,CAAC,EAAE,mBAAmB,YAAA,EACnC,cAAc,CAAC,EAAE,0BAA0B,YAAA,EAC3C,UAAU,CAAC,EAAE,OAAO,YAAA,EAC5B,aAAa,CAAC,EAAE,OAAO,EAAE,0DAA0D;IACnF,UAAU,CAAC,EAAE,eAAe,EACpB,YAAY,CAAC,EAAE,YAAY,YAAA,EAC3B,uBAAuB,CAAC,EAAE,6BAA6B,YAAA;IAMjE;;;;;;;;OAQG;IACI,sBAAsB,CAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,cAAc,GAC9B,cAAc,CAAC,iBAAiB,CAAC;IA4WpC;;;;;OAKG;YACW,eAAe;IAwC7B;;;;OAIG;YACW,iBAAiB;IAuV/B;;;;;;;OAOG;IACH;;;;;OAKG;YACW,oBAAoB;IAkBlC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAgBrE;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBxD"}
@@ -35,6 +35,7 @@ export class GeminiPromptService {
35
35
  sessionMCPRepo;
36
36
  mcpEnabled;
37
37
  tasksService;
38
+ mcpOAuthAuthHeadersRepo;
38
39
  sessionClients = new Map();
39
40
  /** Invocation model bound on each cached client — triggers recreate when it changes. */
40
41
  sessionClientInvocationModels = new Map();
@@ -42,13 +43,14 @@ export class GeminiPromptService {
42
43
  apiKey; // Resolved API key from base-executor
43
44
  useNativeAuth; // Whether to use OAuth (no API key found)
44
45
  constructor(_messagesRepo, sessionsRepo, apiKey, branchesRepo, _reposRepo, mcpServerRepo, sessionMCPRepo, mcpEnabled, useNativeAuth, // Flag from base-executor indicating OAuth should be used
45
- _usersRepo, tasksService) {
46
+ _usersRepo, tasksService, mcpOAuthAuthHeadersRepo) {
46
47
  this.sessionsRepo = sessionsRepo;
47
48
  this.branchesRepo = branchesRepo;
48
49
  this.mcpServerRepo = mcpServerRepo;
49
50
  this.sessionMCPRepo = sessionMCPRepo;
50
51
  this.mcpEnabled = mcpEnabled;
51
52
  this.tasksService = tasksService;
53
+ this.mcpOAuthAuthHeadersRepo = mcpOAuthAuthHeadersRepo;
52
54
  this.apiKey = apiKey;
53
55
  this.useNativeAuth = useNativeAuth ?? false; // Default to false if not provided
54
56
  }
@@ -527,6 +529,7 @@ export class GeminiPromptService {
527
529
  const serversWithSource = await getMcpServersForSession(sessionId, {
528
530
  sessionMCPRepo: this.sessionMCPRepo,
529
531
  mcpServerRepo: this.mcpServerRepo,
532
+ mcpOAuthAuthHeadersRepo: this.mcpOAuthAuthHeadersRepo,
530
533
  forUserId: contextUserId,
531
534
  });
532
535
  // Convert to Gemini SDK format
@@ -14,7 +14,7 @@
14
14
  * - ⏳ Session import (future: when OpenCode provides export API)
15
15
  */
16
16
  import type { Message } from '@agor/core/types';
17
- import type { MCPServerRepository, SessionMCPServerRepository } from '../../db/feathers-repositories.js';
17
+ import type { MCPOAuthAuthHeadersRepository, MCPServerRepository, SessionMCPServerRepository } from '../../db/feathers-repositories.js';
18
18
  import type { NormalizedSdkResponse, RawSdkResponse } from '../../types/sdk-response.js';
19
19
  import type { CreateSessionConfig, MessagesService, SessionHandle, SessionMetadata, StreamingCallbacks, TaskResult, ToolCapabilities } from '../base/index.js';
20
20
  import type { ITool } from '../base/tool.interface.js';
@@ -23,6 +23,7 @@ export interface OpenCodeConfig {
23
23
  serverUrl: string;
24
24
  }
25
25
  export declare class OpenCodeTool implements ITool {
26
+ private mcpOAuthAuthHeadersRepo?;
26
27
  readonly toolType: "opencode";
27
28
  readonly name = "OpenCode";
28
29
  /** Default client (no directory override) */
@@ -42,7 +43,7 @@ export declare class OpenCodeTool implements ITool {
42
43
  * Prefers explicit text parts and falls back to reasoning text when no text parts exist.
43
44
  */
44
45
  private extractDisplayTextFromParts;
45
- constructor(config: OpenCodeConfig, messagesService?: MessagesService, sessionMCPRepo?: SessionMCPServerRepository, mcpServerRepo?: MCPServerRepository);
46
+ constructor(config: OpenCodeConfig, messagesService?: MessagesService, sessionMCPRepo?: SessionMCPServerRepository, mcpServerRepo?: MCPServerRepository, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository | undefined);
46
47
  /**
47
48
  * Set session context (OpenCode session ID, model, provider, branch path, and MCP token) for an Agor session
48
49
  * Must be called before executeTask
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/opencode/opencode-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,kBAAkB,CAAC;AAK9E,OAAO,KAAK,EACV,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEzF,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAeD,qBAAa,YAAa,YAAW,KAAK;IACxC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IACxC,QAAQ,CAAC,IAAI,cAAc;IAE3B,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAwD;IACtE,oDAAoD;IACpD,OAAO,CAAC,gBAAgB,CAAmE;IAC3F,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,eAAe,CAA0C;IACjE,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAAkC;IACzD,yEAAyE;IACzE,OAAO,CAAC,cAAc,CAAC,CAA6B;IACpD,OAAO,CAAC,aAAa,CAAC,CAAsB;IAE5C;;;OAGG;IACH,OAAO,CAAC,2BAA2B;gBAmBjC,MAAM,EAAE,cAAc,EACtB,eAAe,CAAC,EAAE,eAAe,EACjC,cAAc,CAAC,EAAE,0BAA0B,EAC3C,aAAa,CAAC,EAAE,mBAAmB;IAQrC;;;;;;;;;;OAUG;IACH,iBAAiB,CACf,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,MAAM,EACzB,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI;IAUP;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;;;;;;;;OASG;YACW,gBAAgB;IA+F9B;;;;;;;OAOG;IACH,OAAO,CAAC,2BAA2B;IAmEnC;;OAEG;IACH,eAAe,IAAI,gBAAgB;IAYnC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAWxC;;OAEG;IACG,aAAa,CAAC,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IA+BzE;;;;;;;;;;;;;;OAcG;IACG,WAAW,CAAC,CAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,kBAAkB,CAAC,EAAE,kBAAkB,EACvC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,CAAC;IA4ctB;;OAEG;YACW,uBAAuB;IA8HrC;;OAEG;IACG,kBAAkB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA0BtE;;OAEG;IACG,kBAAkB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAuBhE;;OAEG;IACG,YAAY,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA8BjD;;;;;OAKG;IACH,qBAAqB,CAAC,YAAY,EAAE,cAAc,GAAG,qBAAqB;CAK3E"}
1
+ {"version":3,"file":"opencode-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/opencode/opencode-tool.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ import { getDaemonUrl } from '../../config.js';
22
22
  import { enrichContentBlocks } from '../base/diff-enrichment.js';
23
23
  import { getMcpServersForSession } from '../base/mcp-scoping.js';
24
24
  export class OpenCodeTool {
25
+ mcpOAuthAuthHeadersRepo;
25
26
  toolType = 'opencode';
26
27
  name = 'OpenCode';
27
28
  /** Default client (no directory override) */
@@ -52,7 +53,8 @@ export class OpenCodeTool {
52
53
  .map((part) => part.text);
53
54
  return reasoningParts.join('\n');
54
55
  }
55
- constructor(config, messagesService, sessionMCPRepo, mcpServerRepo) {
56
+ constructor(config, messagesService, sessionMCPRepo, mcpServerRepo, mcpOAuthAuthHeadersRepo) {
57
+ this.mcpOAuthAuthHeadersRepo = mcpOAuthAuthHeadersRepo;
56
58
  this.config = config;
57
59
  this.messagesService = messagesService;
58
60
  this.sessionMCPRepo = sessionMCPRepo;
@@ -162,6 +164,7 @@ export class OpenCodeTool {
162
164
  const servers = await getMcpServersForSession(sessionId, {
163
165
  sessionMCPRepo: this.sessionMCPRepo,
164
166
  mcpServerRepo: this.mcpServerRepo,
167
+ mcpOAuthAuthHeadersRepo: this.mcpOAuthAuthHeadersRepo,
165
168
  });
166
169
  for (const { server } of servers) {
167
170
  const sanitizedName = server.name.toLowerCase().replace(/[^a-z0-9]+/g, '_');
@@ -1 +1 @@
1
- {"version":3,"file":"feathers-client.d.ts","sourceRoot":"","sources":["../../src/services/feathers-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,gBAAgB,CAAC;AAG/D,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA+BjD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,CAAC,CA6ErB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,6BAAuB,CAAC"}
1
+ {"version":3,"file":"feathers-client.d.ts","sourceRoot":"","sources":["../../src/services/feathers-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,gBAAgB,CAAC;AAG/D,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAoCjD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,CAAC,CAsMrB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,6BAAuB,CAAC"}
@@ -6,6 +6,10 @@
6
6
  */
7
7
  import { createClient } from '@agor/core/api';
8
8
  const DEBUG_FEATHERS_CLIENT = process.env.AGOR_DEBUG_FEATHERS_CLIENT === '1' || process.env.DEBUG?.includes('feathers-client');
9
+ const SERVER_DISCONNECT_RECONNECT_BASE_DELAY_MS = 1000;
10
+ const SERVER_DISCONNECT_RECONNECT_MAX_DELAY_MS = 30_000;
11
+ const SERVER_DISCONNECT_RECONNECT_MAX_ATTEMPTS = 8;
12
+ const SERVER_DISCONNECT_RECONNECT_MAX_AUTH_FAILURES = 3;
9
13
  function feathersClientDebug(...args) {
10
14
  if (DEBUG_FEATHERS_CLIENT) {
11
15
  console.debug(...args);
@@ -35,20 +39,132 @@ class MemoryStorage {
35
39
  * @returns Authenticated Feathers client
36
40
  */
37
41
  export async function createExecutorClient(daemonUrl, sessionToken) {
42
+ const startedAt = Date.now();
43
+ const logSocketEvent = (event, detail) => {
44
+ const elapsedSeconds = Math.round((Date.now() - startedAt) / 1000);
45
+ const suffix = detail === undefined ? '' : `: ${detail instanceof Error ? detail.message : String(detail)}`;
46
+ console.log(`[executor] Socket ${event} after ${elapsedSeconds}s${suffix}`);
47
+ };
38
48
  // CRITICAL FIX: Use in-memory storage for authentication
39
49
  // Without this, the authentication result is discarded and subsequent requests fail
40
50
  const storage = new MemoryStorage();
41
51
  // Create client with custom storage (don't auto-connect, we'll connect manually)
42
52
  const client = createClient(daemonUrl, false, {
43
53
  verbose: DEBUG_FEATHERS_CLIENT, // Log connection status for debugging
44
- reconnectionAttempts: 5, // Allow more retries for transient network hiccups during long-running tasks
54
+ // Executors may run for much longer than common proxy/websocket connection
55
+ // caps (for example, 15-minute ingress/LB limits). A short retry budget
56
+ // turns a recoverable transport rotation into a permanent daemon
57
+ // disconnect: heartbeats stop, terminal task patches are lost, and the
58
+ // daemon eventually marks the task failed via stale heartbeat/onExit
59
+ // safety nets. Match the browser client and keep retrying for the task's
60
+ // lifetime; the existing reconnect handler below re-authenticates the
61
+ // socket after each successful reconnect.
62
+ reconnectionAttempts: Number.POSITIVE_INFINITY,
45
63
  authStorage: storage,
46
64
  });
47
65
  // Keep the executor JWT available for daemon endpoints that need an explicit
48
66
  // task-scoped proof. Socket.io auth can preserve the session creator user
49
67
  // while dropping custom JWT claims from subsequent service params.
50
68
  client.executorSessionToken = sessionToken;
69
+ let serverDisconnectReconnectAttempts = 0;
70
+ let serverDisconnectAuthFailures = 0;
71
+ let serverDisconnectReconnectTimer;
72
+ const resetServerDisconnectRecovery = () => {
73
+ serverDisconnectReconnectAttempts = 0;
74
+ serverDisconnectAuthFailures = 0;
75
+ if (serverDisconnectReconnectTimer) {
76
+ clearTimeout(serverDisconnectReconnectTimer);
77
+ serverDisconnectReconnectTimer = undefined;
78
+ }
79
+ };
80
+ let reauthenticating = false;
81
+ const reauthenticateSocket = async (label) => {
82
+ if (reauthenticating)
83
+ return true;
84
+ reauthenticating = true;
85
+ try {
86
+ // Try reAuthenticate first — uses stored credentials from MemoryStorage
87
+ await client.reAuthenticate(true);
88
+ console.log(`[executor] Re-authenticated successfully after ${label}`);
89
+ resetServerDisconnectRecovery();
90
+ return true;
91
+ }
92
+ catch {
93
+ // Fallback: authenticate with raw JWT if storage-based re-auth fails
94
+ try {
95
+ await client.authenticate({
96
+ strategy: 'jwt',
97
+ accessToken: sessionToken,
98
+ });
99
+ console.log(`[executor] Re-authenticated with JWT fallback after ${label}`);
100
+ resetServerDisconnectRecovery();
101
+ return true;
102
+ }
103
+ catch (error) {
104
+ console.error(`[executor] Re-authentication failed after ${label}:`, error);
105
+ return false;
106
+ }
107
+ }
108
+ finally {
109
+ reauthenticating = false;
110
+ }
111
+ };
112
+ const scheduleServerDisconnectReconnect = () => {
113
+ if (serverDisconnectReconnectTimer)
114
+ return;
115
+ if (serverDisconnectReconnectAttempts >= SERVER_DISCONNECT_RECONNECT_MAX_ATTEMPTS) {
116
+ logSocketEvent('server_disconnect_reconnect_abandoned', `after ${serverDisconnectReconnectAttempts} attempts`);
117
+ return;
118
+ }
119
+ serverDisconnectReconnectAttempts += 1;
120
+ const delayMs = serverDisconnectReconnectAttempts === 1
121
+ ? 0
122
+ : Math.min(SERVER_DISCONNECT_RECONNECT_BASE_DELAY_MS *
123
+ 2 ** (serverDisconnectReconnectAttempts - 2), SERVER_DISCONNECT_RECONNECT_MAX_DELAY_MS);
124
+ logSocketEvent('server_disconnect_reconnect_scheduled', `attempt ${serverDisconnectReconnectAttempts} in ${delayMs}ms`);
125
+ serverDisconnectReconnectTimer = setTimeout(() => {
126
+ serverDisconnectReconnectTimer = undefined;
127
+ client.io.once('connect', async () => {
128
+ const reauthenticated = await reauthenticateSocket('server disconnect reconnect');
129
+ if (reauthenticated)
130
+ return;
131
+ serverDisconnectAuthFailures += 1;
132
+ if (serverDisconnectAuthFailures >= SERVER_DISCONNECT_RECONNECT_MAX_AUTH_FAILURES) {
133
+ logSocketEvent('server_disconnect_reconnect_auth_abandoned', `after ${serverDisconnectAuthFailures} auth failures`);
134
+ client.io.disconnect();
135
+ return;
136
+ }
137
+ client.io.disconnect();
138
+ scheduleServerDisconnectReconnect();
139
+ });
140
+ client.io.connect();
141
+ }, delayMs);
142
+ };
51
143
  // Connect the socket
144
+ client.io.on('disconnect', (reason) => {
145
+ logSocketEvent('disconnected', reason);
146
+ if (reason === 'io server disconnect') {
147
+ // Socket.IO intentionally disables automatic reconnect after a server-
148
+ // initiated namespace disconnect. In practice, long executor tasks can
149
+ // see this at the same ~15-minute boundary as proxy transport rotation.
150
+ // Treat it as recoverable for executor lifetimes and explicitly reopen
151
+ // the socket; the one-shot connect handler below re-authenticates the new
152
+ // socket because Manager "reconnect" is not emitted for this path.
153
+ scheduleServerDisconnectReconnect();
154
+ }
155
+ });
156
+ client.io.on('connect_error', (error) => {
157
+ logSocketEvent('connect_error', error);
158
+ });
159
+ client.io.io.on('reconnect_attempt', (attemptNumber) => {
160
+ logSocketEvent('reconnect_attempt', `attempt ${attemptNumber}`);
161
+ });
162
+ client.io.io.on('reconnect_error', (error) => {
163
+ logSocketEvent('reconnect_error', error);
164
+ });
165
+ client.io.io.on('reconnect_failed', () => {
166
+ logSocketEvent('reconnect_failed');
167
+ });
52
168
  client.io.connect();
53
169
  // Wait for connection
54
170
  await new Promise((resolve, reject) => {
@@ -81,25 +197,8 @@ export async function createExecutorClient(daemonUrl, sessionToken) {
81
197
  // NOTE: 'reconnect' is a Manager event, not a Socket event.
82
198
  // client.io is the Socket; client.io.io is the Manager.
83
199
  client.io.io.on('reconnect', async (attemptNumber) => {
84
- console.log(`[executor] Socket reconnected (attempt ${attemptNumber}), re-authenticating...`);
85
- try {
86
- // Try reAuthenticate first — uses stored credentials from MemoryStorage
87
- await client.reAuthenticate(true);
88
- console.log('[executor] Re-authenticated successfully after reconnect');
89
- }
90
- catch {
91
- // Fallback: authenticate with raw JWT if storage-based re-auth fails
92
- try {
93
- await client.authenticate({
94
- strategy: 'jwt',
95
- accessToken: sessionToken,
96
- });
97
- console.log('[executor] Re-authenticated with JWT fallback after reconnect');
98
- }
99
- catch (error) {
100
- console.error('[executor] Re-authentication failed after reconnect:', error);
101
- }
102
- }
200
+ logSocketEvent('reconnected', `attempt ${attemptNumber}; re-authenticating`);
201
+ await reauthenticateSocket('reconnect');
103
202
  });
104
203
  return client;
105
204
  }
@@ -0,0 +1 @@
1
+ import{N as e}from"./editor-Cr0W5BQI.js";import{a as t,i as n,r}from"./emoji-Bv3m24sO.js";var i=e(),a=({onEmojiClick:e})=>(0,i.jsx)(r,{onEmojiClick:e,theme:t.DARK,emojiStyle:n.NATIVE,width:350,height:400});export{a as default};