@xopcai/xopc 0.0.364 → 0.0.367

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 (365) hide show
  1. package/dist/browser-ext/dist/sidepanel.js +16 -4
  2. package/dist/browser-ext/manifest.json +1 -1
  3. package/dist/extensions/telegram/xopc.extension.json +1 -1
  4. package/dist/gateway/static/root/assets/{activity-store-GvR2gZ0T.js → activity-store-Cuf3JFFJ.js} +1 -1
  5. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-7Ct-ZlfL.js → agent-avatar-dicebear-DyATPNTe.js} +1 -1
  6. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-gT9_j4tr.js +1 -0
  7. package/dist/gateway/static/root/assets/agent-plugin-dialog-CLXCJ6JN.js +1 -0
  8. package/dist/gateway/static/root/assets/agents-BAUfOMsq.js +66 -0
  9. package/dist/gateway/static/root/assets/{agents-admin-api-BkXb7VEZ.js → agents-admin-api-D842OcNo.js} +1 -1
  10. package/dist/gateway/static/root/assets/app-link-4gpFbdsr.js +1 -0
  11. package/dist/gateway/static/root/assets/{app-management-settings-panel-CjfsIn9A.js → app-management-settings-panel-CoIFxQKH.js} +1 -1
  12. package/dist/gateway/static/root/assets/{appearance-settings-qqHZ15GU.js → appearance-settings-DQr0o6Lm.js} +1 -1
  13. package/dist/gateway/static/root/assets/{apps-page-Ba2VkQk6.js → apps-page-CltMV4Xp.js} +1 -1
  14. package/dist/gateway/static/root/assets/{archive-plugin-CKe3qAaL.js → archive-plugin-DT8Nio-r.js} +1 -1
  15. package/dist/gateway/static/root/assets/automation-display-DCkjVzA0.js +2 -0
  16. package/dist/gateway/static/root/assets/{automations-page-Bt8Q58ut.js → automations-page-BIfWS_3Y.js} +1 -1
  17. package/dist/gateway/static/root/assets/automations-workspace-BCGPjsdU.js +6 -0
  18. package/dist/gateway/static/root/assets/binary-plugins-7qs3qcW9.js +2 -0
  19. package/dist/gateway/static/root/assets/{block-editor-ClRFbHP7.js → block-editor-BFPUlxJ6.js} +28 -28
  20. package/dist/gateway/static/root/assets/{browser-automation-inputs-5B3qAdmb.js → browser-automation-inputs-BUAIKIX0.js} +1 -1
  21. package/dist/gateway/static/root/assets/{browser-automations-page-BjMub7JM.js → browser-automations-page-CSwu1U1F.js} +2 -2
  22. package/dist/gateway/static/root/assets/browser-settings-page-C1ReMNqX.js +3 -0
  23. package/dist/gateway/static/root/assets/capabilities-BzWFO_x_.js +1 -0
  24. package/dist/gateway/static/root/assets/{capabilities-BKu9BqPe.js → capabilities-K0Zb_lH0.js} +1 -1
  25. package/dist/gateway/static/root/assets/capabilities-page-BdTSqloI.js +2 -0
  26. package/dist/gateway/static/root/assets/{capabilities-settings-panel-gZ8auLwa.js → capabilities-settings-panel-BUblBMZC.js} +4 -4
  27. package/dist/gateway/static/root/assets/{capability-header-actions-L1NvoOUG.js → capability-header-actions-AMn_vTNv.js} +1 -1
  28. package/dist/gateway/static/root/assets/channels-CXCf5qO6.js +1 -0
  29. package/dist/gateway/static/root/assets/{chat-terminal-dock-DsCpKPBe.js → chat-terminal-dock-C7nAROhF.js} +2 -2
  30. package/dist/gateway/static/root/assets/chevron-left-DqFhpbvK.js +1 -0
  31. package/dist/gateway/static/root/assets/computer-settings-page-B5SuSZ3G.js +1 -0
  32. package/dist/gateway/static/root/assets/{connector-service-page-mtH9mEBf.js → connector-service-page-CTx1B8wx.js} +1 -1
  33. package/dist/gateway/static/root/assets/connectors-page-DfnK1crf.js +2 -0
  34. package/dist/gateway/static/root/assets/date-formatters-CUZAyDEg.js +1 -0
  35. package/dist/gateway/static/root/assets/date-picker-Cx_xIKvN.js +1 -0
  36. package/dist/gateway/static/root/assets/{dependency-picker-B_fPQBTM.js → dependency-picker-DYm96PDu.js} +1 -1
  37. package/dist/gateway/static/root/assets/{desktop-pet-CJrO9Vd_.js → desktop-pet-D90OzgeR.js} +1 -1
  38. package/dist/gateway/static/root/assets/{desktop-pet-settings-DYAfri9w.js → desktop-pet-settings-CmdCecjm.js} +1 -1
  39. package/dist/gateway/static/root/assets/{device-pairing-wizard-CqRys2R8.js → device-pairing-wizard-s2ogSa4l.js} +1 -1
  40. package/dist/gateway/static/root/assets/{directory-picker-path-field-D7_qSxNZ.js → directory-picker-path-field-DZpaoeNa.js} +1 -1
  41. package/dist/gateway/static/root/assets/{extension-debug-page-BGyJpRv4.js → extension-debug-page-Bv6QE8kC.js} +1 -1
  42. package/dist/gateway/static/root/assets/{extension-page-D1zBmd8F.js → extension-page-CEsq71Cm.js} +1 -1
  43. package/dist/gateway/static/root/assets/{extension-provider-F9JzOWZ3.js → extension-provider-CX-sK0Tw.js} +1 -1
  44. package/dist/gateway/static/root/assets/{extension-settings-page-CTR8AjCG.js → extension-settings-page-UyOHF39P.js} +1 -1
  45. package/dist/gateway/static/root/assets/{fallback-models-Chhv4Nfv.js → fallback-models-CKv_Wqg8.js} +1 -1
  46. package/dist/gateway/static/root/assets/{gateway-config-swr-CoRoOG1l.js → gateway-config-swr-Cjnkle5J.js} +1 -1
  47. package/dist/gateway/static/root/assets/{gateway-realtime-D0ygm6bc.js → gateway-realtime-DCCLdyQD.js} +1 -1
  48. package/dist/gateway/static/root/assets/gateway-realtime-store-C_Th8kGg.js +1 -0
  49. package/dist/gateway/static/root/assets/gateway-settings-CZ73IpbP.js +1 -0
  50. package/dist/gateway/static/root/assets/{gateway-startup-retry-FDS6S6qa.js → gateway-startup-retry-CXKmdVzN.js} +1 -1
  51. package/dist/gateway/static/root/assets/home-page-BQWq4kYi.js +2 -0
  52. package/dist/gateway/static/root/assets/{image-generation-api-BPd76jW5.js → image-generation-api-NLHzm4Nc.js} +1 -1
  53. package/dist/gateway/static/root/assets/{imports-page-9EnECtcl.js → imports-page-C7qvlBTQ.js} +1 -1
  54. package/dist/gateway/static/root/assets/index-BQgqzhQj.js +106 -0
  55. package/dist/gateway/static/root/assets/index-COB4QIJp.css +1 -0
  56. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-MC7mG2h2.js → keyboard-shortcuts-settings-pkgFWJb-.js} +1 -1
  57. package/dist/gateway/static/root/assets/local-app-workbench-page-dMDhZXAi.js +1 -0
  58. package/dist/gateway/static/root/assets/{local-apps-page-c3HncHZ3.js → local-apps-page-TpUAfOn2.js} +1 -1
  59. package/dist/gateway/static/root/assets/local-session-drafts-Cvv7I0fw.js +1 -0
  60. package/dist/gateway/static/root/assets/{locale-store-DId6-v2R.js → locale-store-C8TMD2gn.js} +1 -1
  61. package/dist/gateway/static/root/assets/logs-page-B-Y9oZLh.js +2 -0
  62. package/dist/gateway/static/root/assets/management-settings-B2lzsw6X.js +1 -0
  63. package/dist/gateway/static/root/assets/markdown-view-Dse7rkio.js +201 -0
  64. package/dist/gateway/static/root/assets/{media-plugins-XLewwq2q.js → media-plugins-BZrnzaBM.js} +1 -1
  65. package/dist/gateway/static/root/assets/messages-Dy26npMy.js +3 -0
  66. package/dist/gateway/static/root/assets/{models-hub-cache-B9SKjidc.js → models-hub-cache-B1C86nRp.js} +1 -1
  67. package/dist/gateway/static/root/assets/note-detail-panel-DL__qP6U.js +5 -0
  68. package/dist/gateway/static/root/assets/{notes-api-Byt65v3r.js → notes-api-DKiVeQKG.js} +1 -1
  69. package/dist/gateway/static/root/assets/notes-page-DTBbg9Hs.js +8 -0
  70. package/dist/gateway/static/root/assets/{oauth-api-BYsCbyGZ.js → oauth-api-BwpzpRwC.js} +1 -1
  71. package/dist/gateway/static/root/assets/open-route-MyZ2sB9C.js +1 -0
  72. package/dist/gateway/static/root/assets/{page-context-capture-button-RBp1QK0F.js → page-context-capture-button-Cxzd4QPB.js} +1 -1
  73. package/dist/gateway/static/root/assets/personal-page-CzaTnHeD.js +1 -0
  74. package/dist/gateway/static/root/assets/product-open-page-D4hoEWiu.js +1 -0
  75. package/dist/gateway/static/root/assets/product-preview-content-aR38El2E.js +1 -0
  76. package/dist/gateway/static/root/assets/project-detail-page-D20QH4YB.js +1 -0
  77. package/dist/gateway/static/root/assets/projects-page-Bf3BIcT6.js +1 -0
  78. package/dist/gateway/static/root/assets/{registry-api-7F2WNEZC.js → registry-api-AdnxowbH.js} +1 -1
  79. package/dist/gateway/static/root/assets/remote-access-hub-CKxqncqW.js +1 -0
  80. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-B0c120iI.js → runtime-tools-settings-panel-CBN3raz1.js} +1 -1
  81. package/dist/gateway/static/root/assets/scenes-page-Cv_5ozfX.js +2 -0
  82. package/dist/gateway/static/root/assets/{schema-form-DQpQc9tH.js → schema-form-CxrMGsT9.js} +1 -1
  83. package/dist/gateway/static/root/assets/secret-input-D93UrW4C.js +1 -0
  84. package/dist/gateway/static/root/assets/{send-session-input-D1oc6BC6.js → send-session-input-CgOzhDZ0.js} +1 -1
  85. package/dist/gateway/static/root/assets/{session-api-N3N37MrR.js → session-api-_HIN8or3.js} +1 -1
  86. package/dist/gateway/static/root/assets/session-manager-CzCto5zT.js +16 -0
  87. package/dist/gateway/static/root/assets/sessions-page-DZcu6NLJ.js +1 -0
  88. package/dist/gateway/static/root/assets/settings-advanced-gate-DazqeDQ7.js +1 -0
  89. package/dist/gateway/static/root/assets/{settings-page-GgBEp6O7.js → settings-page-D8Q3H3-o.js} +1 -1
  90. package/dist/gateway/static/root/assets/setup-status-panel-DvLMMiuS.js +1 -0
  91. package/dist/gateway/static/root/assets/{share-link-dialog-TBBGJPfT.js → share-link-dialog-Dg5os066.js} +1 -1
  92. package/dist/gateway/static/root/assets/{share-preview-page-DyRLPsPv.js → share-preview-page-DMvohAyr.js} +1 -1
  93. package/dist/gateway/static/root/assets/{shares-api-DU0fHP2G.js → shares-api-C96IO4qJ.js} +1 -1
  94. package/dist/gateway/static/root/assets/{shares-settings-DJ1ME-XM.js → shares-settings-CsDATuCw.js} +1 -1
  95. package/dist/gateway/static/root/assets/{skill-api-1Puv6wOz.js → skill-api-C10ML0CH.js} +1 -1
  96. package/dist/gateway/static/root/assets/{skill-reload-api-ClyFqHk7.js → skill-reload-api-DNbJzSfB.js} +1 -1
  97. package/dist/gateway/static/root/assets/skills-page-DObMKvA6.js +2 -0
  98. package/dist/gateway/static/root/assets/{system-settings-panel--yV67a8L.js → system-settings-panel-Bn3khdzb.js} +1 -1
  99. package/dist/gateway/static/root/assets/task-detail-page-BR2L1L8l.js +2 -0
  100. package/dist/gateway/static/root/assets/task-expandable-content-DL2Q2gre.js +1 -0
  101. package/dist/gateway/static/root/assets/{tasks-CH6KoBeY.js → tasks-DwKXgZ-I.js} +1 -1
  102. package/dist/gateway/static/root/assets/{theme-store-OhcbFEUR.js → theme-store-DQ6KJa4l.js} +1 -1
  103. package/dist/gateway/static/root/assets/tracing-settings-page-Ed8_GYUT.js +1 -0
  104. package/dist/gateway/static/root/assets/{tunnel-api-COLdiP_E.js → tunnel-api-D3X8jDwo.js} +1 -1
  105. package/dist/gateway/static/root/assets/{usage-page-CtM5IfrL.js → usage-page-BqzRyyb9.js} +1 -1
  106. package/dist/gateway/static/root/assets/{use-autosave-veoM0dHn.js → use-autosave-CRFefpzO.js} +1 -1
  107. package/dist/gateway/static/root/assets/use-composer-attachments-OLrvSjn5.js +2 -0
  108. package/dist/gateway/static/root/assets/{use-file-preview-expanded-Bope6MW6.js → use-file-preview-expanded-CJvzfQvw.js} +2 -2
  109. package/dist/gateway/static/root/assets/user-model-page-CG6wqIKP.js +2 -0
  110. package/dist/gateway/static/root/assets/{voice-api-key-field-CwD6a3KQ.js → voice-api-key-field-R9zNWYR_.js} +1 -1
  111. package/dist/gateway/static/root/assets/{voice-config-api-Daexehmc.js → voice-config-api-DLudE9Rc.js} +1 -1
  112. package/dist/gateway/static/root/assets/{work-discovery-overlay-C9u7tuEc.js → work-discovery-overlay-DVmQrolV.js} +1 -1
  113. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-BMOBbf33.js → workflow-run-setup-panel-DEkmuD3T.js} +2 -2
  114. package/dist/gateway/static/root/assets/workflows-page-pqCB3sh4.js +6 -0
  115. package/dist/gateway/static/root/assets/workspace-api-CdVUhyPo.js +2 -0
  116. package/dist/gateway/static/root/index.html +33 -31
  117. package/dist/package.js +1 -1
  118. package/dist/packages/gateway-contract/src/automations.js +1 -0
  119. package/dist/packages/gateway-contract/src/home.js +14 -0
  120. package/dist/packages/gateway-contract/src/index.js +2 -0
  121. package/dist/packages/gateway-contract/src/notifications.js +2 -1
  122. package/dist/packages/gateway-contract/src/personal-proactivity.js +139 -0
  123. package/dist/packages/gateway-contract/src/session-input-command.js +1 -0
  124. package/dist/packages/image-providers/src/catalog.js +373 -0
  125. package/dist/packages/image-providers/src/execute.js +372 -0
  126. package/dist/packages/image-providers/src/http.js +94 -0
  127. package/dist/packages/image-providers/src/index.js +5 -0
  128. package/dist/packages/image-providers/src/types.d.ts +95 -0
  129. package/dist/packages/image-providers/src/validation.js +52 -0
  130. package/dist/src/agent/agent-manager.d.ts +1 -0
  131. package/dist/src/agent/agent-manager.js +35 -3
  132. package/dist/src/agent/background-review/run-background-review.js +1 -1
  133. package/dist/src/agent/commands/command-registry.js +1 -1
  134. package/dist/src/agent/context/execution-context.js +1 -1
  135. package/dist/src/agent/context/project-context.js +4 -4
  136. package/dist/src/agent/embedded/run-for-session.js +1 -1
  137. package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
  138. package/dist/src/agent/failover-error.d.ts +1 -1
  139. package/dist/src/agent/failover-error.js +7 -0
  140. package/dist/src/agent/image/generation/native-provider.d.ts +2 -0
  141. package/dist/src/agent/image/generation/native-provider.js +118 -0
  142. package/dist/src/agent/image/generation/openai-images-provider.d.ts +1 -1
  143. package/dist/src/agent/image/generation/openai-images-provider.js +48 -32
  144. package/dist/src/agent/image/generation/provider-registry.js +4 -13
  145. package/dist/src/agent/image/generation/providers/xopc-cloud.js +5 -34
  146. package/dist/src/agent/image/generation/runtime-types.d.ts +2 -4
  147. package/dist/src/agent/image/generation/runtime.js +28 -23
  148. package/dist/src/agent/image/generation/types.d.ts +3 -50
  149. package/dist/src/agent/image/generation/validation.d.ts +6 -0
  150. package/dist/src/agent/image/generation/validation.js +16 -0
  151. package/dist/src/agent/inbound/attachment-pipeline.js +1 -1
  152. package/dist/src/agent/prompt/voice-presentation.d.ts +1 -1
  153. package/dist/src/agent/prompt/voice-presentation.js +1 -1
  154. package/dist/src/agent/service/direct-turn-helpers.js +17 -1
  155. package/dist/src/agent/service.js +3 -3
  156. package/dist/src/agent/skills/index.js +1 -1
  157. package/dist/src/agent/skills/managed-store.js +1 -1
  158. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  159. package/dist/src/agent/tools/delegation-parent-policy.js +2 -0
  160. package/dist/src/agent/tools/delegation-policy.js +2 -0
  161. package/dist/src/agent/tools/factory.d.ts +2 -0
  162. package/dist/src/agent/tools/factory.js +31 -4
  163. package/dist/src/agent/tools/image-generate-tool.js +5 -19
  164. package/dist/src/agent/tools/index.d.ts +2 -2
  165. package/dist/src/agent/tools/index.js +3 -3
  166. package/dist/src/agent/tools/knowledge-memory-tool.d.ts +2 -0
  167. package/dist/src/agent/tools/knowledge-memory-tool.js +60 -1
  168. package/dist/src/agent/tools/personal-attention-tool.d.ts +21 -0
  169. package/dist/src/agent/tools/personal-attention-tool.js +191 -0
  170. package/dist/src/agent/tools/personal-task-tool.d.ts +12 -8
  171. package/dist/src/agent/tools/personal-task-tool.js +35 -41
  172. package/dist/src/agent/tools/user-context-tool.d.ts +2 -0
  173. package/dist/src/agent/tools/user-context-tool.js +61 -2
  174. package/dist/src/agent/tools/xopc-use-tool.js +2 -2
  175. package/dist/src/agent-catalog/capabilities.js +2 -2
  176. package/dist/src/agent-catalog/migrations/legacy-config-cutover.js +1 -1
  177. package/dist/src/agent-catalog/repository.d.ts +1 -0
  178. package/dist/src/agent-catalog/repository.js +4 -1
  179. package/dist/src/automations/capabilities/drafts.js +1 -1
  180. package/dist/src/automations/capabilities/write.d.ts +2 -0
  181. package/dist/src/automations/domain/types.d.ts +1 -1
  182. package/dist/src/automations/domain/validation.d.ts +4 -0
  183. package/dist/src/automations/domain/validation.js +1 -0
  184. package/dist/src/automations/draft/automation-draft-validator.d.ts +1 -1
  185. package/dist/src/bootstrap/application-state.js +1 -1
  186. package/dist/src/capabilities/runtime/dispatcher.js +1 -1
  187. package/dist/src/capabilities/runtime/product.js +1 -1
  188. package/dist/src/chat-commands/personal-command-policy.d.ts +2 -0
  189. package/dist/src/chat-commands/personal-command-policy.js +9 -0
  190. package/dist/src/chat-commands/registry.js +6 -0
  191. package/dist/src/cli/commands/agents.js +1 -1
  192. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  193. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  194. package/dist/src/cli/commands/models.js +4 -9
  195. package/dist/src/cli/commands/onboard/model.js +2 -2
  196. package/dist/src/cli/utils/init-workspace-core.js +1 -1
  197. package/dist/src/config/agent-profile.js +1 -1
  198. package/dist/src/config/models-json.d.ts +170 -0
  199. package/dist/src/config/models-json.js +23 -8
  200. package/dist/src/extensions/agent-plugins/validation.js +1 -1
  201. package/dist/src/files/file-service.d.ts +6 -0
  202. package/dist/src/files/file-service.js +38 -1
  203. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  204. package/dist/src/gateway/agents-admin.js +2 -2
  205. package/dist/src/gateway/custom-image-providers.d.ts +34 -0
  206. package/dist/src/gateway/file-path-classifier.js +12 -3
  207. package/dist/src/gateway/hono/routes/agents.js +1 -1
  208. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  209. package/dist/src/gateway/hono/routes/files.js +13 -2
  210. package/dist/src/gateway/hono/routes/notes.js +2 -2
  211. package/dist/src/gateway/hono/routes/observability.js +8 -0
  212. package/dist/src/gateway/hono/routes/personal-agent.js +41 -0
  213. package/dist/src/gateway/hono/routes/projects.js +3 -3
  214. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +2 -0
  215. package/dist/src/gateway/hono/routes/session-input-handler.js +9 -1
  216. package/dist/src/gateway/hono/routes/sessions.js +1 -1
  217. package/dist/src/gateway/hono/routes/tasks.js +1 -1
  218. package/dist/src/gateway/hono/routes/voice.js +1 -1
  219. package/dist/src/gateway/image-generation-setup.js +1 -1
  220. package/dist/src/gateway/service/agent-runner.d.ts +1 -0
  221. package/dist/src/gateway/service/agent-runner.js +12 -1
  222. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -0
  223. package/dist/src/gateway/service/run-gateway-agent.js +15 -0
  224. package/dist/src/gateway/service/session-command-service.js +5 -3
  225. package/dist/src/gateway/service/session-input-coordinator.d.ts +12 -0
  226. package/dist/src/gateway/service/session-input-coordinator.js +63 -5
  227. package/dist/src/gateway/service/sessions-api.js +1 -1
  228. package/dist/src/gateway/service.d.ts +3 -0
  229. package/dist/src/gateway/service.js +54 -9
  230. package/dist/src/gateway/session-context-summary.js +1 -1
  231. package/dist/src/gateway/session-reset-service.js +1 -1
  232. package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
  233. package/dist/src/home-intelligence/host.js +2 -2
  234. package/dist/src/local-apps/service.js +2 -2
  235. package/dist/src/notifications/planner.js +32 -0
  236. package/dist/src/notifications/service.d.ts +2 -0
  237. package/dist/src/personal-agent/capability-service.js +3 -2
  238. package/dist/src/personal-agent/communication.d.ts +3 -2
  239. package/dist/src/personal-agent/communication.js +4 -3
  240. package/dist/src/personal-agent/conversation-state.d.ts +5 -0
  241. package/dist/src/personal-agent/conversation-state.js +17 -0
  242. package/dist/src/personal-agent/notifications.d.ts +4 -0
  243. package/dist/src/personal-agent/notifications.js +40 -0
  244. package/dist/src/personal-agent/persona.d.ts +6 -0
  245. package/dist/src/personal-agent/persona.js +16 -0
  246. package/dist/src/personal-agent/policy.d.ts +3 -1
  247. package/dist/src/personal-agent/policy.js +28 -6
  248. package/dist/src/personal-agent/proactivity/automation.d.ts +3 -0
  249. package/dist/src/personal-agent/proactivity/automation.js +41 -0
  250. package/dist/src/personal-agent/proactivity/follow-up-request.d.ts +5 -0
  251. package/dist/src/personal-agent/proactivity/follow-up-request.js +44 -0
  252. package/dist/src/personal-agent/proactivity/repository.d.ts +128 -0
  253. package/dist/src/personal-agent/proactivity/repository.js +403 -0
  254. package/dist/src/personal-agent/proactivity/routes.d.ts +3 -0
  255. package/dist/src/personal-agent/proactivity/routes.js +182 -0
  256. package/dist/src/personal-agent/proactivity/service.d.ts +32 -0
  257. package/dist/src/personal-agent/proactivity/service.js +496 -0
  258. package/dist/src/personal-agent/prompt-context.d.ts +10 -0
  259. package/dist/src/personal-agent/prompt-context.js +119 -0
  260. package/dist/src/personal-agent/prompts.d.ts +7 -0
  261. package/dist/src/personal-agent/prompts.js +135 -0
  262. package/dist/src/personal-agent/reply-composer.d.ts +1 -1
  263. package/dist/src/personal-agent/reply-composer.js +41 -13
  264. package/dist/src/personal-agent/repository.d.ts +1 -1
  265. package/dist/src/personal-agent/repository.js +1 -1
  266. package/dist/src/personal-agent/request-delivery.js +1 -1
  267. package/dist/src/personal-agent/request-service.js +2 -2
  268. package/dist/src/personal-agent/service.d.ts +1 -2
  269. package/dist/src/personal-agent/service.js +5 -93
  270. package/dist/src/personal-agent/specialist-capabilities.d.ts +9 -0
  271. package/dist/src/personal-agent/specialist-capabilities.js +37 -0
  272. package/dist/src/personal-agent/unread.d.ts +10 -0
  273. package/dist/src/personal-agent/unread.js +43 -0
  274. package/dist/src/providers/env-keys.js +6 -0
  275. package/dist/src/providers/model-catalog-persistence.js +3 -22
  276. package/dist/src/providers/model-catalog-store.js +1 -8
  277. package/dist/src/providers/model-catalog-types.d.ts +1 -9
  278. package/dist/src/providers/xopc-cloud-model-source.js +4 -25
  279. package/dist/src/session/client-history.d.ts +2 -0
  280. package/dist/src/session/client-history.js +26 -0
  281. package/dist/src/session/init-session-turn.js +10 -0
  282. package/dist/src/session/session-context-for-llm.js +28 -0
  283. package/dist/src/session/store.js +1 -1
  284. package/dist/src/storage/sqlite/migrations/235_personal_conversation_priority.sql +3 -0
  285. package/dist/src/storage/sqlite/migrations/236_personal_proactivity.sql +53 -0
  286. package/dist/src/storage/sqlite/migrations/237_personal_strategy_versions.sql +18 -0
  287. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  288. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  289. package/dist/src/storage/sqlite/schema.js +1 -1
  290. package/dist/src/storage/sqlite/session-input-repository.d.ts +2 -0
  291. package/dist/src/storage/sqlite/session-input-repository.js +18 -5
  292. package/dist/src/tasks/capabilities/read.js +2 -2
  293. package/dist/src/tasks/execution-context.js +1 -1
  294. package/dist/src/tasks/home-query-service.js +27 -1
  295. package/dist/src/tasks/task-main-update-decision-service.js +1 -1
  296. package/dist/src/tasks/task-result-delivery-service.js +1 -1
  297. package/dist/src/tui/backends/embedded-backend.js +1 -1
  298. package/dist/src/voice/platform-catalog.d.ts +1 -9
  299. package/dist/src/voice/realtime/agentEngine.js +32 -7
  300. package/dist/src/voice/realtime/engine.d.ts +1 -0
  301. package/dist/src/voice/realtime/omniEngine.d.ts +1 -0
  302. package/dist/src/voice/realtime/omniEngine.js +10 -0
  303. package/dist/src/voice/realtime/persona-context.js +1 -1
  304. package/dist/src/voice/realtime/runtime.d.ts +1 -0
  305. package/dist/src/voice/realtime/runtime.js +5 -0
  306. package/dist/src/voice/realtime/runtime.types.d.ts +2 -0
  307. package/dist/src/work-discovery/service.js +1 -1
  308. package/dist/src/workflows/service/workflow-run-service.js +1 -1
  309. package/package.json +4 -3
  310. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-wYj-iyqv.js +0 -1
  311. package/dist/gateway/static/root/assets/agent-plugin-dialog-C9HYMhnJ.js +0 -1
  312. package/dist/gateway/static/root/assets/agents-hPkFQ81z.js +0 -66
  313. package/dist/gateway/static/root/assets/app-link-DRL0YnPs.js +0 -1
  314. package/dist/gateway/static/root/assets/automations-workspace-Ch0ViAJW.js +0 -7
  315. package/dist/gateway/static/root/assets/binary-plugins-J51oS7-D.js +0 -2
  316. package/dist/gateway/static/root/assets/browser-settings-page-CYrPA-Fp.js +0 -3
  317. package/dist/gateway/static/root/assets/capabilities-CT_ZW9fT.js +0 -1
  318. package/dist/gateway/static/root/assets/capabilities-page-dW6FXtOy.js +0 -2
  319. package/dist/gateway/static/root/assets/channels-Dx5T2G73.js +0 -1
  320. package/dist/gateway/static/root/assets/computer-settings-page-6FWwxYLe.js +0 -1
  321. package/dist/gateway/static/root/assets/connectors-page-DgDLaws0.js +0 -2
  322. package/dist/gateway/static/root/assets/date-picker-BDcwEaIx.js +0 -1
  323. package/dist/gateway/static/root/assets/gateway-realtime-store-DBvCRclh.js +0 -1
  324. package/dist/gateway/static/root/assets/gateway-settings-BVfz4Tla.js +0 -1
  325. package/dist/gateway/static/root/assets/home-page-BF_9C9yW.js +0 -1
  326. package/dist/gateway/static/root/assets/index-BpXej9jJ.js +0 -106
  327. package/dist/gateway/static/root/assets/index-CbJNcWAn.css +0 -1
  328. package/dist/gateway/static/root/assets/local-app-workbench-page-CytNu0-_.js +0 -1
  329. package/dist/gateway/static/root/assets/local-session-drafts-gbemPamv.js +0 -1
  330. package/dist/gateway/static/root/assets/logs-page-D4aXtitd.js +0 -2
  331. package/dist/gateway/static/root/assets/management-settings-CRzWi_iJ.js +0 -1
  332. package/dist/gateway/static/root/assets/markdown-view-DQZ51j9e.js +0 -201
  333. package/dist/gateway/static/root/assets/messages-BHvpZNe9.js +0 -3
  334. package/dist/gateway/static/root/assets/note-detail-panel-BgbByI-4.js +0 -5
  335. package/dist/gateway/static/root/assets/notes-page-R2BX5XCE.js +0 -8
  336. package/dist/gateway/static/root/assets/personal-page-F0jTBWva.js +0 -1
  337. package/dist/gateway/static/root/assets/product-open-page-BtDK68qb.js +0 -1
  338. package/dist/gateway/static/root/assets/project-detail-page-DmQEm0yH.js +0 -1
  339. package/dist/gateway/static/root/assets/projects-page-CrLQvkHX.js +0 -1
  340. package/dist/gateway/static/root/assets/remote-access-hub-C25_hQAd.js +0 -1
  341. package/dist/gateway/static/root/assets/scenes-page-DM64yMnx.js +0 -2
  342. package/dist/gateway/static/root/assets/secret-input-DPl3VYM8.js +0 -1
  343. package/dist/gateway/static/root/assets/session-manager-CMGUwtbN.js +0 -16
  344. package/dist/gateway/static/root/assets/sessions-page-DvDO8LtA.js +0 -1
  345. package/dist/gateway/static/root/assets/settings-advanced-gate-BNhgbmcX.js +0 -1
  346. package/dist/gateway/static/root/assets/setup-status-panel-10bMi6yL.js +0 -1
  347. package/dist/gateway/static/root/assets/skills-page-D52pEr5x.js +0 -2
  348. package/dist/gateway/static/root/assets/task-detail-page-D-tcS2bS.js +0 -2
  349. package/dist/gateway/static/root/assets/tracing-settings-page-DoBJ0TYY.js +0 -1
  350. package/dist/gateway/static/root/assets/use-composer-attachments-DB0bBGzZ.js +0 -2
  351. package/dist/gateway/static/root/assets/user-model-page-CSh61kZ5.js +0 -2
  352. package/dist/gateway/static/root/assets/workflows-page-BrD9vXqO.js +0 -6
  353. package/dist/gateway/static/root/assets/workspace-api-Cs4sjV2A.js +0 -2
  354. package/dist/src/agent/image/generation/normalization.d.ts +0 -38
  355. package/dist/src/agent/image/generation/normalization.js +0 -181
  356. package/dist/src/agent/image/generation/providers/dashscope.d.ts +0 -35
  357. package/dist/src/agent/image/generation/providers/dashscope.js +0 -257
  358. package/dist/src/agent/image/generation/providers/fal.d.ts +0 -15
  359. package/dist/src/agent/image/generation/providers/fal.js +0 -323
  360. package/dist/src/agent/image/generation/providers/google.d.ts +0 -16
  361. package/dist/src/agent/image/generation/providers/google.js +0 -244
  362. package/dist/src/agent/image/generation/providers/minimax.d.ts +0 -23
  363. package/dist/src/agent/image/generation/providers/minimax.js +0 -215
  364. package/dist/src/agent/image/generation/providers/openai.d.ts +0 -5
  365. package/dist/src/agent/image/generation/providers/openai.js +0 -134
