@xopcai/xopc 0.0.248 → 0.0.249

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 (452) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{activity-store-etpmyV7S.js → activity-store-B759R_qf.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BmKxSM1k.js → agent-avatar-dicebear-BUu7EnwM.js} +1 -1
  5. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-C1rXNUAG.js +1 -0
  6. package/dist/gateway/static/root/assets/agents-DK9HjHO0.js +1 -0
  7. package/dist/gateway/static/root/assets/{api-B0-hLuZ1.js → api-Cg0v7Lpn.js} +1 -1
  8. package/dist/gateway/static/root/assets/app-management-settings-panel-C9DkCW_d.js +1 -0
  9. package/dist/gateway/static/root/assets/appearance-settings-CFggS95Y.js +1 -0
  10. package/dist/gateway/static/root/assets/apps-page-jOvT-fzU.js +1 -0
  11. package/dist/gateway/static/root/assets/{archive-plugin-BnMSgZvR.js → archive-plugin-BQrilVVv.js} +1 -1
  12. package/dist/gateway/static/root/assets/{attachment-load-CejsQMev.js → attachment-load-BG0BliqV.js} +1 -1
  13. package/dist/gateway/static/root/assets/{automations-page-RC8EyoAf.js → automations-page-Bo4RiTkh.js} +1 -1
  14. package/dist/gateway/static/root/assets/automations-workspace-BKjKTlW8.js +6 -0
  15. package/dist/gateway/static/root/assets/{binary-plugins-DGjppLSG.js → binary-plugins-BCnyNU0C.js} +1 -1
  16. package/dist/gateway/static/root/assets/{block-editor-CWdP4bUc.js → block-editor-Db8DlVvg.js} +50 -50
  17. package/dist/gateway/static/root/assets/browser-settings-page-Dzq18pO1.js +8 -0
  18. package/dist/gateway/static/root/assets/{browser-workflow-inputs-BQ1Ilw_o.js → browser-workflow-inputs-C71vfl0b.js} +1 -1
  19. package/dist/gateway/static/root/assets/{browser-workflows-page-CJh4NyxT.js → browser-workflows-page-vvmSYKsO.js} +2 -2
  20. package/dist/gateway/static/root/assets/capabilities-settings-panel-DW4SBQf4.js +7 -0
  21. package/dist/gateway/static/root/assets/channels-settings-57OGuewD.js +1 -0
  22. package/dist/gateway/static/root/assets/{channels-status-swr-Ohhee4vm.js → channels-status-swr-CKyV3jY5.js} +1 -1
  23. package/dist/gateway/static/root/assets/{chat-terminal-dock-BOtoKTK3.js → chat-terminal-dock-B1Xd6OFB.js} +2 -2
  24. package/dist/gateway/static/root/assets/connectors-page-CT_I3kbR.js +2 -0
  25. package/dist/gateway/static/root/assets/{cron-expression-DTj1V3Sw.js → cron-expression-D-F9vjtE.js} +1 -1
  26. package/dist/gateway/static/root/assets/{date-picker-Yr6OCvGL.js → date-picker-B2OoYvic.js} +1 -1
  27. package/dist/gateway/static/root/assets/dependency-picker-BiGx9Sbj.js +1 -0
  28. package/dist/gateway/static/root/assets/{desktop-pet-DbGzggPF.js → desktop-pet-BNMRqipe.js} +1 -1
  29. package/dist/gateway/static/root/assets/desktop-pet-settings-DeYbIV7A.js +1 -0
  30. package/dist/gateway/static/root/assets/{extension-debug-page-DgTtk4KC.js → extension-debug-page-COyn05ub.js} +1 -1
  31. package/dist/gateway/static/root/assets/{extension-page-DtQeiP6f.js → extension-page-oH43chS2.js} +1 -1
  32. package/dist/gateway/static/root/assets/extension-settings-page-BMO59994.js +1 -0
  33. package/dist/gateway/static/root/assets/gateway-config-api-cimpViGk.js +1 -0
  34. package/dist/gateway/static/root/assets/{gateway-config-swr-DXuXtU1w.js → gateway-config-swr-BGdHwT4e.js} +1 -1
  35. package/dist/gateway/static/root/assets/gateway-settings-BHJtnSic.js +1 -0
  36. package/dist/gateway/static/root/assets/{gateway-startup-retry-CzBzglzQ.js → gateway-startup-retry-CuaM3b4c.js} +1 -1
  37. package/dist/gateway/static/root/assets/heartbeat-settings-DNhrZHqx.js +1 -0
  38. package/dist/gateway/static/root/assets/home-page-BiHwiBnQ.js +1 -0
  39. package/dist/gateway/static/root/assets/{image-generation-api-TIgsn04n.js → image-generation-api-D7duj7Uj.js} +1 -1
  40. package/dist/gateway/static/root/assets/index-DGeGmj4k.css +2 -0
  41. package/dist/gateway/static/root/assets/index-aBs0EfQB.js +72 -0
  42. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-wsWuoa8p.js → keyboard-shortcuts-settings-D8Zw_lYd.js} +1 -1
  43. package/dist/gateway/static/root/assets/{local-app-workbench-page-CpyvYyrb.js → local-app-workbench-page-eBFVWmtH.js} +2 -2
  44. package/dist/gateway/static/root/assets/{local-apps-page-CXrbrGo8.js → local-apps-page-CvPDPRwb.js} +1 -1
  45. package/dist/gateway/static/root/assets/{locale-store-BJFLQY8O.js → locale-store-zEL8bkwx.js} +1 -1
  46. package/dist/gateway/static/root/assets/logs-page-ClvcWlL6.js +2 -0
  47. package/dist/gateway/static/root/assets/{management-settings-BdJZFR7U.js → management-settings-D8moh99U.js} +1 -1
  48. package/dist/gateway/static/root/assets/{markdown-split-NK3ACVG2.js → markdown-split-D7V3j0vE.js} +1 -1
  49. package/dist/gateway/static/root/assets/{markdown-view-DTF9v1gg.js → markdown-view-DGRN-8wP.js} +1 -1
  50. package/dist/gateway/static/root/assets/{media-plugins-F0jcUxyl.js → media-plugins-BLaE5b1Y.js} +1 -1
  51. package/dist/gateway/static/root/assets/messages-W5P19VTF.js +11 -0
  52. package/dist/gateway/static/root/assets/mobile-pairing-wizard-DiVDuCxl.js +1 -0
  53. package/dist/gateway/static/root/assets/note-detail-panel-CEEvR-fV.js +5 -0
  54. package/dist/gateway/static/root/assets/notes-page-BLqgXNCx.js +8 -0
  55. package/dist/gateway/static/root/assets/page-tabs-BFMGjA60.js +1 -0
  56. package/dist/gateway/static/root/assets/preview-open-alternatives-DNEWZN7H.js +1 -0
  57. package/dist/gateway/static/root/assets/{product-open-page-CxGGlWA8.js → product-open-page-Co5u7asH.js} +1 -1
  58. package/dist/gateway/static/root/assets/project-detail-page-CIiFJ5tk.js +1 -0
  59. package/dist/gateway/static/root/assets/projects-page-B3UF-Pfm.js +1 -0
  60. package/dist/gateway/static/root/assets/{registry-api-CIsNlSBi.js → registry-api-Cg92zSod.js} +1 -1
  61. package/dist/gateway/static/root/assets/remote-access-hub-BUtpkJPG.js +1 -0
  62. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-YkjhiQfA.js → runtime-tools-settings-panel-C0ByNmlV.js} +2 -2
  63. package/dist/gateway/static/root/assets/{schema-form-oFGf3G3s.js → schema-form-Dq_VQpuY.js} +1 -1
  64. package/dist/gateway/static/root/assets/sessions-page-UgJmG-V4.js +1 -0
  65. package/dist/gateway/static/root/assets/settings-advanced-gate-DDCzpdkl.js +1 -0
  66. package/dist/gateway/static/root/assets/settings-form-section-CZu6FX4k.js +1 -0
  67. package/dist/gateway/static/root/assets/{settings-page-C7VWs0IT.js → settings-page-S8ekeUZd.js} +1 -1
  68. package/dist/gateway/static/root/assets/setup-status-panel-BdVmwXMv.js +1 -0
  69. package/dist/gateway/static/root/assets/{share-preview-page-t5oz18rh.js → share-preview-page-D2fEidbn.js} +1 -1
  70. package/dist/gateway/static/root/assets/shares-settings-BdsqnCYj.js +1 -0
  71. package/dist/gateway/static/root/assets/skill-reload-api-ghzAQKna.js +1 -0
  72. package/dist/gateway/static/root/assets/skills-page-AYiPlgZE.js +2 -0
  73. package/dist/gateway/static/root/assets/{skills-page.utils-DEDTYs2W.js → skills-page.utils-DGzl-ib-.js} +1 -1
  74. package/dist/gateway/static/root/assets/system-settings-panel-5Xd5mIiR.js +1 -0
  75. package/dist/gateway/static/root/assets/task-detail-page-BQAUaCDD.js +1 -0
  76. package/dist/gateway/static/root/assets/{theme-store-O597U8q_.js → theme-store-ZVClZKQ0.js} +1 -1
  77. package/dist/gateway/static/root/assets/tunnel-api-CdZN1Jin.js +1 -0
  78. package/dist/gateway/static/root/assets/{use-autosave-B5eUJ6Zq.js → use-autosave-czRI0NBc.js} +1 -1
  79. package/dist/gateway/static/root/assets/user-model-page-W3GTm6nA.js +2 -0
  80. package/dist/gateway/static/root/assets/{voice-api-key-field-CMKSwz4C.js → voice-api-key-field-8YEvA3cU.js} +1 -1
  81. package/dist/gateway/static/root/assets/{voice-config-api-q7B6fOFB.js → voice-config-api-CopF64lY.js} +1 -1
  82. package/dist/gateway/static/root/assets/work-discovery-overlay-keLtqYYJ.js +1 -0
  83. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DZmvLZjb.js → workflow-run-setup-panel-Dy5WgYMO.js} +2 -2
  84. package/dist/gateway/static/root/assets/workflows-page-BbAV3h7n.js +5 -0
  85. package/dist/gateway/static/root/index.html +10 -26
  86. package/dist/package.js +1 -1
  87. package/dist/src/agent/agent-instance-gateway.d.ts +2 -2
  88. package/dist/src/agent/agent-manager.d.ts +4 -4
  89. package/dist/src/agent/agent-manager.js +31 -15
  90. package/dist/src/agent/background-review/coordinator.d.ts +2 -4
  91. package/dist/src/agent/background-review/coordinator.js +5 -30
  92. package/dist/src/agent/background-review/prompts.d.ts +4 -2
  93. package/dist/src/agent/background-review/prompts.js +24 -19
  94. package/dist/src/agent/background-review/run-background-review.d.ts +6 -7
  95. package/dist/src/agent/background-review/run-background-review.js +47 -41
  96. package/dist/src/agent/background-review/settings.d.ts +0 -1
  97. package/dist/src/agent/background-review/settings.js +6 -7
  98. package/dist/src/agent/context/audit.d.ts +36 -0
  99. package/dist/src/agent/context/audit.js +97 -0
  100. package/dist/src/agent/context/coordinator.d.ts +26 -0
  101. package/dist/src/agent/context/coordinator.js +72 -0
  102. package/dist/src/agent/context/execution-context.d.ts +54 -0
  103. package/dist/src/agent/context/execution-context.js +147 -0
  104. package/dist/src/agent/context/execution-scope.js +1 -1
  105. package/dist/src/agent/context/prepend.d.ts +2 -0
  106. package/dist/src/agent/context/prepend.js +28 -0
  107. package/dist/src/agent/context/project-context.d.ts +3 -3
  108. package/dist/src/agent/context/project-context.js +26 -23
  109. package/dist/src/agent/embedded/index.js +1 -1
  110. package/dist/src/agent/embedded/run-for-session.js +1 -0
  111. package/dist/src/agent/embedded/run-turn.js +22 -2
  112. package/dist/src/agent/embedded/types.d.ts +1 -25
  113. package/dist/src/agent/external-tools/composio-provider.js +87 -92
  114. package/dist/src/agent/external-tools/gateway-tools.d.ts +4 -1
  115. package/dist/src/agent/external-tools/gateway-tools.js +153 -41
  116. package/dist/src/agent/external-tools/index.js +1 -1
  117. package/dist/src/agent/external-tools/search-error.d.ts +12 -0
  118. package/dist/src/agent/external-tools/search-error.js +29 -0
  119. package/dist/src/agent/external-tools/service.d.ts +4 -0
  120. package/dist/src/agent/external-tools/service.js +22 -2
  121. package/dist/src/agent/memory/compaction-policy.js +1 -1
  122. package/dist/src/agent/memory/compaction-promotion.js +45 -77
  123. package/dist/src/agent/memory/create-memory-manager.js +1 -3
  124. package/dist/src/agent/memory/index.d.ts +0 -5
  125. package/dist/src/agent/memory/index.js +2 -5
  126. package/dist/src/agent/memory/manager.d.ts +0 -16
  127. package/dist/src/agent/memory/manager.js +11 -40
  128. package/dist/src/agent/memory/memory-config.js +1 -1
  129. package/dist/src/agent/memory/runtime.d.ts +2 -2
  130. package/dist/src/agent/memory/runtime.js +9 -19
  131. package/dist/src/agent/memory/types.d.ts +1 -1
  132. package/dist/src/agent/orchestration/agent-orchestrator.js +13 -21
  133. package/dist/src/agent/prompt/sections/memory-skills.js +25 -36
  134. package/dist/src/agent/prompt/sections/tooling.js +10 -4
  135. package/dist/src/agent/prompt/service-prompt-builder.js +4 -3
  136. package/dist/src/agent/service/direct-turn-helpers.js +6 -23
  137. package/dist/src/agent/service/process-direct-streaming.js +5 -3
  138. package/dist/src/agent/service.js +4 -3
  139. package/dist/src/agent/tasks/task-judge-service.js +1 -1
  140. package/dist/src/agent/tools/clarify-tool.d.ts +1 -0
  141. package/dist/src/agent/tools/delegate-tool.js +5 -2
  142. package/dist/src/agent/tools/factory.js +36 -19
  143. package/dist/src/agent/tools/index.d.ts +3 -2
  144. package/dist/src/agent/tools/index.js +4 -3
  145. package/dist/src/agent/tools/knowledge-memory-tool.d.ts +9 -0
  146. package/dist/src/agent/tools/knowledge-memory-tool.js +129 -0
  147. package/dist/src/agent/tools/{dreaming-tool.d.ts → memory-maintenance-tool.d.ts} +2 -2
  148. package/dist/src/agent/tools/memory-maintenance-tool.js +31 -0
  149. package/dist/src/agent/tools/user-context-tool.d.ts +8 -0
  150. package/dist/src/agent/tools/user-context-tool.js +81 -0
  151. package/dist/src/agent/tools/xopc-use-tool.js +2 -2
  152. package/dist/src/chat-commands/builtins/understanding.js +24 -6
  153. package/dist/src/cli/commands/connectors.js +1 -1
  154. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  155. package/dist/src/config/schema.d.ts +68 -75
  156. package/dist/src/config/schema.js +29 -18
  157. package/dist/src/config/web-patch.d.ts +1 -1
  158. package/dist/src/connectors/auth-provider-registry.js +1 -1
  159. package/dist/src/connectors/composio-managed-client.js +6 -2
  160. package/dist/src/connectors/connected-source-ingestion.js +1 -1
  161. package/dist/src/connectors/connected-source-understanding.d.ts +1 -3
  162. package/dist/src/connectors/connected-source-understanding.js +86 -99
  163. package/dist/src/connectors/connection-candidates.d.ts +11 -0
  164. package/dist/src/connectors/connection-candidates.js +58 -0
  165. package/dist/src/connectors/connection-capabilities.d.ts +4 -0
  166. package/dist/src/connectors/connection-capabilities.js +37 -0
  167. package/dist/src/connectors/connection-recovery-service.d.ts +42 -0
  168. package/dist/src/connectors/connection-recovery-service.js +396 -0
  169. package/dist/src/connectors/health.js +1 -1
  170. package/dist/src/connectors/learning-coordinator.d.ts +0 -2
  171. package/dist/src/connectors/learning-coordinator.js +6 -7
  172. package/dist/src/connectors/principal.d.ts +5 -0
  173. package/dist/src/connectors/principal.js +18 -0
  174. package/dist/src/gateway/agent-builtin-tools.d.ts +28 -10
  175. package/dist/src/gateway/agent-builtin-tools.js +30 -9
  176. package/dist/src/gateway/chat-stream/mapper.js +1 -28
  177. package/dist/src/gateway/chat-stream/protocol.d.ts +2 -24
  178. package/dist/src/gateway/clarify-bridge.d.ts +4 -0
  179. package/dist/src/gateway/clarify-bridge.js +9 -4
  180. package/dist/src/gateway/heartbeat/service.js +1 -1
  181. package/dist/src/gateway/hono/lib/config-payload.d.ts +52 -30
  182. package/dist/src/gateway/hono/lib/config-payload.js +4 -4
  183. package/dist/src/gateway/hono/middleware/auth.js +1 -2
  184. package/dist/src/gateway/hono/routes/capabilities.js +1 -1
  185. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  186. package/dist/src/gateway/hono/routes/config-patch/misc.js +72 -28
  187. package/dist/src/gateway/hono/routes/connection-waits.d.ts +3 -0
  188. package/dist/src/gateway/hono/routes/connection-waits.js +58 -0
  189. package/dist/src/gateway/hono/routes/connectors.js +7 -15
  190. package/dist/src/gateway/hono/routes/context-sources.d.ts +4 -0
  191. package/dist/src/gateway/hono/routes/context-sources.js +159 -0
  192. package/dist/src/gateway/hono/routes/index.js +4 -2
  193. package/dist/src/gateway/hono/routes/lazy-bundles.js +9 -4
  194. package/dist/src/gateway/hono/routes/mcp.js +1 -1
  195. package/dist/src/gateway/hono/routes/notes.js +22 -7
  196. package/dist/src/gateway/hono/routes/projects.js +36 -44
  197. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +15 -1
  198. package/dist/src/gateway/hono/routes/side-chats.js +13 -2
  199. package/dist/src/gateway/hono/routes/tasks.js +2 -2
  200. package/dist/src/gateway/hono/routes/user-model.d.ts +3 -0
  201. package/dist/src/gateway/hono/routes/user-model.js +480 -0
  202. package/dist/src/gateway/memory-maintenance-automation-reconciler.d.ts +11 -0
  203. package/dist/src/gateway/memory-maintenance-automation-reconciler.js +72 -0
  204. package/dist/src/gateway/service/agent-runner.d.ts +9 -1
  205. package/dist/src/gateway/service/agent-runner.js +25 -1
  206. package/dist/src/gateway/service/config-coordinator.d.ts +2 -2
  207. package/dist/src/gateway/service/config-coordinator.js +4 -4
  208. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -0
  209. package/dist/src/gateway/service/run-gateway-agent.js +18 -14
  210. package/dist/src/gateway/service/session-input-coordinator.d.ts +3 -0
  211. package/dist/src/gateway/service/session-input-coordinator.js +12 -2
  212. package/dist/src/gateway/service.d.ts +3 -1
  213. package/dist/src/gateway/service.js +45 -14
  214. package/dist/src/gateway/side-chat/manager.d.ts +16 -3
  215. package/dist/src/gateway/side-chat/manager.js +117 -28
  216. package/dist/src/gateway/side-chat/run-service.d.ts +2 -0
  217. package/dist/src/gateway/side-chat/run-service.js +28 -5
  218. package/dist/src/gateway/side-chat/types.d.ts +9 -1
  219. package/dist/src/heartbeat/index.js +1 -1
  220. package/dist/src/knowledge/connected-knowledge-pipeline.d.ts +0 -2
  221. package/dist/src/knowledge/connected-knowledge-pipeline.js +46 -217
  222. package/dist/src/knowledge-memory/domain.d.ts +35 -0
  223. package/dist/src/knowledge-memory/index.d.ts +2 -0
  224. package/dist/src/knowledge-memory/index.js +2 -0
  225. package/dist/src/knowledge-memory/repository.d.ts +45 -0
  226. package/dist/src/knowledge-memory/repository.js +154 -0
  227. package/dist/src/memory-maintenance/index.d.ts +2 -0
  228. package/dist/src/memory-maintenance/index.js +3 -0
  229. package/dist/src/memory-maintenance/schedule.d.ts +13 -0
  230. package/dist/src/memory-maintenance/schedule.js +51 -0
  231. package/dist/src/memory-maintenance/service.d.ts +28 -0
  232. package/dist/src/memory-maintenance/service.js +216 -0
  233. package/dist/src/notes/service.d.ts +1 -0
  234. package/dist/src/notes/service.js +7 -1
  235. package/dist/src/notes/types.d.ts +16 -0
  236. package/dist/src/proactive/execution/context.d.ts +2 -2
  237. package/dist/src/proactive/execution/context.js +16 -11
  238. package/dist/src/proactive/index.d.ts +1 -1
  239. package/dist/src/proactive/index.js +2 -2
  240. package/dist/src/projects/index.d.ts +1 -1
  241. package/dist/src/projects/index.js +2 -2
  242. package/dist/src/projects/knowledge-bind.d.ts +1 -0
  243. package/dist/src/projects/knowledge-bind.js +15 -0
  244. package/dist/src/projects/project-loop.d.ts +3 -3
  245. package/dist/src/projects/project-loop.js +4 -4
  246. package/dist/src/projects/project-store.js +2 -1
  247. package/dist/src/realtime/runtime.js +1 -0
  248. package/dist/src/runtime-tools/manager.js +1 -1
  249. package/dist/src/storage/sqlite/collaboration-rule-repository.d.ts +17 -0
  250. package/dist/src/storage/sqlite/collaboration-rule-repository.js +54 -0
  251. package/dist/src/storage/sqlite/connection-wait-repository.d.ts +30 -0
  252. package/dist/src/storage/sqlite/connection-wait-repository.js +338 -0
  253. package/dist/src/storage/sqlite/connector-account-repository.js +1 -1
  254. package/dist/src/storage/sqlite/context-evidence-repository.d.ts +24 -0
  255. package/dist/src/storage/sqlite/context-evidence-repository.js +52 -0
  256. package/dist/src/storage/sqlite/index.d.ts +3 -5
  257. package/dist/src/storage/sqlite/index.js +4 -6
  258. package/dist/src/storage/sqlite/knowledge-repository.d.ts +0 -19
  259. package/dist/src/storage/sqlite/knowledge-repository.js +1 -90
  260. package/dist/src/storage/sqlite/migrations/148_user_model_foundation.sql +554 -0
  261. package/dist/src/storage/sqlite/migrations/149_separate_source_index_from_memory.sql +18 -0
  262. package/dist/src/storage/sqlite/migrations/150_session_connection_waits.sql +47 -0
  263. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  264. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  265. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  266. package/dist/src/storage/sqlite/notes-repository.d.ts +2 -1
  267. package/dist/src/storage/sqlite/notes-repository.js +37 -3
  268. package/dist/src/storage/sqlite/schema.js +1 -1
  269. package/dist/src/storage/sqlite/session-input-repository.d.ts +14 -2
  270. package/dist/src/storage/sqlite/session-input-repository.js +16 -13
  271. package/dist/src/storage/sqlite/session-repository.js +4 -1
  272. package/dist/src/storage/sqlite/transcript-repository.js +1 -1
  273. package/dist/src/tasks/index.js +2 -2
  274. package/dist/src/tasks/project-operating-view-service.js +1 -1
  275. package/dist/src/tasks/task-application-service.js +6 -1
  276. package/dist/src/tasks/task-context-assembler.js +1 -1
  277. package/dist/src/tasks/task-context-repository.d.ts +0 -1
  278. package/dist/src/tasks/task-context-repository.js +1 -1
  279. package/dist/src/tasks/task-deletion-service.js +1 -1
  280. package/dist/src/tasks/task-handoff-service.js +1 -1
  281. package/dist/src/tasks/task-read-model-projector.js +1 -1
  282. package/dist/src/tasks/task-run-coordinator.js +1 -1
  283. package/dist/src/tasks/task-run-dispatcher.js +1 -1
  284. package/dist/src/tasks/task-run-repository.js +1 -0
  285. package/dist/src/tasks/task-signal-service.js +1 -1
  286. package/dist/src/tui/tool-summary.js +2 -1
  287. package/dist/src/tui/tui-startup-resources.js +1 -1
  288. package/dist/src/user-context/changes.d.ts +1 -1
  289. package/dist/src/user-context/config.d.ts +135 -153
  290. package/dist/src/user-context/config.js +94 -99
  291. package/dist/src/user-context/relationship-continuity.d.ts +2 -2
  292. package/dist/src/user-context/relationship-continuity.js +34 -24
  293. package/dist/src/user-context/sources/activity-clustering.d.ts +9 -3
  294. package/dist/src/user-context/sources/index.js +2 -2
  295. package/dist/src/user-context/sources/repository.d.ts +1 -21
  296. package/dist/src/user-context/sources/repository.js +1 -183
  297. package/dist/src/user-context/sources/types.d.ts +0 -23
  298. package/dist/src/user-model/capture/executor.d.ts +40 -0
  299. package/dist/src/user-model/capture/executor.js +134 -0
  300. package/dist/src/user-model/capture/index.d.ts +2 -0
  301. package/dist/src/user-model/capture/index.js +3 -0
  302. package/dist/src/user-model/capture/semantic.d.ts +21 -0
  303. package/dist/src/user-model/capture/semantic.js +197 -0
  304. package/dist/src/user-model/domain.d.ts +93 -0
  305. package/dist/src/user-model/domain.js +33 -0
  306. package/dist/src/user-model/goals.d.ts +58 -0
  307. package/dist/src/user-model/goals.js +89 -0
  308. package/dist/src/user-model/importance.d.ts +11 -0
  309. package/dist/src/user-model/importance.js +17 -0
  310. package/dist/src/user-model/index.d.ts +5 -0
  311. package/dist/src/user-model/index.js +6 -0
  312. package/dist/src/user-model/repository.d.ts +23 -0
  313. package/dist/src/user-model/repository.js +268 -0
  314. package/dist/src/user-model/temporal.d.ts +10 -0
  315. package/dist/src/user-model/temporal.js +44 -0
  316. package/dist/src/voice/realtime/memory-context.d.ts +7 -2
  317. package/dist/src/voice/realtime/memory-context.js +39 -51
  318. package/dist/src/work-discovery/service.d.ts +3 -14
  319. package/dist/src/work-discovery/service.js +138 -99
  320. package/dist/src/work-discovery/types.d.ts +3 -3
  321. package/dist/src/workflows/service/workflow-run-service.js +1 -1
  322. package/dist/src/workflows/service/workflow-session-bridge.js +12 -20
  323. package/package.json +1 -1
  324. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CUXApfcE.js +0 -1
  325. package/dist/gateway/static/root/assets/agents-DNq_GKuc.js +0 -1
  326. package/dist/gateway/static/root/assets/app-management-settings-panel-qfwAgyhQ.js +0 -1
  327. package/dist/gateway/static/root/assets/appearance-settings-DqQVUpCC.js +0 -1
  328. package/dist/gateway/static/root/assets/apps-page-dwIqYmXk.js +0 -1
  329. package/dist/gateway/static/root/assets/automations-workspace-SkdcSZ0i.js +0 -6
  330. package/dist/gateway/static/root/assets/browser-settings-page-CKCa6TvG.js +0 -8
  331. package/dist/gateway/static/root/assets/capabilities-settings-panel-DSp--zIZ.js +0 -7
  332. package/dist/gateway/static/root/assets/channels-settings-CMd2dDrI.js +0 -1
  333. package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +0 -1
  334. package/dist/gateway/static/root/assets/connectors-page-udWs5Kdm.js +0 -2
  335. package/dist/gateway/static/root/assets/dependency-picker-DpN3XZg9.js +0 -1
  336. package/dist/gateway/static/root/assets/desktop-pet-settings-DinCToZh.js +0 -1
  337. package/dist/gateway/static/root/assets/ellipsis-0k4rZLoy.js +0 -1
  338. package/dist/gateway/static/root/assets/extension-settings-page-DcguCgsH.js +0 -1
  339. package/dist/gateway/static/root/assets/eye-CABVeTq0.js +0 -1
  340. package/dist/gateway/static/root/assets/eye-off-DEAzt3g1.js +0 -1
  341. package/dist/gateway/static/root/assets/folder-open-CyzJ19I9.js +0 -1
  342. package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +0 -1
  343. package/dist/gateway/static/root/assets/gateway-config-api-Br7lSf6H.js +0 -1
  344. package/dist/gateway/static/root/assets/gateway-settings-CdPoDMuj.js +0 -1
  345. package/dist/gateway/static/root/assets/heartbeat-settings-DHk1hawP.js +0 -1
  346. package/dist/gateway/static/root/assets/home-page-YGipe_W6.js +0 -1
  347. package/dist/gateway/static/root/assets/index-D5TQQpeb.js +0 -71
  348. package/dist/gateway/static/root/assets/index-DReBaaTX.css +0 -2
  349. package/dist/gateway/static/root/assets/interaction-BmQogeqz.js +0 -1
  350. package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +0 -1
  351. package/dist/gateway/static/root/assets/link-2-D_ZKYUW7.js +0 -1
  352. package/dist/gateway/static/root/assets/local-context-graph-BjUf7fQ9.js +0 -1
  353. package/dist/gateway/static/root/assets/logs-page-CXKy6E_l.js +0 -2
  354. package/dist/gateway/static/root/assets/message-square-plus-XP0tGdlV.js +0 -1
  355. package/dist/gateway/static/root/assets/messages-CHNYp8EQ.js +0 -3
  356. package/dist/gateway/static/root/assets/minimize-2-DtOGrlpo.js +0 -1
  357. package/dist/gateway/static/root/assets/mobile-pairing-wizard-3NKCniSp.js +0 -1
  358. package/dist/gateway/static/root/assets/models-hub-cache-nCfkBN8M.js +0 -1
  359. package/dist/gateway/static/root/assets/notes-page-DuqLahi6.js +0 -1
  360. package/dist/gateway/static/root/assets/notes-workbench-C7j9EdQk.js +0 -5
  361. package/dist/gateway/static/root/assets/oauth-api-8lP_qJpq.js +0 -1
  362. package/dist/gateway/static/root/assets/oauth-authorization-window-Cdolr2wE.js +0 -1
  363. package/dist/gateway/static/root/assets/page-tabs-BaEQMYm_.js +0 -1
  364. package/dist/gateway/static/root/assets/pencil-DmIY3Oa-.js +0 -1
  365. package/dist/gateway/static/root/assets/preview-open-alternatives-CsNVTKC0.js +0 -1
  366. package/dist/gateway/static/root/assets/project-detail-page-CfebYVX0.js +0 -1
  367. package/dist/gateway/static/root/assets/projects-page-48GvzSVa.js +0 -1
  368. package/dist/gateway/static/root/assets/remote-access-hub-64xj_s2m.js +0 -1
  369. package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +0 -1
  370. package/dist/gateway/static/root/assets/search-DA7gz22f.js +0 -1
  371. package/dist/gateway/static/root/assets/sessions-page-CcwcdRN8.js +0 -1
  372. package/dist/gateway/static/root/assets/settings-advanced-gate-BaN84CyW.js +0 -1
  373. package/dist/gateway/static/root/assets/settings-form-section-DjWzRk4z.js +0 -1
  374. package/dist/gateway/static/root/assets/setup-status-panel-DVVOCNbr.js +0 -1
  375. package/dist/gateway/static/root/assets/shares-settings-DUYbYLi7.js +0 -1
  376. package/dist/gateway/static/root/assets/skill-reload-api-BGyD0gB9.js +0 -1
  377. package/dist/gateway/static/root/assets/skills-page-CjF8DTsN.js +0 -2
  378. package/dist/gateway/static/root/assets/system-settings-panel-BSYuRgFI.js +0 -1
  379. package/dist/gateway/static/root/assets/task-detail-page-YZYSTJH7.js +0 -1
  380. package/dist/gateway/static/root/assets/tunnel-api-FKUi9wDL.js +0 -1
  381. package/dist/gateway/static/root/assets/user-context-page-BCyiduKd.js +0 -2
  382. package/dist/gateway/static/root/assets/work-discovery-overlay-jhT2EzeH.js +0 -1
  383. package/dist/gateway/static/root/assets/workflows-page-DQC0TpMa.js +0 -5
  384. package/dist/src/agent/memory/builtin-provider.d.ts +0 -37
  385. package/dist/src/agent/memory/builtin-provider.js +0 -225
  386. package/dist/src/agent/memory/context/types.d.ts +0 -40
  387. package/dist/src/agent/memory/understanding/quality.d.ts +0 -8
  388. package/dist/src/agent/memory/understanding/quality.js +0 -18
  389. package/dist/src/agent/memory/understanding/service.d.ts +0 -19
  390. package/dist/src/agent/memory/understanding/service.js +0 -209
  391. package/dist/src/agent/memory/understanding/types.d.ts +0 -34
  392. package/dist/src/agent/memory/understanding/types.js +0 -1
  393. package/dist/src/agent/memory/user-context-coordinator.d.ts +0 -23
  394. package/dist/src/agent/memory/user-context-coordinator.js +0 -113
  395. package/dist/src/agent/tools/dreaming-tool.js +0 -37
  396. package/dist/src/agent/tools/memory-tool.d.ts +0 -9
  397. package/dist/src/agent/tools/memory-tool.js +0 -119
  398. package/dist/src/gateway/dreaming-automation-reconciler.d.ts +0 -11
  399. package/dist/src/gateway/dreaming-automation-reconciler.js +0 -63
  400. package/dist/src/gateway/hono/routes/understanding-sources.d.ts +0 -21
  401. package/dist/src/gateway/hono/routes/understanding-sources.js +0 -387
  402. package/dist/src/gateway/hono/routes/you.d.ts +0 -3
  403. package/dist/src/gateway/hono/routes/you.js +0 -457
  404. package/dist/src/projects/memory-bind.d.ts +0 -1
  405. package/dist/src/projects/memory-bind.js +0 -14
  406. package/dist/src/storage/sqlite/context-consolidation-repository.d.ts +0 -37
  407. package/dist/src/storage/sqlite/context-consolidation-repository.js +0 -64
  408. package/dist/src/storage/sqlite/memory-records-repository.d.ts +0 -217
  409. package/dist/src/storage/sqlite/memory-records-repository.js +0 -715
  410. package/dist/src/storage/sqlite/remote-context-repository.d.ts +0 -3
  411. package/dist/src/storage/sqlite/remote-context-repository.js +0 -40
  412. package/dist/src/storage/sqlite/understanding-focus-exclusions.d.ts +0 -2
  413. package/dist/src/storage/sqlite/understanding-focus-exclusions.js +0 -24
  414. package/dist/src/storage/sqlite/user-context-quality-repository.d.ts +0 -49
  415. package/dist/src/storage/sqlite/user-context-quality-repository.js +0 -118
  416. package/dist/src/storage/sqlite/user-context-repository.d.ts +0 -85
  417. package/dist/src/storage/sqlite/user-context-repository.js +0 -535
  418. package/dist/src/user-context/automatic-context.d.ts +0 -17
  419. package/dist/src/user-context/automatic-context.js +0 -85
  420. package/dist/src/user-context/consolidation.d.ts +0 -27
  421. package/dist/src/user-context/consolidation.js +0 -187
  422. package/dist/src/user-context/context-objects.d.ts +0 -17
  423. package/dist/src/user-context/context-objects.js +0 -99
  424. package/dist/src/user-context/evaluation/harness.d.ts +0 -13
  425. package/dist/src/user-context/evaluation/harness.js +0 -31
  426. package/dist/src/user-context/extraction/executor.d.ts +0 -22
  427. package/dist/src/user-context/extraction/executor.js +0 -142
  428. package/dist/src/user-context/extraction/repair.d.ts +0 -19
  429. package/dist/src/user-context/extraction/repair.js +0 -71
  430. package/dist/src/user-context/extraction/semantic.d.ts +0 -18
  431. package/dist/src/user-context/extraction/semantic.js +0 -148
  432. package/dist/src/user-context/focus-lifecycle.d.ts +0 -2
  433. package/dist/src/user-context/focus-lifecycle.js +0 -26
  434. package/dist/src/user-context/manual-understanding.d.ts +0 -12
  435. package/dist/src/user-context/manual-understanding.js +0 -37
  436. package/dist/src/user-context/planner.d.ts +0 -17
  437. package/dist/src/user-context/planner.js +0 -465
  438. package/dist/src/user-context/relationships/indexer.d.ts +0 -13
  439. package/dist/src/user-context/relationships/indexer.js +0 -185
  440. package/dist/src/user-context/relationships/service.d.ts +0 -22
  441. package/dist/src/user-context/relationships/service.js +0 -50
  442. package/dist/src/user-context/retriever.d.ts +0 -15
  443. package/dist/src/user-context/retriever.js +0 -124
  444. package/dist/src/user-context/scope.d.ts +0 -7
  445. package/dist/src/user-context/scope.js +0 -9
  446. package/dist/src/user-context/selection-policy.d.ts +0 -20
  447. package/dist/src/user-context/selection-policy.js +0 -33
  448. package/dist/src/user-context/understanding.d.ts +0 -15
  449. package/dist/src/user-context/understanding.js +0 -24
  450. package/dist/src/user-context/understandingQuality.d.ts +0 -5
  451. package/dist/src/user-context/understandingQuality.js +0 -48
  452. /package/dist/src/{agent/memory/context/types.js → knowledge-memory/domain.js} +0 -0
