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
@@ -17,7 +17,7 @@
17
17
  * truly global and available to all sessions regardless of who created them.
18
18
  */
19
19
  import type { MCPServer, SessionID } from '@agor/core/types';
20
- import type { MCPServerRepository, SessionMCPServerRepository } from '../../db/feathers-repositories.js';
20
+ import type { MCPOAuthAuthHeadersRepository, MCPServerRepository, SessionMCPServerRepository } from '../../db/feathers-repositories.js';
21
21
  /**
22
22
  * MCP server with source metadata
23
23
  */
@@ -31,6 +31,13 @@ export interface MCPServerWithSource {
31
31
  export interface MCPResolutionDeps {
32
32
  sessionMCPRepo?: SessionMCPServerRepository;
33
33
  mcpServerRepo?: MCPServerRepository;
34
+ /**
35
+ * Trusted executor-only route for hydrating OAuth Authorization headers.
36
+ *
37
+ * Normal session MCP server payloads redact OAuth access tokens, so executor
38
+ * paths must not rely on `server.auth.oauth_access_token` being present.
39
+ */
40
+ mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository;
34
41
  /**
35
42
  * User ID to use for fetching per-user OAuth tokens.
36
43
  * When provided, MCP servers with per-user OAuth will have tokens injected.
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-scoping.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/base/mcp-scoping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EACV,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAe3C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,kBAAkB,GAAG,QAAQ,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA0JhC"}
1
+ {"version":3,"file":"mcp-scoping.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/base/mcp-scoping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EACV,6BAA6B,EAC7B,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAe3C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,kBAAkB,GAAG,QAAQ,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,6BAA6B,CAAC;IACxD;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA+NhC"}
@@ -16,7 +16,7 @@
16
16
  * Note: owner_user_id on MCP servers is NOT used for filtering. Global MCPs are
17
17
  * truly global and available to all sessions regardless of who created them.
18
18
  */
19
- import { buildMCPTemplateContextFromEnv, resolveMcpServerTemplates } from '@agor/core/mcp';
19
+ import { buildMCPTemplateContextFromEnv, resolveMcpServerTemplates, TEMPLATE_RESOLVABLE_MCP_AUTH_SECRET_FIELDS, } from '@agor/core/mcp';
20
20
  const DEBUG_MCP_SCOPING = process.env.AGOR_DEBUG_MCP_SCOPING === '1' || process.env.DEBUG?.includes('mcp-scoping');
21
21
  function mcpDebug(...args) {
22
22
  if (DEBUG_MCP_SCOPING) {
@@ -68,7 +68,7 @@ export async function getMcpServersForSession(sessionId, deps) {
68
68
  console.warn(` ⚠️ Skipping duplicate ${source} MCP server: ${server.name} (${server.mcp_server_id})`);
69
69
  };
70
70
  if (typeof deps.sessionMCPRepo.listEffectiveServers === 'function') {
71
- const effectiveServers = await deps.sessionMCPRepo.listEffectiveServers(sessionId, true);
71
+ const effectiveServers = await deps.sessionMCPRepo.listEffectiveServers(sessionId, true, deps.forUserId);
72
72
  mcpDebug(` 📍 Effective session scope: ${effectiveServers.length} server(s)`);
73
73
  for (const server of effectiveServers) {
74
74
  addServer(server, server.scope === 'global' ? 'global' : 'session-assigned');
@@ -110,6 +110,16 @@ export async function getMcpServersForSession(sessionId, deps) {
110
110
  let templatesResolved = 0;
111
111
  let serversSkipped = 0;
112
112
  const containsTemplate = (v) => v?.includes('{{') && v?.includes('}}');
113
+ // Every auth field `resolveMcpServerTemplates` substitutes. Driven from the
114
+ // canonical secret set plus the non-secret auth templates the resolver also
115
+ // handles, so this trigger cannot drift from what resolution resolves.
116
+ const AUTH_TEMPLATE_FIELDS = [
117
+ ...TEMPLATE_RESOLVABLE_MCP_AUTH_SECRET_FIELDS,
118
+ 'api_url',
119
+ 'oauth_token_url',
120
+ 'oauth_client_id',
121
+ 'oauth_scope',
122
+ ];
113
123
  // Process servers in reverse to safely remove invalid ones
114
124
  for (let i = servers.length - 1; i >= 0; i--) {
115
125
  const original = servers[i].server;
@@ -119,10 +129,7 @@ export async function getMcpServersForSession(sessionId, deps) {
119
129
  const hasEnvTemplates = envValues.some(containsTemplate);
120
130
  const hasHeaderTemplates = headerValues.some(containsTemplate);
121
131
  const hasUrlTemplate = containsTemplate(original.url);
122
- const hasAuthTemplates = containsTemplate(original.auth?.token) ||
123
- containsTemplate(original.auth?.api_url) ||
124
- containsTemplate(original.auth?.api_token) ||
125
- containsTemplate(original.auth?.api_secret);
132
+ const hasAuthTemplates = AUTH_TEMPLATE_FIELDS.some((field) => containsTemplate(original.auth?.[field]));
126
133
  if (hasEnvTemplates || hasHeaderTemplates || hasUrlTemplate || hasAuthTemplates) {
127
134
  const result = resolveMcpServerTemplates(original, templateContext);
128
135
  if (!result.isValid) {
@@ -150,6 +157,51 @@ export async function getMcpServersForSession(sessionId, deps) {
150
157
  if (serversSkipped > 0) {
151
158
  console.warn(` ⚠️ Skipped ${serversSkipped} MCP server(s) due to unresolved required templates`);
152
159
  }
160
+ const oauthServers = servers
161
+ .map(({ server }) => server)
162
+ .filter((server) => server.auth?.type === 'oauth');
163
+ if (oauthServers.length > 0) {
164
+ if (!deps.mcpOAuthAuthHeadersRepo) {
165
+ mcpDebug(` ℹ️ ${oauthServers.length} OAuth MCP server(s) resolved without executor auth-header hydrator`);
166
+ }
167
+ else {
168
+ try {
169
+ const authHeaders = await deps.mcpOAuthAuthHeadersRepo.getAuthHeaders(oauthServers.map((server) => server.mcp_server_id));
170
+ let hydrated = 0;
171
+ for (let i = 0; i < servers.length; i++) {
172
+ const server = servers[i].server;
173
+ if (server.auth?.type !== 'oauth')
174
+ continue;
175
+ const header = authHeaders[server.mcp_server_id];
176
+ const bearer = /^Bearer\s+(.+)$/i.exec(header?.authorization ?? '')?.[1];
177
+ if (!bearer) {
178
+ if (header?.error && header.error !== 'needs_reauth') {
179
+ console.warn(` ⚠️ OAuth MCP server "${server.name}" auth unavailable: ${header.error}`);
180
+ }
181
+ else if (header?.error) {
182
+ mcpDebug(` ℹ️ OAuth MCP server "${server.name}" auth unavailable: ${header.error}`);
183
+ }
184
+ continue;
185
+ }
186
+ servers[i] = {
187
+ ...servers[i],
188
+ server: {
189
+ ...server,
190
+ auth: {
191
+ ...server.auth,
192
+ oauth_access_token: bearer,
193
+ },
194
+ },
195
+ };
196
+ hydrated++;
197
+ }
198
+ mcpDebug(` 🔐 Hydrated OAuth auth headers for ${hydrated} MCP server(s)`);
199
+ }
200
+ catch (error) {
201
+ console.warn(` ⚠️ Failed to hydrate OAuth MCP auth headers: ${error instanceof Error ? error.message : String(error)}`);
202
+ }
203
+ }
204
+ }
153
205
  // Keep MCP config order stable across turns. Provider SDKs serialize MCP
154
206
  // tools into the prompt prefix, so DB/default ordering drift can reduce
155
207
  // server-side prompt-cache hits even when the effective server set is the
@@ -6,7 +6,7 @@
6
6
  * - ✅ Live execution via Anthropic SDK
7
7
  * - ❌ Create new sessions (waiting for SDK)
8
8
  */
9
- import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository } from '../../db/feathers-repositories.js';
9
+ import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository } from '../../db/feathers-repositories.js';
10
10
  import type { PermissionService } from '../../permissions/permission-service.js';
11
11
  import type { NormalizedSdkResponse, RawSdkResponse } from '../../types/sdk-response.js';
12
12
  import type { TokenUsage } from '../../types/token-usage.js';
@@ -22,7 +22,7 @@ export declare class ClaudeTool implements ITool {
22
22
  readonly name = "Claude Code";
23
23
  private promptService?;
24
24
  constructor(messagesRepo?: MessagesRepository | undefined, sessionsRepo?: SessionRepository | undefined, apiKey?: string, messagesService?: MessagesService | undefined, sessionMCPRepo?: SessionMCPServerRepository, mcpServerRepo?: MCPServerRepository, permissionService?: PermissionService, tasksService?: TasksService | undefined, tasksStreamingService?: TasksStreamingService | undefined, sessionsService?: SessionsPatchClient, branchesRepo?: BranchRepository, reposRepo?: RepoRepository, mcpEnabled?: boolean, _useNativeAuth?: boolean, // Claude supports `claude login` OAuth, but no special handling needed in tool
25
- usersRepo?: import('../../db/feathers-repositories').UsersRepository);
25
+ usersRepo?: import('../../db/feathers-repositories').UsersRepository, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository);
26
26
  getCapabilities(): ToolCapabilities;
27
27
  checkInstalled(): Promise<boolean>;
28
28
  private emitTaskEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/claude/claude-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/claude/claude-tool.ts"],"names":[],"mappings":"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"}
@@ -82,14 +82,14 @@ export class ClaudeTool {
82
82
  name = 'Claude Code';
83
83
  promptService;
84
84
  constructor(messagesRepo, sessionsRepo, apiKey, messagesService, sessionMCPRepo, mcpServerRepo, permissionService, tasksService, tasksStreamingService, sessionsService, branchesRepo, reposRepo, mcpEnabled, _useNativeAuth, // Claude supports `claude login` OAuth, but no special handling needed in tool
85
- usersRepo) {
85
+ usersRepo, mcpOAuthAuthHeadersRepo) {
86
86
  this.messagesRepo = messagesRepo;
87
87
  this.sessionsRepo = sessionsRepo;
88
88
  this.messagesService = messagesService;
89
89
  this.tasksService = tasksService;
90
90
  this.tasksStreamingService = tasksStreamingService;
91
91
  if (messagesRepo && sessionsRepo) {
92
- this.promptService = new ClaudePromptService(messagesRepo, sessionsRepo, apiKey, sessionMCPRepo, mcpServerRepo, permissionService, tasksService, sessionsService, branchesRepo, reposRepo, messagesService, mcpEnabled, usersRepo);
92
+ this.promptService = new ClaudePromptService(messagesRepo, sessionsRepo, apiKey, sessionMCPRepo, mcpServerRepo, permissionService, tasksService, sessionsService, branchesRepo, reposRepo, messagesService, mcpEnabled, usersRepo, mcpOAuthAuthHeadersRepo);
93
93
  }
94
94
  }
95
95
  getCapabilities() {
@@ -5,7 +5,7 @@
5
5
  * Automatically loads CLAUDE.md and uses preset system prompts matching Claude Code CLI.
6
6
  */
7
7
  import type { PermissionMode } from '@agor/core/sdk';
8
- import type { BranchRepository, MCPServerRepository, MessagesRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
8
+ import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
9
9
  import type { PermissionService } from '../../permissions/permission-service.js';
10
10
  import type { SessionID, TaskID } from '../../types.js';
11
11
  import type { MessagesService, SessionsPatchClient, TasksService } from '../base/index.js';
@@ -45,15 +45,25 @@ export declare class ClaudePromptService {
45
45
  private messagesService?;
46
46
  private mcpEnabled?;
47
47
  private usersRepo?;
48
+ private mcpOAuthAuthHeadersRepo?;
48
49
  /** Enable token-level streaming from Claude Agent SDK */
49
50
  private static readonly ENABLE_TOKEN_STREAMING;
50
- /** Idle timeout for SDK event loop - throws error if no messages received for this duration */
51
+ /**
52
+ * Idle timeout for SDK event loop - throws error if no messages are received
53
+ * for this duration.
54
+ *
55
+ * This is only a guard for a truly stuck SDK stream. Executor liveness is
56
+ * tracked separately by task heartbeats, so this must be long enough for
57
+ * legitimate silent tool calls (for example, a foreground Bash `sleep` or a
58
+ * long-running test command) to finish without Agor misclassifying the turn
59
+ * as hung.
60
+ */
51
61
  private static readonly IDLE_TIMEOUT_MS;
52
62
  /** Serialize permission checks per session to prevent duplicate prompts for concurrent tool calls */
53
63
  private permissionLocks;
54
64
  constructor(messagesRepo: MessagesRepository, sessionsRepo: SessionRepository, apiKey?: string | undefined, sessionMCPRepo?: SessionMCPServerRepository | undefined, mcpServerRepo?: MCPServerRepository | undefined, permissionService?: PermissionService | undefined, tasksService?: TasksService | undefined, sessionsService?: SessionsPatchClient | undefined, // FeathersJS Sessions service for WebSocket broadcasting
55
65
  branchesRepo?: BranchRepository | undefined, reposRepo?: import("../../db/feathers-repositories").RepoRepository | undefined, messagesService?: MessagesService | undefined, // FeathersJS Messages service for creating permission requests
56
- mcpEnabled?: boolean | undefined, usersRepo?: UsersRepository | undefined);
66
+ mcpEnabled?: boolean | undefined, usersRepo?: UsersRepository | undefined, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository | undefined);
57
67
  /**
58
68
  * Build help message for CLI-only commands that don't work through the SDK
59
69
  */
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/claude/prompt-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/claude/prompt-service.ts"],"names":[],"mappings":"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"}
@@ -22,15 +22,25 @@ export class ClaudePromptService {
22
22
  messagesService;
23
23
  mcpEnabled;
24
24
  usersRepo;
25
+ mcpOAuthAuthHeadersRepo;
25
26
  /** Enable token-level streaming from Claude Agent SDK */
26
27
  static ENABLE_TOKEN_STREAMING = true;
27
- /** Idle timeout for SDK event loop - throws error if no messages received for this duration */
28
- static IDLE_TIMEOUT_MS = 300000; // 5 minutes
28
+ /**
29
+ * Idle timeout for SDK event loop - throws error if no messages are received
30
+ * for this duration.
31
+ *
32
+ * This is only a guard for a truly stuck SDK stream. Executor liveness is
33
+ * tracked separately by task heartbeats, so this must be long enough for
34
+ * legitimate silent tool calls (for example, a foreground Bash `sleep` or a
35
+ * long-running test command) to finish without Agor misclassifying the turn
36
+ * as hung.
37
+ */
38
+ static IDLE_TIMEOUT_MS = 60 * 60 * 1000; // 60 minutes
29
39
  /** Serialize permission checks per session to prevent duplicate prompts for concurrent tool calls */
30
40
  permissionLocks = new Map();
31
41
  constructor(messagesRepo, sessionsRepo, apiKey, sessionMCPRepo, mcpServerRepo, permissionService, tasksService, sessionsService, // FeathersJS Sessions service for WebSocket broadcasting
32
42
  branchesRepo, reposRepo, messagesService, // FeathersJS Messages service for creating permission requests
33
- mcpEnabled, usersRepo) {
43
+ mcpEnabled, usersRepo, mcpOAuthAuthHeadersRepo) {
34
44
  this.messagesRepo = messagesRepo;
35
45
  this.sessionsRepo = sessionsRepo;
36
46
  this.apiKey = apiKey;
@@ -44,6 +54,7 @@ export class ClaudePromptService {
44
54
  this.messagesService = messagesService;
45
55
  this.mcpEnabled = mcpEnabled;
46
56
  this.usersRepo = usersRepo;
57
+ this.mcpOAuthAuthHeadersRepo = mcpOAuthAuthHeadersRepo;
47
58
  // No client initialization needed - Agent SDK is stateless
48
59
  }
49
60
  /**
@@ -148,6 +159,7 @@ If you continue to see authentication errors, please contact your Agor administr
148
159
  messagesService: this.messagesService,
149
160
  branchesRepo: this.branchesRepo,
150
161
  usersRepo: this.usersRepo,
162
+ mcpOAuthAuthHeadersRepo: this.mcpOAuthAuthHeadersRepo,
151
163
  permissionLocks: this.permissionLocks,
152
164
  }, {
153
165
  taskId,
@@ -285,6 +297,7 @@ If you continue to see authentication errors, please contact your Agor administr
285
297
  messagesService: this.messagesService,
286
298
  branchesRepo: this.branchesRepo,
287
299
  usersRepo: this.usersRepo,
300
+ mcpOAuthAuthHeadersRepo: this.mcpOAuthAuthHeadersRepo,
288
301
  permissionLocks: this.permissionLocks,
289
302
  }, {
290
303
  taskId: undefined,
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { Claude } from '@agor/core/sdk';
8
8
  type PermissionMode = Claude.PermissionMode;
9
- import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
9
+ import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
10
10
  import type { PermissionService } from '../../permissions/permission-service.js';
11
11
  import type { SessionID, TaskID } from '../../types.js';
12
12
  import type { MessagesService, SessionsPatchClient, TasksService } from '../base/index.js';
@@ -18,6 +18,7 @@ export interface QuerySetupDeps {
18
18
  apiKey?: string;
19
19
  sessionMCPRepo?: SessionMCPServerRepository;
20
20
  mcpServerRepo?: MCPServerRepository;
21
+ mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository;
21
22
  permissionService?: PermissionService;
22
23
  tasksService?: TasksService;
23
24
  sessionsService?: SessionsPatchClient;
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/claude/query-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAOxC,KAAK,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAI5C,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EAAoB,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA+B3F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,SAAI,GAAG,MAAM,CAKtE;AAgDD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,eAAe,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,eAAe,IAAI,OAAO,CAAC,OAAO,gBAAgB,EAAE,iCAAiC,CAAC,CAAC;IACvF;;;;OAIG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;CAC9C;AAED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,eAAe,CAAC;CAC9B,GACL,OAAO,CAAC;IACT,KAAK,EAAE,kBAAkB,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,MAAM,CAAC;CACzB,CAAC,CAqjBD"}
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/claude/query-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAOxC,KAAK,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAI5C,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,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EAAoB,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA+B3F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,SAAI,GAAG,MAAM,CAKtE;AAgDD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,uBAAuB,CAAC,EAAE,6BAA6B,CAAC;IACxD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,eAAe,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,eAAe,IAAI,OAAO,CAAC,OAAO,gBAAgB,EAAE,iCAAiC,CAAC,CAAC;IACvF;;;;OAIG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;CAC9C;AAED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,eAAe,CAAC;CAC9B,GACL,OAAO,CAAC;IACT,KAAK,EAAE,kBAAkB,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,MAAM,CAAC;CACzB,CAAC,CAujBD"}
@@ -422,6 +422,7 @@ export async function setupQuery(sessionId, prompt, deps, options = {}) {
422
422
  const serversWithSource = await getMcpServersForSession(sessionId, {
423
423
  sessionMCPRepo: deps.sessionMCPRepo,
424
424
  mcpServerRepo: deps.mcpServerRepo,
425
+ mcpOAuthAuthHeadersRepo: deps.mcpOAuthAuthHeadersRepo,
425
426
  forUserId: contextUserId,
426
427
  });
427
428
  if (serversWithSource.length > 0) {
@@ -447,7 +448,7 @@ export async function setupQuery(sessionId, prompt, deps, options = {}) {
447
448
  type: transport,
448
449
  env: server.env,
449
450
  };
450
- let canAlwaysLoad = shouldBlockOnMcpStartup;
451
+ let canAlwaysLoad = shouldBlockOnMcpStartup || (transport !== 'stdio' && server.auth?.type === 'oauth');
451
452
  // Add transport-specific fields
452
453
  if (transport === 'stdio') {
453
454
  serverConfig.command = server.command;
@@ -6,7 +6,7 @@
6
6
  * - ❌ Import sessions (deferred - need real session JSONL format)
7
7
  * - ❌ Session creation (handled via live execution)
8
8
  */
9
- import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
9
+ import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
10
10
  import type { NormalizedSdkResponse, RawSdkResponse } from '../../types/sdk-response.js';
11
11
  import type { TokenUsage } from '../../types/token-usage.js';
12
12
  import { type ContextUsageSnapshot, type MessageID, type MessageSource, type PermissionMode, type SessionID, type TaskID } from '../../types.js';
@@ -32,7 +32,7 @@ export declare class CodexTool implements ITool {
32
32
  private messagesService?;
33
33
  private tasksService?;
34
34
  private tasksStreamingService?;
35
- constructor(messagesRepo?: MessagesRepository, sessionsRepo?: SessionRepository, sessionMCPServerRepo?: SessionMCPServerRepository, branchesRepo?: BranchRepository, reposRepo?: RepoRepository, apiKey?: string, messagesService?: MessagesService, tasksService?: TasksService, tasksStreamingService?: TasksStreamingService, useNativeAuth?: boolean, mcpServerRepo?: MCPServerRepository, usersRepo?: UsersRepository);
35
+ constructor(messagesRepo?: MessagesRepository, sessionsRepo?: SessionRepository, sessionMCPServerRepo?: SessionMCPServerRepository, branchesRepo?: BranchRepository, reposRepo?: RepoRepository, apiKey?: string, messagesService?: MessagesService, tasksService?: TasksService, tasksStreamingService?: TasksStreamingService, useNativeAuth?: boolean, mcpServerRepo?: MCPServerRepository, usersRepo?: UsersRepository, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository);
36
36
  getCapabilities(): ToolCapabilities;
37
37
  checkInstalled(): Promise<boolean>;
38
38
  private emitTaskEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"codex-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/codex/codex-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,SAAS,EAEd,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AASxB,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAM1B,UAAU,oBAAoB;IAC5B,aAAa,EAAE,SAAS,CAAC;IACzB,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAYD,qBAAa,SAAU,YAAW,KAAK;IACrC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IACrC,QAAQ,CAAC,IAAI,kBAAkB;IAE/B,OAAO,CAAC,aAAa,CAAC,CAAqB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAoB;IACzC,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,qBAAqB,CAAC,CAAwB;gBAGpD,YAAY,CAAC,EAAE,kBAAkB,EACjC,YAAY,CAAC,EAAE,iBAAiB,EAChC,oBAAoB,CAAC,EAAE,0BAA0B,EACjD,YAAY,CAAC,EAAE,gBAAgB,EAC/B,SAAS,CAAC,EAAE,cAAc,EAC1B,MAAM,CAAC,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,eAAe,EACjC,YAAY,CAAC,EAAE,YAAY,EAC3B,qBAAqB,CAAC,EAAE,qBAAqB,EAC7C,aAAa,CAAC,EAAE,OAAO,EACvB,aAAa,CAAC,EAAE,mBAAmB,EACnC,SAAS,CAAC,EAAE,eAAe;IAyB7B,eAAe,IAAI,gBAAgB;IAY7B,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;YAU1B,aAAa;IAa3B;;;;;;;;;;;;;OAaG;IACG,0BAA0B,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,cAAc,EAC/B,kBAAkB,CAAC,EAAE,kBAAkB,EACvC,eAAe,CAAC,EAAE,eAAe,EACjC,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,oBAAoB,CAAC;IAoZhC;;;;;OAKG;YACW,eAAe;IAsB7B;;;OAGG;YACW,sBAAsB;IA6CpC;;;;;;;;;;OAUG;IACG,aAAa,CACjB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,cAAc,EAC/B,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,oBAAoB,CAAC;IAoJhC;;;;;;;;OAQG;IACG,QAAQ,CACZ,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAA;SAAE,CAAC,CAAC;QAC1F,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IA2BF;;;;;OAKG;IACH,qBAAqB,CAAC,YAAY,EAAE,cAAc,GAAG,qBAAqB;IAM1E;;;;;;;;;;;;;;;;;;;OAmBG;IACG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CAAC,MAAM,CAAC;CAsCnB"}
1
+ {"version":3,"file":"codex-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/codex/codex-tool.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export class CodexTool {
33
33
  messagesService;
34
34
  tasksService;
35
35
  tasksStreamingService;
36
- constructor(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, messagesService, tasksService, tasksStreamingService, useNativeAuth, mcpServerRepo, usersRepo) {
36
+ constructor(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, messagesService, tasksService, tasksStreamingService, useNativeAuth, mcpServerRepo, usersRepo, mcpOAuthAuthHeadersRepo) {
37
37
  this.messagesRepo = messagesRepo;
38
38
  this.sessionsRepo = sessionsRepo;
39
39
  this.branchesRepo = branchesRepo;
@@ -41,7 +41,7 @@ export class CodexTool {
41
41
  this.tasksService = tasksService;
42
42
  this.tasksStreamingService = tasksStreamingService;
43
43
  if (messagesRepo && sessionsRepo) {
44
- this.promptService = new CodexPromptService(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, mcpServerRepo, usersRepo, useNativeAuth ?? false, tasksService);
44
+ this.promptService = new CodexPromptService(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, mcpServerRepo, usersRepo, useNativeAuth ?? false, tasksService, mcpOAuthAuthHeadersRepo);
45
45
  }
46
46
  }
47
47
  getCapabilities() {
@@ -23,7 +23,7 @@
23
23
  * without cleanup. See issue #133.
24
24
  */
25
25
  import type { ContextUsageSnapshot } from '@agor/core/types';
26
- import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
26
+ import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
27
27
  import type { TokenUsage } from '../../types/token-usage.js';
28
28
  import type { PermissionMode, SessionID, TaskID } from '../../types.js';
29
29
  import type { TasksService } from '../base/index.js';
@@ -109,6 +109,7 @@ export declare class CodexPromptService {
109
109
  private branchesRepo?;
110
110
  private mcpServerRepo?;
111
111
  private tasksService?;
112
+ private mcpOAuthAuthHeadersRepo?;
112
113
  private codex?;
113
114
  private lastApiKey;
114
115
  private lastBaseUrl;
@@ -128,7 +129,7 @@ export declare class CodexPromptService {
128
129
  * Logged at DEBUG only (could leak internal hostnames).
129
130
  */
130
131
  private resolveBaseUrl;
131
- constructor(_messagesRepo: MessagesRepository, sessionsRepo: SessionRepository, sessionMCPServerRepo?: SessionMCPServerRepository | undefined, branchesRepo?: BranchRepository | undefined, _reposRepo?: RepoRepository, apiKey?: string, mcpServerRepo?: MCPServerRepository | undefined, _usersRepo?: UsersRepository, useNativeAuth?: boolean, tasksService?: TasksService | undefined);
132
+ constructor(_messagesRepo: MessagesRepository, sessionsRepo: SessionRepository, sessionMCPServerRepo?: SessionMCPServerRepository | undefined, branchesRepo?: BranchRepository | undefined, _reposRepo?: RepoRepository, apiKey?: string, mcpServerRepo?: MCPServerRepository | undefined, _usersRepo?: UsersRepository, useNativeAuth?: boolean, tasksService?: TasksService | undefined, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository | undefined);
132
133
  /**
133
134
  * Delete `agor-codex-instructions-*.md` files in `os.tmpdir()` (and the
134
135
  * `~/.agor/tmp` fallback dir) older than 24h. Bounds the disk leak from
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/codex/prompt-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/codex/prompt-service.ts"],"names":[],"mappings":"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"}
@@ -136,6 +136,7 @@ export class CodexPromptService {
136
136
  branchesRepo;
137
137
  mcpServerRepo;
138
138
  tasksService;
139
+ mcpOAuthAuthHeadersRepo;
139
140
  codex;
140
141
  lastApiKey = null;
141
142
  lastBaseUrl = null;
@@ -158,12 +159,13 @@ export class CodexPromptService {
158
159
  const raw = process.env.OPENAI_BASE_URL?.trim();
159
160
  return raw && raw.length > 0 ? raw : undefined;
160
161
  }
161
- constructor(_messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, _reposRepo, apiKey, mcpServerRepo, _usersRepo, useNativeAuth = false, tasksService) {
162
+ constructor(_messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, _reposRepo, apiKey, mcpServerRepo, _usersRepo, useNativeAuth = false, tasksService, mcpOAuthAuthHeadersRepo) {
162
163
  this.sessionsRepo = sessionsRepo;
163
164
  this.sessionMCPServerRepo = sessionMCPServerRepo;
164
165
  this.branchesRepo = branchesRepo;
165
166
  this.mcpServerRepo = mcpServerRepo;
166
167
  this.tasksService = tasksService;
168
+ this.mcpOAuthAuthHeadersRepo = mcpOAuthAuthHeadersRepo;
167
169
  // Store API key from base-executor (already resolved with proper precedence)
168
170
  this.apiKey = apiKey || '';
169
171
  this.lastApiKey = this.apiKey;
@@ -462,6 +464,7 @@ export class CodexPromptService {
462
464
  const serversWithSource = await getMcpServersForSession(sessionId, {
463
465
  sessionMCPRepo: this.sessionMCPServerRepo,
464
466
  mcpServerRepo: this.mcpServerRepo,
467
+ mcpOAuthAuthHeadersRepo: this.mcpOAuthAuthHeadersRepo,
465
468
  forUserId,
466
469
  });
467
470
  const mcpServers = serversWithSource.map((s) => s.server);
@@ -903,6 +906,7 @@ export class CodexPromptService {
903
906
  let todoIdsEmittedViaUpdate = new Set();
904
907
  let latestContextUsage;
905
908
  let eventCount = 0;
909
+ let didStop = false;
906
910
  for await (const event of events) {
907
911
  eventCount++;
908
912
  codexDebug(`📨 [Codex] Event ${eventCount}: ${event.type}`);
@@ -910,6 +914,7 @@ export class CodexPromptService {
910
914
  if (this.stopRequested.get(sessionId)) {
911
915
  console.log(`🛑 Stop requested for session ${sessionId}, breaking event loop`);
912
916
  this.stopRequested.delete(sessionId);
917
+ didStop = true;
913
918
  // Yield stopped event so caller knows execution was stopped early
914
919
  yield {
915
920
  type: 'stopped',
@@ -918,12 +923,62 @@ export class CodexPromptService {
918
923
  break;
919
924
  }
920
925
  if (event.type === 'event_msg') {
921
- // Codex emits token_count as generic event_msg payloads.
922
- // Capture the latest snapshot so turn.completed can return context usage.
923
- const contextSnapshot = extractCodexContextSnapshotFromEvent(event);
924
- if (contextSnapshot) {
925
- latestContextUsage = contextSnapshot;
926
+ const eventPayload = event.payload;
927
+ const payloadType = eventPayload?.type;
928
+ if (payloadType === 'token_count') {
929
+ // Codex emits token_count as generic event_msg payloads.
930
+ // Capture the latest snapshot so turn.completed can return context usage.
931
+ const contextSnapshot = extractCodexContextSnapshotFromEvent(event);
932
+ if (contextSnapshot) {
933
+ latestContextUsage = contextSnapshot;
934
+ }
935
+ continue;
936
+ }
937
+ if (payloadType === 'agent_message') {
938
+ // New Codex rollout format: final assistant text surfaces via event_msg
939
+ // rather than an item.completed(agent_message) item.
940
+ const text = typeof eventPayload?.content === 'string'
941
+ ? eventPayload.content
942
+ : typeof eventPayload?.text === 'string'
943
+ ? eventPayload.text
944
+ : typeof eventPayload?.message === 'string'
945
+ ? eventPayload.message
946
+ : '';
947
+ if (text) {
948
+ currentMessage.push({ type: 'text', text });
949
+ }
950
+ continue;
926
951
  }
952
+ if (payloadType === 'task_complete' || payloadType === 'turn_complete') {
953
+ // Terminal completion event from new Codex rollout format.
954
+ // Treat as equivalent to turn.completed.
955
+ threadId = thread.id || '';
956
+ const taskCompleteUsage = extractCodexTokenUsage((eventPayload?.usage ?? eventPayload?.token_usage));
957
+ const contextUsage = latestContextUsage ?? (await extractLatestContextUsageFromRollout(thread.id || ''));
958
+ // Synthesize final assistant text from last_agent_message unless
959
+ // a preceding agent_message event already pushed the same text.
960
+ // This preserves distinct progress/final messages without duplicating.
961
+ const lastAgentMessage = typeof eventPayload?.last_agent_message === 'string'
962
+ ? eventPayload.last_agent_message
963
+ : '';
964
+ const hasSameTextContent = currentMessage.some((block) => block.type === 'text' && block.text === lastAgentMessage);
965
+ if (lastAgentMessage && !hasSameTextContent) {
966
+ currentMessage.push({ type: 'text', text: lastAgentMessage });
967
+ }
968
+ codexDebug(`✅ [Codex] terminal event_msg (${payloadType}) received for session ${shortId(sessionId)}`);
969
+ yield {
970
+ type: 'complete',
971
+ content: currentMessage,
972
+ toolUses: allToolUses.length > 0 ? allToolUses : undefined,
973
+ threadId,
974
+ resolvedModel,
975
+ usage: taskCompleteUsage,
976
+ rawContextUsage: contextUsage,
977
+ };
978
+ return;
979
+ }
980
+ // Unknown event_msg payload type — ignore silently.
981
+ codexDebug(`[Codex] Unknown event_msg payload type: ${String(payloadType)}`);
927
982
  continue;
928
983
  }
929
984
  switch (event.type) {
@@ -1093,6 +1148,15 @@ export class CodexPromptService {
1093
1148
  break;
1094
1149
  }
1095
1150
  }
1151
+ // If we reach here without returning, the stream ended.
1152
+ // A user-requested stop is a valid early exit; anything else means Codex
1153
+ // exited without emitting a terminal event (turn.completed / task_complete / turn_complete),
1154
+ // which is the bug described in issue #1749.
1155
+ if (!didStop) {
1156
+ throw new Error('Codex stream ended without a terminal completion event (turn.completed, task_complete, or turn_complete). ' +
1157
+ 'The Codex process may have exited unexpectedly (check the executor logs for exit code 0 clues). ' +
1158
+ 'This is usually resolved by retrying the prompt; if it persists, restart the session.');
1159
+ }
1096
1160
  }
1097
1161
  catch (error) {
1098
1162
  // Check if this is an AbortError from AbortController.abort()
@@ -11,7 +11,7 @@
11
11
  * - ❌ Session import (deferred)
12
12
  * - ❌ Session fork (emulated via new sessions in Phase 2)
13
13
  */
14
- import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
14
+ import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
15
15
  import type { PermissionService } from '../../permissions/permission-service.js';
16
16
  import type { NormalizedSdkResponse, RawSdkResponse } from '../../types/sdk-response.js';
17
17
  import type { TokenUsage } from '../../types/token-usage.js';
@@ -35,7 +35,7 @@ export declare class CopilotTool implements ITool {
35
35
  private sessionsRepo?;
36
36
  private messagesService?;
37
37
  private tasksService?;
38
- constructor(messagesRepo?: MessagesRepository, sessionsRepo?: SessionRepository, sessionMCPServerRepo?: SessionMCPServerRepository, branchesRepo?: BranchRepository, reposRepo?: RepoRepository, apiKey?: string, messagesService?: MessagesService, tasksService?: TasksService, _useNativeAuth?: boolean, mcpServerRepo?: MCPServerRepository, usersRepo?: UsersRepository, permissionService?: PermissionService, sessionsService?: SessionsPatchClient);
38
+ constructor(messagesRepo?: MessagesRepository, sessionsRepo?: SessionRepository, sessionMCPServerRepo?: SessionMCPServerRepository, branchesRepo?: BranchRepository, reposRepo?: RepoRepository, apiKey?: string, messagesService?: MessagesService, tasksService?: TasksService, _useNativeAuth?: boolean, mcpServerRepo?: MCPServerRepository, usersRepo?: UsersRepository, permissionService?: PermissionService, sessionsService?: SessionsPatchClient, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository);
39
39
  getCapabilities(): ToolCapabilities;
40
40
  checkInstalled(): Promise<boolean>;
41
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/copilot/copilot-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/copilot/copilot-tool.ts"],"names":[],"mappings":"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"}