@xopcai/xopc 0.0.187 → 0.0.189

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 (385) hide show
  1. package/README.md +1 -1
  2. package/dist/browser-ext/manifest.json +1 -1
  3. package/dist/extensions/demo-memory/src/index.js +1 -0
  4. package/dist/extensions/feishu/src/streaming/streaming-adapter.js +1 -3
  5. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +0 -2
  6. package/dist/extensions/telegram/src/draft-stream.d.ts +0 -4
  7. package/dist/extensions/telegram/src/draft-stream.js +1 -53
  8. package/dist/extensions/telegram/xopc.extension.json +1 -1
  9. package/dist/gateway/static/root/assets/{activity-store-WlR2zEvA.js → activity-store-DTFKTPs8.js} +1 -1
  10. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-RedDszrG.js → agent-avatar-dicebear-DqO25Qe5.js} +1 -1
  11. package/dist/gateway/static/root/assets/agents-BvdqdER9.js +2 -0
  12. package/dist/gateway/static/root/assets/{api-tVOllncq.js → api-DWeXfwVU.js} +1 -1
  13. package/dist/gateway/static/root/assets/{app-management-settings-panel-C9hKBzaF.js → app-management-settings-panel-BRpV8PXG.js} +1 -1
  14. package/dist/gateway/static/root/assets/{appearance-settings-5cQvq7hd.js → appearance-settings-3ntKM9nQ.js} +1 -1
  15. package/dist/gateway/static/root/assets/apps-page-nKLsfy6C.js +1 -0
  16. package/dist/gateway/static/root/assets/{archive-plugin-Ct-shK4n.js → archive-plugin-Df7Ycj_7.js} +1 -1
  17. package/dist/gateway/static/root/assets/{attachment-load-CpPj3m-q.js → attachment-load-UHgfZYtj.js} +1 -1
  18. package/dist/gateway/static/root/assets/automations-page-Dh5bdZiN.js +6 -0
  19. package/dist/gateway/static/root/assets/{binary-plugins-BpSXZBle.js → binary-plugins-BJah99wE.js} +1 -1
  20. package/dist/gateway/static/root/assets/{block-editor-B8hR2tXc.js → block-editor-DNlY5KqF.js} +46 -46
  21. package/dist/gateway/static/root/assets/browser-settings-page-CRJ_nAuh.js +8 -0
  22. package/dist/gateway/static/root/assets/{browser-workflow-inputs-D_LAXUrh.js → browser-workflow-inputs-vyUfdzAd.js} +1 -1
  23. package/dist/gateway/static/root/assets/{browser-workflows-page-CPAs7-6s.js → browser-workflows-page-C1cKZjx-.js} +2 -2
  24. package/dist/gateway/static/root/assets/capabilities-settings-panel-DeQR5BZt.js +7 -0
  25. package/dist/gateway/static/root/assets/{capability-presets-api-CKklVY2p.js → capability-presets-api-D7tkhDMv.js} +1 -1
  26. package/dist/gateway/static/root/assets/capability-presets-settings-panel-D7uK3q1p.js +1 -0
  27. package/dist/gateway/static/root/assets/{channel-recipient-api-WWN-nbFL.js → channel-recipient-api-BGG2kpJB.js} +1 -1
  28. package/dist/gateway/static/root/assets/channels-settings-Bw6Dniyq.js +1 -0
  29. package/dist/gateway/static/root/assets/channels-status-swr-BrUTz4uU.js +1 -0
  30. package/dist/gateway/static/root/assets/{connector-logo-CdNkVFdB.js → connector-logo-8YU53RUT.js} +1 -1
  31. package/dist/gateway/static/root/assets/connectors-page-k9tMiOL5.js +2 -0
  32. package/dist/gateway/static/root/assets/{desktop-pet-Bm_IEAf3.js → desktop-pet-BUuBEJuP.js} +1 -1
  33. package/dist/gateway/static/root/assets/{desktop-pet-settings-C0Ve04-G.js → desktop-pet-settings-BGfVIJM3.js} +1 -1
  34. package/dist/gateway/static/root/assets/{directory-picker-path-field-B2cvhvAI.js → directory-picker-path-field-DrQFfHH_.js} +1 -1
  35. package/dist/gateway/static/root/assets/{extension-debug-page-DNashgGu.js → extension-debug-page-CEnIFOX-.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-page-Bvo-5htX.js → extension-page-CCqHbexs.js} +1 -1
  37. package/dist/gateway/static/root/assets/{extension-settings-page-BBESdISV.js → extension-settings-page-DEZw_7zN.js} +1 -1
  38. package/dist/gateway/static/root/assets/{gateway-config-api-ClQvokMo.js → gateway-config-api-CgUE2Ii1.js} +1 -1
  39. package/dist/gateway/static/root/assets/gateway-settings-Dg8qCiIp.js +1 -0
  40. package/dist/gateway/static/root/assets/{gateway-startup-retry-CntXJF6W.js → gateway-startup-retry-DxhKNiCF.js} +1 -1
  41. package/dist/gateway/static/root/assets/{heartbeat-settings-CWKcZuvc.js → heartbeat-settings-27tRzDEo.js} +1 -1
  42. package/dist/gateway/static/root/assets/home-page-VA511kMr.js +3 -0
  43. package/dist/gateway/static/root/assets/{image-generation-api-DjSAQwGy.js → image-generation-api-DCFdc-HD.js} +1 -1
  44. package/dist/gateway/static/root/assets/index-BvR-i-m6.js +216 -0
  45. package/dist/gateway/static/root/assets/index-zybP34zk.css +1 -0
  46. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-ahKHpjoW.js → keyboard-shortcuts-settings-Bf2VLtXW.js} +1 -1
  47. package/dist/gateway/static/root/assets/local-app-workbench-page-CaJq4-wV.js +2 -0
  48. package/dist/gateway/static/root/assets/{local-apps-page-B6GKdgza.js → local-apps-page-Ca1RuI13.js} +1 -1
  49. package/dist/gateway/static/root/assets/{locale-store-Bff30u5V.js → locale-store-DUW5YE3R.js} +1 -1
  50. package/dist/gateway/static/root/assets/logs-page-BLTCg69e.js +2 -0
  51. package/dist/gateway/static/root/assets/management-settings-B3Eop1zn.js +1 -0
  52. package/dist/gateway/static/root/assets/{markdown-split-BeNMJm_i.js → markdown-split-BGOYjgnM.js} +1 -1
  53. package/dist/gateway/static/root/assets/{media-plugins-Bdzrj_-6.js → media-plugins-CT0txyM4.js} +1 -1
  54. package/dist/gateway/static/root/assets/messages-CMjnbdbn.js +3 -0
  55. package/dist/gateway/static/root/assets/{notes-page-MYIi-9S9.js → notes-page-DfKgAe78.js} +1 -1
  56. package/dist/gateway/static/root/assets/notes-workbench-Bp1w9UM1.js +4 -0
  57. package/dist/gateway/static/root/assets/{page-tabs-3t88bbGx.js → page-tabs-DNrbCgmC.js} +1 -1
  58. package/dist/gateway/static/root/assets/{preview-open-alternatives-Cf_BWbeE.js → preview-open-alternatives-BTqViDOR.js} +1 -1
  59. package/dist/gateway/static/root/assets/product-delivery-tRr-7IxY.js +1 -0
  60. package/dist/gateway/static/root/assets/{product-open-page-CKq73c98.js → product-open-page-C_2L4_Iu.js} +1 -1
  61. package/dist/gateway/static/root/assets/project-detail-page-CZmbPDQN.js +1 -0
  62. package/dist/gateway/static/root/assets/projects-page-D5pzqfm5.js +1 -0
  63. package/dist/gateway/static/root/assets/remote-access-hub-CC-XhVGI.js +1 -0
  64. package/dist/gateway/static/root/assets/{schema-form-NqOm-OG1.js → schema-form-BFLfkDGG.js} +1 -1
  65. package/dist/gateway/static/root/assets/{schemas-C6onAggk.js → schemas-zIBW3wiV.js} +1 -1
  66. package/dist/gateway/static/root/assets/sessions-page-B2eTLVDV.js +1 -0
  67. package/dist/gateway/static/root/assets/settings-advanced-gate-CRuZ_bl0.js +1 -0
  68. package/dist/gateway/static/root/assets/{settings-form-section-DYAS8p8z.js → settings-form-section-C4GXGeA4.js} +1 -1
  69. package/dist/gateway/static/root/assets/{settings-loading-skeleton-DZFhxihA.js → settings-loading-skeleton-C9a-EbTZ.js} +1 -1
  70. package/dist/gateway/static/root/assets/settings-page-DI9qDH5x.js +1 -0
  71. package/dist/gateway/static/root/assets/{settings-page-layout-DfFfkdED.js → settings-page-layout-D-LWQdI5.js} +1 -1
  72. package/dist/gateway/static/root/assets/setup-status-panel-CJwmPvgs.js +1 -0
  73. package/dist/gateway/static/root/assets/{share-preview-page-CYtrQaZN.js → share-preview-page-BKSMG9r5.js} +1 -1
  74. package/dist/gateway/static/root/assets/shares-settings-YzSDS4G_.js +1 -0
  75. package/dist/gateway/static/root/assets/skill-reload-api-CwOo8zZk.js +1 -0
  76. package/dist/gateway/static/root/assets/skills-page-xd1cgSGN.js +2 -0
  77. package/dist/gateway/static/root/assets/{skills-page.utils-BBXirAjc.js → skills-page.utils-zsz2HIlZ.js} +1 -1
  78. package/dist/gateway/static/root/assets/{system-settings-panel-DLf5YvFl.js → system-settings-panel-IWNDBI1O.js} +1 -1
  79. package/dist/gateway/static/root/assets/{task-detail-page-DFGkuYfl.js → task-detail-page-CgtK02kP.js} +1 -1
  80. package/dist/gateway/static/root/assets/{theme-store-y7e_tvYi.js → theme-store-BkJe7UDo.js} +1 -1
  81. package/dist/gateway/static/root/assets/time-picker-CstQ___Y.js +1 -0
  82. package/dist/gateway/static/root/assets/{typed-models-lib-DR12j_dr.js → typed-models-lib-C07LGthO.js} +1 -1
  83. package/dist/gateway/static/root/assets/{use-save-bar-registration-BsvcJgZl.js → use-save-bar-registration-CQYE0l6z.js} +1 -1
  84. package/dist/gateway/static/root/assets/user-context-page-BnQAWS_B.js +1 -0
  85. package/dist/gateway/static/root/assets/{voice-api-key-field-DKADXFWD.js → voice-api-key-field-Boue1D46.js} +1 -1
  86. package/dist/gateway/static/root/assets/{work-discovery-overlay-BC1nExf8.js → work-discovery-overlay-bbmvCmc8.js} +1 -1
  87. package/dist/gateway/static/root/assets/work-discovery-page-CAszL1y8.js +1 -0
  88. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-C8X5W-8k.js → workflow-run-setup-panel-DlHv-GZC.js} +2 -2
  89. package/dist/gateway/static/root/assets/workflows-page-DxGzo3-x.js +11 -0
  90. package/dist/gateway/static/root/index.html +9 -9
  91. package/dist/package.js +1 -1
  92. package/dist/packages/endpoint-tools-protocol/src/index.js +184 -0
  93. package/dist/packages/gateway-contract/src/tool-activity.js +223 -0
  94. package/dist/packages/realtime-client/src/index.js +199 -0
  95. package/dist/packages/realtime-protocol/src/index.js +83 -0
  96. package/dist/src/agent/agent-manager.d.ts +1 -0
  97. package/dist/src/agent/agent-manager.js +3 -8
  98. package/dist/src/agent/background-review/prompts.d.ts +1 -1
  99. package/dist/src/agent/background-review/prompts.js +3 -1
  100. package/dist/src/agent/background-review/run-background-review.d.ts +2 -0
  101. package/dist/src/agent/background-review/run-background-review.js +5 -2
  102. package/dist/src/agent/client-error-format.d.ts +1 -1
  103. package/dist/src/agent/client-error-format.js +1 -1
  104. package/dist/src/agent/code-intelligence/binary.js +1 -1
  105. package/dist/src/agent/embedded/run-for-session.d.ts +0 -2
  106. package/dist/src/agent/embedded/run-for-session.js +99 -112
  107. package/dist/src/agent/external-tools/composio-provider.d.ts +29 -0
  108. package/dist/src/agent/external-tools/composio-provider.js +307 -0
  109. package/dist/src/agent/external-tools/endpoint-provider.d.ts +17 -0
  110. package/dist/src/agent/external-tools/endpoint-provider.js +93 -0
  111. package/dist/src/agent/external-tools/extension-provider.d.ts +20 -0
  112. package/dist/src/agent/external-tools/extension-provider.js +68 -0
  113. package/dist/src/agent/external-tools/gateway-tools.d.ts +8 -0
  114. package/dist/src/agent/external-tools/gateway-tools.js +89 -0
  115. package/dist/src/agent/external-tools/index.d.ts +23 -0
  116. package/dist/src/agent/external-tools/index.js +46 -0
  117. package/dist/src/agent/external-tools/mcp-provider.d.ts +29 -0
  118. package/dist/src/agent/external-tools/mcp-provider.js +118 -0
  119. package/dist/src/agent/external-tools/memory-provider.d.ts +21 -0
  120. package/dist/src/agent/external-tools/memory-provider.js +56 -0
  121. package/dist/src/agent/external-tools/refs.d.ts +5 -0
  122. package/dist/src/agent/external-tools/refs.js +18 -0
  123. package/dist/src/agent/external-tools/service.d.ts +26 -0
  124. package/dist/src/agent/external-tools/service.js +117 -0
  125. package/dist/src/agent/external-tools/types.d.ts +35 -0
  126. package/dist/src/agent/external-tools/types.js +10 -0
  127. package/dist/src/agent/inbound/inbound-loop.d.ts +0 -2
  128. package/dist/src/agent/inbound/inbound-loop.js +4 -3
  129. package/dist/src/agent/inbound/turn-dispatcher.d.ts +9 -8
  130. package/dist/src/agent/inbound/turn-dispatcher.js +13 -11
  131. package/dist/src/agent/mcp/{bundle-mcp-materialize.d.ts → bundle-mcp-gateway.d.ts} +1 -19
  132. package/dist/src/agent/mcp/bundle-mcp-gateway.js +60 -0
  133. package/dist/src/agent/mcp/bundle-mcp-names.d.ts +0 -8
  134. package/dist/src/agent/mcp/bundle-mcp-names.js +2 -29
  135. package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +4 -7
  136. package/dist/src/agent/mcp/bundle-mcp-policy.js +6 -20
  137. package/dist/src/agent/mcp/bundle-mcp-runtime.js +2 -2
  138. package/dist/src/agent/mcp/bundle-mcp-tools.d.ts +1 -2
  139. package/dist/src/agent/mcp/bundle-mcp-tools.js +1 -2
  140. package/dist/src/agent/mcp/bundle-mcp-types.d.ts +0 -5
  141. package/dist/src/agent/mcp/index.d.ts +0 -2
  142. package/dist/src/agent/mcp/index.js +2 -5
  143. package/dist/src/agent/mcp/mcp-stdio-transport.js +1 -1
  144. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  145. package/dist/src/agent/memory/context/planner.d.ts +1 -0
  146. package/dist/src/agent/memory/context/planner.js +22 -7
  147. package/dist/src/agent/memory/manager.d.ts +4 -1
  148. package/dist/src/agent/memory/manager.js +5 -2
  149. package/dist/src/agent/memory/types.d.ts +2 -0
  150. package/dist/src/agent/messaging/command-handler.d.ts +2 -2
  151. package/dist/src/agent/messaging/command-handler.js +3 -3
  152. package/dist/src/agent/messaging/stream-manager.d.ts +2 -14
  153. package/dist/src/agent/messaging/stream-manager.js +0 -12
  154. package/dist/src/agent/orchestration/agent-event-handler.d.ts +1 -3
  155. package/dist/src/agent/orchestration/agent-event-handler.js +0 -36
  156. package/dist/src/agent/orchestration/agent-orchestrator.d.ts +0 -5
  157. package/dist/src/agent/orchestration/agent-orchestrator.js +0 -5
  158. package/dist/src/agent/prompt/sections/behavior.js +6 -4
  159. package/dist/src/agent/service/async-queue.d.ts +1 -1
  160. package/dist/src/agent/service/async-queue.js +1 -1
  161. package/dist/src/agent/service/direct-turn-helpers.d.ts +1 -1
  162. package/dist/src/agent/service/direct-turn-helpers.js +1 -1
  163. package/dist/src/agent/service/process-direct-one-shot.d.ts +3 -1
  164. package/dist/src/agent/service/process-direct-one-shot.js +1 -1
  165. package/dist/src/agent/service/process-direct-streaming.d.ts +7 -5
  166. package/dist/src/agent/service/process-direct-streaming.js +5 -5
  167. package/dist/src/agent/service.d.ts +1 -4
  168. package/dist/src/agent/service.js +6 -32
  169. package/dist/src/agent/service.types.d.ts +2 -3
  170. package/dist/src/agent/session/index.d.ts +1 -1
  171. package/dist/src/agent/session/session-context.d.ts +2 -0
  172. package/dist/src/agent/session/session-context.js +4 -0
  173. package/dist/src/agent/session/session-state-bag.d.ts +4 -4
  174. package/dist/src/agent/session/session-state-bag.js +1 -1
  175. package/dist/src/agent/skills/hub-pull.js +1 -1
  176. package/dist/src/agent/starter-agents.js +2 -2
  177. package/dist/src/agent/streaming/reasoning-visibility.d.ts +6 -0
  178. package/dist/src/agent/streaming/{reasoning-visibility-sse.js → reasoning-visibility.js} +3 -6
  179. package/dist/src/agent/tools/delegate-tool.js +5 -1
  180. package/dist/src/agent/tools/executor.js +1 -1
  181. package/dist/src/agent/tools/factory.d.ts +6 -1
  182. package/dist/src/agent/tools/factory.js +17 -22
  183. package/dist/src/agent/tools/index.d.ts +0 -1
  184. package/dist/src/agent/tools/index.js +1 -2
  185. package/dist/src/agent/workflow/workflow-child-tools.js +7 -1
  186. package/dist/src/automations/domain/types.d.ts +2 -1
  187. package/dist/src/automations/domain/validation.d.ts +1 -1
  188. package/dist/src/automations/service/action-executor.js +4 -1
  189. package/dist/src/browser/providers/cloakbrowser.js +1 -1
  190. package/dist/src/channels/channel-domain.d.ts +0 -4
  191. package/dist/src/channels/pairing/pairing-challenge.d.ts +1 -1
  192. package/dist/src/channels/pairing/pairing-challenge.js +1 -1
  193. package/dist/src/channels/plugin-types.d.ts +0 -2
  194. package/dist/src/cli/commands/agent/stream-renderer.js +4 -1
  195. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  196. package/dist/src/config/rules.js +0 -5
  197. package/dist/src/config/schema.d.ts +3 -5
  198. package/dist/src/config/schema.js +0 -3
  199. package/dist/src/config/web-patch.js +0 -1
  200. package/dist/src/connectors/health.js +1 -1
  201. package/dist/src/endpoint-tools/auth.d.ts +20 -0
  202. package/dist/src/endpoint-tools/auth.js +51 -0
  203. package/dist/src/endpoint-tools/index.d.ts +5 -0
  204. package/dist/src/endpoint-tools/index.js +6 -0
  205. package/dist/src/endpoint-tools/invocation-service.d.ts +68 -0
  206. package/dist/src/endpoint-tools/invocation-service.js +190 -0
  207. package/dist/src/endpoint-tools/policy.d.ts +10 -0
  208. package/dist/src/endpoint-tools/policy.js +18 -0
  209. package/dist/src/endpoint-tools/registry.d.ts +45 -0
  210. package/dist/src/endpoint-tools/registry.js +121 -0
  211. package/dist/src/endpoint-tools/runtime.d.ts +23 -0
  212. package/dist/src/endpoint-tools/runtime.js +86 -0
  213. package/dist/src/endpoint-tools/upload-service.d.ts +41 -0
  214. package/dist/src/endpoint-tools/upload-service.js +103 -0
  215. package/dist/src/extensions/extension-registry-impl.d.ts +3 -1
  216. package/dist/src/extensions/extension-registry-impl.js +7 -1
  217. package/dist/src/extensions/loader.js +1 -1
  218. package/dist/src/extensions/types/core.d.ts +2 -1
  219. package/dist/src/extensions/types/hooks.d.ts +1 -1
  220. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  221. package/dist/src/gateway/agent-builtin-tools.js +5 -2
  222. package/dist/src/gateway/chat-stream/mapper.js +16 -1
  223. package/dist/src/gateway/chat-stream/protocol.d.ts +4 -1
  224. package/dist/src/gateway/clarify-bridge.d.ts +5 -4
  225. package/dist/src/gateway/clarify-bridge.js +3 -4
  226. package/dist/src/gateway/file-reference-errors.d.ts +6 -0
  227. package/dist/src/gateway/file-reference-errors.js +21 -0
  228. package/dist/src/gateway/heartbeat/service.js +5 -2
  229. package/dist/src/gateway/hono/app.js +1 -5
  230. package/dist/src/gateway/hono/index.d.ts +0 -1
  231. package/dist/src/gateway/hono/index.js +1 -2
  232. package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -2
  233. package/dist/src/gateway/hono/lib/config-payload.js +1 -2
  234. package/dist/src/gateway/hono/middleware/auth.js +3 -5
  235. package/dist/src/gateway/hono/routes/agent-stream.js +49 -6
  236. package/dist/src/gateway/hono/routes/config-patch/gateway.d.ts +2 -2
  237. package/dist/src/gateway/hono/routes/config-patch/gateway.js +0 -19
  238. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  239. package/dist/src/gateway/hono/routes/deps.d.ts +0 -2
  240. package/dist/src/gateway/hono/routes/endpoint-tools.d.ts +3 -0
  241. package/dist/src/gateway/hono/routes/endpoint-tools.js +196 -0
  242. package/dist/src/gateway/hono/routes/index.js +4 -0
  243. package/dist/src/gateway/hono/routes/logs.js +0 -4
  244. package/dist/src/gateway/hono/routes/mcp.js +1 -1
  245. package/dist/src/gateway/hono/routes/projects.js +34 -13
  246. package/dist/src/gateway/hono/routes/public-gateway.js +2 -2
  247. package/dist/src/gateway/hono/routes/realtime.d.ts +3 -0
  248. package/dist/src/gateway/hono/routes/realtime.js +35 -0
  249. package/dist/src/gateway/hono/routes/workspace.js +34 -13
  250. package/dist/src/gateway/hono/routes/you.d.ts +0 -9
  251. package/dist/src/gateway/hono/routes/you.js +81 -128
  252. package/dist/src/gateway/index.d.ts +1 -1
  253. package/dist/src/gateway/index.js +1 -2
  254. package/dist/src/gateway/protocol.d.ts +1 -7
  255. package/dist/src/gateway/security/index.js +1 -1
  256. package/dist/src/gateway/security/operator-scopes.js +1 -1
  257. package/dist/src/gateway/server.js +4 -4
  258. package/dist/src/gateway/service/agent-runner.d.ts +11 -9
  259. package/dist/src/gateway/service/agent-runner.js +18 -18
  260. package/dist/src/gateway/service/config-coordinator.d.ts +2 -2
  261. package/dist/src/gateway/service/config-coordinator.js +1 -1
  262. package/dist/src/gateway/service/run-gateway-agent.d.ts +4 -3
  263. package/dist/src/gateway/service/run-gateway-agent.js +17 -14
  264. package/dist/src/gateway/service/session-input-coordinator.d.ts +3 -0
  265. package/dist/src/gateway/service/session-input-coordinator.js +4 -2
  266. package/dist/src/gateway/service/types.d.ts +0 -5
  267. package/dist/src/gateway/service.d.ts +7 -6
  268. package/dist/src/gateway/service.js +39 -22
  269. package/dist/src/heartbeat/index.js +1 -1
  270. package/dist/src/mcp/channel-bridge.d.ts +6 -9
  271. package/dist/src/mcp/channel-bridge.js +48 -76
  272. package/dist/src/mcp/channel-server.js +2 -6
  273. package/dist/src/realtime/broker.d.ts +30 -0
  274. package/dist/src/realtime/broker.js +97 -0
  275. package/dist/src/realtime/runtime.d.ts +20 -0
  276. package/dist/src/realtime/runtime.js +258 -0
  277. package/dist/src/realtime/tickets.d.ts +15 -0
  278. package/dist/src/realtime/tickets.js +38 -0
  279. package/dist/src/realtime/writer.d.ts +15 -0
  280. package/dist/src/realtime/writer.js +78 -0
  281. package/dist/src/share/share-config.js +0 -1
  282. package/dist/src/share/share-zip.js +1 -1
  283. package/dist/src/share/site-share-config.js +0 -1
  284. package/dist/src/storage/sqlite/endpoint-principal-repository.d.ts +17 -0
  285. package/dist/src/storage/sqlite/endpoint-principal-repository.js +54 -0
  286. package/dist/src/storage/sqlite/endpoint-tool-invocation-repository.d.ts +25 -0
  287. package/dist/src/storage/sqlite/endpoint-tool-invocation-repository.js +42 -0
  288. package/dist/src/storage/sqlite/index.d.ts +2 -0
  289. package/dist/src/storage/sqlite/index.js +3 -1
  290. package/dist/src/storage/sqlite/memory-records-repository.js +3 -1
  291. package/dist/src/storage/sqlite/migrations/108_repair_user_memory_provider.sql +18 -0
  292. package/dist/src/storage/sqlite/migrations/109_endpoint_principals.sql +14 -0
  293. package/dist/src/storage/sqlite/migrations/110_session_input_origin.sql +43 -0
  294. package/dist/src/storage/sqlite/migrations/111_endpoint_tool_invocations.sql +18 -0
  295. package/dist/src/storage/sqlite/migrations/112_endpoint_instance_bindings.sql +8 -0
  296. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  297. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  298. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  299. package/dist/src/storage/sqlite/schema.js +1 -1
  300. package/dist/src/storage/sqlite/session-input-repository.d.ts +3 -0
  301. package/dist/src/storage/sqlite/session-input-repository.js +5 -3
  302. package/dist/src/tasks/home-query-service.d.ts +1 -1
  303. package/dist/src/tui/backends/embedded-backend.js +5 -2
  304. package/dist/src/tui/backends/{gateway-sse-backend.d.ts → gateway-realtime-backend.d.ts} +13 -10
  305. package/dist/src/tui/backends/{gateway-sse-backend.js → gateway-realtime-backend.js} +114 -151
  306. package/dist/src/tui/tool-summary.d.ts +1 -2
  307. package/dist/src/tui/tool-summary.js +2 -18
  308. package/dist/src/tui/tui-agent-events.d.ts +0 -1
  309. package/dist/src/tui/tui-agent-events.js +2 -15
  310. package/dist/src/tui/tui-backend.d.ts +4 -4
  311. package/dist/src/tui/tui-run-state.js +0 -4
  312. package/dist/src/tui/tui-types.d.ts +2 -9
  313. package/dist/src/tui/tui-types.js +0 -1
  314. package/dist/src/tui/tui.js +5 -5
  315. package/dist/src/tunnel/frpc-binary.js +1 -1
  316. package/dist/src/tunnel/gateway-lifecycle.d.ts +1 -1
  317. package/dist/src/tunnel/gateway-lifecycle.js +1 -1
  318. package/dist/src/user-context/actionableInsights.d.ts +14 -0
  319. package/dist/src/user-context/actionableInsights.js +34 -0
  320. package/dist/src/user-context/manual-understanding.js +6 -1
  321. package/dist/src/user-context/projection.d.ts +2 -1
  322. package/dist/src/user-context/projection.js +2 -1
  323. package/dist/src/user-context/understandingQuality.d.ts +5 -0
  324. package/dist/src/user-context/understandingQuality.js +44 -0
  325. package/dist/src/utils/logger/log-stream.d.ts +3 -10
  326. package/dist/src/utils/logger/log-stream.js +2 -73
  327. package/dist/src/utils/logger/pino-record.d.ts +1 -1
  328. package/dist/src/utils/logger/streams.js +1 -1
  329. package/dist/src/voice/local/model-files.js +1 -1
  330. package/dist/src/work-discovery/service.js +1 -1
  331. package/package.json +6 -3
  332. package/dist/gateway/static/root/assets/agents-Df9mTa-K.js +0 -2
  333. package/dist/gateway/static/root/assets/apps-page-Bd3tN-k2.js +0 -1
  334. package/dist/gateway/static/root/assets/automations-page-w6K9GZQ7.js +0 -6
  335. package/dist/gateway/static/root/assets/browser-settings-page-jb5Hf-hm.js +0 -8
  336. package/dist/gateway/static/root/assets/capabilities-settings-panel-BjUe4raq.js +0 -7
  337. package/dist/gateway/static/root/assets/capability-presets-settings-panel-DiWIMYRr.js +0 -1
  338. package/dist/gateway/static/root/assets/channels-settings-D8IkjMuX.js +0 -1
  339. package/dist/gateway/static/root/assets/channels-status-swr-CySs1GQX.js +0 -1
  340. package/dist/gateway/static/root/assets/connectors-page-BT2ahw52.js +0 -2
  341. package/dist/gateway/static/root/assets/gateway-settings-CIRs2QVy.js +0 -1
  342. package/dist/gateway/static/root/assets/home-page-C59f8UJw.js +0 -3
  343. package/dist/gateway/static/root/assets/index-D-YfWVyS.css +0 -1
  344. package/dist/gateway/static/root/assets/index-vi5KlR5_.js +0 -222
  345. package/dist/gateway/static/root/assets/local-app-workbench-page-DRB4UQBE.js +0 -2
  346. package/dist/gateway/static/root/assets/logs-page-CNp4XiBN.js +0 -7
  347. package/dist/gateway/static/root/assets/messages-CPxz48hr.js +0 -3
  348. package/dist/gateway/static/root/assets/notes-workbench-DqSkeDXX.js +0 -4
  349. package/dist/gateway/static/root/assets/product-delivery-C8JbSj5Y.js +0 -1
  350. package/dist/gateway/static/root/assets/project-detail-page-BrbHs4Wp.js +0 -1
  351. package/dist/gateway/static/root/assets/projects-page-B80rtkj6.js +0 -1
  352. package/dist/gateway/static/root/assets/remote-access-hub-_Q3GEznb.js +0 -1
  353. package/dist/gateway/static/root/assets/sessions-page-55dJOUVg.js +0 -1
  354. package/dist/gateway/static/root/assets/settings-advanced-gate-CSFCZj14.js +0 -1
  355. package/dist/gateway/static/root/assets/settings-page-BSIiMLi-.js +0 -1
  356. package/dist/gateway/static/root/assets/setup-status-panel-q_yE6-H1.js +0 -1
  357. package/dist/gateway/static/root/assets/shares-settings-gYkRX9Ik.js +0 -1
  358. package/dist/gateway/static/root/assets/skill-reload-api-BoNBMKW6.js +0 -1
  359. package/dist/gateway/static/root/assets/skills-page-GZHKDFSb.js +0 -2
  360. package/dist/gateway/static/root/assets/time-picker-5sHEZ5w5.js +0 -1
  361. package/dist/gateway/static/root/assets/user-context-page-q5dr8JFG.js +0 -1
  362. package/dist/gateway/static/root/assets/work-discovery-page-fNvSg40M.js +0 -1
  363. package/dist/gateway/static/root/assets/workflows-page-YJBKmPYK.js +0 -11
  364. package/dist/src/agent/feedback/feedback-coordinator.d.ts +0 -73
  365. package/dist/src/agent/feedback/feedback-coordinator.js +0 -156
  366. package/dist/src/agent/feedback/index.d.ts +0 -4
  367. package/dist/src/agent/feedback/index.js +0 -2
  368. package/dist/src/agent/lifecycle/progress.d.ts +0 -90
  369. package/dist/src/agent/lifecycle/progress.js +0 -339
  370. package/dist/src/agent/mcp/bundle-mcp-materialize.js +0 -183
  371. package/dist/src/agent/mcp/mcp-tool-meta.d.ts +0 -8
  372. package/dist/src/agent/mcp/mcp-tool-meta.js +0 -13
  373. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.d.ts +0 -14
  374. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +0 -48
  375. package/dist/src/agent/streaming/reasoning-visibility-sse.d.ts +0 -15
  376. package/dist/src/agent/tools/composio-tool.d.ts +0 -21
  377. package/dist/src/agent/tools/composio-tool.js +0 -261
  378. package/dist/src/gateway/agent-run-relay.d.ts +0 -19
  379. package/dist/src/gateway/agent-run-relay.js +0 -169
  380. package/dist/src/gateway/hono/sse.d.ts +0 -53
  381. package/dist/src/gateway/hono/sse.js +0 -207
  382. package/dist/src/gateway/service/sse-hub.d.ts +0 -10
  383. package/dist/src/gateway/service/sse-hub.js +0 -53
  384. package/dist/src/tui/sse-consumer.d.ts +0 -15
  385. package/dist/src/tui/sse-consumer.js +0 -73
