@xopcai/xopc 0.0.368 → 0.0.370

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 (516) hide show
  1. package/README.md +59 -174
  2. package/README.zh-CN.md +59 -174
  3. package/dist/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/esm/_md.js +131 -0
  4. package/dist/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/esm/_u64.js +30 -0
  5. package/dist/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/esm/sha2.js +252 -0
  6. package/dist/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/esm/sha256.js +16 -0
  7. package/dist/.pnpm/@noble_hashes@1.8.0/node_modules/@noble/hashes/esm/utils.js +66 -0
  8. package/dist/browser-ext/_locales/en/messages.json +30 -1
  9. package/dist/browser-ext/_locales/zh_CN/messages.json +30 -1
  10. package/dist/browser-ext/dist/assets/{auth-beGtbLPS.js → page-context-BeworyNB.js} +1331 -1355
  11. package/dist/browser-ext/dist/assets/{sidepanel-BT0ojEzG.css → sidepanel-Ccl0eSa1.css} +43 -0
  12. package/dist/browser-ext/dist/background.js +680 -182
  13. package/dist/browser-ext/dist/sidepanel.html +2 -2
  14. package/dist/browser-ext/dist/sidepanel.js +393 -194
  15. package/dist/browser-ext/manifest.json +2 -8
  16. package/dist/extensions/telegram/xopc.extension.json +1 -1
  17. package/dist/gateway/static/root/assets/{activity-store-D9ZMh5ZR.js → activity-store-BQ3PMp2q.js} +1 -1
  18. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Bj3rvcTm.js → agent-avatar-dicebear-C61i1QbX.js} +1 -1
  19. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-0fCR1DHx.js +1 -0
  20. package/dist/gateway/static/root/assets/agent-plugin-dialog-Di99mUTT.js +1 -0
  21. package/dist/gateway/static/root/assets/agents-BRZZmYH_.js +66 -0
  22. package/dist/gateway/static/root/assets/{agents-admin-api-B5QDepbW.js → agents-admin-api-HBZvVyzF.js} +1 -1
  23. package/dist/gateway/static/root/assets/{app-management-settings-panel-2rTEtB_X.js → app-management-settings-panel-noqqxkds.js} +1 -1
  24. package/dist/gateway/static/root/assets/{appearance-settings-BPVBS80k.js → appearance-settings-DG8QN0gR.js} +1 -1
  25. package/dist/gateway/static/root/assets/{apps-page-1FuKlZYP.js → apps-page-CgiyzFYo.js} +1 -1
  26. package/dist/gateway/static/root/assets/{archive-plugin-BbT1O7oK.js → archive-plugin-BO3I9zRP.js} +1 -1
  27. package/dist/gateway/static/root/assets/{automations-page-DjwP_h8h.js → automations-page-CgAcRFDS.js} +1 -1
  28. package/dist/gateway/static/root/assets/automations-workspace-BIkxIpab.js +6 -0
  29. package/dist/gateway/static/root/assets/{binary-plugins-gS7Wg68v.js → binary-plugins-gFD7vH9R.js} +1 -1
  30. package/dist/gateway/static/root/assets/{block-editor-DbwMaivP.js → block-editor-B1VE-jAe.js} +2 -2
  31. package/dist/gateway/static/root/assets/browser-automation-inputs-DxRoKFun.js +1 -0
  32. package/dist/gateway/static/root/assets/browser-automations-page-CIjyMS6f.js +3 -0
  33. package/dist/gateway/static/root/assets/browser-settings-page-BMAivBfp.js +3 -0
  34. package/dist/gateway/static/root/assets/{capabilities-Lswa0hv8.js → capabilities-CY4SiHcP.js} +1 -1
  35. package/dist/gateway/static/root/assets/{capabilities-Dd1PZRQw.js → capabilities-gjQtMhKu.js} +1 -1
  36. package/dist/gateway/static/root/assets/capabilities-page-DRdcfo68.js +2 -0
  37. package/dist/gateway/static/root/assets/{capabilities-settings-panel-DTHR1DrJ.js → capabilities-settings-panel-ZuL6pWjM.js} +4 -4
  38. package/dist/gateway/static/root/assets/{capability-header-actions-494dnJsj.js → capability-header-actions-D0GC1FEv.js} +1 -1
  39. package/dist/gateway/static/root/assets/channels-CgE22Pzd.js +1 -0
  40. package/dist/gateway/static/root/assets/{chat-terminal-dock-Bl7-Zk-x.js → chat-terminal-dock-CEjh1utz.js} +2 -2
  41. package/dist/gateway/static/root/assets/{computer-settings-page-ByExKr_6.js → computer-settings-page-vFHJAmQr.js} +1 -1
  42. package/dist/gateway/static/root/assets/{connector-service-page-BK_5aFxO.js → connector-service-page-DTrwZ4kV.js} +1 -1
  43. package/dist/gateway/static/root/assets/connectors-page-DRcMiTWu.js +1 -0
  44. package/dist/gateway/static/root/assets/copy-text-row-C1gaJwlZ.js +1 -0
  45. package/dist/gateway/static/root/assets/{date-picker-BXJv6472.js → date-picker-NfGIPSYY.js} +1 -1
  46. package/dist/gateway/static/root/assets/dependency-picker-CqguveUi.js +1 -0
  47. package/dist/gateway/static/root/assets/{desktop-pet-DWNEC3mk.js → desktop-pet-CTx1zkJm.js} +1 -1
  48. package/dist/gateway/static/root/assets/{desktop-pet-settings-BYwlxGiN.js → desktop-pet-settings-BRDS3EGc.js} +1 -1
  49. package/dist/gateway/static/root/assets/{device-pairing-wizard-BAc4F35b.js → device-pairing-wizard-Du4Ciuyw.js} +1 -1
  50. package/dist/gateway/static/root/assets/{directory-picker-path-field-D26tSY8Z.js → directory-picker-path-field-CjstlxFl.js} +1 -1
  51. package/dist/gateway/static/root/assets/{extension-debug-page-xYIGNegB.js → extension-debug-page-BfAtjhoK.js} +1 -1
  52. package/dist/gateway/static/root/assets/{extension-page-BoQ1-3AW.js → extension-page-BJmudejr.js} +1 -1
  53. package/dist/gateway/static/root/assets/{extension-provider-Cw_JU6RR.js → extension-provider-Br6LXyIj.js} +1 -1
  54. package/dist/gateway/static/root/assets/{extension-settings-page-BH5TFGPe.js → extension-settings-page-UvmHniyz.js} +1 -1
  55. package/dist/gateway/static/root/assets/{fallback-models-04Wqmw14.js → fallback-models-euw9MGdt.js} +1 -1
  56. package/dist/gateway/static/root/assets/{gateway-config-swr-CNf0ZeRw.js → gateway-config-swr-7RKqgU_U.js} +1 -1
  57. package/dist/gateway/static/root/assets/gateway-realtime-F6D4A7N5.js +1 -0
  58. package/dist/gateway/static/root/assets/gateway-realtime-store-BheKaO6d.js +1 -0
  59. package/dist/gateway/static/root/assets/{gateway-settings-BqvCJVUC.js → gateway-settings-C7roPHh1.js} +1 -1
  60. package/dist/gateway/static/root/assets/{gateway-startup-retry-DIxHacUw.js → gateway-startup-retry-jiV5sbEX.js} +1 -1
  61. package/dist/gateway/static/root/assets/home-page-BGNCTtM3.js +2 -0
  62. package/dist/gateway/static/root/assets/{image-generation-api-CS0q0Kto.js → image-generation-api-DO4mXb6I.js} +1 -1
  63. package/dist/gateway/static/root/assets/{imports-page-n_rSLo6b.js → imports-page-DxCoT0VV.js} +1 -1
  64. package/dist/gateway/static/root/assets/index-BGBkIIzM.css +1 -0
  65. package/dist/gateway/static/root/assets/index-FCEE325-.js +106 -0
  66. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-tVkrHbYF.js → keyboard-shortcuts-settings-CnLln9Ds.js} +1 -1
  67. package/dist/gateway/static/root/assets/{local-app-workbench-page-L8tYuas0.js → local-app-workbench-page-yXRkSrEj.js} +1 -1
  68. package/dist/gateway/static/root/assets/{local-apps-page-SSJ9B1bH.js → local-apps-page-D46buzTk.js} +1 -1
  69. package/dist/gateway/static/root/assets/local-session-drafts-pox8evDV.js +1 -0
  70. package/dist/gateway/static/root/assets/{locale-store-D6_rF-qT.js → locale-store-COVscAqC.js} +1 -1
  71. package/dist/gateway/static/root/assets/logs-page-DmcCHnH0.js +2 -0
  72. package/dist/gateway/static/root/assets/management-settings-khN1ThNL.js +1 -0
  73. package/dist/gateway/static/root/assets/{markdown-view-_xwUuKce.js → markdown-view-B_qnAcW2.js} +1 -1
  74. package/dist/gateway/static/root/assets/{media-plugins-C631CDu4.js → media-plugins-C0Pc-wSY.js} +1 -1
  75. package/dist/gateway/static/root/assets/messages-Bb2GK-Nj.js +3 -0
  76. package/dist/gateway/static/root/assets/models-hub-cache-DyPPksMP.js +1 -0
  77. package/dist/gateway/static/root/assets/note-detail-panel-C_t58yha.js +5 -0
  78. package/dist/gateway/static/root/assets/{notes-api-vIZWQ9Yt.js → notes-api-sBgBcyLW.js} +1 -1
  79. package/dist/gateway/static/root/assets/notes-page-BJ0QS6xx.js +8 -0
  80. package/dist/gateway/static/root/assets/{page-context-capture-button-BlPDM7GM.js → page-context-capture-button-DfRODHv1.js} +1 -1
  81. package/dist/gateway/static/root/assets/personal-page-CiiXwwQE.js +1 -0
  82. package/dist/gateway/static/root/assets/{product-open-page-BJjWvoER.js → product-open-page-_Bp6HRmm.js} +1 -1
  83. package/dist/gateway/static/root/assets/{product-preview-content-CEd4E7Gf.js → product-preview-content-BUdiO0Ct.js} +1 -1
  84. package/dist/gateway/static/root/assets/project-detail-page-Clb-fXYk.js +1 -0
  85. package/dist/gateway/static/root/assets/{projects-page-lszV8HuS.js → projects-page-D9JEEqhh.js} +1 -1
  86. package/dist/gateway/static/root/assets/{registry-api-uJnjqTcn.js → registry-api-Bh9UBb-f.js} +1 -1
  87. package/dist/gateway/static/root/assets/remote-access-hub-CmyTq3_l.js +1 -0
  88. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-CjnNQYW8.js → runtime-tools-settings-panel-B1_inj8L.js} +1 -1
  89. package/dist/gateway/static/root/assets/{scenes-page-B3T3dDOR.js → scenes-page-CUNAZN2_.js} +2 -2
  90. package/dist/gateway/static/root/assets/{schema-form-DT3c4Vd_.js → schema-form-CfT-9UVw.js} +1 -1
  91. package/dist/gateway/static/root/assets/{send-session-input-CICkGwn-.js → send-session-input-BW40VHiL.js} +1 -1
  92. package/dist/gateway/static/root/assets/{session-api-BcQodoAu.js → session-api-yjpEz4pP.js} +1 -1
  93. package/dist/gateway/static/root/assets/session-manager-BqlvrjPE.js +16 -0
  94. package/dist/gateway/static/root/assets/sessions-page-CXZKScvu.js +1 -0
  95. package/dist/gateway/static/root/assets/settings-advanced-gate-B2vKXmzg.js +1 -0
  96. package/dist/gateway/static/root/assets/{settings-page-D-PZjcss.js → settings-page-1h3vyueg.js} +1 -1
  97. package/dist/gateway/static/root/assets/setup-status-panel-Cqc7UlZy.js +1 -0
  98. package/dist/gateway/static/root/assets/{share-link-dialog-CWS8EkJS.js → share-link-dialog-HCHM8qnf.js} +1 -1
  99. package/dist/gateway/static/root/assets/{share-preview-page-23NJAKiq.js → share-preview-page-Ce6FNWt1.js} +1 -1
  100. package/dist/gateway/static/root/assets/{shares-api-iKhHbvBD.js → shares-api-c0dfWz6h.js} +1 -1
  101. package/dist/gateway/static/root/assets/shares-settings-Dh5jisCK.js +1 -0
  102. package/dist/gateway/static/root/assets/{skill-api-C-MWdQwl.js → skill-api-deDZeQS8.js} +1 -1
  103. package/dist/gateway/static/root/assets/{skill-reload-api-iy02aB13.js → skill-reload-api-Ge5XymHa.js} +1 -1
  104. package/dist/gateway/static/root/assets/skills-page-DZozl9U_.js +2 -0
  105. package/dist/gateway/static/root/assets/system-settings-panel-CtzyMxqq.js +1 -0
  106. package/dist/gateway/static/root/assets/{task-detail-page-B2SIEyhZ.js → task-detail-page-5f_V0h-p.js} +2 -2
  107. package/dist/gateway/static/root/assets/{task-expandable-content-D2LRR4BC.js → task-expandable-content-hYcgCEE3.js} +1 -1
  108. package/dist/gateway/static/root/assets/{theme-store-BJfhz-Zq.js → theme-store-BOfCKgl6.js} +1 -1
  109. package/dist/gateway/static/root/assets/{tracing-settings-page-aHD56iaS.js → tracing-settings-page-DDWFXcST.js} +1 -1
  110. package/dist/gateway/static/root/assets/{tunnel-api-BCf8CfTC.js → tunnel-api-vMtlbJ-m.js} +1 -1
  111. package/dist/gateway/static/root/assets/{usage-page-B4XUkuJd.js → usage-page-B1-BCW8U.js} +1 -1
  112. package/dist/gateway/static/root/assets/{use-autosave-BnnTw9RE.js → use-autosave-CSckcjFx.js} +1 -1
  113. package/dist/gateway/static/root/assets/{use-composer-attachments-Itczg0y1.js → use-composer-attachments-DJya1hIL.js} +1 -1
  114. package/dist/gateway/static/root/assets/use-file-preview-expanded-C5ONO7sF.js +2 -0
  115. package/dist/gateway/static/root/assets/user-model-page-D4BSq9HJ.js +2 -0
  116. package/dist/gateway/static/root/assets/{voice-api-key-field-BphJku8x.js → voice-api-key-field-GEw5x2fU.js} +1 -1
  117. package/dist/gateway/static/root/assets/{voice-config-api-B4u4coFj.js → voice-config-api-3yyVwXln.js} +1 -1
  118. package/dist/gateway/static/root/assets/{work-discovery-overlay-jgOEP1xw.js → work-discovery-overlay-CjiNYJV5.js} +1 -1
  119. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-N69crzRu.js → workflow-run-setup-panel-DJOetXvm.js} +2 -2
  120. package/dist/gateway/static/root/assets/workflows-page-CcAPFh2R.js +6 -0
  121. package/dist/gateway/static/root/assets/{workspace-api-Lzv6GDO8.js → workspace-api-WhbMvdBE.js} +2 -2
  122. package/dist/gateway/static/root/index.html +32 -34
  123. package/dist/package.js +1 -1
  124. package/dist/packages/browser-control-contract/src/automation.js +213 -0
  125. package/dist/packages/browser-control-contract/src/index.js +43 -12
  126. package/dist/packages/endpoint-tools-client/src/index.js +189 -0
  127. package/dist/packages/endpoint-tools-protocol/src/bridge.js +105 -0
  128. package/dist/packages/endpoint-tools-protocol/src/index.js +93 -2
  129. package/dist/packages/endpoint-tools-protocol/src/location.js +109 -0
  130. package/dist/packages/gateway-contract/src/gateway-scopes.js +3 -1
  131. package/dist/packages/gateway-contract/src/notifications.js +1 -0
  132. package/dist/packages/gateway-contract/src/session-input-command.js +30 -5
  133. package/dist/packages/realtime-protocol/src/voice.js +9 -3
  134. package/dist/src/agent/agent-manager.js +22 -26
  135. package/dist/src/agent/coding/repository-instructions.js +8 -1
  136. package/dist/src/agent/embedded/codemode-extension.d.ts +7 -0
  137. package/dist/src/agent/embedded/codemode-extension.js +232 -0
  138. package/dist/src/agent/embedded/codemode-output.d.ts +2 -0
  139. package/dist/src/agent/embedded/codemode-output.js +34 -0
  140. package/dist/src/agent/embedded/external-tool-discovery.d.ts +6 -0
  141. package/dist/src/agent/embedded/external-tool-discovery.js +60 -0
  142. package/dist/src/agent/embedded/model-runtime.js +5 -2
  143. package/dist/src/agent/embedded/run-for-session.js +10 -1
  144. package/dist/src/agent/embedded/run-turn.js +10 -3
  145. package/dist/src/agent/embedded/session-runner.d.ts +9 -1
  146. package/dist/src/agent/embedded/session-runner.js +111 -23
  147. package/dist/src/agent/embedded/session-tool-result-guard.d.ts +2 -0
  148. package/dist/src/agent/embedded/session-tool-result-guard.js +17 -0
  149. package/dist/src/agent/embedded/subscribe-session.js +14 -4
  150. package/dist/src/agent/embedded/tool-metadata.d.ts +15 -0
  151. package/dist/src/agent/embedded/tool-metadata.js +38 -0
  152. package/dist/src/agent/embedded/tool-search-extension.d.ts +5 -0
  153. package/dist/src/agent/embedded/tool-search-extension.js +31 -0
  154. package/dist/src/agent/embedded/types.d.ts +7 -0
  155. package/dist/src/agent/embedded/xopc-tools-bridge.js +6 -0
  156. package/dist/src/agent/external-tools/endpoint-provider.d.ts +1 -1
  157. package/dist/src/agent/external-tools/endpoint-provider.js +148 -56
  158. package/dist/src/agent/external-tools/extension-provider.js +8 -1
  159. package/dist/src/agent/external-tools/gateway-tools.d.ts +1 -1
  160. package/dist/src/agent/external-tools/gateway-tools.js +45 -22
  161. package/dist/src/agent/external-tools/index.js +46 -14
  162. package/dist/src/agent/external-tools/memory-provider.js +8 -1
  163. package/dist/src/agent/external-tools/read-policy.js +2 -1
  164. package/dist/src/agent/external-tools/service.d.ts +2 -0
  165. package/dist/src/agent/external-tools/service.js +25 -3
  166. package/dist/src/agent/external-tools/tool-registry.d.ts +14 -0
  167. package/dist/src/agent/external-tools/tool-registry.js +14 -0
  168. package/dist/src/agent/external-tools/types.d.ts +8 -1
  169. package/dist/src/agent/external-tools/types.js +0 -1
  170. package/dist/src/agent/mcp/config.d.ts +18 -0
  171. package/dist/src/agent/mcp/{bundle-mcp-config.js → config.js} +8 -25
  172. package/dist/src/agent/mcp/native-mcp.d.ts +6 -0
  173. package/dist/src/agent/mcp/native-mcp.js +73 -0
  174. package/dist/src/agent/service.js +2 -5
  175. package/dist/src/agent/skills/installer.js +1 -1
  176. package/dist/src/agent/skills/skill-manager.js +1 -1
  177. package/dist/src/agent/skills/skill-sources.js +1 -1
  178. package/dist/src/agent/source-context/index.d.ts +0 -1
  179. package/dist/src/agent/source-context/index.js +1 -2
  180. package/dist/src/agent/source-context/injector.js +1 -0
  181. package/dist/src/agent/source-context/types.d.ts +2 -2
  182. package/dist/src/agent/source-context/types.js +1 -1
  183. package/dist/src/agent/tool-manuals/browser.d.ts +1 -1
  184. package/dist/src/agent/tool-manuals/browser.js +3 -3
  185. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +1 -1
  186. package/dist/src/agent/tools/browser/tool/schemas.d.ts +0 -13
  187. package/dist/src/agent/tools/browser/tool/schemas.js +0 -4
  188. package/dist/src/agent/tools/browser-automation-tool.d.ts +74 -1
  189. package/dist/src/agent/tools/browser-automation-tool.js +52 -6
  190. package/dist/src/agent/tools/cli-clarify.js +1 -1
  191. package/dist/src/agent/tools/codemode-permissions.d.ts +4 -0
  192. package/dist/src/agent/tools/codemode-permissions.js +23 -0
  193. package/dist/src/agent/tools/dataBatch.js +3 -1
  194. package/dist/src/agent/tools/delegation-parent-policy.js +1 -4
  195. package/dist/src/agent/tools/factory.js +4 -3
  196. package/dist/src/agent/transcript/provider-capabilities.js +0 -1
  197. package/dist/src/agent/transcript/transcript-policy.js +1 -2
  198. package/dist/src/agent-config/schema.d.ts +28 -0
  199. package/dist/src/agent-config/schema.js +7 -0
  200. package/dist/src/auth/credentials.js +7 -20
  201. package/dist/src/auth/model-credential-store.js +11 -4
  202. package/dist/src/auth/oauth/index.d.ts +1 -1
  203. package/dist/src/auth/oauth/index.js +3 -3
  204. package/dist/src/auth/oauth/openai.d.ts +2 -0
  205. package/dist/src/auth/oauth/openai.js +90 -0
  206. package/dist/src/auth/oauth/registry.js +3 -3
  207. package/dist/src/auth/oauth/types.d.ts +1 -0
  208. package/dist/src/auth/oauth/xopc-cloud.js +1 -1
  209. package/dist/src/auth/sync-provider-auth.js +5 -0
  210. package/dist/src/automations/capabilities/write.d.ts +2 -0
  211. package/dist/src/automations/domain/types.d.ts +11 -0
  212. package/dist/src/automations/domain/validation.d.ts +4 -0
  213. package/dist/src/automations/domain/validation.js +1 -0
  214. package/dist/src/automations/draft/automation-draft-validator.d.ts +1 -0
  215. package/dist/src/automations/service/action-executor.js +11 -3
  216. package/dist/src/automations/service/automation-service.d.ts +1 -0
  217. package/dist/src/automations/service/automation-service.js +13 -1
  218. package/dist/src/bootstrap/application-state.js +1 -1
  219. package/dist/src/browser/automations/repository.d.ts +4 -0
  220. package/dist/src/browser/automations/repository.js +27 -6
  221. package/dist/src/browser/automations/runner.js +101 -9
  222. package/dist/src/browser/automations/runtime-service.js +4 -3
  223. package/dist/src/browser/automations/schema.d.ts +84 -1
  224. package/dist/src/browser/automations/schema.js +68 -2
  225. package/dist/src/browser/automations/service.d.ts +78 -1
  226. package/dist/src/browser/automations/service.js +36 -4
  227. package/dist/src/browser/automations/types.d.ts +19 -4
  228. package/dist/src/browser/drivers/extension-driver.d.ts +5 -5
  229. package/dist/src/browser/drivers/extension-driver.js +10 -10
  230. package/dist/src/browser/drivers/playwright-driver.js +46 -0
  231. package/dist/src/browser/index.d.ts +1 -2
  232. package/dist/src/browser/index.js +2 -3
  233. package/dist/src/browser/policy/browser-policy.d.ts +0 -1
  234. package/dist/src/browser/policy/browser-policy.js +1 -4
  235. package/dist/src/browser/providers/index.d.ts +1 -1
  236. package/dist/src/browser/providers/index.js +2 -2
  237. package/dist/src/browser/providers/realtime-extension.d.ts +1 -1
  238. package/dist/src/browser/providers/realtime-extension.js +5 -1
  239. package/dist/src/browser/recordings/service.d.ts +22 -0
  240. package/dist/src/browser/recordings/service.js +160 -0
  241. package/dist/src/browser/runtime/browser-runtime.d.ts +1 -1
  242. package/dist/src/browser/runtime/browser-runtime.js +19 -56
  243. package/dist/src/chat-commands/builtins/model.js +2 -2
  244. package/dist/src/cli/command-manifest.js +1 -1
  245. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  246. package/dist/src/cli/commands/extension-agent-plugin.js +0 -19
  247. package/dist/src/cli/commands/mcp.js +36 -2
  248. package/dist/src/cli/commands/models.js +1 -1
  249. package/dist/src/cli/utils/oauth-login.js +2 -2
  250. package/dist/src/computer/runtime.js +2 -2
  251. package/dist/src/config/index.js +3 -3
  252. package/dist/src/config/mcp-config-normalize.d.ts +0 -3
  253. package/dist/src/config/mcp-config-normalize.js +2 -22
  254. package/dist/src/config/models-json.d.ts +0 -5
  255. package/dist/src/config/models-json.js +13 -4
  256. package/dist/src/config/paths.d.ts +0 -1
  257. package/dist/src/config/paths.js +1 -4
  258. package/dist/src/config/schema.d.ts +142 -48
  259. package/dist/src/config/schema.js +64 -47
  260. package/dist/src/connectors/auth-provider-registry.d.ts +1 -1
  261. package/dist/src/connectors/auth-provider-registry.js +1 -21
  262. package/dist/src/connectors/china-catalog.js +5 -5
  263. package/dist/src/connectors/connection-recovery-service.d.ts +1 -6
  264. package/dist/src/connectors/connection-recovery-service.js +3 -105
  265. package/dist/src/connectors/health.d.ts +1 -2
  266. package/dist/src/connectors/health.js +2 -101
  267. package/dist/src/connectors/types.d.ts +1 -1
  268. package/dist/src/endpoint-tools/binding-service.d.ts +2 -0
  269. package/dist/src/endpoint-tools/binding-service.js +14 -2
  270. package/dist/src/endpoint-tools/bridge-host.d.ts +15 -0
  271. package/dist/src/endpoint-tools/bridge-host.js +166 -0
  272. package/dist/src/endpoint-tools/bridge.d.ts +27 -0
  273. package/dist/src/endpoint-tools/bridge.js +88 -0
  274. package/dist/src/endpoint-tools/capability-catalog.d.ts +2 -0
  275. package/dist/src/endpoint-tools/capability-catalog.js +8 -0
  276. package/dist/src/endpoint-tools/grant-service.d.ts +69 -0
  277. package/dist/src/endpoint-tools/grant-service.js +113 -0
  278. package/dist/src/endpoint-tools/index.js +1 -1
  279. package/dist/src/endpoint-tools/invocation-service.js +6 -2
  280. package/dist/src/endpoint-tools/location-task.d.ts +22 -0
  281. package/dist/src/endpoint-tools/location-task.js +114 -0
  282. package/dist/src/endpoint-tools/policy.js +20 -4
  283. package/dist/src/endpoint-tools/registry.d.ts +2 -0
  284. package/dist/src/endpoint-tools/registry.js +9 -0
  285. package/dist/src/endpoint-tools/result-projector.d.ts +15 -0
  286. package/dist/src/endpoint-tools/result-projector.js +31 -0
  287. package/dist/src/endpoint-tools/runtime.d.ts +2 -0
  288. package/dist/src/endpoint-tools/runtime.js +15 -2
  289. package/dist/src/endpoint-tools/target-resolver.d.ts +12 -0
  290. package/dist/src/endpoint-tools/target-resolver.js +27 -0
  291. package/dist/src/endpoint-tools/turn-context.d.ts +6 -0
  292. package/dist/src/endpoint-tools/turn-context.js +29 -0
  293. package/dist/src/extensions/agent-plugins/auth.d.ts +0 -2
  294. package/dist/src/extensions/agent-plugins/auth.js +2 -19
  295. package/dist/src/extensions/agent-plugins/credentials.js +3 -19
  296. package/dist/src/extensions/agent-plugins/inventory.d.ts +2 -2
  297. package/dist/src/extensions/agent-plugins/mcp-adapter.js +1 -5
  298. package/dist/src/extensions/agent-plugins/source-http-fetch.d.ts +2 -0
  299. package/dist/src/{agent/mcp/plugin-http-fetch.js → extensions/agent-plugins/source-http-fetch.js} +7 -7
  300. package/dist/src/extensions/agent-plugins/sources.js +2 -2
  301. package/dist/src/extensions/agent-plugins/store.js +1 -3
  302. package/dist/src/extensions/agent-plugins/validation.d.ts +0 -4
  303. package/dist/src/extensions/agent-plugins/validation.js +13 -20
  304. package/dist/src/gateway/agents-admin.d.ts +5 -0
  305. package/dist/src/gateway/agents-admin.js +56 -1
  306. package/dist/src/gateway/chat-stream/mapper.js +9 -0
  307. package/dist/src/gateway/chat-stream/protocol.d.ts +4 -4
  308. package/dist/src/gateway/hono/lib/config-payload.d.ts +9 -4
  309. package/dist/src/gateway/hono/lib/config-payload.js +2 -5
  310. package/dist/src/gateway/hono/oauth-async.js +9 -2
  311. package/dist/src/gateway/hono/routes/agent-plugins.js +4 -9
  312. package/dist/src/gateway/hono/routes/agents.js +4 -3
  313. package/dist/src/gateway/hono/routes/browser-automations.js +23 -7
  314. package/dist/src/gateway/hono/routes/browser-recordings.d.ts +3 -0
  315. package/dist/src/gateway/hono/routes/browser-recordings.js +78 -0
  316. package/dist/src/gateway/hono/routes/browser.js +1 -34
  317. package/dist/src/gateway/hono/routes/connection-waits.js +2 -5
  318. package/dist/src/gateway/hono/routes/connectors.js +5 -60
  319. package/dist/src/gateway/hono/routes/device-authorizations.d.ts +3 -0
  320. package/dist/src/gateway/hono/routes/device-authorizations.js +74 -0
  321. package/dist/src/gateway/hono/routes/device-push.js +1 -0
  322. package/dist/src/gateway/hono/routes/endpoint-compatibility.js +7 -0
  323. package/dist/src/gateway/hono/routes/endpoint-tools.d.ts +1 -0
  324. package/dist/src/gateway/hono/routes/endpoint-tools.js +53 -3
  325. package/dist/src/gateway/hono/routes/home.js +1 -1
  326. package/dist/src/gateway/hono/routes/lazy-bundles.js +25 -1
  327. package/dist/src/gateway/hono/routes/mcp.d.ts +1 -1
  328. package/dist/src/gateway/hono/routes/mcp.js +11 -237
  329. package/dist/src/gateway/hono/routes/personal-agent.js +35 -0
  330. package/dist/src/gateway/hono/routes/session-command-handler.js +11 -1
  331. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +8 -2
  332. package/dist/src/gateway/hono/routes/session-input-handler.js +25 -1
  333. package/dist/src/gateway/hono/routes/voice.js +5 -2
  334. package/dist/src/gateway/security/gateway-scopes.js +3 -1
  335. package/dist/src/gateway/service/agent-runner.js +1 -0
  336. package/dist/src/gateway/service/config-coordinator.js +2 -5
  337. package/dist/src/gateway/service/marketplace-service.js +2 -2
  338. package/dist/src/gateway/service/run-gateway-agent.js +13 -5
  339. package/dist/src/gateway/service/session-input-coordinator.d.ts +1 -1
  340. package/dist/src/gateway/service/session-input-coordinator.js +29 -9
  341. package/dist/src/gateway/service/sessions-api.js +0 -6
  342. package/dist/src/gateway/service.js +3 -12
  343. package/dist/src/gateway/session-reset-service.js +0 -6
  344. package/dist/src/home-intelligence/generator.d.ts +2 -0
  345. package/dist/src/home-intelligence/generator.js +53 -4
  346. package/dist/src/home-intelligence/host.d.ts +2 -1
  347. package/dist/src/home-intelligence/host.js +23 -3
  348. package/dist/src/imports/compatibility.js +12 -10
  349. package/dist/src/mcp/channel-bridge.js +1 -1
  350. package/dist/src/migrations/cloud-public-models.js +1 -0
  351. package/dist/src/notifications/clarification.d.ts +5 -0
  352. package/dist/src/notifications/clarification.js +66 -0
  353. package/dist/src/notifications/device-store.js +1 -0
  354. package/dist/src/notifications/harmony-push.d.ts +1 -0
  355. package/dist/src/notifications/harmony-push.js +3 -1
  356. package/dist/src/notifications/planner.d.ts +1 -0
  357. package/dist/src/notifications/service.d.ts +2 -2
  358. package/dist/src/notifications/service.js +20 -4
  359. package/dist/src/notifications/store.d.ts +2 -0
  360. package/dist/src/notifications/store.js +7 -1
  361. package/dist/src/notifications/types.d.ts +1 -0
  362. package/dist/src/notifications/types.js +1 -0
  363. package/dist/src/providers/env-keys.js +1 -1
  364. package/dist/src/providers/index.js +26 -24
  365. package/dist/src/providers/model-call.d.ts +0 -2
  366. package/dist/src/providers/model-call.js +2 -6
  367. package/dist/src/providers/model-registry.js +4 -2
  368. package/dist/src/providers/model-supplements.d.ts +3 -3
  369. package/dist/src/providers/model-supplements.js +6 -27
  370. package/dist/src/providers/presentation.js +3 -8
  371. package/dist/src/providers/prompt-cache-plan.js +1 -1
  372. package/dist/src/providers/provider-auth-service.d.ts +1 -1
  373. package/dist/src/providers/provider-auth-service.js +7 -2
  374. package/dist/src/providers/provider-policy.d.ts +3 -0
  375. package/dist/src/providers/provider-policy.js +14 -0
  376. package/dist/src/providers/register-runtime-providers.js +6 -1
  377. package/dist/src/realtime/runtime.js +1 -1
  378. package/dist/src/session/store.js +7 -1
  379. package/dist/src/session/transcript-events.d.ts +5 -0
  380. package/dist/src/session/transcript-events.js +1 -0
  381. package/dist/src/session/types.d.ts +2 -0
  382. package/dist/src/storage/sqlite/clarification-wait-repository.js +1 -0
  383. package/dist/src/storage/sqlite/device-grant-audit-repository.d.ts +11 -0
  384. package/dist/src/storage/sqlite/device-grant-audit-repository.js +10 -0
  385. package/dist/src/storage/sqlite/endpoint-device-settings-repository.d.ts +7 -0
  386. package/dist/src/storage/sqlite/endpoint-device-settings-repository.js +17 -0
  387. package/dist/src/storage/sqlite/migrations/238_browser_record_replay.sql +45 -0
  388. package/dist/src/storage/sqlite/migrations/239_clarification_notifications.sql +26 -0
  389. package/dist/src/storage/sqlite/migrations/240_device_settings.sql +5 -0
  390. package/dist/src/storage/sqlite/migrations/241_device_grant_audit.sql +13 -0
  391. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  392. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  393. package/dist/src/storage/sqlite/schema.js +1 -1
  394. package/dist/src/storage/sqlite/session-input-repository.d.ts +1 -0
  395. package/dist/src/storage/sqlite/session-input-repository.js +5 -1
  396. package/dist/src/tasks/home-query-service.d.ts +1 -1
  397. package/dist/src/tasks/home-query-service.js +6 -2
  398. package/dist/src/tui/backends/gateway-realtime-backend.js +1 -1
  399. package/dist/src/tui/xopc-tui-keybindings.d.ts +4 -4
  400. package/dist/src/voice/dashscope/streaming-tts-stream.d.ts +2 -1
  401. package/dist/src/voice/dashscope/streaming-tts-stream.js +135 -79
  402. package/dist/src/voice/realtime/agentEngine.js +78 -1
  403. package/dist/src/voice/realtime/speakable-segmenter.d.ts +2 -0
  404. package/dist/src/voice/realtime/speakable-segmenter.js +30 -0
  405. package/dist/src/voice/tts/providers/alibaba-speech.js +17 -1
  406. package/dist/src/voice/tts/speak-core.d.ts +3 -0
  407. package/dist/src/voice/tts/speak-core.js +21 -1
  408. package/dist/src/voice/tts/speech-provider-types.d.ts +8 -0
  409. package/package.json +18 -7
  410. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-D0tD3kCe.js +0 -1
  411. package/dist/gateway/static/root/assets/agent-plugin-dialog-BjdgKCnk.js +0 -1
  412. package/dist/gateway/static/root/assets/agents-CWXKzX5L.js +0 -66
  413. package/dist/gateway/static/root/assets/automations-workspace-C9ZT6TAU.js +0 -6
  414. package/dist/gateway/static/root/assets/browser-automation-inputs-CXG_JveC.js +0 -1
  415. package/dist/gateway/static/root/assets/browser-automations-page-CJc7OKR3.js +0 -3
  416. package/dist/gateway/static/root/assets/browser-settings-page-BjaTEUR8.js +0 -3
  417. package/dist/gateway/static/root/assets/capabilities-page-djBsC_tG.js +0 -2
  418. package/dist/gateway/static/root/assets/channels-BaYRJtz3.js +0 -1
  419. package/dist/gateway/static/root/assets/connectors-page-DyqRwSH2.js +0 -2
  420. package/dist/gateway/static/root/assets/copy-text-row-BHDs3cBa.js +0 -1
  421. package/dist/gateway/static/root/assets/dependency-picker-CWbbhKZa.js +0 -1
  422. package/dist/gateway/static/root/assets/dist-Che_jiQF.js +0 -1
  423. package/dist/gateway/static/root/assets/gateway-realtime-C4KtwMY3.js +0 -1
  424. package/dist/gateway/static/root/assets/gateway-realtime-store-ChZUzVbe.js +0 -1
  425. package/dist/gateway/static/root/assets/home-page-DhPPLbdD.js +0 -2
  426. package/dist/gateway/static/root/assets/index-CK4O2xMa.css +0 -1
  427. package/dist/gateway/static/root/assets/index-DpLD-7Hc.js +0 -106
  428. package/dist/gateway/static/root/assets/link-2-D_ZKYUW7.js +0 -1
  429. package/dist/gateway/static/root/assets/local-session-drafts-B_McurIj.js +0 -1
  430. package/dist/gateway/static/root/assets/logs-page-BWD63eg1.js +0 -2
  431. package/dist/gateway/static/root/assets/management-settings-aKSibklM.js +0 -1
  432. package/dist/gateway/static/root/assets/messages-Bnx3GMDB.js +0 -3
  433. package/dist/gateway/static/root/assets/models-hub-cache-Di83uIPw.js +0 -1
  434. package/dist/gateway/static/root/assets/note-detail-panel-B_fve3_2.js +0 -5
  435. package/dist/gateway/static/root/assets/notes-page-DnChyp8S.js +0 -8
  436. package/dist/gateway/static/root/assets/personal-page-BM2qAgg_.js +0 -1
  437. package/dist/gateway/static/root/assets/project-detail-page-DM4_VLNX.js +0 -1
  438. package/dist/gateway/static/root/assets/remote-access-hub-O6j9CWX0.js +0 -1
  439. package/dist/gateway/static/root/assets/session-manager-B0tOE4qz.js +0 -16
  440. package/dist/gateway/static/root/assets/sessions-page-BIixHXlQ.js +0 -1
  441. package/dist/gateway/static/root/assets/settings-advanced-gate-49SUEWPh.js +0 -1
  442. package/dist/gateway/static/root/assets/setup-status-panel-Ce3gTbT3.js +0 -1
  443. package/dist/gateway/static/root/assets/shares-settings-CNEZjF66.js +0 -1
  444. package/dist/gateway/static/root/assets/skills-page-BndNdYsJ.js +0 -2
  445. package/dist/gateway/static/root/assets/system-settings-panel-EpZeMlvp.js +0 -1
  446. package/dist/gateway/static/root/assets/use-file-preview-expanded-DJ5vyrvM.js +0 -2
  447. package/dist/gateway/static/root/assets/user-model-page-Bz5lkFG9.js +0 -2
  448. package/dist/gateway/static/root/assets/workflows-page-CPCgOfHh.js +0 -6
  449. package/dist/src/agent/embedded/system-prompt-override.d.ts +0 -2
  450. package/dist/src/agent/embedded/system-prompt-override.js +0 -21
  451. package/dist/src/agent/external-tools/mcp-provider.d.ts +0 -32
  452. package/dist/src/agent/external-tools/mcp-provider.js +0 -208
  453. package/dist/src/agent/mcp/bundle-mcp-config.d.ts +0 -20
  454. package/dist/src/agent/mcp/bundle-mcp-gateway.d.ts +0 -79
  455. package/dist/src/agent/mcp/bundle-mcp-gateway.js +0 -93
  456. package/dist/src/agent/mcp/bundle-mcp-names.d.ts +0 -1
  457. package/dist/src/agent/mcp/bundle-mcp-names.js +0 -25
  458. package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +0 -1
  459. package/dist/src/agent/mcp/bundle-mcp-policy.js +0 -6
  460. package/dist/src/agent/mcp/bundle-mcp-runtime.d.ts +0 -46
  461. package/dist/src/agent/mcp/bundle-mcp-runtime.js +0 -571
  462. package/dist/src/agent/mcp/bundle-mcp-tools.d.ts +0 -2
  463. package/dist/src/agent/mcp/bundle-mcp-tools.js +0 -2
  464. package/dist/src/agent/mcp/bundle-mcp-types.d.ts +0 -76
  465. package/dist/src/agent/mcp/bundle-mcp-types.js +0 -1
  466. package/dist/src/agent/mcp/embedded-mcp.d.ts +0 -10
  467. package/dist/src/agent/mcp/embedded-mcp.js +0 -14
  468. package/dist/src/agent/mcp/index.d.ts +0 -5
  469. package/dist/src/agent/mcp/index.js +0 -12
  470. package/dist/src/agent/mcp/mcp-config-shared.d.ts +0 -8
  471. package/dist/src/agent/mcp/mcp-config-shared.js +0 -39
  472. package/dist/src/agent/mcp/mcp-http.d.ts +0 -23
  473. package/dist/src/agent/mcp/mcp-http.js +0 -67
  474. package/dist/src/agent/mcp/mcp-resource-id.d.ts +0 -6
  475. package/dist/src/agent/mcp/mcp-resource-id.js +0 -19
  476. package/dist/src/agent/mcp/mcp-stdio-transport.d.ts +0 -26
  477. package/dist/src/agent/mcp/mcp-stdio-transport.js +0 -120
  478. package/dist/src/agent/mcp/mcp-stdio.d.ts +0 -18
  479. package/dist/src/agent/mcp/mcp-stdio.js +0 -35
  480. package/dist/src/agent/mcp/mcp-transport-config.d.ts +0 -28
  481. package/dist/src/agent/mcp/mcp-transport-config.js +0 -91
  482. package/dist/src/agent/mcp/mcp-transport.d.ts +0 -17
  483. package/dist/src/agent/mcp/mcp-transport.js +0 -141
  484. package/dist/src/agent/mcp/oauth/index.d.ts +0 -6
  485. package/dist/src/agent/mcp/oauth/index.js +0 -6
  486. package/dist/src/agent/mcp/oauth/mcp-oauth-errors.d.ts +0 -5
  487. package/dist/src/agent/mcp/oauth/mcp-oauth-errors.js +0 -14
  488. package/dist/src/agent/mcp/oauth/mcp-oauth-manager.d.ts +0 -30
  489. package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +0 -276
  490. package/dist/src/agent/mcp/oauth/mcp-oauth-provider.d.ts +0 -33
  491. package/dist/src/agent/mcp/oauth/mcp-oauth-provider.js +0 -103
  492. package/dist/src/agent/mcp/oauth/mcp-oauth-session.d.ts +0 -31
  493. package/dist/src/agent/mcp/oauth/mcp-oauth-session.js +0 -181
  494. package/dist/src/agent/mcp/oauth/mcp-oauth-store.d.ts +0 -12
  495. package/dist/src/agent/mcp/oauth/mcp-oauth-store.js +0 -91
  496. package/dist/src/agent/mcp/oauth/mcp-oauth-types.d.ts +0 -22
  497. package/dist/src/agent/mcp/oauth/mcp-oauth-types.js +0 -1
  498. package/dist/src/agent/mcp/plugin-http-fetch.d.ts +0 -2
  499. package/dist/src/agent/source-context/mcp-resource-context.d.ts +0 -8
  500. package/dist/src/agent/source-context/mcp-resource-context.js +0 -30
  501. package/dist/src/auth/oauth/openai-codex.d.ts +0 -9
  502. package/dist/src/auth/oauth/openai-codex.js +0 -414
  503. package/dist/src/browser/policy/approval-store.d.ts +0 -17
  504. package/dist/src/browser/policy/approval-store.js +0 -62
  505. package/dist/src/browser/providers/extension-ws-acquire.d.ts +0 -19
  506. package/dist/src/browser/providers/extension-ws-acquire.js +0 -78
  507. package/dist/src/browser/providers/extension.d.ts +0 -61
  508. package/dist/src/browser/providers/extension.js +0 -378
  509. package/dist/src/connectors/plugin-mcp-recovery.d.ts +0 -28
  510. package/dist/src/connectors/plugin-mcp-recovery.js +0 -90
  511. package/dist/src/extensions/agent-plugins/connection.d.ts +0 -8
  512. package/dist/src/extensions/agent-plugins/connection.js +0 -41
  513. package/dist/src/extensions/agent-plugins/health.d.ts +0 -4
  514. package/dist/src/extensions/agent-plugins/health.js +0 -48
  515. package/dist/src/extensions/agent-plugins/plugin-oauth-scope.d.ts +0 -1
  516. package/dist/src/extensions/agent-plugins/plugin-oauth-scope.js +0 -8
