@xopcai/xopc 0.0.321 → 0.0.324

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 (709) hide show
  1. package/dist/browser-ext/dist/assets/{auth-DKo-NMUY.js → auth-DocRzRlS.js} +95 -21
  2. package/dist/browser-ext/dist/background.js +1 -1
  3. package/dist/browser-ext/dist/sidepanel.html +1 -1
  4. package/dist/browser-ext/dist/sidepanel.js +18 -2
  5. package/dist/browser-ext/manifest.json +1 -1
  6. package/dist/extensions/telegram/xopc.extension.json +1 -1
  7. package/dist/extensions/weixin/src/plugin.js +1 -9
  8. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-C69p1Gbr.js → agent-avatar-dicebear-B-Gczr_A.js} +1 -1
  9. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CxcIHW_Z.js +1 -0
  10. package/dist/gateway/static/root/assets/agent-plugin-dialog-CNuqJcHQ.js +1 -0
  11. package/dist/gateway/static/root/assets/{agents-CWR3p3t3.js → agents-CPpmkx7O.js} +1 -1
  12. package/dist/gateway/static/root/assets/{app-link-nL8iPwEr.js → app-link-C6gA5Nck.js} +1 -1
  13. package/dist/gateway/static/root/assets/{app-management-settings-panel-D98bt40S.js → app-management-settings-panel-BwWdVRlb.js} +1 -1
  14. package/dist/gateway/static/root/assets/{appearance-settings-ChMUELAZ.js → appearance-settings-EoXNDO1j.js} +1 -1
  15. package/dist/gateway/static/root/assets/apps-page-6xEgLDv8.js +1 -0
  16. package/dist/gateway/static/root/assets/{archive-plugin-BIIiu6uP.js → archive-plugin-B_T0uMvL.js} +1 -1
  17. package/dist/gateway/static/root/assets/{attachment-load-CDJpcsCp.js → attachment-load-D9DDwxd2.js} +1 -1
  18. package/dist/gateway/static/root/assets/{automations-page-Cb5a_WOk.js → automations-page-jI9vNr2r.js} +1 -1
  19. package/dist/gateway/static/root/assets/automations-workspace-rztQnZDk.js +7 -0
  20. package/dist/gateway/static/root/assets/{binary-plugins-zp55zQPu.js → binary-plugins-Dzsxh9OL.js} +1 -1
  21. package/dist/gateway/static/root/assets/{block-editor-B0CTIZb-.js → block-editor-CWUUgWWk.js} +3 -3
  22. package/dist/gateway/static/root/assets/{browser-automation-inputs-Bx3W4J4H.js → browser-automation-inputs-DSWXq9lI.js} +1 -1
  23. package/dist/gateway/static/root/assets/{browser-automations-page-D5Lr9b8a.js → browser-automations-page-D96o3bDY.js} +2 -2
  24. package/dist/gateway/static/root/assets/browser-settings-page-DUQzQ3ic.js +3 -0
  25. package/dist/gateway/static/root/assets/capabilities-sAZT4brT.js +1 -0
  26. package/dist/gateway/static/root/assets/capabilities-settings-panel-CKWtXof8.js +8 -0
  27. package/dist/gateway/static/root/assets/channels-settings-C8ducWB7.js +1 -0
  28. package/dist/gateway/static/root/assets/{chat-terminal-dock-1I1PdIq0.js → chat-terminal-dock-WXZrEB3K.js} +2 -2
  29. package/dist/gateway/static/root/assets/{computer-settings-page-BT-EfoI6.js → computer-settings-page-uy9YDwxJ.js} +1 -1
  30. package/dist/gateway/static/root/assets/{connector-service-page-mhQ-19tj.js → connector-service-page-BpF0SjB9.js} +1 -1
  31. package/dist/gateway/static/root/assets/connectors-page-eZTfIMWI.js +2 -0
  32. package/dist/gateway/static/root/assets/date-picker-Do1dl0La.js +1 -0
  33. package/dist/gateway/static/root/assets/{dependency-picker-DLDLJx3D.js → dependency-picker-BhS8s080.js} +1 -1
  34. package/dist/gateway/static/root/assets/{desktop-pet-kSFeHyrt.js → desktop-pet-DPVPqFlh.js} +1 -1
  35. package/dist/gateway/static/root/assets/{desktop-pet-settings-BjY7DqD7.js → desktop-pet-settings-Dv3vG9HZ.js} +1 -1
  36. package/dist/gateway/static/root/assets/device-pairing-wizard-DdvO1O6W.js +1 -0
  37. package/dist/gateway/static/root/assets/dist-3h6cXXhT.js +1 -0
  38. package/dist/gateway/static/root/assets/{extension-debug-page-DbWJDT4X.js → extension-debug-page-cuG5Lnwf.js} +1 -1
  39. package/dist/gateway/static/root/assets/{extension-page-lAC_2xWA.js → extension-page-BCTAXdyE.js} +1 -1
  40. package/dist/gateway/static/root/assets/{extension-settings-page-jFy1NJg9.js → extension-settings-page-kadW_icu.js} +1 -1
  41. package/dist/gateway/static/root/assets/{gateway-config-swr-B7WpH3VW.js → gateway-config-swr-CoQVulMd.js} +1 -1
  42. package/dist/gateway/static/root/assets/gateway-settings-CLZyN-u9.js +1 -0
  43. package/dist/gateway/static/root/assets/{gateway-startup-retry-C8F_z865.js → gateway-startup-retry-B5GJ-CQV.js} +1 -1
  44. package/dist/gateway/static/root/assets/home-page-BSqg-JE9.js +1 -0
  45. package/dist/gateway/static/root/assets/{image-generation-api-Dc7d0_7q.js → image-generation-api-DvWDkbk1.js} +1 -1
  46. package/dist/gateway/static/root/assets/{imports-page-_fMvJvzM.js → imports-page-_pddpuej.js} +1 -1
  47. package/dist/gateway/static/root/assets/index-BKL5tg2f.css +1 -0
  48. package/dist/gateway/static/root/assets/index-CJuypaNt.js +121 -0
  49. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CHnZYx1U.js → keyboard-shortcuts-settings-C1fKIjz4.js} +1 -1
  50. package/dist/gateway/static/root/assets/local-app-workbench-page-DXFnYiA0.js +1 -0
  51. package/dist/gateway/static/root/assets/local-apps-Bpja8nC6.js +1 -0
  52. package/dist/gateway/static/root/assets/local-apps-page-CkXKS5xe.js +1 -0
  53. package/dist/gateway/static/root/assets/{locale-store-D9krC43K.js → locale-store-BPZR8x9b.js} +1 -1
  54. package/dist/gateway/static/root/assets/logs-page-C33z-ife.js +2 -0
  55. package/dist/gateway/static/root/assets/management-settings-8eDZb0uS.js +1 -0
  56. package/dist/gateway/static/root/assets/{markdown-view-CurpvCbB.js → markdown-view-Dft8ASFD.js} +1 -1
  57. package/dist/gateway/static/root/assets/{media-plugins-CYldyH6K.js → media-plugins-Cjj-fidX.js} +1 -1
  58. package/dist/gateway/static/root/assets/messages-kFWhF6_t.js +3 -0
  59. package/dist/gateway/static/root/assets/note-detail-panel-C95RtLuL.js +5 -0
  60. package/dist/gateway/static/root/assets/notes-page-kFxknjMR.js +8 -0
  61. package/dist/gateway/static/root/assets/{page-context-capture-button-DZOiI84c.js → page-context-capture-button-OUL3fEYh.js} +1 -1
  62. package/dist/gateway/static/root/assets/{page-tabs-C-XCf9cR.js → page-tabs-CVbY7_N5.js} +1 -1
  63. package/dist/gateway/static/root/assets/popover-select-DcsFzD_i.js +1 -0
  64. package/dist/gateway/static/root/assets/{preview-open-alternatives-CvgeoEU8.js → preview-open-alternatives-CKiIby0r.js} +1 -1
  65. package/dist/gateway/static/root/assets/product-delivery-bv3z8Xkh.js +1 -0
  66. package/dist/gateway/static/root/assets/product-open-page-DlpCi5zT.js +1 -0
  67. package/dist/gateway/static/root/assets/project-detail-page-LPAxUszX.js +1 -0
  68. package/dist/gateway/static/root/assets/projects-page-Cbyb4hyy.js +1 -0
  69. package/dist/gateway/static/root/assets/{registry-api-cK-g8BDq.js → registry-api-DWWO6ajd.js} +1 -1
  70. package/dist/gateway/static/root/assets/remote-access-hub-BtDFZc6g.js +1 -0
  71. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-DlUodTo-.js → runtime-tools-settings-panel-BT_ANpaT.js} +2 -2
  72. package/dist/gateway/static/root/assets/scenes-page-CJlc-mg1.js +2 -0
  73. package/dist/gateway/static/root/assets/{schema-form-BfboLCeN.js → schema-form-BcqsqSsV.js} +1 -1
  74. package/dist/gateway/static/root/assets/sessions-page-CUo6-iV2.js +1 -0
  75. package/dist/gateway/static/root/assets/settings-advanced-gate-XeSxPjP7.js +1 -0
  76. package/dist/gateway/static/root/assets/{settings-form-section-BytEfCGo.js → settings-form-section-Dol9j_pF.js} +1 -1
  77. package/dist/gateway/static/root/assets/{settings-page-Da2ql9KX.js → settings-page-B65vii9U.js} +1 -1
  78. package/dist/gateway/static/root/assets/{settings-page-layout-CBfB_7yz.js → settings-page-layout-eqTUTW2L.js} +1 -1
  79. package/dist/gateway/static/root/assets/setup-status-panel-BCt__prc.js +1 -0
  80. package/dist/gateway/static/root/assets/{share-preview-page-B8J0Saj5.js → share-preview-page-BS8o58NJ.js} +1 -1
  81. package/dist/gateway/static/root/assets/shares-settings-BsjSqEnw.js +1 -0
  82. package/dist/gateway/static/root/assets/skill-reload-api-evN7gs0S.js +1 -0
  83. package/dist/gateway/static/root/assets/skills-page-BifYwEhe.js +2 -0
  84. package/dist/gateway/static/root/assets/{skills-page.utils-B53tyGx5.js → skills-page.utils-DOk-iOvN.js} +1 -1
  85. package/dist/gateway/static/root/assets/{system-settings-panel-0HAvlVtR.js → system-settings-panel-CcSvoHfY.js} +1 -1
  86. package/dist/gateway/static/root/assets/task-detail-page-pCRG7Jb3.js +1 -0
  87. package/dist/gateway/static/root/assets/{tunnel-api-DJsxU6q_.js → tunnel-api-DDGMf44u.js} +1 -1
  88. package/dist/gateway/static/root/assets/{use-autosave-eIELzAOD.js → use-autosave-DiIkxIq7.js} +1 -1
  89. package/dist/gateway/static/root/assets/user-model-page-CvYeM0Ml.js +2 -0
  90. package/dist/gateway/static/root/assets/{voice-api-key-field-BJ59ZCAn.js → voice-api-key-field-DJV-qERt.js} +1 -1
  91. package/dist/gateway/static/root/assets/{voice-config-api-DBXZJWLS.js → voice-config-api-BaxITrwZ.js} +1 -1
  92. package/dist/gateway/static/root/assets/{work-discovery-overlay-BpSxdIgB.js → work-discovery-overlay-DcHhy54L.js} +1 -1
  93. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-Bhlv3VUX.js → workflow-run-setup-panel-DbVtLh0R.js} +2 -2
  94. package/dist/gateway/static/root/assets/workflows-page-CT8ouKcB.js +6 -0
  95. package/dist/gateway/static/root/index.html +14 -12
  96. package/dist/package.js +1 -1
  97. package/dist/packages/gateway-contract/src/capabilities.js +4 -110
  98. package/dist/packages/gateway-contract/src/chat-previews.js +73 -0
  99. package/dist/packages/gateway-contract/src/home.js +284 -55
  100. package/dist/packages/gateway-contract/src/index.js +6 -2
  101. package/dist/packages/gateway-contract/src/local-apps.js +215 -0
  102. package/dist/packages/gateway-contract/src/notifications.js +3 -10
  103. package/dist/packages/gateway-contract/src/product-delivery.js +62 -17
  104. package/dist/packages/gateway-contract/src/user-turn-document.js +60 -0
  105. package/dist/src/activity/emitter.js +2 -1
  106. package/dist/src/activity/service.js +2 -1
  107. package/dist/src/agent/agent-manager.d.ts +4 -2
  108. package/dist/src/agent/agent-manager.js +37 -44
  109. package/dist/src/agent/agent-scope.d.ts +19 -48
  110. package/dist/src/agent/agent-scope.js +47 -169
  111. package/dist/src/agent/background-review/run-background-review.js +5 -4
  112. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -1
  113. package/dist/src/agent/commands/command-registry.js +7 -3
  114. package/dist/src/agent/context/coordinator.js +1 -1
  115. package/dist/src/agent/context/execution-context.js +2 -1
  116. package/dist/src/agent/context/execution-scope.js +2 -1
  117. package/dist/src/agent/context/workspace-seed.d.ts +1 -2
  118. package/dist/src/agent/context/workspace-seed.js +3 -3
  119. package/dist/src/agent/context/workspace-state.js +1 -1
  120. package/dist/src/agent/embedded/run-for-session.js +2 -2
  121. package/dist/src/agent/embedded/run-turn.js +2 -1
  122. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +2 -1
  123. package/dist/src/agent/embedded/transcript-runtime.d.ts +3 -0
  124. package/dist/src/agent/embedded/transcript-runtime.js +6 -0
  125. package/dist/src/agent/external-tools/cliProvider.js +6 -2
  126. package/dist/src/agent/external-tools/composio-provider.js +11 -4
  127. package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
  128. package/dist/src/agent/external-tools/gateway-tools.js +17 -10
  129. package/dist/src/agent/external-tools/index.js +2 -3
  130. package/dist/src/agent/external-tools/mcp-provider.d.ts +3 -1
  131. package/dist/src/agent/external-tools/mcp-provider.js +93 -8
  132. package/dist/src/agent/external-tools/service.d.ts +2 -1
  133. package/dist/src/agent/external-tools/service.js +8 -3
  134. package/dist/src/agent/external-tools/types.d.ts +9 -0
  135. package/dist/src/agent/image/tool-model-config.js +4 -5
  136. package/dist/src/agent/inbound/attachment-pipeline.js +1 -1
  137. package/dist/src/agent/ipc/bus.js +1 -1
  138. package/dist/src/agent/ipc/socket.js +3 -3
  139. package/dist/src/agent/mcp/bundle-mcp-config.js +37 -5
  140. package/dist/src/agent/mcp/bundle-mcp-gateway.d.ts +1 -0
  141. package/dist/src/agent/mcp/bundle-mcp-gateway.js +1 -0
  142. package/dist/src/agent/mcp/bundle-mcp-names.js +2 -1
  143. package/dist/src/agent/mcp/bundle-mcp-runtime.js +33 -1
  144. package/dist/src/agent/mcp/bundle-mcp-types.d.ts +4 -0
  145. package/dist/src/agent/mcp/index.js +1 -1
  146. package/dist/src/agent/mcp/mcp-stdio-transport.d.ts +1 -0
  147. package/dist/src/agent/mcp/mcp-stdio-transport.js +10 -0
  148. package/dist/src/agent/mcp/mcp-transport.js +12 -8
  149. package/dist/src/agent/mcp/oauth/index.js +1 -1
  150. package/dist/src/agent/mcp/oauth/mcp-oauth-manager.d.ts +6 -1
  151. package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +70 -14
  152. package/dist/src/agent/mcp/oauth/mcp-oauth-provider.js +1 -1
  153. package/dist/src/agent/mcp/oauth/mcp-oauth-session.d.ts +2 -0
  154. package/dist/src/agent/mcp/oauth/mcp-oauth-session.js +12 -0
  155. package/dist/src/agent/mcp/oauth/mcp-oauth-store.d.ts +3 -0
  156. package/dist/src/agent/mcp/oauth/mcp-oauth-store.js +13 -1
  157. package/dist/src/agent/mcp/plugin-http-fetch.d.ts +2 -0
  158. package/dist/src/agent/mcp/plugin-http-fetch.js +56 -0
  159. package/dist/src/agent/media-generation/runtime-shared.d.ts +1 -1
  160. package/dist/src/agent/media-generation/runtime-shared.js +1 -1
  161. package/dist/src/agent/memory/plugin-discovery.js +1 -2
  162. package/dist/src/agent/models/manager.d.ts +1 -1
  163. package/dist/src/agent/models/manager.js +2 -2
  164. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +1 -1
  165. package/dist/src/agent/prompt/response-language.js +2 -1
  166. package/dist/src/agent/prompt/service-prompt-builder.js +6 -3
  167. package/dist/src/agent/prompt/system-prompt.js +2 -1
  168. package/dist/src/agent/reply/post-compaction-context.js +2 -2
  169. package/dist/src/agent/service/build-direct-message-content.js +1 -1
  170. package/dist/src/agent/service/direct-turn-helpers.js +2 -1
  171. package/dist/src/agent/service/parse-outbound-session-key.js +2 -1
  172. package/dist/src/agent/service/process-direct-streaming.js +30 -14
  173. package/dist/src/agent/service/webchat-tts.js +2 -1
  174. package/dist/src/agent/service.d.ts +1 -1
  175. package/dist/src/agent/service.js +13 -11
  176. package/dist/src/agent/service.types.d.ts +4 -0
  177. package/dist/src/agent/session/session-inspector.js +4 -5
  178. package/dist/src/agent/skills/hub-pull.js +1 -1
  179. package/dist/src/agent/skills/index.js +8 -1
  180. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.d.ts +5 -0
  181. package/dist/src/agent/skills/skill-manager.d.ts +2 -0
  182. package/dist/src/agent/skills/skill-manager.js +8 -0
  183. package/dist/src/agent/skills/skill-sources.js +17 -0
  184. package/dist/src/agent/skills/types.d.ts +3 -1
  185. package/dist/src/agent/source-context/injector.js +10 -5
  186. package/dist/src/agent/source-context/types.d.ts +3 -0
  187. package/dist/src/agent/source-context/types.js +8 -2
  188. package/dist/src/agent/starter-agents.d.ts +4 -5
  189. package/dist/src/agent/starter-agents.js +21 -20
  190. package/dist/src/agent/tasks/task-judge-service.js +2 -2
  191. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  192. package/dist/src/agent/tool-manuals/xopc-use.js +42 -2
  193. package/dist/src/agent/tools/automation-tool.js +1 -1
  194. package/dist/src/agent/tools/delegation-parent-policy.js +2 -3
  195. package/dist/src/agent/tools/factory.d.ts +3 -0
  196. package/dist/src/agent/tools/factory.js +12 -10
  197. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  198. package/dist/src/agent/tools/workflow-tool.js +3 -4
  199. package/dist/src/agent/tools/write.js +1 -1
  200. package/dist/src/agent/tools/xopc-use-tool.d.ts +5 -2
  201. package/dist/src/agent/tools/xopc-use-tool.js +171 -15
  202. package/dist/src/agent/workflow/workflow-child-tools.js +1 -2
  203. package/dist/src/agent/workspace-runtime/registry.d.ts +1 -1
  204. package/dist/src/agent/workspace-runtime/registry.js +2 -2
  205. package/dist/src/agent-catalog/capabilities.d.ts +3 -0
  206. package/dist/src/agent-catalog/capabilities.js +238 -0
  207. package/dist/src/agent-catalog/id.d.ts +15 -0
  208. package/dist/src/agent-catalog/id.js +101 -0
  209. package/dist/src/agent-catalog/index.d.ts +6 -0
  210. package/dist/src/agent-catalog/index.js +10 -0
  211. package/dist/src/agent-catalog/migrations/legacy-config-cutover.d.ts +11 -0
  212. package/dist/src/agent-catalog/migrations/legacy-config-cutover.js +195 -0
  213. package/dist/src/agent-catalog/repository.d.ts +39 -0
  214. package/dist/src/agent-catalog/repository.js +319 -0
  215. package/dist/src/agent-catalog/service.d.ts +33 -0
  216. package/dist/src/agent-catalog/service.js +202 -0
  217. package/dist/src/agent-catalog/test-support.d.ts +14 -0
  218. package/dist/src/agent-catalog/test-support.js +34 -0
  219. package/dist/src/agent-catalog/types.d.ts +26 -0
  220. package/dist/src/agent-catalog/types.js +1 -0
  221. package/dist/src/agent-config/index.js +2 -2
  222. package/dist/src/agent-config/schema.d.ts +1 -172
  223. package/dist/src/agent-config/schema.js +2 -41
  224. package/dist/src/auth/credentials.js +3 -3
  225. package/dist/src/auth/oauth/xopc-cloud.js +1 -1
  226. package/dist/src/auth/sync-provider-auth.d.ts +1 -1
  227. package/dist/src/auth/sync-provider-auth.js +5 -9
  228. package/dist/src/automations/capabilities/drafts.js +8 -7
  229. package/dist/src/automations/service/action-executor.js +2 -1
  230. package/dist/src/bootstrap/application-state.d.ts +10 -0
  231. package/dist/src/bootstrap/application-state.js +26 -0
  232. package/dist/src/browser/automations/repository.js +2 -1
  233. package/dist/src/browser/automations/schema.d.ts +1 -1
  234. package/dist/src/browser/automations/service.d.ts +1 -1
  235. package/dist/src/browser/native-messaging-host.js +5 -4
  236. package/dist/src/browser/providers/extension.js +4 -2
  237. package/dist/src/browser/providers/realtime-extension.js +2 -1
  238. package/dist/src/capabilities/readiness/from-config.js +7 -4
  239. package/dist/src/capabilities/runtime/dispatcher.d.ts +1 -0
  240. package/dist/src/capabilities/runtime/dispatcher.js +10 -4
  241. package/dist/src/capabilities/runtime/product.js +2 -0
  242. package/dist/src/channels/catalog/channel-catalog-service.js +7 -13
  243. package/dist/src/chat-commands/agent-edit.js +4 -3
  244. package/dist/src/chat-commands/builtins/config.js +6 -8
  245. package/dist/src/chat-commands/builtins/review.js +1 -1
  246. package/dist/src/chat-commands/builtins/workflow.js +1 -1
  247. package/dist/src/chat-commands/config-paths.js +1 -1
  248. package/dist/src/chat-commands/context.js +2 -3
  249. package/dist/src/chat-previews/index.d.ts +2 -0
  250. package/dist/src/chat-previews/index.js +3 -0
  251. package/dist/src/chat-previews/service.d.ts +27 -0
  252. package/dist/src/chat-previews/service.js +106 -0
  253. package/dist/src/chat-previews/store.d.ts +28 -0
  254. package/dist/src/chat-previews/store.js +78 -0
  255. package/dist/src/cli/command-manifest.js +1 -1
  256. package/dist/src/cli/commands/agent.js +4 -4
  257. package/dist/src/cli/commands/agents.d.ts +1 -1
  258. package/dist/src/cli/commands/agents.js +36 -48
  259. package/dist/src/cli/commands/auth.js +1 -0
  260. package/dist/src/cli/commands/browser-cli-helpers.js +1 -2
  261. package/dist/src/cli/commands/channels.js +2 -4
  262. package/dist/src/cli/commands/config.js +4 -5
  263. package/dist/src/cli/commands/connectors.js +1 -2
  264. package/dist/src/cli/commands/doctor/checks/channel-config.js +2 -4
  265. package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js +1 -2
  266. package/dist/src/cli/commands/doctor/checks/channel-plugins.js +1 -2
  267. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -2
  268. package/dist/src/cli/commands/doctor/checks/database-schema.js +4 -4
  269. package/dist/src/cli/commands/doctor/checks/gateway-health.js +1 -2
  270. package/dist/src/cli/commands/doctor/checks/gateway-service.js +1 -2
  271. package/dist/src/cli/commands/doctor/checks/provider-auth.js +13 -11
  272. package/dist/src/cli/commands/doctor/checks/security-audit.js +1 -2
  273. package/dist/src/cli/commands/doctor/checks/session-integrity.js +3 -3
  274. package/dist/src/cli/commands/doctor/checks/tool-runtimes.js +1 -2
  275. package/dist/src/cli/commands/doctor/checks/workspace-status.js +5 -7
  276. package/dist/src/cli/commands/extension-agent-plugin.d.ts +8 -0
  277. package/dist/src/cli/commands/extension-agent-plugin.js +81 -0
  278. package/dist/src/cli/commands/extension-dev.js +2 -4
  279. package/dist/src/cli/commands/extension-marketplace.js +45 -6
  280. package/dist/src/cli/commands/extension-pack.js +1 -2
  281. package/dist/src/cli/commands/extension.js +36 -5
  282. package/dist/src/cli/commands/gateway/run-foreground.js +3 -3
  283. package/dist/src/cli/commands/gateway/shared.js +1 -1
  284. package/dist/src/cli/commands/history.js +2 -1
  285. package/dist/src/cli/commands/image.js +2 -2
  286. package/dist/src/cli/commands/init.js +11 -30
  287. package/dist/src/cli/commands/mcp.js +1 -2
  288. package/dist/src/cli/commands/models.js +13 -11
  289. package/dist/src/cli/commands/onboard/channels/registry.js +1 -2
  290. package/dist/src/cli/commands/onboard/gateway.js +1 -2
  291. package/dist/src/cli/commands/onboard/model.d.ts +1 -1
  292. package/dist/src/cli/commands/onboard/model.js +17 -25
  293. package/dist/src/cli/commands/onboard.js +4 -2
  294. package/dist/src/cli/commands/platform.js +1 -0
  295. package/dist/src/cli/commands/project.js +3 -3
  296. package/dist/src/cli/commands/providers.js +1 -0
  297. package/dist/src/cli/commands/runtime.js +1 -2
  298. package/dist/src/cli/commands/search.js +1 -2
  299. package/dist/src/cli/commands/skills.js +1 -2
  300. package/dist/src/cli/commands/tui-runner.js +3 -2
  301. package/dist/src/cli/commands/tui.js +6 -8
  302. package/dist/src/cli/commands/tunnel.js +1 -1
  303. package/dist/src/cli/commands/voice.js +1 -2
  304. package/dist/src/cli/extension-cli-register.js +1 -1
  305. package/dist/src/cli/index.js +4 -2
  306. package/dist/src/cli/utils/gateway-client.js +1 -1
  307. package/dist/src/cli/utils/init-workspace-core.js +15 -16
  308. package/dist/src/cli/utils/session.js +1 -2
  309. package/dist/src/computer/model-config.d.ts +3 -3
  310. package/dist/src/computer/model-config.js +10 -20
  311. package/dist/src/computer/runtime.js +1 -1
  312. package/dist/src/config/agent-model-intents.js +2 -2
  313. package/dist/src/config/agent-profile.d.ts +5 -6
  314. package/dist/src/config/agent-profile.js +19 -19
  315. package/dist/src/config/config-surface.d.ts +0 -3
  316. package/dist/src/config/default-model.js +2 -6
  317. package/dist/src/config/index.js +7 -8
  318. package/dist/src/config/loader.js +12 -18
  319. package/dist/src/config/models-json.d.ts +6 -6
  320. package/dist/src/config/paths.d.ts +18 -19
  321. package/dist/src/config/paths.js +35 -35
  322. package/dist/src/config/reload.d.ts +0 -1
  323. package/dist/src/config/reload.js +1 -6
  324. package/dist/src/config/rules.js +0 -15
  325. package/dist/src/config/schema.d.ts +3 -406
  326. package/dist/src/config/schema.js +24 -86
  327. package/dist/src/config/validate-channel-configs.js +8 -14
  328. package/dist/src/config/workspace-dirs.d.ts +3 -4
  329. package/dist/src/config/workspace-dirs.js +9 -8
  330. package/dist/src/config/workspace-path-helpers.d.ts +1 -1
  331. package/dist/src/config/workspace-path-helpers.js +2 -2
  332. package/dist/src/connectors/account-selection.js +1 -1
  333. package/dist/src/connectors/cli/lifecycle.js +2 -1
  334. package/dist/src/connectors/composio-managed-events.js +2 -1
  335. package/dist/src/connectors/connected-source-ingestion.js +2 -1
  336. package/dist/src/connectors/connected-source-understanding.js +4 -2
  337. package/dist/src/connectors/connection-candidates.d.ts +4 -1
  338. package/dist/src/connectors/connection-candidates.js +8 -2
  339. package/dist/src/connectors/connection-capabilities.d.ts +2 -2
  340. package/dist/src/connectors/connection-capabilities.js +3 -1
  341. package/dist/src/connectors/connection-recovery-service.d.ts +6 -1
  342. package/dist/src/connectors/connection-recovery-service.js +138 -26
  343. package/dist/src/connectors/content-enrichment.js +2 -1
  344. package/dist/src/connectors/learning-coordinator.js +2 -1
  345. package/dist/src/connectors/plugin-mcp-recovery.d.ts +28 -0
  346. package/dist/src/connectors/plugin-mcp-recovery.js +90 -0
  347. package/dist/src/connectors/runtime-adapter-registry.js +2 -1
  348. package/dist/src/connectors/workflow-preflight.d.ts +8 -1
  349. package/dist/src/connectors/workflow-preflight.js +11 -3
  350. package/dist/src/discussions/analyzer.js +2 -2
  351. package/dist/src/endpoint-tools/runtime.js +2 -1
  352. package/dist/src/execution-environments/subject.js +2 -1
  353. package/dist/src/extensions/activation-context.js +3 -16
  354. package/dist/src/extensions/agent-plugins/auth.d.ts +39 -0
  355. package/dist/src/extensions/agent-plugins/auth.js +156 -0
  356. package/dist/src/extensions/agent-plugins/connection.d.ts +8 -0
  357. package/dist/src/extensions/agent-plugins/connection.js +41 -0
  358. package/dist/src/extensions/agent-plugins/health.d.ts +4 -0
  359. package/dist/src/extensions/agent-plugins/health.js +48 -0
  360. package/dist/src/extensions/agent-plugins/inventory.d.ts +53 -0
  361. package/dist/src/extensions/agent-plugins/inventory.js +34 -0
  362. package/dist/src/extensions/agent-plugins/mcp-adapter.d.ts +3 -0
  363. package/dist/src/extensions/agent-plugins/mcp-adapter.js +47 -0
  364. package/dist/src/extensions/agent-plugins/sources.d.ts +5 -0
  365. package/dist/src/extensions/agent-plugins/sources.js +72 -0
  366. package/dist/src/extensions/agent-plugins/store.d.ts +61 -0
  367. package/dist/src/extensions/agent-plugins/store.js +305 -0
  368. package/dist/src/extensions/agent-plugins/validation.d.ts +59 -0
  369. package/dist/src/extensions/agent-plugins/validation.js +211 -0
  370. package/dist/src/extensions/discover-extensions.js +9 -15
  371. package/dist/src/extensions/extension-metadata-snapshot.d.ts +1 -1
  372. package/dist/src/extensions/extension-metadata-snapshot.js +9 -16
  373. package/dist/src/extensions/index.js +4 -10
  374. package/dist/src/extensions/install.js +1 -1
  375. package/dist/src/extensions/loader.js +7 -14
  376. package/dist/src/extensions/manifest-registry.js +93 -98
  377. package/dist/src/extensions/marketplace.js +5 -2
  378. package/dist/src/extensions/normalize-manifest.js +12 -17
  379. package/dist/src/extensions/update.js +2 -3
  380. package/dist/src/files/file-service.js +7 -8
  381. package/dist/src/gateway/agents-admin.d.ts +23 -27
  382. package/dist/src/gateway/agents-admin.js +109 -130
  383. package/dist/src/gateway/chat-stream/mapper.js +10 -3
  384. package/dist/src/gateway/file-path-classifier.js +3 -3
  385. package/dist/src/gateway/file-space-service.js +2 -1
  386. package/dist/src/gateway/global-defaults-admin.d.ts +6 -4
  387. package/dist/src/gateway/global-defaults-admin.js +21 -20
  388. package/dist/src/gateway/hono/app.js +2 -1
  389. package/dist/src/gateway/hono/lib/config-payload.js +12 -9
  390. package/dist/src/gateway/hono/middleware/auth.js +2 -1
  391. package/dist/src/gateway/hono/middleware/scopes.js +2 -1
  392. package/dist/src/gateway/hono/routes/agent-plugins.d.ts +3 -0
  393. package/dist/src/gateway/hono/routes/agent-plugins.js +166 -0
  394. package/dist/src/gateway/hono/routes/agent-stream.js +14 -0
  395. package/dist/src/gateway/hono/routes/agents.js +22 -49
  396. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +4 -2
  397. package/dist/src/gateway/hono/routes/browser.js +4 -2
  398. package/dist/src/gateway/hono/routes/channels.js +1 -2
  399. package/dist/src/gateway/hono/routes/chat-previews.d.ts +3 -0
  400. package/dist/src/gateway/hono/routes/chat-previews.js +41 -0
  401. package/dist/src/gateway/hono/routes/cli-connectors.js +2 -1
  402. package/dist/src/gateway/hono/routes/commands-skills.js +3 -1
  403. package/dist/src/gateway/hono/routes/composer-history.js +2 -1
  404. package/dist/src/gateway/hono/routes/config-patch/index.d.ts +1 -3
  405. package/dist/src/gateway/hono/routes/config-patch/index.js +1 -2
  406. package/dist/src/gateway/hono/routes/config-patch/misc.js +18 -11
  407. package/dist/src/gateway/hono/routes/config.js +0 -2
  408. package/dist/src/gateway/hono/routes/connection-waits.js +4 -2
  409. package/dist/src/gateway/hono/routes/connectors.js +8 -4
  410. package/dist/src/gateway/hono/routes/context-sources.js +4 -3
  411. package/dist/src/gateway/hono/routes/device-pairing-approval.js +2 -1
  412. package/dist/src/gateway/hono/routes/device-push.js +3 -2
  413. package/dist/src/gateway/hono/routes/devices.js +6 -3
  414. package/dist/src/gateway/hono/routes/discussions.js +2 -1
  415. package/dist/src/gateway/hono/routes/endpoint-tools.js +2 -1
  416. package/dist/src/gateway/hono/routes/global-defaults.js +8 -16
  417. package/dist/src/gateway/hono/routes/home.js +93 -4
  418. package/dist/src/gateway/hono/routes/index.js +2 -0
  419. package/dist/src/gateway/hono/routes/interaction-state.js +2 -1
  420. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  421. package/dist/src/gateway/hono/routes/local-apps.js +71 -39
  422. package/dist/src/gateway/hono/routes/mcp.js +48 -21
  423. package/dist/src/gateway/hono/routes/models.js +8 -7
  424. package/dist/src/gateway/hono/routes/notes.js +4 -5
  425. package/dist/src/gateway/hono/routes/projects.js +6 -6
  426. package/dist/src/gateway/hono/routes/public-gateway.js +2 -1
  427. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +4 -0
  428. package/dist/src/gateway/hono/routes/session-input-handler.js +23 -1
  429. package/dist/src/gateway/hono/routes/sessions.js +4 -2
  430. package/dist/src/gateway/hono/routes/shares.js +4 -3
  431. package/dist/src/gateway/hono/routes/side-chats.js +11 -0
  432. package/dist/src/gateway/hono/routes/site-shares.js +2 -2
  433. package/dist/src/gateway/hono/routes/status.js +2 -3
  434. package/dist/src/gateway/hono/routes/tasks.js +1 -2
  435. package/dist/src/gateway/hono/routes/user-model-refresh.js +2 -1
  436. package/dist/src/gateway/hono/routes/user-model.js +3 -2
  437. package/dist/src/gateway/hono/routes/work-discovery.js +1 -1
  438. package/dist/src/gateway/hono/routes/workflows.js +2 -2
  439. package/dist/src/gateway/image-generation-setup.d.ts +19 -10
  440. package/dist/src/gateway/image-generation-setup.js +59 -23
  441. package/dist/src/gateway/index.js +1 -4
  442. package/dist/src/gateway/lock.js +13 -18
  443. package/dist/src/gateway/memory-maintenance-automation-reconciler.js +4 -3
  444. package/dist/src/gateway/run-loop.js +2 -3
  445. package/dist/src/gateway/security/gateway-scopes.js +6 -2
  446. package/dist/src/gateway/security/index.js +4 -1
  447. package/dist/src/gateway/service/agent-runner.js +11 -3
  448. package/dist/src/gateway/service/app-context-access.js +2 -1
  449. package/dist/src/gateway/service/config-coordinator.d.ts +0 -1
  450. package/dist/src/gateway/service/config-coordinator.js +4 -22
  451. package/dist/src/gateway/service/marketplace-service.d.ts +1 -0
  452. package/dist/src/gateway/service/marketplace-service.js +18 -2
  453. package/dist/src/gateway/service/run-gateway-agent.js +4 -2
  454. package/dist/src/gateway/service/session-input-coordinator.js +7 -5
  455. package/dist/src/gateway/service.d.ts +10 -1
  456. package/dist/src/gateway/service.js +123 -33
  457. package/dist/src/gateway/session-context-summary.js +4 -2
  458. package/dist/src/gateway/side-chat/index.d.ts +3 -1
  459. package/dist/src/gateway/side-chat/index.js +2 -1
  460. package/dist/src/gateway/side-chat/manager.d.ts +16 -0
  461. package/dist/src/gateway/side-chat/manager.js +40 -6
  462. package/dist/src/gateway/side-chat/promotion-service.d.ts +19 -0
  463. package/dist/src/gateway/side-chat/promotion-service.js +111 -0
  464. package/dist/src/gateway/side-chat/run-service.js +1 -0
  465. package/dist/src/gateway/side-chat/types.d.ts +1 -1
  466. package/dist/src/gateway/xopc-cloud-capability-setup.d.ts +2 -0
  467. package/dist/src/gateway/xopc-cloud-capability-setup.js +15 -10
  468. package/dist/src/home-intelligence/application-service.d.ts +31 -0
  469. package/dist/src/home-intelligence/application-service.js +134 -0
  470. package/dist/src/home-intelligence/capability-preflight.d.ts +32 -0
  471. package/dist/src/home-intelligence/capability-preflight.js +118 -0
  472. package/dist/src/home-intelligence/evaluation.d.ts +34 -0
  473. package/dist/src/home-intelligence/evaluation.js +49 -0
  474. package/dist/src/home-intelligence/generator.d.ts +125 -0
  475. package/dist/src/home-intelligence/generator.js +227 -0
  476. package/dist/src/home-intelligence/host.d.ts +53 -0
  477. package/dist/src/home-intelligence/host.js +257 -0
  478. package/dist/src/home-intelligence/notification.d.ts +8 -0
  479. package/dist/src/home-intelligence/notification.js +20 -0
  480. package/dist/src/home-intelligence/policy.d.ts +16 -0
  481. package/dist/src/home-intelligence/policy.js +152 -0
  482. package/dist/src/home-intelligence/repository.d.ts +81 -0
  483. package/dist/src/home-intelligence/repository.js +495 -0
  484. package/dist/src/home-intelligence/snapshot.d.ts +43 -0
  485. package/dist/src/home-intelligence/snapshot.js +133 -0
  486. package/dist/src/home-intelligence/strategy.d.ts +14 -0
  487. package/dist/src/home-intelligence/strategy.js +10 -0
  488. package/dist/src/home-intelligence/types.d.ts +13 -0
  489. package/dist/src/home-intelligence/types.js +1 -0
  490. package/dist/src/infra/update-restart.js +4 -2
  491. package/dist/src/knowledge/connected-knowledge-pipeline.js +2 -1
  492. package/dist/src/knowledge/ingestion-service.js +2 -1
  493. package/dist/src/knowledge-memory/repository.js +2 -1
  494. package/dist/src/local-apps/artifact-files.d.ts +3 -0
  495. package/dist/src/local-apps/artifact-files.js +45 -0
  496. package/dist/src/local-apps/capabilities/write.js +1 -1
  497. package/dist/src/local-apps/fix-guidance.d.ts +3 -0
  498. package/dist/src/local-apps/fix-guidance.js +75 -0
  499. package/dist/src/local-apps/index.d.ts +2 -1
  500. package/dist/src/local-apps/scaffold.d.ts +5 -0
  501. package/dist/src/local-apps/scaffold.js +18 -5
  502. package/dist/src/local-apps/service.d.ts +18 -3
  503. package/dist/src/local-apps/service.js +107 -65
  504. package/dist/src/local-apps/snapshot-store.d.ts +8 -0
  505. package/dist/src/local-apps/snapshot-store.js +68 -0
  506. package/dist/src/local-apps/store.js +2 -1
  507. package/dist/src/local-apps/types.d.ts +4 -87
  508. package/dist/src/mcp/channel-bridge.js +1 -2
  509. package/dist/src/mcp/channel-server.js +1 -2
  510. package/dist/src/mcp/gateway-http-client.js +1 -2
  511. package/dist/src/media/session-references.js +2 -1
  512. package/dist/src/memory-maintenance/service.js +2 -1
  513. package/dist/src/migrations/memory-config.js +1 -2
  514. package/dist/src/notes/agent-context.js +2 -1
  515. package/dist/src/notes/attachment-ref.js +8 -4
  516. package/dist/src/notes/note-attachment-sync.js +2 -1
  517. package/dist/src/notes/note-index-meta.js +14 -7
  518. package/dist/src/notes/note-markdown.js +13 -7
  519. package/dist/src/notes/service.js +6 -3
  520. package/dist/src/notes/store.js +4 -2
  521. package/dist/src/notifications/device-store.js +1 -1
  522. package/dist/src/notifications/planner.js +24 -0
  523. package/dist/src/notifications/service.d.ts +7 -14
  524. package/dist/src/notifications/service.js +13 -3
  525. package/dist/src/notifications/store.js +1 -1
  526. package/dist/src/notifications/types.d.ts +1 -1
  527. package/dist/src/notifications/types.js +1 -1
  528. package/dist/src/projects/capabilities/write.js +2 -1
  529. package/dist/src/projects/project-agent-suggestion.js +1 -1
  530. package/dist/src/projects/project-agent.js +4 -4
  531. package/dist/src/projects/project-service.js +2 -1
  532. package/dist/src/projects/workspace.js +3 -2
  533. package/dist/src/providers/index.js +3 -3
  534. package/dist/src/providers/model-reference-auditor.d.ts +1 -2
  535. package/dist/src/providers/model-reference-auditor.js +8 -5
  536. package/dist/src/realtime/runtime.js +2 -1
  537. package/dist/src/routing/binding-schema.d.ts +41 -0
  538. package/dist/src/routing/binding-schema.js +26 -0
  539. package/dist/src/routing/bindings.d.ts +4 -2
  540. package/dist/src/routing/bindings.js +4 -4
  541. package/dist/src/routing/index.d.ts +1 -1
  542. package/dist/src/routing/resolve-route.d.ts +7 -24
  543. package/dist/src/routing/resolve-route.js +17 -18
  544. package/dist/src/routing/resolve-tui-session-key.d.ts +1 -4
  545. package/dist/src/routing/resolve-tui-session-key.js +10 -9
  546. package/dist/src/scenes/execution.d.ts +1 -1
  547. package/dist/src/scenes/model.js +1 -1
  548. package/dist/src/scenes/taskFollowUp/contracts.d.ts +1 -1
  549. package/dist/src/scenes/taskFollowUp/service.js +6 -4
  550. package/dist/src/scenes/templates.d.ts +2 -2
  551. package/dist/src/session/client-history.d.ts +3 -1
  552. package/dist/src/session/client-history.js +10 -3
  553. package/dist/src/session/config-store.js +2 -1
  554. package/dist/src/session/index.d.ts +1 -1
  555. package/dist/src/session/init-session-turn.js +2 -1
  556. package/dist/src/session/manager.d.ts +4 -0
  557. package/dist/src/session/manager.js +6 -0
  558. package/dist/src/session/resolve-session.js +2 -1
  559. package/dist/src/session/session-context-for-llm.d.ts +12 -1
  560. package/dist/src/session/session-context-for-llm.js +16 -2
  561. package/dist/src/session/session-workspace.js +1 -1
  562. package/dist/src/session/store.d.ts +14 -0
  563. package/dist/src/session/store.js +20 -2
  564. package/dist/src/session/stored-rows-to-file-entries.js +10 -1
  565. package/dist/src/session/transcript-outline.js +10 -3
  566. package/dist/src/storage/sqlite/activity-repository.js +6 -2
  567. package/dist/src/storage/sqlite/browser-tab-binding-repository.js +6 -2
  568. package/dist/src/storage/sqlite/clarification-wait-repository.js +13 -8
  569. package/dist/src/storage/sqlite/collaboration-rule-repository.d.ts +1 -1
  570. package/dist/src/storage/sqlite/collaboration-rule-repository.js +8 -3
  571. package/dist/src/storage/sqlite/composer-input-history-repository.js +8 -3
  572. package/dist/src/storage/sqlite/config-repository.js +9 -5
  573. package/dist/src/storage/sqlite/connection-wait-repository.js +9 -3
  574. package/dist/src/storage/sqlite/connector-learning-repository.js +6 -2
  575. package/dist/src/storage/sqlite/connector-sync-policy-repository.js +6 -2
  576. package/dist/src/storage/sqlite/context-evidence-repository.js +8 -3
  577. package/dist/src/storage/sqlite/context-extraction-repository.js +8 -3
  578. package/dist/src/storage/sqlite/device-access-repository.js +15 -9
  579. package/dist/src/storage/sqlite/device-pairing-approval.js +6 -2
  580. package/dist/src/storage/sqlite/device-pairing-repository.js +10 -5
  581. package/dist/src/storage/sqlite/endpoint-principal-repository.js +6 -2
  582. package/dist/src/storage/sqlite/endpoint-session-binding-repository.js +6 -2
  583. package/dist/src/storage/sqlite/endpoint-tool-invocation-repository.js +6 -2
  584. package/dist/src/storage/sqlite/gateway-identity-repository.js +6 -2
  585. package/dist/src/storage/sqlite/home-attention-repository.js +6 -2
  586. package/dist/src/storage/sqlite/index.d.ts +0 -1
  587. package/dist/src/storage/sqlite/index.js +72 -42
  588. package/dist/src/storage/sqlite/interaction-state-repository.js +10 -4
  589. package/dist/src/storage/sqlite/knowledge-repository.js +6 -2
  590. package/dist/src/storage/sqlite/migrations/202_chat_previews.sql +26 -0
  591. package/dist/src/storage/sqlite/migrations/203_remove_retired_proactive_contracts.sql +70 -0
  592. package/dist/src/storage/sqlite/migrations/204_home_intelligence.sql +78 -0
  593. package/dist/src/storage/sqlite/migrations/205_agent_catalog.sql +66 -0
  594. package/dist/src/storage/sqlite/migrations/206_home_advice_strategy_version.sql +3 -0
  595. package/dist/src/storage/sqlite/migrations/conversation-backup.d.ts +2 -0
  596. package/dist/src/storage/sqlite/migrations/conversation-backup.js +8 -4
  597. package/dist/src/storage/sqlite/migrations/conversation-windows-owners.d.ts +7 -1
  598. package/dist/src/storage/sqlite/migrations/conversation-windows-owners.js +2 -2
  599. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  600. package/dist/src/storage/sqlite/migrations/runner.js +4 -4
  601. package/dist/src/storage/sqlite/note-agent-context-repository.js +6 -2
  602. package/dist/src/storage/sqlite/notes-repository.js +9 -4
  603. package/dist/src/storage/sqlite/row-mappers.js +6 -1
  604. package/dist/src/storage/sqlite/schema.js +1 -1
  605. package/dist/src/storage/sqlite/session-task-plan-repository.js +14 -9
  606. package/dist/src/storage/sqlite/session-turn-replace-repository.js +9 -5
  607. package/dist/src/storage/sqlite/sidebar-layout-repository.js +14 -9
  608. package/dist/src/storage/sqlite/transcript-repository.js +10 -6
  609. package/dist/src/storage/sqlite/user-people-repository.js +8 -3
  610. package/dist/src/storage/sqlite/user-trust-repository.js +8 -3
  611. package/dist/src/tasks/attention-governor.d.ts +0 -1
  612. package/dist/src/tasks/attention-governor.js +1 -7
  613. package/dist/src/tasks/capabilities/read.js +2 -2
  614. package/dist/src/tasks/capabilities/write.d.ts +1 -1
  615. package/dist/src/tasks/execution-context.d.ts +2 -2
  616. package/dist/src/tasks/execution-context.js +6 -5
  617. package/dist/src/tasks/home-query-service.d.ts +3 -2
  618. package/dist/src/tasks/home-query-service.js +23 -44
  619. package/dist/src/tasks/task-context-assembler.js +2 -1
  620. package/dist/src/tasks/task-context-repository.d.ts +1 -1
  621. package/dist/src/tasks/task-contract-planner.d.ts +0 -3
  622. package/dist/src/tasks/task-contract-planner.js +1 -4
  623. package/dist/src/tasks/task-handoff-service.d.ts +0 -2
  624. package/dist/src/tasks/task-handoff-service.js +3 -3
  625. package/dist/src/tasks/task-value-metrics-service.js +2 -1
  626. package/dist/src/tui/backends/embedded-backend.js +12 -14
  627. package/dist/src/tui/extension-host/load-extensions.js +1 -1
  628. package/dist/src/tui/tui-commands.js +5 -3
  629. package/dist/src/tui/tui-skills-autocomplete.js +1 -1
  630. package/dist/src/tui/tui-startup-resources.js +3 -3
  631. package/dist/src/tui/tui.js +5 -5
  632. package/dist/src/tunnel/registration-proof.js +2 -1
  633. package/dist/src/user-context/access-policy.js +2 -1
  634. package/dist/src/user-context/domain.d.ts +1 -1
  635. package/dist/src/user-context/domain.js +18 -13
  636. package/dist/src/user-context/extraction/registry.js +2 -1
  637. package/dist/src/user-context/interaction-state.js +4 -1
  638. package/dist/src/user-context/relationship-continuity.js +2 -1
  639. package/dist/src/user-context/trust-policy.js +13 -8
  640. package/dist/src/user-model/bootstrap.js +2 -1
  641. package/dist/src/user-model/capture/executor.js +4 -2
  642. package/dist/src/user-model/capture/semantic.d.ts +1 -1
  643. package/dist/src/user-model/capture/semantic.js +1 -1
  644. package/dist/src/user-model/domain.js +7 -2
  645. package/dist/src/user-model/goals.js +2 -1
  646. package/dist/src/user-model/index.js +4 -1
  647. package/dist/src/user-model/repository.js +2 -1
  648. package/dist/src/utils/helpers.js +1 -4
  649. package/dist/src/utils/index.js +2 -2
  650. package/dist/src/utils/logger/index.d.ts +1 -1
  651. package/dist/src/utils/logger/index.js +2 -2
  652. package/dist/src/utils/logger/redact.d.ts +2 -0
  653. package/dist/src/utils/logger/redact.js +11 -3
  654. package/dist/src/utils/logger.js +2 -2
  655. package/dist/src/voice/realtime/memory-context.js +2 -1
  656. package/dist/src/voice/realtime/persona-context.js +6 -6
  657. package/dist/src/voice/tts/audio.js +1 -1
  658. package/dist/src/work-discovery/analyzer.js +3 -3
  659. package/dist/src/work-discovery/investigator.js +1 -1
  660. package/dist/src/work-discovery/service.js +12 -11
  661. package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
  662. package/dist/src/workflows/service/workflow-run-service.js +4 -5
  663. package/dist/src/workflows/store/paths.js +1 -1
  664. package/package.json +2 -2
  665. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DWLXHWXg.js +0 -1
  666. package/dist/gateway/static/root/assets/api-Df2D6d3C.js +0 -1
  667. package/dist/gateway/static/root/assets/apps-page-BzytHIn1.js +0 -1
  668. package/dist/gateway/static/root/assets/automations-workspace-CtSV8tp-.js +0 -7
  669. package/dist/gateway/static/root/assets/browser-settings-page-DrvNA-G2.js +0 -3
  670. package/dist/gateway/static/root/assets/capabilities-D0S3DuAD.js +0 -1
  671. package/dist/gateway/static/root/assets/capabilities-settings-panel-c0k2virA.js +0 -8
  672. package/dist/gateway/static/root/assets/channels-settings-Bkl9fDHc.js +0 -1
  673. package/dist/gateway/static/root/assets/connectors-page-Dw_h-5Qh.js +0 -2
  674. package/dist/gateway/static/root/assets/date-picker-BqcldZoN.js +0 -1
  675. package/dist/gateway/static/root/assets/device-pairing-wizard-C5f4FRpE.js +0 -1
  676. package/dist/gateway/static/root/assets/gateway-settings-D7XbH6Hk.js +0 -1
  677. package/dist/gateway/static/root/assets/home-page-CFJypY6Y.js +0 -1
  678. package/dist/gateway/static/root/assets/index-B4Vwh0H-.css +0 -1
  679. package/dist/gateway/static/root/assets/index-BNubE2Zi.js +0 -89
  680. package/dist/gateway/static/root/assets/local-app-workbench-page-BLKCFXvr.js +0 -2
  681. package/dist/gateway/static/root/assets/local-apps-page-BNFmOkxs.js +0 -1
  682. package/dist/gateway/static/root/assets/logs-page-COxOJsgX.js +0 -2
  683. package/dist/gateway/static/root/assets/management-settings-BX5NtnQ2.js +0 -1
  684. package/dist/gateway/static/root/assets/messages-B1sTgIrE.js +0 -3
  685. package/dist/gateway/static/root/assets/note-detail-panel-DZ0IWx1R.js +0 -5
  686. package/dist/gateway/static/root/assets/notes-page-B9F1uue_.js +0 -8
  687. package/dist/gateway/static/root/assets/popover-select-B-GDnZO9.js +0 -1
  688. package/dist/gateway/static/root/assets/product-delivery-chCjIpvu.js +0 -1
  689. package/dist/gateway/static/root/assets/product-open-page-DEYWx__w.js +0 -1
  690. package/dist/gateway/static/root/assets/project-detail-page-9qMDEKVd.js +0 -1
  691. package/dist/gateway/static/root/assets/projects-page-D4UTOpEm.js +0 -1
  692. package/dist/gateway/static/root/assets/remote-access-hub-CPmOucUB.js +0 -1
  693. package/dist/gateway/static/root/assets/scenes-page-DO8vGorm.js +0 -2
  694. package/dist/gateway/static/root/assets/sessions-page-zu5P0dk5.js +0 -1
  695. package/dist/gateway/static/root/assets/settings-advanced-gate-ClEw-i1l.js +0 -1
  696. package/dist/gateway/static/root/assets/setup-status-panel-DElF2sgq.js +0 -1
  697. package/dist/gateway/static/root/assets/shares-settings-MLolJfoV.js +0 -1
  698. package/dist/gateway/static/root/assets/skill-reload-api-DTPsW9TY.js +0 -1
  699. package/dist/gateway/static/root/assets/skills-page-CNQHhsiv.js +0 -2
  700. package/dist/gateway/static/root/assets/task-detail-page-Dc30oS9J.js +0 -1
  701. package/dist/gateway/static/root/assets/user-model-page-Bq6ab5WJ.js +0 -2
  702. package/dist/gateway/static/root/assets/workflows-page-Ci-4HAYm.js +0 -6
  703. package/dist/packages/gateway-contract/src/proactive.js +0 -136
  704. package/dist/src/commands/agents.config.d.ts +0 -31
  705. package/dist/src/commands/agents.config.js +0 -129
  706. package/dist/src/gateway/hono/routes/config-patch/agents.d.ts +0 -2
  707. package/dist/src/gateway/hono/routes/config-patch/agents.js +0 -6
  708. package/dist/src/storage/sqlite/relationship-settings-repository.d.ts +0 -17
  709. package/dist/src/storage/sqlite/relationship-settings-repository.js +0 -65
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Route resolution
3
3
  *
