@xopcai/xopc 0.0.309 → 0.0.311

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 (489) 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-XKNYlFUI.js → activity-store-DVUTs1fk.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-1S2TFECE.js → agent-avatar-dicebear-zKINl7UH.js} +1 -1
  5. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-D2ePZKdY.js +1 -0
  6. package/dist/gateway/static/root/assets/{agents-CPqUMtCL.js → agents-BiD9STyv.js} +1 -1
  7. package/dist/gateway/static/root/assets/{api-BEUEE4f2.js → api-_aHQA8bd.js} +1 -1
  8. package/dist/gateway/static/root/assets/{app-link-BiBXVEvp.js → app-link-wamYbNUl.js} +1 -1
  9. package/dist/gateway/static/root/assets/{app-management-settings-panel-CgVBSqzu.js → app-management-settings-panel-C94LAxyt.js} +1 -1
  10. package/dist/gateway/static/root/assets/{appearance-settings-CoWdCokb.js → appearance-settings-CP01zHvC.js} +1 -1
  11. package/dist/gateway/static/root/assets/apps-page-B7DmSJQj.js +1 -0
  12. package/dist/gateway/static/root/assets/{archive-plugin-C3ZA6LRS.js → archive-plugin-SwWFt5MT.js} +1 -1
  13. package/dist/gateway/static/root/assets/{attachment-load-CdgS6_zy.js → attachment-load-DdTFml9l.js} +1 -1
  14. package/dist/gateway/static/root/assets/{automations-page-BtHL2hpg.js → automations-page-Kmr5WVFp.js} +1 -1
  15. package/dist/gateway/static/root/assets/automations-workspace-bkijiu-Y.js +7 -0
  16. package/dist/gateway/static/root/assets/{binary-plugins-CiDhtq_H.js → binary-plugins-47UTtDNq.js} +1 -1
  17. package/dist/gateway/static/root/assets/{block-editor-Br00T83w.js → block-editor-DvzZkMG8.js} +3 -3
  18. package/dist/gateway/static/root/assets/{browser-automation-inputs-D2tILykA.js → browser-automation-inputs-C611KRBx.js} +1 -1
  19. package/dist/gateway/static/root/assets/{browser-automations-page-BVuEmryB.js → browser-automations-page-DrUKNL9X.js} +2 -2
  20. package/dist/gateway/static/root/assets/browser-settings-page-Dhf_MWCf.js +3 -0
  21. package/dist/gateway/static/root/assets/capabilities-settings-panel-BCubrDf8.js +8 -0
  22. package/dist/gateway/static/root/assets/channels-settings-e4T1DEfN.js +1 -0
  23. package/dist/gateway/static/root/assets/{chat-terminal-dock-JsMtzDao.js → chat-terminal-dock-Bg_m7HUE.js} +2 -2
  24. package/dist/gateway/static/root/assets/{chunk-KS7C4IRE-Cq1tE_3b.js → chunk-KS7C4IRE-BMYIfy9x.js} +2 -2
  25. package/dist/gateway/static/root/assets/computer-settings-page-CosCmVsT.js +1 -0
  26. package/dist/gateway/static/root/assets/{connector-service-page-DZFNUTiN.js → connector-service-page-BL-hSR7_.js} +1 -1
  27. package/dist/gateway/static/root/assets/connectors-page-C0WWxnxJ.js +2 -0
  28. package/dist/gateway/static/root/assets/date-picker-DqYFVasF.js +1 -0
  29. package/dist/gateway/static/root/assets/{dependency-picker-B-BcuG1y.js → dependency-picker-DCyyFLKp.js} +1 -1
  30. package/dist/gateway/static/root/assets/{desktop-pet-CdBBhhdY.js → desktop-pet-CFnnpRA_.js} +1 -1
  31. package/dist/gateway/static/root/assets/desktop-pet-settings-U5wWRH4c.js +1 -0
  32. package/dist/gateway/static/root/assets/device-pairing-wizard-BhHxvFO1.js +1 -0
  33. package/dist/gateway/static/root/assets/{extension-debug-page-BFp5eKtY.js → extension-debug-page-DA8WJ3-E.js} +1 -1
  34. package/dist/gateway/static/root/assets/{extension-page-DL3vyyH6.js → extension-page-C2BIB88m.js} +1 -1
  35. package/dist/gateway/static/root/assets/{extension-settings-page-BXtvdAsY.js → extension-settings-page-kpYo979N.js} +1 -1
  36. package/dist/gateway/static/root/assets/{gateway-config-swr-xAOGtenO.js → gateway-config-swr-DUDX42qY.js} +1 -1
  37. package/dist/gateway/static/root/assets/{gateway-realtime-BuaTsMSi.js → gateway-realtime-CGOW0-b4.js} +1 -1
  38. package/dist/gateway/static/root/assets/gateway-realtime-store-D4um_sV7.js +1 -0
  39. package/dist/gateway/static/root/assets/gateway-settings-CE9t1yTa.js +1 -0
  40. package/dist/gateway/static/root/assets/{gateway-startup-retry-BwDxKHd4.js → gateway-startup-retry-Cf8OxlvY.js} +1 -1
  41. package/dist/gateway/static/root/assets/home-page-C7Ezx8Du.js +1 -0
  42. package/dist/gateway/static/root/assets/{image-generation-api-wGMeI_yW.js → image-generation-api-D2YorS--.js} +1 -1
  43. package/dist/gateway/static/root/assets/{imports-page-zexFT5Rq.js → imports-page-NPk698vI.js} +1 -1
  44. package/dist/gateway/static/root/assets/index-1wIKA-kM.css +1 -0
  45. package/dist/gateway/static/root/assets/index-DxYitLp8.js +79 -0
  46. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CutG9zLh.js → keyboard-shortcuts-settings-BhreF0_O.js} +1 -1
  47. package/dist/gateway/static/root/assets/local-app-workbench-page-CPmynb3x.js +2 -0
  48. package/dist/gateway/static/root/assets/{local-apps-page-CJy6I7Dt.js → local-apps-page-DOZZBdqj.js} +1 -1
  49. package/dist/gateway/static/root/assets/{locale-store-DPZ79W1-.js → locale-store-DA0Z5jM_.js} +1 -1
  50. package/dist/gateway/static/root/assets/{logs-page-egGcPHNi.js → logs-page-M8kz26yo.js} +2 -2
  51. package/dist/gateway/static/root/assets/{management-settings-BQhIOELc.js → management-settings-JLqHYQvY.js} +1 -1
  52. package/dist/gateway/static/root/assets/{markdown-view-p2P5hP1U.js → markdown-view-BDpcjR_Z.js} +1 -1
  53. package/dist/gateway/static/root/assets/markdown-view-DSjfHfaW.css +1 -0
  54. package/dist/gateway/static/root/assets/{media-plugins-CsBylqlN.js → media-plugins-B75SWUJd.js} +1 -1
  55. package/dist/gateway/static/root/assets/messages-4BtQKYlM.js +3 -0
  56. package/dist/gateway/static/root/assets/note-detail-panel-B_Ft0M32.js +5 -0
  57. package/dist/gateway/static/root/assets/notes-page-C32mxSD-.js +8 -0
  58. package/dist/gateway/static/root/assets/{page-tabs-ChQ4jJFs.js → page-tabs-CMlQUzT6.js} +1 -1
  59. package/dist/gateway/static/root/assets/{popover-select-9i-ZtHXL.js → popover-select-B-GDnZO9.js} +1 -1
  60. package/dist/gateway/static/root/assets/preview-open-alternatives-cZ2hszQT.js +1 -0
  61. package/dist/gateway/static/root/assets/{product-open-page-BADxWEdP.js → product-open-page-CPoSbglF.js} +1 -1
  62. package/dist/gateway/static/root/assets/project-detail-page-DYttWua0.js +1 -0
  63. package/dist/gateway/static/root/assets/projects-page-D46drWbl.js +1 -0
  64. package/dist/gateway/static/root/assets/{registry-api-B_e_nZSN.js → registry-api-C0DCx3wv.js} +1 -1
  65. package/dist/gateway/static/root/assets/remote-access-hub-C9n9Nuhi.js +1 -0
  66. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-D-pwiIyp.js → runtime-tools-settings-panel-bMLWRApp.js} +2 -2
  67. package/dist/gateway/static/root/assets/scenes-page-Dw3hmHAr.js +1 -0
  68. package/dist/gateway/static/root/assets/{schema-form-IWmb05DX.js → schema-form-UVJV_7AS.js} +1 -1
  69. package/dist/gateway/static/root/assets/sessions-page-C8P6ff91.js +1 -0
  70. package/dist/gateway/static/root/assets/settings-advanced-gate-whpUsAy3.js +1 -0
  71. package/dist/gateway/static/root/assets/{settings-form-section-B0veRBZs.js → settings-form-section-BqzOqonM.js} +1 -1
  72. package/dist/gateway/static/root/assets/settings-page-DQ9RJ8-b.js +1 -0
  73. package/dist/gateway/static/root/assets/settings-page-layout-D3Spald3.js +1 -0
  74. package/dist/gateway/static/root/assets/{settings-shell-layer-context-DCp6ykjQ.js → settings-shell-layer-context-BTQUDoJ2.js} +1 -1
  75. package/dist/gateway/static/root/assets/setup-status-panel-C8u601m8.js +1 -0
  76. package/dist/gateway/static/root/assets/{share-preview-page-CirpgkfD.js → share-preview-page-BcgYzA7y.js} +1 -1
  77. package/dist/gateway/static/root/assets/shares-settings-Bv-2rZ8e.js +1 -0
  78. package/dist/gateway/static/root/assets/skill-reload-api-LM-cgWUS.js +1 -0
  79. package/dist/gateway/static/root/assets/skills-page-ggmb7rCW.js +2 -0
  80. package/dist/gateway/static/root/assets/{skills-page.utils-B42mpWKV.js → skills-page.utils-ADABzrtk.js} +1 -1
  81. package/dist/gateway/static/root/assets/system-settings-panel-DfkcW_Za.js +1 -0
  82. package/dist/gateway/static/root/assets/task-detail-page-DC4yqDFd.js +1 -0
  83. package/dist/gateway/static/root/assets/{theme-store-BFbj_2Tu.js → theme-store-CegIlB8d.js} +1 -1
  84. package/dist/gateway/static/root/assets/tunnel-api-CTuwTdMm.js +1 -0
  85. package/dist/gateway/static/root/assets/use-autosave-5ZDd9XKh.js +1 -0
  86. package/dist/gateway/static/root/assets/user-model-page-BFKFhdZ0.js +2 -0
  87. package/dist/gateway/static/root/assets/{voice-api-key-field-BZbKQ8HT.js → voice-api-key-field-D3urfd-n.js} +1 -1
  88. package/dist/gateway/static/root/assets/{voice-config-api-SKCeQLrH.js → voice-config-api-DTyMdGOR.js} +1 -1
  89. package/dist/gateway/static/root/assets/{work-discovery-overlay-BRVTTXNG.js → work-discovery-overlay-JzM3Ylbs.js} +1 -1
  90. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-D2kuwv5e.js → workflow-run-setup-panel-Bn2CtRdB.js} +2 -2
  91. package/dist/gateway/static/root/assets/workflows-page-BiCmt98A.js +6 -0
  92. package/dist/gateway/static/root/connector-icons/SOURCES.md +0 -2
  93. package/dist/gateway/static/root/index.html +17 -20
  94. package/dist/gateway/static/root/notification-sw.js +1 -1
  95. package/dist/package.js +1 -1
  96. package/dist/packages/gateway-contract/src/notifications.js +12 -11
  97. package/dist/packages/gateway-contract/src/proactive.js +6 -6
  98. package/dist/packages/gateway-contract/src/project-monitoring.js +4 -4
  99. package/dist/packages/gateway-contract/src/project-operating.js +1 -4
  100. package/dist/src/agent/agent-manager.d.ts +2 -6
  101. package/dist/src/agent/agent-manager.js +2 -1
  102. package/dist/src/agent/background-review/run-background-review.js +1 -1
  103. package/dist/src/agent/commands/command-registry.js +1 -1
  104. package/dist/src/agent/context/execution-scope.js +1 -1
  105. package/dist/src/agent/external-tools/cliProvider.d.ts +47 -0
  106. package/dist/src/agent/external-tools/cliProvider.js +317 -0
  107. package/dist/src/agent/external-tools/composio-provider.js +3 -3
  108. package/dist/src/agent/external-tools/gateway-tools.js +8 -2
  109. package/dist/src/agent/external-tools/index.js +6 -0
  110. package/dist/src/agent/external-tools/service.js +1 -1
  111. package/dist/src/agent/external-tools/types.d.ts +1 -1
  112. package/dist/src/agent/external-tools/types.js +1 -0
  113. package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
  114. package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +1 -1
  115. package/dist/src/agent/memory/turn-provenance.js +2 -1
  116. package/dist/src/agent/service/parse-outbound-session-key.js +1 -1
  117. package/dist/src/agent/service.js +1 -0
  118. package/dist/src/agent/service.types.d.ts +2 -0
  119. package/dist/src/agent/tools/factory.d.ts +2 -0
  120. package/dist/src/agent/tools/factory.js +3 -2
  121. package/dist/src/agent/tools/search/providers/xopc-cloud.d.ts +20 -0
  122. package/dist/src/agent/tools/search/providers/xopc-cloud.js +56 -0
  123. package/dist/src/agent/tools/search/registry.d.ts +4 -2
  124. package/dist/src/agent/tools/search/registry.js +5 -3
  125. package/dist/src/agent/tools/xopc-use-tool.d.ts +4 -2
  126. package/dist/src/agent/tools/xopc-use-tool.js +46 -43
  127. package/dist/src/automations/service/automation-service.d.ts +0 -4
  128. package/dist/src/automations/service/automation-service.js +0 -31
  129. package/dist/src/capabilities/store-connector.js +46 -0
  130. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  131. package/dist/src/cli/commands/project.js +1 -1
  132. package/dist/src/config/schema.d.ts +4 -4
  133. package/dist/src/config/schema.js +2 -12
  134. package/dist/src/config/web-patch.js +0 -5
  135. package/dist/src/connectors/account-selection.d.ts +14 -0
  136. package/dist/src/connectors/account-selection.js +26 -0
  137. package/dist/src/connectors/china-catalog.js +93 -226
  138. package/dist/src/connectors/cli/adapterRegistry.d.ts +4 -0
  139. package/dist/src/connectors/cli/adapterRegistry.js +26 -0
  140. package/dist/src/connectors/cli/adapters/lark.d.ts +2 -0
  141. package/dist/src/connectors/cli/adapters/lark.js +143 -0
  142. package/dist/src/connectors/cli/adapters/larkShortcuts.d.ts +3 -0
  143. package/dist/src/connectors/cli/adapters/larkShortcuts.js +64 -0
  144. package/dist/src/connectors/cli/adapters/wecom.d.ts +2 -0
  145. package/dist/src/connectors/cli/adapters/wecom.js +97 -0
  146. package/dist/src/connectors/cli/adapters/wps365/bundle.js +575 -0
  147. package/dist/src/connectors/cli/adapters/wps365.d.ts +2 -0
  148. package/dist/src/connectors/cli/adapters/wps365.js +115 -0
  149. package/dist/src/connectors/cli/assets.d.ts +3 -0
  150. package/dist/src/connectors/cli/assets.js +44 -0
  151. package/dist/src/connectors/cli/authorization.d.ts +16 -0
  152. package/dist/src/connectors/cli/authorization.js +184 -0
  153. package/dist/src/connectors/cli/distributions.d.ts +4 -0
  154. package/dist/src/connectors/cli/distributions.js +69 -0
  155. package/dist/src/connectors/cli/installer.d.ts +5 -0
  156. package/dist/src/connectors/cli/installer.js +102 -0
  157. package/dist/src/connectors/cli/lifecycle.d.ts +1 -0
  158. package/dist/src/connectors/cli/lifecycle.js +19 -0
  159. package/dist/src/connectors/cli/process.d.ts +18 -0
  160. package/dist/src/connectors/cli/process.js +100 -0
  161. package/dist/src/connectors/cli/protocol.d.ts +10 -0
  162. package/dist/src/connectors/cli/protocol.js +63 -0
  163. package/dist/src/connectors/cli/runtime.d.ts +10 -0
  164. package/dist/src/connectors/cli/runtime.js +93 -0
  165. package/dist/src/connectors/cli/store.d.ts +35 -0
  166. package/dist/src/connectors/cli/store.js +121 -0
  167. package/dist/src/connectors/cli/types.d.ts +73 -0
  168. package/dist/src/connectors/composio-backends.js +1 -1
  169. package/dist/src/connectors/composio-sessions.d.ts +1 -0
  170. package/dist/src/connectors/composio-sessions.js +8 -3
  171. package/dist/src/connectors/composio.js +1 -1
  172. package/dist/src/connectors/connection-candidates.js +22 -3
  173. package/dist/src/connectors/connection-recovery-service.d.ts +1 -0
  174. package/dist/src/connectors/connection-recovery-service.js +53 -8
  175. package/dist/src/connectors/health.js +52 -0
  176. package/dist/src/connectors/instances.js +5 -1
  177. package/dist/src/connectors/lifecycle.js +2 -0
  178. package/dist/src/connectors/principal.js +2 -1
  179. package/dist/src/connectors/runtime-adapter-registry.js +31 -0
  180. package/dist/src/connectors/types.d.ts +13 -1
  181. package/dist/src/connectors/usage.js +1 -1
  182. package/dist/src/connectors/workflow-preflight.js +8 -4
  183. package/dist/src/extensions/install.js +1 -1
  184. package/dist/src/gateway/hono/app.d.ts +2 -0
  185. package/dist/src/gateway/hono/app.js +4 -2
  186. package/dist/src/gateway/hono/lib/config-payload.d.ts +0 -15
  187. package/dist/src/gateway/hono/lib/config-payload.js +0 -11
  188. package/dist/src/gateway/hono/routes/cli-connectors.d.ts +3 -0
  189. package/dist/src/gateway/hono/routes/cli-connectors.js +219 -0
  190. package/dist/src/gateway/hono/routes/config-patch/gateway.d.ts +2 -2
  191. package/dist/src/gateway/hono/routes/config-patch/gateway.js +0 -59
  192. package/dist/src/gateway/hono/routes/config.js +0 -16
  193. package/dist/src/gateway/hono/routes/connectors.js +21 -22
  194. package/dist/src/gateway/hono/routes/deps.d.ts +2 -0
  195. package/dist/src/gateway/hono/routes/lazy-bundles.js +4 -17
  196. package/dist/src/gateway/hono/routes/projects.js +1 -1
  197. package/dist/src/gateway/hono/routes/public-gateway.js +0 -1
  198. package/dist/src/gateway/hono/routes/scenes.d.ts +3 -0
  199. package/dist/src/gateway/hono/routes/scenes.js +142 -0
  200. package/dist/src/gateway/hono/routes/tasks.js +0 -46
  201. package/dist/src/gateway/hono/routes/user-model.js +54 -1
  202. package/dist/src/gateway/scenes/browserNotifications.d.ts +4 -0
  203. package/dist/src/gateway/scenes/browserNotifications.js +54 -0
  204. package/dist/src/gateway/scenes/host.d.ts +34 -0
  205. package/dist/src/gateway/scenes/host.js +129 -0
  206. package/dist/src/gateway/scenes/mailContext.d.ts +32 -0
  207. package/dist/src/gateway/scenes/mailContext.js +235 -0
  208. package/dist/src/gateway/security/gateway-scopes.js +0 -4
  209. package/dist/src/gateway/security/index.js +1 -1
  210. package/dist/src/gateway/service/config-coordinator.d.ts +1 -10
  211. package/dist/src/gateway/service/config-coordinator.js +0 -16
  212. package/dist/src/gateway/service/run-gateway-agent.js +1 -1
  213. package/dist/src/gateway/service.d.ts +4 -25
  214. package/dist/src/gateway/service.js +44 -99
  215. package/dist/src/gateway/session-context-summary.js +2 -1
  216. package/dist/src/heartbeat/index.js +1 -1
  217. package/dist/src/infra/unhandled-rejections.js +1 -1
  218. package/dist/src/migrations/runner.js +1 -4
  219. package/dist/src/notifications/browser-endpoint.d.ts +2 -0
  220. package/dist/src/notifications/browser-endpoint.js +13 -0
  221. package/dist/src/notifications/browserSubscriptions.d.ts +20 -0
  222. package/dist/src/notifications/browserSubscriptions.js +59 -0
  223. package/dist/src/notifications/browserTransport.d.ts +9 -0
  224. package/dist/src/notifications/browserTransport.js +64 -0
  225. package/dist/src/notifications/dispatch.d.ts +46 -0
  226. package/dist/src/notifications/dispatch.js +109 -0
  227. package/dist/src/notifications/domain-delivery.d.ts +21 -0
  228. package/dist/src/notifications/planner.js +0 -36
  229. package/dist/src/notifications/quietHours.d.ts +6 -0
  230. package/dist/src/notifications/quietHours.js +23 -0
  231. package/dist/src/notifications/resultOutbox.d.ts +23 -0
  232. package/dist/src/notifications/resultOutbox.js +49 -0
  233. package/dist/src/notifications/service.d.ts +18 -4
  234. package/dist/src/notifications/service.js +42 -61
  235. package/dist/src/notifications/store.d.ts +2 -1
  236. package/dist/src/notifications/store.js +7 -8
  237. package/dist/src/projects/project-service.d.ts +1 -4
  238. package/dist/src/projects/project-service.js +2 -30
  239. package/dist/src/projects/workspace.js +1 -1
  240. package/dist/src/providers/model-catalog-persistence.js +19 -1
  241. package/dist/src/providers/model-catalog-store.js +1 -0
  242. package/dist/src/providers/model-catalog-types.d.ts +17 -0
  243. package/dist/src/providers/xopc-cloud-model-source.js +27 -0
  244. package/dist/src/scenes/agentExecutor.d.ts +8 -0
  245. package/dist/src/scenes/agentExecutor.js +63 -0
  246. package/dist/src/scenes/contracts.d.ts +118 -0
  247. package/dist/src/scenes/contracts.js +145 -0
  248. package/dist/src/scenes/execution.d.ts +56 -0
  249. package/dist/src/scenes/execution.js +168 -0
  250. package/dist/src/scenes/httpServices.d.ts +34 -0
  251. package/dist/src/scenes/inbox.d.ts +16 -0
  252. package/dist/src/scenes/inbox.js +68 -0
  253. package/dist/src/scenes/mailContext.d.ts +20 -0
  254. package/dist/src/scenes/mailContext.js +106 -0
  255. package/dist/src/scenes/mailObservations.d.ts +20 -0
  256. package/dist/src/scenes/mailObservations.js +107 -0
  257. package/dist/src/scenes/maintenance.d.ts +3 -0
  258. package/dist/src/scenes/maintenance.js +24 -0
  259. package/dist/src/scenes/metrics.d.ts +35 -0
  260. package/dist/src/scenes/metrics.js +94 -0
  261. package/dist/src/scenes/notificationEligibility.d.ts +17 -0
  262. package/dist/src/scenes/notificationEligibility.js +72 -0
  263. package/dist/src/scenes/notificationPublication.d.ts +7 -0
  264. package/dist/src/scenes/notificationPublication.js +43 -0
  265. package/dist/src/scenes/preferences.d.ts +40 -0
  266. package/dist/src/scenes/preferences.js +108 -0
  267. package/dist/src/scenes/readiness.d.ts +7 -0
  268. package/dist/src/scenes/readiness.js +20 -0
  269. package/dist/src/scenes/repository.d.ts +174 -0
  270. package/dist/src/scenes/repository.js +740 -0
  271. package/dist/src/scenes/resultNotifications.d.ts +17 -0
  272. package/dist/src/scenes/resultNotifications.js +204 -0
  273. package/dist/src/scenes/runtime.d.ts +25 -0
  274. package/dist/src/scenes/runtime.js +101 -0
  275. package/dist/src/scenes/schedule.d.ts +9 -0
  276. package/dist/src/scenes/schedule.js +45 -0
  277. package/dist/src/scenes/service.d.ts +29 -0
  278. package/dist/src/scenes/service.js +116 -0
  279. package/dist/src/scenes/templates.d.ts +64 -0
  280. package/dist/src/scenes/templates.js +76 -0
  281. package/dist/src/scenes/userNotes.d.ts +10 -0
  282. package/dist/src/scenes/userNotes.js +34 -0
  283. package/dist/src/session/resolve-session.js +2 -1
  284. package/dist/src/session/store.js +2 -1
  285. package/dist/src/share/share-config.js +0 -5
  286. package/dist/src/share/site-share-config.js +0 -5
  287. package/dist/src/storage/sqlite/connection-wait-repository.js +20 -7
  288. package/dist/src/storage/sqlite/connection.js +1 -1
  289. package/dist/src/storage/sqlite/connector-account-repository.js +1 -0
  290. package/dist/src/storage/sqlite/connector-sync-policy-repository.d.ts +0 -4
  291. package/dist/src/storage/sqlite/connector-sync-policy-repository.js +3 -17
  292. package/dist/src/storage/sqlite/conversation-repository.js +2 -1
  293. package/dist/src/storage/sqlite/index.js +2 -1
  294. package/dist/src/storage/sqlite/migrations/187_cli_connectors.sql +34 -0
  295. package/dist/src/storage/sqlite/migrations/188_scene_storage.sql +2 -0
  296. package/dist/src/storage/sqlite/migrations/189_scene_source_health.sql +8 -0
  297. package/dist/src/storage/sqlite/migrations/conversation-backup.d.ts +2 -0
  298. package/dist/src/storage/sqlite/migrations/conversation-backup.js +7 -3
  299. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  300. package/dist/src/storage/sqlite/migrations/runner.js +20 -44
  301. package/dist/src/storage/sqlite/migrations/scene-reset.d.ts +5 -0
  302. package/dist/src/storage/sqlite/migrations/scene-reset.js +40 -0
  303. package/dist/src/storage/sqlite/scenes-schema.d.ts +8 -0
  304. package/dist/src/storage/sqlite/scenes-schema.js +61 -0
  305. package/dist/src/storage/sqlite/schema.js +4 -10
  306. package/dist/src/storage/sqlite/schemas/notifications.sql +65 -0
  307. package/dist/src/storage/sqlite/schemas/scenes.sql +212 -0
  308. package/dist/src/storage/sqlite/session-read-repository.d.ts +8 -0
  309. package/dist/src/storage/sqlite/session-read-repository.js +35 -0
  310. package/dist/src/storage/sqlite/session-repository.d.ts +1 -1
  311. package/dist/src/storage/sqlite/session-repository.js +2 -25
  312. package/dist/src/storage/sqlite/sql-assets.d.ts +2 -0
  313. package/dist/src/storage/sqlite/sql-assets.js +18 -0
  314. package/dist/src/storage/sqlite/transaction.d.ts +2 -0
  315. package/dist/src/storage/sqlite/transaction.js +20 -1
  316. package/dist/src/tasks/home-query-service.d.ts +0 -2
  317. package/dist/src/tasks/home-query-service.js +13 -43
  318. package/dist/src/tasks/index.d.ts +0 -1
  319. package/dist/src/tasks/index.js +4 -5
  320. package/dist/src/tasks/project-operating-view-service.js +1 -4
  321. package/dist/src/tui/backends/embedded-backend.js +1 -1
  322. package/dist/src/tui/tui-commands.js +1 -1
  323. package/dist/src/user-model/goals.d.ts +10 -0
  324. package/dist/src/user-model/goals.js +29 -1
  325. package/dist/src/user-model/index.js +2 -2
  326. package/dist/src/voice/realtime/memory-context.js +2 -1
  327. package/dist/src/workflows/service/workflow-run-service.js +1 -1
  328. package/package.json +4 -2
  329. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-f0-YFMUz.js +0 -1
  330. package/dist/gateway/static/root/assets/api-CN4id43t.js +0 -1
  331. package/dist/gateway/static/root/assets/apps-page-CexHOcWg.js +0 -1
  332. package/dist/gateway/static/root/assets/automations-workspace-onJPfmO6.js +0 -6
  333. package/dist/gateway/static/root/assets/browser-settings-page-BgVTyPFY.js +0 -3
  334. package/dist/gateway/static/root/assets/capabilities-settings-panel-Dra8wj1S.js +0 -8
  335. package/dist/gateway/static/root/assets/channels-settings-CkxiMDJ4.js +0 -1
  336. package/dist/gateway/static/root/assets/channels-status-swr-Dtder4G_.js +0 -1
  337. package/dist/gateway/static/root/assets/computer-settings-page-DHerePwo.js +0 -1
  338. package/dist/gateway/static/root/assets/connectors-page-cl9ZrV4D.js +0 -2
  339. package/dist/gateway/static/root/assets/cron-expression-DAhdv_Xv.js +0 -2
  340. package/dist/gateway/static/root/assets/date-picker-PacO1m3a.js +0 -1
  341. package/dist/gateway/static/root/assets/desktop-pet-settings-Gy03NgMI.js +0 -1
  342. package/dist/gateway/static/root/assets/device-pairing-wizard-aV25nKag.js +0 -1
  343. package/dist/gateway/static/root/assets/external-link-DjqjBmc3.js +0 -1
  344. package/dist/gateway/static/root/assets/gateway-realtime-store-BG95uGVW.js +0 -1
  345. package/dist/gateway/static/root/assets/gateway-settings-Dcr2Ikeh.js +0 -1
  346. package/dist/gateway/static/root/assets/globe-DSSGFWFn.js +0 -1
  347. package/dist/gateway/static/root/assets/heartbeat-settings-DOy3alvT.js +0 -1
  348. package/dist/gateway/static/root/assets/home-page-CDm3dGVy.js +0 -1
  349. package/dist/gateway/static/root/assets/index-D-vczw_0.css +0 -1
  350. package/dist/gateway/static/root/assets/index-DJo4DimT.js +0 -79
  351. package/dist/gateway/static/root/assets/loader-circle-CifKLtgG.js +0 -1
  352. package/dist/gateway/static/root/assets/local-app-workbench-page-CwLvTwjn.js +0 -2
  353. package/dist/gateway/static/root/assets/markdown-view-Y68dCxuc.css +0 -1
  354. package/dist/gateway/static/root/assets/messages-BiYTyLJr.js +0 -3
  355. package/dist/gateway/static/root/assets/note-detail-panel-c2k5Uz6X.js +0 -5
  356. package/dist/gateway/static/root/assets/notes-page-BLQWJMhf.js +0 -8
  357. package/dist/gateway/static/root/assets/preview-open-alternatives-9B5W7nVE.js +0 -1
  358. package/dist/gateway/static/root/assets/proactive-page-iOjI0d_e.js +0 -1
  359. package/dist/gateway/static/root/assets/project-detail-page-BcxbQn2M.js +0 -1
  360. package/dist/gateway/static/root/assets/projects-page-BuSvld0O.js +0 -1
  361. package/dist/gateway/static/root/assets/remote-access-hub-CFS8LQKW.js +0 -1
  362. package/dist/gateway/static/root/assets/sessions-page-DZjc__ok.js +0 -1
  363. package/dist/gateway/static/root/assets/settings-advanced-gate-C1SM5B93.js +0 -1
  364. package/dist/gateway/static/root/assets/settings-page-CxRWyWYe.js +0 -1
  365. package/dist/gateway/static/root/assets/settings-page-layout-X1x-2Cp9.js +0 -1
  366. package/dist/gateway/static/root/assets/setup-status-panel-D9Rl7Tec.js +0 -1
  367. package/dist/gateway/static/root/assets/shares-settings-CwCThBs0.js +0 -1
  368. package/dist/gateway/static/root/assets/skill-reload-api-DG6VGbOX.js +0 -1
  369. package/dist/gateway/static/root/assets/skills-page-BdRJ2vnL.js +0 -2
  370. package/dist/gateway/static/root/assets/system-settings-panel-DXIZpAvU.js +0 -1
  371. package/dist/gateway/static/root/assets/task-detail-page-QXo9LJly.js +0 -1
  372. package/dist/gateway/static/root/assets/tunnel-api-Db2guRdW.js +0 -1
  373. package/dist/gateway/static/root/assets/use-autosave-DDY9qoXZ.js +0 -1
  374. package/dist/gateway/static/root/assets/user-model-page-CzPmMkaO.js +0 -2
  375. package/dist/gateway/static/root/assets/workflows-page-CQXtiYtq.js +0 -6
  376. package/dist/gateway/static/root/connector-icons/wps-calendar.svg +0 -14
  377. package/dist/gateway/static/root/connector-icons/wps-mail.svg +0 -7
  378. package/dist/src/connectors/source-change-publisher.d.ts +0 -17
  379. package/dist/src/connectors/source-change-publisher.js +0 -151
  380. package/dist/src/gateway/heartbeat/check-store.d.ts +0 -18
  381. package/dist/src/gateway/heartbeat/check-store.js +0 -74
  382. package/dist/src/gateway/heartbeat/index.d.ts +0 -1
  383. package/dist/src/gateway/heartbeat/index.js +0 -2
  384. package/dist/src/gateway/heartbeat/service.d.ts +0 -55
  385. package/dist/src/gateway/heartbeat/service.js +0 -228
  386. package/dist/src/gateway/hono/routes/proactive-control.d.ts +0 -3
  387. package/dist/src/gateway/hono/routes/proactive-control.js +0 -135
  388. package/dist/src/gateway/hono/routes/proactive.d.ts +0 -4
  389. package/dist/src/gateway/hono/routes/proactive.js +0 -164
  390. package/dist/src/gateway/hono/routes/workspace.d.ts +0 -3
  391. package/dist/src/gateway/hono/routes/workspace.js +0 -62
  392. package/dist/src/gateway/workspace-heartbeat-path.d.ts +0 -3
  393. package/dist/src/gateway/workspace-heartbeat-path.js +0 -14
  394. package/dist/src/migrations/conversation-routing-config.d.ts +0 -2
  395. package/dist/src/migrations/conversation-routing-config.js +0 -42
  396. package/dist/src/notifications/proactive-channel.d.ts +0 -8
  397. package/dist/src/notifications/proactive-channel.js +0 -60
  398. package/dist/src/notifications/proactive-policy.d.ts +0 -3
  399. package/dist/src/notifications/proactive-policy.js +0 -35
  400. package/dist/src/notifications/web-push.d.ts +0 -19
  401. package/dist/src/notifications/web-push.js +0 -185
  402. package/dist/src/proactive/actions/service.d.ts +0 -1
  403. package/dist/src/proactive/actions/service.js +0 -82
  404. package/dist/src/proactive/events/envelope.d.ts +0 -2
  405. package/dist/src/proactive/events/envelope.js +0 -54
  406. package/dist/src/proactive/events/product-event-bridge.d.ts +0 -7
  407. package/dist/src/proactive/events/product-event-bridge.js +0 -87
  408. package/dist/src/proactive/events/publisher.d.ts +0 -4
  409. package/dist/src/proactive/events/repository.d.ts +0 -9
  410. package/dist/src/proactive/events/repository.js +0 -63
  411. package/dist/src/proactive/events/types.d.ts +0 -44
  412. package/dist/src/proactive/events/types.js +0 -15
  413. package/dist/src/proactive/execution/agent-executor.d.ts +0 -21
  414. package/dist/src/proactive/execution/agent-executor.js +0 -125
  415. package/dist/src/proactive/execution/authorization.d.ts +0 -7
  416. package/dist/src/proactive/execution/authorization.js +0 -71
  417. package/dist/src/proactive/execution/context.d.ts +0 -49
  418. package/dist/src/proactive/execution/context.js +0 -408
  419. package/dist/src/proactive/execution/insight.d.ts +0 -14
  420. package/dist/src/proactive/execution/insight.js +0 -132
  421. package/dist/src/proactive/execution/repository.d.ts +0 -28
  422. package/dist/src/proactive/execution/repository.js +0 -211
  423. package/dist/src/proactive/execution/types.d.ts +0 -80
  424. package/dist/src/proactive/execution/worker.d.ts +0 -15
  425. package/dist/src/proactive/execution/worker.js +0 -146
  426. package/dist/src/proactive/experience.d.ts +0 -89
  427. package/dist/src/proactive/experience.js +0 -195
  428. package/dist/src/proactive/follow-ups.d.ts +0 -128
  429. package/dist/src/proactive/follow-ups.js +0 -182
  430. package/dist/src/proactive/inbox/cards.d.ts +0 -21
  431. package/dist/src/proactive/inbox/cards.js +0 -276
  432. package/dist/src/proactive/inbox/delivery.d.ts +0 -6
  433. package/dist/src/proactive/inbox/delivery.js +0 -54
  434. package/dist/src/proactive/inbox/digest.d.ts +0 -8
  435. package/dist/src/proactive/inbox/digest.js +0 -123
  436. package/dist/src/proactive/inbox/lifecycle.d.ts +0 -4
  437. package/dist/src/proactive/inbox/lifecycle.js +0 -62
  438. package/dist/src/proactive/inbox/notification-policy.d.ts +0 -1
  439. package/dist/src/proactive/inbox/notification-policy.js +0 -25
  440. package/dist/src/proactive/inbox/repository.d.ts +0 -25
  441. package/dist/src/proactive/inbox/repository.js +0 -244
  442. package/dist/src/proactive/inbox/service.d.ts +0 -23
  443. package/dist/src/proactive/inbox/service.js +0 -46
  444. package/dist/src/proactive/inbox/types.d.ts +0 -64
  445. package/dist/src/proactive/inbox/worker.d.ts +0 -13
  446. package/dist/src/proactive/inbox/worker.js +0 -71
  447. package/dist/src/proactive/index.d.ts +0 -20
  448. package/dist/src/proactive/index.js +0 -14
  449. package/dist/src/proactive/mail-thread.d.ts +0 -13
  450. package/dist/src/proactive/mail-thread.js +0 -55
  451. package/dist/src/proactive/maintenance.d.ts +0 -4
  452. package/dist/src/proactive/maintenance.js +0 -28
  453. package/dist/src/proactive/metrics.d.ts +0 -10
  454. package/dist/src/proactive/metrics.js +0 -28
  455. package/dist/src/proactive/policy/presence.d.ts +0 -2
  456. package/dist/src/proactive/policy/presence.js +0 -30
  457. package/dist/src/proactive/policy/service.d.ts +0 -54
  458. package/dist/src/proactive/policy/service.js +0 -123
  459. package/dist/src/proactive/routing/batch-repository.d.ts +0 -27
  460. package/dist/src/proactive/routing/batch-repository.js +0 -57
  461. package/dist/src/proactive/routing/matcher.d.ts +0 -5
  462. package/dist/src/proactive/routing/matcher.js +0 -57
  463. package/dist/src/proactive/routing/types.d.ts +0 -44
  464. package/dist/src/proactive/routing/types.js +0 -1
  465. package/dist/src/proactive/scenarios/control.d.ts +0 -52
  466. package/dist/src/proactive/scenarios/control.js +0 -75
  467. package/dist/src/proactive/scenarios/prompt-composer.d.ts +0 -14
  468. package/dist/src/proactive/scenarios/prompt-composer.js +0 -26
  469. package/dist/src/proactive/scenarios/repository.d.ts +0 -23
  470. package/dist/src/proactive/scenarios/repository.js +0 -174
  471. package/dist/src/proactive/scenarios/service.d.ts +0 -15
  472. package/dist/src/proactive/scenarios/service.js +0 -26
  473. package/dist/src/proactive/scenarios/types.d.ts +0 -43
  474. package/dist/src/proactive/scenarios/types.js +0 -1
  475. package/dist/src/proactive/service.d.ts +0 -25
  476. package/dist/src/proactive/service.js +0 -78
  477. package/dist/src/proactive/source-freshness.d.ts +0 -8
  478. package/dist/src/proactive/source-freshness.js +0 -28
  479. package/dist/src/proactive/status.d.ts +0 -2
  480. package/dist/src/proactive/status.js +0 -22
  481. package/dist/src/proactive/temporal/schedule.d.ts +0 -3
  482. package/dist/src/proactive/temporal/schedule.js +0 -68
  483. package/dist/src/proactive/temporal/worker.d.ts +0 -17
  484. package/dist/src/proactive/temporal/worker.js +0 -129
  485. package/dist/src/tasks/project-monitoring-service.d.ts +0 -32
  486. package/dist/src/tasks/project-monitoring-service.js +0 -118
  487. /package/dist/src/{proactive/execution → connectors/cli}/types.js +0 -0
  488. /package/dist/src/{proactive/events/publisher.js → notifications/domain-delivery.js} +0 -0
  489. /package/dist/src/{proactive/inbox/types.js → scenes/httpServices.js} +0 -0
