@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
@@ -32,6 +32,10 @@ var init_home = __esmMin((() => {
32
32
  response: z.discriminatedUnion("kind", [z.object({
33
33
  kind: z.literal("connector_approval"),
34
34
  approvalId: z.string()
35
+ }), z.object({
36
+ kind: z.literal("task"),
37
+ taskId: z.string(),
38
+ canRetry: z.boolean()
35
39
  })]).optional()
36
40
  });
37
41
  z.object({
@@ -46,6 +50,16 @@ var init_home = __esmMin((() => {
46
50
  conversationId: z.string().optional()
47
51
  });
48
52
  HomeActionSchema = z.discriminatedUnion("type", [
53
+ z.object({
54
+ type: z.literal("task_review"),
55
+ label: z.string(),
56
+ taskId: z.string()
57
+ }),
58
+ z.object({
59
+ type: z.literal("retry_task"),
60
+ label: z.string(),
61
+ taskId: z.string()
62
+ }),
49
63
  z.object({
50
64
  type: z.literal("open"),
51
65
  label: z.string(),
@@ -40,6 +40,7 @@ import { init_extension_capabilities } from "./extension-capabilities.js";
40
40
  import { init_usage } from "./usage.js";
41
41
  import { init_task_result_delivery } from "./task-result-delivery.js";
42
42
  import { init_session_command_rejection } from "./session-command-rejection.js";
43
+ import { init_personal_proactivity } from "./personal-proactivity.js";
43
44
  //#region packages/gateway-contract/src/index.ts
44
45
  var init_src = __esmMin((() => {
45
46
  init_agent_stream();
@@ -83,6 +84,7 @@ var init_src = __esmMin((() => {
83
84
  init_usage();
84
85
  init_task_result_delivery();
85
86
  init_session_command_rejection();
87
+ init_personal_proactivity();
86
88
  }));
87
89
  //#endregion
88
90
  init_src();
@@ -22,7 +22,8 @@ var init_notifications = __esmMin((() => {
22
22
  }),
23
23
  z.object({
24
24
  kind: z.literal("chat"),
25
- conversationId: z.string().min(1)
25
+ conversationId: z.string().min(1),
26
+ personal: z.boolean().optional()
26
27
  }),
27
28
  z.object({
28
29
  kind: z.literal("task"),
@@ -0,0 +1,139 @@
1
+ import { __esmMin } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { z } from "zod";
3
+ //#region packages/gateway-contract/src/personal-proactivity.ts
4
+ function parsePersonalProactiveMessage(value) {
5
+ const result = PersonalProactiveMessageSchema.safeParse(value);
6
+ return result.success ? result.data : void 0;
7
+ }
8
+ var PERSONAL_PROACTIVE_MESSAGE_TYPE, PersonalProvenanceSchema, PersonalProactiveMessageSchema, PersonalProactivitySettingsSchema, PersonalFeedbackSchema, PersonalStrategyRollbackSchema, PersonalStrategyStateSchema;
9
+ var init_personal_proactivity = __esmMin((() => {
10
+ PERSONAL_PROACTIVE_MESSAGE_TYPE = "personal_proactive_message";
11
+ PersonalProvenanceSchema = z.object({
12
+ outreachId: z.string().uuid(),
13
+ reasonKind: z.enum([
14
+ "follow_up",
15
+ "discussion",
16
+ "change",
17
+ "prepared"
18
+ ]),
19
+ authority: z.enum(["user_explicit", "inferred"])
20
+ }).strict();
21
+ PersonalProactiveMessageSchema = z.object({
22
+ version: z.literal(1),
23
+ outreachId: z.string().uuid(),
24
+ threadId: z.string().uuid(),
25
+ conversationId: z.string().uuid(),
26
+ originTranscriptId: z.string().min(1),
27
+ text: z.string().trim().min(1).max(12e3),
28
+ provenance: PersonalProvenanceSchema,
29
+ createdAt: z.number().int().nonnegative()
30
+ }).strict();
31
+ PersonalProactivitySettingsSchema = z.object({
32
+ revision: z.number().int().positive().default(1),
33
+ mode: z.enum([
34
+ "off",
35
+ "follow_up",
36
+ "balanced"
37
+ ]).default("balanced"),
38
+ timezone: z.string().max(100).default("Asia/Shanghai").refine((value) => {
39
+ try {
40
+ new Intl.DateTimeFormat("en", { timeZone: value });
41
+ return true;
42
+ } catch {
43
+ return false;
44
+ }
45
+ }, "Invalid timezone"),
46
+ quietStart: z.number().int().min(0).max(23).default(22),
47
+ quietEnd: z.number().int().min(0).max(23).default(8),
48
+ dailyMessages: z.number().int().min(0).max(10).default(2),
49
+ dailyModelCalls: z.number().int().min(0).max(100).default(12)
50
+ }).strict();
51
+ PersonalFeedbackSchema = z.object({
52
+ idempotencyKey: z.string().min(1).max(200),
53
+ kind: z.enum([
54
+ "helpful",
55
+ "irrelevant",
56
+ "stop",
57
+ "defer",
58
+ "adjust"
59
+ ]),
60
+ scope: z.enum(["message", "thread"]).default("message"),
61
+ until: z.number().int().positive().optional(),
62
+ preparation: z.enum(["brief", "thorough"]).optional()
63
+ }).strict().superRefine((value, ctx) => {
64
+ if (value.kind === "defer" && !value.until) ctx.addIssue({
65
+ code: "custom",
66
+ message: "A defer time is required"
67
+ });
68
+ if (value.kind === "adjust" && !value.preparation) ctx.addIssue({
69
+ code: "custom",
70
+ message: "A preparation preference is required"
71
+ });
72
+ if ((value.kind === "stop" || value.kind === "adjust") && value.scope !== "thread") ctx.addIssue({
73
+ code: "custom",
74
+ message: "A lasting change requires thread scope"
75
+ });
76
+ });
77
+ PersonalStrategyRollbackSchema = z.object({
78
+ versionId: z.string().uuid(),
79
+ revision: z.number().int().positive(),
80
+ idempotencyKey: z.string().min(1).max(200)
81
+ }).strict();
82
+ PersonalStrategyStateSchema = z.object({
83
+ preparation: z.enum(["brief", "thorough"]).nullable(),
84
+ versions: z.array(z.object({
85
+ id: z.string().uuid(),
86
+ revision: z.number().int().positive(),
87
+ kind: z.enum([
88
+ "stop",
89
+ "defer",
90
+ "adjust",
91
+ "rollback"
92
+ ]),
93
+ createdAt: z.number(),
94
+ preparation: z.enum(["brief", "thorough"]).nullable()
95
+ }))
96
+ });
97
+ z.object({
98
+ id: z.string().uuid(),
99
+ subject: z.string(),
100
+ summary: z.string(),
101
+ status: z.enum([
102
+ "candidate",
103
+ "completed",
104
+ "expired"
105
+ ]),
106
+ confidence: z.number().min(0).max(1),
107
+ independentStatements: z.number().int(),
108
+ independentDays: z.number().int(),
109
+ lastSupportedAt: z.number(),
110
+ expiresAt: z.number(),
111
+ sources: z.array(z.object({
112
+ entryId: z.string(),
113
+ excerpt: z.string(),
114
+ observedAt: z.number()
115
+ }))
116
+ });
117
+ z.object({
118
+ provenance: PersonalProvenanceSchema,
119
+ thread: z.object({
120
+ id: z.string(),
121
+ subject: z.string(),
122
+ status: z.string(),
123
+ revision: z.number(),
124
+ nextCheckAt: z.number().nullable()
125
+ }),
126
+ whyNow: z.string(),
127
+ sources: z.array(z.object({
128
+ conversationId: z.string(),
129
+ transcriptId: z.string(),
130
+ entryId: z.string(),
131
+ excerpt: z.string()
132
+ })),
133
+ sourcesAvailable: z.boolean(),
134
+ strategy: PersonalStrategyStateSchema.optional()
135
+ });
136
+ }));
137
+ //#endregion
138
+ init_personal_proactivity();
139
+ export { PERSONAL_PROACTIVE_MESSAGE_TYPE, PersonalFeedbackSchema, PersonalProactiveMessageSchema, PersonalProactivitySettingsSchema, PersonalProvenanceSchema, PersonalStrategyRollbackSchema, PersonalStrategyStateSchema, init_personal_proactivity, parsePersonalProactiveMessage };
@@ -86,6 +86,7 @@ var init_session_input_command = __esmMin((() => {
86
86
  expectedTranscriptId: z.string().min(1).max(128),
87
87
  configVersion: z.number().int().nonnegative(),
88
88
  delivery: z.enum(["next", "steer"]),
89
+ interrupt: z.boolean().optional(),
89
90
  input: sessionInputContentSchema,
90
91
  origin: originSchema
91
92
  })]);
@@ -0,0 +1,373 @@
1
+ //#region packages/image-providers/src/catalog.ts
2
+ const ratios = [
3
+ "1:1",
4
+ "2:3",
5
+ "3:2",
6
+ "3:4",
7
+ "4:3",
8
+ "4:5",
9
+ "5:4",
10
+ "9:16",
11
+ "16:9",
12
+ "21:9"
13
+ ];
14
+ const square = [
15
+ "1024x1024",
16
+ "1536x1024",
17
+ "1024x1536"
18
+ ];
19
+ const pixelGeometry = (minPixels, maxPixels, maxEdge, step = 1, maxRatio = 8, minEdge = 64) => ({
20
+ sizes: square,
21
+ pixels: {
22
+ minPixels,
23
+ maxPixels,
24
+ maxEdge,
25
+ step,
26
+ maxRatio,
27
+ minEdge
28
+ }
29
+ });
30
+ const cap = (maxCount, maxInputs, geometry, formats = ["png"]) => ({
31
+ generate: {
32
+ maxCount,
33
+ supportsSize: Boolean(geometry?.sizes),
34
+ supportsAspectRatio: Boolean(geometry?.aspectRatios),
35
+ supportsResolution: Boolean(geometry?.resolutions)
36
+ },
37
+ edit: {
38
+ enabled: maxInputs > 0,
39
+ maxInputImages: maxInputs,
40
+ supportsSize: Boolean(geometry?.sizes),
41
+ supportsAspectRatio: Boolean(geometry?.aspectRatios),
42
+ supportsResolution: Boolean(geometry?.resolutions)
43
+ },
44
+ geometry,
45
+ output: { formats }
46
+ });
47
+ const model = (id, capabilities, name = id, editPath) => ({
48
+ id,
49
+ name,
50
+ capabilities,
51
+ ...editPath ? { editPath } : {}
52
+ });
53
+ const openai = cap(4, 16, {
54
+ ...pixelGeometry(655360, 8294400, 3840, 16, 3),
55
+ sizes: [...square, "auto"]
56
+ }, [
57
+ "png",
58
+ "jpeg",
59
+ "webp"
60
+ ]);
61
+ openai.output.qualities = [
62
+ "low",
63
+ "medium",
64
+ "high",
65
+ "xhigh",
66
+ "max",
67
+ "auto"
68
+ ];
69
+ openai.output.backgrounds = [
70
+ "transparent",
71
+ "opaque",
72
+ "auto"
73
+ ];
74
+ const wan = (pro) => {
75
+ const value = cap(1, 4, {
76
+ ...pixelGeometry(768 * 768, (pro ? 4096 : 2048) ** 2, pro ? 8192 : 4096),
77
+ sizes: [
78
+ ...square,
79
+ "1K",
80
+ "2K",
81
+ ...pro ? ["4K"] : []
82
+ ]
83
+ });
84
+ value.edit.maxInputBytes = 20 * 1024 * 1024;
85
+ value.edit.geometry = {
86
+ ...pixelGeometry(768 * 768, 2048 ** 2, 4096),
87
+ sizes: [
88
+ ...square,
89
+ "1K",
90
+ "2K"
91
+ ]
92
+ };
93
+ return value;
94
+ };
95
+ const gemini = (references, resolutions) => cap(1, references, {
96
+ aspectRatios: ratios,
97
+ resolutions
98
+ }, ["png", "jpeg"]);
99
+ const seedream = cap(1, 10, { sizes: [
100
+ "1K",
101
+ "2K",
102
+ "4K"
103
+ ] }, ["png", "jpeg"]);
104
+ const ideogram = cap(4, 5, { sizes: ["1024x1024", "2048x2048"] });
105
+ ideogram.edit = {
106
+ enabled: true,
107
+ maxInputImages: 5
108
+ };
109
+ ideogram.output.qualities = [
110
+ "low",
111
+ "medium",
112
+ "high"
113
+ ];
114
+ const flux = cap(1, 8, pixelGeometry(4096, 4e6, 4096, 16), ["png", "jpeg"]);
115
+ const providers = [
116
+ {
117
+ id: "openai",
118
+ name: "OpenAI",
119
+ protocol: "openai",
120
+ baseUrl: "https://api.openai.com/v1",
121
+ timeoutMs: 24e4,
122
+ documentationUrl: "https://developers.openai.com/api/docs/guides/image-generation",
123
+ apiKeyUrl: "https://platform.openai.com/api-keys",
124
+ models: [model("gpt-image-2.5-flare", openai, "GPT Image 2.5 Flare"), model("gpt-image-2.5-sunburst", openai, "GPT Image 2.5 Sunburst")]
125
+ },
126
+ {
127
+ id: "dashscope",
128
+ name: "Alibaba Model Studio",
129
+ protocol: "dashscope",
130
+ baseUrl: "https://dashscope.aliyuncs.com",
131
+ timeoutMs: 6e5,
132
+ regions: {
133
+ cn: "https://dashscope.aliyuncs.com",
134
+ intl: "https://dashscope-intl.aliyuncs.com"
135
+ },
136
+ documentationUrl: "https://help.aliyun.com/zh/model-studio/qwen-image-generation-and-editing-api-reference",
137
+ apiKeyUrl: "https://bailian.console.aliyun.com/",
138
+ models: [
139
+ model("qwen-image-3.0-pro", cap(1, 3, pixelGeometry(512 ** 2, 2048 ** 2, 4096))),
140
+ model("qwen-image-3.0", cap(1, 3, pixelGeometry(512 ** 2, 2048 ** 2, 4096))),
141
+ model("wan2.7-image-pro", wan(true)),
142
+ model("wan2.7-image", wan(false))
143
+ ]
144
+ },
145
+ {
146
+ id: "minimax",
147
+ name: "MiniMax",
148
+ protocol: "minimax",
149
+ baseUrl: "https://api.minimax.io",
150
+ timeoutMs: 18e4,
151
+ regions: {
152
+ cn: "https://api.minimaxi.com",
153
+ intl: "https://api.minimax.io"
154
+ },
155
+ documentationUrl: "https://platform.minimax.io/docs/api-reference/image-generation",
156
+ apiKeyUrl: "https://platform.minimax.io/user-center/basic-information/interface-key",
157
+ models: [model("image-01", cap(1, 0, { aspectRatios: [
158
+ "1:1",
159
+ "16:9",
160
+ "9:16",
161
+ "4:3",
162
+ "3:4"
163
+ ] }, ["jpeg"])), model("image-01-live", cap(1, 0, { aspectRatios: [
164
+ "1:1",
165
+ "16:9",
166
+ "9:16",
167
+ "4:3",
168
+ "3:4"
169
+ ] }, ["jpeg"]))]
170
+ },
171
+ {
172
+ id: "google",
173
+ name: "Google Gemini",
174
+ protocol: "google",
175
+ baseUrl: "https://generativelanguage.googleapis.com",
176
+ timeoutMs: 24e4,
177
+ documentationUrl: "https://ai.google.dev/gemini-api/docs/image-generation",
178
+ apiKeyUrl: "https://aistudio.google.com/app/apikey",
179
+ models: [
180
+ model("gemini-nano-banana-2.1", gemini(14, [
181
+ "1K",
182
+ "2K",
183
+ "4K"
184
+ ]), "Nano Banana 2.1"),
185
+ model("gemini-3.1-flash-lite-image", gemini(1, ["1K"]), "Nano Banana 2 Lite"),
186
+ model("gemini-3-pro-image", gemini(14, [
187
+ "1K",
188
+ "2K",
189
+ "4K"
190
+ ]), "Nano Banana Pro")
191
+ ]
192
+ },
193
+ {
194
+ id: "fal",
195
+ name: "fal.ai",
196
+ protocol: "fal",
197
+ baseUrl: "https://queue.fal.run",
198
+ timeoutMs: 6e5,
199
+ documentationUrl: "https://fal.ai/models",
200
+ apiKeyUrl: "https://fal.ai/dashboard/keys",
201
+ models: [
202
+ model("fal-ai/flux-2-pro", {
203
+ ...flux,
204
+ edit: {
205
+ ...flux.edit,
206
+ enabled: true,
207
+ maxInputImages: 8
208
+ }
209
+ }, "FLUX.2 Pro", "fal-ai/flux-2-pro/edit"),
210
+ model("google/nano-banana-2.1", gemini(14, [
211
+ "1K",
212
+ "2K",
213
+ "4K"
214
+ ]), "Nano Banana 2.1", "google/nano-banana-2.1/edit"),
215
+ model("fal-ai/flux-2/klein/4b", {
216
+ ...flux,
217
+ edit: {
218
+ ...flux.edit,
219
+ enabled: true,
220
+ maxInputImages: 4
221
+ }
222
+ }, "FLUX.2 Klein 4B", "fal-ai/flux-2/klein/4b/edit")
223
+ ]
224
+ },
225
+ {
226
+ id: "seedream",
227
+ name: "ByteDance Seedream",
228
+ protocol: "seedream",
229
+ baseUrl: "https://ark.cn-beijing.volces.com/api/v3",
230
+ timeoutMs: 24e4,
231
+ documentationUrl: "https://docs.volcengine.com/docs/ark/image-generation-api?lang=zh",
232
+ apiKeyUrl: "https://ark.volcengine.com/region:cn-beijing/apikey",
233
+ models: [model("doubao-seedream-5-0-flash-260915", seedream, "Seedream 5.0 Flash"), model("doubao-seedream-5-0-pro-260628", seedream, "Seedream 5.0 Pro")]
234
+ },
235
+ {
236
+ id: "ideogram",
237
+ name: "Ideogram",
238
+ protocol: "ideogram",
239
+ baseUrl: "https://api.ideogram.ai",
240
+ timeoutMs: 24e4,
241
+ documentationUrl: "https://developer.ideogram.ai/ideogram-api/api-overview",
242
+ apiKeyUrl: "https://ideogram.ai/manage-api",
243
+ models: [model("ideogram-4-5", ideogram, "Ideogram 4.5")]
244
+ },
245
+ {
246
+ id: "bfl",
247
+ name: "Black Forest Labs",
248
+ protocol: "bfl",
249
+ baseUrl: "https://api.bfl.ai/v1",
250
+ timeoutMs: 6e5,
251
+ documentationUrl: "https://docs.bfl.ai/flux_2/flux2_overview",
252
+ apiKeyUrl: "https://dashboard.bfl.ai/",
253
+ models: [
254
+ model("flux-2-pro", flux, "FLUX.2 Pro"),
255
+ model("flux-2-max", flux, "FLUX.2 Max"),
256
+ model("flux-2-klein-4b", {
257
+ ...flux,
258
+ edit: {
259
+ ...flux.edit,
260
+ enabled: true,
261
+ maxInputImages: 4
262
+ }
263
+ }, "FLUX.2 Klein 4B")
264
+ ]
265
+ },
266
+ {
267
+ id: "zhipu-cn",
268
+ name: "Zhipu GLM-Image",
269
+ protocol: "zhipu",
270
+ baseUrl: "https://open.bigmodel.cn/api/paas/v4",
271
+ timeoutMs: 24e4,
272
+ documentationUrl: "https://docs.bigmodel.cn/cn/guide/models/image-generation/glm-image",
273
+ apiKeyUrl: "https://bigmodel.cn/usercenter/proj-mgmt/apikeys",
274
+ models: [model("glm-image", cap(1, 0, {
275
+ ...pixelGeometry(512 ** 2, 2048 ** 2, 2048, 32, 4, 512),
276
+ sizes: [
277
+ "1280x1280",
278
+ "1568x1056",
279
+ "1056x1568",
280
+ "1472x1088",
281
+ "1088x1472",
282
+ "1728x960",
283
+ "960x1728"
284
+ ]
285
+ }))]
286
+ },
287
+ {
288
+ id: "tokenhub",
289
+ name: "Tencent TokenHub",
290
+ protocol: "tokenhub",
291
+ baseUrl: "https://tokenhub.tencentmaas.com",
292
+ timeoutMs: 24e4,
293
+ documentationUrl: "https://cloud.tencent.com/document/product/1823/135745",
294
+ apiKeyUrl: "https://console.cloud.tencent.com/tokenhub",
295
+ models: [model("hy-image-v3.5-preview", {
296
+ ...cap(1, 20, {
297
+ ...pixelGeometry(256 ** 2, 4096 ** 2, 8192, 1, 32, 256),
298
+ sizes: [
299
+ "1024x1024",
300
+ "2048x2048",
301
+ "4096x4096"
302
+ ]
303
+ }),
304
+ edit: {
305
+ enabled: true,
306
+ maxInputImages: 20,
307
+ supportsSize: true,
308
+ inputFormats: ["png", "jpeg"],
309
+ maxInputBytes: 20 * 1024 * 1024
310
+ }
311
+ }, "Hy Image 3.5 Preview"), model("hy-image-v3", {
312
+ ...cap(1, 3, {
313
+ ...pixelGeometry(512 ** 2, 1024 ** 2, 2048, 1, 4, 512),
314
+ sizes: ["1024x1024"]
315
+ }),
316
+ edit: {
317
+ enabled: true,
318
+ maxInputImages: 3,
319
+ supportsSize: true,
320
+ inputFormats: ["png", "jpeg"],
321
+ maxInputBytes: 10 * 1024 * 1024
322
+ }
323
+ }, "Hy Image 3.0")]
324
+ },
325
+ {
326
+ id: "stability",
327
+ name: "Stability AI",
328
+ protocol: "stability",
329
+ baseUrl: "https://api.stability.ai",
330
+ timeoutMs: 18e4,
331
+ documentationUrl: "https://platform.stability.ai/docs/api-reference",
332
+ apiKeyUrl: "https://platform.stability.ai/account/keys",
333
+ models: [model("stable-image-ultra", cap(1, 0, { aspectRatios: [
334
+ "1:1",
335
+ "16:9",
336
+ "9:16",
337
+ "4:3",
338
+ "3:4",
339
+ "3:2",
340
+ "2:3",
341
+ "21:9",
342
+ "9:21"
343
+ ] }, [
344
+ "png",
345
+ "jpeg",
346
+ "webp"
347
+ ])), model("stable-image-core", cap(1, 0, { aspectRatios: [
348
+ "1:1",
349
+ "16:9",
350
+ "9:16",
351
+ "4:3",
352
+ "3:4",
353
+ "3:2",
354
+ "2:3",
355
+ "21:9",
356
+ "9:21"
357
+ ] }, [
358
+ "png",
359
+ "jpeg",
360
+ "webp"
361
+ ]))]
362
+ }
363
+ ];
364
+ function listImageProviderSpecs() {
365
+ return structuredClone(providers);
366
+ }
367
+ function getImageProviderSpec(id) {
368
+ const spec = providers.find((item) => item.id === id);
369
+ if (!spec) throw new Error(`Unknown image provider: ${id}`);
370
+ return structuredClone(spec);
371
+ }
372
+ //#endregion
373
+ export { getImageProviderSpec, listImageProviderSpecs };