4
- * Combines binding rules, identity links, and config to pick an agent and session keys.
4
+ * Combines catalog binding rules, identity links, and session config to pick an agent.
5
5
  */
6
- import type { BindingRule, RouteInput, RouteResult } from './bindings.js';
6
+ import type { RouteInput, RouteResult } from './bindings.js';
7
7
  /**
8
8
  * Route context type (alias for RouteInput)
9
9
  */
@@ -43,25 +43,10 @@ export interface SessionConfig {
43
43
  maxEntries?: number;
44
44
  };
45
45
  }
46
- /**
47
- * Agent list and default id from config.
48
- */
49
- export interface AgentConfig {
50
- /** Default agent id */
51
- default?: string;
52
- /** Registered agents */
53
- list?: Array<{
54
- id: string;
55
- enabled?: boolean;
56
- [key: string]: unknown;
57
- }>;
58
- }
59
46
  /**
60
47
  * Subset of app config used for routing.
61
48
  */
62
49
  export interface RoutingConfig {
63
- agents?: AgentConfig;
64
- bindings?: BindingRule[] | any[];
65
50
  session?: SessionConfig;
66
51
  }
67
52
  /**
@@ -88,17 +73,15 @@ export interface ResolveRouteResult extends RouteResult {
88
73
  */