@@ -0,0 +1,142 @@
1
+ import { createLogger } from "../../../utils/logger/index.js";
2
+ import { init_logger } from "../../../utils/logger.js";
3
+ import { SceneConflictError, SceneInputError, SceneNotFoundError } from "../../../scenes/repository.js";
4
+ import { SceneSetupError } from "../../../scenes/service.js";
5
+ import { getGatewayPrincipal } from "../../security/gateway-principal.js";
6
+ import { z } from "zod";
7
+ import { Hono } from "hono";
8
+ //#region src/gateway/hono/routes/scenes.ts
9
+ init_logger();
10
+ const log = createLogger("Hono:Scenes");
11
+ const requestIdentity = z.string().trim().min(1).max(200);
12
+ const pageSchema = z.strictObject({
13
+ limit: z.coerce.number().int().min(1).max(100).default(50),
14
+ afterId: z.string().max(200).default("")
15
+ });
16
+ function registerSceneRoutes(authenticated, deps) {
17
+ const app = new Hono();
18
+ app.onError((error, c) => {
19
+ if (error instanceof SceneNotFoundError) return c.json({ error: "scene_not_found" }, 404);
20
+ if (error instanceof SceneConflictError) return c.json({
21
+ error: "scene_changed",
22
+ message: error.message
23
+ }, 409);
24
+ if (error instanceof SceneSetupError) return c.json({
25
+ error: "scene_needs_setup",
26
+ message: error.message,
27
+ missing: error.missing
28
+ }, 422);
29
+ if (error instanceof z.ZodError || error instanceof SyntaxError || error instanceof SceneInputError) return c.json({ error: "invalid_scene_input" }, 400);
30
+ log.error({
31
+ err: error,
32
+ phase: "scene_request"
33
+ }, "Scene request failed");
34
+ return c.json({ error: "scene_request_failed" }, 500);
35
+ });
36
+ app.use("*", async (c, next) => {
37
+ if (!deps.scenes) return c.json({ error: "scene_runtime_not_installed" }, 503);
38
+ await next();
39
+ });
40
+ const principal = (c) => ({
41
+ ownerId: getGatewayPrincipal(c).scopes.includes("gateway.admin") ? "local-owner" : getGatewayPrincipal(c).principalId,
42
+ workspaceId: deps.service.currentWorkspacePath
43
+ });
44
+ app.post("/browser/prepare", deps.strictRateLimitMiddleware, (c) => c.json(deps.scenes.browser.prepare()));
45
+ app.post("/browser/subscriptions", deps.strictRateLimitMiddleware, async (c) => c.json(deps.scenes.browser.register(principal(c), await c.req.json()), 201));
46
+ app.delete("/browser/subscriptions/:id", deps.strictRateLimitMiddleware, (c) => {
47
+ deps.scenes.browser.remove(principal(c), c.req.param("id"));
48
+ return c.json({ ok: true });
49
+ });
50
+ app.get("/preferences", (c) => c.json(deps.scenes.preferences.get(principal(c))));
51
+ app.patch("/preferences", deps.strictRateLimitMiddleware, async (c) => c.json(deps.scenes.preferences.update(principal(c), await c.req.json())));
52
+ app.post("/presence", deps.strictRateLimitMiddleware, async (c) => {
53
+ deps.scenes.preferences.recordPresence(principal(c), await c.req.json());
54
+ return c.json({ ok: true });
55
+ });
56
+ app.get("/templates", (c) => c.json({ templates: deps.scenes.repository.listTemplates() }));
57
+ app.get("/diagnostics", (c) => c.json(deps.scenes.metrics.diagnostics(principal(c))));
58
+ app.get("/metrics", (c) => {
59
+ const { days } = z.strictObject({ days: z.coerce.number().int().min(1).max(90).default(7) }).parse(c.req.query());
60
+ return c.json(deps.scenes.metrics.forUser(principal(c), days));
61
+ });
62
+ app.get("/sources/mail/accounts", (c) => c.json({ accounts: deps.scenes.mailDiscovery?.listAccounts(principal(c)) ?? [] }));
63
+ app.post("/sources/mail/search", deps.strictRateLimitMiddleware, async (c) => {
64
+ if (!deps.scenes.mailDiscovery) return c.json({ error: "mail_search_unavailable" }, 503);
65
+ const signal = AbortSignal.any([c.req.raw.signal, AbortSignal.timeout(15e3)]);
66
+ return c.json({ sources: await deps.scenes.mailDiscovery.searchSources(principal(c), await c.req.json(), signal) });
67
+ });
68
+ app.get("/sources/mail", (c) => {
69
+ const { limit, afterId } = pageSchema.parse(c.req.query());
70
+ const sources = deps.scenes.mail.listSources(principal(c), limit, afterId);
71
+ return c.json({
72
+ sources,
73
+ nextCursor: sources.length === limit ? sources.at(-1).id : null
74
+ });
75
+ });
76
+ app.get("/templates/:key/versions/:version", (c) => c.json({ template: deps.scenes.repository.getTemplate(c.req.param("key"), c.req.param("version")) }));
77
+ app.post("/preflight", deps.strictRateLimitMiddleware, async (c) => c.json(await deps.scenes.application.preflight(principal(c), await c.req.json())));
78
+ app.get("/activations", (c) => {
79
+ const { limit, afterId } = pageSchema.parse(c.req.query());
80
+ const activations = deps.scenes.repository.listActivations(principal(c), limit, afterId);
81
+ return c.json({
82
+ activations,
83
+ nextCursor: activations.length === limit ? activations.at(-1).id : null
84
+ });
85
+ });
86
+ app.post("/activations", deps.strictRateLimitMiddleware, async (c) => {
87
+ const requestId = requestIdentity.parse(c.req.header("Idempotency-Key"));
88
+ return c.json({ activation: await deps.scenes.application.start(principal(c), await c.req.json(), requestId) }, 201);
89
+ });
90
+ app.get("/activations/:id", (c) => c.json({ activation: deps.scenes.repository.getActivation(principal(c), c.req.param("id")) }));
91
+ app.patch("/activations/:id", deps.strictRateLimitMiddleware, async (c) => {
92
+ const body = await c.req.json();
93
+ const activation = typeof body === "object" && body !== null && Object.hasOwn(body, "status") ? await deps.scenes.application.transition(principal(c), c.req.param("id"), body) : deps.scenes.application.configure(principal(c), c.req.param("id"), body);
94
+ return c.json({ activation });
95
+ });
96
+ app.post("/activations/:id/checks", deps.strictRateLimitMiddleware, (c) => c.json({ intentId: deps.scenes.application.check(principal(c), c.req.param("id"), requestIdentity.parse(c.req.header("Idempotency-Key"))) }, 202));
97
+ app.get("/activations/:id/runs", (c) => {
98
+ const { limit, afterId } = pageSchema.parse(c.req.query());
99
+ const runs = deps.scenes.repository.listRuns(principal(c), c.req.param("id"), limit, afterId);
100
+ return c.json({
101
+ runs,
102
+ nextCursor: runs.length === limit ? runs.at(-1).id : null
103
+ });
104
+ });
105
+ app.patch("/activations/:id/notes", deps.strictRateLimitMiddleware, async (c) => c.json({ revision: deps.scenes.application.writeNotes(principal(c), c.req.param("id"), await c.req.json()) }));
106
+ app.get("/activations/:id/notes", (c) => c.json({ notes: deps.scenes.repository.readNotes(principal(c), c.req.param("id")) }));
107
+ app.get("/activations/:id/work-items", (c) => {
108
+ const { limit, afterId } = pageSchema.parse(c.req.query());
109
+ const workItems = deps.scenes.repository.listWorkItems(principal(c), c.req.param("id"), limit, afterId);
110
+ return c.json({
111
+ workItems,
112
+ nextCursor: workItems.length === limit ? workItems.at(-1).id : null
113
+ });
114
+ });
115
+ app.post("/activations/:id/work-items", deps.strictRateLimitMiddleware, async (c) => c.json({ workItem: deps.scenes.application.createWorkItem(principal(c), c.req.param("id"), await c.req.json()) }, 201));
116
+ app.get("/activations/:id/schedules", (c) => c.json({ schedules: deps.scenes.repository.listSchedules(principal(c), c.req.param("id")) }));
117
+ app.patch("/activations/:id/schedules/:triggerKey", deps.strictRateLimitMiddleware, async (c) => c.json({ revision: deps.scenes.application.setSchedule(principal(c), c.req.param("id"), c.req.param("triggerKey"), await c.req.json()) }));
118
+ app.patch("/work-items/:id", deps.strictRateLimitMiddleware, async (c) => c.json({ workItem: deps.scenes.application.updateWorkItem(principal(c), c.req.param("id"), await c.req.json()) }));
119
+ app.get("/outcomes", (c) => {
120
+ const { limit, afterId, activationId } = pageSchema.extend({ activationId: requestIdentity.optional() }).parse(c.req.query());
121
+ const outcomes = deps.scenes.repository.listInbox(principal(c), limit, afterId, activationId ?? null);
122
+ return c.json({
123
+ outcomes,
124
+ nextCursor: outcomes.length === limit ? outcomes.at(-1).id : null
125
+ });
126
+ });
127
+ app.get("/digests/:id", (c) => {
128
+ const { limit, afterId } = pageSchema.parse(c.req.query());
129
+ return c.json(deps.scenes.repository.listDigestResults(principal(c), c.req.param("id"), limit, afterId));
130
+ });
131
+ app.get("/presentations/:id/feedback", (c) => c.json({ feedback: deps.scenes.inbox.getFeedback(principal(c), c.req.param("id")) }));
132
+ app.get("/presentations/:id", (c) => c.json({ outcome: deps.scenes.repository.getPresentation(principal(c), c.req.param("id")) }));
133
+ app.post("/presentations/:id/feedback", deps.strictRateLimitMiddleware, async (c) => c.json({ revision: deps.scenes.inbox.feedback(principal(c), c.req.param("id"), await c.req.json()) }));
134
+ app.patch("/presentations/:id", deps.strictRateLimitMiddleware, async (c) => {
135
+ const { read } = z.strictObject({ read: z.boolean() }).parse(await c.req.json());
136
+ deps.scenes.inbox.setRead(principal(c), c.req.param("id"), read);
137
+ return c.json({ ok: true });
138
+ });
139
+ authenticated.route("/api/scenes", app);
140
+ }
141
+ //#endregion
142
+ export { registerSceneRoutes };
@@ -1,7 +1,6 @@
1
1
  import { init_transaction, runSqliteWriteTransaction } from "../../../storage/sqlite/transaction.js";