@@ -4,6 +4,8 @@ import { isXopcDatabaseOpen } from "../../storage/sqlite/connection.js";
4
4
  import { getSessionTaskPlan, setSessionTaskPlan } from "../../storage/sqlite/session-task-plan-repository.js";
5
5
  import "../../storage/sqlite/index.js";
6
6
  import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
7
+ import { wrapToolsWithProtection } from "./executor.js";
8
+ import { createDefaultExternalToolGatewayTools } from "../external-tools/index.js";
7
9
  import { createReadFileTool } from "./read.js";
8
10
  import { createWriteFileTool } from "./write.js";
9
11
  import { createListDirTool } from "./list-dir.js";
@@ -16,7 +18,6 @@ import { createFindTool } from "./find.js";
16
18
  import { createWebFetchTool, createWebSearchTool } from "./web.js";
17
19
  import { createWebExtractTool } from "./web-extract.js";
18
20
  import { createMessageTool } from "./communication.js";
19
- import { createComposioTools } from "./composio-tool.js";
20
21
  import { createSendMediaTool } from "./send-media.js";
21
22
  import { createReadMediaTool } from "./media-read-tool.js";
22
23
  import { createCreateShareTool, isShareToolAvailable } from "./create-share-tool.js";
@@ -49,7 +50,6 @@ import { createImageGenerateTool } from "./image-generate-tool.js";
49
50
  import "./index.js";
