@xopcai/xopc 0.0.210 → 0.0.213

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 (326) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{activity-store-JLmEb1p0.js → activity-store-Xw-pOm9A.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CI1zQfzY.js → agent-avatar-dicebear-Ca1bciiK.js} +1 -1
  5. package/dist/gateway/static/root/assets/agents-DD3TqNrC.js +68 -0
  6. package/dist/gateway/static/root/assets/{api-C6MmWfcb.js → api-CZK-lRew.js} +1 -1
  7. package/dist/gateway/static/root/assets/{app-management-settings-panel-Cd02GGpV.js → app-management-settings-panel-BLFIG09j.js} +1 -1
  8. package/dist/gateway/static/root/assets/{appearance-settings-Db-h2I3G.js → appearance-settings-BsTWUq1i.js} +1 -1
  9. package/dist/gateway/static/root/assets/apps-page-cJkDKn72.js +1 -0
  10. package/dist/gateway/static/root/assets/{archive-plugin-CMHzJT2a.js → archive-plugin-B9LsFfEx.js} +1 -1
  11. package/dist/gateway/static/root/assets/{attachment-load-BzhI2LoH.js → attachment-load-CsWiFfmN.js} +1 -1
  12. package/dist/gateway/static/root/assets/automations-page-CbjU2e75.js +1 -0
  13. package/dist/gateway/static/root/assets/automations-workspace-C4xyo0c4.js +6 -0
  14. package/dist/gateway/static/root/assets/{binary-plugins-DsUeHvZO.js → binary-plugins-DbqhT_JB.js} +1 -1
  15. package/dist/gateway/static/root/assets/{block-editor-CFfsIeZ4.js → block-editor-BGpHwxZ5.js} +4 -4
  16. package/dist/gateway/static/root/assets/browser-settings-page-CrhpQl-e.js +8 -0
  17. package/dist/gateway/static/root/assets/{browser-workflow-inputs-BiWghvJ0.js → browser-workflow-inputs-BXlon_hL.js} +1 -1
  18. package/dist/gateway/static/root/assets/{browser-workflows-page-DPLdT6Zn.js → browser-workflows-page-B3BBDM_r.js} +2 -2
  19. package/dist/gateway/static/root/assets/capabilities-settings-panel-B9MoPW9u.js +7 -0
  20. package/dist/gateway/static/root/assets/{capability-presets-api-CTxGFvsS.js → capability-presets-api-BqvMm6UW.js} +1 -1
  21. package/dist/gateway/static/root/assets/capability-presets-settings-panel-BmwldV9R.js +3 -0
  22. package/dist/gateway/static/root/assets/{channel-recipient-api-BklVUOxC.js → channel-recipient-api-9uca5kDa.js} +1 -1
  23. package/dist/gateway/static/root/assets/channels-settings-CwLqWcy_.js +1 -0
  24. package/dist/gateway/static/root/assets/channels-status-swr-DeBw3du9.js +1 -0
  25. package/dist/gateway/static/root/assets/{chat-terminal-dock-0F4Jmma2.js → chat-terminal-dock-DJjYT3WX.js} +2 -2
  26. package/dist/gateway/static/root/assets/{chunk-KS7C4IRE-BMhrPKJC.js → chunk-KS7C4IRE-BaASWQor.js} +1 -1
  27. package/dist/gateway/static/root/assets/{connectors-api-BvIZ51ty.js → connectors-api-XCLfuDrN.js} +1 -1
  28. package/dist/gateway/static/root/assets/connectors-page-CVkGtcMS.js +2 -0
  29. package/dist/gateway/static/root/assets/{cron-expression-BHmwaMbO.js → cron-expression-DzQN7zBR.js} +1 -1
  30. package/dist/gateway/static/root/assets/{date-picker-fj_pPCv5.js → date-picker-B-r5O5qd.js} +1 -1
  31. package/dist/gateway/static/root/assets/{dependency-picker-DsWvwOv-.js → dependency-picker-Ch2XBU2s.js} +1 -1
  32. package/dist/gateway/static/root/assets/{desktop-pet-mjkF0Xxh.js → desktop-pet-BdjX8jde.js} +1 -1
  33. package/dist/gateway/static/root/assets/{desktop-pet-settings-ClwUpRYu.js → desktop-pet-settings-CzjjgMMn.js} +1 -1
  34. package/dist/gateway/static/root/assets/directory-picker-path-field-BCTgGTk4.js +1 -0
  35. package/dist/gateway/static/root/assets/{extension-debug-page-DC69wplH.js → extension-debug-page-6OGgOucD.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-page-DCtk6zdJ.js → extension-page-Cf6MUfCF.js} +1 -1
  37. package/dist/gateway/static/root/assets/{extension-settings-page-Bkm4zzv-.js → extension-settings-page-pSY_ZvQZ.js} +1 -1
  38. package/dist/gateway/static/root/assets/{gateway-config-api-Dr_NQt7v.js → gateway-config-api-CFJMng9v.js} +1 -1
  39. package/dist/gateway/static/root/assets/{gateway-config-swr-CEfv8N1J.js → gateway-config-swr-DpiY6aub.js} +1 -1
  40. package/dist/gateway/static/root/assets/gateway-settings-aQYxNePf.js +1 -0
  41. package/dist/gateway/static/root/assets/{gateway-startup-retry-B8hebJ7s.js → gateway-startup-retry-BZ_6ChP4.js} +1 -1
  42. package/dist/gateway/static/root/assets/heartbeat-settings-CI33q9i1.js +1 -0
  43. package/dist/gateway/static/root/assets/home-page-CAIaWs6r.js +1 -0
  44. package/dist/gateway/static/root/assets/image-generation-api-DPndEWOU.js +1 -0
  45. package/dist/gateway/static/root/assets/index-BhstAl5i.js +108 -0
  46. package/dist/gateway/static/root/assets/index-DQzjgIkQ.css +2 -0
  47. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DCQvf05d.js → keyboard-shortcuts-settings-CbLJRGXR.js} +1 -1
  48. package/dist/gateway/static/root/assets/local-app-workbench-page-BqFnCaKT.js +2 -0
  49. package/dist/gateway/static/root/assets/{local-apps-page-B3Ugd0my.js → local-apps-page-Crf6c3SK.js} +1 -1
  50. package/dist/gateway/static/root/assets/{locale-store-hDBVeG3G.js → locale-store-BYSRjM6g.js} +1 -1
  51. package/dist/gateway/static/root/assets/{logs-page-nXdF3wOT.js → logs-page-BpfLQWex.js} +2 -2
  52. package/dist/gateway/static/root/assets/{management-settings-C-S5Llq3.js → management-settings-mxyYWKgM.js} +1 -1
  53. package/dist/gateway/static/root/assets/{markdown-split-DuVq37Uh.js → markdown-split-kZaPrUTM.js} +1 -1
  54. package/dist/gateway/static/root/assets/markdown-view-DD_PgVue.css +1 -0
  55. package/dist/gateway/static/root/assets/{markdown-view-D8eO_6h3.js → markdown-view-DlsczsQ1.js} +1 -1
  56. package/dist/gateway/static/root/assets/{media-plugins-C1V6pkX3.js → media-plugins-Dk67jaG6.js} +1 -1
  57. package/dist/gateway/static/root/assets/messages-DyM8OOVG.js +3 -0
  58. package/dist/gateway/static/root/assets/notes-api-DaeeQw8A.js +1 -0
  59. package/dist/gateway/static/root/assets/{notes-page-Dn71ZV8c.js → notes-page-CQDzw8fX.js} +1 -1
  60. package/dist/gateway/static/root/assets/notes-workbench-BYiROmRJ.js +4 -0
  61. package/dist/gateway/static/root/assets/{page-tabs-B5a5aSoS.js → page-tabs-C4UkhX2U.js} +1 -1
  62. package/dist/gateway/static/root/assets/{preview-open-alternatives-5041AIBX.js → preview-open-alternatives-nzcjh6y0.js} +1 -1
  63. package/dist/gateway/static/root/assets/{product-open-page-7UkouFQU.js → product-open-page-3FvW5cHm.js} +1 -1
  64. package/dist/gateway/static/root/assets/project-detail-page-p45i1sMj.js +1 -0
  65. package/dist/gateway/static/root/assets/projects-page-Y9yXB4DX.js +1 -0
  66. package/dist/gateway/static/root/assets/registry-api-Bu6OGEY2.js +2 -0
  67. package/dist/gateway/static/root/assets/remote-access-hub-CNsGY0VS.js +1 -0
  68. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-DvaXzHYS.js → runtime-tools-settings-panel-CVqPSfUb.js} +2 -2
  69. package/dist/gateway/static/root/assets/{schema-form-Dlxl_5X0.js → schema-form-Dz6eZpqv.js} +1 -1
  70. package/dist/gateway/static/root/assets/sessions-page-BAtpgb1t.js +1 -0
  71. package/dist/gateway/static/root/assets/settings-advanced-gate-pgBQ21Oe.js +1 -0
  72. package/dist/gateway/static/root/assets/{settings-form-section-CSaiuuer.js → settings-form-section-BaWFAZv4.js} +1 -1
  73. package/dist/gateway/static/root/assets/{settings-loading-skeleton-H3mJwt3r.js → settings-loading-skeleton-BWmdZfNg.js} +1 -1
  74. package/dist/gateway/static/root/assets/{settings-page-Cs7zA4BS.js → settings-page-Btcb-Dc8.js} +1 -1
  75. package/dist/gateway/static/root/assets/setup-status-panel-BNllZUFP.js +1 -0
  76. package/dist/gateway/static/root/assets/{share-preview-page-Bdpw5m7M.js → share-preview-page-CGzY3S0N.js} +1 -1
  77. package/dist/gateway/static/root/assets/shares-settings-CncwbTHY.js +1 -0
  78. package/dist/gateway/static/root/assets/skill-reload-api-CcW2dhSW.js +1 -0
  79. package/dist/gateway/static/root/assets/{skills-page-Bup3Lg1Z.js → skills-page-Bi2IWpU0.js} +1 -1
  80. package/dist/gateway/static/root/assets/{skills-page.utils-D22ORR21.js → skills-page.utils-BancvwN2.js} +1 -1
  81. package/dist/gateway/static/root/assets/{system-settings-panel-GmtWsfjB.js → system-settings-panel-CihjIzWx.js} +1 -1
  82. package/dist/gateway/static/root/assets/task-detail-page-SSNFtY-d.js +1 -0
  83. package/dist/gateway/static/root/assets/{theme-store-CtY8RwMX.js → theme-store-D1_t_31B.js} +1 -1
  84. package/dist/gateway/static/root/assets/{typed-models-lib-C2aOdlEA.js → typed-models-lib-C2LhiQq5.js} +1 -1
  85. package/dist/gateway/static/root/assets/{use-autosave-DOj5i8d_.js → use-autosave-tf_8rxAK.js} +1 -1
  86. package/dist/gateway/static/root/assets/user-context-page-BnPTFEar.js +1 -0
  87. package/dist/gateway/static/root/assets/{voice-api-key-field-5WfurWYa.js → voice-api-key-field-DN-y7Zfe.js} +1 -1
  88. package/dist/gateway/static/root/assets/work-discovery-overlay-bqqH4aZ9.js +1 -0
  89. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-bBA8LinI.js → workflow-run-setup-panel-2H33iXOB.js} +2 -2
  90. package/dist/gateway/static/root/assets/workflows-page-BnfxRf1q.js +5 -0
  91. package/dist/gateway/static/root/index.html +13 -11
  92. package/dist/package.js +1 -1
  93. package/dist/src/agent/agent-manager.js +1 -1
  94. package/dist/src/agent/image/generation/providers/xopc-cloud.js +2 -1
  95. package/dist/src/agent/image/tool-model-config.js +15 -9
  96. package/dist/src/agent/memory/builtin-provider.js +0 -1
  97. package/dist/src/agent/memory/create-memory-manager.js +1 -1
  98. package/dist/src/agent/tools/image-generate-tool.js +23 -7
  99. package/dist/src/agent-runtime/index.js +1 -1
  100. package/dist/src/agent-runtime/runtime-profile.js +1 -1
  101. package/dist/src/auth/oauth/xopc-cloud.js +1 -1
  102. package/dist/src/capabilities/readiness/from-config.d.ts +10 -0
  103. package/dist/src/capabilities/readiness/from-config.js +128 -0
  104. package/dist/src/capabilities/readiness/index.d.ts +3 -0
  105. package/dist/src/capabilities/readiness/index.js +3 -0
  106. package/dist/src/capabilities/readiness/planner.d.ts +3 -0
  107. package/dist/src/capabilities/readiness/planner.js +56 -0
  108. package/dist/src/capabilities/readiness/types.d.ts +35 -0
  109. package/dist/src/capabilities/readiness/types.js +1 -0
  110. package/dist/src/cli/commands/agent.js +9 -0
  111. package/dist/src/cli/commands/auth.js +4 -3
  112. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  113. package/dist/src/cli/commands/models.js +2 -1
  114. package/dist/src/cli/commands/onboard/model.d.ts +3 -21
  115. package/dist/src/cli/commands/onboard/model.js +10 -86
  116. package/dist/src/cli/commands/tunnel.js +3 -3
  117. package/dist/src/cli/utils/oauth-login.d.ts +2 -0
  118. package/dist/src/cli/utils/oauth-login.js +9 -1
  119. package/dist/src/config/index.js +2 -2
  120. package/dist/src/config/paths-state.d.ts +2 -0
  121. package/dist/src/config/paths-state.js +5 -1
  122. package/dist/src/config/paths.d.ts +1 -1
  123. package/dist/src/config/paths.js +2 -2
  124. package/dist/src/config/schema.js +1 -1
  125. package/dist/src/connectors/composio-managed-client.d.ts +60 -0
  126. package/dist/src/connectors/composio-managed-client.js +135 -0
  127. package/dist/src/connectors/composio-managed-events.d.ts +41 -0
  128. package/dist/src/connectors/composio-managed-events.js +105 -0
  129. package/dist/src/connectors/composio-sessions.d.ts +3 -1
  130. package/dist/src/connectors/composio-sessions.js +15 -8
  131. package/dist/src/connectors/composio.js +10 -4
  132. package/dist/src/connectors/connected-source-cursor.d.ts +9 -0
  133. package/dist/src/connectors/connected-source-cursor.js +30 -0
  134. package/dist/src/connectors/connected-source-ingestion.js +128 -65
  135. package/dist/src/connectors/connected-source-normalizers.d.ts +1 -0
  136. package/dist/src/connectors/connected-source-normalizers.js +33 -2
  137. package/dist/src/connectors/connected-source-sanitization.d.ts +1 -0
  138. package/dist/src/connectors/connected-source-sanitization.js +21 -0
  139. package/dist/src/connectors/connector-identity.js +10 -2
  140. package/dist/src/connectors/content-enrichment.d.ts +29 -0
  141. package/dist/src/connectors/content-enrichment.js +273 -0
  142. package/dist/src/connectors/learning-coordinator.js +1 -2
  143. package/dist/src/connectors/learning-recipes.js +30 -33
  144. package/dist/src/connectors/runtime-adapter-registry.js +2 -2
  145. package/dist/src/discussions/live-worker.d.ts +1 -0
  146. package/dist/src/discussions/live-worker.js +7 -1
  147. package/dist/src/discussions/repository.js +11 -1
  148. package/dist/src/discussions/sealer.d.ts +1 -1
  149. package/dist/src/discussions/sealer.js +16 -7
  150. package/dist/src/discussions/service.js +6 -2
  151. package/dist/src/discussions/transcript.d.ts +2 -0
  152. package/dist/src/discussions/transcript.js +42 -3
  153. package/dist/src/discussions/types.d.ts +4 -0
  154. package/dist/src/extensions/install.d.ts +10 -0
  155. package/dist/src/extensions/install.js +111 -14
  156. package/dist/src/extensions/loader.js +22 -18
  157. package/dist/src/gateway/hono/app.js +8 -3
  158. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  159. package/dist/src/gateway/hono/middleware/auth.js +2 -2
  160. package/dist/src/gateway/hono/middleware/logger.js +1 -1
  161. package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
  162. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +9 -2
  163. package/dist/src/gateway/hono/oauth-async.d.ts +11 -5
  164. package/dist/src/gateway/hono/oauth-async.js +29 -16
  165. package/dist/src/gateway/hono/oauth.d.ts +1 -3
  166. package/dist/src/gateway/hono/oauth.js +22 -22
  167. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  168. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  169. package/dist/src/gateway/hono/routes/connectors.js +10 -3
  170. package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
  171. package/dist/src/gateway/hono/routes/discussions.js +2 -1
  172. package/dist/src/gateway/hono/routes/exposure.js +1 -1
  173. package/dist/src/gateway/hono/routes/home.d.ts +1 -1
  174. package/dist/src/gateway/hono/routes/home.js +2 -2
  175. package/dist/src/gateway/hono/routes/lazy-bundles.js +2 -1
  176. package/dist/src/gateway/hono/routes/models.js +59 -5
  177. package/dist/src/gateway/hono/routes/shares.js +1 -1
  178. package/dist/src/gateway/hono/routes/tunnel.js +3 -3
  179. package/dist/src/gateway/hono/routes/understanding-sources.js +29 -0
  180. package/dist/src/gateway/hono/routes/voice.d.ts +1 -2
  181. package/dist/src/gateway/hono/routes/voice.js +16 -35
  182. package/dist/src/gateway/hono/routes/workflows.js +69 -0
  183. package/dist/src/gateway/index.js +2 -2
  184. package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
  185. package/dist/src/gateway/rate-limit/buckets.js +12 -0
  186. package/dist/src/gateway/runtime-config.js +2 -2
  187. package/dist/src/gateway/security/audit.js +2 -2
  188. package/dist/src/gateway/service/config-coordinator.js +1 -1
  189. package/dist/src/gateway/service/session-input-coordinator.js +1 -2
  190. package/dist/src/gateway/service.d.ts +1 -0
  191. package/dist/src/gateway/service.js +37 -7
  192. package/dist/src/knowledge/connected-understanding-pipeline.d.ts +1 -1
  193. package/dist/src/knowledge/connected-understanding-pipeline.js +74 -25
  194. package/dist/src/knowledge/ingestion-service.js +33 -15
  195. package/dist/src/knowledge/types.d.ts +2 -0
  196. package/dist/src/media-understanding/audio-transcription-runner.d.ts +2 -0
  197. package/dist/src/media-understanding/audio-transcription-runner.js +3 -1
  198. package/dist/src/media-understanding/runner.js +3 -1
  199. package/dist/src/media-understanding/types.d.ts +2 -0
  200. package/dist/src/notes/note-attachment-sync.js +1 -1
  201. package/dist/src/notes/service.d.ts +1 -0
  202. package/dist/src/notes/service.js +2 -1
  203. package/dist/src/notes/types.d.ts +2 -0
  204. package/dist/src/providers/model-catalog-persistence.d.ts +9 -0
  205. package/dist/src/providers/model-catalog-persistence.js +172 -0
  206. package/dist/src/providers/model-catalog-ranking.d.ts +2 -0
  207. package/dist/src/providers/model-catalog-ranking.js +17 -0
  208. package/dist/src/providers/model-catalog-store.d.ts +9 -57
  209. package/dist/src/providers/model-catalog-store.js +24 -5
  210. package/dist/src/providers/model-catalog-sync-service.d.ts +3 -3
  211. package/dist/src/providers/model-catalog-sync-service.js +12 -7
  212. package/dist/src/providers/model-catalog-types.d.ts +60 -0
  213. package/dist/src/providers/model-catalog-types.js +1 -0
  214. package/dist/src/providers/provider-auth-service.d.ts +1 -0
  215. package/dist/src/providers/provider-auth-service.js +3 -0
  216. package/dist/src/providers/provider-disconnect-core.d.ts +11 -0
  217. package/dist/src/providers/provider-disconnect-core.js +35 -0
  218. package/dist/src/providers/provider-disconnect.d.ts +3 -0
  219. package/dist/src/providers/provider-disconnect.js +11 -0
  220. package/dist/src/providers/xopc-cloud-catalog-coordinator.d.ts +56 -0
  221. package/dist/src/providers/xopc-cloud-catalog-coordinator.js +182 -0
  222. package/dist/src/providers/xopc-cloud-model-source.d.ts +6 -10
  223. package/dist/src/providers/xopc-cloud-model-source.js +49 -27
  224. package/dist/src/storage/sqlite/knowledge-repository.d.ts +1 -0
  225. package/dist/src/storage/sqlite/knowledge-repository.js +4 -0
  226. package/dist/src/storage/sqlite/migrations/124_workflow_context_snapshots.sql +15 -0
  227. package/dist/src/storage/sqlite/migrations/125_project_workflow_presets.sql +12 -0
  228. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  229. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  230. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  231. package/dist/src/storage/sqlite/schema.js +1 -1
  232. package/dist/src/storage/sqlite/user-context-quality-repository.d.ts +8 -0
  233. package/dist/src/storage/sqlite/user-context-quality-repository.js +21 -1
  234. package/dist/src/tasks/home-query-service.d.ts +12 -127
  235. package/dist/src/tasks/home-query-service.js +73 -271
  236. package/dist/src/tasks/index.js +2 -2
  237. package/dist/src/tui/backends/embedded-backend.js +11 -3
  238. package/dist/src/tui/tui-oauth-login.js +5 -0
  239. package/dist/src/tui/xopc-tui-keybindings.d.ts +2 -2
  240. package/dist/src/tunnel/index.js +2 -2
  241. package/dist/src/user-context/sources/activity-clustering.js +30 -117
  242. package/dist/src/user-context/sources/index.d.ts +1 -0
  243. package/dist/src/user-context/sources/index.js +2 -1
  244. package/dist/src/user-context/sources/signal-clustering.d.ts +18 -0
  245. package/dist/src/user-context/sources/signal-clustering.js +131 -0
  246. package/dist/src/voice/audio/normalize.d.ts +18 -0
  247. package/dist/src/voice/audio/normalize.js +175 -0
  248. package/dist/src/voice/language-profile.d.ts +1 -4
  249. package/dist/src/voice/language-profile.js +2 -25
  250. package/dist/src/voice/local/runtime-client.d.ts +2 -0
  251. package/dist/src/voice/local/runtime-client.js +20 -1
  252. package/dist/src/voice/local/runtime-worker.js +7 -13
  253. package/dist/src/voice/local/wav.d.ts +3 -0
  254. package/dist/src/voice/local/wav.js +11 -5
  255. package/dist/src/voice/stt/availability.d.ts +1 -4
  256. package/dist/src/voice/stt/availability.js +3 -15
  257. package/dist/src/voice/stt/config.js +1 -0
  258. package/dist/src/voice/stt/factory.js +23 -0
  259. package/dist/src/voice/stt/index.d.ts +1 -0
  260. package/dist/src/voice/stt/index.js +2 -2
  261. package/dist/src/voice/stt/list-providers.js +1 -1
  262. package/dist/src/voice/stt/providers/local-transcription.js +7 -3
  263. package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +3 -1
  264. package/dist/src/voice/stt/transcribe-core.d.ts +5 -1
  265. package/dist/src/voice/stt/transcribe-core.js +13 -5
  266. package/dist/src/voice/stt/types.d.ts +2 -0
  267. package/dist/src/voice/tts/factory.d.ts +1 -1
  268. package/dist/src/voice/tts/factory.js +23 -1
  269. package/dist/src/voice/tts/merge-config.js +5 -3
  270. package/dist/src/voice/tts/providers/xopc-cloud-speech.js +3 -1
  271. package/dist/src/voice/tts/types.d.ts +2 -0
  272. package/dist/src/voice/tts/types.js +4 -2
  273. package/dist/src/work-discovery/evaluation.d.ts +23 -0
  274. package/dist/src/work-discovery/evaluation.js +18 -1
  275. package/dist/src/work-discovery/index.js +2 -2
  276. package/dist/src/work-discovery/service.js +6 -8
  277. package/dist/src/work-discovery/types.d.ts +2 -0
  278. package/dist/src/workflows/context/workflow-context-snapshot-repository.d.ts +21 -0
  279. package/dist/src/workflows/context/workflow-context-snapshot-repository.js +40 -0
  280. package/dist/src/workflows/context/workflow-context.d.ts +18 -0
  281. package/dist/src/workflows/context/workflow-context.js +159 -0
  282. package/dist/src/workflows/domain/run.d.ts +10 -1
  283. package/dist/src/workflows/engine/workflow-engine.d.ts +1 -0
  284. package/dist/src/workflows/engine/workflow-engine.js +2 -0
  285. package/dist/src/workflows/project-presets/project-workflow-preset-repository.d.ts +20 -0
  286. package/dist/src/workflows/project-presets/project-workflow-preset-repository.js +38 -0
  287. package/dist/src/workflows/service/workflow-run-service.d.ts +1 -0
  288. package/dist/src/workflows/service/workflow-run-service.js +107 -22
  289. package/dist/src/workflows/service/workflow-run-service.types.d.ts +1 -0
  290. package/dist/src/workflows/service/workflow-writeback-service.d.ts +9 -0
  291. package/dist/src/workflows/service/workflow-writeback-service.js +106 -0
  292. package/package.json +9 -8
  293. package/dist/gateway/static/root/assets/agents-DqGMj3QJ.js +0 -68
  294. package/dist/gateway/static/root/assets/apps-page-BT7F4WBI.js +0 -1
  295. package/dist/gateway/static/root/assets/automations-page-CwOXGV9z.js +0 -6
  296. package/dist/gateway/static/root/assets/browser-settings-page-CyRLhCod.js +0 -8
  297. package/dist/gateway/static/root/assets/capabilities-settings-panel-jRKcS7lZ.js +0 -7
  298. package/dist/gateway/static/root/assets/capability-presets-settings-panel-B3bKdtwU.js +0 -3
  299. package/dist/gateway/static/root/assets/channels-settings-yZBWH02s.js +0 -1
  300. package/dist/gateway/static/root/assets/channels-status-swr-C3zlimZd.js +0 -1
  301. package/dist/gateway/static/root/assets/connectors-page-OX4KvUkA.js +0 -2
  302. package/dist/gateway/static/root/assets/directory-picker-path-field-OkqRFyRL.js +0 -1
  303. package/dist/gateway/static/root/assets/gateway-settings-V1XVxjHa.js +0 -1
  304. package/dist/gateway/static/root/assets/heartbeat-settings-CWUBAQrE.js +0 -1
  305. package/dist/gateway/static/root/assets/home-page-D57cYRd3.js +0 -1
  306. package/dist/gateway/static/root/assets/index-DJ7HSgKs.js +0 -85
  307. package/dist/gateway/static/root/assets/index-PNBFdxHb.css +0 -2
  308. package/dist/gateway/static/root/assets/local-app-workbench-page-BbAiMZE1.js +0 -2
  309. package/dist/gateway/static/root/assets/markdown-view-B12xeflb.css +0 -1
  310. package/dist/gateway/static/root/assets/messages-1qg_hOOd.js +0 -3
  311. package/dist/gateway/static/root/assets/notes-workbench-BYPoZeRw.js +0 -4
  312. package/dist/gateway/static/root/assets/project-detail-page-D27nOKbo.js +0 -1
  313. package/dist/gateway/static/root/assets/projects-page-CdB5cJJ-.js +0 -1
  314. package/dist/gateway/static/root/assets/remote-access-hub-DFoZ3UNS.js +0 -1
  315. package/dist/gateway/static/root/assets/sessions-page-C1cbIcJ7.js +0 -1
  316. package/dist/gateway/static/root/assets/settings-advanced-gate-DnXRlQXS.js +0 -1
  317. package/dist/gateway/static/root/assets/setup-status-panel-CwgMODfJ.js +0 -1
  318. package/dist/gateway/static/root/assets/shares-settings-hlUgIkrp.js +0 -1
  319. package/dist/gateway/static/root/assets/skill-reload-api-DR31B_Gz.js +0 -1
  320. package/dist/gateway/static/root/assets/task-detail-page-CTKDpxhf.js +0 -1
  321. package/dist/gateway/static/root/assets/user-context-page-keJJYpix.js +0 -1
  322. package/dist/gateway/static/root/assets/work-discovery-overlay-D5_MH3n3.js +0 -1
  323. package/dist/gateway/static/root/assets/work-discovery-page-BcvBiebt.js +0 -1
  324. package/dist/gateway/static/root/assets/workflows-page-Cz2VpWdj.js +0 -5
  325. package/dist/src/voice/local/runtime-dispatcher.d.ts +0 -9
  326. package/dist/src/voice/local/runtime-dispatcher.js +0 -20