2
2
  import { TaskPhaseSchema } from "../../../../packages/gateway-contract/src/task-lifecycle.js";
3
3
  import { TaskBoardPositionRequestSchema, TaskCommandRequestSchema, TaskContextInputSchema, TaskCreateRequestSchema, TaskDependencyUpdateRequestSchema, TaskHandoffRequestSchema, TaskPatchRequestSchema } from "../../../../packages/gateway-contract/src/tasks.js";
4
- import { ProjectMonitoringUpdateSchema } from "../../../../packages/gateway-contract/src/project-monitoring.js";
5
4
  import { init_src } from "../../../../packages/gateway-contract/src/index.js";
6
5
  import { enqueueTaskChangedEvent, init_task_change_events } from "../../../tasks/task-change-events.js";
7
6
  import { TaskRunRepository, init_task_run_repository } from "../../../tasks/task-run-repository.js";
@@ -12,7 +11,6 @@ import { resolveProjectAgentId } from "../../../projects/project-agent.js";
12
11
  import { TaskContextRepository } from "../../../tasks/task-context-repository.js";
13
12
  import { TaskDependencyError, TaskDependencyService } from "../../../tasks/task-dependency-service.js";
14
13
  import { TaskApplicationService } from "../../../tasks/task-application-service.js";
15
- import { ProjectMonitoringService } from "../../../tasks/project-monitoring-service.js";
16
14
  import { ProjectOperatingViewService } from "../../../tasks/project-operating-view-service.js";