89
74
  export declare function applyIdentityLinks(peerId: string, channel: string, identityLinks?: IdentityLinks): string;
90
75
  /**
91
- * Default agent id from config (`agents.default`, `list[].default`, or `main`).
92
- */
93
- export declare function getDefaultAgentId(config: RoutingConfig): string;
94
- /**
95
- * Whether `agentId` appears in the enabled agent list (or list is absent).
76
+ * Default Agent id from the catalog.
96
77
  */
97
- export declare function agentExists(agentId: string, config: RoutingConfig): boolean;
78
+ export declare function getDefaultAgentId(): string;
79
+ /** Whether `agentId` is enabled and fully provisioned. */
80
+ export declare function agentExists(agentId: string): boolean;
98
81
  /**
99
82
  * Return `agentId` if listed, otherwise the default agent id.
100
83
  */
101
- export declare function pickFirstExistingAgentId(agentId: string, config: RoutingConfig): string;
84
+ export declare function pickFirstExistingAgentId(agentId: string): string;
102
85
  /**
103
86
  * Thin wrapper around `resolveConversationId` for route inputs.
104
87
  */
@@ -1,6 +1,6 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
2
  import { init_account_id, normalizeAccountId } from "./account-id.js";
3
- import { init_agent_scope, resolveDefaultAgentId } from "../agent/agent-scope.js";
3
+ import { AgentCatalogRepository, init_repository } from "../agent-catalog/repository.js";
4
4
  import { getConversationRouting } from "../storage/sqlite/conversation-repository.js";