@@ -1,3 +1,7 @@
1
+ import { connectionBindings, getActiveConnectionWait, publishConnectionWait, requireSessionConnection, reviseCurrentConnectionObjective } from "../../storage/sqlite/connection-wait-repository.js";
2
+ import { listConnectorConnections } from "../../storage/sqlite/connector-repository.js";
3
+ import { connectorPrincipalForSession } from "../../connectors/principal.js";
4
+ import { connectionCandidates, resolveConnectionCandidate } from "../../connectors/connection-candidates.js";
1
5
  import { ExternalToolService } from "./service.js";
2
6
  import { EXTERNAL_TOOL_SOURCES } from "./types.js";
3
7
  import { Type } from "@sinclair/typebox";
@@ -5,7 +9,9 @@ import { Type } from "@sinclair/typebox";
5
9
  const EXTERNAL_TOOL_NAMES = {
6
10
  search: "xopc_tool_search",
7
11
  describe: "xopc_tool_describe",
8
- execute: "xopc_tool_execute"
12
+ execute: "xopc_tool_execute",
13
+ requireConnection: "xopc_require_connection",
14
+ updateConnectionObjective: "xopc_update_connection_objective"
9
15
  };
10
16
  const ToolSearchSchema = Type.Object({
11
17
  query: Type.String({ description: "Describe the capability or task you need." }),
@@ -38,49 +44,155 @@ function textResult(value, details = {}) {
38
44
  details
39
45
  };
40
46
  }
41
- function createExternalToolGatewayTools(providers) {
47
+ function createExternalToolGatewayTools(providers, getContext) {
42
48
  const service = new ExternalToolService(providers);
49
+ const searchTool = {
50
+ name: EXTERNAL_TOOL_NAMES.search,
51
+ label: "🔎 External Tool Search",
52
+ description: "Search MCP, connected-app, extension, remote-memory, and current-endpoint tools. Use concise English capability keywords. Returns compact references only; call xopc_tool_describe before execution.",
53
+ parameters: ToolSearchSchema,
54
+ async execute(_toolCallId, params) {
55
+ return textResult({
56
+ ...await service.search(params),
57
+ connectionCandidates: connectionCandidates(params.query),
58
+ selectedConnections: getContext?.()?.sessionKey ? connectionBindings(getContext().sessionKey) : [],
59
+ waitingObjective: getContext?.()?.sessionKey ? getActiveConnectionWait(getContext().sessionKey)?.summary : void 0
60
+ });
61
+ }
62
+ };
63
+ const describeTool = {
64
+ name: EXTERNAL_TOOL_NAMES.describe,
65
+ label: "📋 External Tool Contract",
66
+ description: "Load exact contracts for up to three external tools returned by xopc_tool_search.",
67
+ parameters: ToolDescribeSchema,
68
+ async execute(_toolCallId, params) {
69
+ const result = await service.describe(params.toolRefs);
70
+ return textResult({
71
+ ...result,
72
+ ...result.notFound.length ? { instruction: "These exact tool contracts are unavailable. Do not execute them, invent revisions, or reconnect the account. Use a different available tool or explain the capability failure." } : {}
73
+ });
74
+ }
75
+ };
76
+ const executeTool = {
77
+ name: EXTERNAL_TOOL_NAMES.execute,
78
+ label: "▶️ External Tool Execute",
79
+ description: "Execute one external tool using its exact reference, contract revision, and validated arguments.",
80
+ parameters: ToolExecuteSchema,
81
+ async execute(toolCallId, params, signal, onUpdate) {
82
+ const result = await service.execute({
83
+ ...params,
84
+ context: {
85
+ toolCallId,
86
+ signal,
87
+ onUpdate
88
+ }
89
+ });
90
+ return {
91
+ ...result,
92
+ details: {
93
+ ...result.details ?? {},
94
+ delegatedToolRef: params.toolRef,
95
+ delegatedToolRevision: params.revision
96
+ }
97
+ };
98
+ }
99
+ };
100
+ const requireSchema = Type.Object({
101
+ requirements: Type.Array(Type.Object({
102
+ candidateRef: Type.String(),
103
+ accountId: Type.Optional(Type.String()),
104
+ accountSelector: Type.Optional(Type.String({ maxLength: 100 }))
105
+ }), {
106
+ minItems: 1,
107
+ maxItems: 5
108
+ }),
109
+ purpose: Type.String({
110
+ minLength: 1,
111
+ maxLength: 1e3
112
+ }),
113
+ checkpoint: Type.Object({
114
+ completedSteps: Type.Array(Type.String({ maxLength: 500 }), { maxItems: 20 }),
115
+ pendingSteps: Type.Array(Type.String({ maxLength: 500 }), {
116
+ minItems: 1,
117
+ maxItems: 20
118
+ }),
119
+ timeRange: Type.Optional(Type.Object({
120
+ from: Type.String(),
121
+ to: Type.String(),
122
+ timezone: Type.String(),
123
+ expression: Type.String()
124
+ }))
125
+ }, { description: "Preserve completed work, remaining work, and absolute dates resolved from the original request. Never include credentials." })
126
+ });
127
+ const requireTool = {
128
+ name: EXTERNAL_TOOL_NAMES.requireConnection,
129
+ label: "Connect app",
130
+ parameters: requireSchema,
131
+ description: "Request the connections returned as connectionCandidates by xopc_tool_search. Explain the need once before calling. This pauses the current objective and displays one action area above the input. Never return OAuth URLs or repeat a skipped request. If another objective is waiting, ask the user to continue or cancel it first.",
132
+ async execute(_id, params) {
133
+ const context = getContext?.();
134
+ if (!context) throw new Error("No active conversation.");
135
+ const range = params.checkpoint.timeRange;
136
+ if (range && (!Number.isFinite(Date.parse(range.from)) || !Number.isFinite(Date.parse(range.to)) || Date.parse(range.from) >= Date.parse(range.to))) throw new Error("Provide a valid absolute time range.");
137
+ if (range) new Intl.DateTimeFormat("en", { timeZone: range.timezone }).format();
138
+ const principal = connectorPrincipalForSession(context.sessionKey);
139
+ if (!principal.isLocalOwner) throw new Error("Connection recovery is available in the owner chat.");
140
+ const selected = connectionBindings(context.sessionKey);
141
+ if (params.requirements.every((item) => selected.some((need) => need.connectorId === item.candidateRef && need.connectionId && (!item.accountId || item.accountId === need.accountId) && (!item.accountSelector || item.accountSelector === need.accountSelector) && listConnectorConnections({
142
+ principalId: principal.principalId,
143
+ connectorId: need.connectorId
144
+ }).some((connection) => connection.id === need.connectionId && connection.status === "active")))) return textResult({
145
+ status: "already_connected",
146
+ selectedConnections: selected,
147
+ instruction: "These accounts were already checked for this objective. Missing tool contracts are a tool availability problem. Do not request authorization again or invent a revision. Explain the unavailable capability and stop retrying the same tools."
148
+ });
149
+ const result = requireSessionConnection({
150
+ sessionKey: context.sessionKey,
151
+ principalId: principal.principalId,
152
+ agentId: principal.agentId ?? "main",
153
+ summary: params.purpose,
154
+ checkpoint: params.checkpoint,
155
+ needs: params.requirements.map((item) => {
156
+ const need = resolveConnectionCandidate(item.candidateRef);
157
+ if (item.accountId && !listConnectorConnections({
158
+ principalId: principal.principalId,
159
+ connectorId: need.connectorId
160
+ }).some((connection) => connection.accountId === item.accountId)) throw new Error("Unknown account for this app.");
161
+ return {
162
+ ...need,
163
+ accountId: item.accountId,
164
+ accountSelector: item.accountSelector,
165
+ key: `${need.connectorId}:${item.accountId ?? item.accountSelector ?? "default"}`
166
+ };
167
+ })
168
+ });
169
+ publishConnectionWait(context.sessionKey);
170
+ return textResult(result);
171
+ }
172
+ };
173
+ const reviseSchema = Type.Object({
174
+ action: Type.Union([Type.Literal("update"), Type.Literal("cancel")]),
175
+ objective: Type.Optional(Type.String({
176
+ minLength: 1,
177
+ maxLength: 4e3
178
+ }))
179
+ });
43
180
  return [
181
+ searchTool,
182
+ describeTool,
183
+ executeTool,
184
+ requireTool,
44
185
  {
45
- name: EXTERNAL_TOOL_NAMES.search,
46
- label: "🔎 External Tool Search",
47
- description: "Search MCP, connected-app, extension, remote-memory, and current-endpoint tools. Use concise English capability keywords. Returns compact references only; call xopc_tool_describe before execution.",
48
- parameters: ToolSearchSchema,
49
- async execute(_toolCallId, params) {
50
- return textResult(await service.search(params));
51
- }
52
- },
53
- {
54
- name: EXTERNAL_TOOL_NAMES.describe,
55
- label: "📋 External Tool Contract",
56
- description: "Load exact contracts for up to three external tools returned by xopc_tool_search.",
57
- parameters: ToolDescribeSchema,
58
- async execute(_toolCallId, params) {
59
- return textResult(await service.describe(params.toolRefs));
60
- }
61
- },
62
- {
63
- name: EXTERNAL_TOOL_NAMES.execute,
64
- label: "▶️ External Tool Execute",
65
- description: "Execute one external tool using its exact reference, contract revision, and validated arguments.",
66
- parameters: ToolExecuteSchema,
67
- async execute(toolCallId, params, signal, onUpdate) {
68
- const result = await service.execute({
69
- ...params,
70
- context: {
71
- toolCallId,
72
- signal,
73
- onUpdate
74
- }
75
- });
76
- return {
77
- ...result,
78
- details: {
79
- ...result.details ?? {},
80
- delegatedToolRef: params.toolRef,
81
- delegatedToolRevision: params.revision
82
- }
83
- };
186
+ name: EXTERNAL_TOOL_NAMES.updateConnectionObjective,
187
+ label: "Update waiting objective",
188
+ parameters: reviseSchema,
189
+ description: "Use when the user supplements or explicitly cancels the objective waiting for a connection. Update with the complete revised objective including the requested time range. For unrelated work leave the waiting objective unchanged. Cancellation does not disconnect the account.",
190
+ async execute(_id, params) {
191
+ const context = getContext?.();
192
+ if (!context) throw new Error("No active conversation.");
193
+ if (params.action === "update" && !params.objective) throw new Error("The revised objective is required.");
194
+ reviseCurrentConnectionObjective(context.sessionKey, params.action === "update" ? params.objective : void 0);
195
+ return textResult({ status: params.action === "update" ? "updated" : "cancelled" });
84
196
  }
85
197
  }
86
198
  ];
@@ -40,7 +40,7 @@ function createDefaultExternalToolGatewayTools(deps) {
40
40
  runtime: deps.endpointTools,
41
41
  getCurrentContext: deps.getCurrentContext
42
42
  }));
43
- return createExternalToolGatewayTools(providers);
43
+ return createExternalToolGatewayTools(providers, deps.getCurrentContext);
44
44
  }
45
45
  //#endregion
46
46
  export { EXTERNAL_TOOL_NAMES, ExternalToolService, createDefaultExternalToolGatewayTools };
@@ -0,0 +1,12 @@
1
+ export declare class ExternalToolSearchError extends Error {
2
+ readonly phase: 'create_session' | 'search';
3
+ readonly toolkits: string[];
4
+ constructor(phase: 'create_session' | 'search', toolkits: string[], cause: unknown);
5
+ }
6
+ /** Expose diagnostic metadata without returning provider payloads or credentials to the model. */
7
+ export declare function searchFailureDetails(error: unknown): {
8
+ phase: string;
9
+ toolkits?: string[];
10
+ code?: string | number;
11
+ status?: number;
12
+ };
@@ -0,0 +1,29 @@
1
+ //#region src/agent/external-tools/search-error.ts
2
+ var ExternalToolSearchError = class extends Error {
3
+ constructor(phase, toolkits, cause) {
4
+ super(`Composio tool discovery failed during ${phase}`, { cause });
5
+ this.phase = phase;
6
+ this.toolkits = toolkits;
7
+ this.name = "ExternalToolSearchError";
8
+ }
9
+ };
10
+ /** Expose diagnostic metadata without returning provider payloads or credentials to the model. */
11
+ function searchFailureDetails(error) {
12
+ const details = error instanceof ExternalToolSearchError ? {
13
+ phase: error.phase,
14
+ toolkits: error.toolkits
15
+ } : { phase: "search" };
16
+ const visited = /* @__PURE__ */ new Set();
17
+ let current = error;
18
+ while (current && typeof current === "object" && !visited.has(current)) {
19
+ visited.add(current);
20
+ const row = current;
21
+ if (details.code === void 0 && (typeof row.code === "number" || typeof row.code === "string" && /^[a-zA-Z0-9_.-]{1,100}$/.test(row.code))) details.code = row.code;
22
+ const status = row.status ?? row.statusCode;
23
+ if (details.status === void 0 && typeof status === "number") details.status = status;
24
+ current = row.cause;
25
+ }
26
+ return details;
27
+ }
28
+ //#endregion
29
+ export { ExternalToolSearchError, searchFailureDetails };
@@ -1,3 +1,4 @@
1
+ import { searchFailureDetails } from './search-error.js';
1
2
  import type { ExternalToolExecutionContext, ExternalToolProvider, ExternalToolSearchHit, ExternalToolSource, VersionedExternalToolDescriptor } from './types.js';
2
3
  export declare class ExternalToolService {
3
4
  private readonly providerBySource;
@@ -10,6 +11,9 @@ export declare class ExternalToolService {
10
11
  }): Promise<{
11
12
  tools: ExternalToolSearchHit[];
12
13
  unavailableSources: ExternalToolSource[];
14
+ sourceErrors?: Array<ReturnType<typeof searchFailureDetails> & {
15
+ source: ExternalToolSource;
16
+ }>;
13
17
  }>;
14
18
  describe(toolRefs: string[]): Promise<{
15
19
  tools: VersionedExternalToolDescriptor[];
@@ -1,6 +1,11 @@
1
+ import { createLogger } from "../../utils/logger/index.js";
2
+ import { init_logger } from "../../utils/logger.js";
3
+ import { searchFailureDetails } from "./search-error.js";
1
4
  import crypto from "node:crypto";
2
5
  import Ajv2020 from "ajv/dist/2020.js";
3
6
  //#region src/agent/external-tools/service.ts
7
+ init_logger();
8
+ const log = createLogger("ExternalToolService");
4
9
  const DEFAULT_SEARCH_LIMIT = 8;
5
10
  const MAX_SEARCH_LIMIT = 20;
6
11
  const MAX_DESCRIBE_COUNT = 3;
@@ -49,11 +54,25 @@ var ExternalToolService = class {
49
54
  hits: await provider.search(params.query)
50
55
  })));