17
15
  import { TaskValueMetricsService } from "../../../tasks/task-value-metrics-service.js";
18
16
  import { TaskHandoffService } from "../../../tasks/task-handoff-service.js";
@@ -30,7 +28,6 @@ function registerTaskRoutes(authenticated, deps) {
30
28
  const taskRateLimit = deps.taskRateLimitMiddleware ?? deps.strictRateLimitMiddleware;
31
29
  const application = new TaskApplicationService();
32
30
  const operatingViews = new ProjectOperatingViewService(deps.service.projects);
33
- const monitoring = new ProjectMonitoringService(deps.service.currentWorkspacePath);
34
31
  const metrics = new TaskValueMetricsService();
35
32
  const tasks = new TaskRepository();
36
33
  const runs = new TaskRunRepository();
@@ -577,49 +574,6 @@ function registerTaskRoutes(authenticated, deps) {
577
574
  error: "Project not found"
578
575
  }, 404);
579
576
  });
580
- authenticated.get("/api/projects/:projectId/monitoring", (c) => {
581
- const projectId = c.req.param("projectId");
582
- if (!deps.service.projects.get(projectId)) return c.json({
583
- ok: false,
584
- error: "Project not found"
585
- }, 404);
586
- return c.json({
587
- ok: true,
588
- policy: monitoring.get(projectId)
589
- });
590
- });
591
- authenticated.patch("/api/projects/:projectId/monitoring", taskRateLimit, async (c) => {
592
- const projectId = c.req.param("projectId");
593
- if (!deps.service.projects.get(projectId)) return c.json({
594
- ok: false,
595
- error: "Project not found"
596
- }, 404);
597
- const parsed = ProjectMonitoringUpdateSchema.safeParse(await c.req.json().catch(() => ({})));
598
- if (!parsed.success) return c.json({
599
- ok: false,
600
- error: "Invalid monitoring policy"
601
- }, 400);
602
- const current = monitoring.get(projectId);
603
- try {
604
- const policy = monitoring.configure({
605
- projectId,
606
- mode: parsed.data.mode ?? current.mode,
607
- quietHours: parsed.data.quietHours === null ? void 0 : parsed.data.quietHours ?? current.quietHours,
608
- allowedActions: parsed.data.allowedActions ?? current.allowedActions,
609
- confidenceThreshold: parsed.data.confidenceThreshold ?? current.confidenceThreshold,
610
- scenarios: parsed.data.scenarios ?? (current.configured ? current.scenarios : void 0)
611
- });
612
- return c.json({
613
- ok: true,
614
- policy
615
- });
616
- } catch (error) {
617
- return c.json({
618
- ok: false,
619
- error: error instanceof Error ? error.message : String(error)
620
- }, 400);
621
- }
622
- });
623
577
  }