50
51
  import { createBrowserUseTool } from "./browser/tool/browser-use-tool.js";
51
52
  import { createWorkflowCatalog } from "../workflow/catalog.js";
52
- import { wrapToolsWithProtection } from "./executor.js";
53
53
  import { mergeTtsConfigFromAppConfig } from "../../voice/tts/merge-config.js";
54
54
  import { createTextToSpeechTool } from "./tts-tool.js";
55
55
  import { getAgentCapabilityToolNames } from "../capabilities/registry.js";
@@ -178,15 +178,19 @@ var AgentToolsFactory = class {
178
178
  const codeIntelligenceConfig = cfg?.codeIntelligence;
179
179
  const agentId = options?.agentId;
180
180
  const codeIntelligenceTools = isCodeIntelligenceEnabledForAgent(codeIntelligenceConfig, agentId) && this.deps.getCodeIntelligenceRuntime ? createCodeIntelligenceTools({ getRuntime: () => this.deps.getCodeIntelligenceRuntime(workspace) }) : [];
181
- const optionalTools = [
182
- imageTool,
183
- imageGenerateTool,
184
- ...createComposioTools({
185
- getConfig: () => this.deps.getConfig?.(),
186
- getCurrentContext: this.deps.getCurrentContext,
187
- agentId
188
- })
189
- ].filter((t) => t != null);
181
+ const externalTools = createDefaultExternalToolGatewayTools({
182
+ workspace,
183
+ getConfig: () => this.deps.getConfig?.(),
184
+ getCurrentContext: this.deps.getCurrentContext,
185
+ endpointTools: this.deps.endpointTools,
186
+ agentId,
187
+ extensionRegistry: this.deps.extensionRegistry,
188
+ disabledTools: disabled,
189
+ hookRunner: this.deps.hookRunner,
190
+ toolExecutorConfig: this.deps.toolExecutorConfig,
191
+ getMemoryManager: getMemMgr
192
+ });
193
+ const optionalTools = [imageTool, imageGenerateTool].filter((t) => t != null);
190
194
  const readTool = createReadFileTool(workspace, { profileMarkdownRoot: options?.profileMarkdownRoot });
191
195
  const writeTool = createWriteFileTool(workspace, { profileMarkdownRoot: options?.profileMarkdownRoot });
192
196
  const applyPatchTool = createApplyPatchTool(workspace);
@@ -223,6 +227,7 @@ var AgentToolsFactory = class {
223
227
  }
224
228
  }),