@@ -42,7 +42,7 @@ function parseModelRef(ref) {
42
42
  model: trimmed.slice(idx + 1).trim()
43
43
  };
44
44
  }
45
- var AgentModelRefSchema, AgentImageGenerationModelSchema, AgentModelsSchema, BrowserDriverSchema, BrowserHostnameSchema, BrowserConfigSchema, SessionDmScopeSchema, SessionStorageConfigSchema, SessionResetModeSchema, SessionResetConfigSchema, SessionResetByTypeSchema, SessionScopeSchema, SessionConfigSchema, ChannelsConfigSchema, SearchProviderEntrySchema, WebSearchConfigSchema, WebsiteBlocklistSchema, WebToolsConfigSchema, ToolsConfigSchema, RuntimePreferenceSchema, RuntimeProvisionSchema, RuntimeVersionRequestSchema, LanguageRuntimeSchema, DEFAULT_RUNTIME_TOOLS_CONFIG, RuntimeToolsConfigSchema, GatewayAuthRateLimitSchema, GatewaySecuritySchema, GatewayTrustedProxySchema, GatewayAuthSchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayRemoteSchema, GatewayTlsSchema, GatewayModeSchema, GatewayChannelConnectDeferModeSchema, TunnelConsentSchema, TunnelConfigSchema, WorkspaceImportConfigSchema, WorkspaceConfigSchema, GatewayBindModeSchema, GatewayWebchatConfigSchema, GatewayScenesConfigSchema, GatewayConfigSchema, ModelsDevConfigSchema, ModelCatalogConfigSchema, SttProviderConfigCatchallSchema, STTProviderConfigSchema, STTFallbackConfigSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, STTConfigSchema, TtsProviderConfigCatchallSchema, TTSProviderConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSEdgeConfigSchema, TTSSummarizationConfigSchema, TTSConfigSchema, VoiceRefinementConfigSchema, VoiceConfigSchema, MessagesConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProviderAuthConfigSchema, ProvidersConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, UpdateAutoConfigSchema, UpdateConfigSchema, CommandsConfigSchema, McpHttpUrlSchema, ConnectorSecretReferenceSchema, McpConfigScalarSchema, McpOAuthConfigSchema, McpServerSchema, McpConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ConfigSchema;
45
+ var AgentModelRefSchema, AgentImageGenerationModelSchema, AgentModelsSchema, BrowserDriverSchema, BrowserHostnameSchema, BrowserConfigSchema, SessionDmScopeSchema, SessionStorageConfigSchema, SessionResetModeSchema, SessionResetConfigSchema, SessionResetByTypeSchema, SessionScopeSchema, SessionConfigSchema, ChannelsConfigSchema, SearchProviderEntrySchema, WebSearchConfigSchema, WebsiteBlocklistSchema, WebToolsConfigSchema, ToolsConfigSchema, RuntimePreferenceSchema, RuntimeProvisionSchema, RuntimeVersionRequestSchema, LanguageRuntimeSchema, DEFAULT_RUNTIME_TOOLS_CONFIG, RuntimeToolsConfigSchema, GatewayAuthRateLimitSchema, GatewaySecuritySchema, GatewayTrustedProxySchema, GatewayAuthSchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayRemoteSchema, GatewayTlsSchema, GatewayModeSchema, GatewayChannelConnectDeferModeSchema, TunnelConsentSchema, TunnelConfigSchema, WorkspaceImportConfigSchema, WorkspaceConfigSchema, GatewayBindModeSchema, GatewayWebchatConfigSchema, GatewayScenesConfigSchema, GatewayConfigSchema, ModelsDevConfigSchema, ModelCatalogConfigSchema, SttProviderConfigCatchallSchema, STTProviderConfigSchema, STTFallbackConfigSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, STTConfigSchema, TtsProviderConfigCatchallSchema, TTSProviderConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSEdgeConfigSchema, TTSSummarizationConfigSchema, TTSConfigSchema, VoiceRefinementConfigSchema, VoiceConfigSchema, MessagesConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProviderAuthConfigSchema, ProvidersConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, UpdateAutoConfigSchema, UpdateConfigSchema, CommandsConfigSchema, McpHttpUrlSchema, ConnectorSecretReferenceSchema, McpConfigScalarSchema, McpExposureSchema, McpOAuthConfigSchema, McpServerSchema, McpConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ConfigSchema;
46
46
  var init_schema = __esmMin((() => {
47
47
  init_config();
48
48
  init_config$1();
@@ -111,23 +111,23 @@ var init_schema = __esmMin((() => {
111
111
  "allow",
112
112
  "ask",
113
113
  "deny"
114
- ]).default("ask"),
114
+ ]).default("allow").transform((policy) => policy === "ask" ? "allow" : policy),
115
115
  uploads: z.enum([
116
116
  "allow",
117
117
  "ask",
118
118
  "deny"
119
- ]).default("ask"),
119
+ ]).default("allow").transform((policy) => policy === "ask" ? "allow" : policy),
120
120
  consequentialActions: z.enum([
121
121
  "allow",
122
122
  "ask",
123
123
  "deny"
124
- ]).default("ask")
124
+ ]).default("allow").transform((policy) => policy === "ask" ? "allow" : policy)
125
125
  }).strict().default({
126
126
  privateNetworks: "deny",
127
127
  allowedPrivateHosts: [],
128
- crossDomainNavigation: "ask",
129
- uploads: "ask",
130
- consequentialActions: "ask"
128
+ crossDomainNavigation: "allow",
129
+ uploads: "allow",
130
+ consequentialActions: "allow"
131
131
  })