@@ -1,11 +1,6 @@
1
- import { getModelCatalogStore, init_model_catalog_store } from "./model-catalog-store.js";
2
- import { getModelRegistry, init_model_registry } from "./model-registry.js";
3
1
  import { init_xopc_cloud_config, resolveXopcModelRouterUrl } from "./xopc-cloud-config.js";
4
2
  import { getProviderAuthService, init_provider_auth_service } from "./provider-auth-service.js";
5
- import { reloadImageGenerationProviders } from "../agent/image/generation/provider-registry.js";
6
3
  //#region src/providers/xopc-cloud-model-source.ts
7
- init_model_catalog_store();
8
- init_model_registry();
9
4
  init_provider_auth_service();
10
5
  init_xopc_cloud_config();
11
6
  var XopcCloudModelError = class extends Error {
@@ -20,17 +15,14 @@ var XopcCloudModelSource = class {
20
15
  fetchImpl;
21
16
  routerUrl;
22
17
  credentials;
23
- catalogStore;
24
- refreshModels;
25
18
  constructor(options = {}) {
26
19
  this.fetchImpl = options.fetchImpl ?? fetch;
27
20
  this.routerUrl = resolveXopcModelRouterUrl(options.routerUrl);
28
21
  this.credentials = options.credentials ?? getProviderAuthService();
29
- this.catalogStore = options.catalogStore ?? getModelCatalogStore();
30
- this.refreshModels = options.refreshModels ?? (() => getModelRegistry().refresh());
31
22
  }
32
- async refresh() {
33
- const accessToken = await this.credentials.resolveApiKey("xopc-cloud");
23
+ async fetch(signal) {
24
+ const requestSignal = signal ? AbortSignal.any([signal, AbortSignal.timeout(3e4)]) : AbortSignal.timeout(3e4);
25
+ const accessToken = await this.credentials.resolveApiKey("xopc-cloud", requestSignal);
34
26
  if (!accessToken) return {
35
27
  status: "skipped",
36
28
  reason: "not_configured"
@@ -40,7 +32,7 @@ var XopcCloudModelSource = class {
40
32
  authorization: `Bearer ${accessToken}`,
41
33
  accept: "application/json"
42
34
  },
43
- signal: AbortSignal.timeout(3e4)
35
+ signal: requestSignal
44
36
  });
45
37
  const body = await response.json().catch(() => null);
46
38
  if (!response.ok) throw new XopcCloudModelError(typeof body?.error?.message === "string" ? body.error.message : `XOPC model discovery failed (${response.status})`, response.status, typeof body?.error?.code === "string" ? body.error.code : void 0);
@@ -58,7 +50,7 @@ var XopcCloudModelSource = class {
58
50
  const generation = parseImageGenerationCapabilities(model.xopc?.capabilities?.imageGeneration);
59
51
  const stt = kind === "stt" ? parseSttCapabilities(model.xopc?.capabilities) : void 0;
60
52
  const tts = kind === "tts" ? parseTtsCapabilities(model.xopc?.capabilities, model.xopc?.defaultVoice) : void 0;
61
- return [model.id, {
53
+ const catalogModel = {
62
54
  id: model.id,
63
55
  name: model.id,
64
56
  kind,
@@ -68,28 +60,58 @@ var XopcCloudModelSource = class {
68
60
  reasoning: model.xopc?.capabilities?.reasoning === true,
69
61
  contextWindow: 128e3,
70
62
  maxOutputTokens: typeof maxOutputTokens === "number" && Number.isSafeInteger(maxOutputTokens) ? maxOutputTokens : null,
63
+ ...model.xopc?.stability === "stable" || model.xopc?.stability === "preview" || model.xopc?.stability === "deprecated" ? { stability: model.xopc.stability } : {},
64
+ ...typeof model.xopc?.priority === "number" && Number.isFinite(model.xopc.priority) ? { priority: model.xopc.priority } : {},
65
+ ...typeof model.xopc?.tier === "string" && model.xopc.tier ? { tier: model.xopc.tier } : {},
66
+ ...typeof model.xopc?.bestEffort === "boolean" ? { bestEffort: model.xopc.bestEffort } : {},
71
67
  ...generation ? { imageGeneration: generation } : {},
72
68
  ...stt ? { stt } : {},
73
69
  ...tts ? { tts } : {}
74
- }];
70
+ };
71
+ return [model.id, catalogModel];
75
72
  })).values()];
76
- this.catalogStore.replaceSourceModels("xopc-cloud", {
77
- providerId: "xopc-cloud",
78
- baseUrl: this.routerUrl,
79
- api: "openai-completions",
80
- etag: response.headers.get("x-xopc-model-catalog-version"),
81
- recommendedModel: models[0]?.id ?? null,
82
- lastSuccessAt: Date.now()
83
- }, models);
84
- this.refreshModels();
85
- reloadImageGenerationProviders();
73
+ const recommended = parseRecommendations(body.xopc?.defaults, models);
86
74
  return {
87
- status: "updated",
88
- modelCount: models.length,
89
- models: models.map((model) => model.id)
75
+ status: "fetched",
76
+ source: {
77
+ providerId: "xopc-cloud",
78
+ baseUrl: this.routerUrl,
79
+ api: "openai-completions",
80
+ etag: response.headers.get("x-xopc-model-catalog-version"),
81
+ recommendedModel: models[0]?.id ?? null,
82
+ ...Object.keys(recommended).length > 0 ? { recommended } : {},
83
+ lastSuccessAt: Date.now()
84
+ },
85
+ models
90
86
  };
91
87
  }