225
229
  createUpdatePlanTool(),
230
+ ...externalTools,
226
231
  ...getSkillMgr ? [
227
232
  createSkillsListTool({
228
233
  getSkillManager: getSkillMgr,
@@ -287,7 +292,6 @@ var AgentToolsFactory = class {
287
292
  ...this.deps.getCurrentContext?.()?.sessionKey ? { sessionKey: this.deps.getCurrentContext().sessionKey } : {}
288
293
  })
289
294
  })] : [],
290
- ...getMemMgr?.().getAdditionalTools() ?? [],
291
295
  ...this.deps.getSessionStore && getPrimary ? [createSessionSearchTool({
292
296
  getSessionStore: this.deps.getSessionStore,
293
297
  getPrimaryModel: getPrimary,
@@ -341,16 +345,7 @@ var AgentToolsFactory = class {
341
345
  return ["create_desktop_pet"];
342
346
  }
343
347
  createAllTools(coreOptions) {
344
- const coreTools = this.createCoreTools(coreOptions);
345
- const disableExtensions = coreOptions?.disabledTools?.has("extensions");
346
- let bundled;
347
- if (!this.deps.extensionRegistry || disableExtensions) bundled = coreTools;
348
- else {
349
- const extensionTools = this.deps.extensionRegistry.getAllTools();
350
- log.info({ count: extensionTools.length }, "Loaded extension tools");
351
- bundled = [...coreTools, ...extensionTools];
352
- }
353
- return wrapToolsWithProtection(bundled, this.deps.toolExecutorConfig);
348
+ return wrapToolsWithProtection(this.createCoreTools(coreOptions), this.deps.toolExecutorConfig);
354
349
  }
355
350
  };
356
351
  function filterToolsByDisabledSet(tools, disabled) {
@@ -12,7 +12,6 @@ export { findTool, createFindTool, type FindToolInput, type FindToolDetails, } f
12
12
  export { createWebSearchTool, createWebFetchTool } from './web.js';
13
13
  export { createWebExtractTool, stripHtmlBoilerplate, DEFAULT_WEB_EXTRACT_MAX_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, } from './web-extract.js';
14
14
  export { createMessageTool } from './communication.js';
15
- export { createComposioTools } from './composio-tool.js';
16
15
  export { createSendMediaTool } from './send-media.js';
17
16
  export { createReadMediaTool } from './media-read-tool.js';
18
17
  export { createCreateShareTool, isShareToolAvailable, type CreateShareToolDeps, } from './create-share-tool.js';
@@ -14,7 +14,6 @@ import { createFindTool, findTool } from "./find.js";
14
14
  import { createWebFetchTool, createWebSearchTool } from "./web.js";
15
15
  import { DEFAULT_WEB_EXTRACT_MAX_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, createWebExtractTool, stripHtmlBoilerplate } from "./web-extract.js";
16
16
  import { createMessageTool } from "./communication.js";
17
- import { createComposioTools } from "./composio-tool.js";
18
17
  import { createSendMediaTool } from "./send-media.js";
19
18
  import { createReadMediaTool } from "./media-read-tool.js";
20
19
  import { createCreateShareTool, isShareToolAvailable } from "./create-share-tool.js";
@@ -43,4 +42,4 @@ import { createManagedJobTool } from "./managed-job-tool.js";
43
42
  import { resolveImageModelConfigForTool } from "../image/tool-model-config.js";
44
43
  import { createImageTool } from "./image-tool.js";
45
44
  import { createImageGenerateTool, resolveImageGenerationModelConfigForTool } from "./image-generate-tool.js";
46
- export { BrowserManager, DEFAULT_DELEGATE_TOOLS, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, DEFAULT_TOOL_METADATA, DEFAULT_WEB_EXTRACT_MAX_LENGTH, DELEGATE_BLOCKED_TOOLS, GREP_MAX_LINE_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, SANDBOX_ALLOWED_TOOLS, TodoStore, ToolConcurrencyController, assertBrowserUrlAllowed, buildSandboxToolMap, createApplyPatchTool, createAutomationTool, createBrowserRecipeTool, createClarifyTool, createCodeIntelligenceTools, createComposioTools, createCreateShareTool, createDelegateTool, createDesktopPetTool, createDreamingTool, createExecCommandTool, createExecuteCodeTool, createFindTool, createGrepTool, createImageGenerateTool, createImageTool, createListDirTool, createManagedJobTool, createMemoryGetTool, createMemorySearchTool, createMessageTool, createReadFileTool, createReadMediaTool, createSendMediaTool, createSessionSearchTool, createSessionStatusTool, createSkillInstallTool, createSkillManageTool, createSkillViewTool, createSkillsListTool, createSkillsMarketplaceSearchTool, createTodoTool, createToolManualTool, createUpdatePlanTool, createWebExtractTool, createWebFetchTool, createWebSearchTool, createWorkflowTool, createWriteFileTool, createXopcUseTool, findTool, formatSize, fuzzyFindText, generateDiffString, getToolMetadata, grepTool, isShareToolAvailable, listDirTool, normalizeForFuzzyMatch, normalizeToLF, resolveImageGenerationModelConfigForTool, resolveImageModelConfigForTool, resolveToolLockMode, restoreLineEndings, stripBom, stripHtmlBoilerplate, truncateHead, truncateLine, truncateTail, writeFileTool };
45
+ export { BrowserManager, DEFAULT_DELEGATE_TOOLS, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, DEFAULT_TOOL_METADATA, DEFAULT_WEB_EXTRACT_MAX_LENGTH, DELEGATE_BLOCKED_TOOLS, GREP_MAX_LINE_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, SANDBOX_ALLOWED_TOOLS, TodoStore, ToolConcurrencyController, assertBrowserUrlAllowed, buildSandboxToolMap, createApplyPatchTool, createAutomationTool, createBrowserRecipeTool, createClarifyTool, createCodeIntelligenceTools, createCreateShareTool, createDelegateTool, createDesktopPetTool, createDreamingTool, createExecCommandTool, createExecuteCodeTool, createFindTool, createGrepTool, createImageGenerateTool, createImageTool, createListDirTool, createManagedJobTool, createMemoryGetTool, createMemorySearchTool, createMessageTool, createReadFileTool, createReadMediaTool, createSendMediaTool, createSessionSearchTool, createSessionStatusTool, createSkillInstallTool, createSkillManageTool, createSkillViewTool, createSkillsListTool, createSkillsMarketplaceSearchTool, createTodoTool, createToolManualTool, createUpdatePlanTool, createWebExtractTool, createWebFetchTool, createWebSearchTool, createWorkflowTool, createWriteFileTool, createXopcUseTool, findTool, formatSize, fuzzyFindText, generateDiffString, getToolMetadata, grepTool, isShareToolAvailable, listDirTool, normalizeForFuzzyMatch, normalizeToLF, resolveImageGenerationModelConfigForTool, resolveImageModelConfigForTool, resolveToolLockMode, restoreLineEndings, stripBom, stripHtmlBoilerplate, truncateHead, truncateLine, truncateTail, writeFileTool };
@@ -1,3 +1,5 @@
1
+ import { EXTERNAL_TOOL_NAMES } from "../external-tools/gateway-tools.js";
2
+ import "../external-tools/index.js";
1
3
  import { AgentToolsFactory } from "../tools/factory.js";
2
4
  //#region src/agent/workflow/workflow-child-tools.ts
3
5
  /** Builds the tool set for workflow child agents (wired from gateway to avoid cycles). */
@@ -13,7 +15,11 @@ function buildWorkflowChildTools(childOptions) {
13
15
  workspace: childOptions.workspace,
14
16
  getPrimaryModel: () => childOptions.model,
15
17
  agentId: childOptions.agentId,
16
- disabledTools: new Set(["extensions"])
18
+ disabledTools: new Set([
19
+ EXTERNAL_TOOL_NAMES.search,
20
+ EXTERNAL_TOOL_NAMES.describe,
21
+ EXTERNAL_TOOL_NAMES.execute
22
+ ])
17
23
  });
18
24
  }
19
25
  //#endregion
@@ -1,5 +1,6 @@
1
1
  import type { WorkflowRunInputEnvelope } from '../../workflows/domain/index.js';
2
2
  import type { TaskCommand } from '@xopcai/gateway-contract';
3
+ import type { TurnOrigin } from '@xopcai/endpoint-tools-protocol';
3
4
  import type { WorkflowRunServiceLike } from '../../workflows/service/workflow-run-service.types.js';
4
5
  export type AutomationSchedule = {
5
6
  kind: 'once';
@@ -171,7 +172,7 @@ export interface AutomationDeps {
171
172
  applyAutomationModelOverride?: (sessionKey: string, model: string | undefined) => Promise<boolean>;
172
173
  };
173
174
  turnDispatcher?: {
174
- processDirect: (message: string, sessionKey: string, attachments?: unknown[], thinking?: string, options?: {
175
+ processDirect: (message: string, sessionKey: string, origin: TurnOrigin, attachments?: unknown[], thinking?: string, options?: {
175
176
  signal?: AbortSignal;
176
177
  runId?: string;
177
178
  deadlineAtMs?: number;
@@ -656,6 +656,7 @@ export declare const UpdateAutomationSchema: z.ZodObject<{
656
656
  }, z.core.$strip>;
657
657
  }, z.core.$strip>], "type">;
658
658
  }, z.core.$strict>], "kind">>;
659
+ description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
659
660
  state: z.ZodOptional<z.ZodDefault<z.ZodObject<{
660
661
  nextRunAtMs: z.ZodOptional<z.ZodNumber>;
661
662
  runningRunId: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
@@ -672,7 +673,6 @@ export declare const UpdateAutomationSchema: z.ZodObject<{
672
673
  lastError: z.ZodOptional<z.ZodString>;
673
674
  consecutiveFailures: z.ZodOptional<z.ZodNumber>;
674
675
  }, z.core.$strict>>>;
675
- description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
676
676
  trigger: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
677
677
  kind: z.ZodLiteral<"manual">;
678
678
  }, z.core.$strict>, z.ZodObject<{
@@ -177,7 +177,10 @@ var AutomationActionExecutor = class {
177
177
  model: action.model
178
178
  }, "Automation model override invalid; using agent default");
179
179
  }
180
- const response = await agentService.turnDispatcher.processDirect(buildSafetyInstruction(automation, action.instruction), sessionKey, void 0, void 0, {
180
+ const response = await agentService.turnDispatcher.processDirect(buildSafetyInstruction(automation, action.instruction), sessionKey, {
181
+ type: "system",
182
+ source: "automation"
183
+ }, void 0, void 0, {
181
184
  signal,
182
185
  runId: run.id,
183
186
  deadlineAtMs
@@ -11,9 +11,9 @@ import { createReadStream, createWriteStream } from "node:fs";
11
11
  import { spawn } from "node:child_process";
12
12
  import { createHash } from "node:crypto";
13
13
  import { mkdir, mkdtemp, rm, stat } from "node:fs/promises";
14
+ import { Readable, Transform } from "node:stream";
14
15
  import AdmZip from "adm-zip";
15
16
  import { pipeline } from "node:stream/promises";
16
- import { Readable, Transform } from "node:stream";
17
17
  //#region src/browser/providers/cloakbrowser.ts
18
18
  /**
19
19
  * CloakBrowser provider — anti-fingerprint Chromium with stealth capabilities.
@@ -3,8 +3,6 @@
3
3
  */
4
4
  import type { MessageBus } from '../infra/bus/index.js';
5
5
  import type { Config } from '../config/schema.js';
6
- import type { ProgressStage } from '../agent/lifecycle/progress.js';
7
- export type { ProgressStage } from '../agent/lifecycle/progress.js';
8
6
  export type ChatType = 'direct' | 'group' | 'channel' | 'thread';
9
7
  export type DmPolicy = 'pairing' | 'allowlist' | 'open' | 'disabled';
10
8
  export type GroupPolicy = 'open' | 'disabled' | 'allowlist';
@@ -74,8 +72,6 @@ export interface ChannelSendResult {
74
72
  }
75
73
  export interface ChannelStreamHandle {
76
74
  update: (text: string) => void;
77
- updateProgress?: (text: string, stage: ProgressStage, detail?: string) => void;
78
- setProgress?: (stage: ProgressStage, detail?: string) => void;
79
75
  end: () => Promise<void>;
80
76
  abort: () => Promise<void>;
81
77
  messageId: () => number | undefined;
@@ -18,7 +18,7 @@ export type IssuePairingChallengeParams = {
18
18
  };
19
19
  /**
20
20
  * OpenClaw-style pairing: mint or refresh a pending code; notify the user only on new codes.
21
- * Repeat DMs refresh lastSeenAt and broadcast SSE without re-sending the bot message.
21
+ * Repeat DMs refresh lastSeenAt and publish realtime status without re-sending the bot message.
22
22
  */
23
23
  export declare function issuePairingChallenge(params: IssuePairingChallengeParams): Promise<{
24
24
  created: boolean;
@@ -4,7 +4,7 @@ import { broadcastPairingEvent } from "./pairing-events.js";
4
4
  //#region src/channels/pairing/pairing-challenge.ts
5
5
  /**
6
6
  * OpenClaw-style pairing: mint or refresh a pending code; notify the user only on new codes.
7
- * Repeat DMs refresh lastSeenAt and broadcast SSE without re-sending the bot message.
7
+ * Repeat DMs refresh lastSeenAt and publish realtime status without re-sending the bot message.
8
8
  */
9
9
  async function issuePairingChallenge(params) {
10
10
  const normalizedAccountId = params.accountId.trim().toLowerCase() || "default";
@@ -296,8 +296,6 @@ export interface ChannelPollResult {
296
296
  export interface ChannelStreamHandle {
297
297
  update: (text: string) => void;
298
298
  updateReasoning?: (text: string) => void;
299
- updateProgress?: (text: string, stage: string, detail?: string) => void;
300
- setProgress?: (stage: string, detail?: string) => void;
301
299
  end: () => Promise<void>;
302
300
  abort: () => Promise<void>;
303
301
  messageId: () => number | undefined;
@@ -28,7 +28,10 @@ function formatToolArgs(args) {
28
28
  */
29
29
  async function renderStreamToTerminal(agent, message, sessionKey) {
30
30
  const stamped = message.trimStart().startsWith("/") ? message : prependEnvelopeTimestamp(message);
31
- const stream = agent.turnDispatcher.processDirectStreaming(stamped, sessionKey);
31
+ const stream = agent.turnDispatcher.processDirectStreaming(stamped, sessionKey, {
32
+ type: "system",
33
+ source: "cli"
34
+ });
32
35
  let responseText = "";
33
36
  let isFirstToken = true;
34
37
  let isInThinking = false;
@@ -52,7 +52,7 @@ async function checkDatabaseSchema(ctx) {
52
52
  id: "database-schema",
53
53
  label: "Database schema",
54
54
  status: "pass",
55
- message: `SQLite schema v${status.dbVersion} (current release v107).`,
55
+ message: `SQLite schema v${status.dbVersion} (current release v112).`,
56
56
  hints: []
57
57
  };
58
58
  }
@@ -93,11 +93,6 @@ const BASE_RELOAD_RULES = [
93
93
  kind: "restart",
94
94
  description: "Host-header origin fallback"
95
95
  },
96
- {
97
- prefix: "gateway.maxSseConnections",
98
- kind: "restart",
99
- description: "SSE connection limit"
100
- },
101
96
  {
102
97
  prefix: "gateway.channelConnectDeferMode",
103
98
  kind: "restart",
@@ -781,8 +781,8 @@ export declare const WorkspaceConfigSchema: z.ZodOptional<z.ZodObject<{
781
781
  }, z.core.$strip>>;
782
782
  export type WorkspaceConfig = z.infer<typeof WorkspaceConfigSchema>;
783
783
  export declare const GatewayBindModeSchema: z.ZodEnum<{
784
- auto: "auto";
785
784
  custom: "custom";
785
+ auto: "auto";
786
786
  loopback: "loopback";
787
787
  lan: "lan";
788
788
  tailnet: "tailnet";
@@ -796,8 +796,8 @@ export declare const GatewayWebchatConfigSchema: z.ZodDefault<z.ZodObject<{
796
796
  }, z.core.$strip>>;
797
797
  export declare const GatewayConfigSchema: z.ZodDefault<z.ZodObject<{
798
798
  bind: z.ZodOptional<z.ZodEnum<{
799
- auto: "auto";
800
799
  custom: "custom";
800
+ auto: "auto";
801
801
  loopback: "loopback";
802
802
  lan: "lan";
803
803
  tailnet: "tailnet";
@@ -886,7 +886,6 @@ export declare const GatewayConfigSchema: z.ZodDefault<z.ZodObject<{
886
886
  off: "off";
887
887
  }>>;
888
888
  }, z.core.$strip>>>;
889
- maxSseConnections: z.ZodOptional<z.ZodNumber>;
890
889
  corsOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
891
890
  publicUrl: z.ZodOptional<z.ZodString>;
892
891
  dangerouslyAllowHostHeaderOriginFallback: z.ZodOptional<z.ZodBoolean>;
@@ -1930,8 +1929,8 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
1930
1929
  channels: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1931
1930
  gateway: z.ZodDefault<z.ZodObject<{
1932
1931
  bind: z.ZodOptional<z.ZodEnum<{
1933
- auto: "auto";
1934
1932
  custom: "custom";
1933
+ auto: "auto";
1935
1934
  loopback: "loopback";
1936
1935
  lan: "lan";
1937
1936
  tailnet: "tailnet";
@@ -2020,7 +2019,6 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
2020
2019
  off: "off";
2021
2020
  }>>;
2022
2021
  }, z.core.$strip>>>;
2023
- maxSseConnections: z.ZodOptional<z.ZodNumber>;
2024
2022
  corsOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
2025
2023
  publicUrl: z.ZodOptional<z.ZodString>;
2026
2024
  dangerouslyAllowHostHeaderOriginFallback: z.ZodOptional<z.ZodBoolean>;
@@ -465,7 +465,6 @@ activityDetailDefault: z.enum([
465
465
  auth: GatewayAuthSchema.optional(),
466
466
  heartbeat: HeartbeatConfigSchema.optional(),
467
467
  webchat: GatewayWebchatConfigSchema.optional(),
468
- maxSseConnections: z.number().optional(),
469
468
  corsOrigins: z.array(z.string()).optional(),
470
469
  /**
471
470
  * Reverse-proxy publicly reachable URL (e.g. `https://gateway.example.com`).
@@ -639,7 +638,6 @@ activityDetailDefault: z.enum([
639
638
  includeSystemPromptSection: false
640
639
  },
641
640
  webchat: { activityDetailDefault: "on" },
642
- maxSseConnections: 100,
643
641
  corsOrigins: [],
644
642
  skillsMarketplaceProvider: "store",
645
643
  skillsStoreBaseUrl: "https://store.xopc.ai"
@@ -1042,7 +1040,6 @@ workDiscoveryOnboarding: z.boolean().default(true) }).strict().default({ workDis
1042
1040
  includeSystemPromptSection: false
1043
1041
  },
1044
1042
  webchat: { activityDetailDefault: "on" },
1045
- maxSseConnections: 100,
1046
1043
  corsOrigins: [],
1047
1044
  skillsMarketplaceProvider: "store",
1048
1045
  skillsStoreBaseUrl: "https://store.xopc.ai"
@@ -93,7 +93,6 @@ function mergeGatewaySkillsMarketplacePatch(config, patch) {
93
93
  intervalMs: 18e5,
94
94
  includeSystemPromptSection: false
95
95
  },
96
- maxSseConnections: 100,
97
96
  corsOrigins: []
98
97
  };
99
98
  if (parsed.data.skillsMarketplaceProvider !== void 0) config.gateway.skillsMarketplaceProvider = parsed.data.skillsMarketplaceProvider.trim();
@@ -1,7 +1,7 @@
1
- import { listBundleMcpServerCapabilitiesForGateway } from "../agent/mcp/bundle-mcp-materialize.js";
2
1
  import { materializeConnectorMcpServer } from "./materialize.js";
3
2
  import { getConnectorInstance } from "./instances.js";
4
3
  import { getWorkspacePath } from "../config/workspace-path-helpers.js";
4
+ import { listBundleMcpServerCapabilitiesForGateway } from "../agent/mcp/bundle-mcp-gateway.js";
5
5
  //#region src/connectors/health.ts
6
6
  function classifyConnectorHealthError(error) {
7
7
  const message = error instanceof Error ? error.message : String(error);
@@ -0,0 +1,20 @@
1
+ import crypto from 'node:crypto';
2
+ import { type EndpointHelloPayload } from '@xopcai/endpoint-tools-protocol';
3
+ import type { EndpointPrincipal } from '../storage/sqlite/index.js';
4
+ export interface EndpointAuthenticatorDeps {
5
+ getPrincipal(id: string): EndpointPrincipal | undefined;
6
+ bindEndpoint(endpointId: string, principalId: string, boundAt?: number): boolean;
7
+ touchPrincipal(id: string, seenAt?: number): void;
8
+ now?: () => number;
9
+ }
10
+ export declare class EndpointAuthenticationError extends Error {
11
+ }
12
+ export declare function parseEndpointPublicKey(encoded: string): crypto.KeyObject;
13
+ export declare class EndpointAuthenticator {
14
+ private readonly deps;
15
+ private readonly usedNonces;
16
+ private readonly now;
17
+ constructor(deps: EndpointAuthenticatorDeps);
18
+ authenticate(payload: EndpointHelloPayload): EndpointPrincipal;
19
+ private pruneNonces;
20
+ }
@@ -0,0 +1,51 @@
1
+ import { endpointHelloSigningPayload } from "../../packages/endpoint-tools-protocol/src/index.js";
2
+ import crypto from "node:crypto";
3
+ //#region src/endpoint-tools/auth.ts
4
+ const MAX_CLOCK_SKEW_MS = 6e4;
5
+ var EndpointAuthenticationError = class extends Error {};
6
+ function parseEndpointPublicKey(encoded) {
7
+ const key = crypto.createPublicKey({
8
+ key: Buffer.from(encoded, "base64url"),
9
+ format: "der",
10
+ type: "spki"
11
+ });
12
+ if (key.asymmetricKeyType !== "ec" || key.asymmetricKeyDetails?.namedCurve !== "prime256v1") throw new Error("Endpoint public key must be ECDSA P-256");
13
+ return key;
14
+ }
15
+ var EndpointAuthenticator = class {
16
+ usedNonces = /* @__PURE__ */ new Map();
17
+ now;
18
+ constructor(deps) {
19
+ this.deps = deps;
20
+ this.now = deps.now ?? Date.now;
21
+ }
22
+ authenticate(payload) {
23
+ const now = this.now();
24
+ this.pruneNonces(now);
25
+ if (Math.abs(now - payload.signedAt) > MAX_CLOCK_SKEW_MS) throw new EndpointAuthenticationError("Endpoint signature timestamp is outside the allowed window");
26
+ const nonceKey = `${payload.principalId}:${payload.nonce}`;
27
+ if (this.usedNonces.has(nonceKey)) throw new EndpointAuthenticationError("Endpoint hello nonce was already used");
28
+ const principal = this.deps.getPrincipal(payload.principalId);
29
+ if (!principal || principal.revokedAt !== void 0) throw new EndpointAuthenticationError("Endpoint principal is unknown or revoked");
30
+ if (principal.kind !== payload.kind || principal.platform !== payload.platform || principal.displayName !== payload.displayName) throw new EndpointAuthenticationError("Endpoint identity does not match its registered principal");
31
+ let publicKey;
32
+ try {
33
+ publicKey = parseEndpointPublicKey(principal.publicKey);
34
+ } catch (error) {
35
+ throw new EndpointAuthenticationError("Endpoint principal public key is invalid", { cause: error });
36
+ }
37
+ if (!crypto.verify("sha256", Buffer.from(endpointHelloSigningPayload(payload), "utf8"), {
38
+ key: publicKey,
39
+ dsaEncoding: "ieee-p1363"
40
+ }, Buffer.from(payload.signature, "base64url"))) throw new EndpointAuthenticationError("Endpoint hello signature is invalid");
41
+ if (!this.deps.bindEndpoint(payload.endpointId, principal.id, now)) throw new EndpointAuthenticationError("Endpoint instance belongs to another principal");
42
+ this.usedNonces.set(nonceKey, now + MAX_CLOCK_SKEW_MS);
43
+ this.deps.touchPrincipal(principal.id, now);
44
+ return principal;
45
+ }
46
+ pruneNonces(now) {
47
+ for (const [key, expiresAt] of this.usedNonces) if (expiresAt <= now) this.usedNonces.delete(key);
48
+ }
49
+ };
50
+ //#endregion
51
+ export { EndpointAuthenticationError, EndpointAuthenticator, parseEndpointPublicKey };
@@ -0,0 +1,5 @@
1
+ export { EndpointToolRuntime } from './runtime.js';
2
+ export { EndpointInvocationService, EndpointToolExecutionError, type EndpointInvocationAuditSink, type EndpointInvocationResult, } from './invocation-service.js';
3
+ export { EndpointToolPolicy, EndpointToolPolicyError } from './policy.js';
4
+ export { EndpointRegistry, endpointToolRevision, type EndpointConnectionSnapshot, type RegisteredEndpointTool, } from './registry.js';
5
+ export { EndpointUploadError, EndpointUploadService, ENDPOINT_UPLOAD_MAX_BYTES, type EndpointUploadedFile, type EndpointUploadGrant, } from './upload-service.js';
@@ -0,0 +1,6 @@
1
+ import { EndpointToolPolicy, EndpointToolPolicyError } from "./policy.js";
2
+ import { EndpointInvocationService, EndpointToolExecutionError } from "./invocation-service.js";
3
+ import { EndpointRegistry, endpointToolRevision } from "./registry.js";
4
+ import { ENDPOINT_UPLOAD_MAX_BYTES, EndpointUploadError, EndpointUploadService } from "./upload-service.js";
5
+ import { EndpointToolRuntime } from "./runtime.js";
6
+ export { ENDPOINT_UPLOAD_MAX_BYTES, EndpointInvocationService, EndpointRegistry, EndpointToolExecutionError, EndpointToolPolicy, EndpointToolPolicyError, EndpointToolRuntime, EndpointUploadError, EndpointUploadService, endpointToolRevision };
@@ -0,0 +1,68 @@
1
+ import { type ClientEndpointMessage, type EndpointToolContent, type EndpointToolErrorCode } from '@xopcai/endpoint-tools-protocol';
2
+ import { EndpointRegistry } from './registry.js';
3
+ import { EndpointToolPolicy } from './policy.js';
4
+ import type { EndpointUploadService } from './upload-service.js';
5
+ type ToolClientMessage = Exclude<ClientEndpointMessage, {
6
+ type: `endpoint.${string}`;
7
+ }>;
8
+ export interface EndpointInvocationAuditSink {
9
+ started(params: {
10
+ id: string;
11
+ principalId: string;
12
+ endpointId: string;
13
+ toolCallId: string;
14
+ toolName: string;
15
+ effect: 'read' | 'write' | 'destructive';
16
+ confirmationRequired: boolean;
17
+ argumentsSha256: string;
18
+ startedAt: number;
19
+ }): void;
20
+ finished(params: {
21
+ id: string;
22
+ status: 'succeeded' | 'failed';
23
+ errorCode?: EndpointToolErrorCode;
24
+ errorMessage?: string;
25
+ completedAt: number;
26
+ }): void;
27
+ }
28
+ export interface EndpointInvocationServiceOptions {
29
+ audit?: EndpointInvocationAuditSink;
30
+ uploads?: EndpointUploadService;
31
+ policy?: EndpointToolPolicy;
32
+ }
33
+ export interface EndpointInvocationResult {
34
+ content: EndpointToolContent[];
35
+ details?: Record<string, unknown>;
36
+ }
37
+ export declare class EndpointToolExecutionError extends Error {
38
+ readonly code: EndpointToolErrorCode;
39
+ constructor(code: EndpointToolErrorCode, message: string);
40
+ }
41
+ export declare class EndpointInvocationService {
42
+ private readonly registry;
43
+ private readonly options;
44
+ private readonly pending;
45
+ private readonly policy;
46
+ constructor(registry: EndpointRegistry, options?: EndpointInvocationServiceOptions);
47
+ invoke(params: {
48
+ endpointId: string;
49
+ toolCallId: string;
50
+ toolName: string;
51
+ arguments: Record<string, unknown>;
52
+ descriptorRevision: string;
53
+ signal?: AbortSignal;
54
+ onProgress?: (progress: {
55
+ message?: string;
56
+ percent?: number;
57
+ }) => void;
58
+ }): Promise<EndpointInvocationResult>;
59
+ handleMessage(endpointId: string, message: ToolClientMessage): void;
60
+ failEndpoint(endpointId: string): void;
61
+ close(): void;
62
+ private cancel;
63
+ private succeed;
64
+ private fail;
65
+ private take;
66
+ private error;
67
+ }
68
+ export {};