5
5
  import { init_agent_session_key, resolveAgentPeerConversationId } from "./agent-session-key.js";
6
6
  import { init_session_key, resolveConversationId } from "./session-key.js";
@@ -27,25 +27,23 @@ function applyIdentityLinks(peerId, channel, identityLinks) {
27
27
  return normalizedPeerId;
28
28
  }
29
29
  /**
30
- * Default agent id from config (`agents.default`, `list[].default`, or `main`).
30
+ * Default Agent id from the catalog.
31
31
  */
32
- function getDefaultAgentId(config) {
33
- return resolveDefaultAgentId(config);
32
+ function getDefaultAgentId() {
33
+ return new AgentCatalogRepository().getSettings().defaultAgentId;
34
34
  }
35
- /**
36
- * Whether `agentId` appears in the enabled agent list (or list is absent).
37
- */
38
- function agentExists(agentId, config) {
39
- if (!config.agents?.list) return true;
40
- return config.agents.list.some((agent) => agent.enabled !== false && agent.id.toLowerCase() === agentId.toLowerCase());
35
+ /** Whether `agentId` is enabled and fully provisioned. */
36
+ function agentExists(agentId) {
37
+ const agent = new AgentCatalogRepository().get(agentId);
38
+ return agent?.enabled !== false && agent?.provisioningState === "ready";
41
39
  }
42
40
  /**
43
41
  * Return `agentId` if listed, otherwise the default agent id.
44
42
  */
45
- function pickFirstExistingAgentId(agentId, config) {
46
- if (!agentId) return getDefaultAgentId(config);
47
- if (agentExists(agentId, config)) return agentId.toLowerCase();
48
- return getDefaultAgentId(config);
43
+ function pickFirstExistingAgentId(agentId) {
44
+ if (!agentId) return getDefaultAgentId();
45
+ if (agentExists(agentId)) return agentId.toLowerCase();
46
+ return getDefaultAgentId();
49
47
  }
50
48
  /**
51
49
  * Thin wrapper around `resolveConversationId` for route inputs.
@@ -67,12 +65,13 @@ function buildRouteConversationId(agentId, channel, accountId, peerKind, peerId,
67
65
  */
68
66
  function resolveRoute(input) {
69
67
  const { config, threadId } = input;
68
+ const catalog = new AgentCatalogRepository().snapshot();
70
69
  const channel = (input.channel ?? "").trim().toLowerCase() || "unknown";
71
70
  const accountId = normalizeAccountId(input.accountId);
72
71
  const peerKind = (input.peerKind ?? "dm").toLowerCase();
73
72
  const rawPeerId = (input.peerId ?? "").trim();
74
73
  const peerId = applyIdentityLinks(rawPeerId, channel, config.session?.identityLinks ?? {});
75
- const rules = Array.isArray(config.bindings) ? parseBindingRules({ bindings: config.bindings }) : [];
74
+ const rules = parseBindingRules({ bindings: catalog.bindings });
76
75
  const bindingResult = resolveRoute$1({
77
76
  channel,
78
77
  accountId,
@@ -81,8 +80,8 @@ function resolveRoute(input) {
81
80
  guildId: input.guildId,
82
81
  teamId: input.teamId,
83
82
  memberRoleIds: input.memberRoleIds
84
- }, rules, getDefaultAgentId(config));
85
- const agentId = pickFirstExistingAgentId(bindingResult.agentId, config);
83
+ }, rules, catalog.defaultAgentId);
84
+ const agentId = catalog.agents.some((agent) => agent.enabled !== false && agent.id === bindingResult.agentId) ? bindingResult.agentId : catalog.defaultAgentId;
86
85
  const dmScope = config.session?.dmScope ?? "main";
87
86
  const conversationId = resolveAgentPeerConversationId({
88
87
  agentId,
@@ -115,7 +114,7 @@ function resolveRouteFromConversationId(conversationId, _config) {
115
114
  };
116
115
  }
117
116
  var init_resolve_route = __esmMin((() => {
118
- init_agent_scope();
117
+ init_repository();
119
118
  init_bindings();
120
119
  init_session_key();
121
120
  init_agent_session_key();
@@ -1,17 +1,14 @@
1
- import type { Config } from '../config/schema.js';
2
- export declare function resolveDefaultTuiAgentId(cfg: Config): string;
1
+ export declare function resolveDefaultTuiAgentId(): string;
3
2
  export declare function resolveTuiConversationId(params: {
4
3
  raw?: string;
5
4
  }): string;
6
5
  export declare function resolveInitialTuiAgentId(params: {
7
- cfg: Config;
8
6
  fallbackAgentId: string;
9
7
  explicitAgentId?: string;
10
8
  cwd?: string;
11
9
  }): string;
12
10
  /** Resolve TUI startup conversation identity and initial agent from CLI options and config. */
13
11
  export declare function resolveTuiStartupConversationId(params: {
14
- cfg: Config;
15
12
  sessionOption?: string;
16
13
  agentOption?: string;
17
14
  cwd?: string;
@@ -1,27 +1,29 @@
1
1
  import { validateConversationId } from "../../packages/gateway-contract/src/conversation-identity.js";
2
2
  import { init_src } from "../../packages/gateway-contract/src/index.js";
3
+ import { AgentCatalogRepository, init_repository } from "../agent-catalog/repository.js";
3
4
  import { init_agent_scope, listAgentEntries, resolveAgentIdByWorkspacePath, resolveDefaultAgentId } from "../agent/agent-scope.js";
4
5
  import { init_agent_session_key, normalizeAgentId } from "./agent-session-key.js";
5
6
  import { randomUUID } from "node:crypto";
6
7
  //#region src/routing/resolve-tui-session-key.ts
7
8
  init_src();
9
+ init_repository();
8
10
  init_agent_scope();
9
11
  init_agent_session_key();
10
- function agentExists(cfg, agentId) {
12
+ function agentExists(agentId) {
11
13
  const id = normalizeAgentId(agentId);
12
- return listAgentEntries(cfg).some((entry) => entry.enabled !== false && normalizeAgentId(entry.id) === id);
14
+ return listAgentEntries().some((entry) => entry.enabled !== false && normalizeAgentId(entry.id) === id);
13
15
  }
14
- function resolveDefaultTuiAgentId(cfg) {
15
- const configured = cfg.tui?.defaultAgent?.trim();
16
- if (configured && agentExists(cfg, configured)) return normalizeAgentId(configured);
17
- return resolveDefaultAgentId(cfg);
16
+ function resolveDefaultTuiAgentId() {
17
+ const configured = new AgentCatalogRepository().snapshot().surfaceDefaults.tui?.trim();
18
+ if (configured && agentExists(configured)) return normalizeAgentId(configured);
19
+ return resolveDefaultAgentId();
18
20
  }
19
21
  function resolveTuiConversationId(params) {
20
22
  return validateConversationId(params.raw?.trim() || randomUUID());
21
23
  }
22
24
  function resolveInitialTuiAgentId(params) {
23
25
  if (params.explicitAgentId?.trim()) return normalizeAgentId(params.explicitAgentId);
24
- const inferredFromWorkspace = resolveAgentIdByWorkspacePath(params.cfg, params.cwd ?? process.cwd());
26
+ const inferredFromWorkspace = resolveAgentIdByWorkspacePath(params.cwd ?? process.cwd());
25
27
  if (inferredFromWorkspace) return inferredFromWorkspace;
26
28
  return normalizeAgentId(params.fallbackAgentId);
27
29
  }
@@ -29,8 +31,7 @@ function resolveInitialTuiAgentId(params) {
29
31
  function resolveTuiStartupConversationId(params) {
30
32
  const sessionOption = (params.sessionOption ?? "").trim();
31
33
  const agentId = resolveInitialTuiAgentId({
32
- cfg: params.cfg,
33
- fallbackAgentId: resolveDefaultTuiAgentId(params.cfg),
34
+ fallbackAgentId: resolveDefaultTuiAgentId(),
34
35
  explicitAgentId: params.agentOption,
35
36
  cwd: params.cwd ?? process.cwd()
36
37
  });
@@ -5,8 +5,8 @@ export declare const readOnlyResultSchema: z.ZodObject<{
5
5
  kind: z.ZodEnum<{
6
6
  artifact: "artifact";
7
7
  decision: "decision";
8
- no_change: "no_change";
9
8
  observation: "observation";
9
+ no_change: "no_change";
10
10
  }>;
11
11
  summary: z.ZodString;
12
12
  evidenceIds: z.ZodArray<z.ZodString>;
@@ -4,7 +4,7 @@ import { resolveModelSelector } from "../config/agent-model-intents.js";
4
4
  init_agent_scope();
5
5
  /** Scene reasoning follows the existing agent model policy and falls back to chat. */
6
6
  function resolveSceneModelRef(config) {
7
- return resolveModelSelector(config, resolveDefaultAgentId(config), "@reasoning");
7
+ return resolveModelSelector(config, resolveDefaultAgentId(), "@reasoning");
8
8
  }
9
9
  //#endregion
10
10
  export { resolveSceneModelRef };
@@ -29,7 +29,7 @@ export declare const taskFollowUpTemplate: {
29
29
  maxOutputTokens: number;
30
30
  };
31
31
  };
32
- allowedOutcomeKinds: ("artifact" | "receipt" | "decision" | "no_change" | "observation" | "state_change" | "effect_proposal")[];
32
+ allowedOutcomeKinds: ("artifact" | "receipt" | "decision" | "observation" | "no_change" | "state_change" | "effect_proposal")[];
33
33
  allowedEffectHandlers: string[];
34
34
  };
35
35
  export declare const sourceReferenceSchema: z.ZodObject<{
@@ -2,6 +2,7 @@ import { init_transaction, runSqliteWriteTransaction } from "../../storage/sqlit
2
2
  import { enqueueTaskAttentionRequiredEvent, init_task_change_events } from "../../tasks/task-change-events.js";
3
3
  import { TaskRepository, init_task_repository } from "../../tasks/task-repository.js";
4
4
  import { TaskRunRepository, init_task_run_repository } from "../../tasks/task-run-repository.js";
5
+ import { AgentCatalogRepository, init_repository } from "../../agent-catalog/repository.js";
5
6
  import { init_agent_scope, resolveDefaultAgentId } from "../../agent/agent-scope.js";
6
7
  import { init_providers, isProviderConfiguredSync, resolveModel } from "../../providers/index.js";
7
8
  import { ExecutionEnvironmentStore } from "../../execution-environments/store.js";
@@ -24,6 +25,7 @@ import { TaskBranchInventory } from "./branchInventory.js";
24
25
  import { randomUUID } from "node:crypto";
25
26
  //#region src/scenes/taskFollowUp/service.ts
26
27
  init_agent_scope();
28
+ init_repository();
27
29
  init_providers();
28
30
  init_transaction();
29
31
  init_task_repository();
@@ -58,7 +60,7 @@ var TaskFollowUpService = class {
58
60
  this.scenes = new SceneRepository(db);
59
61
  this.branches = new TaskBranchInventory(db);
60
62
  this.scenes.installTemplate(taskFollowUpTemplate);
61
- this.executor = deps.executor ?? new FollowUpAgentExecutor(() => resolveModel(resolveModelSelector(deps.config(), resolveDefaultAgentId(deps.config()), "@reasoning")), deps.config);
63
+ this.executor = deps.executor ?? new FollowUpAgentExecutor(() => resolveModel(resolveModelSelector(deps.config(), resolveDefaultAgentId(), "@reasoning")), deps.config);
62
64
  this.sources = deps.sources;
63
65
  this.resources = new TaskResources({
64
66
  stateDir: deps.stateDir,
@@ -86,7 +88,7 @@ var TaskFollowUpService = class {
86
88
  };
87
89
  }
88
90
  image() {
89
- const isolation = this.deps.config().agents.defaults.runtime.commandIsolation;
91
+ const isolation = new AgentCatalogRepository().getSettings().defaults.runtime.commandIsolation;
90
92
  return isolation?.mode === "docker" ? isolation.image : void 0;
91
93
  }
92
94
  parse(value) {
@@ -139,7 +141,7 @@ var TaskFollowUpService = class {
139
141
  }
140
142
  }
141
143
  if (!this.deps.executor) try {
142
- if (!isProviderConfiguredSync(resolveModel(resolveModelSelector(this.deps.config(), resolveDefaultAgentId(this.deps.config()), "@reasoning")).provider)) missing.push("model_credentials");
144
+ if (!isProviderConfiguredSync(resolveModel(resolveModelSelector(this.deps.config(), resolveDefaultAgentId(), "@reasoning")).provider)) missing.push("model_credentials");
143
145
  } catch {
144
146
  missing.push("model_configuration");
145
147
  }
@@ -383,7 +385,7 @@ var TaskFollowUpService = class {
383
385
  type: "start",
384
386
  executor: {
385
387
  kind: "agent",
386
- agentId: resolveDefaultAgentId(this.deps.config())
388
+ agentId: resolveDefaultAgentId()
387
389
  }
388
390
  },
389
391
  actor: {
@@ -27,7 +27,7 @@ export declare const mailFollowUpTemplate: {
27
27
  maxOutputTokens: number;
28
28
  };
29
29
  };
30
- allowedOutcomeKinds: ("artifact" | "receipt" | "decision" | "no_change" | "observation" | "state_change" | "effect_proposal")[];
30
+ allowedOutcomeKinds: ("artifact" | "receipt" | "decision" | "observation" | "no_change" | "state_change" | "effect_proposal")[];
31
31
  allowedEffectHandlers: string[];
32
32
  };
33
33
  export declare const familyPlanTemplate: {
@@ -59,6 +59,6 @@ export declare const familyPlanTemplate: {
59
59
  maxOutputTokens: number;
60
60
  };
61
61
  };
62
- allowedOutcomeKinds: ("artifact" | "receipt" | "decision" | "no_change" | "observation" | "state_change" | "effect_proposal")[];
62
+ allowedOutcomeKinds: ("artifact" | "receipt" | "decision" | "observation" | "no_change" | "state_change" | "effect_proposal")[];
63
63
  allowedEffectHandlers: string[];
64
64
  };
@@ -1,4 +1,4 @@
1
- import { type TurnOutcome } from '@xopcai/gateway-contract';
1
+ import { type TurnOutcome, type UserTurnDocument } from '@xopcai/gateway-contract';
2
2
  import type { Message } from './types.js';
3
3
  import type { TranscriptStoredRow } from './session-context-for-llm.js';
4
4
  /** Transcript row for TUI and HTTP clients (flattened from persisted session messages). */
@@ -15,6 +15,7 @@ export interface ClientHistoryMessage {
15
15
  /** Whitelisted display metadata; never includes source snapshot text. */
16
16
  metadata?: {
17
17
  sourceContexts?: Array<{
18
+ refId?: string;
18
19
  kind: 'note' | 'task' | 'file' | 'session' | 'browser_tab' | 'browser_page' | 'mcp_resource';
19
20
  sourceId: string;
20
21
  version: string;
@@ -26,6 +27,7 @@ export interface ClientHistoryMessage {
26
27
  documentId?: string;
27
28
  fileKind?: 'file' | 'directory';
28
29
  }>;
30
+ userTurnDocument?: UserTurnDocument;
29
31
  turnOutcome?: TurnOutcome;
30
32
  };
31
33
  kind?: 'message' | 'compaction' | 'context' | 'bash' | 'custom' | 'branch';
@@ -1,4 +1,5 @@
1
1
  import { parseTurnOutcome } from "../../packages/gateway-contract/src/turn-outcome.js";
2
+ import { isUserTurnDocument } from "../../packages/gateway-contract/src/user-turn-document.js";
2
3
  import { init_src } from "../../packages/gateway-contract/src/index.js";
3
4
  import { stripRuntimeContextFromUserMessage } from "./user-message-display.js";
4
5
  import { buildTranscriptOutline } from "./transcript-outline.js";
@@ -6,13 +7,16 @@ import { buildTranscriptOutline } from "./transcript-outline.js";
6
7
  init_src();
7
8
  function sourceContextDisplayMetadata(metadata) {
8
9
  if (!metadata || typeof metadata !== "object" || Array.isArray(metadata)) return void 0;
9
- const rows = metadata.sourceContexts;
10
- if (!Array.isArray(rows)) return void 0;
10
+ const record = metadata;
11
+ const rows = record.sourceContexts;
12
+ const userTurnDocument = isUserTurnDocument(record.userTurnDocument) ? record.userTurnDocument : void 0;
13
+ if (!Array.isArray(rows)) return userTurnDocument ? { userTurnDocument } : void 0;
11
14
  const sourceContexts = rows.flatMap((value) => {
12
15
  if (!value || typeof value !== "object" || Array.isArray(value)) return [];
13
16
  const row = value;
14
17
  if (row.kind !== "note" && row.kind !== "task" && row.kind !== "file" && row.kind !== "session" && row.kind !== "browser_tab" && row.kind !== "browser_page" && row.kind !== "mcp_resource" || typeof row.sourceId !== "string" || typeof row.version !== "string" || typeof row.title !== "string") return [];
15
18
  return [{
19
+ ...typeof row.refId === "string" ? { refId: row.refId } : {},
16
20
  kind: row.kind,
17
21
  sourceId: row.sourceId,
18
22
  version: row.version,
@@ -25,7 +29,10 @@ function sourceContextDisplayMetadata(metadata) {
25
29
  ...row.kind === "file" && (row.fileKind === "file" || row.fileKind === "directory") ? { fileKind: row.fileKind } : {}
26
30
  }];
27
31
  });
28
- return sourceContexts.length ? { sourceContexts } : void 0;
32
+ return sourceContexts.length || userTurnDocument ? {
33
+ ...sourceContexts.length ? { sourceContexts } : {},
34
+ ...userTurnDocument ? { userTurnDocument } : {}
35
+ } : void 0;
29
36
  }
30
37
  function flattenMessageContent(content) {
31
38
  if (typeof content === "string") return content;
@@ -2,8 +2,9 @@ import { createLogger } from "../utils/logger/index.js";
2
2
  import { init_logger } from "../utils/logger.js";
3
3
  import { requireXopcDatabase } from "../storage/sqlite/connection.js";
4
4
  import { deleteSessionConfig, getSessionConfig, hasSessionConfig, setSessionConfig, updateSessionConfig } from "../storage/sqlite/config-repository.js";
5
- import "../storage/sqlite/index.js";
5
+ import { init_sqlite } from "../storage/sqlite/index.js";
6
6
  //#region src/session/config-store.ts
7
+ init_sqlite();
7
8
  init_logger();
8
9
  const log = createLogger("SessionConfigStore");
9
10
  var SessionConfigStore = class {
@@ -1,7 +1,7 @@
1
1
  export { SessionIndex, type SessionIndexConfig } from './manager.js';
2
2
  export { onSessionTranscriptUpdate, emitSessionTranscriptUpdate, type SessionTranscriptUpdate, } from './transcript-events.js';
3
3
  export { SessionStore } from './store.js';
4
- export type { SessionStoreOptions, ForkSessionAtTurnOptions, ForkSessionResult, } from './store.js';
4
+ export type { SessionStoreOptions, ForkSessionAtTurnOptions, ForkSessionResult, CreateSessionFromRowsOptions, } from './store.js';
5
5
  export { SessionConfigStore, resolveThinkingLevel, resolveReasoningLevel, resolveVerboseLevel } from './config-store.js';
6
6
  export { DEFAULT_ACTIVITY_DETAIL_LEVEL, resolveConfiguredActivityDetailDefault, resolveEffectiveThinkingLevel, resolveEffectiveReasoningLevel, } from './thinking-resolve.js';
7
7
  export type { SessionAgentConfig } from './config-types.js';
@@ -1,7 +1,7 @@
1
1
  import { createLogger } from "../utils/logger/index.js";
2
2
  import { init_logger } from "../utils/logger.js";
3
3
  import { requireXopcDatabase } from "../storage/sqlite/connection.js";
4
- import "../storage/sqlite/index.js";
4
+ import { init_sqlite } from "../storage/sqlite/index.js";
5
5
  import { SessionConfigSchema, init_schema } from "../config/schema.js";
6
6
  import { evaluateSessionFreshness, resolveSessionResetPolicy } from "./reset-policy.js";
7
7
  import { resolveChannelResetConfig, resolveSessionResetType } from "./reset-type.js";
@@ -12,6 +12,7 @@ import { randomUUID } from "node:crypto";
12
12
  //#region src/session/init-session-turn.ts
13
13
  init_schema();
14
14
  init_logger();
15
+ init_sqlite();
15
16
  const log = createLogger("InitSessionTurn");
16
17
  async function initSessionTurn(opts) {
17
18
  requireXopcDatabase();
@@ -83,6 +83,10 @@ export declare class SessionIndex extends EventEmitter {
83
83
  conversationId: string;
84
84
  rowCount: number;
85
85
  }>;
86
+ createSessionFromRows(options: import('./store.js').CreateSessionFromRowsOptions): Promise<{
87
+ conversationId: string;
88
+ rowCount: number;
89
+ }>;
86
90
  forkSessionRows(sourceKey: string, targetKey: string, options?: {
87
91
  throughRow?: number;
88
92
  }): Promise<{
@@ -165,6 +165,12 @@ var SessionIndex = class extends EventEmitter$1 {
165
165
  if (metadata) this.emit("sessionCreated", metadata);
166
166
  return result;
167
167
  }
168
+ async createSessionFromRows(options) {
169
+ const result = await this.store.createSessionFromRows(options);
170
+ const metadata = await this.store.getMetadata(result.conversationId);
171
+ if (metadata) this.emit("sessionCreated", metadata);
172
+ return result;
173
+ }
168
174
  async forkSessionRows(sourceKey, targetKey, options = {}) {
169
175
  const result = await this.store.forkSessionRows(sourceKey, targetKey, options);
170
176
  const metadata = await this.store.getMetadata(result.conversationId);
@@ -3,7 +3,7 @@ import { init_logger } from "../utils/logger.js";
3
3
  import { requireXopcDatabase } from "../storage/sqlite/connection.js";
4
4
  import { getSessionMetadata } from "../storage/sqlite/session-read-repository.js";
5
5
  import { findConversationIdByTranscriptId, getSessionPersistedLevels } from "../storage/sqlite/session-repository.js";
6
- import "../storage/sqlite/index.js";
6
+ import { init_sqlite } from "../storage/sqlite/index.js";
7
7
  import { SessionConfigSchema, init_schema } from "../config/schema.js";
8
8
  import { normalizeThinkLevel, normalizeVerboseLevel } from "../agent/transcript/thinking-types.js";
9
9
  import { evaluateSessionFreshness, resolveSessionResetPolicy } from "./reset-policy.js";
@@ -13,6 +13,7 @@ import { randomUUID } from "node:crypto";
13
13
  //#region src/session/resolve-session.ts
14
14
  init_schema();
15
15
  init_logger();
16
+ init_sqlite();
16
17
  const log = createLogger("ResolveSession");
17
18
  async function resolveConversationIdForRequest(opts) {
18
19
  requireXopcDatabase();
@@ -17,6 +17,16 @@ export interface XopcTranscriptContextEntry {
17
17
  data?: Record<string, unknown>;
18
18
  createdAt?: string;
19
19
  }
20
+ /** Immutable hidden context captured when an ephemeral side chat becomes a session. */
21
+ export interface XopcTranscriptSideChatOriginEntry {
22
+ type: 'side_chat_origin';
23
+ version: 1;
24
+ parentConversationId: string;
25
+ parentTranscriptId: string;
26
+ createdAt: string;
27
+ contentHash: string;
28
+ contextMessages: AgentMessage[];
29
+ }
20
30
  /** Persisted-only row for replaying local shell executions in clients. */
21
31
  export interface XopcTranscriptBashExecutionEntry {
22
32
  role: 'bashExecution';
@@ -119,8 +129,9 @@ export interface XopcTranscriptSessionInfoEntry {
119
129
  name?: string;
120
130
  timestamp?: string | number;
121
131
  }
122
- export type TranscriptStoredRow = AgentMessage | XopcTranscriptContextEntry | XopcTranscriptBashExecutionEntry | XopcTranscriptCustomMessageEntry | XopcTranscriptCustomMessageFileEntry | XopcTranscriptCustomStateEntry | XopcTranscriptBranchSummaryEntry | XopcTranscriptCompactionSummaryEntry | XopcTranscriptCompactionEntry | XopcTranscriptLabelEntry | XopcTranscriptThinkingLevelChangeEntry | XopcTranscriptModelChangeEntry | XopcTranscriptSessionInfoEntry;
132
+ export type TranscriptStoredRow = AgentMessage | XopcTranscriptContextEntry | XopcTranscriptSideChatOriginEntry | XopcTranscriptBashExecutionEntry | XopcTranscriptCustomMessageEntry | XopcTranscriptCustomMessageFileEntry | XopcTranscriptCustomStateEntry | XopcTranscriptBranchSummaryEntry | XopcTranscriptCompactionSummaryEntry | XopcTranscriptCompactionEntry | XopcTranscriptLabelEntry | XopcTranscriptThinkingLevelChangeEntry | XopcTranscriptModelChangeEntry | XopcTranscriptSessionInfoEntry;
123
133
  export declare function isTranscriptContextEntry(x: unknown): x is XopcTranscriptContextEntry;
134
+ export declare function isTranscriptSideChatOriginEntry(x: unknown): x is XopcTranscriptSideChatOriginEntry;
124
135
  export declare function isTranscriptBashExecutionEntry(x: unknown): x is XopcTranscriptBashExecutionEntry;
125
136
  export declare function isTranscriptCustomMessageEntry(x: unknown): x is XopcTranscriptCustomMessageEntry | XopcTranscriptCustomMessageFileEntry;
126
137
  export declare function isTranscriptCustomStateEntry(x: unknown): x is XopcTranscriptCustomStateEntry;
@@ -6,6 +6,11 @@ function isTranscriptContextEntry(x) {
6
6
  if (!x || typeof x !== "object") return false;
7
7
  return x.kind === "context";
8
8
  }
9
+ function isTranscriptSideChatOriginEntry(x) {
10
+ if (!x || typeof x !== "object") return false;
11
+ const row = x;
12
+ return row.type === "side_chat_origin" && row.version === 1 && typeof row.parentConversationId === "string" && typeof row.parentTranscriptId === "string" && typeof row.createdAt === "string" && typeof row.contentHash === "string" && Array.isArray(row.contextMessages) && row.contextMessages.every(isLikelyAgentMessage);
13
+ }
9
14
  function isTranscriptBashExecutionEntry(x) {
10
15
  if (!x || typeof x !== "object") return false;
11
16
  return x.role === "bashExecution";
@@ -228,6 +233,10 @@ function sanitizeToolPairs(messages) {
228
233
  function transcriptRowsFromJsonArray(arr) {
229
234
  const out = [];
230
235
  for (const x of arr) {
236
+ if (isTranscriptSideChatOriginEntry(x)) {
237
+ out.push(x);
238
+ continue;
239
+ }
231
240
  if (isTranscriptContextEntry(x)) {
232
241
  out.push(x);
233
242
  continue;
@@ -268,6 +277,11 @@ function transcriptRowsFromJsonArray(arr) {
268
277
  function buildSessionContextForLlm(rows) {
269
278
  const out = [];
270
279
  for (const r of rows) {
280
+ if (isTranscriptSideChatOriginEntry(r)) {
281
+ out.length = 0;
282
+ out.push(...r.contextMessages);
283
+ continue;
284
+ }
271
285
  if (isTranscriptCompactionEntry(r)) {
272
286
  out.length = 0;
273
287
  out.push(...r.messages);
@@ -315,7 +329,7 @@ function buildSessionDisplayMessages(rows) {
315
329
  function mergeLlmMessagesPreservingContextRows(prevRows, llmMessages) {
316
330
  let i = 0;
317
331
  const out = [];
318
- for (const r of prevRows) if (isTranscriptContextEntry(r) || isTranscriptBashExecutionEntry(r) || isTranscriptCustomMessageEntry(r) || isTranscriptCustomStateEntry(r) || isTranscriptSummaryMessageEntry(r) || isTranscriptLabelEntry(r) || isTranscriptMetadataEntry(r)) out.push(r);
332
+ for (const r of prevRows) if (isTranscriptContextEntry(r) || isTranscriptSideChatOriginEntry(r) || isTranscriptBashExecutionEntry(r) || isTranscriptCustomMessageEntry(r) || isTranscriptCustomStateEntry(r) || isTranscriptSummaryMessageEntry(r) || isTranscriptLabelEntry(r) || isTranscriptMetadataEntry(r)) out.push(r);
319
333
  else if (i < llmMessages.length) {
320
334
  out.push(llmMessages[i]);
321
335
  i += 1;
@@ -340,4 +354,4 @@ var init_session_context_for_llm = __esmMin((() => {
340
354
  }));
341
355
  //#endregion
342
356
  init_session_context_for_llm();
343
- export { buildSessionContextForLlm, buildSessionDisplayMessages, init_session_context_for_llm, isRuntimeOnlyTranscriptMessage, isTranscriptBashExecutionEntry, isTranscriptCompactionEntry, isTranscriptContextEntry, isTranscriptCustomMessageEntry, isTranscriptCustomStateEntry, isTranscriptLabelEntry, isTranscriptMetadataEntry, isTranscriptSummaryMessageEntry, mergeLlmMessagesPreservingContextRows, transcriptRowsFromJsonArray };
357
+ export { buildSessionContextForLlm, buildSessionDisplayMessages, init_session_context_for_llm, isRuntimeOnlyTranscriptMessage, isTranscriptBashExecutionEntry, isTranscriptCompactionEntry, isTranscriptContextEntry, isTranscriptCustomMessageEntry, isTranscriptCustomStateEntry, isTranscriptLabelEntry, isTranscriptMetadataEntry, isTranscriptSideChatOriginEntry, isTranscriptSummaryMessageEntry, mergeLlmMessagesPreservingContextRows, transcriptRowsFromJsonArray };
@@ -34,7 +34,7 @@ function projectWorkspacePath(project) {
34
34
  * session override, or merged agent profile default.
35
35
  */
36
36
  function effectiveWorkspacePathForSession(cfg, conversationId, sessionAgentConfig, project) {
37
- const base = resolveEffectiveAgentProfileForSession(cfg, conversationId).resolvedWorkspacePath;
37
+ const base = resolveEffectiveAgentProfileForSession(conversationId).resolvedWorkspacePath;
38
38
  const environment = getExecutionEnvironmentForSession(conversationId);
39
39
  if (environment) return environment.rootPath;
40
40
  const projectWorkspace = projectWorkspacePath(project);
@@ -1,6 +1,7 @@
1
1
  import type { AgentMessage } from '@earendil-works/pi-agent-core';
2
2
  import type { Api, Model } from '@earendil-works/pi-ai/compat';
3
3
  import type { Config } from '../config/schema.js';
4
+ import type { SessionAgentConfig } from './config-types.js';
4
5
  import { type CompactionConfig, type CompactionExecutionOptions, type CompactionResult } from '../agent/memory/compaction.js';
5
6
  import { type WindowConfig } from '../agent/memory/window.js';
6
7
  import { type SessionMetadataSeed } from '../storage/sqlite/index.js';
@@ -38,6 +39,15 @@ export interface ForkSessionResult {
38
39
  rowCount: number;
39
40
  lastTurnId?: string;
40
41
  }
42
+ export interface CreateSessionFromRowsOptions {
43
+ targetKey: string;
44
+ cwd: string;
45
+ metadata: SessionMetadataSeed & {
46
+ agentId: string;
47
+ };
48
+ rows: TranscriptStoredRow[];
49
+ config?: SessionAgentConfig;
50
+ }
41
51
  export declare class SessionStore {
42
52
  private options;
43
53
  private window;
@@ -193,6 +203,10 @@ export declare class SessionStore {
193
203
  conversationId: string;
194
204
  rowCount: number;
195
205
  }>;
206
+ createSessionFromRows(options: CreateSessionFromRowsOptions): Promise<{
207
+ conversationId: string;
208
+ rowCount: number;
209
+ }>;
196
210
  forkSessionRows(sourceKey: string, targetKey: string, options?: {
197
211
  throughRow?: number;
198
212
  }): Promise<{
@@ -10,7 +10,7 @@ import { getSessionMetadata } from "../storage/sqlite/session-read-repository.js
10
10
  import { deleteSessionRecord, ensureSessionRecord, findConversationIdByTranscriptId, getGlobalSessionStats, listSessionMetadata, listSessionsByAgent, patchSessionMetadata, resetSessionRecord } from "../storage/sqlite/session-repository.js";
11
11
  import { appendCompactionBoundaryIfUnchanged, appendTranscriptEntry, listCompactionBoundaries, loadCompactionSourceSnapshot, loadLlmMessagesForSession, loadTranscriptHistoryRowsForSession, loadTranscriptRowsForSession, paginateTranscriptMessages, replaceTranscriptRows, restoreBeforeCompactionBoundary, searchSessionTranscript } from "../storage/sqlite/transcript-repository.js";
12
12
  import { getSessionConfig, setSessionConfig } from "../storage/sqlite/config-repository.js";
13
- import "../storage/sqlite/index.js";
13
+ import { init_sqlite } from "../storage/sqlite/index.js";
14
14
  import { init_agent_session_key, resolveAgentIdFromConversationId } from "../routing/agent-session-key.js";
15
15
  import { resolveEffectiveAgentProfile } from "../config/agent-profile.js";
16
16
  import { DurableState } from "../storage/sqlite/durable-state.js";
@@ -29,6 +29,7 @@ import { findSessionMessages } from "./session-find.js";
29
29
  init_paths_state();
30
30
  init_agent_session_key();
31
31
  init_logger();
32
+ init_sqlite();
32
33
  init_session_context_for_llm();
33
34
  const log = createLogger("SessionStore");
34
35
  const INDEX_VERSION = "1.0";
@@ -105,7 +106,7 @@ var SessionStore = class {
105
106
  resolveWorkspaceCwd(conversationId, seed) {
106
107
  const agentId = getSessionMetadata(conversationId)?.agentId ?? seed?.agentId ?? seed?.routing?.agentId;
107
108
  if (!agentId) throw new Error(`Conversation not found: ${conversationId}`);
108
- return resolveEffectiveAgentProfile(this.options.config, agentId).resolvedWorkspacePath;
109
+ return resolveEffectiveAgentProfile(agentId).resolvedWorkspacePath;
109
110
  }
110
111
  async runStoreMutation(fn) {
111
112
  return fn();
@@ -701,6 +702,23 @@ var SessionStore = class {
701
702
  async forkSession(sourceKey, targetKey) {
702
703
  return this.forkSessionRows(sourceKey, targetKey);
703
704
  }
705
+ async createSessionFromRows(options) {
706
+ return this.runStoreMutation(async () => {
707
+ requireXopcDatabase();
708
+ if (!options.targetKey.trim()) throw new Error("Target session key is required");
709
+ if (options.rows.length === 0) throw new Error("Session transcript cannot be empty");
710
+ return runSqliteWriteTransaction(() => {
711
+ if (getSessionMetadata(options.targetKey)) throw new Error(`Target session already exists: ${options.targetKey}`);
712
+ ensureSessionRecord(options.targetKey, options.cwd, options.metadata);
713
+ replaceTranscriptRows(options.targetKey, options.rows);
714
+ if (options.config) setSessionConfig(options.targetKey, options.config, options.cwd);
715
+ return {
716
+ conversationId: options.targetKey,
717
+ rowCount: options.rows.length
718
+ };
719
+ });
720
+ });
721
+ }
704
722
  async forkSessionRows(sourceKey, targetKey, options = {}) {
705
723
  return this.runStoreMutation(async () => {
706
724
  requireXopcDatabase();