51
56
  const unavailableSources = [];
57
+ const sourceErrors = [];
52
58
  const hits = [];
53
59
  for (const [index, result] of settled.entries()) if (result.status === "fulfilled") hits.push(...result.value.hits);
54
60
  else {
55
61
  const provider = selected[index];
56
- if (provider) unavailableSources.push(provider.source);
62
+ if (provider) {
63
+ unavailableSources.push(provider.source);
64
+ const details = {
65
+ source: provider.source,
66
+ ...searchFailureDetails(result.reason)
67
+ };
68
+ sourceErrors.push(details);
69
+ const errorMessage = result.reason instanceof Error ? result.reason.message : String(result.reason);
70
+ log.warn({
71
+ ...details,
72
+ err: result.reason instanceof Error ? result.reason : void 0,
73
+ errorMessage
74
+ }, `External tool search failed for ${provider.source}: ${errorMessage}`);
75
+ }
57
76
  }
58
77
  const limit = Math.min(MAX_SEARCH_LIMIT, Math.max(1, params.limit ?? DEFAULT_SEARCH_LIMIT));
59
78
  return {
@@ -67,7 +86,8 @@ var ExternalToolService = class {
67
86
  title: hit.title,
68
87
  summary: hit.summary.slice(0, 300)
69
88
  })),