@@ -1,11 +1,13 @@
1
1
  import { createLogger } from "../../../utils/logger/index.js";
2
2
  import { init_logger } from "../../../utils/logger.js";
3
3
  import { PROVIDER_ENV_MAP, init_env_keys } from "../../../providers/env-keys.js";
4
+ import { ImageProviderError } from "../../../../packages/image-providers/src/validation.js";
5
+ import "../../../../packages/image-providers/src/index.js";
4
6
  import { describeFailoverError, isFailoverError } from "../../failover-error.js";
5
- import { buildMediaGenerationNormalizationMetadata, buildNoCapabilityModelConfiguredMessage, recordCapabilityCandidateFailure, resolveCapabilityModelCandidates, throwCapabilityGenerationFailure } from "../../media-generation/runtime-shared.js";
7
+ import { buildNoCapabilityModelConfiguredMessage, recordCapabilityCandidateFailure, resolveCapabilityModelCandidates, throwCapabilityGenerationFailure } from "../../media-generation/runtime-shared.js";
6
8
  import "../../media-generation/index.js";
7
9
  import { parseImageGenerationModelRef } from "./model-ref.js";
8
- import { resolveImageGenerationOverrides } from "./normalization.js";
10
+ import { validateImageGenerationRequest } from "./validation.js";
9
11
  import { getImageGenerationProvider, listImageGenerationProviders, listImageGenerationProvidersSummary as listImageGenerationProvidersSummary$1 } from "./provider-registry.js";