92
88
  };
89
+ function parseRecommendations(value, models) {
90
+ if (!value || typeof value !== "object" || Array.isArray(value)) return {};
91
+ const raw = value;
92
+ const capabilities = [
93
+ "vision",
94
+ "image-generation",
95
+ "stt",
96
+ "tts"
97
+ ];
98
+ const recommended = {};
99
+ for (const capability of capabilities) {
100
+ const modelId = raw[capability];
101
+ if (typeof modelId !== "string") continue;
102
+ const model = models.find((entry) => entry.id === modelId);
103
+ if (model && modelMatchesRecommendation(model, capability)) recommended[capability] = modelId;
104
+ }
105
+ return recommended;
106
+ }
107
+ function modelMatchesRecommendation(model, capability) {
108
+ switch (capability) {
109
+ case "vision": return model.kind === "language" && model.input.includes("image");
110
+ case "image-generation": return model.kind === "image" && model.operations.includes("images.generate");
111
+ case "stt": return model.kind === "stt" && model.operations.includes("audio.transcription");
112
+ case "tts": return model.kind === "tts" && model.operations.includes("audio.speech");
113
+ }
114
+ }
93
115
  function parseSttCapabilities(value) {
94
116
  if (!value || typeof value !== "object" || Array.isArray(value)) return void 0;
95
117
  const raw = value;
@@ -40,6 +40,7 @@ export declare function getKnowledgeConsumerWatermark(consumerId: string, source
40
40
  export declare function setKnowledgeConsumerWatermark(consumerId: string, sourceInstanceId: string, sequence: number, nowMs?: number): void;
41
41
  export declare function listKnowledgeSourceItems(options?: {
42
42
  sourceInstanceId?: string;
43
+ agentId?: string;
43
44
  collectionScope?: string;
44
45
  itemType?: string;
45
46
  synthesisStatus?: KnowledgeSynthesisStatus;
@@ -240,6 +240,10 @@ function listKnowledgeSourceItems(options = {}) {
240
240
  where.push("source_instance_id = ?");
241
241
  params.push(options.sourceInstanceId);
242
242
  }
243
+ if (options.agentId) {
244
+ where.push("json_extract(metadata_json, '$.agentId') = ?");
245
+ params.push(options.agentId);
246
+ }
243
247
  if (options.collectionScope) {
244
248
  where.push("collection_scope = ?");
245
249
  params.push(options.collectionScope);
@@ -0,0 +1,15 @@
1
+ CREATE TABLE workflow_context_snapshots (
2
+ snapshot_id TEXT PRIMARY KEY,
3
+ trace_id TEXT NOT NULL UNIQUE,
4
+ run_id TEXT NOT NULL,
5
+ project_id TEXT,
6
+ selected_items_json TEXT NOT NULL,
7
+ estimated_tokens INTEGER NOT NULL DEFAULT 0,
8
+ content_hash TEXT NOT NULL,
9
+ created_at INTEGER NOT NULL
10
+ );
11
+
12
+ CREATE INDEX idx_workflow_context_snapshots_run
13
+ ON workflow_context_snapshots(run_id, created_at DESC);
14
+ CREATE INDEX idx_workflow_context_snapshots_project
15
+ ON workflow_context_snapshots(project_id, created_at DESC);
@@ -0,0 +1,12 @@
1
+ CREATE TABLE project_workflow_presets (
2
+ project_id TEXT NOT NULL,
3
+ definition_id TEXT NOT NULL,
4
+ context_refs_json TEXT NOT NULL DEFAULT '[]',
5
+ created_at INTEGER NOT NULL,
6
+ updated_at INTEGER NOT NULL,
7
+ PRIMARY KEY (project_id, definition_id),
8
+ FOREIGN KEY (project_id) REFERENCES projects(project_id) ON DELETE CASCADE
9
+ );
10
+
11
+ CREATE INDEX idx_project_workflow_presets_updated
12
+ ON project_workflow_presets(project_id, updated_at DESC);
@@ -3,7 +3,7 @@ import type { ApplyMigrationsOptions } from './types.js';
3
3
  /** Baseline schema version applied from schema.sql on first open. */
4
4
  export declare const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
5
5
  /** Latest schema version this release supports (increment when adding migrations). */
6
- export declare const XOPC_DB_SCHEMA_VERSION = 123;
6
+ export declare const XOPC_DB_SCHEMA_VERSION = 125;
7
7
  export declare function resolveMigrationsDir(override?: string): string;
8
8
  /**
9
9
  * Apply sequential SQL migrations from (currentVersion + 1) through targetVersion.
@@ -12,7 +12,7 @@ const log = createLogger("Sqlite:Migrations");
12
12
  /** Baseline schema version applied from schema.sql on first open. */
13
13
  const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
14
14
  /** Latest schema version this release supports (increment when adding migrations). */
15
- const XOPC_DB_SCHEMA_VERSION = 123;
15
+ const XOPC_DB_SCHEMA_VERSION = 125;
16
16
  const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
17
17
  function backupBeforeTaskCutover(db, databasePath) {
18
18
  db.exec("PRAGMA wal_checkpoint(FULL)");
@@ -57,7 +57,7 @@ function applySingleMigration(db, migration) {
57
57
  * Each step runs in its own transaction and updates schema_meta on success.
58
58
  */
59
59
  function applyPendingMigrations(db, options = {}) {
60
- const targetVersion = options.targetVersion ?? 123;
60
+ const targetVersion = options.targetVersion ?? 125;
61
61
  let currentVersion = readSchemaVersion(db);
62
62
  if (currentVersion > targetVersion) throw new DatabaseSchemaTooNewError(currentVersion, targetVersion);
63
63
  if (currentVersion >= targetVersion) return currentVersion;
@@ -94,7 +94,7 @@ function applyPendingMigrations(db, options = {}) {
94
94
  }
95
95
  /** Inspect schema version without mutating the database. */
96
96
  function inspectSchemaMigrationStatus(db, options = {}) {
97
- const appVersion = options.targetVersion ?? 123;
97
+ const appVersion = options.targetVersion ?? 125;
98
98
  const dbVersion = readSchemaVersion(db);
99
99
  if (dbVersion > appVersion) return {
100
100
  dbVersion,
@@ -19,7 +19,7 @@ const log = createLogger('Sqlite:Migrations');
19
19
  export const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
20
20
 
21
21
  /** Latest schema version this release supports (increment when adding migrations). */
22
- export const XOPC_DB_SCHEMA_VERSION = 123;
22
+ export const XOPC_DB_SCHEMA_VERSION = 125;
23
23
 
24
24
  const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
25
25
 
@@ -32,7 +32,7 @@ function ensureXopcDatabaseSchema(db, options = {}) {
32
32
  currentVersion = 11;
33
33
  }
34
34
  applyPendingMigrations(db, {
35
- targetVersion: 123,
35
+ targetVersion: 125,
36
36
  databasePath: options.databasePath
37
37
  });
38
38
  }
@@ -26,6 +26,14 @@ export type UserUnderstandingQualityMetrics = {
26
26
  irrelevant: number;
27
27
  helpfulRate: number | null;
28
28
  };
29
+ quickUnderstanding: {
30
+ sourcesAuthorized: number;
31
+ sourcesCollected: number;
32
+ sourceCoverage: number | null;
33
+ bootstrapJobs: number;
34
+ successfulBootstrapRate: number | null;
35
+ medianBootstrapDurationMs: number | null;
36
+ };
29
37
  };
30
38
  export type UnderstandingFeedbackSummary = {
31
39
  understandingId: string;
@@ -28,6 +28,12 @@ function summarizeUnderstandingFeedback(understandingIds) {
28
28
  function rate(numerator, denominator) {
29
29
  return denominator > 0 ? Math.round(numerator / denominator * 1e4) / 1e4 : null;
30
30
  }
31
+ function median(values) {
32
+ if (!values.length) return null;
33
+ const sorted = values.toSorted((left, right) => left - right);
34
+ const middle = Math.floor(sorted.length / 2);
35
+ return sorted.length % 2 ? sorted[middle] : Math.round((sorted[middle - 1] + sorted[middle]) / 2);
36
+ }
31
37
  function summarizeUserUnderstandingQuality(options = {}) {
32
38
  const nowMs = options.nowMs ?? Date.now();
33
39
  const windowDays = Math.max(1, Math.min(365, Math.floor(options.windowDays ?? 30)));
@@ -83,6 +89,12 @@ function summarizeUserUnderstandingQuality(options = {}) {
83
89
  helpfulRate: null
84
90
  };
85
91
  recall.helpfulRate = rate(recall.helpful, recall.total);
92
+ const sourceRows = db.prepare(`SELECT last_collected_at
93
+ FROM understanding_source_grants WHERE status = 'active'`).all();
94
+ const bootstrapRows = db.prepare(`SELECT status, started_at, finished_at
95
+ FROM connector_learning_jobs WHERE mode = 'bootstrap' AND created_at >= ?`).all(sinceMs);
96
+ const completedBootstraps = bootstrapRows.filter((row) => row.status === "completed");
97
+ const bootstrapDurations = completedBootstraps.flatMap((row) => row.started_at !== null && row.finished_at !== null && row.finished_at >= row.started_at ? [row.finished_at - row.started_at] : []);
86
98
  return {
87
99
  windowDays,
88
100
  since: new Date(sinceMs).toISOString(),
@@ -91,7 +103,15 @@ function summarizeUserUnderstandingQuality(options = {}) {
91
103
  total: recentDecisions.length,
92
104
  acceptanceRate: rate(accepted, recentDecisions.length)
93
105
  },
94
- recall
106
+ recall,
107
+ quickUnderstanding: {
108
+ sourcesAuthorized: sourceRows.length,
109
+ sourcesCollected: sourceRows.filter((row) => row.last_collected_at !== null).length,
110
+ sourceCoverage: rate(sourceRows.filter((row) => row.last_collected_at !== null).length, sourceRows.length),
111
+ bootstrapJobs: bootstrapRows.length,
112
+ successfulBootstrapRate: rate(completedBootstraps.length, bootstrapRows.length),
113
+ medianBootstrapDurationMs: median(bootstrapDurations)
114
+ }
95
115
  };
96
116
  }
97
117
  //#endregion
@@ -1,20 +1,12 @@
1
- import type { HomeResponse } from '@xopcai/gateway-contract';
2
- import { type AutomationRun } from '../automations/index.js';
1
+ import type { HomeAttention, HomeDecision, HomeResponse } from '@xopcai/gateway-contract';
3
2
  import type { AutomationService } from '../automations/service/automation-service.js';
4
3
  import type { Config } from '../config/schema.js';
5
- import type { NotesService } from '../notes/service.js';
6
4
  import type { ProactiveInboxService } from '../proactive/inbox/service.js';
7
5
  import type { ProjectService } from '../projects/project-service.js';
8
- import type { SessionIndex } from '../session/manager.js';
9
6
  import type { WorkflowRunSummary } from '../workflows/domain/index.js';
10
7
  import type { WorkflowRunService } from '../workflows/service/workflow-run-service.js';
8
+ import { type TaskAggregate } from './task-repository.js';
11
9
  import { type TaskReadModel } from './task-read-model-projector.js';
12
- type HomeDecision = HomeResponse['decisions'][number];
13
- type HomeAttention = HomeResponse['attention'][number];
14
- type HomeBriefingWin = HomeResponse['briefing']['wins'][number];
15
- type HomeAutomation = HomeResponse['upcomingAutomations'][number];
16
- type HomeFocusItem = HomeResponse['focusItems'][number];
17
- type HomeRecentTask = HomeResponse['recentTasks'][number];
18
10
  type HomeWorkflowRun = {
19
11
  id: string;
20
12
  definitionId: string;
@@ -26,141 +18,34 @@ type HomeWorkflowRun = {
26
18
  completedAtMs?: number;
27
19
  metrics: WorkflowRunSummary['metrics'];
28
20
  };
29
- type HomeAutomationRun = {
21
+ type HomeAutomation = {
30
22
  id: string;
31
- automationId: string;
32
- automationName?: string;
33
- status: AutomationRun['status'];
34
- createdAtMs: number;
35
- startedAtMs?: number;
36
- endedAtMs?: number;
37
- error?: string;
38
- summary?: string;
39
- sessionKey?: string;
40
- workflowRunId?: string;
41
- };
42
- type HomeSnapshot = HomeResponse & {
43
- recentlyOpened: unknown[];
44
- inboxCount: number;
45
- pendingTasks: unknown[];
46
- pendingTaskCount: number;
47
- recentSessions: unknown[];
48
- activeAgent: {
49
- id: string;
50
- name?: string;
51
- description?: string;
52
- };
53
- gateway: Record<string, unknown>;
54
- recentAutomationRuns: HomeAutomationRun[];
23
+ name?: string;
24
+ trigger: string;
25
+ action: string;
26
+ nextRunAt: string;
55
27
  };
56
28
  interface HomeGatewayPort {
57
- readonly notesServiceInstance: NotesService;
58
- readonly sessions: Pick<SessionIndex, 'listSessions'> & {
59
- getActiveRun(sessionKey: string): {
60
- active: boolean;
61
- runId?: string;
62
- };
63
- };
64
29
  readonly currentConfig: Config;
65
30
  readonly automationServiceInstance: AutomationService;
66
31
  readonly projects: ProjectService;
67
32
  readonly proactiveInbox: ProactiveInboxService;
68
33
  createWorkflowRunService(): WorkflowRunService;
69
- getHealth(): {
70
- status: string;
71
- ready: boolean;
72
- httpListening: boolean;
73
- version: string;
74
- uptime: number;
75
- };
76
34
  }
77
- export declare function decisionFromTask(model: TaskReadModel, projectName?: string): HomeDecision | null;
78
- export declare function buildHomeBriefing(input: {
79
- locale?: string;
80
- decisions: HomeDecision[];
81
- attention: HomeAttention[];
82
- activeWorkflowCount: number;
83
- activeTaskCount: number;
84
- wins: HomeBriefingWin[];
85
- nextScheduled?: HomeAutomation;
86
- nowMs: number;
87
- }): {
88
- generatedAt: number;
89
- summary: string;
90
- focus: {
91
- id: string;
92
- kind: "task" | "agent_judgment" | "connector_approval";
93
- title: string;
94
- reason: "external" | "paused" | "blocked" | "dependency" | "user_input" | "approval_required" | "overdue" | "needs_input" | "user_approval" | "scheduled" | "retry" | "due_soon" | "decision_needed";
95
- urgency: "now" | "soon";
96
- href: string;
97
- updatedAt: number;
98
- detail?: string;
99
- projectId?: string;
100
- projectName?: string;
101
- judgment?: {
102
- inboxItemId: string;
103
- whyNow: string;
104
- impact: string;
105
- workDone: string;
106
- recommendation: string;
107
- confidence: number;
108
- valueScore?: number;
109
- disposition?: "show_in_work" | "request_approval" | "auto_execute";
110
- dispositionReason?: string;
111
- actionStatus?: "failed" | "completed" | "rejected" | "pending" | "approval_required" | "not_authorized" | "executing";
112
- proposedActionTitle?: string;
113
- actionError?: string;
114
- decision?: {
115
- question: string;
116
- options: {
117
- id: string;
118
- label: string;
119
- consequence: string;
120
- }[];
121
- };
122
- };
123
- response?: {
124
- kind: "connector_approval";
125
- approvalId: string;
126
- };
127
- }[];
128
- progress: {
129
- activeWorkflowCount: number;
130
- activeTaskCount: number;
131
- movingCount: number;
132
- };
133
- wins: {
134
- id: string;
135
- kind: "task" | "workflow_run" | "automation_run";
136
- title: string;
137
- href: string;
138
- completedAt: number;
139
- }[];
140
- nextScheduled: {
141
- id: string;
142
- trigger: string;
143
- action: string;
144
- nextRunAt: string;
145
- name?: string;
146
- };
147
- };
148
- export declare function buildHomeFocusItems(input: {
35
+ export declare function decisionFromTask(model: TaskReadModel, projectName?: string, locale?: string): HomeDecision | null;
36
+ export declare function buildHomeWorkbench(input: {
149
37
  locale?: string;
150
38
  decisions: HomeDecision[];
151
39
  attention: HomeAttention[];
152
40
  activeWorkflowRuns: HomeWorkflowRun[];
153
- runningTasks: HomeResponse['tasks']['running'];
154
- wins: HomeBriefingWin[];
41
+ runningTasks: TaskAggregate[];
155
42
  scheduled: HomeAutomation[];
156
- recentTasks: HomeRecentTask[];
157
- inboxCount: number;
158
43
  nowMs: number;
159
- }): HomeFocusItem[];
44
+ }): Pick<HomeResponse, 'needsUser' | 'background' | 'backgroundCount'>;
160
45
  export declare class HomeQueryService {
161
46
  #private;
162
47
  private readonly service;
163
48
  constructor(service: HomeGatewayPort);
164
- getSnapshot(locale?: string): Promise<HomeSnapshot>;
49
+ getSnapshot(locale?: string): Promise<HomeResponse>;
165
50
  }
166
51
  export {};