70
- unavailableSources
89
+ unavailableSources,
90
+ ...sourceErrors.length ? { sourceErrors } : {}
71
91
  };
72
92
  }
73
93
  async describe(toolRefs) {
@@ -8,7 +8,7 @@ const POLICY_DEFAULTS = {
8
8
  postCompactionSections: ["Session Startup", "Red Lines"]
9
9
  };
10
10
  function resolveCompactionPolicy(config) {
11
- const configured = config?.userContext.memory.retention?.compaction;
11
+ const configured = config?.userContext.contextPlanning.compaction;
12
12
  if (!configured) return {
13
13
  ...POLICY_DEFAULTS,
14
14
  postCompactionSections: [...POLICY_DEFAULTS.postCompactionSections]
@@ -1,4 +1,5 @@
1
- import { getMemoryRecord, setMemoryRecordStatus, upsertMemoryRecord } from "../../storage/sqlite/memory-records-repository.js";
1
+ import { listKnowledgeItems, setKnowledgeStatus, writeKnowledgeItem } from "../../knowledge-memory/repository.js";
2
+ import "../../knowledge-memory/index.js";
2
3
  import { resolveMemorySessionKind } from "./turn-provenance.js";
3
4
  import { createHash } from "node:crypto";
4
5
  //#region src/agent/memory/compaction-promotion.ts
@@ -10,17 +11,17 @@ const DURABLE_KINDS = new Set([
10
11
  "constraint",
11
12
  "next_action"
12
13
  ]);
13
- const RECALL_TOOL_RE = /^(?:memory_(?:search|get)|session_(?:search|recall))$/;
14
- const MEMORY_KIND_BY_HANDOVER_KIND = {
15
- objective: "long_term_goal",
16
- decision: "derived_insight",
14
+ const RECALL_TOOL_RE = /^(?:(?:user_context|knowledge)_(?:search|get)|session_(?:search|recall))$/;
15
+ const KNOWLEDGE_KIND_BY_HANDOVER_KIND = {
16
+ objective: "commitment",
17
+ decision: "decision",
17
18
  pending_user_ask: "open_question",
18
19
  todo: "commitment",
19
- constraint: "project_context",
20
+ constraint: "project_fact",
20
21
  file_change: "workspace_fact",
21
22
  tool_outcome: "task_lesson",
22
23
  failure: "task_lesson",
23
- current_state: "current_state",
24
+ current_state: "episode",
24
25
  next_action: "commitment"
25
26
  };
26
27
  function stableId(prefix, ...parts) {
@@ -111,99 +112,66 @@ function promoteCompactionLedger(input) {
111
112
  };
112
113
  const sessionKind = resolveMemorySessionKind(input.sessionKey);
113
114
  for (const item of input.handover.items) {
114
- const episodeId = stableId("compaction-episode", input.sessionId, item.id);
115
115
  const classified = classifyItemProvenance(item, sourceById, entriesByTurn, entriesByRound);
116
116
  const originClass = sessionKind === "automation" || sessionKind === "workflow" || sessionKind === "background" ? "system" : sessionKind === "group" ? "untrusted" : classified.originClass;
117
117
  const active = item.status === "active";
118
- upsertMemoryRecord({
119
- id: episodeId,
120
- providerId: "compaction-ledger",
121
- kind: MEMORY_KIND_BY_HANDOVER_KIND[item.kind],
122
- sourceAgentId: input.sourceAgentId,
123
- workspaceId: input.workspaceId,
124
- sessionKey: input.sessionKey,
125
- projectId: input.projectId,
118
+ const episode = writeKnowledgeItem({
119
+ kind: KNOWLEDGE_KIND_BY_HANDOVER_KIND[item.kind],
120
+ scope: {
121
+ type: "session",
122
+ id: input.sessionKey
123
+ },
126
124
  content: item.text,
127
125
  canonicalKey: `compaction:${input.sessionId}:${item.id}`,
128
- source: {
129
- provider: "compaction-ledger",
130
- sessionEntryId: item.sources[0]?.entryId
131
- },
132
126
  confidence: input.audit.status === "passed" ? .82 : .65,
133
- tags: [
134
- "compaction",
135
- "episodic",
136
- item.kind,
137
- item.status
138
- ],
139
127
  status: active ? "candidate" : "archived",
140
- sensitivity: "normal",
141
- explicitness: "inferred",
142
- durability: "ephemeral",
143
128
  importance: importanceFor(item),
144
- disclosurePolicy: "referenceable",
145
- evidence: item.sources.map((source) => ({
146
- sessionKey: input.sessionKey,
147
- turnId: rowTurnId(sourceById.get(source.entryId)),
148
- relation: "derived_from",
149
- sourceText: `[transcript:${source.seq}] ${item.text}`,
150
- observedAt: classified.observedAt
151
- })),
152
129
  originClass,
153
- sessionKind,
154
- observedAt: classified.observedAt,
130
+ sourceAgentId: input.sourceAgentId,
155
131
  sourceSessionId: input.sessionKey,
156
- supersedesKey: item.id,
157
- derivedFromRecalledContext: classified.derivedFromRecalledContext
132
+ sourceTurnId: item.sources[0] ? rowTurnId(sourceById.get(item.sources[0].entryId)) : void 0,
133
+ derivedFromRecalledContext: classified.derivedFromRecalledContext,
134
+ source: {
135
+ provider: "compaction-ledger",
136
+ sessionEntryIds: item.sources.map((source) => source.entryId),
137
+ observedAt: classified.observedAt,
138
+ handoverKind: item.kind
139
+ }
158
140
  });
159
- result.episodicRecordIds.push(episodeId);
160
- const durableId = stableId("compaction-durable", input.workspaceId, input.projectId ?? "", item.kind, item.text);
141
+ result.episodicRecordIds.push(episode.item.id);
161
142
  if (!(active && input.audit.status === "passed" && sessionKind === "interactive" && originClass === "agent" && !classified.derivedFromRecalledContext && DURABLE_KINDS.has(item.kind))) {
162
- if ((!active ? getMemoryRecord(durableId) : null)?.provenance.sourceSessionId === input.sessionKey) setMemoryRecordStatus(durableId, "archived");
163
- result.rejectedRecordIds.push(episodeId);
143
+ const existingDurable = !active ? listKnowledgeItems({ limit: 2e3 }).find((entry) => entry.canonicalKey === `durable:${item.kind}:${stableId("fact", item.text)}`) : void 0;
144
+ if (existingDurable?.sourceSessionId === input.sessionKey) setKnowledgeStatus(existingDurable.id, "archived");
145
+ result.rejectedRecordIds.push(episode.item.id);
164
146
  continue;
165
147
  }
166
- upsertMemoryRecord({
167
- id: durableId,
168
- providerId: "compaction-ledger",
169
- kind: MEMORY_KIND_BY_HANDOVER_KIND[item.kind],
148
+ const durable = writeKnowledgeItem({
149
+ kind: KNOWLEDGE_KIND_BY_HANDOVER_KIND[item.kind],
150
+ scope: input.projectId ? {
151
+ type: "project",
152
+ id: input.projectId
153
+ } : {
154
+ type: "workspace",
155
+ id: input.workspaceId
156
+ },
170
157
  sourceAgentId: input.sourceAgentId,
171
- workspaceId: input.workspaceId,
172
- projectId: input.projectId,
173
158
  content: item.text,
174
159
  canonicalKey: `durable:${item.kind}:${stableId("fact", item.text)}`,
175
- source: {
176
- provider: "compaction-ledger",
177
- sessionEntryId: item.sources[0]?.entryId
178
- },
179
160
  confidence: .82,
180
- tags: [
181
- "compaction",
182
- "durable",
183
- item.kind
184
- ],
185
161
  status: "active",
186
- sensitivity: "normal",
187
- explicitness: "inferred",
188
- durability: "durable",
189
162
  importance: importanceFor(item),
190
- disclosurePolicy: "referenceable",
191
- evidence: [{
192
- sessionKey: input.sessionKey,
193
- turnId: item.sources[0] ? rowTurnId(sourceById.get(item.sources[0].entryId)) : void 0,
194
- relation: "derived_from",
195
- sourceText: item.text,
196
- observedAt: classified.observedAt
197
- }],
198
- supersedesRecordId: episodeId,
199
163
  originClass: "agent",
200
- sessionKind,
201
- observedAt: classified.observedAt,
202
164
  sourceSessionId: input.sessionKey,
203
- supersedesKey: item.id,
204
- derivedFromRecalledContext: false
165
+ sourceTurnId: item.sources[0] ? rowTurnId(sourceById.get(item.sources[0].entryId)) : void 0,
166
+ derivedFromRecalledContext: false,
167
+ source: {
168
+ provider: "compaction-ledger",
169
+ episodeKnowledgeId: episode.item.id,
170
+ sessionEntryIds: item.sources.map((source) => source.entryId),
171
+ observedAt: classified.observedAt
172
+ }
205
173
  });
206
- result.durableRecordIds.push(durableId);
174
+ result.durableRecordIds.push(durable.item.id);
207
175
  }
208
176
  return result;
209
177
  }
@@ -1,5 +1,4 @@
1
1
  import { isMemorySubsystemEnabled } from "./memory-config.js";
2
- import { BuiltinMemoryProvider } from "./builtin-provider.js";
3
2
  import { MemoryManager } from "./manager.js";
4
3
  import { loadMemoryPluginProviders } from "./plugin-discovery.js";
5
4
  import { buildMemoryRuntime } from "./runtime.js";
@@ -12,13 +11,12 @@ function createMemoryManagerFromConfig(config) {
12
11
  ...config ? { memoryRuntime: buildMemoryRuntime(config.userContext) } : {},
13
12
  ...enabled ? { loadProviders: () => loadMemoryPluginProviders({ config }) } : {}
14
13
  });
15
- mgr.addProvider(new BuiltinMemoryProvider());
16
14
  if (!enabled) return mgr;
17
15
  return mgr;
18
16
  }
19
17
  function resolveMemoryManagerOptions(config) {
20
18
  if (!config) return {};
21
- const providerRouting = config.userContext.providerRouting;
19
+ const providerRouting = config.userContext.knowledgeMemory;
22
20
  return {
23
21
  searchStrategy: providerRouting.searchStrategy,
24
22
  writeStrategy: providerRouting.writeStrategy,
@@ -1,12 +1,7 @@
1
- export { BuiltinMemoryProvider } from './builtin-provider.js';
2
1
  export { buildUserContextBlock, sanitizeUserContextFenceEscapes, } from './context-fence.js';
3
- export { UserContextPlanner } from '../../user-context/planner.js';
4
- export type { UserContextPlan } from './context/types.js';
5
2
  export { createMemoryManagerFromConfig } from './create-memory-manager.js';
6
3
  export { isMemorySubsystemEnabled, shouldPlanUserContextThisTurn, } from './memory-config.js';
7
4
  export { MemoryManager } from './manager.js';
8
- export { UserUnderstandingService } from './understanding/service.js';
9
- export type { UnderstandingCandidate, UnderstandingReviewResult } from './understanding/types.js';
10
5
  export { discoverMemoryPlugins } from './plugin-discovery.js';
11
6
  export type { MemoryPluginMetadata } from './plugin-discovery.js';
12
7
  export type { MemoryProvider, MemoryProviderInitOptions } from './provider.js';
@@ -1,11 +1,8 @@
1
1
  import { isMemorySubsystemEnabled, shouldPlanUserContextThisTurn } from "./memory-config.js";
2
- import { buildUserContextBlock, sanitizeUserContextFenceEscapes } from "./context-fence.js";
3
- import { UserContextPlanner } from "../../user-context/planner.js";
4
2
  import { extractAgentUserPlainText } from "./user-message-text.js";
5
- import { BuiltinMemoryProvider } from "./builtin-provider.js";
6
- import { UserUnderstandingService } from "./understanding/service.js";
7
3
  import { MemoryManager } from "./manager.js";
8
4
  import { discoverMemoryPlugins } from "./plugin-discovery.js";
9
5
  import { createMemoryManagerFromConfig } from "./create-memory-manager.js";
6
+ import { buildUserContextBlock, sanitizeUserContextFenceEscapes } from "./context-fence.js";
10
7
  import { StubMemoryProvider } from "./stub-memory-provider.js";
11
- export { BuiltinMemoryProvider, MemoryManager, StubMemoryProvider, UserContextPlanner, UserUnderstandingService, buildUserContextBlock, createMemoryManagerFromConfig, discoverMemoryPlugins, extractAgentUserPlainText, isMemorySubsystemEnabled, sanitizeUserContextFenceEscapes, shouldPlanUserContextThisTurn };
8
+ export { MemoryManager, StubMemoryProvider, buildUserContextBlock, createMemoryManagerFromConfig, discoverMemoryPlugins, extractAgentUserPlainText, isMemorySubsystemEnabled, sanitizeUserContextFenceEscapes, shouldPlanUserContextThisTurn };
@@ -1,7 +1,6 @@
1
1
  import type { AgentTool } from '@earendil-works/pi-agent-core';
2
2
  import type { MemoryRuntime } from './runtime.js';
3
3
  import type { MemoryProvider, MemoryProviderInitOptions } from './provider.js';
4
- import type { UnderstandingCandidate } from './understanding/types.js';
5
4
  import type { MemoryDeleteRequest, MemoryListRequest, MemoryReadRequest, MemoryReadResult, MemorySearchRequest, MemorySearchResult, MemoryUpdateRequest, MemoryWriteRequest, MemoryWriteResult, MemoryRecord, MemorySignal, MemoryKind } from './types.js';
6
5
  import type { TurnMemoryProvenance } from './turn-provenance.js';
7
6
  export type MemorySearchStrategy = 'local-first' | 'external-first' | 'fanout' | 'local-only' | 'external-only';
@@ -28,7 +27,6 @@ export declare class MemoryManager {
28
27
  private readonly loadProviders?;
29
28
  private readonly writePolicy;
30
29
  private pluginProvidersLoaded;
31
- private readonly understanding;
32
30
  private readonly memoryRuntime?;
33
31
  private readonly sessionContexts;
34
32
  constructor(options?: MemoryManagerOptions);
@@ -44,20 +42,6 @@ export declare class MemoryManager {
44
42
  turnId?: string;
45
43
  provenance?: TurnMemoryProvenance;
46
44
  }): Promise<void>;
47
- applyUnderstandingCandidates(candidates: UnderstandingCandidate[], context?: {
48
- agentId?: string;
49
- sessionKey?: string;
50
- workspaceId?: string;
51
- projectId?: string;
52
- sourceItemId?: string;
53
- sourceItemIds?: string[];
54
- evidenceIds?: string[];
55
- sourceText?: string;
56
- source?: MemoryRecord['source'];
57
- reviewSource?: 'turn' | 'background';
58
- extractionRunId?: string;
59
- supersedesRecordIds?: string[];
60
- }): Promise<import('./understanding/types.js').UnderstandingReviewResult>;
61
45
  getExternalToolEntries(): Array<{
62
46
  providerId: string;
63
47
  tool: AgentTool;