@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
@@ -0,0 +1,25 @@
1
+ import type { EndpointEffect, EndpointToolErrorCode } from '@xopcai/endpoint-tools-protocol';
2
+ export interface EndpointToolInvocationAudit {
3
+ id: string;
4
+ principalId: string;
5
+ endpointId: string;
6
+ toolCallId: string;
7
+ toolName: string;
8
+ effect: EndpointEffect;
9
+ confirmationRequired: boolean;
10
+ argumentsSha256: string;
11
+ status: 'running' | 'succeeded' | 'failed';
12
+ errorCode?: EndpointToolErrorCode;
13
+ errorMessage?: string;
14
+ startedAt: number;
15
+ completedAt?: number;
16
+ }
17
+ export declare function startEndpointToolInvocationAudit(audit: Omit<EndpointToolInvocationAudit, 'status' | 'completedAt' | 'errorCode' | 'errorMessage'>): void;
18
+ export declare function finishEndpointToolInvocationAudit(params: {
19
+ id: string;
20
+ status: 'succeeded' | 'failed';
21
+ errorCode?: EndpointToolErrorCode;
22
+ errorMessage?: string;
23
+ completedAt?: number;
24
+ }): void;
25
+ export declare function listEndpointToolInvocationAudits(limit?: number): EndpointToolInvocationAudit[];
@@ -0,0 +1,42 @@
1
+ import { getSqliteDatabase } from "./transaction.js";
2
+ //#region src/storage/sqlite/endpoint-tool-invocation-repository.ts
3
+ function fromRow(row) {
4
+ return {
5
+ id: row.id,
6
+ principalId: row.principal_id,
7
+ endpointId: row.endpoint_id,
8
+ toolCallId: row.tool_call_id,
9
+ toolName: row.tool_name,
10
+ effect: row.effect,
11
+ confirmationRequired: row.confirmation_required === 1,
12
+ argumentsSha256: row.arguments_sha256,
13
+ status: row.status,
14
+ ...row.error_code === null ? {} : { errorCode: row.error_code },
15
+ ...row.error_message === null ? {} : { errorMessage: row.error_message },
16
+ startedAt: row.started_at,
17
+ ...row.completed_at === null ? {} : { completedAt: row.completed_at }
18
+ };
19
+ }
20
+ function startEndpointToolInvocationAudit(audit) {
21
+ getSqliteDatabase().prepare(`
22
+ INSERT INTO endpoint_tool_invocations (
23
+ id, principal_id, endpoint_id, tool_call_id, tool_name, effect,
24
+ confirmation_required, arguments_sha256, status, started_at
25
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'running', ?)
26
+ `).run(audit.id, audit.principalId, audit.endpointId, audit.toolCallId, audit.toolName, audit.effect, audit.confirmationRequired ? 1 : 0, audit.argumentsSha256, audit.startedAt);
27
+ }
28
+ function finishEndpointToolInvocationAudit(params) {
29
+ getSqliteDatabase().prepare(`
30
+ UPDATE endpoint_tool_invocations
31
+ SET status = ?, error_code = ?, error_message = ?, completed_at = ?
32
+ WHERE id = ? AND status = 'running'
33
+ `).run(params.status, params.errorCode ?? null, params.errorMessage?.slice(0, 2e3) ?? null, params.completedAt ?? Date.now(), params.id);
34
+ }
35
+ function listEndpointToolInvocationAudits(limit = 100) {
36
+ const boundedLimit = Math.max(1, Math.min(500, Math.trunc(limit)));
37
+ return getSqliteDatabase().prepare(`
38
+ SELECT * FROM endpoint_tool_invocations ORDER BY started_at DESC LIMIT ?
39
+ `).all(boundedLimit).map(fromRow);
40
+ }
41
+ //#endregion
42
+ export { finishEndpointToolInvocationAudit, listEndpointToolInvocationAudits, startEndpointToolInvocationAudit };
@@ -12,6 +12,8 @@ export { acknowledgeHomeAttention, isHomeAttentionAcknowledged, type HomeAttenti
12
12
  export { getUserClaim, linkUserClaimMemoryRecord, listUserClaimEvidence, listUserClaimStatsBySource, listUserClaims, listUserPeopleGraphRows, removeUserClaimEvidenceForSource, reinforceUserClaim, resolveUserEntity, setUserClaimDecision, type UserClaim, type UserClaimClass, type UserClaimState, type UserEntity, } from './user-claims-repository.js';
13
13
  export { claimNextConnectorLearningJob, enqueueConnectorLearningJob, listConnectorLearningJobs, recoverStaleConnectorLearningJobs, setConnectorLearningPaused, updateConnectorLearningJob, type ConnectorLearningJob, type ConnectorLearningMode, type ConnectorLearningPhase, type ConnectorLearningStatus, } from './connector-learning-repository.js';
14
14
  export { appendComposerInputHistory, clearComposerInputHistory, listComposerInputHistory, COMPOSER_INPUT_HISTORY_LIMIT, type ComposerInputHistoryItem, } from './composer-input-history-repository.js';
15
+ export { bindEndpointPrincipal, createEndpointPrincipal, getEndpointPrincipal, listEndpointPrincipals, revokeEndpointPrincipal, touchEndpointPrincipal, type EndpointPrincipal, } from './endpoint-principal-repository.js';
16
+ export { finishEndpointToolInvocationAudit, listEndpointToolInvocationAudits, startEndpointToolInvocationAudit, type EndpointToolInvocationAudit, } from './endpoint-tool-invocation-repository.js';
15
17
  export { getInteractionState, setInteractionState, updateInteractionStateFromMessage, type InteractionState, } from './interaction-state-repository.js';
16
18
  export { getSessionTaskPlan, setSessionTaskPlan, type SessionTaskPlan, type SessionTaskPlanItem, type SessionTaskPlanItemStatus, } from './session-task-plan-repository.js';
17
19
  export { buildRelationshipPrompt, getRelationshipSettings, isProactiveSupportAllowed, updateRelationshipSettings, type RelationshipSettings, type SupportMode, } from './relationship-settings-repository.js';
@@ -13,6 +13,8 @@ import { acknowledgeHomeAttention, isHomeAttentionAcknowledged } from "./home-at
13
13
  import { getUserClaim, linkUserClaimMemoryRecord, listUserClaimEvidence, listUserClaimStatsBySource, listUserClaims, listUserPeopleGraphRows, reinforceUserClaim, removeUserClaimEvidenceForSource, resolveUserEntity, setUserClaimDecision } from "./user-claims-repository.js";
14
14
  import { claimNextConnectorLearningJob, enqueueConnectorLearningJob, listConnectorLearningJobs, recoverStaleConnectorLearningJobs, setConnectorLearningPaused, updateConnectorLearningJob } from "./connector-learning-repository.js";
15
15
  import { COMPOSER_INPUT_HISTORY_LIMIT, appendComposerInputHistory, clearComposerInputHistory, listComposerInputHistory } from "./composer-input-history-repository.js";
16
+ import { bindEndpointPrincipal, createEndpointPrincipal, getEndpointPrincipal, listEndpointPrincipals, revokeEndpointPrincipal, touchEndpointPrincipal } from "./endpoint-principal-repository.js";
17
+ import { finishEndpointToolInvocationAudit, listEndpointToolInvocationAudits, startEndpointToolInvocationAudit } from "./endpoint-tool-invocation-repository.js";
16
18
  import { getInteractionState, setInteractionState, updateInteractionStateFromMessage } from "./interaction-state-repository.js";
17
19
  import { buildDefaultSessionMetadata } from "./session-metadata.js";
18
20
  import { buildGlobalSessionStats, classifyStoredRow, estimateTokensFromMessages, extractFtsContent, metadataToSessionInsert, sessionConfigRowToConfig, sessionRowToMetadata, transcriptEntryRowToStoredRow } from "./row-mappers.js";
@@ -32,4 +34,4 @@ import { getConnectorSyncPolicy, getConnectorSyncPolicyForConnection, listConnec
32
34
  import { getUserTrustPolicy, setUserTrustPolicy } from "./user-trust-repository.js";
33
35
  import { consumeMemoryReferenceConsent, decideMemoryReferenceConsent, ensureMemoryReferenceConsentRequest, hasMemoryReferenceConsent, listMemoryReferenceConsents, revokeMemoryReferenceConsent } from "./memory-reference-consent-repository.js";
34
36
  import { getUserProfilePromptState, setUserProfilePromptState } from "./user-profile-setup-repository.js";
35
- export { COMPOSER_INPUT_HISTORY_LIMIT, DatabaseSchemaMigrationGapError, DatabaseSchemaTooNewError, SCHEMA_META_SCHEMA_VERSION_KEY, USER_UNDERSTANDING_REMEDIATION_POLICY, XOPC_DB_BASELINE_SCHEMA_VERSION, XOPC_DB_FILENAME, XOPC_DB_SCHEMA_VERSION, acknowledgeHomeAttention, appendCompactionBoundary, appendComposerInputHistory, appendConnectorExecutionAudit, appendMemorySignal, appendMemoryTraceEvent, appendTranscriptEntry, applyPendingMigrations, attachMemoryEvidence, buildDefaultSessionMetadata, buildGlobalSessionStats, buildRelationshipPrompt, cancelQueuedSessionInput, claimConnectorWebhookDelivery, claimKnowledgeSourceItems, claimNextConnectorLearningJob, claimNextSessionInput, classifyStoredRow, clearComposerInputHistory, closeXopcDatabase, completeConnectorWebhookDelivery, completeKnowledgeSourceItemSynthesis, consumeConnectorApproval, consumeMemoryReferenceConsent, createConnectorApproval, createObjectLinkRecord, decideConnectorApproval, decideMemoryReferenceConsent, deleteConnectorConnection, deleteConnectorInstallation, deleteMemoryEvidenceForRecord, deleteMemoryRecord, deleteNoteAgentContextRecord, deleteNoteRecord, deleteObjectLinkRecord, deleteSessionConfig, deleteSessionRecord, discoverSqlMigrations, enqueueConnectorLearningJob, ensureMemoryReferenceConsentRequest, ensureSessionRecord, ensureXopcDatabaseSchema, estimateTokensFromMessages, extractFtsContent, findSessionInput, findSessionKeyBySessionId, finishDreamingRun, finishKnowledgeSyncRun, finishSessionInputRun, getActivityEventRecord, getCachedConnectorCatalogEntry, getConnectorAccount, getConnectorApproval, getConnectorConnection, getConnectorInstallation, getConnectorSyncPolicy, getConnectorSyncPolicyForConnection, getCurrentSessionId, getDreamingRun, getGlobalSessionStats, getInteractionState, getKnowledgeConsumerWatermark, getKnowledgeSourceCursor, getKnowledgeSourceItem, getMemoryProviderState, getMemoryReadiness, getMemoryRecord, getMemoryTurnFeedback, getNoteAgentContextRecord, getNoteRecord, getRelationshipSettings, getSessionConfig, getSessionInputState, getSessionMetadata, getSessionPersistedLevels, getSessionTaskPlan, getSqliteDatabase, getUserClaim, getUserProfilePromptState, getUserTrustPolicy, getXopcDatabase, hasMemoryReferenceConsent, hasSessionConfig, hasUnresolvedMemoryConflict, incrementSessionStatsOnAppend, insertSessionInput, inspectSchemaMigrationStatus, isHomeAttentionAcknowledged, isProactiveSupportAllowed, isXopcDatabaseOpen, linkUserClaimMemoryRecord, listActivityRecords, listCachedConnectorCatalogEntries, listCompactionBoundaries, listComposerInputHistory, listConnectorAccounts, listConnectorActionMetadata, listConnectorApprovals, listConnectorConnections, listConnectorExecutionAudit, listConnectorInstallations, listConnectorLearningJobs, listConnectorSyncPolicies, listDreamingDecisions, listDreamingRuns, listKnowledgeSourceChanges, listKnowledgeSourceItems, listKnowledgeSyncRuns, listMemoryEvidence, listMemoryRecords, listMemoryReferenceConsents, listMemorySignals, listMemoryTraceEvents, listNoteRecords, listObjectActivityRecords, listObjectLinkRecords, listProjectActivityRecords, listRegisteredMigrationTargets, listSessionMetadata, listSessionsByAgent, listUserClaimEvidence, listUserClaimStatsBySource, listUserClaims, listUserPeopleGraphRows, loadLlmMessagesForSession, loadTranscriptHistoryRowsForSession, loadTranscriptRows, loadTranscriptRowsForSession, markMemoryRecordsConflicted, metadataToSessionInsert, mutateQueuedSessionInput, openXopcDatabase, paginateTranscriptMessages, patchSessionMetadata, pruneBoundedKnowledgeSourceItems, readSchemaVersion, readSchemaVersionForTest, reconcileConnectorAccount, recordActivityEvent, recordDreamingDecision, recoverSessionInputState, recoverStaleConnectorLearningJobs, refreshConnectorAccountCurrent, reinforceUserClaim, releaseConnectorWebhookDelivery, removeUserClaimEvidenceForSource, replaceConnectorCatalogEntries, replaceTranscriptRows, requireXopcDatabase, resetSessionRecord, resetXopcDatabaseSingletonForTest, resolveMigrationsDir, resolveSessionAgentId, resolveUserEntity, resolveXopcDatabasePath, restoreBeforeCompactionBoundary, revokeMemoryReferenceConsent, runSqliteWriteTransaction, searchMemoryRecords, sessionConfigRowToConfig, sessionRowToMetadata, setConnectorLearningPaused, setInteractionState, setKnowledgeConsumerWatermark, setKnowledgeSourceCursor, setKnowledgeSourceItemSynthesisStatus, setMemoryProviderState, setMemoryRecordStatus, setMemoryTurnFeedback, setSessionConfig, setSessionInputStatus, setSessionTaskPlan, setUserClaimDecision, setUserProfilePromptState, setUserTrustPolicy, startDreamingRun, startKnowledgeSyncRun, summarizeMemoryRecallFeedback, summarizeUserUnderstandingQuality, transcriptEntryRowToStoredRow, updateConnectorLearningJob, updateInteractionStateFromMessage, updateRelationshipSettings, updateSessionConfig, updateSessionStats, upsertConnectorActionMetadata, upsertConnectorCatalogEntry, upsertConnectorConnection, upsertConnectorInstallation, upsertConnectorSyncPolicy, upsertKnowledgeSourceItems, upsertMemoryRecord, upsertNoteAgentContextRecord, upsertNoteRecord };
37
+ export { COMPOSER_INPUT_HISTORY_LIMIT, DatabaseSchemaMigrationGapError, DatabaseSchemaTooNewError, SCHEMA_META_SCHEMA_VERSION_KEY, USER_UNDERSTANDING_REMEDIATION_POLICY, XOPC_DB_BASELINE_SCHEMA_VERSION, XOPC_DB_FILENAME, XOPC_DB_SCHEMA_VERSION, acknowledgeHomeAttention, appendCompactionBoundary, appendComposerInputHistory, appendConnectorExecutionAudit, appendMemorySignal, appendMemoryTraceEvent, appendTranscriptEntry, applyPendingMigrations, attachMemoryEvidence, bindEndpointPrincipal, buildDefaultSessionMetadata, buildGlobalSessionStats, buildRelationshipPrompt, cancelQueuedSessionInput, claimConnectorWebhookDelivery, claimKnowledgeSourceItems, claimNextConnectorLearningJob, claimNextSessionInput, classifyStoredRow, clearComposerInputHistory, closeXopcDatabase, completeConnectorWebhookDelivery, completeKnowledgeSourceItemSynthesis, consumeConnectorApproval, consumeMemoryReferenceConsent, createConnectorApproval, createEndpointPrincipal, createObjectLinkRecord, decideConnectorApproval, decideMemoryReferenceConsent, deleteConnectorConnection, deleteConnectorInstallation, deleteMemoryEvidenceForRecord, deleteMemoryRecord, deleteNoteAgentContextRecord, deleteNoteRecord, deleteObjectLinkRecord, deleteSessionConfig, deleteSessionRecord, discoverSqlMigrations, enqueueConnectorLearningJob, ensureMemoryReferenceConsentRequest, ensureSessionRecord, ensureXopcDatabaseSchema, estimateTokensFromMessages, extractFtsContent, findSessionInput, findSessionKeyBySessionId, finishDreamingRun, finishEndpointToolInvocationAudit, finishKnowledgeSyncRun, finishSessionInputRun, getActivityEventRecord, getCachedConnectorCatalogEntry, getConnectorAccount, getConnectorApproval, getConnectorConnection, getConnectorInstallation, getConnectorSyncPolicy, getConnectorSyncPolicyForConnection, getCurrentSessionId, getDreamingRun, getEndpointPrincipal, getGlobalSessionStats, getInteractionState, getKnowledgeConsumerWatermark, getKnowledgeSourceCursor, getKnowledgeSourceItem, getMemoryProviderState, getMemoryReadiness, getMemoryRecord, getMemoryTurnFeedback, getNoteAgentContextRecord, getNoteRecord, getRelationshipSettings, getSessionConfig, getSessionInputState, getSessionMetadata, getSessionPersistedLevels, getSessionTaskPlan, getSqliteDatabase, getUserClaim, getUserProfilePromptState, getUserTrustPolicy, getXopcDatabase, hasMemoryReferenceConsent, hasSessionConfig, hasUnresolvedMemoryConflict, incrementSessionStatsOnAppend, insertSessionInput, inspectSchemaMigrationStatus, isHomeAttentionAcknowledged, isProactiveSupportAllowed, isXopcDatabaseOpen, linkUserClaimMemoryRecord, listActivityRecords, listCachedConnectorCatalogEntries, listCompactionBoundaries, listComposerInputHistory, listConnectorAccounts, listConnectorActionMetadata, listConnectorApprovals, listConnectorConnections, listConnectorExecutionAudit, listConnectorInstallations, listConnectorLearningJobs, listConnectorSyncPolicies, listDreamingDecisions, listDreamingRuns, listEndpointPrincipals, listEndpointToolInvocationAudits, listKnowledgeSourceChanges, listKnowledgeSourceItems, listKnowledgeSyncRuns, listMemoryEvidence, listMemoryRecords, listMemoryReferenceConsents, listMemorySignals, listMemoryTraceEvents, listNoteRecords, listObjectActivityRecords, listObjectLinkRecords, listProjectActivityRecords, listRegisteredMigrationTargets, listSessionMetadata, listSessionsByAgent, listUserClaimEvidence, listUserClaimStatsBySource, listUserClaims, listUserPeopleGraphRows, loadLlmMessagesForSession, loadTranscriptHistoryRowsForSession, loadTranscriptRows, loadTranscriptRowsForSession, markMemoryRecordsConflicted, metadataToSessionInsert, mutateQueuedSessionInput, openXopcDatabase, paginateTranscriptMessages, patchSessionMetadata, pruneBoundedKnowledgeSourceItems, readSchemaVersion, readSchemaVersionForTest, reconcileConnectorAccount, recordActivityEvent, recordDreamingDecision, recoverSessionInputState, recoverStaleConnectorLearningJobs, refreshConnectorAccountCurrent, reinforceUserClaim, releaseConnectorWebhookDelivery, removeUserClaimEvidenceForSource, replaceConnectorCatalogEntries, replaceTranscriptRows, requireXopcDatabase, resetSessionRecord, resetXopcDatabaseSingletonForTest, resolveMigrationsDir, resolveSessionAgentId, resolveUserEntity, resolveXopcDatabasePath, restoreBeforeCompactionBoundary, revokeEndpointPrincipal, revokeMemoryReferenceConsent, runSqliteWriteTransaction, searchMemoryRecords, sessionConfigRowToConfig, sessionRowToMetadata, setConnectorLearningPaused, setInteractionState, setKnowledgeConsumerWatermark, setKnowledgeSourceCursor, setKnowledgeSourceItemSynthesisStatus, setMemoryProviderState, setMemoryRecordStatus, setMemoryTurnFeedback, setSessionConfig, setSessionInputStatus, setSessionTaskPlan, setUserClaimDecision, setUserProfilePromptState, setUserTrustPolicy, startDreamingRun, startEndpointToolInvocationAudit, startKnowledgeSyncRun, summarizeMemoryRecallFeedback, summarizeUserUnderstandingQuality, touchEndpointPrincipal, transcriptEntryRowToStoredRow, updateConnectorLearningJob, updateInteractionStateFromMessage, updateRelationshipSettings, updateSessionConfig, updateSessionStats, upsertConnectorActionMetadata, upsertConnectorCatalogEntry, upsertConnectorConnection, upsertConnectorInstallation, upsertConnectorSyncPolicy, upsertKnowledgeSourceItems, upsertMemoryRecord, upsertNoteAgentContextRecord, upsertNoteRecord };
@@ -79,6 +79,7 @@ function parseSource(json) {
79
79
  function rowToRecord(row) {
80
80
  return {
81
81
  id: row.record_id,
82
+ providerId: row.provider_id,
82
83
  kind: row.kind,
83
84
  status: row.status,
84
85
  ...row.canonical_key ? { canonicalKey: row.canonical_key } : {},
@@ -191,6 +192,7 @@ function upsertMemoryRecord(input) {
191
192
  });
192
193
  return {
193
194
  id,
195
+ providerId: input.providerId,
194
196
  kind: input.kind,
195
197
  status,
196
198
  ...input.canonicalKey ? { canonicalKey: input.canonicalKey } : {},
@@ -351,7 +353,7 @@ function searchMemoryRecords(options) {
351
353
  score: memoryLexicalSimilarity(options.query, record.content),
352
354
  snippet: record.content,
353
355
  citation: {
354
- providerId: record.source.provider ?? options.providerId ?? "local",
356
+ providerId: record.providerId,
355
357
  recordId: record.id,
356
358
  path: record.source.path,
357
359
  lineStart: record.source.lineStart,
@@ -0,0 +1,18 @@
1
+ UPDATE memory_records
2
+ SET provider_id = 'local'
3
+ WHERE provider_id IN ('personal-context', 'connected-understanding')
4
+ AND EXISTS (
5
+ SELECT 1
6
+ FROM json_each(memory_records.tags_json)
7
+ WHERE json_each.value = 'user-understanding'
8
+ );
9
+
10
+ DELETE FROM memory_records_fts;
11
+
12
+ INSERT INTO memory_records_fts (
13
+ content, record_id, provider_id, kind, user_id, source_agent_id, workspace_id
14
+ )
15
+ SELECT
16
+ content, record_id, provider_id, kind, user_id, source_agent_id, workspace_id
17
+ FROM memory_records
18
+ WHERE trim(content) <> '';
@@ -0,0 +1,14 @@
1
+ CREATE TABLE endpoint_principals (
2
+ id TEXT PRIMARY KEY,
3
+ kind TEXT NOT NULL CHECK(kind IN ('web', 'desktop', 'mobile')),
4
+ display_name TEXT NOT NULL,
5
+ platform TEXT NOT NULL,
6
+ public_key TEXT NOT NULL,
7
+ created_at INTEGER NOT NULL,
8
+ last_seen_at INTEGER,
9
+ revoked_at INTEGER
10
+ );
11
+
12
+ CREATE INDEX idx_endpoint_principals_active
13
+ ON endpoint_principals(kind, last_seen_at DESC)
14
+ WHERE revoked_at IS NULL;
@@ -0,0 +1,43 @@
1
+ DROP INDEX idx_session_inputs_pending;
2
+
3
+ CREATE TABLE session_inputs_v110 (
4
+ id TEXT PRIMARY KEY,
5
+ session_key TEXT NOT NULL,
6
+ client_message_id TEXT NOT NULL,
7
+ requested_delivery TEXT NOT NULL CHECK (requested_delivery IN ('next', 'steer')),
8
+ effective_delivery TEXT NOT NULL CHECK (effective_delivery IN ('next', 'steer')),
9
+ status TEXT NOT NULL CHECK (status IN (
10
+ 'queued', 'running', 'injecting',
11
+ 'completed', 'cancelled', 'failed', 'interrupted'
12
+ )),
13
+ content TEXT NOT NULL,
14
+ attachments_json TEXT,
15
+ thinking TEXT,
16
+ origin_json TEXT NOT NULL,
17
+ position INTEGER NOT NULL,
18
+ target_run_id TEXT,
19
+ run_id TEXT,
20
+ version INTEGER NOT NULL DEFAULT 1,
21
+ error TEXT,
22
+ created_at_ms INTEGER NOT NULL,
23
+ updated_at_ms INTEGER NOT NULL,
24
+ UNIQUE(session_key, client_message_id)
25
+ );
26
+
27
+ INSERT INTO session_inputs_v110 (
28
+ id, session_key, client_message_id, requested_delivery, effective_delivery,
29
+ status, content, attachments_json, thinking, origin_json, position,
30
+ target_run_id, run_id, version, error, created_at_ms, updated_at_ms
31
+ )
32
+ SELECT
33
+ id, session_key, client_message_id, requested_delivery, effective_delivery,
34
+ status, content, attachments_json, thinking,
35
+ '{"type":"system","source":"internal"}', position,
36
+ target_run_id, run_id, version, error, created_at_ms, updated_at_ms
37
+ FROM session_inputs;
38
+
39
+ DROP TABLE session_inputs;
40
+ ALTER TABLE session_inputs_v110 RENAME TO session_inputs;
41
+
42
+ CREATE INDEX idx_session_inputs_pending
43
+ ON session_inputs(session_key, status, position, created_at_ms);
@@ -0,0 +1,18 @@
1
+ CREATE TABLE endpoint_tool_invocations (
2
+ id TEXT PRIMARY KEY,
3
+ principal_id TEXT NOT NULL,
4
+ endpoint_id TEXT NOT NULL,
5
+ tool_call_id TEXT NOT NULL,
6
+ tool_name TEXT NOT NULL,
7
+ effect TEXT NOT NULL CHECK(effect IN ('read', 'write', 'destructive')),
8
+ confirmation_required INTEGER NOT NULL CHECK(confirmation_required IN (0, 1)),
9
+ arguments_sha256 TEXT NOT NULL,
10
+ status TEXT NOT NULL CHECK(status IN ('running', 'succeeded', 'failed')),
11
+ error_code TEXT,
12
+ error_message TEXT,
13
+ started_at INTEGER NOT NULL,
14
+ completed_at INTEGER
15
+ );
16
+
17
+ CREATE INDEX idx_endpoint_tool_invocations_endpoint_started
18
+ ON endpoint_tool_invocations(endpoint_id, started_at DESC);
@@ -0,0 +1,8 @@
1
+ CREATE TABLE endpoint_instance_bindings (
2
+ endpoint_id TEXT PRIMARY KEY,
3
+ principal_id TEXT NOT NULL REFERENCES endpoint_principals(id),
4
+ bound_at INTEGER NOT NULL
5
+ );
6
+
7
+ CREATE INDEX idx_endpoint_instance_bindings_principal
8
+ ON endpoint_instance_bindings(principal_id);
@@ -3,7 +3,7 @@ import type { ApplyMigrationsOptions } from './types.js';
3
3
  /** Baseline schema version applied from schema.sql on first open. */
4
4
  export declare const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
5
5
  /** Latest schema version this release supports (increment when adding migrations). */
6
- export declare const XOPC_DB_SCHEMA_VERSION = 107;
6
+ export declare const XOPC_DB_SCHEMA_VERSION = 112;
7
7
  export declare function resolveMigrationsDir(override?: string): string;
8
8
  /**
9
9
  * Apply sequential SQL migrations from (currentVersion + 1) through targetVersion.
@@ -12,7 +12,7 @@ const log = createLogger("Sqlite:Migrations");
12
12
  /** Baseline schema version applied from schema.sql on first open. */
13
13
  const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
14
14
  /** Latest schema version this release supports (increment when adding migrations). */
15
- const XOPC_DB_SCHEMA_VERSION = 107;
15
+ const XOPC_DB_SCHEMA_VERSION = 112;
16
16
  const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
17
17
  function backupBeforeTaskCutover(db, databasePath) {
18
18
  db.exec("PRAGMA wal_checkpoint(FULL)");
@@ -57,7 +57,7 @@ function applySingleMigration(db, migration) {
57
57
  * Each step runs in its own transaction and updates schema_meta on success.
58
58
  */
59
59
  function applyPendingMigrations(db, options = {}) {
60
- const targetVersion = options.targetVersion ?? 107;
60
+ const targetVersion = options.targetVersion ?? 112;
61
61
  let currentVersion = readSchemaVersion(db);
62
62
  if (currentVersion > targetVersion) throw new DatabaseSchemaTooNewError(currentVersion, targetVersion);
63
63
  if (currentVersion >= targetVersion) return currentVersion;
@@ -94,7 +94,7 @@ function applyPendingMigrations(db, options = {}) {
94
94
  }
95
95
  /** Inspect schema version without mutating the database. */
96
96
  function inspectSchemaMigrationStatus(db, options = {}) {
97
- const appVersion = options.targetVersion ?? 107;
97
+ const appVersion = options.targetVersion ?? 112;
98
98
  const dbVersion = readSchemaVersion(db);
99
99
  if (dbVersion > appVersion) return {
100
100
  dbVersion,
@@ -19,7 +19,7 @@ const log = createLogger('Sqlite:Migrations');
19
19
  export const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
20
20
 
21
21
  /** Latest schema version this release supports (increment when adding migrations). */
22
- export const XOPC_DB_SCHEMA_VERSION = 107;
22
+ export const XOPC_DB_SCHEMA_VERSION = 112;
23
23
 
24
24
  const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
25
25
 
@@ -32,7 +32,7 @@ function ensureXopcDatabaseSchema(db, options = {}) {
32
32
  currentVersion = 11;
33
33
  }
34
34
  applyPendingMigrations(db, {
35
- targetVersion: 107,
35
+ targetVersion: 112,
36
36
  databasePath: options.databasePath
37
37
  });
38
38
  }
@@ -1,3 +1,4 @@
1
+ import { type TurnOrigin } from '@xopcai/endpoint-tools-protocol';
1
2
  export type SessionInputDelivery = 'next' | 'steer';
2
3
  export type SessionInputStatus = 'queued' | 'running' | 'injecting' | 'completed' | 'cancelled' | 'failed' | 'interrupted';
3
4
  export type SessionInput = {
@@ -10,6 +11,7 @@ export type SessionInput = {
10
11
  content: string;
11
12
  attachments?: unknown[];
12
13
  thinking?: string;
14
+ origin: TurnOrigin;
13
15
  position: number;
14
16
  targetRunId?: string;
15
17
  runId?: string;
@@ -37,6 +39,7 @@ export declare function insertSessionInput(input: {
37
39
  content: string;
38
40
  attachments?: unknown[];
39
41
  thinking?: string;
42
+ origin: TurnOrigin;
40
43
  targetRunId?: string;
41
44
  }): SessionInput;
42
45
  export declare function claimNextSessionInput(sessionKey: string, runId: string): SessionInput | undefined;
@@ -1,4 +1,5 @@
1
1
  import { getSqliteDatabase, runSqliteWriteTransaction } from "./transaction.js";
2
+ import { turnOriginSchema } from "../../../packages/endpoint-tools-protocol/src/index.js";
2
3
  //#region src/storage/sqlite/session-input-repository.ts
3
4
  function mapInput(row) {
4
5
  return {
@@ -12,6 +13,7 @@ function mapInput(row) {
12
13
  attachments: row.attachments_json ? JSON.parse(row.attachments_json) : void 0,
13
14
  thinking: row.thinking ?? void 0,
14
15
  position: row.position,
16
+ origin: turnOriginSchema.parse(JSON.parse(row.origin_json)),
15
17
  targetRunId: row.target_run_id ?? void 0,
16
18
  runId: row.run_id ?? void 0,
17
19
  version: row.version,
@@ -21,7 +23,7 @@ function mapInput(row) {
21
23
  };
22
24
  }
23
25
  const SELECT_INPUTS = `SELECT id, session_key, client_message_id, requested_delivery,
24
- effective_delivery, status, content, attachments_json, thinking, position,
26
+ effective_delivery, status, content, attachments_json, thinking, origin_json, position,
25
27
  target_run_id, run_id, version, error, created_at_ms, updated_at_ms
26
28
  FROM session_inputs`;
27
29
  function ensureRuntime(db, sessionKey) {
@@ -61,8 +63,8 @@ function insertSessionInput(input) {
61
63
  WHERE session_key = ? AND status IN ('queued','running','injecting','interrupted')`).get(input.sessionKey);
62
64
  db.prepare(`INSERT INTO session_inputs(id, session_key, client_message_id,
63
65
  requested_delivery, effective_delivery, status, content, attachments_json,
64
- thinking, position, target_run_id, version, created_at_ms, updated_at_ms)
65
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?)`).run(input.id, input.sessionKey, input.clientMessageId, input.requestedDelivery, input.effectiveDelivery, input.status, input.content, input.attachments ? JSON.stringify(input.attachments) : null, input.thinking ?? null, max.value + 1, input.targetRunId ?? null, now, now);
66
+ thinking, origin_json, position, target_run_id, version, created_at_ms, updated_at_ms)
67
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?)`).run(input.id, input.sessionKey, input.clientMessageId, input.requestedDelivery, input.effectiveDelivery, input.status, input.content, input.attachments ? JSON.stringify(input.attachments) : null, input.thinking ?? null, JSON.stringify(input.origin), max.value + 1, input.targetRunId ?? null, now, now);
66
68
  bumpRevision(db, input.sessionKey);
67
69
  return mapInput(db.prepare(`${SELECT_INPUTS} WHERE id = ?`).get(input.id));
68
70
  });
@@ -77,7 +77,7 @@ export declare function buildHomeBriefing(input: {
77
77
  id: string;
78
78
  kind: "task" | "agent_judgment" | "connector_approval";
79
79
  title: string;
80
- reason: "paused" | "external" | "blocked" | "dependency" | "user_input" | "approval_required" | "overdue" | "needs_input" | "user_approval" | "scheduled" | "retry" | "due_soon" | "decision_needed";
80
+ reason: "external" | "paused" | "blocked" | "dependency" | "user_input" | "approval_required" | "overdue" | "needs_input" | "user_approval" | "scheduled" | "retry" | "due_soon" | "decision_needed";
81
81
  urgency: "now" | "soon";
82
82
  href: string;
83
83
  updatedAt: number;
@@ -185,7 +185,7 @@ var EmbeddedBackend = class {
185
185
  this.onEvent?.({
186
186
  event,
187
187
  data: payload,
188
- source: "broadcast"
188
+ source: "embedded"
189
189
  });
190
190
  }
191
191
  };
@@ -311,7 +311,10 @@ var EmbeddedBackend = class {
311
311
  (async () => {
312
312
  try {
313
313
  const messageForAgent = opts.message.trimStart().startsWith("/") ? opts.message : prependEnvelopeTimestamp(opts.message);
314
- const stream = agent.turnDispatcher.processDirectStreaming(messageForAgent, opts.sessionKey, opts.attachments, opts.thinking, {
314
+ const stream = agent.turnDispatcher.processDirectStreaming(messageForAgent, opts.sessionKey, {
315
+ type: "system",
316
+ source: "cli"
317
+ }, opts.attachments, opts.thinking, {
315
318
  signal,
316
319
  runId
317
320
  });
@@ -4,22 +4,24 @@ import type { ChatSendOptions, HistoryMessage, TuiBackend, TuiCompactionResult,
4
4
  import type { SessionInfo } from '../tui-types.js';
5
5
  import type { ReviewContext } from '../../review/review-git.js';
6
6
  import { type GatewayCredential } from '../../gateway/credential.js';
7
- interface GatewaySSEOptions {
7
+ interface GatewayRealtimeOptions {
8
8
  url: string;
9
9
  credential?: GatewayCredential;
10
10
  }
11
- export declare function normalizeGatewaySseEvent(evt: TuiEvent): TuiEvent;
12
11
  /**
13
- * TUI backend that communicates with a running xopc gateway via HTTP + SSE.
12
+ * TUI backend that communicates with a running xopc gateway via REST + realtime WebSocket.
14
13
  *
15
- * - Agent input: durable session input REST plus resumable run SSE
16
- * - Broadcast events: `GET /api/events` via long-lived SSE
14
+ * - Agent input: durable session input REST plus replayable run topics
15
+ * - Broadcast events: gateway realtime topic
17
16
  * - REST calls for sessions, models, etc.
18
17
  */
19
- export declare class GatewaySseBackend implements TuiBackend {
18
+ export declare class GatewayRealtimeBackend implements TuiBackend {
20
19
  private readonly baseUrl;
21
20
  private readonly credential;
22
- private eventAbort;
21
+ private readonly clientId;
22
+ private realtime;
23
+ private activeRunId;
24
+ private observedSessionKey;
23
25
  private chatAbort;
24
26
  onEvent?: (evt: TuiEvent) => void;
25
27
  onConnected?: () => void;
@@ -28,7 +30,7 @@ export declare class GatewaySseBackend implements TuiBackend {
28
30
  expected: number;
29
31
  received: number;
30
32
  }) => void;
31
- constructor(opts: GatewaySSEOptions);
33
+ constructor(opts: GatewayRealtimeOptions);
32
34
  get connectionLabel(): string;
33
35
  start(): void;
34
36
  stop(): void;
@@ -156,7 +158,8 @@ export declare class GatewaySseBackend implements TuiBackend {
156
158
  deleteSession(sessionKey: string): Promise<{
157
159
  ok: boolean;
158
160
  }>;
159
- private startEventStream;
160
- private scheduleReconnect;
161
+ private startRealtime;
162
+ private handleRealtimeEvent;
163
+ private unsubscribeActiveRun;
161
164
  }
162
165
  export {};