624
578
  //#endregion
625
579
  export { registerTaskRoutes };
@@ -1,7 +1,8 @@
1
+ import { init_transaction, runSqliteWriteTransaction } from "../../../storage/sqlite/transaction.js";
1
2
  import { createCollaborationRule, getCollaborationRule, listCollaborationRules, setCollaborationRuleStatus } from "../../../storage/sqlite/collaboration-rule-repository.js";
2
3
  import { KnowledgeReviewConflictError, deleteKnowledgeItem, getKnowledgeItem, listKnowledgeItems, reviewKnowledgeItem, searchKnowledgeItems } from "../../../knowledge-memory/repository.js";
3
4
  import "../../../knowledge-memory/index.js";
4
- import { createPriorityWindow, createUserGoal, listPriorityWindows, listUserGoals, setUserGoalStatus } from "../../../user-model/goals.js";
5
+ import { createPriorityWindow, createUserGoal, listPriorityWindows, listUserGoals, setUserGoalStatus, updatePriorityWindow, updateUserGoal } from "../../../user-model/goals.js";
5
6
  import { deleteUserAssertion, getAssertionSlot, getUserAssertion, listUserAssertionSources, listUserAssertions, reconcileAssertion, setAssertionStatus } from "../../../user-model/repository.js";
6
7
  import { applyUserProfilePatch, getUserProfileSnapshot } from "../../../user-model/profile.js";