10
12
  //#region src/agent/image/generation/runtime.ts
11
13
  init_env_keys();
@@ -29,9 +31,13 @@ async function generateImage(params, deps = {}) {
29
31
  autoProviderFallback: params.autoProviderFallback
30
32
  });
31
33
  if (candidates.length === 0) throw new Error(buildNoImageGenerationModelConfiguredMessage(params.cfg, deps));
34
+ params = {
35
+ ...params,
36
+ signal: AbortSignal.any([AbortSignal.timeout(params.timeoutMs ?? 6e5), ...params.signal ? [params.signal] : []])
37
+ };
32
38
  const attempts = [];
33
39
  let lastError;
34
- for (const candidate of candidates) {
40
+ for (const candidate of candidates.slice(0, 3)) {
35
41
  const startedAt = Date.now();
36
42
  const provider = getProvider(candidate.provider, params.cfg);
37
43
  if (!provider) {
@@ -51,13 +57,15 @@ async function generateImage(params, deps = {}) {
51
57
  continue;
52
58
  }
53
59
  try {
60
+ if (!provider.models.includes(candidate.model)) throw new ImageProviderError(`Unsupported image model: ${candidate.model}`, 400);
54
61
  const modelCapabilities = provider.modelCapabilities?.[candidate.model];
55
- const sanitized = resolveImageGenerationOverrides({
62
+ validateImageGenerationRequest({
56
63
  provider: modelCapabilities ? {
57
64
  ...provider,
58
65
  capabilities: modelCapabilities
59
66
  } : provider,
60
67
  size: params.size,
68
+ count: params.count,
61
69
  aspectRatio: params.aspectRatio,
62
70
  resolution: params.resolution,
63
71
  quality: params.quality,
@@ -68,32 +76,29 @@ async function generateImage(params, deps = {}) {
68
76
  const request = buildProviderRequest({
69
77
  provider,
70
78
  candidate,
71
- params,
72
- sanitized
79
+ params
73
80
  });
74
81
  log.debug({
75
82
  provider: candidate.provider,
76
83
  model: candidate.model,
77
- phase: "provider_invoked",
78
- normalizationCount: sanitized.normalization ? Object.keys(sanitized.normalization).length : 0,
79
- ignoredCount: sanitized.ignoredOverrides.length
84
+ phase: "provider_invoked"
80
85
  }, `image-generation provider invoked: ${candidate.provider}/${candidate.model}`);
81
86
  const result = await provider.generateImage(request);
82
87
  if (!result.images?.length) throw new Error("Image generation provider returned no images.");
83
- const normalizationMetadata = buildMediaGenerationNormalizationMetadata({ normalization: sanitized.normalization });
84
88
  return {
85
89
  images: result.images,
86
90
  provider: candidate.provider,
87
91
  model: result.model ?? candidate.model,
88
92
  attempts,
89
- ...sanitized.normalization ? { normalization: sanitized.normalization } : {},
90
- ignoredOverrides: sanitized.ignoredOverrides,
91
- metadata: {
92
- ...result.metadata ?? {},
93
- ...normalizationMetadata
94
- }
93
+ metadata: result.metadata
95
94
  };
96
95
  } catch (err) {
96
+ const status = err && typeof err === "object" && "status" in err ? err.status : void 0;
97
+ if (params.signal?.aborted || err instanceof ImageProviderError && !err.retryable || ![
98
+ 401,
99
+ 403,
100
+ 429
101
+ ].includes(Number(status))) throw err;
97
102
  lastError = err;
98
103
  const durationMs = Date.now() - startedAt;
99
104
  recordCapabilityCandidateFailure({
@@ -127,7 +132,7 @@ function listImageGenerationProvidersSummary() {
127
132
  return listImageGenerationProvidersSummary$1();
128
133
  }
129
134
  function buildProviderRequest(input) {
130
- const { provider, candidate, params, sanitized } = input;
135
+ const { provider, candidate, params } = input;
131
136
  const inputImages = params.inputImages ? cloneInputImages(params.inputImages) : void 0;
132
137
  return {
133
138
  provider: provider.id,
@@ -140,12 +145,12 @@ function buildProviderRequest(input) {
140
145
  ...typeof params.timeoutMs === "number" ? { timeoutMs: params.timeoutMs } : {},
141
146
  ...params.signal ? { signal: params.signal } : {},
142
147
  ...typeof params.count === "number" ? { count: params.count } : {},
143
- ...sanitized.size !== void 0 ? { size: sanitized.size } : {},
144
- ...sanitized.aspectRatio !== void 0 ? { aspectRatio: sanitized.aspectRatio } : {},
145
- ...sanitized.resolution !== void 0 ? { resolution: sanitized.resolution } : {},
146
- ...sanitized.quality !== void 0 ? { quality: sanitized.quality } : {},
147
- ...sanitized.outputFormat !== void 0 ? { outputFormat: sanitized.outputFormat } : {},
148
- ...sanitized.background !== void 0 ? { background: sanitized.background } : {},
148
+ ...params.size !== void 0 ? { size: params.size } : {},
149
+ ...params.aspectRatio !== void 0 ? { aspectRatio: params.aspectRatio } : {},
150
+ ...params.resolution !== void 0 ? { resolution: params.resolution } : {},
151
+ ...params.quality !== void 0 ? { quality: params.quality } : {},
152
+ ...params.outputFormat !== void 0 ? { outputFormat: params.outputFormat } : {},
153
+ ...params.background !== void 0 ? { background: params.background } : {},
149
154
  ...inputImages ? { inputImages } : {},
150
155
  ...params.providerOptions ? { providerOptions: params.providerOptions } : {}
151
156
  };
@@ -1,48 +1,11 @@
1
1
  import type { Config } from '../../../config/schema.js';
2
2
  import type { AuthProfileStore } from '../../../providers/auth-runtime/index.js';
3
- import type { MediaNormalizationEntry } from '../../media-generation/normalization.types.js';
4
3
  export type ImageGenerationResolution = '1K' | '2K' | '4K';
5
- export type ImageGenerationQuality = 'low' | 'medium' | 'high' | 'auto';
4
+ export type ImageGenerationQuality = 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'auto';
6
5
  export type ImageGenerationOutputFormat = 'png' | 'jpeg' | 'webp';
7
6
  export type ImageGenerationBackground = 'transparent' | 'opaque' | 'auto';
8
- /** Generation-mode (text → image) capability slice. */
9
- export interface ImageGenerationGenerateCapability {
10
- /** Maximum images per call (defaults to 1 when omitted). */
11
- maxCount?: number;
12
- /** Provider supports an explicit `size` parameter. */
13
- supportsSize?: boolean;
14
- /** Provider supports `aspectRatio` parameter. */
15
- supportsAspectRatio?: boolean;
16
- /** Provider supports `resolution` parameter. */
17
- supportsResolution?: boolean;
18
- }
19
- /** Edit-mode (image → image) capability slice. */
20
- export interface ImageGenerationEditCapability {
21
- enabled: boolean;
22
- /** Max number of input reference images (1 = single ref). */
23
- maxInputImages?: number;
24
- supportsSize?: boolean;
25
- supportsAspectRatio?: boolean;
26
- }
27
- /** Geometry constraints (allowed values for size / aspectRatio / resolution). */
28
- export interface ImageGenerationGeometryCapability {
29
- sizes?: string[];
30
- aspectRatios?: string[];
31
- resolutions?: ImageGenerationResolution[];
32
- }
33
- /** Output / styling capability slice. */
34
- export interface ImageGenerationOutputCapability {
35
- qualities?: ImageGenerationQuality[];
36
- formats?: ImageGenerationOutputFormat[];
37
- backgrounds?: ImageGenerationBackground[];
38
- }
39
- /** New nested capability shape. */
40
- export interface ImageGenerationProviderCapabilities {
41
- generate?: ImageGenerationGenerateCapability;
42
- edit?: ImageGenerationEditCapability;
43
- geometry?: ImageGenerationGeometryCapability;
44
- output?: ImageGenerationOutputCapability;
45
- }
7
+ export type { ImageGeometry as ImageGenerationGeometryCapability } from '../../../../packages/image-providers/src/types.js';
8
+ export type ImageGenerationProviderCapabilities = import('../../../../packages/image-providers/src/types.js').ImageCapabilities;
46
9
  export interface ImageGenerationProviderConfiguredContext {
47
10
  cfg?: Config;
48
11
  agentId?: string;
@@ -112,16 +75,6 @@ export interface ImageGenerationSourceImage {
112
75
  fileName?: string;
113
76
  metadata?: Record<string, unknown>;
114
77
  }
115
- export type ImageGenerationIgnoredOverrideKey = 'size' | 'aspectRatio' | 'resolution' | 'quality' | 'outputFormat' | 'background';
116
- export interface ImageGenerationIgnoredOverride {
117
- key: ImageGenerationIgnoredOverrideKey;
118
- value: string;
119
- }
120
- export interface ImageGenerationNormalization {
121
- size?: MediaNormalizationEntry<string>;
122
- aspectRatio?: MediaNormalizationEntry<string>;
123
- resolution?: MediaNormalizationEntry<ImageGenerationResolution>;
124
- }
125
78
  export interface ImageGenerationRequest {
126
79
  provider: string;
127
80
  model: string;
@@ -0,0 +1,6 @@
1
+ import type { ImageGenerationProvider, ImageGenerationRequest } from './types.js';
2
+ export interface ImageGenerationValidationParams extends Pick<ImageGenerationRequest, 'size' | 'count' | 'aspectRatio' | 'resolution' | 'quality' | 'outputFormat' | 'background' | 'inputImages'> {
3
+ provider: ImageGenerationProvider;
4
+ }
5
+ export declare function validateImageGenerationRequest(params: ImageGenerationValidationParams): void;
6
+ export type { ImageGenerationProviderCapabilities } from './types.js';
@@ -0,0 +1,16 @@
1
+ import { validateImageRequest } from "../../../../packages/image-providers/src/validation.js";
2
+ import "../../../../packages/image-providers/src/index.js";
3
+ //#region src/agent/image/generation/validation.ts
4
+ function validateImageGenerationRequest(params) {
5
+ validateImageRequest({
6
+ ...params,
7
+ model: params.provider.defaultModel,
8
+ prompt: "validate",
9
+ inputImages: params.inputImages?.map((image, index) => ({
10
+ blob: new Blob([new Uint8Array(image.buffer)], { type: image.mimeType }),
11
+ fileName: image.fileName ?? `image-${index}`
12
+ }))
13
+ }, params.provider.capabilities);
14
+ }
15
+ //#endregion
16
+ export { validateImageGenerationRequest };
@@ -1,10 +1,10 @@
1
1
  import { stripRuntimeUserMessageEnvelope } from "../../../packages/gateway-contract/src/user-message-display.js";
2
2
  import { init_src } from "../../../packages/gateway-contract/src/index.js";
3
3
  import { extractProfileAgentId } from "../../config/agent-profile.js";
4
+ import { isPersonalConversation } from "../../personal-agent/repository.js";
4
5
  import { mimeTypeFromMediaPath } from "../../media/store.js";
5
6
  import { readAgentMessageContent } from "../memory/agent-message-access.js";
6
7
  import { readMediaReference } from "../../media/media-reference.js";
7
- import { isPersonalConversation } from "../../personal-agent/repository.js";
8
8
  import { isImageInboundAttachment } from "../../channels/attachments/attachment-classifiers.js";
9
9
  import "../../channels/attachments/inbound-persist.js";
10
10
  import { expandAtFileMentionsInPlainText } from "../context/expand-at-file-mentions.js";
@@ -1,2 +1,2 @@
1
1
  /** Per-turn presentation only; never persisted as a user message or Agent identity. */
2
- export declare const voicePresentationPrompt = "This turn is a live voice conversation in the same Chat.\nLead with the useful answer. Prefer one to three natural spoken sentences unless the user asks for detail.\nAllow silence. Do not repeatedly greet, recap unrelated old tasks, or end every reply with a question.\nFor work, briefly say what you are doing, use the available tools, then report the actual result.\nKeep code, long URLs, tables and detailed reference material in Chat; introduce them with a short spoken explanation.\nDo not imply a task continues in the background unless an existing task or workflow actually started it.\nUse the existing clarification and approval mechanisms. A background sound or ambiguous interjection is not permission for an action.\nStopping speech does not undo a completed tool action. State consequential results accurately.";
2
+ export declare const voicePresentationPrompt = "This turn is a live voice conversation in the same Chat.\nLead with the useful answer. Prefer one to three natural spoken sentences unless the user asks for detail.\nAllow silence. Do not repeatedly greet, recap unrelated old tasks, or end every reply with a question.\nFor work, briefly say what you are doing, use the available tools, then report the actual result.\nKeep code, long URLs, tables and detailed reference material in Chat; introduce them with a short spoken explanation.\nDo not imply a task continues in the background unless an existing task or workflow actually started it.\nAsk ordinary follow-up questions directly in speech, then let the user answer in the next turn; do not use a blocking clarification form. Keep formal action approvals in the existing approval mechanism. A background sound or ambiguous interjection is not permission for an action.\nStopping speech does not undo a completed tool action. State consequential results accurately.";
@@ -6,7 +6,7 @@ Allow silence. Do not repeatedly greet, recap unrelated old tasks, or end every
6
6
  For work, briefly say what you are doing, use the available tools, then report the actual result.
7
7
  Keep code, long URLs, tables and detailed reference material in Chat; introduce them with a short spoken explanation.
8
8
  Do not imply a task continues in the background unless an existing task or workflow actually started it.
9
- Use the existing clarification and approval mechanisms. A background sound or ambiguous interjection is not permission for an action.
9
+ Ask ordinary follow-up questions directly in speech, then let the user answer in the next turn; do not use a blocking clarification form. Keep formal action approvals in the existing approval mechanism. A background sound or ambiguous interjection is not permission for an action.
10
10
  Stopping speech does not undo a completed tool action. State consequential results accurately.`;
11
11
  //#endregion
12
12
  export { voicePresentationPrompt };
@@ -1,10 +1,12 @@
1
1
  import { getClarificationResumeInput, init_clarification_wait_repository } from "../../storage/sqlite/clarification-wait-repository.js";
2
2
  import { getConnectionResumeInput, init_connection_wait_repository } from "../../storage/sqlite/connection-wait-repository.js";
3
+ import { isPersonalConversation } from "../../personal-agent/repository.js";
3
4
  import { resolveImageHandlingStrategy } from "../image/vision-detection.js";
4
5
  import { hydrateUserTurnForLlm } from "../inbound/attachment-pipeline.js";
5
6
  import { buildDelegatedTaskDirective, buildTaskExecutionDirective } from "../../tasks/task-context-assembler.js";
6
7
  import { shouldSkipResetOverlapCommand } from "../../session/reset-triggers.js";
7
8
  import { parseSlashCommand } from "../../chat-commands/command-parse.js";
9
+ import { personalCommandRejection } from "../../chat-commands/personal-command-policy.js";
8
10
  import { commandRegistry } from "../../chat-commands/registry.js";
9
11
  import "../../chat-commands/index.js";
10
12
  import { runEmbeddedTurnForSession } from "../embedded/run-for-session.js";
@@ -33,11 +35,25 @@ async function hydratePerTurnState(deps, conversationId, thinking) {
33
35
  * can persist the receipt or stream it as a token.
34
36
  */
35
37
  async function tryRunSlashCommand(deps, ctx, content, options) {
36
- const parsed = parseSlashCommand(content);
38
+ const personal = isPersonalConversation(ctx.conversationId);
39
+ const parsed = personal ? /^\/[a-z][a-z0-9_:-]*(?:\s|$)/i.test(content.trim()) ? parseSlashCommand(content.trim().split(/\r?\n/)[0]) : null : parseSlashCommand(content);
37
40
  if (!parsed) return {
38
41
  matched: false,
39
42
  aggregatedText: ""
40
43
  };
44
+ if (personal) {
45
+ const command = commandRegistry.findByName(parsed.command);
46
+ if (!command && !parsed.command.startsWith("skill:")) return {
47
+ matched: false,
48
+ aggregatedText: ""
49
+ };
50
+ const rejection = personalCommandRejection(ctx.conversationId, command?.id ?? "skill.invoke", parsed.command);
51
+ if (rejection) return {
52
+ matched: true,
53
+ aggregatedText: rejection,
54
+ command: parsed.command
55
+ };
56
+ }
41
57
  if (options?.skipResetCommands && shouldSkipResetOverlapCommand(parsed.command, true)) return {
42
58
  matched: false,
43
59
  aggregatedText: ""
@@ -2,22 +2,22 @@ import { createLogger } from "../utils/logger/index.js";
2
2
  import { init_logger } from "../utils/logger.js";
3
3
  import { init_attachment_ref, parseNoteAttachmentTarget } from "../notes/attachment-ref.js";
4
4
  import { init_agent_scope, resolveAgentHomeDir, resolveDefaultAgentId } from "./agent-scope.js";
5
- import { extractTextContent } from "./context/workspace.js";
6
5
  import { configureTracing, flushTracing } from "../observability/runtime.js";
7
6
  import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
8
7
  import { applyConfigOverrides } from "../config/runtime-overrides.js";
9
8
  import { init_agent_session_key, resolveAgentIdFromConversationId } from "../routing/agent-session-key.js";
10
9
  import { extractProfileAgentId, resolveEffectiveAgentConfigForSession } from "../config/agent-profile.js";
11
10
  import { init_providers, resolveModel } from "../providers/index.js";
11
+ import { extractTextContent } from "./context/workspace.js";
12
12
  import { effectiveWorkspacePathForSession } from "../session/session-workspace.js";
13
13
  import { getProjectForSession } from "../projects/workspace.js";
14
+ import { getUserTimezone } from "../user-model/repository.js";
15
+ import "../user-model/index.js";
14
16
  import { runWithEmbeddedExecutionSession } from "./embedded/execution-context.js";
15
17
  import { removeSkillsLockEntry } from "./skills/hub-lock.js";
16
18
  import { installSkillFromZip } from "./skills/managed-store.js";
17
19
  import { resolveWorkspaceSkillsDir, resolveWorkspaceSkillsLockPath } from "./skills/workspace-skills-dir.js";
18
20
  import { pullSkillFromSource } from "./skills/hub-pull.js";
19
- import { getUserTimezone } from "../user-model/repository.js";
20
- import "../user-model/index.js";
21
21
  import { resolveAgentTurnTimeoutMs } from "./orchestration/run-agent-turn-with-timeout.js";
22
22
  import { onSessionTranscriptUpdate } from "../session/transcript-events.js";
23
23
  import { persistInboundAttachments } from "../channels/attachments/inbound-persist.js";
@@ -1,8 +1,8 @@
1
1
  import { resolveStateDir } from "../../config/paths-state.js";
2
2
  import { createLogger } from "../../utils/logger/index.js";
3
3
  import { init_logger } from "../../utils/logger.js";
4
- import { parseFrontmatter } from "../../markdown/frontmatter.js";
5
4
  import { init_paths } from "../../config/paths.js";
5
+ import { parseFrontmatter } from "../../markdown/frontmatter.js";
6
6
  import { findInstallSpec, hasBinary, installSkill } from "./installer.js";
7
7
  import { applySkillEnvOverrides, createSkillConfigManager, getSkillEnvironment, isSkillEnabled, resolveSkillConfig, validateSkillConfig } from "./config.js";
8
8
  import { parseSkillToolConditions } from "./skill-tool-gating.js";
@@ -1,5 +1,5 @@
1
- import { parseFrontmatter } from "../../markdown/frontmatter.js";
2
1
  import { init_paths, resolveSkillsDir } from "../../config/paths.js";
2
+ import { parseFrontmatter } from "../../markdown/frontmatter.js";
3
3
  import { loadSkillsLock } from "./hub-lock.js";
4
4
  import { dirname, join, resolve, sep } from "node:path";
5
5
  import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
@@ -1,5 +1,5 @@
1
- import { parseFrontmatter } from "../../markdown/frontmatter.js";
2
1
  import { init_paths, resolveSkillsDir } from "../../config/paths.js";
2
+ import { parseFrontmatter } from "../../markdown/frontmatter.js";
3
3
  import { resolveWorkspaceSkillsDir } from "./workspace-skills-dir.js";
4
4
  import { formatScanSummary, scanSkillDirectory } from "./scanner.js";
5
5
  import { fuzzyFindText, normalizeForFuzzyMatch, normalizeToLF, restoreLineEndings } from "../tools/edit-diff.js";
@@ -9,6 +9,8 @@ function createDelegationParentPolicy(options) {
9
9
  if (!options.getConfig()) return [];
10
10
  const resolved = options.conversationId ? resolveEffectiveAgentConfigForSession(options.conversationId) : options.agentId ? resolveEffectiveAgentConfigForAgent(options.agentId) : resolveEffectiveAgentConfigForSession(void 0);
11
11
  const names = [name];
12
+ const command = args?.command;
13
+ if ((name === "user_context_read" || name === "knowledge_read") && (command === "search" || command === "get")) names.push(`${name.slice(0, -5)}_${command}`);
12
14
  if (name === "xopc_tool_execute") {
13
15
  const parsed = parseExternalToolRef(String(args?.toolRef ?? ""), "mcp");
14
16
  const ref = String(args?.toolRef ?? "");
@@ -23,6 +23,8 @@ const DELEGATION_TOOL_CAPABILITIES = {
23
23
  web_search: "web_read",
24
24
  web_fetch: "web_read",
25
25
  web_extract: "web_read",
26
+ knowledge_read: "knowledge_read",
27
+ user_context_read: "knowledge_read",
26
28
  knowledge_search: "knowledge_read",
27
29
  knowledge_get: "knowledge_read",
28
30
  session_search: "knowledge_read",
@@ -15,6 +15,7 @@ import type { TurnOrigin } from '@xopcai/endpoint-tools-protocol';
15
15
  import type { ExtensionRegistry } from '../../extensions/types/index.js';
16
16
  import type { MessageBus } from '../../infra/bus/index.js';
17
17
  import { type SkillInstallToolOptions, type SkillInstallToolResult, type MarketplaceSkillInstallToolOptions, type MarketplaceSkillInstallToolResult } from './index.js';
18
+ import { type PersonalTaskToolDeps } from './personal-task-tool.js';
18
19
  import type { MemoryManager } from '../memory/manager.js';
19
20
  import type { SessionStore } from '../../session/store.js';
20
21
  import type { GatewayClarifyRequestFn } from './clarify-tool.js';
@@ -47,6 +48,7 @@ export interface ToolFactoryDeps {
47
48
  getMemoryManager?: () => MemoryManager;
48
49
  /** Skill runtime for the current workspace/session. */
49
50
  getSkillManager?: () => SkillManager;
51
+ getAgentSkillAvailability?: PersonalTaskToolDeps['getAgentSkillAvailability'];
50
52
  /** Session store for `session_search`. */
51
53
  getSessionStore?: () => SessionStore;
52
54
  /** When set (gateway webchat), enables the `clarify` tool. */
@@ -10,7 +10,10 @@ import { getSessionTaskPlan, setSessionTaskPlan } from "../../storage/sqlite/ses
10
10
  import { init_sqlite } from "../../storage/sqlite/index.js";
11
11
  import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
12
12
  import { resolveEffectiveAgentConfigForAgent, resolveEffectiveAgentConfigForSession } from "../../config/agent-profile.js";
13
+ import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
14
+ import { createPersonalAttentionTool } from "./personal-attention-tool.js";
13
15
  import "../../../packages/browser-control-contract/src/index.js";
16
+ import { PERSONAL_TOOL_DESCRIPTIONS } from "../../personal-agent/policy.js";
14
17
  import { getEmbeddedExecutionRunId, getEmbeddedExecutionSession } from "../embedded/execution-context.js";
15
18
  import { wrapToolsWithProtection } from "./executor.js";
16
19
  import { EXTERNAL_TOOL_NAMES } from "../external-tools/gateway-tools.js";
@@ -24,8 +27,8 @@ import { createListDirTool } from "./list-dir.js";
24
27
  import { createPublishArtifactsTool } from "./publish-artifacts.js";
25
28
  import { createExecCommandTool } from "./exec-command.js";
26
29
  import { createApplyPatchTool } from "./apply-patch.js";
27
- import { createUserContextGetTool, createUserContextSearchTool, createUserContextUpdateTool } from "./user-context-tool.js";
28
- import { createKnowledgeGetTool, createKnowledgeSearchTool, createKnowledgeWriteTool } from "./knowledge-memory-tool.js";
30
+ import { createUserContextGetTool, createUserContextReadTool, createUserContextSearchTool, createUserContextUpdateTool } from "./user-context-tool.js";
31
+ import { createKnowledgeGetTool, createKnowledgeReadTool, createKnowledgeSearchTool, createKnowledgeWriteTool } from "./knowledge-memory-tool.js";
29
32
  import { createSessionSearchTool } from "./session-search-tool.js";
30
33
  import { createSessionRecallTool } from "./session-recall-tool.js";
31
34
  import { createGrepTool } from "./grep.js";
@@ -68,7 +71,6 @@ import { createPersonalTaskTool } from "./personal-task-tool.js";
68
71
  import { createPersonalRequestTools } from "./personal-request-tool.js";
69
72
  import { createPersonalRequestConnectionTool, createPersonalRequestResultTool } from "./personal-request-result-tool.js";
70
73
  import { createPersonalPreferenceTool } from "./personal-preference-tool.js";
71
- import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
72
74
  import { createBrowserUseTool } from "./browser/tool/browser-use-tool.js";
73
75
  import { ComputerRuntime } from "../../computer/runtime.js";
74
76
  import { createComputerUseTool } from "./computer-use-tool.js";
@@ -294,6 +296,7 @@ var AgentToolsFactory = class AgentToolsFactory {
294
296
  const grep = createGrepTool(workspace);
295
297
  const find = createFindTool(workspace);
296
298
  const productToolDeps = {
299
+ getAgentSkillAvailability: this.deps.getAgentSkillAvailability,
297
300
  getWorkspace: () => this.deps.workspace,
298
301
  getConfig: () => this.deps.getConfig?.(),
299
302
  getCurrentAgentId: () => options?.agentId,
@@ -412,6 +415,13 @@ var AgentToolsFactory = class AgentToolsFactory {
412
415
  workspace,
413
416
  getConfig: () => this.deps.getConfig?.()
414
417
  })] : [],
418
+ ...personalToolsConfigured || allowed?.has("user_context_read") ? [createUserContextReadTool({
419
+ agentId: resolvedAgentId,
420
+ workspaceId: workspace,
421
+ getSessionId: currentConversationId,
422
+ getProjectId: currentProjectId,
423
+ canRead: () => currentAccess().userModel
424
+ }, (command) => !disabled?.has(`user_context_${command}`) && (!isXopcDatabaseOpen() || resolveEffectiveAgentConfigForAgent(resolvedAgentId).config.tools[`user_context_${command}`]?.mode !== "deny"))] : [],
415
425
  createUserContextSearchTool({
416
426
  agentId: resolvedAgentId,
417
427
  workspaceId: workspace,
@@ -438,6 +448,16 @@ var AgentToolsFactory = class AgentToolsFactory {
438
448
  return conversationId ? getPendingTranscriptUserText(conversationId) : void 0;
439
449
  }
440
450
  }),
451
+ ...personalToolsConfigured || allowed?.has("knowledge_read") ? [createKnowledgeReadTool({
452
+ agentId: resolvedAgentId,
453
+ workspaceId: workspace,
454
+ getSessionId: currentConversationId,
455
+ getProjectId: currentProjectId,
456
+ canRead: () => currentAccess().knowledge,
457
+ canWrite: () => currentAccess().knowledge,
458
+ getWritePolicy: knowledgeWritePolicy,
459
+ getReadPolicy: () => currentAccess().knowledgePolicy
460
+ }, (command) => !disabled?.has(`knowledge_${command}`) && (!isXopcDatabaseOpen() || resolveEffectiveAgentConfigForAgent(resolvedAgentId).config.tools[`knowledge_${command}`]?.mode !== "deny"))] : [],
441
461
  createKnowledgeSearchTool({
442
462
  agentId: resolvedAgentId,
443
463
  workspaceId: workspace,
@@ -489,6 +509,10 @@ var AgentToolsFactory = class AgentToolsFactory {
489
509
  createPersonalTaskTool(productToolDeps),
490
510
  createPersonalReadTool(productToolDeps),
491
511
  ...createPersonalRequestTools(productToolDeps),
512
+ createPersonalAttentionTool({
513
+ getConversationId: () => this.deps.getCurrentContext()?.conversationId,
514
+ getConfig: () => this.deps.getConfig?.()
515
+ }),
492
516
  createPersonalPreferenceTool({
493
517
  getCurrentConversationId: () => this.deps.getCurrentContext()?.conversationId,
494
518
  onAgentCatalogMutate: this.deps.onAgentCatalogMutate
@@ -591,7 +615,10 @@ var AgentToolsFactory = class AgentToolsFactory {
591
615
  allowHostGit: () => getCommandIsolation()?.mode !== "docker"
592
616
  }));
593
617
  }
594
- return filterToolsByDisabledSet(core, disabled).filter((tool) => !allowed || allowed.has(tool.name));
618
+ return filterToolsByDisabledSet(core, disabled).filter((tool) => (!allowed || allowed.has(tool.name)) && !(personalToolsConfigured && tool.name === "clarify")).map((tool) => personalToolsConfigured && PERSONAL_TOOL_DESCRIPTIONS[tool.name] ? {
619
+ ...tool,
620
+ description: PERSONAL_TOOL_DESCRIPTIONS[tool.name]
621
+ } : tool);
595
622
  }
596
623
  createCapabilityTools(capabilityNames, options) {
597
624
  const disabled = options?.disabledTools;
@@ -19,6 +19,8 @@ const ALLOWED_QUALITIES = [
19
19
  "low",
20
20
  "medium",
21
21
  "high",
22
+ "xhigh",
23
+ "max",
22
24
  "auto"
23
25
  ];
24
26
  const ALLOWED_OUTPUT_FORMATS = [
@@ -39,7 +41,7 @@ const ALLOWED_RESOLUTIONS = [
39
41
  const ImageGenerateToolSchema = Type.Object({
40
42
  action: Type.Optional(Type.String({ description: "Optional: \"generate\" (default) or \"list\" available image-generation providers." })),
41
43
  prompt: Type.Optional(Type.String({ description: "Image generation prompt." })),
42
- model: Type.Optional(Type.String({ description: "Optional provider/model override, e.g. openai/gpt-image-2 / dashscope/wan2.7-image-pro / minimax/image-01." })),
44
+ model: Type.Optional(Type.String({ description: "Optional provider/model override, e.g. openai/gpt-image-2.5-flare / dashscope/wan2.7-image-pro / minimax/image-01." })),
43
45
  filename: Type.Optional(Type.String({ description: "Optional basename hint for saved files." })),
44
46
  size: Type.Optional(Type.String({ description: "Optional pixel size, e.g. 1024x1024." })),
45
47
  aspectRatio: Type.Optional(Type.String({ description: "Optional aspect ratio, e.g. 16:9 / 9:16 / 1:1." })),
@@ -49,7 +51,7 @@ const ImageGenerateToolSchema = Type.Object({
49
51
  maximum: MAX_COUNT,
50
52
  description: `Number of images (1–${MAX_COUNT}).`
51
53
  })),
52
- quality: Type.Optional(Type.String({ description: "Optional quality: low / medium / high / auto." })),
54
+ quality: Type.Optional(Type.String({ description: "Optional quality: low / medium / high / xhigh / max / auto." })),
53
55
  outputFormat: Type.Optional(Type.String({ description: "Optional output format: png / jpeg / webp." })),
54
56
  background: Type.Optional(Type.String({ description: "Optional background: transparent / opaque / auto." })),
55
57
  inputImages: Type.Optional(Type.Array(Type.Object({ source: Type.String({ description: "Workspace-relative file path or `data:image/...;base64,...` URL." }) }), { description: "Reference images for edit mode (provider must support edit)." })),
@@ -282,12 +284,10 @@ function createImageGenerateTool(options) {
282
284
  filePath: paths[index],
283
285
  mediaType: "photo"
284
286
  })));
285
- const lines = [`Generated and attached ${paths.length} image(s) with ${result.provider}/${result.model}.`, ...paths.map((p) => `Saved: ${p}`)];
286
- for (const note of buildNormalizationNotes(result.normalization, result.ignoredOverrides)) lines.push(note);
287
287
  return {
288
288
  content: [{
289
289
  type: "text",
290
- text: lines.join("\n")
290
+ text: [`Generated and attached ${paths.length} image(s) with ${result.provider}/${result.model}.`, ...paths.map((p) => `Saved: ${p}`)].join("\n")
291
291
  }],
292
292
  details: {
293
293
  provider: result.provider,
@@ -308,8 +308,6 @@ function createImageGenerateTool(options) {
308
308
  workspaceRelativePath: workspaceRelativePaths[index]
309
309
  })),
310
310
  attempts: result.attempts,
311
- ...result.normalization ? { normalization: result.normalization } : {},
312
- ...result.ignoredOverrides.length > 0 ? { ignoredOverrides: result.ignoredOverrides } : {},
313
311
  ...result.metadata ? { metadata: result.metadata } : {}
314
312
  }
315
313
  };
@@ -337,17 +335,5 @@ function createImageGenerateTool(options) {
337
335
  }
338
336
  };
339
337
  }
340
- function buildNormalizationNotes(normalization, ignoredOverrides) {
341
- const notes = [];
342
- if (normalization) for (const [key, entry] of Object.entries(normalization)) {
343
- if (!entry) continue;
344
- const requested = entry.requested;
345
- const applied = entry.applied;
346
- if (requested !== void 0 && applied !== void 0 && requested !== applied) notes.push(`Note: requested ${key}="${requested}" → applied "${applied}".`);
347
- else if (applied !== void 0 && entry.derivedFrom) notes.push(`Note: ${key}="${applied}" derived from ${entry.derivedFrom}.`);
348
- }
349
- for (const ig of ignoredOverrides) notes.push(`Note: ignored ${ig.key}="${ig.value}" (not supported by provider).`);
350
- return notes;
351
- }
352
338
  //#endregion
353
339
  export { createImageGenerateTool, parseImageDataUrl, resolveImageGenerationModelConfigForTool };
@@ -6,8 +6,8 @@ export { createWriteFileTool, writeFileTool } from './write.js';
6
6
  export { createListDirTool, listDirTool } from './list-dir.js';
7
7
  export { createExecCommandTool, type ExecCommandDetails, type ExecCommandUpdateDetails, } from './exec-command.js';
8
8
  export { createApplyPatchTool, type AppliedPatchChange, type ApplyPatchDetails, } from './apply-patch.js';
9
- export { createUserContextSearchTool, createUserContextGetTool, createUserContextUpdateTool, type UserContextToolOptions, } from './user-context-tool.js';
10
- export { createKnowledgeSearchTool, createKnowledgeGetTool, createKnowledgeWriteTool, type KnowledgeToolOptions, } from './knowledge-memory-tool.js';
9
+ export { createUserContextReadTool, createUserContextSearchTool, createUserContextGetTool, createUserContextUpdateTool, type UserContextToolOptions, } from './user-context-tool.js';
10
+ export { createKnowledgeReadTool, createKnowledgeSearchTool, createKnowledgeGetTool, createKnowledgeWriteTool, type KnowledgeToolOptions, } from './knowledge-memory-tool.js';
11
11
  export { createSessionSearchTool } from './session-search-tool.js';
12
12
  export { createSessionRecallTool, type SessionRecallToolDeps } from './session-recall-tool.js';
13
13
  export { grepTool, createGrepTool, type GrepToolInput, type GrepToolDetails, } from './grep.js';
@@ -9,8 +9,8 @@ import { createPublishArtifactsTool } from "./publish-artifacts.js";
9
9
  import { createExecCommandTool } from "./exec-command.js";
10
10
  import { fuzzyFindText, generateDiffString, normalizeForFuzzyMatch, normalizeToLF, restoreLineEndings, stripBom } from "./edit-diff.js";
11
11
  import { createApplyPatchTool } from "./apply-patch.js";
12
- import { createUserContextGetTool, createUserContextSearchTool, createUserContextUpdateTool } from "./user-context-tool.js";
13
- import { createKnowledgeGetTool, createKnowledgeSearchTool, createKnowledgeWriteTool } from "./knowledge-memory-tool.js";
12
+ import { createUserContextGetTool, createUserContextReadTool, createUserContextSearchTool, createUserContextUpdateTool } from "./user-context-tool.js";
13
+ import { createKnowledgeGetTool, createKnowledgeReadTool, createKnowledgeSearchTool, createKnowledgeWriteTool } from "./knowledge-memory-tool.js";
14
14
  import { createSessionSearchTool } from "./session-search-tool.js";
15
15
  import { createSessionRecallTool } from "./session-recall-tool.js";
16
16
  import { createGrepTool, grepTool } from "./grep.js";
@@ -46,4 +46,4 @@ import { createManagedJobTool } from "./managed-job-tool.js";
46
46
  import { createImageTool } from "./image-tool.js";
47
47
  import { createImageGenerateTool, resolveImageGenerationModelConfigForTool } from "./image-generate-tool.js";
48
48
  import { createPersonalReadTool } from "./personal-read-tool.js";
49
- export { BrowserRuntime, DEFAULT_DELEGATE_TOOLS, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, DEFAULT_TOOL_METADATA, DEFAULT_WEB_EXTRACT_MAX_LENGTH, DELEGATE_BLOCKED_TOOLS, GREP_MAX_LINE_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, TodoStore, ToolConcurrencyController, assertBrowserUrlAllowed, createApplyPatchTool, createAutomationTool, createBrowserAutomationTool, createClarifyTool, createCreateShareTool, createDataBatchTool, createDelegateTool, createDesktopPetTool, createExecCommandTool, createFindTool, createGrepTool, createImageGenerateTool, createImageTool, createKnowledgeGetTool, createKnowledgeSearchTool, createKnowledgeWriteTool, createListDirTool, createManagedJobTool, createMemoryMaintenanceTool, createMessageTool, createPersonalReadTool, createPublishArtifactsTool, createReadFileTool, createReadMediaTool, createSendMediaTool, createSessionRecallTool, createSessionSearchTool, createSessionStatusTool, createSkillInstallTool, createSkillManageTool, createSkillViewTool, createSkillsListTool, createSkillsMarketplaceSearchTool, createTodoTool, createToolManualTool, createUpdatePlanTool, createUserContextGetTool, createUserContextSearchTool, createUserContextUpdateTool, createWebExtractTool, createWebFetchTool, createWebSearchTool, createWorkflowManageTool, createWorkflowTool, createWriteFileTool, createXopcUseTool, findTool, formatSize, fuzzyFindText, generateDiffString, getToolMetadata, grepTool, isShareToolAvailable, listDirTool, normalizeForFuzzyMatch, normalizeToLF, resolveImageGenerationModelConfigForTool, resolveImageModelConfigForTool, resolveToolLockMode, restoreLineEndings, stripBom, stripHtmlBoilerplate, truncateHead, truncateLine, truncateTail, writeFileTool };
49
+ export { BrowserRuntime, DEFAULT_DELEGATE_TOOLS, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, DEFAULT_TOOL_METADATA, DEFAULT_WEB_EXTRACT_MAX_LENGTH, DELEGATE_BLOCKED_TOOLS, GREP_MAX_LINE_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, TodoStore, ToolConcurrencyController, assertBrowserUrlAllowed, createApplyPatchTool, createAutomationTool, createBrowserAutomationTool, createClarifyTool, createCreateShareTool, createDataBatchTool, createDelegateTool, createDesktopPetTool, createExecCommandTool, createFindTool, createGrepTool, createImageGenerateTool, createImageTool, createKnowledgeGetTool, createKnowledgeReadTool, createKnowledgeSearchTool, createKnowledgeWriteTool, createListDirTool, createManagedJobTool, createMemoryMaintenanceTool, createMessageTool, createPersonalReadTool, createPublishArtifactsTool, createReadFileTool, createReadMediaTool, createSendMediaTool, createSessionRecallTool, createSessionSearchTool, createSessionStatusTool, createSkillInstallTool, createSkillManageTool, createSkillViewTool, createSkillsListTool, createSkillsMarketplaceSearchTool, createTodoTool, createToolManualTool, createUpdatePlanTool, createUserContextGetTool, createUserContextReadTool, createUserContextSearchTool, createUserContextUpdateTool, createWebExtractTool, createWebFetchTool, createWebSearchTool, createWorkflowManageTool, createWorkflowTool, createWriteFileTool, createXopcUseTool, findTool, formatSize, fuzzyFindText, generateDiffString, getToolMetadata, grepTool, isShareToolAvailable, listDirTool, normalizeForFuzzyMatch, normalizeToLF, resolveImageGenerationModelConfigForTool, resolveImageModelConfigForTool, resolveToolLockMode, restoreLineEndings, stripBom, stripHtmlBoilerplate, truncateHead, truncateLine, truncateTail, writeFileTool };
@@ -13,3 +13,5 @@ export interface KnowledgeToolOptions {
13
13
  export declare function createKnowledgeSearchTool(options: KnowledgeToolOptions): AgentTool;
14
14
  export declare function createKnowledgeGetTool(options: KnowledgeToolOptions): AgentTool;
15
15
  export declare function createKnowledgeWriteTool(options: KnowledgeToolOptions): AgentTool;
16
+ /** Combines bounded reads while preserving the original visibility and policy checks. */
17
+ export declare function createKnowledgeReadTool(options: KnowledgeToolOptions, canUseCommand?: (command: 'search' | 'get') => boolean): AgentTool;