132
132
  }).strict().default({
133
133
  enabled: true,
@@ -145,9 +145,9 @@ var init_schema = __esmMin((() => {
145
145
  security: {
146
146
  privateNetworks: "deny",
147
147
  allowedPrivateHosts: [],
148
- crossDomainNavigation: "ask",
149
- uploads: "ask",
150
- consequentialActions: "ask"
148
+ crossDomainNavigation: "allow",
149
+ uploads: "allow",
150
+ consequentialActions: "allow"
151
151
  }
152
152
  });
153
153
  SessionDmScopeSchema = z.enum([
@@ -903,59 +903,76 @@ tts: TTSConfigSchema.optional() }).optional();
903
903
  prefix: z.string().optional(),
904
904
  suffix: z.string().optional()
905
905
  }) });
906
- McpConfigScalarSchema = z.union([
907
- z.string(),
908
- z.number(),
909
- z.boolean(),
910
- ConnectorSecretReferenceSchema
906
+ McpConfigScalarSchema = z.union([z.string(), ConnectorSecretReferenceSchema]);
907
+ McpExposureSchema = z.enum([
908
+ "codemode",
909
+ "deferred",
910
+ "direct",
911
+ "hidden"
911
912
  ]);
912
913
  McpOAuthConfigSchema = z.object({
913
- type: z.literal("oauth"),
914
- /** Optional public client id for authorization servers without dynamic registration. */
915
- clientId: z.string().min(1).optional()
914
+ clientId: z.string().min(1).optional(),
915
+ clientSecret: z.string().optional(),
916
+ callbackPort: z.number().int().min(1).max(65535).optional(),
917
+ callbackUrl: z.string().url().optional(),
918
+ scope: z.string().optional(),
919
+ clientName: z.string().optional(),
920
+ clientRegistration: z.enum(["dcr", "cimd"]).optional(),
921
+ authServerMetadataUrl: z.string().url().optional()
916
922
  }).strict();
917
923
  McpServerSchema = z.object({
918
- command: z.string().optional(),
924
+ type: z.enum([
925
+ "stdio",
926
+ "http",
927
+ "streamable-http"
928
+ ]).optional(),
929
+ command: z.string().min(1).optional(),
919
930
  args: z.array(z.string()).optional(),
920
931
  env: z.record(z.string(), McpConfigScalarSchema).optional(),
921
932
  cwd: z.string().optional(),
922
- workingDirectory: z.string().optional(),
923
933
  url: McpHttpUrlSchema.optional(),
924
- transport: z.enum(["sse", "streamable-http"]).optional(),
925
934
  headers: z.record(z.string(), McpConfigScalarSchema).optional(),
926
- auth: McpOAuthConfigSchema.optional(),
927
- connectionTimeoutMs: z.number().finite().positive().optional(),
928
- requestTimeoutMs: z.number().finite().positive().optional()
935
+ oauth: McpOAuthConfigSchema.optional(),
936
+ auth: z.object({ provider: z.string().min(1) }).strict().optional(),
937
+ timeout: z.number().finite().positive().optional(),
938
+ enabled: z.boolean().optional(),
939
+ exposure: McpExposureSchema.optional(),
940
+ toolExposure: z.record(z.string(), McpExposureSchema).optional(),
941
+ description: z.string().optional(),
942
+ transport: z.never().optional(),
943
+ workingDirectory: z.never().optional(),
944
+ connectionTimeoutMs: z.never().optional(),
945
+ requestTimeoutMs: z.never().optional()
929
946
  }).catchall(z.unknown()).superRefine((value, ctx) => {
930
- const hasCommand = typeof value.command === "string" && value.command.trim().length > 0;
931
- const hasUrl = typeof value.url === "string" && value.url.trim().length > 0;
932
- if (hasCommand && hasUrl) ctx.addIssue({
947
+ if (Boolean(value.command) === Boolean(value.url)) ctx.addIssue({
933
948
  code: "custom",
934
- message: "MCP server cannot define both command and url"
949
+ message: "MCP server requires exactly one command or url"
935
950
  });
936
- if (value.auth && !hasUrl) ctx.addIssue({
951
+ if (value.type === "stdio" && !value.command) ctx.addIssue({
937
952
  code: "custom",
938
- path: ["auth"],
939
- message: "MCP OAuth requires an HTTP server URL"
953
+ message: "stdio requires command"
940
954
  });
941
- if (value.auth && value.transport === "sse") ctx.addIssue({
955
+ if ((value.type === "http" || value.type === "streamable-http") && !value.url) ctx.addIssue({
942
956
  code: "custom",
943
- path: ["auth"],
944
- message: "MCP OAuth currently supports streamable HTTP only"
957
+ message: "HTTP requires url"
945
958
  });
946
- if (value.auth && value.headers) {
947
- const authorizationHeader = Object.keys(value.headers).find((key) => key.toLowerCase() === "authorization");
948
- if (authorizationHeader) ctx.addIssue({
959
+ if ((value.oauth || value.auth) && !value.url) ctx.addIssue({
960
+ code: "custom",
961
+ message: "MCP authentication requires HTTP"
962
+ });
963
+ });
964
+ McpConfigSchema = z.object({ servers: z.record(z.string().regex(/^[a-zA-Z0-9_-]+$/), McpServerSchema).optional() }).strict().superRefine((value, ctx) => {
965
+ const names = /* @__PURE__ */ new Set();
966
+ for (const name of Object.keys(value.servers ?? {})) {
967
+ const normalized = name.replace(/-/g, "_");
968
+ if (names.has(normalized)) ctx.addIssue({
949
969
  code: "custom",
950
- path: ["headers", authorizationHeader],
951
- message: "MCP OAuth cannot be combined with a static Authorization header"
970
+ path: ["servers", name],
971
+ message: "MCP names differing only by hyphens and underscores collide"
952
972
  });
973
+ names.add(normalized);
953
974
  }
954
- });
955
- McpConfigSchema = z.object({
956
- servers: z.record(z.string(), McpServerSchema).optional(),
957
- sessionIdleTtlMs: z.number().finite().min(0).optional()
958
- }).strict().optional();
975
+ }).optional();
959
976
  ConnectorsConfigSchema = z.object({ instances: z.record(z.string(), z.record(z.string(), z.unknown())).optional() }).strict().optional();
960
977
  ExperimentalConfigSchema = z.object({
961
978
  /** First-run activation that analyzes one explicitly selected local folder. */
@@ -1092,9 +1109,9 @@ workDiscoveryOnboarding: z.boolean().default(true) }).strict().default({ workDis
1092
1109
  security: {
1093
1110
  privateNetworks: "deny",
1094
1111
  allowedPrivateHosts: [],
1095
- crossDomainNavigation: "ask",
1096
- uploads: "ask",
1097
- consequentialActions: "ask"
1112
+ crossDomainNavigation: "allow",
1113
+ uploads: "allow",
1114
+ consequentialActions: "allow"
1098
1115
  }
1099
1116
  },
1100
1117
  tools: { web: { search: {
@@ -8,4 +8,4 @@ export type ConnectorAuthStartResult = {
8
8
  connectionId?: string;
9
9
  attemptId?: string;
10
10
  };
11
- export declare function startConnectorAuthorization(definition: ConnectorDefinition, config?: Config, instanceId?: string): Promise<ConnectorAuthStartResult>;
11
+ export declare function startConnectorAuthorization(definition: ConnectorDefinition, config?: Config, _instanceId?: string): Promise<ConnectorAuthStartResult>;
@@ -1,28 +1,8 @@
1
1
  import { startComposioAuthorize } from "./composio.js";
2
- import { isManagedConnectorServer } from "./materialize.js";
3
2
  import { getConnectorInstance } from "./instances.js";
4
- import { getMcpOAuthManager } from "../agent/mcp/oauth/mcp-oauth-manager.js";
5
3
  //#region src/connectors/auth-provider-registry.ts
6
- async function startConnectorAuthorization(definition, config, instanceId) {
4
+ async function startConnectorAuthorization(definition, config, _instanceId) {
7
5
  if (definition.auth.mode !== "oauth") throw new Error(`Connector "${definition.id}" does not use OAuth.`);
8
- if (definition.runtime.type === "mcp") {
9
- if (!config) throw new Error("Connector configuration is required for MCP authorization.");
10
- const serverId = instanceId ?? definition.runtime.serverId;
11
- const server = config.mcp?.servers?.[serverId];
12
- if (!server) throw new Error(`Connector MCP server not found: ${serverId}`);
13
- if (!isManagedConnectorServer(server) || server.xopcConnector.connectorId !== definition.id) throw new Error(`MCP server "${serverId}" is not managed by connector "${definition.id}".`);
14
- const status = await getMcpOAuthManager().start({
15
- serverId,
16
- rawServer: server,
17
- cfg: config
18
- });
19
- return {
20
- connectorId: definition.id,
21
- provider: "mcp",
22
- status: status.status,
23
- authorizationUrl: status.session?.authorizationUrl
24
- };
25
- }
26
6
  if (definition.auth.provider !== "composio" || definition.runtime.type !== "composio" || definition.runtime.role !== "toolkit") throw new Error(`Connector "${definition.id}" does not support OAuth authorization.`);
27
7
  const configuredAuthConfigId = config ? getConnectorInstance(config, definition.id)?.config?.authConfigId : void 0;
28
8
  const authConfigId = typeof configuredAuthConfigId === "string" && configuredAuthConfigId.trim() ? configuredAuthConfigId.trim() : void 0;
@@ -284,7 +284,7 @@ const CHINA_CONNECTORS = [
284
284
  serverId: "tencent_meeting",
285
285
  serverTemplate: {
286
286
  url: "https://mcp.meeting.tencent.com/mcp",
287
- transport: "streamable-http",
287
+ type: "http",
288
288
  headers: { "X-Tencent-Meeting-Token": "{{secrets.token}}" }
289
289
  }
290
290
  },
@@ -352,7 +352,7 @@ const CHINA_CONNECTORS = [
352
352
  serverId: "tencent_docs",
353
353
  serverTemplate: {
354
354
  url: "https://docs.qq.com/openapi/mcp",
355
- transport: "streamable-http",
355
+ type: "http",
356
356
  headers: { Authorization: "{{secrets.token}}" }
357
357
  }
358
358
  },
@@ -576,7 +576,7 @@ const CHINA_CONNECTORS = [
576
576
  serverId: "bailian_web_search",
577
577
  serverTemplate: {
578
578
  url: "https://dashscope.aliyuncs.com/api/v1/mcps/WebSearch/mcp",
579
- transport: "streamable-http",
579
+ type: "http",
580
580
  headers: { Authorization: "Bearer {{secrets.apiKey}}" }
581
581
  }
582
582
  },
@@ -647,7 +647,7 @@ const CHINA_CONNECTORS = [
647
647
  serverId: "dida365",
648
648
  serverTemplate: {
649
649
  url: "https://mcp.dida365.com",
650
- transport: "streamable-http",
650
+ type: "http",
651
651
  headers: { Authorization: "Bearer {{secrets.token}}" }
652
652
  }
653
653
  },
@@ -721,7 +721,7 @@ const CHINA_CONNECTORS = [
721
721
  serverId: "flomo",
722
722
  serverTemplate: {
723
723
  url: "https://flomoapp.com/mcp",
724
- transport: "streamable-http",
724
+ type: "http",
725
725
  headers: { Authorization: "Bearer {{secrets.token}}" }
726
726
  }
727
727
  },
@@ -1,18 +1,16 @@
1
1
  import type { Config } from '../config/schema.js';
2
2
  import type { SessionInput } from '../storage/sqlite/session-input-repository.js';
3
3
  import { ComposioSessionsAdapter } from './composio-sessions.js';
4
- import { type PluginMcpRecovery } from './plugin-mcp-recovery.js';
5
4
  import type { ConnectionWaitSnapshot } from '@xopcai/gateway-contract';
6
5
  export type ConnectionAction = {
7
6
  waitId: string;
8
7
  expectedTranscriptId: string;
9
8
  expectedVersion: number;
10
9
  idempotencyKey: string;
11
- action: 'install_complete' | 'connect' | 'check' | 'skip' | 'cancel' | 'select_account' | 'confirm_scope' | 'replace_source' | 'submit_callback';
10
+ action: 'install_complete' | 'connect' | 'check' | 'skip' | 'cancel' | 'select_account' | 'confirm_scope' | 'replace_source';
12
11
  needKey?: string;
13
12
  accountId?: string;
14
13
  candidateRef?: string;
15
- callbackUrl?: string;
16
14
  instanceId?: string;
17
15
  };
18
16
  /** Authorization lives at click time. Chat history contains only immutable explanations. */
@@ -34,16 +32,13 @@ export declare class ConnectionRecoveryService {
34
32
  drain: (conversationId: string) => void;
35
33
  onPersonalRequestDelivered?: (conversationId: string, requestId: string) => void;
36
34
  adapter?: ComposioSessionsAdapter;
37
- pluginMcp?: PluginMcpRecovery;
38
35
  });
39
36
  private get adapter();
40
- private get pluginMcp();
41
37
  snapshot(conversationId: string): ConnectionWaitSnapshot;
42
38
  private view;
43
39
  private ensureInstallation;
44
40
  private checkCapabilities;
45
41
  private syncConnections;
46
- private syncPluginMcpNeeds;
47
42
  preflight(input: SessionInput): Promise<boolean>;
48
43
  act(conversationId: string, action: ConnectionAction): Promise<{
49
44
  snapshot: ConnectionWaitSnapshot;
@@ -22,7 +22,6 @@ import { resolveConnectionCandidate } from "./connection-candidates.js";
22
22
  import { cancelPersonalRequest, resolvePersonalRequestConnection } from "../personal-agent/request-service.js";
23
23
  import { persistConfigMutation } from "../config/config-mutation.js";
24
24
  import { drainPersonalRequestContinuations, drainPersonalRequestResults } from "../personal-agent/request-delivery.js";
25
- import { HostPluginMcpRecovery } from "./plugin-mcp-recovery.js";
26
25
  import { randomUUID } from "node:crypto";
27
26
  //#region src/connectors/connection-recovery-service.ts
28
27
  init_transaction();
@@ -95,9 +94,6 @@ var ConnectionRecoveryService = class {
95
94
  get adapter() {
96
95
  return this.deps.adapter ?? new ComposioSessionsAdapter();
97
96
  }
98
- get pluginMcp() {
99
- return this.deps.pluginMcp ?? new HostPluginMcpRecovery(this.deps.getConfig);
100
- }
101
97
  snapshot(conversationId) {
102
98
  if (!connectorPrincipalForSession(conversationId).isLocalOwner) throw new Error("This connection belongs to another principal.");
103
99
  const transcriptId = readCurrentTranscriptId(getSqliteDatabase(), conversationId);
@@ -111,18 +107,6 @@ var ConnectionRecoveryService = class {
111
107
  }
112
108
  view(wait, verifiedIds) {
113
109
  const needs = wait.needs.map((need) => {
114
- if (need.target.type === "plugin-mcp") {
115
- const availability = this.pluginMcp.availability(need.target);
116
- const phase = !availability.available || need.connectionId && need.capabilityError ? "blocked" : need.connectionId === need.target.serverId ? "ready" : need.attempt && need.attempt.expiresAt > Date.now() ? "authorizing" : need.unavailable ? "reconnect" : "connect";
117
- return {
118
- ...need,
119
- authorizationMode: "desktop",
120
- phase,
121
- accounts: [],
122
- alternatives: [],
123
- ...availability.reason || need.capabilityError ? { reason: availability.reason ?? need.capabilityError } : {}
124
- };
125
- }
126
110
  if (need.target.type === "store-connector") {
127
111
  const target = need.target;
128
112
  const instance = listConnectorInstances(this.deps.getConfig()).find((item) => item.connectorId === target.connectorId);
@@ -238,7 +222,7 @@ var ConnectionRecoveryService = class {
238
222
  }))
239
223
  }, verified).needs;
240
224
  return Promise.all(wait.needs.map(async (need) => {
241
- if (need.target.type === "plugin-mcp" || need.target.type === "store-connector") return need;
225
+ if (need.target.type === "store-connector") return need;
242
226
  if (views.find((view) => view.key === need.key)?.phase !== "ready") return {
243
227
  ...need,
244
228
  capabilityError: void 0
@@ -314,38 +298,6 @@ var ConnectionRecoveryService = class {
314
298
  }
315
299
  return fresh;
316
300
  }
317
- async syncPluginMcpNeeds(wait) {
318
- return Promise.all(wait.needs.map(async (need) => {
319
- if (need.target.type !== "plugin-mcp") return need;
320
- const status = await this.pluginMcp.status(need.target);
321
- if (status.status === "connected") {
322
- const verified = await this.pluginMcp.verify(need.target);
323
- return {
324
- ...need,
325
- connectionId: need.target.serverId,
326
- unavailable: false,
327
- attempt: void 0,
328
- capabilityError: verified.ready ? void 0 : verified.error ?? "The connected MCP tools are unavailable."
329
- };
330
- }
331
- if (status.status === "authorizing") return {
332
- ...need,
333
- connectionId: void 0,
334
- unavailable: false,
335
- attempt: {
336
- id: status.session?.id ?? need.attempt?.id ?? randomUUID(),
337
- expiresAt: status.session?.expiresAt ?? Date.now() + ATTEMPT_TTL
338
- }
339
- };
340
- return {
341
- ...need,
342
- connectionId: void 0,
343
- unavailable: true,
344
- attempt: void 0,
345
- capabilityError: status.status === "error" ? status.session?.error : void 0
346
- };
347
- }));
348
- }
349
301
  async preflight(input) {
350
302
  if (input.kind !== "connection_resume") return true;
351
303
  const wait = input.payload ? getConnectionWait(input.payload.waitId) : void 0;
@@ -354,11 +306,10 @@ var ConnectionRecoveryService = class {
354
306
  try {
355
307
  const fresh = await this.syncConnections(wait);
356
308
  const verified = new Set(fresh.filter((item) => item.status === "active").map((item) => item.id));
357
- wait.needs = await this.syncPluginMcpNeeds(wait);
358
- wait.needs = wait.needs.map((need) => need.target.type === "plugin-mcp" ? need : {
309
+ wait.needs = wait.needs.map((need) => ({
359
310
  ...need,
360
311
  unavailable: !fresh.some((item) => item.id === need.connectionId && item.status === "active")
361
- });
312
+ }));
362
313
  wait.needs = await this.checkCapabilities(wait, verified);
363
314
  const ready = this.view(wait, verified).needs.every((need) => need.phase === "ready");
364
315
  if (getConnectionWait(wait.id)?.version !== wait.version) return false;
@@ -466,48 +417,6 @@ var ConnectionRecoveryService = class {
466
417
  const need = wait.needs.find((need) => need.key === action.needKey);
467
418
  if (!need) throw new Error("Unknown connection requirement.");
468
419
  if (this.view(wait).needs.find((item) => item.key === need.key)?.phase === "blocked") throw new Error("Connector policy blocks this connection.");
469
- if (need.target.type === "plugin-mcp") {
470
- const serverId = need.target.serverId;
471
- const attemptId = randomUUID();
472
- wait = updateConnectionWait({
473
- ...wait,
474
- intent: {
475
- objectiveRevision: wait.objectiveRevision,
476
- validUntil: Date.now() + INTENT_TTL
477
- },
478
- needs: wait.needs.map((item) => item.key === need.key ? {
479
- ...item,
480
- unavailable: false,
481
- capabilityError: void 0,
482
- attempt: {
483
- id: attemptId,
484
- expiresAt: Date.now() + ATTEMPT_TTL
485
- }
486
- } : item)
487
- }, wait.version);
488
- publishConnectionWait(conversationId);
489
- const auth = await this.pluginMcp.start(need.target);
490
- const latest = getConnectionWait(wait.id);
491
- if (!latest || latest.version !== wait.version || latest.status !== "open") throw new Error("WAIT_CHANGED");
492
- wait = updateConnectionWait({
493
- ...wait,
494
- needs: wait.needs.map((item) => item.key === need.key ? {
495
- ...item,
496
- attempt: auth.status === "authorizing" ? {
497
- id: auth.session?.id ?? attemptId,
498
- expiresAt: auth.session?.expiresAt ?? Date.now() + ATTEMPT_TTL
499
- } : void 0,
500
- connectionId: auth.status === "connected" ? serverId : void 0,
501
- unavailable: auth.status === "error",
502
- capabilityError: auth.status === "error" ? auth.session?.error : void 0
503
- } : item)
504
- }, wait.version);
505
- publishConnectionWait(conversationId);
506
- return {
507
- snapshot: this.snapshot(conversationId),
508
- authorizationUrl: auth.session?.authorizationUrl
509
- };
510
- }
511
420
  const id = need.target.connectorId;
512
421
  const instance = listConnectorInstances(this.deps.getConfig()).find((item) => item.connectorId === id);
513
422
  const definition = (instance ? getInstalledConnectorDefinition(this.deps.getConfig(), instance.instanceId) : void 0) ?? getConnectorDefinition(id);
@@ -578,18 +487,11 @@ var ConnectionRecoveryService = class {
578
487
  authorizationUrl: auth.connectUrl
579
488
  };
580
489
  } else {
581
- if (action.action === "submit_callback") {
582
- const need = wait.needs.find((need) => need.key === action.needKey);
583
- if (!need || need.target.type !== "plugin-mcp") throw new Error("OAuth callback is unavailable.");
584
- if (!action.callbackUrl || action.callbackUrl.length > 16384) throw new Error("Expected the complete OAuth callback URL.");
585
- await this.pluginMcp.submitCallback(need.target, action.callbackUrl);
586
- }
587
490
  const fresh = await this.syncConnections(wait);
588
491
  const verified = new Set(fresh.filter((item) => item.status === "active").map((item) => item.id));
589
492
  const latest = getConnectionWait(wait.id);
590
493
  if (!latest || latest.version !== wait.version || latest.status !== "open") throw new Error("WAIT_CHANGED");
591
494
  let needs = wait.needs.map((need) => {
592
- if (need.target.type === "plugin-mcp") return need;
593
495
  if (need.target.type === "store-connector") {
594
496
  const selected = this.view({
595
497
  ...wait,
@@ -617,10 +519,6 @@ var ConnectionRecoveryService = class {
617
519
  unavailable: !fresh.some((item) => item.connectorId === id && item.status === "active" && (!need.connectionId || item.id === need.connectionId) && (!need.accountId || item.accountId === need.accountId))
618
520
  };
619
521
  });
620
- needs = await this.syncPluginMcpNeeds({
621
- ...wait,
622
- needs
623
- });
624
522
  if (action.action === "select_account") {
625
523
  const need = needs.find((item) => item.key === action.needKey);
626
524
  if (!need || need.target.type !== "connector") throw new Error("Account selection is unavailable.");
@@ -1,4 +1,3 @@
1
1
  import type { Config } from '../config/schema.js';
2
- import type { ConnectorDefinition, ConnectorHealthResult, ConnectorInstallInput } from './types.js';
2
+ import type { ConnectorHealthResult } from './types.js';
3
3
  export declare function testConnectorInstance(config: Config, serverId: string): Promise<ConnectorHealthResult>;
4
- export declare function previewConnectorDefinition(config: Config, definition: ConnectorDefinition, input?: ConnectorInstallInput): Promise<ConnectorHealthResult>;
@@ -1,10 +1,7 @@
1
1
  import { init_connector_repository, listConnectorConnections } from "../storage/sqlite/connector-repository.js";
2
2
  import { currentAccountConnections } from "./account-access.js";
3
- import { materializeConnectorMcpServer } from "./materialize.js";
4
3
  import { getConnectorInstance } from "./instances.js";
5
4
  import { describeCliAction, verifyCliConnection } from "./cli/runtime.js";
6
- import { getWorkspacePath } from "../config/workspace-path-helpers.js";
7
- import { listBundleMcpServerCapabilitiesForGateway } from "../agent/mcp/bundle-mcp-gateway.js";
8
5
  //#region src/connectors/health.ts
9
6
  init_connector_repository();
10
7
  function classifyConnectorHealthError(error) {
@@ -17,12 +14,6 @@ function classifyConnectorHealthError(error) {
17
14
  if (/spawn|command|start|connect/i.test(message)) return "startup_failed";
18
15
  return "unknown_error";
19
16
  }
20
- function healthActionForStatus(status) {
21
- if (status === "missing_secret") return "Reconnect the connector and provide the required secret.";
22
- if (status === "timeout" || status === "network_failed") return "Check network access and retry the connector health check.";
23
- if (status === "startup_failed") return "Verify the connector runtime dependency is installed and reachable.";
24
- if (status === "unauthorized") return "Reconnect the connector or refresh its credentials.";
25
- }
26
17
  async function testConnectorInstance(config, serverId) {
27
18
  const instance = getConnectorInstance(config, serverId);
28
19
  if (!instance) return {
@@ -97,97 +88,7 @@ async function testConnectorInstance(config, serverId) {
97
88
  };
98
89
  }
99
90
  }
100
- const workspaceDir = getWorkspacePath(config) || "./workspace";
101
- try {
102
- const capabilities = await listBundleMcpServerCapabilitiesForGateway({
103
- workspaceDir,
104
- cfg: config,
105
- serverId
106
- });
107
- return {
108
- serverId,
109
- ok: true,
110
- status: "ok",
111
- toolCount: capabilities.toolCount,
112
- resourceCount: capabilities.resourceCount,
113
- promptCount: capabilities.promptCount,
114
- tools: capabilities.tools,
115
- resources: capabilities.resources,
116
- prompts: capabilities.prompts
117
- };
118
- } catch (error) {
119
- const status = classifyConnectorHealthError(error);
120
- return {
121
- serverId,
122
- ok: false,
123
- status,
124
- toolCount: 0,
125
- resourceCount: 0,
126
- promptCount: 0,
127
- tools: [],
128
- resources: [],
129
- prompts: [],
130
- error: error instanceof Error ? error.message : String(error),
131
- action: healthActionForStatus(status)
132
- };
133
- }
134
- }
135
- async function previewConnectorDefinition(config, definition, input = {}) {
136
- if (definition.runtime.type !== "mcp") return {
137
- serverId: definition.id,
138
- ok: false,
139
- status: "unknown_error",
140
- toolCount: 0,
141
- resourceCount: 0,
142
- promptCount: 0,
143
- tools: [],
144
- resources: [],
145
- prompts: [],
146
- error: `Connector type "${definition.runtime.type}" does not support MCP capability preview.`
147
- };
148
- try {
149
- const { serverId, server } = materializeConnectorMcpServer(definition, input);
150
- const capabilities = await listBundleMcpServerCapabilitiesForGateway({
151
- workspaceDir: getWorkspacePath(config) || "./workspace",
152
- cfg: {
153
- ...config,
154
- mcp: {
155
- ...config.mcp ?? {},
156
- servers: {
157
- ...config.mcp?.servers ?? {},
158
- [serverId]: server
159
- }
160
- }
161
- },
162
- serverId
163
- });
164
- return {
165
- serverId,
166
- ok: true,
167
- status: "ok",
168
- toolCount: capabilities.toolCount,
169
- resourceCount: capabilities.resourceCount,
170
- promptCount: capabilities.promptCount,
171
- tools: capabilities.tools,
172
- resources: capabilities.resources,
173
- prompts: capabilities.prompts
174
- };
175
- } catch (error) {
176
- const status = classifyConnectorHealthError(error);
177
- return {
178
- serverId: definition.id,
179
- ok: false,
180
- status,
181
- toolCount: 0,
182
- resourceCount: 0,
183
- promptCount: 0,
184
- tools: [],
185
- resources: [],
186
- prompts: [],
187
- error: error instanceof Error ? error.message : String(error),
188
- action: healthActionForStatus(status)
189
- };
190
- }
91
+ throw new Error("MCP diagnostics are provided by xopc mcp list.");
191
92
  }
192
93
  //#endregion
193
- export { previewConnectorDefinition, testConnectorInstance };
94
+ export { testConnectorInstance };
@@ -1,6 +1,6 @@
1
1
  export type ConnectorKind = 'mcp' | 'cli' | 'http' | 'browser' | 'extension' | 'builtin' | 'composio' | 'memorySource';
2
2
  export type ConnectorCategory = 'code' | 'docs' | 'browser' | 'data' | 'automation' | 'custom';
3
- export type ConnectorCapability = 'tools' | 'resources' | 'prompts' | 'context' | 'channel' | 'events' | 'ui' | 'memory_source' | 'workflows' | 'auth.apiKey' | 'auth.oauth' | 'runtime.mcp.stdio' | 'runtime.mcp.sse' | 'runtime.mcp.streamableHttp';
3
+ export type ConnectorCapability = 'tools' | 'resources' | 'prompts' | 'context' | 'channel' | 'events' | 'ui' | 'memory_source' | 'workflows' | 'auth.apiKey' | 'auth.oauth' | 'runtime.mcp.stdio' | 'runtime.mcp.streamableHttp';
4
4
  export type ConnectorAuthMode = 'none' | 'apiKey' | 'oauth' | 'cli';
5
5
  export type ConnectorAuthDefinition = {
6
6
  mode: 'cli';
@@ -13,6 +13,8 @@ export interface EndpointSessionBindingStore {
13
13
  export declare class EndpointBindingService {
14
14
  private readonly registry;
15
15
  private readonly store;
16
+ private readonly changeListeners;
17
+ onChange(listener: (conversationId: string) => void): () => void;
16
18
  constructor(registry: EndpointRegistry, store?: EndpointSessionBindingStore);
17
19
  bind(conversationId: string, endpointId: string, now?: number): EndpointSessionBinding;
18
20
  get(conversationId: string): EndpointSessionBinding | undefined;
@@ -11,6 +11,13 @@ function memoryStore() {
11
11
  };
12
12
  }
13
13
  var EndpointBindingService = class {
14
+ changeListeners = /* @__PURE__ */ new Set();
15
+ onChange(listener) {
16
+ this.changeListeners.add(listener);
17
+ return () => {
18
+ this.changeListeners.delete(listener);
19
+ };
20
+ }
14
21
  constructor(registry, store = memoryStore()) {
15
22
  this.registry = registry;
16
23
  this.store = store;
@@ -23,7 +30,9 @@ var EndpointBindingService = class {
23
30
  endpointId,
24
31
  boundAt: now
25
32
  };
26
- return this.store.set(binding);
33
+ const stored = this.store.set(binding);
34
+ for (const listener of this.changeListeners) listener(normalizedConversationId);
35
+ return stored;
27
36
  }
28
37
  get(conversationId) {
29
38
  return this.store.get(this.normalizeConversationId(conversationId));
@@ -33,7 +42,10 @@ var EndpointBindingService = class {
33
42
  return binding ? this.registry.get(binding.endpointId) : void 0;
34
43
  }
35
44
  unbind(conversationId) {
36
- return this.store.delete(this.normalizeConversationId(conversationId));
45
+ const normalized = this.normalizeConversationId(conversationId);
46
+ const removed = this.store.delete(normalized);
47
+ if (removed) for (const listener of this.changeListeners) listener(normalized);
48
+ return removed;
37
49
  }
38
50
  normalizeConversationId(conversationId) {
39
51
  const normalized = conversationId.trim();