7
8
  import { bootstrapUserModel } from "../../../user-model/bootstrap.js";
@@ -13,6 +14,7 @@ import { getExecutionContextAudit, recordExecutionContextFeedback } from "../../
13
14
  import { listUnderstandingSourceGrants } from "../../../user-context/sources/repository.js";
14
15
  import { userInfo } from "node:os";
15
16
  //#region src/gateway/hono/routes/user-model.ts
17
+ init_transaction();
16
18
  function object(value) {
17
19
  return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
18
20
  }
@@ -387,6 +389,57 @@ function registerUserModelRoutes(authenticated, deps) {
387
389
  return c.json({ error: errorMessage(error) }, 400);
388
390
  }
389
391
  });
392
+ authenticated.patch("/api/user-model/priorities/:id", write, async (c) => {
393
+ const input = await body(c);
394
+ const priority = listPriorityWindows().find((item) => item.id === c.req.param("id"));
395
+ if (!priority) return c.json({ error: "Priority not found" }, 404);
396
+ if (!input) return c.json({ error: "A priority patch is required" }, 400);
397
+ if (![
398
+ "title",
399
+ "desiredOutcome",
400
+ "validTo",
401
+ "status"
402
+ ].some((field) => Object.hasOwn(input, field))) return c.json({ error: "At least one editable priority field is required" }, 400);
403
+ if (Object.hasOwn(input, "title") && typeof input.title !== "string" || Object.hasOwn(input, "desiredOutcome") && typeof input.desiredOutcome !== "string" || Object.hasOwn(input, "validTo") && typeof input.validTo !== "number" || Object.hasOwn(input, "status") && typeof input.status !== "string") return c.json({ error: "Priority patch fields have invalid types" }, 400);
404
+ const title = typeof input.title === "string" ? input.title.trim() : void 0;
405
+ const desiredOutcome = typeof input.desiredOutcome === "string" ? input.desiredOutcome.trim() : void 0;
406
+ const validTo = typeof input.validTo === "number" ? input.validTo : void 0;
407
+ const status = typeof input.status === "string" ? input.status : void 0;
408
+ if (status && ![
409
+ "active",
410
+ "paused",
411
+ "completed",
412
+ "expired"
413
+ ].includes(status)) return c.json({ error: "Invalid priority status" }, 400);
414
+ if (validTo !== void 0 && validTo < priority.validFrom) return c.json({ error: "Priority validTo must be after validFrom" }, 400);
415
+ if (title !== void 0 && !title) return c.json({ error: "Priority title is required" }, 400);
416
+ if (desiredOutcome !== void 0 && !desiredOutcome) return c.json({ error: "Priority outcome is required" }, 400);
417
+ try {
418
+ const result = runSqliteWriteTransaction(() => {
419
+ let goal;
420
+ if (priority.targetType === "goal" && (title !== void 0 || desiredOutcome !== void 0)) {
421
+ const currentGoal = listUserGoals().find((item) => item.id === priority.targetId);
422
+ if (!currentGoal) throw new Error("Priority goal not found");
423
+ goal = updateUserGoal(currentGoal.id, {
424
+ title: title ?? currentGoal.title,
425
+ desiredOutcome: desiredOutcome ?? currentGoal.desiredOutcome,
426
+ ...currentGoal.targetAt === void 0 ? {} : { targetAt: currentGoal.targetAt }
427
+ });
428
+ }
429
+ return {
430
+ priority: updatePriorityWindow(priority.id, {
431
+ ...priority.targetType === "goal" || title === void 0 ? {} : { targetId: title },
432
+ ...validTo === void 0 ? {} : { validTo },
433
+ ...status === void 0 ? {} : { status }
434
+ }),
435
+ ...goal ? { goal } : {}
436
+ };
437
+ });
438
+ return c.json(result);
439
+ } catch (error) {
440
+ return c.json({ error: errorMessage(error) }, 400);
441
+ }
442
+ });
390
443
  authenticated.get("/api/knowledge-memory", (c) => {
391
444
  const query = c.req.query("q")?.trim();
392
445
  if (!query) return c.json({ items: listKnowledgeItems({
@@ -0,0 +1,4 @@
1
+ import type { DatabaseSync } from 'node:sqlite';
2
+ import { NotificationDispatcher } from '../../notifications/dispatch.js';
3
+ import { type SceneActivation, type ScenePermission } from '../../scenes/contracts.js';
4
+ export declare function createSceneBrowserDispatcher(db: DatabaseSync, authorize: (activation: SceneActivation) => ScenePermission, clock?: () => number): NotificationDispatcher;
@@ -0,0 +1,54 @@
1
+ import { intersectPermissions, sceneContentHash } from "../../scenes/contracts.js";
2
+ import { SceneRepository } from "../../scenes/repository.js";
3
+ import { ScenePreferenceService, sceneChecksAllowed } from "../../scenes/preferences.js";
4
+ import { notificationQuietUntil } from "../../notifications/quietHours.js";
5
+ import { sceneNotificationEligibility } from "../../scenes/notificationEligibility.js";
6
+ import { createBrowserNotificationTransport } from "../../notifications/browserTransport.js";
7
+ import { NotificationDispatcher } from "../../notifications/dispatch.js";
8
+ //#region src/gateway/scenes/browserNotifications.ts
9
+ function createSceneBrowserDispatcher(db, authorize, clock = Date.now) {
10
+ const repository = new SceneRepository(db);
11
+ const members = (dispatch) => dispatch.subjectId ? [{
12
+ subject_id: dispatch.subjectId,
13
+ subject_revision: dispatch.subjectRevision
14
+ }] : db.prepare(`SELECT m.subject_id, m.subject_revision FROM notification_digest_members m
15
+ JOIN notification_digests d ON d.id = m.digest_id
16
+ WHERE d.notification_id = ? AND d.owner_id = ? AND d.workspace_id = ?`).all(dispatch.notificationId, dispatch.ownerId, dispatch.workspaceId);
17
+ const eligible = (dispatch, subject) => {
18
+ const result = sceneNotificationEligibility(db, {
19
+ ...dispatch,
20
+ subjectId: String(subject.subject_id)
21
+ }, clock(), Number(subject.subject_revision));
22
+ if (result.action !== "eligible") return null;
23
+ const activation = repository.getActivation(dispatch, result.activationId);
24
+ if (sceneContentHash(intersectPermissions(activation.permissions, authorize(activation))) !== sceneContentHash(intersectPermissions(activation.permissions))) return null;
25
+ return result;
26
+ };
27
+ return new NotificationDispatcher(db, {
28
+ clock,
29
+ send: createBrowserNotificationTransport(db, {
30
+ clock,
31
+ route: (dispatch) => {
32
+ if (!dispatch.subjectId) return "/scenes/inbox";
33
+ const result = eligible(dispatch, {
34
+ subject_id: dispatch.subjectId,
35
+ subject_revision: dispatch.subjectRevision
36
+ });
37
+ return result ? `/scenes/${encodeURIComponent(result.activationId)}?result=${encodeURIComponent(result.presentationId)}` : null;
38
+ }
39
+ }),
40
+ authorize: async (dispatch) => {
41
+ const policy = new ScenePreferenceService(db).get(dispatch);
42
+ if (!sceneChecksAllowed(policy, clock()) || policy.notificationsMuted || policy.level === "quiet" || policy.preferredChannel !== "browser") return { action: "cancel" };
43
+ if (!members(dispatch).filter((subject) => eligible(dispatch, subject)).filter((subject) => !policy.suppressWhileViewing || !db.prepare(`SELECT 1 FROM notification_presence WHERE owner_id = ? AND workspace_id = ?
44
+ AND subject_id = ? AND subject_revision = ? AND expires_at > ?`).get(dispatch.ownerId, dispatch.workspaceId, subject.subject_id, subject.subject_revision, clock())).length) return { action: "cancel" };
45
+ const until = notificationQuietUntil(policy, clock());
46
+ return until === null ? { action: "send" } : {
47
+ action: "defer",
48
+ until
49
+ };
50
+ }
51
+ });
52
+ }
53
+ //#endregion
54
+ export { createSceneBrowserDispatcher };
@@ -0,0 +1,34 @@
1
+ import type { DatabaseSync } from 'node:sqlite';
2
+ import type { ProductNotification } from '@xopcai/gateway-contract';
3
+ import type { Config } from '../../config/schema.js';
4
+ import type { ScenePrincipal } from '../../scenes/contracts.js';
5
+ import { type SceneReadOnlyExecutor } from '../../scenes/execution.js';
6
+ import type { SceneHttpServices } from '../../scenes/httpServices.js';
7
+ import type { SceneMailContextProvider } from '../../scenes/mailContext.js';
8
+ /** Composition root for the initialized database. Never creates tables or starts an old worker. */
9
+ export declare class GatewaySceneHost {
10
+ private readonly db;
11
+ readonly http: SceneHttpServices;
12
+ private readonly runtime;
13
+ private readonly notifications;
14
+ private readonly browserDispatcher;
15
+ private timer?;
16
+ private active?;
17
+ private stopped;
18
+ private nextMaintenanceAt;
19
+ private readonly clock;
20
+ constructor(db: DatabaseSync, input: {
21
+ principal: ScenePrincipal;
22
+ config: () => Config;
23
+ publish: (type: 'notification.created', notification: ProductNotification) => void;
24
+ executor?: SceneReadOnlyExecutor;
25
+ mail?: SceneMailContextProvider;
26
+ clock?: () => number;
27
+ intervalMs?: number;
28
+ });
29
+ private readonly intervalMs;
30
+ start(): void;
31
+ tick(): Promise<void>;
32
+ /** Must finish before the Gateway closes SQLite or its realtime broker. */
33
+ stop(): Promise<void>;
34
+ }
@@ -0,0 +1,129 @@
1
+ import { createLogger } from "../../utils/logger/index.js";
2
+ import { init_logger } from "../../utils/logger.js";
3
+ import { assertSceneStorageReady, init_scenes_schema } from "../../storage/sqlite/scenes-schema.js";
4
+ import { getDefaultModelSync, init_providers, isProviderConfiguredSync, resolveModel } from "../../providers/index.js";
5
+ import { BrowserSubscriptionService } from "../../notifications/browserSubscriptions.js";
6
+ import { SceneRepository } from "../../scenes/repository.js";
7
+ import { ScenePreferenceService } from "../../scenes/preferences.js";
8
+ import { SceneExecutionService } from "../../scenes/execution.js";
9
+ import { SceneAgentExecutor } from "../../scenes/agentExecutor.js";
10
+ import { SceneInboxService } from "../../scenes/inbox.js";
11
+ import { SceneMailObservationService } from "../../scenes/mailObservations.js";
12
+ import { maintainSceneStorage } from "../../scenes/maintenance.js";
13
+ import { SceneMetrics } from "../../scenes/metrics.js";
14
+ import { SceneResultNotifications } from "../../scenes/resultNotifications.js";
15
+ import { SceneRuntime } from "../../scenes/runtime.js";
16
+ import { SceneApplicationService } from "../../scenes/service.js";
17
+ import { familyPlanTemplate, mailFollowUpTemplate } from "../../scenes/templates.js";
18
+ import { SceneUserNotesProvider } from "../../scenes/userNotes.js";
19
+ import { createSceneBrowserDispatcher } from "./browserNotifications.js";
20
+ import { GatewaySceneMailContext } from "./mailContext.js";
21
+ //#region src/gateway/scenes/host.ts
22
+ init_providers();
23
+ init_scenes_schema();
24
+ init_logger();
25
+ const log = createLogger("Gateway:Scenes");
26
+ /** Composition root for the initialized database. Never creates tables or starts an old worker. */
27
+ var GatewaySceneHost = class {
28
+ http;
29
+ runtime;
30
+ notifications;
31
+ browserDispatcher;
32
+ timer;
33
+ active;
34
+ stopped = false;
35
+ nextMaintenanceAt = 0;
36
+ clock;
37
+ constructor(db, input) {
38
+ this.db = db;
39
+ assertSceneStorageReady(db);
40
+ if (!input.principal.ownerId.trim() || !input.principal.workspaceId.trim()) throw new Error("Scene host principal is required");
41
+ const clock = input.clock ?? Date.now;
42
+ this.clock = clock;
43
+ const repository = new SceneRepository(db);
44
+ repository.installTemplate(mailFollowUpTemplate);
45
+ repository.installTemplate(familyPlanTemplate);
46
+ const mail = input.mail ?? new GatewaySceneMailContext(db, clock);
47
+ const providers = [mail, new SceneUserNotesProvider(db, clock)];
48
+ const authorize = (activation) => {
49
+ if (activation.ownerId !== input.principal.ownerId || activation.workspaceId !== input.principal.workspaceId) return {
50
+ accountIds: [],
51
+ contextProviders: [],
52
+ effectHandlers: []
53
+ };
54
+ const accountIds = mail.authorizedAccounts(activation);
55
+ return {
56
+ accountIds,
57
+ contextProviders: [...activation.scope.kind === "personal" ? ["user_notes"] : [], ...accountIds.length ? ["mail"] : []],
58
+ effectHandlers: []
59
+ };
60
+ };
61
+ const grant = async (activation) => authorize(activation);
62
+ const executor = input.executor ?? new SceneAgentExecutor(() => resolveModel(getDefaultModelSync(input.config())));
63
+ this.http = {
64
+ repository,
65
+ mail,
66
+ mailDiscovery: mail instanceof GatewaySceneMailContext ? mail : void 0,
67
+ application: new SceneApplicationService(repository, providers, grant, clock, () => {
68
+ if (input.executor) return [];
69
+ try {
70
+ return isProviderConfiguredSync(resolveModel(getDefaultModelSync(input.config())).provider) ? [] : ["model_credentials"];
71
+ } catch {
72
+ return ["model_configuration"];
73
+ }
74
+ }),
75
+ inbox: new SceneInboxService(db, clock),
76
+ browser: new BrowserSubscriptionService(db, clock),
77
+ preferences: new ScenePreferenceService(db),
78
+ metrics: new SceneMetrics(db, clock)
79
+ };
80
+ this.runtime = new SceneRuntime(repository, new SceneExecutionService(repository, providers, executor, grant, clock), new SceneMailObservationService(repository, mail, grant, clock, 6e4), clock, input.intervalMs ?? 5e3);
81
+ this.notifications = new SceneResultNotifications(db, authorize, (event) => input.publish("notification.created", event), clock);
82
+ this.browserDispatcher = createSceneBrowserDispatcher(db, authorize, clock);
83
+ this.intervalMs = input.intervalMs ?? 5e3;
84
+ }
85
+ intervalMs;
86
+ start() {
87
+ if (this.stopped) throw new Error("Create a new scene host after shutdown");
88
+ if (this.timer) return;
89
+ assertSceneStorageReady(this.db);
90
+ this.runtime.start();
91
+ const poll = () => {
92
+ try {
93
+ if (this.clock() >= this.nextMaintenanceAt) {
94
+ maintainSceneStorage(this.db, this.clock());
95
+ this.nextMaintenanceAt = this.clock() + 36e5;
96
+ }
97
+ this.notifications.drain();
98
+ this.browserDispatcher.drainOne().catch((err) => log.error({ err }, "Scene browser reminder failed"));
99
+ } catch (err) {
100
+ log.error({ err }, "Scene result publication failed");
101
+ }
102
+ };
103
+ this.timer = setInterval(poll, this.intervalMs);
104
+ this.timer.unref();
105
+ poll();
106
+ }
107
+ tick() {
108
+ if (this.stopped) return Promise.reject(/* @__PURE__ */ new Error("Scene host stopped"));
109
+ if (this.active) return this.active;
110
+ const work = this.runtime.tick().then(() => {
111
+ if (!this.stopped) this.notifications.drain();
112
+ });
113
+ this.active = work.finally(() => {
114
+ this.active = void 0;
115
+ });
116
+ return this.active;
117
+ }
118
+ /** Must finish before the Gateway closes SQLite or its realtime broker. */
119
+ async stop() {
120
+ this.stopped = true;
121
+ if (this.timer) clearInterval(this.timer);
122
+ this.timer = void 0;
123
+ await this.runtime.stop();
124
+ await this.browserDispatcher.stop();
125
+ await this.active?.catch(() => void 0);
126
+ }
127
+ };
128
+ //#endregion
129
+ export { GatewaySceneHost };
@@ -0,0 +1,32 @@
1
+ import type { DatabaseSync } from 'node:sqlite';
2
+ import { ComposioSessionsAdapter } from '../../connectors/composio-sessions.js';
3
+ import { type SceneActivation, type ScenePrincipal } from '../../scenes/contracts.js';
4
+ import type { SceneContextProvider, SceneEvidence } from '../../scenes/execution.js';
5
+ import { SceneMailContextProvider } from '../../scenes/mailContext.js';
6
+ /** Reads only the delegated thread; never starts mailbox learning or persists raw mail. */
7
+ export declare class GatewaySceneMailContext extends SceneMailContextProvider {
8
+ private readonly connectionDb;
9
+ private readonly now;
10
+ private readonly adapter;
11
+ constructor(connectionDb: DatabaseSync, now?: () => number, adapter?: Pick<ComposioSessionsAdapter, 'executeWithPolicy'>);
12
+ private recordRequest;
13
+ listAccounts(principal: ScenePrincipal): Array<{
14
+ id: string;
15
+ label: string;
16
+ }>;
17
+ authorizedAccounts(activation: SceneActivation): string[];
18
+ listSources(principal: ScenePrincipal, limit?: number, afterId?: string): {
19
+ id: string;
20
+ accountId: string;
21
+ subject: string;
22
+ sender: string;
23
+ }[];
24
+ searchSources(principal: ScenePrincipal, value: unknown, signal: AbortSignal): Promise<{
25
+ id: string;
26
+ accountId: string;
27
+ subject: string;
28
+ sender: string;
29
+ }[]>;
30
+ private source;
31
+ read(input: Parameters<SceneContextProvider['read']>[0]): Promise<SceneEvidence[]>;
32
+ }