@xopcai/xopc 0.0.391 → 0.0.393

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 (633) hide show
  1. package/dist/browser-ext/dist/sidepanel.js +1 -1
  2. package/dist/browser-ext/manifest.json +1 -1
  3. package/dist/extensions/telegram/xopc.extension.json +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CzS0TUv9.js → agent-avatar-dicebear-1AF2KGju.js} +1 -1
  5. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CPJr7NRR.js +1 -0
  6. package/dist/gateway/static/root/assets/agent-plugin-dialog-cjJXJj_3.js +1 -0
  7. package/dist/gateway/static/root/assets/agents-DW3TlnIg.js +77 -0
  8. package/dist/gateway/static/root/assets/{agents-admin-api-Bb3Kvz3X.js → agents-admin-api-B5aykqg_.js} +1 -1
  9. package/dist/gateway/static/root/assets/app-link-BV_eGr7l.js +1 -0
  10. package/dist/gateway/static/root/assets/app-management-settings-panel-B_MFhXXU.js +1 -0
  11. package/dist/gateway/static/root/assets/appearance-settings-TYGidVnd.js +1 -0
  12. package/dist/gateway/static/root/assets/apps-page-DOkyvOF0.js +1 -0
  13. package/dist/gateway/static/root/assets/{archive-plugin-DFnHPNie.js → archive-plugin-BrFfEp0u.js} +1 -1
  14. package/dist/gateway/static/root/assets/{automations-page-CnBLPVNh.js → automations-page-B7OofUPF.js} +1 -1
  15. package/dist/gateway/static/root/assets/automations-workspace-DIod-bfm.js +6 -0
  16. package/dist/gateway/static/root/assets/{binary-plugins-BQC0Tzoi.js → binary-plugins-BfAWnYG8.js} +1 -1
  17. package/dist/gateway/static/root/assets/{block-editor-DSh5019z.js → block-editor-_Y-QwZ-3.js} +5 -5
  18. package/dist/gateway/static/root/assets/browser-automation-inputs-DH9QHI9m.js +1 -0
  19. package/dist/gateway/static/root/assets/browser-automations-page-B_SnD9B0.js +3 -0
  20. package/dist/gateway/static/root/assets/browser-settings-page-BPlqYpMM.js +3 -0
  21. package/dist/gateway/static/root/assets/capabilities-page-BtzZvMIK.js +2 -0
  22. package/dist/gateway/static/root/assets/capabilities-pt2M56-E.js +1 -0
  23. package/dist/gateway/static/root/assets/capabilities-settings-panel-WzoG3oBb.js +8 -0
  24. package/dist/gateway/static/root/assets/capability-header-actions-CFVx3iaZ.js +1 -0
  25. package/dist/gateway/static/root/assets/channels-BXA55GY2.js +1 -0
  26. package/dist/gateway/static/root/assets/chat-terminal-dock-D3GuiG3N.js +36 -0
  27. package/dist/gateway/static/root/assets/{chunk-KS7C4IRE--EKdQGRF.js → chunk-KS7C4IRE-B2HK1psj.js} +2 -2
  28. package/dist/gateway/static/root/assets/computer-settings-page-CIbHDlp8.js +1 -0
  29. package/dist/gateway/static/root/assets/connector-service-page-CDyCHkpK.js +1 -0
  30. package/dist/gateway/static/root/assets/connectors-page-DA2b6cJu.js +1 -0
  31. package/dist/gateway/static/root/assets/date-picker-C424c_g9.js +1 -0
  32. package/dist/gateway/static/root/assets/dependency-picker-BVJh9sYc.js +1 -0
  33. package/dist/gateway/static/root/assets/desktop-pet-Q52A8vjp.js +1 -0
  34. package/dist/gateway/static/root/assets/desktop-pet-settings-CZr1CXxu.js +1 -0
  35. package/dist/gateway/static/root/assets/desktop-pet-sprite-Bd-aOI7N.js +30 -0
  36. package/dist/gateway/static/root/assets/desktop-pet-sprite-BuB0g8zv.css +1 -0
  37. package/dist/gateway/static/root/assets/device-pairing-wizard-D_WWTsze.js +1 -0
  38. package/dist/gateway/static/root/assets/directory-picker-path-field-C6cUgrvg.js +1 -0
  39. package/dist/gateway/static/root/assets/echarts-runtime-tcHc9TOS.js +18 -0
  40. package/dist/gateway/static/root/assets/extension-debug-page-DyyfC4gA.js +1 -0
  41. package/dist/gateway/static/root/assets/extension-page-Dho9o3ZZ.js +1 -0
  42. package/dist/gateway/static/root/assets/extension-settings-page-CdnIGyCH.js +1 -0
  43. package/dist/gateway/static/root/assets/{gateway-config-swr-Dv_A5FMu.js → gateway-config-swr-BEePO3Wl.js} +1 -1
  44. package/dist/gateway/static/root/assets/{gateway-realtime-DghCGfY_.js → gateway-realtime-Dng_VOvI.js} +1 -1
  45. package/dist/gateway/static/root/assets/gateway-realtime-store-DtlBf7oH.js +1 -0
  46. package/dist/gateway/static/root/assets/gateway-settings-D0KSQRNZ.js +1 -0
  47. package/dist/gateway/static/root/assets/{gateway-startup-retry-CkTVSESs.js → gateway-startup-retry-CDCiy7Cd.js} +1 -1
  48. package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-DV2wNqBn.js → highlighted-body-KQOG7T2V-BNpj_mIM.js} +1 -1
  49. package/dist/gateway/static/root/assets/home-page-CH_A0W29.js +2 -0
  50. package/dist/gateway/static/root/assets/image-generation-api-DwkO2y46.js +1 -0
  51. package/dist/gateway/static/root/assets/imports-page-BrYvomnU.js +1 -0
  52. package/dist/gateway/static/root/assets/index-CKdOZoVu.js +260 -0
  53. package/dist/gateway/static/root/assets/index-Rxjt-jc3.css +1 -0
  54. package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-BveDYfYk.js +1 -0
  55. package/dist/gateway/static/root/assets/local-app-workbench-page-CcIi1BhT.js +1 -0
  56. package/dist/gateway/static/root/assets/local-apps-page-B1a69mlV.js +1 -0
  57. package/dist/gateway/static/root/assets/local-session-drafts-CYEDUPH7.js +1 -0
  58. package/dist/gateway/static/root/assets/{locale-store-BpK9AiDq.js → locale-store-CE7L6MlS.js} +1 -1
  59. package/dist/gateway/static/root/assets/logs-page-Us1jv3C4.js +2 -0
  60. package/dist/gateway/static/root/assets/management-settings-C9RAM7-s.js +1 -0
  61. package/dist/gateway/static/root/assets/markdown-view-PrKvVpRh.js +324 -0
  62. package/dist/gateway/static/root/assets/{media-plugins-oSChWbcP.js → media-plugins-CR1fp6IL.js} +1 -1
  63. package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-DQdcaMiu.js +1 -0
  64. package/dist/gateway/static/root/assets/messages-CaeL_miw.js +3 -0
  65. package/dist/gateway/static/root/assets/note-detail-panel-Q4yRx9iZ.js +5 -0
  66. package/dist/gateway/static/root/assets/notes-page-C9qu16IN.js +8 -0
  67. package/dist/gateway/static/root/assets/page-context-capture-button-Cn_WK68Y.js +1 -0
  68. package/dist/gateway/static/root/assets/personal-page-DrP6hEcg.js +1 -0
  69. package/dist/gateway/static/root/assets/preview-open-alternatives-3NbiWGRG.js +1 -0
  70. package/dist/gateway/static/root/assets/product-delivery-DwmnNJvk.js +1 -0
  71. package/dist/gateway/static/root/assets/product-open-page-KKE5-V8k.js +1 -0
  72. package/dist/gateway/static/root/assets/product-preview-content-BM0oqNxi.js +1 -0
  73. package/dist/gateway/static/root/assets/project-detail-page-CPZrwf8n.js +1 -0
  74. package/dist/gateway/static/root/assets/projects-page-Besfx_07.js +1 -0
  75. package/dist/gateway/static/root/assets/{registry-api-Dsa2LvRt.js → registry-api-BO2Ck3aA.js} +1 -1
  76. package/dist/gateway/static/root/assets/remote-access-hub-CTDghL5L.js +1 -0
  77. package/dist/gateway/static/root/assets/{runtime-tools-api-C2Uw89eY.js → runtime-tools-api-B1sb8nlw.js} +1 -1
  78. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-W0X_Fy7b.js +1 -0
  79. package/dist/gateway/static/root/assets/schema-form-DNM2Zdyr.js +1 -0
  80. package/dist/gateway/static/root/assets/{session-api-ga-SUOq_.js → session-api-CaAUJvu1.js} +1 -1
  81. package/dist/gateway/static/root/assets/session-manager-DoFTlgNz.js +16 -0
  82. package/dist/gateway/static/root/assets/sessions-page-Dxtablvd.js +1 -0
  83. package/dist/gateway/static/root/assets/settings-advanced-gate-C7zklouD.js +1 -0
  84. package/dist/gateway/static/root/assets/settings-form-section-DCSHPFAN.js +1 -0
  85. package/dist/gateway/static/root/assets/{settings-page-DPCgrICd.js → settings-page-B18UbbaJ.js} +1 -1
  86. package/dist/gateway/static/root/assets/setup-status-panel-JoSfluza.js +1 -0
  87. package/dist/gateway/static/root/assets/share-preview-page-BLnS3hoH.js +2 -0
  88. package/dist/gateway/static/root/assets/shares-settings-DcIuPJK3.js +1 -0
  89. package/dist/gateway/static/root/assets/skill-api-CcYGkRPL.js +1 -0
  90. package/dist/gateway/static/root/assets/skill-reload-api-PnUZjoPK.js +1 -0
  91. package/dist/gateway/static/root/assets/skills-page-D3JAw62U.js +2 -0
  92. package/dist/gateway/static/root/assets/style-BQqU-1pP.js +7 -0
  93. package/dist/gateway/static/root/assets/system-settings-panel-C974myUM.js +1 -0
  94. package/dist/gateway/static/root/assets/tab-completion-input-CxtEp0aP.js +1 -0
  95. package/dist/gateway/static/root/assets/task-detail-page-CiljFekC.js +2 -0
  96. package/dist/gateway/static/root/assets/{task-expandable-content-DAZGz5YC.js → task-expandable-content-DTEVoNrM.js} +1 -1
  97. package/dist/gateway/static/root/assets/tracing-settings-page-DEE75MUn.js +1 -0
  98. package/dist/gateway/static/root/assets/tunnel-api-DWyI3uA3.js +1 -0
  99. package/dist/gateway/static/root/assets/usage-page-DJYvbxk7.js +1 -0
  100. package/dist/gateway/static/root/assets/use-autosave-CY0YuljR.js +1 -0
  101. package/dist/gateway/static/root/assets/user-model-page-eHZJD6Fw.js +2 -0
  102. package/dist/gateway/static/root/assets/voice-api-key-field-BNG4ixJE.js +1 -0
  103. package/dist/gateway/static/root/assets/{voice-config-api-Dl39b27p.js → voice-config-api-D0Wscn9W.js} +1 -1
  104. package/dist/gateway/static/root/assets/work-discovery-overlay-CohIoAre.js +1 -0
  105. package/dist/gateway/static/root/assets/workflow-run-setup-panel-BXI8eyYh.js +3 -0
  106. package/dist/gateway/static/root/assets/workflows-page-CVti0u-l.js +6 -0
  107. package/dist/gateway/static/root/assets/xopc-cloud-account-card-C_COnY_B.js +1 -0
  108. package/dist/gateway/static/root/index.html +22 -72
  109. package/dist/gateway/static/root/notification-sw.js +0 -15
  110. package/dist/package.js +1 -1
  111. package/dist/packages/computer-control-contract/src/index.js +8 -0
  112. package/dist/packages/gateway-contract/src/app-context.js +0 -1
  113. package/dist/packages/gateway-contract/src/capabilities.js +2 -249
  114. package/dist/packages/gateway-contract/src/home.js +0 -5
  115. package/dist/packages/gateway-contract/src/index.js +0 -4
  116. package/dist/packages/gateway-contract/src/notifications.js +0 -11
  117. package/dist/packages/gateway-contract/src/product-delivery.js +0 -2
  118. package/dist/src/agent/agent-instance-gateway.d.ts +2 -0
  119. package/dist/src/agent/agent-manager.d.ts +1 -3
  120. package/dist/src/agent/agent-manager.js +8 -18
  121. package/dist/src/agent/child-agent-factory.d.ts +2 -1
  122. package/dist/src/agent/child-agent-factory.js +2 -1
  123. package/dist/src/agent/coding/projectEvidence.d.ts +9 -0
  124. package/dist/src/agent/coding/projectEvidence.js +177 -0
  125. package/dist/src/agent/coding/repository-instructions.d.ts +8 -1
  126. package/dist/src/agent/coding/repository-instructions.js +9 -4
  127. package/dist/src/agent/coding/run-verification.d.ts +17 -2
  128. package/dist/src/agent/coding/run-verification.js +82 -12
  129. package/dist/src/agent/coding/workspace-revision.js +1 -1
  130. package/dist/src/agent/embedded/codemode-extension.js +1 -1
  131. package/dist/src/agent/embedded/execution-context.d.ts +1 -0
  132. package/dist/src/agent/embedded/execution-context.js +4 -1
  133. package/dist/src/agent/embedded/external-tool-discovery.js +1 -1
  134. package/dist/src/agent/embedded/run-for-session.js +1 -0
  135. package/dist/src/agent/embedded/run-turn.js +41 -5
  136. package/dist/src/agent/embedded/session-runner.js +1 -1
  137. package/dist/src/agent/embedded/session-tool-result-guard.js +5 -0
  138. package/dist/src/agent/embedded/types.d.ts +2 -0
  139. package/dist/src/agent/embedded/xopc-tools-bridge.js +2 -1
  140. package/dist/src/agent/external-tools/extension-provider.js +1 -1
  141. package/dist/src/agent/external-tools/gateway-tools.js +1 -1
  142. package/dist/src/agent/external-tools/memory-provider.js +1 -1
  143. package/dist/src/agent/independent-execution.d.ts +2 -0
  144. package/dist/src/agent/independent-execution.js +12 -0
  145. package/dist/src/agent/mcp/connection-drafts.js +15 -10
  146. package/dist/src/agent/memory/compaction.js +1 -1
  147. package/dist/src/agent/orchestration/delegation-scope.d.ts +1 -0
  148. package/dist/src/agent/orchestration/delegation-scope.js +4 -1
  149. package/dist/src/agent/orchestration/loop-guard.js +6 -2
  150. package/dist/src/agent/prompt/sections/agent-identity.js +3 -2
  151. package/dist/src/agent/prompt/sections/behavior.d.ts +3 -2
  152. package/dist/src/agent/prompt/sections/behavior.js +35 -25
  153. package/dist/src/agent/prompt/sections/memory-skills.d.ts +1 -1
  154. package/dist/src/agent/prompt/sections/memory-skills.js +10 -11
  155. package/dist/src/agent/prompt/sections/messaging-runtime.d.ts +3 -2
  156. package/dist/src/agent/prompt/sections/messaging-runtime.js +21 -24
  157. package/dist/src/agent/prompt/sections/response-language.js +7 -5
  158. package/dist/src/agent/prompt/sections/tooling.js +11 -10
  159. package/dist/src/agent/prompt/service-prompt-builder.js +3 -1
  160. package/dist/src/agent/prompt/system-prompt-params.d.ts +2 -1
  161. package/dist/src/agent/prompt/system-prompt-params.js +2 -0
  162. package/dist/src/agent/prompt/system-prompt.d.ts +2 -1
  163. package/dist/src/agent/prompt/system-prompt.js +21 -18
  164. package/dist/src/agent/prompt/types.d.ts +2 -0
  165. package/dist/src/agent/service.js +1 -1
  166. package/dist/src/agent/service.types.d.ts +0 -2
  167. package/dist/src/agent/skills/format-skills-prompt.js +5 -2
  168. package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
  169. package/dist/src/agent/tool-manuals/computer.js +9 -1
  170. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  171. package/dist/src/agent/tool-manuals/xopc-use.js +6 -48
  172. package/dist/src/agent/tools/computer-use-tool.js +17 -3
  173. package/dist/src/agent/tools/dataBatch.d.ts +1 -0
  174. package/dist/src/agent/tools/dataBatch.js +4 -1
  175. package/dist/src/agent/tools/delegate-tool.d.ts +1 -0
  176. package/dist/src/agent/tools/delegate-tool.js +1 -0
  177. package/dist/src/agent/tools/error-tracker.js +4 -2
  178. package/dist/src/agent/tools/exec-command.js +4 -3
  179. package/dist/src/agent/tools/factory.d.ts +1 -2
  180. package/dist/src/agent/tools/factory.js +20 -22
  181. package/dist/src/agent/tools/{delegation-parent-policy.d.ts → noninteractive-tool-policy.d.ts} +1 -1
  182. package/dist/src/agent/tools/{delegation-parent-policy.js → noninteractive-tool-policy.js} +4 -4
  183. package/dist/src/agent/tools/personal-task-tool.js +1 -1
  184. package/dist/src/agent/tools/publish-artifacts.js +1 -1
  185. package/dist/src/agent/tools/search/cache.d.ts +3 -1
  186. package/dist/src/agent/tools/search/cache.js +4 -1
  187. package/dist/src/agent/tools/search/providers/deepseek-protocol.d.ts +9 -0
  188. package/dist/src/agent/tools/search/providers/deepseek-protocol.js +84 -0
  189. package/dist/src/agent/tools/search/providers/deepseek.d.ts +9 -0
  190. package/dist/src/agent/tools/search/providers/deepseek.js +55 -0
  191. package/dist/src/agent/tools/search/providers/xopc-cloud.d.ts +2 -1
  192. package/dist/src/agent/tools/search/providers/xopc-cloud.js +36 -1
  193. package/dist/src/agent/tools/search/registry.d.ts +1 -0
  194. package/dist/src/agent/tools/search/registry.js +32 -6
  195. package/dist/src/agent/tools/search/request-gate.d.ts +13 -0
  196. package/dist/src/agent/tools/search/request-gate.js +41 -0
  197. package/dist/src/agent/tools/search/resolve-config.js +1 -1
  198. package/dist/src/agent/tools/search/search-info.d.ts +8 -0
  199. package/dist/src/agent/tools/search/search-info.js +34 -0
  200. package/dist/src/agent/tools/search/types.d.ts +19 -1
  201. package/dist/src/agent/tools/toolExposure.d.ts +3 -0
  202. package/dist/src/agent/tools/toolExposure.js +25 -0
  203. package/dist/src/agent/tools/web.js +8 -1
  204. package/dist/src/agent/tools/xopc-use-tool.d.ts +2 -4
  205. package/dist/src/agent/tools/xopc-use-tool.js +11 -135
  206. package/dist/src/agent/workflow/builtins/index.js +98 -0
  207. package/dist/src/agent/workflow/subagent-runner.d.ts +1 -0
  208. package/dist/src/agent/workflow/subagent-runner.js +3 -3
  209. package/dist/src/agent/workflow/types.d.ts +3 -2
  210. package/dist/src/agent/workflow/workflow-child-tools.js +13 -8
  211. package/dist/src/agent-catalog/migrations/legacy-config-cutover.js +1 -2
  212. package/dist/src/automations/domain/validation.d.ts +8 -8
  213. package/dist/src/automations/draft/automation-draft-validator.d.ts +1 -1
  214. package/dist/src/automations/events/event-catalog.js +0 -18
  215. package/dist/src/backup/archive.js +1 -2
  216. package/dist/src/capabilities/runtime/app-context.js +2 -6
  217. package/dist/src/capabilities/runtime/product.d.ts +1 -3
  218. package/dist/src/capabilities/runtime/product.js +0 -6
  219. package/dist/src/cli/command-manifest.js +1 -1
  220. package/dist/src/cli/commands/search.d.ts +2 -2
  221. package/dist/src/cli/commands/search.js +8 -6
  222. package/dist/src/computer/config.d.ts +1 -0
  223. package/dist/src/computer/config.js +1 -0
  224. package/dist/src/computer/diagnostics.d.ts +223 -0
  225. package/dist/src/computer/diagnostics.js +360 -0
  226. package/dist/src/computer/errors.d.ts +1 -1
  227. package/dist/src/computer/errors.js +8 -1
  228. package/dist/src/computer/evaluation-comparison.d.ts +125 -0
  229. package/dist/src/computer/evaluation-comparison.js +65 -0
  230. package/dist/src/computer/evaluation-harness.d.ts +2 -1
  231. package/dist/src/computer/evaluation-harness.js +59 -8
  232. package/dist/src/computer/evaluation.d.ts +102 -7
  233. package/dist/src/computer/evaluation.js +64 -15
  234. package/dist/src/computer/flows.d.ts +62 -0
  235. package/dist/src/computer/flows.js +158 -0
  236. package/dist/src/computer/model-adapter.d.ts +11 -0
  237. package/dist/src/computer/model-adapter.js +156 -11
  238. package/dist/src/computer/model-policy.d.ts +1 -1
  239. package/dist/src/computer/model-policy.js +13 -6
  240. package/dist/src/computer/release-gate.d.ts +11 -0
  241. package/dist/src/computer/runtime.d.ts +27 -2
  242. package/dist/src/computer/runtime.js +261 -44
  243. package/dist/src/computer/semantic-actions.d.ts +3 -0
  244. package/dist/src/computer/semantic-actions.js +29 -0
  245. package/dist/src/config/index.js +2 -2
  246. package/dist/src/config/models-json.d.ts +14 -8
  247. package/dist/src/config/models-json.js +2 -0
  248. package/dist/src/config/outbound-proxy.d.ts +11 -0
  249. package/dist/src/config/outbound-proxy.js +30 -0
  250. package/dist/src/config/rules.js +5 -0
  251. package/dist/src/config/schema.d.ts +25 -10
  252. package/dist/src/config/schema.js +21 -10
  253. package/dist/src/connectors/cli/authorization.d.ts +1 -1
  254. package/dist/src/connectors/cli/store.d.ts +1 -1
  255. package/dist/src/endpoint-tools/invocation-service.js +5 -0
  256. package/dist/src/gateway/config-tools-web.js +15 -4
  257. package/dist/src/gateway/gateway-workflow-host.types.d.ts +3 -0
  258. package/dist/src/gateway/hono/app.d.ts +0 -2
  259. package/dist/src/gateway/hono/app.js +1 -2
  260. package/dist/src/gateway/hono/lib/config-payload.d.ts +6 -3
  261. package/dist/src/gateway/hono/lib/config-payload.js +5 -1
  262. package/dist/src/gateway/hono/routes/capability-operations.js +0 -7
  263. package/dist/src/gateway/hono/routes/config-patch/gateway.js +7 -0
  264. package/dist/src/gateway/hono/routes/deps.d.ts +0 -2
  265. package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -8
  266. package/dist/src/gateway/hono/routes/models.js +5 -2
  267. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +2 -2
  268. package/dist/src/gateway/service/config-coordinator.d.ts +8 -5
  269. package/dist/src/gateway/service/session-input-coordinator.js +1 -1
  270. package/dist/src/gateway/service.d.ts +0 -3
  271. package/dist/src/gateway/service.js +10 -44
  272. package/dist/src/home-intelligence/generator.js +1 -1
  273. package/dist/src/home-intelligence/policy.js +0 -5
  274. package/dist/src/home-intelligence/repository.d.ts +1 -1
  275. package/dist/src/infra/domain-outbox-dispatcher.js +1 -1
  276. package/dist/src/infra/http-proxy-env.d.ts +3 -0
  277. package/dist/src/infra/http-proxy-env.js +22 -2
  278. package/dist/src/notifications/service.d.ts +2 -18
  279. package/dist/src/notifications/service.js +8 -39
  280. package/dist/src/notifications/store.d.ts +0 -1
  281. package/dist/src/notifications/store.js +1 -4
  282. package/dist/src/personal-agent/communication.d.ts +2 -1
  283. package/dist/src/personal-agent/communication.js +11 -2
  284. package/dist/src/personal-agent/persona.d.ts +2 -1
  285. package/dist/src/personal-agent/persona.js +3 -2
  286. package/dist/src/personal-agent/prompts.d.ts +2 -0
  287. package/dist/src/personal-agent/prompts.js +69 -7
  288. package/dist/src/personal-agent/reply-composer.js +2 -2
  289. package/dist/src/personal-agent/reply-style.d.ts +4 -2
  290. package/dist/src/personal-agent/reply-style.js +19 -3
  291. package/dist/src/personal-agent/request-service.js +14 -9
  292. package/dist/src/pets/loopi-artwork.d.ts +2 -0
  293. package/dist/src/pets/loopi-artwork.js +36 -0
  294. package/dist/src/pets/pointer.d.ts +6 -0
  295. package/dist/src/pets/pointer.js +16 -0
  296. package/dist/src/platform/contracts.d.ts +3 -3
  297. package/dist/src/project-trust/trust-store.d.ts +5 -0
  298. package/dist/src/project-trust/trust-store.js +7 -1
  299. package/dist/src/providers/index.js +3 -3
  300. package/dist/src/providers/model-registry.js +2 -0
  301. package/dist/src/providers/model-supplements.d.ts +0 -2
  302. package/dist/src/providers/model-supplements.js +2 -18
  303. package/dist/src/providers/xopc-cloud-credit-budget.d.ts +1 -0
  304. package/dist/src/providers/xopc-cloud-credit-budget.js +4 -1
  305. package/dist/src/realtime/compact-run-event.js +17 -2
  306. package/dist/src/realtime/runtime.js +1 -1
  307. package/dist/src/routing/agent-session-key.js +1 -1
  308. package/dist/src/routing/resolve-route.js +1 -1
  309. package/dist/src/routing/session-key.js +1 -1
  310. package/dist/src/session/compact-history.js +16 -6
  311. package/dist/src/storage/sqlite/connection.js +2 -2
  312. package/dist/src/storage/sqlite/conversation-repository.js +1 -1
  313. package/dist/src/storage/sqlite/migrations/conversation-backup.d.ts +0 -2
  314. package/dist/src/storage/sqlite/migrations/conversation-backup.js +8 -18
  315. package/dist/src/storage/sqlite/migrations/conversation-windows-owners.js +28 -33
  316. package/dist/src/storage/sqlite/migrations/errors.js +1 -1
  317. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  318. package/dist/src/storage/sqlite/migrations/runner.js +5 -40
  319. package/dist/src/storage/sqlite/migrations/types.d.ts +0 -2
  320. package/dist/src/storage/sqlite/schema.d.ts +1 -3
  321. package/dist/src/storage/sqlite/schema.js +4 -8
  322. package/dist/src/storage/sqlite/schema.sql +1356 -1282
  323. package/dist/src/tasks/capabilities/management.d.ts +2 -2
  324. package/dist/src/tasks/capabilities/relations.d.ts +4 -4
  325. package/dist/src/tasks/capabilities/write.d.ts +4 -4
  326. package/dist/src/tasks/task-allocation-service.js +51 -40
  327. package/dist/src/tasks/task-application-service.js +5 -1
  328. package/dist/src/tasks/task-contract-planner.js +21 -6
  329. package/dist/src/tasks/task-language.d.ts +2 -0
  330. package/dist/src/tasks/task-language.js +13 -2
  331. package/dist/src/tasks/task-research-result.d.ts +2 -2
  332. package/dist/src/tasks/task-run-coordinator.js +5 -1
  333. package/dist/src/tasks/task-run-dispatcher.js +2 -1
  334. package/dist/src/tui/tui.js +1 -1
  335. package/dist/src/usage/scenario-registry.js +0 -5
  336. package/dist/src/usage/types.d.ts +1 -1
  337. package/dist/src/work-discovery/probe.js +1 -1
  338. package/dist/src/workflows/domain/definition.d.ts +1 -0
  339. package/dist/src/workflows/service/workflow-run-service.js +2 -1
  340. package/package.json +10 -6
  341. package/skills/THIRD_PARTY_NOTICES.md +0 -6
  342. package/skills/creative/chat-charts/SKILL.md +26 -0
  343. package/skills/creative/chat-charts/references/bar-example.json +10 -0
  344. package/skills/creative/chat-charts/references/chart-spec.md +25 -0
  345. package/skills/creative/chat-charts/references/line-example.json +13 -0
  346. package/dist/gateway/static/root/assets/activity-YogQEteU.js +0 -1
  347. package/dist/gateway/static/root/assets/activity-store-DWQCDi8M.js +0 -1
  348. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DE910MyU.js +0 -1
  349. package/dist/gateway/static/root/assets/agent-plugin-dialog-0SlvsYl7.js +0 -1
  350. package/dist/gateway/static/root/assets/agents-BZh28Qn1.js +0 -77
  351. package/dist/gateway/static/root/assets/app-chrome-BeB4KgOf.js +0 -1
  352. package/dist/gateway/static/root/assets/app-link-4gpFbdsr.js +0 -1
  353. package/dist/gateway/static/root/assets/app-management-settings-panel-9A7JN5V5.js +0 -1
  354. package/dist/gateway/static/root/assets/appearance-settings-BPdLEo6L.js +0 -1
  355. package/dist/gateway/static/root/assets/apps-page-Cz7LypV9.js +0 -1
  356. package/dist/gateway/static/root/assets/automations-workspace-BBjS-sk-.js +0 -6
  357. package/dist/gateway/static/root/assets/browser-automation-inputs-C5tIrIRL.js +0 -1
  358. package/dist/gateway/static/root/assets/browser-automations-page-CFCMNfJN.js +0 -3
  359. package/dist/gateway/static/root/assets/browser-settings-page-C__tyPwu.js +0 -3
  360. package/dist/gateway/static/root/assets/button-aIC072nz.js +0 -1
  361. package/dist/gateway/static/root/assets/capabilities-D6RJG4QY.js +0 -1
  362. package/dist/gateway/static/root/assets/capabilities-DGEmBQnF.js +0 -1
  363. package/dist/gateway/static/root/assets/capabilities-page-B5AZa7ir.js +0 -2
  364. package/dist/gateway/static/root/assets/capabilities-settings-panel-Dskz2_bh.js +0 -8
  365. package/dist/gateway/static/root/assets/capability-header-actions-xzjWZVbg.js +0 -1
  366. package/dist/gateway/static/root/assets/channels-DRse_dD3.js +0 -1
  367. package/dist/gateway/static/root/assets/chat-terminal-dock-CQF0M4kE.js +0 -36
  368. package/dist/gateway/static/root/assets/chevron-left-DqFhpbvK.js +0 -1
  369. package/dist/gateway/static/root/assets/chevron-right-BweFrslA.js +0 -1
  370. package/dist/gateway/static/root/assets/circle-alert-BEjgurr2.js +0 -1
  371. package/dist/gateway/static/root/assets/circle-dashed-8qMD7gHf.js +0 -1
  372. package/dist/gateway/static/root/assets/circle-dot-BAseJTrF.js +0 -1
  373. package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +0 -1
  374. package/dist/gateway/static/root/assets/computer-settings-page-ZfzCTS0N.js +0 -1
  375. package/dist/gateway/static/root/assets/connector-service-page-CwAeWVLK.js +0 -1
  376. package/dist/gateway/static/root/assets/connectors-page-CanakKaj.js +0 -1
  377. package/dist/gateway/static/root/assets/copy-text-row-C7egVuKr.js +0 -1
  378. package/dist/gateway/static/root/assets/date-formatters-CUZAyDEg.js +0 -1
  379. package/dist/gateway/static/root/assets/date-picker-hmJlEAQZ.js +0 -1
  380. package/dist/gateway/static/root/assets/dependency-picker-Us_Juz6I.js +0 -1
  381. package/dist/gateway/static/root/assets/desktop-pet-CvOTI4uw.js +0 -1
  382. package/dist/gateway/static/root/assets/desktop-pet-settings-DYg-Gb8t.js +0 -1
  383. package/dist/gateway/static/root/assets/desktop-pet-sprite-BP6iMVw1.js +0 -1
  384. package/dist/gateway/static/root/assets/device-pairing-wizard-B1FbZ8C1.js +0 -1
  385. package/dist/gateway/static/root/assets/directory-picker-path-field-DZN9EDvM.js +0 -1
  386. package/dist/gateway/static/root/assets/dist-C3DSFZCi.js +0 -1
  387. package/dist/gateway/static/root/assets/electron-env-Dit0bHgy.js +0 -1
  388. package/dist/gateway/static/root/assets/extension-debug-page-YIibp6Kk.js +0 -1
  389. package/dist/gateway/static/root/assets/extension-page-DkcGyb28.js +0 -1
  390. package/dist/gateway/static/root/assets/extension-provider-B1PQGTtY.js +0 -1
  391. package/dist/gateway/static/root/assets/extension-settings-page-C_rJiSKo.js +0 -1
  392. package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +0 -1
  393. package/dist/gateway/static/root/assets/gateway-realtime-store-CMJVSnvi.js +0 -1
  394. package/dist/gateway/static/root/assets/gateway-settings-CjCWPHNJ.js +0 -1
  395. package/dist/gateway/static/root/assets/globe-DSSGFWFn.js +0 -1
  396. package/dist/gateway/static/root/assets/home-page-fAYsd7kG.js +0 -2
  397. package/dist/gateway/static/root/assets/image-generation-api-B98iXt6A.js +0 -1
  398. package/dist/gateway/static/root/assets/imports-page-DoBCBN8G.js +0 -1
  399. package/dist/gateway/static/root/assets/index-DFgXwLsv.js +0 -260
  400. package/dist/gateway/static/root/assets/index-a6ZvhclR.css +0 -1
  401. package/dist/gateway/static/root/assets/index.module-Cd9ENXfk.js +0 -1
  402. package/dist/gateway/static/root/assets/interaction-BdhHBbYa.js +0 -1
  403. package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +0 -1
  404. package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-DXVu4lqV.js +0 -1
  405. package/dist/gateway/static/root/assets/loader-circle-CifKLtgG.js +0 -1
  406. package/dist/gateway/static/root/assets/local-app-workbench-page-B3fz6uRi.js +0 -1
  407. package/dist/gateway/static/root/assets/local-apps-page-BC6xhmUh.js +0 -1
  408. package/dist/gateway/static/root/assets/local-session-drafts-DFnZQu9A.js +0 -1
  409. package/dist/gateway/static/root/assets/logs-page-CSqSFDRU.js +0 -2
  410. package/dist/gateway/static/root/assets/loopi-C09I2mNj.css +0 -1
  411. package/dist/gateway/static/root/assets/loopi-Djb8XU3l.js +0 -1
  412. package/dist/gateway/static/root/assets/management-settings-gq5L0THs.js +0 -1
  413. package/dist/gateway/static/root/assets/markdown-view-IsYTotu6.js +0 -324
  414. package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-C_QKwqDN.js +0 -1
  415. package/dist/gateway/static/root/assets/message-square-plus-XP0tGdlV.js +0 -1
  416. package/dist/gateway/static/root/assets/messages-CKTo_sIF.js +0 -3
  417. package/dist/gateway/static/root/assets/mic-CuUb7zc-.js +0 -1
  418. package/dist/gateway/static/root/assets/minimize-2-DtOGrlpo.js +0 -1
  419. package/dist/gateway/static/root/assets/models-hub-cache-TjpL7hZ5.js +0 -1
  420. package/dist/gateway/static/root/assets/note-detail-panel-CdpNXre-.js +0 -5
  421. package/dist/gateway/static/root/assets/notes-api-CBb944yw.js +0 -1
  422. package/dist/gateway/static/root/assets/notes-page-EGvGw8MN.js +0 -8
  423. package/dist/gateway/static/root/assets/page-context-capture-button-CoWb7BYP.js +0 -1
  424. package/dist/gateway/static/root/assets/page-tabs-HLrKIjXH.js +0 -1
  425. package/dist/gateway/static/root/assets/pencil-DmIY3Oa-.js +0 -1
  426. package/dist/gateway/static/root/assets/personal-page-DYzbNTyN.js +0 -1
  427. package/dist/gateway/static/root/assets/popover-select-DHC7J4lG.js +0 -1
  428. package/dist/gateway/static/root/assets/preview-open-alternatives-BJU2fmPn.js +0 -1
  429. package/dist/gateway/static/root/assets/product-delivery-BAks11S4.js +0 -1
  430. package/dist/gateway/static/root/assets/product-open-page-CTyy7H7-.js +0 -1
  431. package/dist/gateway/static/root/assets/product-preview-content-D4xqTaEy.js +0 -1
  432. package/dist/gateway/static/root/assets/project-detail-page-DIVCw0QQ.js +0 -1
  433. package/dist/gateway/static/root/assets/projects-page-B4L9VnBN.js +0 -1
  434. package/dist/gateway/static/root/assets/remote-access-hub-B8PvgLVz.js +0 -1
  435. package/dist/gateway/static/root/assets/rotate-ccw-JM1TBLpp.js +0 -1
  436. package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +0 -1
  437. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-Bqnp3tyt.js +0 -1
  438. package/dist/gateway/static/root/assets/scenes-page-D50g4GM2.js +0 -2
  439. package/dist/gateway/static/root/assets/schema-form-h_RCNfiO.js +0 -1
  440. package/dist/gateway/static/root/assets/search-DA7gz22f.js +0 -1
  441. package/dist/gateway/static/root/assets/secret-input-BxWHx6J6.js +0 -1
  442. package/dist/gateway/static/root/assets/send-session-input-DypbVTT7.js +0 -1
  443. package/dist/gateway/static/root/assets/session-manager-C_OiKblh.js +0 -16
  444. package/dist/gateway/static/root/assets/sessions-page-BsqDIbIr.js +0 -1
  445. package/dist/gateway/static/root/assets/settings-2-D-csvaET.js +0 -1
  446. package/dist/gateway/static/root/assets/settings-advanced-gate-D3zJAW4p.js +0 -1
  447. package/dist/gateway/static/root/assets/settings-form-draft-Dy10ldo8.js +0 -1
  448. package/dist/gateway/static/root/assets/settings-form-section-num14vSv.js +0 -1
  449. package/dist/gateway/static/root/assets/settings-shell-dialog-layer-BU3UuiJr.js +0 -1
  450. package/dist/gateway/static/root/assets/setup-status-panel-jjSYJpDd.js +0 -1
  451. package/dist/gateway/static/root/assets/share-link-dialog-BGicglAS.js +0 -1
  452. package/dist/gateway/static/root/assets/share-preview-page-BORe9rLB.js +0 -2
  453. package/dist/gateway/static/root/assets/shares-api-Dbx3z6-1.js +0 -1
  454. package/dist/gateway/static/root/assets/shares-settings-C13FgfWk.js +0 -1
  455. package/dist/gateway/static/root/assets/skeleton-BI5TyibZ.js +0 -1
  456. package/dist/gateway/static/root/assets/skill-api-Cq6O1DZK.js +0 -1
  457. package/dist/gateway/static/root/assets/skill-api-utils-C7V4JVXM.js +0 -1
  458. package/dist/gateway/static/root/assets/skill-reload-api-Cq7QDjMA.js +0 -1
  459. package/dist/gateway/static/root/assets/skill-wire-pattern-BPpeIcCi.js +0 -1
  460. package/dist/gateway/static/root/assets/skills-page-BM1ShEjx.js +0 -2
  461. package/dist/gateway/static/root/assets/style-TIDOdKy0.js +0 -7
  462. package/dist/gateway/static/root/assets/system-settings-panel-BNCGFO1e.js +0 -1
  463. package/dist/gateway/static/root/assets/tab-completion-input-D64VNmiA.js +0 -1
  464. package/dist/gateway/static/root/assets/task-detail-page-4VG82wcF.js +0 -2
  465. package/dist/gateway/static/root/assets/theme-store-Db7hDESt.js +0 -1
  466. package/dist/gateway/static/root/assets/tracing-settings-page-C6p2Mu92.js +0 -1
  467. package/dist/gateway/static/root/assets/tunnel-api-Dw15EJp0.js +0 -1
  468. package/dist/gateway/static/root/assets/usage-page-DDrIqgGe.js +0 -1
  469. package/dist/gateway/static/root/assets/use-async-resource-GrnWNwMZ.js +0 -1
  470. package/dist/gateway/static/root/assets/use-autosave-DDjIdW4U.js +0 -1
  471. package/dist/gateway/static/root/assets/use-composer-attachments-DNl7O3Vb.js +0 -2
  472. package/dist/gateway/static/root/assets/use-file-preview-expanded-DMHehhwG.js +0 -2
  473. package/dist/gateway/static/root/assets/user-model-page-CaS9dOIr.js +0 -2
  474. package/dist/gateway/static/root/assets/voice-api-key-field-ByAxHE4P.js +0 -1
  475. package/dist/gateway/static/root/assets/voice-transcribe-api-CVaU83Jc.js +0 -1
  476. package/dist/gateway/static/root/assets/work-discovery-overlay-BvVvPA1T.js +0 -1
  477. package/dist/gateway/static/root/assets/workflow-run-setup-panel-BcFm9QcC.js +0 -3
  478. package/dist/gateway/static/root/assets/workflows-page-DMec_XZB.js +0 -6
  479. package/dist/gateway/static/root/assets/workspace-api-BpfKsrtP.js +0 -2
  480. package/dist/gateway/static/root/assets/xopc-cloud-account-card-CU5lzzE9.js +0 -1
  481. package/dist/packages/gateway-contract/src/project-monitoring.js +0 -36
  482. package/dist/packages/gateway-contract/src/scenes.js +0 -200
  483. package/dist/src/agent/bootstrap/project-agents-context.d.ts +0 -2
  484. package/dist/src/agent/bootstrap/project-agents-context.js +0 -30
  485. package/dist/src/gateway/hono/routes/scenes.d.ts +0 -3
  486. package/dist/src/gateway/hono/routes/scenes.js +0 -271
  487. package/dist/src/gateway/scenes/browserNotifications.d.ts +0 -4
  488. package/dist/src/gateway/scenes/browserNotifications.js +0 -54
  489. package/dist/src/gateway/scenes/host.d.ts +0 -34
  490. package/dist/src/gateway/scenes/host.js +0 -154
  491. package/dist/src/gateway/scenes/mailContext.d.ts +0 -32
  492. package/dist/src/gateway/scenes/mailContext.js +0 -235
  493. package/dist/src/gateway/scenes/slackThreadSource.d.ts +0 -41
  494. package/dist/src/gateway/scenes/slackThreadSource.js +0 -168
  495. package/dist/src/notifications/browser-endpoint.d.ts +0 -2
  496. package/dist/src/notifications/browser-endpoint.js +0 -13
  497. package/dist/src/notifications/browserSubscriptions.d.ts +0 -20
  498. package/dist/src/notifications/browserSubscriptions.js +0 -59
  499. package/dist/src/notifications/browserTransport.d.ts +0 -9
  500. package/dist/src/notifications/browserTransport.js +0 -64
  501. package/dist/src/notifications/dispatch.d.ts +0 -46
  502. package/dist/src/notifications/dispatch.js +0 -109
  503. package/dist/src/notifications/domain-delivery.d.ts +0 -21
  504. package/dist/src/notifications/domain-delivery.js +0 -1
  505. package/dist/src/notifications/quietHours.d.ts +0 -6
  506. package/dist/src/notifications/quietHours.js +0 -23
  507. package/dist/src/notifications/resultOutbox.d.ts +0 -23
  508. package/dist/src/notifications/resultOutbox.js +0 -49
  509. package/dist/src/scenes/activationAdapter.d.ts +0 -19
  510. package/dist/src/scenes/activationAdapter.js +0 -1
  511. package/dist/src/scenes/agentExecutor.d.ts +0 -9
  512. package/dist/src/scenes/agentExecutor.js +0 -61
  513. package/dist/src/scenes/capabilities/read.d.ts +0 -3
  514. package/dist/src/scenes/capabilities/read.js +0 -187
  515. package/dist/src/scenes/capabilities/write.d.ts +0 -3
  516. package/dist/src/scenes/capabilities/write.js +0 -151
  517. package/dist/src/scenes/contracts.d.ts +0 -9
  518. package/dist/src/scenes/contracts.js +0 -61
  519. package/dist/src/scenes/execution.d.ts +0 -62
  520. package/dist/src/scenes/execution.js +0 -169
  521. package/dist/src/scenes/httpServices.d.ts +0 -39
  522. package/dist/src/scenes/httpServices.js +0 -1
  523. package/dist/src/scenes/inbox.d.ts +0 -17
  524. package/dist/src/scenes/inbox.js +0 -68
  525. package/dist/src/scenes/mailContext.d.ts +0 -24
  526. package/dist/src/scenes/mailContext.js +0 -115
  527. package/dist/src/scenes/mailObservations.d.ts +0 -20
  528. package/dist/src/scenes/mailObservations.js +0 -107
  529. package/dist/src/scenes/maintenance.d.ts +0 -3
  530. package/dist/src/scenes/maintenance.js +0 -20
  531. package/dist/src/scenes/metrics.d.ts +0 -31
  532. package/dist/src/scenes/metrics.js +0 -89
  533. package/dist/src/scenes/model.d.ts +0 -3
  534. package/dist/src/scenes/model.js +0 -10
  535. package/dist/src/scenes/notificationEligibility.d.ts +0 -17
  536. package/dist/src/scenes/notificationEligibility.js +0 -72
  537. package/dist/src/scenes/notificationPublication.d.ts +0 -7
  538. package/dist/src/scenes/notificationPublication.js +0 -43
  539. package/dist/src/scenes/preferences.d.ts +0 -19
  540. package/dist/src/scenes/preferences.js +0 -86
  541. package/dist/src/scenes/readiness.d.ts +0 -7
  542. package/dist/src/scenes/readiness.js +0 -20
  543. package/dist/src/scenes/registry.d.ts +0 -11
  544. package/dist/src/scenes/registry.js +0 -28
  545. package/dist/src/scenes/repository.d.ts +0 -178
  546. package/dist/src/scenes/repository.js +0 -782
  547. package/dist/src/scenes/resultNotifications.d.ts +0 -17
  548. package/dist/src/scenes/resultNotifications.js +0 -204
  549. package/dist/src/scenes/runtime.d.ts +0 -25
  550. package/dist/src/scenes/runtime.js +0 -101
  551. package/dist/src/scenes/schedule.d.ts +0 -2
  552. package/dist/src/scenes/schedule.js +0 -33
  553. package/dist/src/scenes/service.d.ts +0 -36
  554. package/dist/src/scenes/service.js +0 -122
  555. package/dist/src/scenes/taskFollowUp/agentExecutor.d.ts +0 -36
  556. package/dist/src/scenes/taskFollowUp/agentExecutor.js +0 -149
  557. package/dist/src/scenes/taskFollowUp/branchInventory.d.ts +0 -38
  558. package/dist/src/scenes/taskFollowUp/branchInventory.js +0 -70
  559. package/dist/src/scenes/taskFollowUp/contracts.d.ts +0 -121
  560. package/dist/src/scenes/taskFollowUp/contracts.js +0 -119
  561. package/dist/src/scenes/taskFollowUp/resources.d.ts +0 -19
  562. package/dist/src/scenes/taskFollowUp/resources.js +0 -97
  563. package/dist/src/scenes/taskFollowUp/service.d.ts +0 -848
  564. package/dist/src/scenes/taskFollowUp/service.js +0 -770
  565. package/dist/src/scenes/taskFollowUp/workspaceFingerprint.d.ts +0 -2
  566. package/dist/src/scenes/taskFollowUp/workspaceFingerprint.js +0 -46
  567. package/dist/src/scenes/templates.d.ts +0 -64
  568. package/dist/src/scenes/templates.js +0 -76
  569. package/dist/src/scenes/userNotes.d.ts +0 -13
  570. package/dist/src/scenes/userNotes.js +0 -40
  571. package/dist/src/storage/sqlite/migrations/166_remove_proactive_previews.sql +0 -1
  572. package/dist/src/storage/sqlite/migrations/167_discussion_recording_chunks.sql +0 -7
  573. package/dist/src/storage/sqlite/migrations/168_discussion_evidence.sql +0 -16
  574. package/dist/src/storage/sqlite/migrations/169_discussion_action_tasks.sql +0 -8
  575. package/dist/src/storage/sqlite/migrations/170_discussion_edits.sql +0 -8
  576. package/dist/src/storage/sqlite/migrations/171_discussion_recording_jobs.sql +0 -14
  577. package/dist/src/storage/sqlite/migrations/172_project_understanding.sql +0 -3
  578. package/dist/src/storage/sqlite/migrations/173_mobile_discussion_source.sql +0 -5
  579. package/dist/src/storage/sqlite/migrations/174_capability_imports.sql +0 -11
  580. package/dist/src/storage/sqlite/migrations/175_import_selections.sql +0 -8
  581. package/dist/src/storage/sqlite/migrations/176_proactive_quality.sql +0 -5
  582. package/dist/src/storage/sqlite/migrations/177_proactive_check_controls.sql +0 -25
  583. package/dist/src/storage/sqlite/migrations/178_conversation_uuid.sql +0 -2
  584. package/dist/src/storage/sqlite/migrations/179_harmonyos_devices.sql +0 -41
  585. package/dist/src/storage/sqlite/migrations/180_execution_environment_ownership.sql +0 -7
  586. package/dist/src/storage/sqlite/migrations/181_knowledge_item_status_events.sql +0 -12
  587. package/dist/src/storage/sqlite/migrations/182_connector_account_policies.sql +0 -92
  588. package/dist/src/storage/sqlite/migrations/183_connector_backend_consistency.sql +0 -20
  589. package/dist/src/storage/sqlite/migrations/184_memory_suppressions.sql +0 -12
  590. package/dist/src/storage/sqlite/migrations/185_understanding_refresh_batches.sql +0 -6
  591. package/dist/src/storage/sqlite/migrations/186_sidebar_layout.sql +0 -16
  592. package/dist/src/storage/sqlite/migrations/187_cli_connectors.sql +0 -34
  593. package/dist/src/storage/sqlite/migrations/188_scene_storage.sql +0 -2
  594. package/dist/src/storage/sqlite/migrations/189_scene_source_health.sql +0 -8
  595. package/dist/src/storage/sqlite/migrations/190_scene_development.sql +0 -37
  596. package/dist/src/storage/sqlite/migrations/191_scene_task_follow_up.sql +0 -27
  597. package/dist/src/storage/sqlite/migrations/192_capability_operations.sql +0 -20
  598. package/dist/src/storage/sqlite/migrations/193_note_file_cleanup.sql +0 -8
  599. package/dist/src/storage/sqlite/migrations/194_capability_external_outcomes.sql +0 -11
  600. package/dist/src/storage/sqlite/migrations/195_automation_deleted_revisions.sql +0 -4
  601. package/dist/src/storage/sqlite/migrations/196_automation_run_requests.sql +0 -23
  602. package/dist/src/storage/sqlite/migrations/197_note_deletion_cleanup.sql +0 -8
  603. package/dist/src/storage/sqlite/migrations/198_project_workspace_creation.sql +0 -7
  604. package/dist/src/storage/sqlite/migrations/199_scene_resource_events.sql +0 -488
  605. package/dist/src/storage/sqlite/migrations/200_connected_work_threads.sql +0 -92
  606. package/dist/src/storage/sqlite/migrations/201_connector_extraction_audit.sql +0 -127
  607. package/dist/src/storage/sqlite/migrations/202_chat_previews.sql +0 -26
  608. package/dist/src/storage/sqlite/migrations/203_remove_retired_proactive_contracts.sql +0 -70
  609. package/dist/src/storage/sqlite/migrations/204_home_intelligence.sql +0 -78
  610. package/dist/src/storage/sqlite/migrations/205_agent_catalog.sql +0 -66
  611. package/dist/src/storage/sqlite/migrations/206_home_advice_strategy_version.sql +0 -3
  612. package/dist/src/storage/sqlite/migrations/207_user_model_policy_contract.sql +0 -121
  613. package/dist/src/storage/sqlite/migrations/208_automation_management.sql +0 -2
  614. package/dist/src/storage/sqlite/migrations/209_automation_event_hub.sql +0 -48
  615. package/dist/src/storage/sqlite/migrations/210_remove_legacy_automation_timeout.sql +0 -14
  616. package/dist/src/storage/sqlite/migrations/211_automation_result_deliveries.sql +0 -16
  617. package/dist/src/storage/sqlite/migrations/212_automation_delivery_policy.sql +0 -30
  618. package/dist/src/storage/sqlite/migrations/213_automation_reliability_contract.sql +0 -188
  619. package/dist/src/storage/sqlite/migrations/214_ai_usage_ledger.sql +0 -41
  620. package/dist/src/storage/sqlite/migrations/215_scene_execution_adapters.sql +0 -6
  621. package/dist/src/storage/sqlite/migrations/216_remove_scene_model_usage.sql +0 -1
  622. package/dist/src/storage/sqlite/migrations/217_remove_legacy_memory_tables.sql +0 -4
  623. package/dist/src/storage/sqlite/migrations/conversation-key-decoder.d.ts +0 -8
  624. package/dist/src/storage/sqlite/migrations/conversation-key-decoder.js +0 -87
  625. package/dist/src/storage/sqlite/migrations/conversation-uuid.d.ts +0 -8
  626. package/dist/src/storage/sqlite/migrations/conversation-uuid.js +0 -366
  627. package/dist/src/storage/sqlite/migrations/scene-reset.d.ts +0 -5
  628. package/dist/src/storage/sqlite/migrations/scene-reset.js +0 -40
  629. package/dist/src/storage/sqlite/scenes-schema.d.ts +0 -8
  630. package/dist/src/storage/sqlite/scenes-schema.js +0 -60
  631. package/dist/src/storage/sqlite/schemas/notifications.sql +0 -65
  632. package/dist/src/storage/sqlite/schemas/scenes.sql +0 -205
  633. package/skills/engineering/design-recurring-work/SKILL.md +0 -75
@@ -1,200 +0,0 @@
1
- import { __esmMin } from "../../../_virtual/_rolldown/runtime.js";
2
- import { z } from "zod";
3
- //#region packages/gateway-contract/src/scenes.ts
4
- var identifier, uniqueIds, sceneOutcomeKinds, activationStatuses, sceneScopeSchema, limitsSchema, executionSchema, sceneTemplateSchema, scenePermissionSchema, sceneNotesSchema, activationInputSchema, SceneActivationSchema, SceneConfigureSchema, SceneTransitionSchema, SceneWorkItemCreateSchema, SceneWorkItemUpdateSchema, SceneWorkItemSchema, hour, scenePreferencesSchema, preferenceFields, ScenePreferencePatchSchema, SceneFeedbackSchema, sceneScheduleSchema;
5
- var init_scenes = __esmMin((() => {
6
- identifier = z.string().trim().min(1).max(200);
7
- uniqueIds = z.array(identifier).max(100).refine((items) => new Set(items).size === items.length, "Duplicate identifiers");
8
- sceneOutcomeKinds = [
9
- "no_change",
10
- "observation",
11
- "artifact",
12
- "decision",
13
- "state_change",
14
- "effect_proposal",
15
- "receipt"
16
- ];
17
- activationStatuses = [
18
- "needs_setup",
19
- "active",
20
- "paused",
21
- "completed",
22
- "archived"
23
- ];
24
- sceneScopeSchema = z.discriminatedUnion("kind", [
25
- z.strictObject({ kind: z.literal("personal") }),
26
- z.strictObject({
27
- kind: z.literal("project"),
28
- id: identifier
29
- }),
30
- z.strictObject({
31
- kind: z.literal("conversation"),
32
- id: identifier
33
- }),
34
- z.strictObject({
35
- kind: z.literal("objects"),
36
- ids: uniqueIds.refine((ids) => ids.length > 0)
37
- })
38
- ]);
39
- limitsSchema = z.strictObject({
40
- timeoutSeconds: z.number().int().min(1).max(600),
41
- maxIterations: z.number().int().min(1).max(30),
42
- maxToolCalls: z.number().int().min(0).max(100),
43
- maxOutputTokens: z.number().int().min(1).max(32768)
44
- });
45
- executionSchema = z.strictObject({
46
- kind: z.string().regex(/^[a-z][a-z0-9_-]{0,63}$/),
47
- instruction: z.string().trim().min(1).max(32e3),
48
- limits: limitsSchema
49
- });
50
- sceneTemplateSchema = z.strictObject({
51
- schemaVersion: z.literal(1),
52
- key: z.string().regex(/^[a-z][a-z0-9-]{0,79}$/),
53
- version: z.string().regex(/^\d+\.\d+\.\d+$/),
54
- title: z.string().trim().min(1).max(120),
55
- description: z.string().trim().min(1).max(2e3),
56
- goalMode: z.enum(["finite", "ongoing"]),
57
- contextProviders: uniqueIds,
58
- triggers: z.array(z.discriminatedUnion("type", [
59
- z.strictObject({
60
- id: identifier,
61
- type: z.literal("manual")
62
- }),
63
- z.strictObject({
64
- id: identifier,
65
- type: z.literal("event"),
66
- eventType: identifier
67
- }),
68
- z.strictObject({
69
- id: identifier,
70
- type: z.literal("schedule")
71
- })
72
- ])).min(1).max(20).refine((items) => new Set(items.map((item) => item.id)).size === items.length, "Duplicate trigger IDs"),
73
- execution: executionSchema,
74
- allowedOutcomeKinds: z.array(z.enum(sceneOutcomeKinds)).min(1),
75
- allowedEffectHandlers: uniqueIds
76
- });
77
- scenePermissionSchema = z.strictObject({
78
- accountIds: uniqueIds,
79
- contextProviders: uniqueIds,
80
- effectHandlers: uniqueIds
81
- });
82
- sceneNotesSchema = z.strictObject({
83
- expectedRevision: z.number().int().nonnegative(),
84
- content: z.string().trim().max(32e3),
85
- validUntil: z.number().int().nonnegative().nullable().default(null)
86
- });
87
- activationInputSchema = z.strictObject({
88
- templateKey: identifier,
89
- templateVersion: identifier,
90
- goal: z.string().trim().min(1).max(12e3),
91
- scope: sceneScopeSchema,
92
- permissions: scenePermissionSchema
93
- });
94
- SceneActivationSchema = activationInputSchema.extend({
95
- id: identifier,
96
- ownerId: identifier,
97
- workspaceId: z.string().min(1),
98
- status: z.enum(activationStatuses),
99
- setupMissing: z.array(z.string()).optional(),
100
- revision: z.number().int().positive()
101
- });
102
- SceneConfigureSchema = activationInputSchema.pick({
103
- goal: true,
104
- scope: true,
105
- permissions: true
106
- }).extend({ expectedRevision: z.number().int().positive() });
107
- SceneTransitionSchema = z.strictObject({
108
- expectedRevision: z.number().int().positive(),
109
- status: z.enum(activationStatuses)
110
- });
111
- SceneWorkItemCreateSchema = z.strictObject({
112
- subjectId: identifier,
113
- accountId: identifier,
114
- dueAt: z.number().int().nonnegative()
115
- });
116
- SceneWorkItemUpdateSchema = z.strictObject({
117
- expectedRevision: z.number().int().positive(),
118
- dueAt: z.number().int().nonnegative().optional(),
119
- status: z.enum([
120
- "watching",
121
- "paused",
122
- "completed"
123
- ]).optional()
124
- }).refine((value) => value.dueAt !== void 0 || value.status !== void 0, "Work item update is empty");
125
- SceneWorkItemSchema = SceneWorkItemCreateSchema.extend({
126
- id: identifier,
127
- activationId: identifier,
128
- revision: z.number().int().positive(),
129
- status: z.enum([
130
- "watching",
131
- "paused",
132
- "completed"
133
- ])
134
- });
135
- hour = z.number().int().min(0).max(23);
136
- scenePreferencesSchema = z.strictObject({
137
- level: z.enum([
138
- "quiet",
139
- "balanced",
140
- "active"
141
- ]).default("balanced"),
142
- timezone: z.string().min(1).max(100).refine((value) => {
143
- try {
144
- new Intl.DateTimeFormat("en", { timeZone: value });
145
- return true;
146
- } catch {
147
- return false;
148
- }
149
- }).default("Asia/Shanghai"),
150
- quietStartHour: hour.default(22),
151
- quietEndHour: hour.default(8),
152
- dailyNotificationLimit: z.number().int().min(0).max(30).default(3),
153
- digestEnabled: z.boolean().default(false),
154
- digestHour: hour.default(18),
155
- digestMinute: z.number().int().min(0).max(59).default(0),
156
- preferredChannel: z.enum(["in_app", "browser"]).default("browser"),
157
- suppressWhileViewing: z.boolean().default(true),
158
- checksPaused: z.boolean().default(false),
159
- checksPausedUntil: z.string().datetime({ offset: true }).nullable().default(null),
160
- notificationsMuted: z.boolean().default(false)
161
- });
162
- preferenceFields = scenePreferencesSchema.shape;
163
- ScenePreferencePatchSchema = z.strictObject({
164
- expectedRevision: z.number().int().nonnegative(),
165
- level: preferenceFields.level.removeDefault().optional(),
166
- timezone: preferenceFields.timezone.removeDefault().optional(),
167
- quietStartHour: preferenceFields.quietStartHour.removeDefault().optional(),
168
- quietEndHour: preferenceFields.quietEndHour.removeDefault().optional(),
169
- dailyNotificationLimit: preferenceFields.dailyNotificationLimit.removeDefault().optional(),
170
- digestEnabled: preferenceFields.digestEnabled.removeDefault().optional(),
171
- digestHour: preferenceFields.digestHour.removeDefault().optional(),
172
- digestMinute: preferenceFields.digestMinute.removeDefault().optional(),
173
- preferredChannel: preferenceFields.preferredChannel.removeDefault().optional(),
174
- suppressWhileViewing: preferenceFields.suppressWhileViewing.removeDefault().optional(),
175
- checksPaused: preferenceFields.checksPaused.removeDefault().optional(),
176
- checksPausedUntil: preferenceFields.checksPausedUntil.removeDefault().optional(),
177
- notificationsMuted: preferenceFields.notificationsMuted.removeDefault().optional()
178
- });
179
- SceneFeedbackSchema = z.strictObject({
180
- expectedRevision: z.number().int().nonnegative(),
181
- rating: z.enum(["useful", "not_useful"]),
182
- note: z.string().trim().max(2e3).optional()
183
- });
184
- sceneScheduleSchema = z.strictObject({
185
- weekdays: z.array(z.number().int().min(0).max(6)).min(1).max(7).refine((days) => new Set(days).size === days.length, "Duplicate weekdays"),
186
- hour: z.number().int().min(0).max(23),
187
- minute: z.number().int().min(0).max(59),
188
- timeZone: z.string().trim().min(1).max(100).refine((timeZone) => {
189
- try {
190
- new Intl.DateTimeFormat("en", { timeZone });
191
- return true;
192
- } catch {
193
- return false;
194
- }
195
- }, "Invalid time zone")
196
- });
197
- }));
198
- //#endregion
199
- init_scenes();
200
- export { SceneActivationSchema, SceneConfigureSchema, SceneFeedbackSchema, ScenePreferencePatchSchema, SceneTransitionSchema, SceneWorkItemCreateSchema, SceneWorkItemSchema, SceneWorkItemUpdateSchema, activationInputSchema, activationStatuses, init_scenes, sceneNotesSchema, sceneOutcomeKinds, scenePermissionSchema, scenePreferencesSchema, sceneScheduleSchema, sceneScopeSchema, sceneTemplateSchema };
@@ -1,2 +0,0 @@
1
- import type { EmbeddedContextFile } from './types.js';
2
- export declare function loadProjectAgentsContextFile(workspaceDir: string): EmbeddedContextFile | null;
@@ -1,30 +0,0 @@
1
- import { DEFAULT_AGENTS_FILENAME, stripFrontMatter } from "../context/workspace.js";
2
- import { join, resolve } from "node:path";
3
- import { existsSync, readFileSync } from "node:fs";
4
- //#region src/agent/bootstrap/project-agents-context.ts
5
- const PROJECT_AGENTS_MAX_CHARS = 2e4;
6
- function truncateProjectAgentsContent(content) {
7
- if (content.length <= PROJECT_AGENTS_MAX_CHARS) return content;
8
- const suffix = `\n\n[Project AGENTS.md truncated to ${PROJECT_AGENTS_MAX_CHARS} characters]`;
9
- return `${content.slice(0, Math.max(0, PROJECT_AGENTS_MAX_CHARS - suffix.length)).trimEnd()}${suffix}`;
10
- }
11
- function loadProjectAgentsContextFile(workspaceDir) {
12
- const agentsPath = resolve(join(workspaceDir, DEFAULT_AGENTS_FILENAME));
13
- if (!existsSync(agentsPath)) return null;
14
- try {
15
- const content = truncateProjectAgentsContent(stripFrontMatter(readFileSync(agentsPath, "utf-8")).trim());
16
- if (!content) return null;
17
- return {
18
- path: agentsPath,
19
- content: [
20
- "Workspace AGENTS.md contains project-local instructions. Follow it for this workspace's coding conventions, commands, tests, and repository-specific workflows. If it conflicts with higher-priority system instructions, tool safety, or the user's explicit request, follow the higher-priority instruction.",
21
- "",
22
- content
23
- ].join("\n")
24
- };
25
- } catch {
26
- return null;
27
- }
28
- }
29
- //#endregion
30
- export { loadProjectAgentsContextFile };
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { AuthenticatedRouteDeps } from './deps.js';
3
- export declare function registerSceneRoutes(authenticated: Hono, deps: AuthenticatedRouteDeps): void;
@@ -1,271 +0,0 @@
1
- import { createLogger } from "../../../utils/logger/index.js";
2
- import { init_logger } from "../../../utils/logger.js";
3
- import { ProductReadContracts } from "../../../../packages/gateway-contract/src/capabilities.js";
4
- import { init_src } from "../../../../packages/gateway-contract/src/index.js";
5
- import { CapabilityError } from "../../../capabilities/runtime/errors.js";
6
- import "../../../capabilities/runtime/dispatcher.js";
7
- import { SceneConflictError, SceneInputError, SceneNotFoundError } from "../../../scenes/repository.js";
8
- import { SceneSetupError } from "../../../scenes/service.js";
9
- import { createProductDispatcher } from "../../../capabilities/runtime/product.js";
10
- import { getGatewayPrincipal } from "../../security/gateway-principal.js";
11
- import { capabilityHttpContext, capabilityHttpError } from "../../../capabilities/adapters/http.js";
12
- import { randomUUID } from "node:crypto";
13
- import { z } from "zod";
14
- import { Hono } from "hono";
15
- //#region src/gateway/hono/routes/scenes.ts
16
- init_src();
17
- init_logger();
18
- const log = createLogger("Hono:Scenes");
19
- const requestIdentity = z.string().trim().min(1).max(200);
20
- function registerSceneRoutes(authenticated, deps) {
21
- const app = new Hono();
22
- app.onError((error, c) => {
23
- if (error instanceof CapabilityError && error.cause instanceof SceneSetupError) return c.json({
24
- error: "scene_needs_setup",
25
- message: error.cause.message,
26
- missing: error.cause.missing
27
- }, 422);
28
- if (error instanceof CapabilityError) return capabilityHttpError(c, error);
29
- if (error instanceof SceneNotFoundError) return c.json({ error: "scene_not_found" }, 404);
30
- if (error instanceof SceneConflictError) return c.json({
31
- error: "scene_changed",
32
- message: error.message
33
- }, 409);
34
- if (error instanceof SceneSetupError) return c.json({
35
- error: "scene_needs_setup",
36
- message: error.message,
37
- missing: error.missing
38
- }, 422);
39
- if (error instanceof z.ZodError || error instanceof SyntaxError || error instanceof SceneInputError) return c.json({ error: "invalid_scene_input" }, 400);
40
- log.error({
41
- err: error,
42
- phase: "scene_request"
43
- }, "Scene request failed");
44
- return c.json({ error: "scene_request_failed" }, 500);
45
- });
46
- app.use("*", async (c, next) => {
47
- if (!deps.scenes) return c.json({ error: "scene_runtime_not_installed" }, 503);
48
- await next();
49
- });
50
- const principal = (c) => ({
51
- ownerId: getGatewayPrincipal(c).scopes.includes("gateway.admin") ? "local-owner" : getGatewayPrincipal(c).principalId,
52
- workspaceId: deps.service.currentWorkspacePath
53
- });
54
- const capabilities = createProductDispatcher(void 0, { getSceneAccess: () => deps.scenes ? {
55
- services: deps.scenes,
56
- principal: {
57
- ownerId: "local-owner",
58
- workspaceId: deps.service.currentWorkspacePath
59
- }
60
- } : void 0 });
61
- const read = async (c, operation, input) => ProductReadContracts[operation].output.parse(await capabilities.call(operation, input, capabilityHttpContext(c)));
62
- const write = (c, operation, input) => {
63
- const context = capabilityHttpContext(c);
64
- return capabilities.call(operation, input, context, {
65
- ...capabilities.describe(operation, context),
66
- idempotencyKey: c.req.header("Idempotency-Key") ?? randomUUID()
67
- });
68
- };
69
- const template = (key, version) => deps.scenes.repository.getTemplate(key, version);
70
- const adapterTarget = (key, version) => {
71
- const manifest = template(key, version);
72
- return manifest.execution.kind === "agent" ? void 0 : {
73
- manifest,
74
- adapter: deps.scenes.activationAdapters.get(manifest.execution.kind)
75
- };
76
- };
77
- app.get("/source-providers", (c) => c.json({ providers: deps.scenes.sourceProviders.providers() }));
78
- app.get("/source-providers/:provider/accounts", (c) => c.json({ accounts: deps.scenes.sourceProviders.get(c.req.param("provider")).listAccounts?.(principal(c)) ?? [] }));
79
- app.post("/source-providers/:provider/resolve-link", deps.strictRateLimitMiddleware, async (c) => {
80
- const input = z.strictObject({
81
- accountId: z.string().min(1).max(200),
82
- url: z.string().url().max(2e3)
83
- }).parse(await c.req.json());
84
- const source = deps.scenes.sourceProviders.get(c.req.param("provider"));
85
- if (!source?.resolveLink) return c.json({ error: "source_resolution_unavailable" }, 422);
86
- const reference = await source.resolveLink(principal(c), input.accountId, input.url, AbortSignal.any([c.req.raw.signal, AbortSignal.timeout(3e4)]));
87
- return c.json({ source: {
88
- provider: source.id,
89
- reference
90
- } });
91
- });
92
- app.get("/resources/projects/:projectId/branches", async (c) => {
93
- const owner = deps.scenes.activationAdapters.list().find((item) => item.listProjectBranches);
94
- if (!owner?.listProjectBranches) return c.json({ error: "branch_inventory_unavailable" }, 503);
95
- return c.json(await owner.listProjectBranches(principal(c), c.req.param("projectId")));
96
- });
97
- app.post("/resources/branch-links", deps.strictRateLimitMiddleware, async (c) => {
98
- const input = z.strictObject({
99
- projectId: z.string().min(1).max(200),
100
- taskId: z.string().uuid(),
101
- branchRef: z.string().startsWith("refs/heads/").max(300),
102
- expectedSha: z.string().regex(/^[a-f0-9]{40,64}$/)
103
- }).parse(await c.req.json());
104
- const owner = deps.scenes.activationAdapters.list().find((item) => item.associateBranch);
105
- if (!owner?.associateBranch) return c.json({ error: "branch_inventory_unavailable" }, 503);
106
- return c.json(await owner.associateBranch(principal(c), input));
107
- });
108
- app.post("/browser/prepare", deps.strictRateLimitMiddleware, (c) => c.json(deps.scenes.browser.prepare()));
109
- app.post("/browser/subscriptions", deps.strictRateLimitMiddleware, async (c) => c.json(deps.scenes.browser.register(principal(c), await c.req.json()), 201));
110
- app.delete("/browser/subscriptions/:id", deps.strictRateLimitMiddleware, (c) => {
111
- deps.scenes.browser.remove(principal(c), c.req.param("id"));
112
- return c.json({ ok: true });
113
- });
114
- app.get("/preferences", async (c) => c.json(await read(c, "xopc.scenes.get_preferences", {})));
115
- app.patch("/preferences", deps.strictRateLimitMiddleware, async (c) => c.json(await write(c, "xopc.scenes.set_preferences", await c.req.json())));
116
- app.post("/presence", deps.strictRateLimitMiddleware, async (c) => {
117
- deps.scenes.preferences.recordPresence(principal(c), await c.req.json());
118
- return c.json({ ok: true });
119
- });
120
- app.get("/templates", async (c) => c.json(await read(c, "xopc.scenes.templates", {})));
121
- app.get("/diagnostics", async (c) => c.json(await read(c, "xopc.scenes.diagnostics", {})));
122
- app.get("/metrics", async (c) => {
123
- return c.json(await read(c, "xopc.scenes.metrics", {
124
- ...c.req.query(),
125
- ...c.req.query("days") === void 0 ? {} : { days: Number(c.req.query("days")) }
126
- }));
127
- });
128
- app.get("/sources/mail/accounts", async (c) => c.json(await read(c, "xopc.scenes.mail_accounts", {})));
129
- app.post("/sources/mail/search", deps.strictRateLimitMiddleware, async (c) => {
130
- if (!deps.scenes.mailDiscovery) return c.json({ error: "mail_search_unavailable" }, 503);
131
- const signal = AbortSignal.any([c.req.raw.signal, AbortSignal.timeout(15e3)]);
132
- return c.json({ sources: await deps.scenes.mailDiscovery.searchSources(principal(c), await c.req.json(), signal) });
133
- });
134
- app.get("/sources/mail", async (c) => {
135
- return c.json(await read(c, "xopc.scenes.mail_sources", {
136
- ...c.req.query(),
137
- ...c.req.query("limit") === void 0 ? {} : { limit: Number(c.req.query("limit")) }
138
- }));
139
- });
140
- app.get("/templates/:key/versions/:version", async (c) => c.json(await read(c, "xopc.scenes.get_template", {
141
- key: c.req.param("key"),
142
- version: c.req.param("version")
143
- })));
144
- app.post("/preflight", deps.strictRateLimitMiddleware, async (c) => {
145
- const body = await c.req.json();
146
- if (typeof body.templateKey === "string" && typeof body.templateVersion === "string") {
147
- const target = adapterTarget(body.templateKey, body.templateVersion);
148
- if (target) return c.json(await target.adapter.preflight(principal(c), target.manifest, body.configuration));
149
- }
150
- return c.json(await read(c, "xopc.scenes.preflight", body));
151
- });
152
- app.get("/activations", async (c) => {
153
- return c.json(await read(c, "xopc.scenes.list", {
154
- ...c.req.query(),
155
- ...c.req.query("limit") === void 0 ? {} : { limit: Number(c.req.query("limit")) }
156
- }));
157
- });
158
- app.post("/activations", deps.strictRateLimitMiddleware, async (c) => {
159
- requestIdentity.parse(c.req.header("Idempotency-Key"));
160
- const body = await c.req.json();
161
- if (typeof body.templateKey === "string" && typeof body.templateVersion === "string") {
162
- const target = adapterTarget(body.templateKey, body.templateVersion);
163
- if (target) return c.json(await target.adapter.create(principal(c), target.manifest, body.configuration), 201);
164
- }
165
- return c.json(await write(c, "xopc.scenes.start", body), 201);
166
- });
167
- app.get("/activations/:id", async (c) => {
168
- const { activation } = ProductReadContracts["xopc.scenes.get"].output.parse(await read(c, "xopc.scenes.get", { id: c.req.param("id") }));
169
- const manifest = template(activation.templateKey, activation.templateVersion);
170
- const activationAdapter = manifest.execution.kind === "agent" ? void 0 : deps.scenes.activationAdapters.get(manifest.execution.kind);
171
- return c.json({
172
- activation,
173
- template: manifest,
174
- ...activationAdapter ? { details: activationAdapter.get(principal(c), activation.id) } : {}
175
- });
176
- });
177
- app.patch("/activations/:id", deps.strictRateLimitMiddleware, async (c) => {
178
- const body = await c.req.json();
179
- const activation = deps.scenes.repository.getActivation(principal(c), c.req.param("id"));
180
- const manifest = template(activation.templateKey, activation.templateVersion);
181
- if (manifest.execution.kind !== "agent") {
182
- const input = z.union([z.strictObject({
183
- expectedRevision: z.number().int().positive(),
184
- status: z.enum([
185
- "active",
186
- "paused",
187
- "archived"
188
- ])
189
- }), z.strictObject({
190
- expectedRevision: z.number().int().positive(),
191
- configuration: z.unknown()
192
- })]).parse(body);
193
- const execution = deps.scenes.activationAdapters.get(manifest.execution.kind);
194
- return c.json("configuration" in input ? await execution.configure(principal(c), activation.id, input.expectedRevision, input.configuration) : await execution.transition(principal(c), activation.id, input.expectedRevision, input.status));
195
- }
196
- if (!(typeof body === "object" && body !== null && Object.hasOwn(body, "status"))) return c.json(await write(c, "xopc.scenes.configure", {
197
- ...body,
198
- id: c.req.param("id")
199
- }));
200
- return c.json(await write(c, "xopc.scenes.transition", {
201
- ...body,
202
- id: c.req.param("id")
203
- }));
204
- });
205
- app.post("/activations/:id/checks", deps.strictRateLimitMiddleware, async (c) => {
206
- requestIdentity.parse(c.req.header("Idempotency-Key"));
207
- return c.json(await write(c, "xopc.scenes.check", { id: c.req.param("id") }), 202);
208
- });
209
- app.get("/activations/:id/runs", async (c) => {
210
- return c.json(await read(c, "xopc.scenes.list_runs", {
211
- ...c.req.query(),
212
- id: c.req.param("id"),
213
- ...c.req.query("limit") === void 0 ? {} : { limit: Number(c.req.query("limit")) }
214
- }));
215
- });
216
- app.patch("/activations/:id/notes", deps.strictRateLimitMiddleware, async (c) => c.json(await write(c, "xopc.scenes.notes", {
217
- ...await c.req.json(),
218
- id: c.req.param("id")
219
- })));
220
- app.get("/activations/:id/notes", async (c) => c.json(await read(c, "xopc.scenes.read_notes", { id: c.req.param("id") })));
221
- app.get("/activations/:id/work-items", async (c) => {
222
- return c.json(await read(c, "xopc.scenes.list_work_items", {
223
- ...c.req.query(),
224
- id: c.req.param("id"),
225
- ...c.req.query("limit") === void 0 ? {} : { limit: Number(c.req.query("limit")) }
226
- }));
227
- });
228
- app.post("/activations/:id/work-items", deps.strictRateLimitMiddleware, async (c) => c.json(await write(c, "xopc.scenes.work_item", {
229
- ...await c.req.json(),
230
- id: c.req.param("id")
231
- }), 201));
232
- app.get("/activations/:id/schedules", async (c) => c.json(await read(c, "xopc.scenes.list_schedules", { id: c.req.param("id") })));
233
- app.patch("/activations/:id/schedules/:triggerKey", deps.strictRateLimitMiddleware, async (c) => c.json(await write(c, "xopc.scenes.schedule", {
234
- ...await c.req.json(),
235
- id: c.req.param("id"),
236
- triggerKey: c.req.param("triggerKey")
237
- })));
238
- app.patch("/work-items/:id", deps.strictRateLimitMiddleware, async (c) => c.json(await write(c, "xopc.scenes.update_work_item", {
239
- ...await c.req.json(),
240
- id: c.req.param("id")
241
- })));
242
- app.get("/outcomes", async (c) => {
243
- return c.json(await read(c, "xopc.scenes.results", {
244
- ...c.req.query(),
245
- ...c.req.query("limit") === void 0 ? {} : { limit: Number(c.req.query("limit")) }
246
- }));
247
- });
248
- app.get("/digests/:id", async (c) => {
249
- return c.json(await read(c, "xopc.scenes.digest_results", {
250
- ...c.req.query(),
251
- id: c.req.param("id"),
252
- ...c.req.query("limit") === void 0 ? {} : { limit: Number(c.req.query("limit")) }
253
- }));
254
- });
255
- app.get("/presentations/:id/feedback", async (c) => c.json(await read(c, "xopc.scenes.get_feedback", { id: c.req.param("id") })));
256
- app.get("/presentations/:id", async (c) => c.json(await read(c, "xopc.scenes.get_presentation", { id: c.req.param("id") })));
257
- app.post("/presentations/:id/feedback", deps.strictRateLimitMiddleware, async (c) => c.json(await write(c, "xopc.scenes.feedback", {
258
- ...await c.req.json(),
259
- id: c.req.param("id")
260
- })));
261
- app.patch("/presentations/:id", deps.strictRateLimitMiddleware, async (c) => {
262
- await write(c, "xopc.scenes.mark_read", {
263
- ...await c.req.json(),
264
- id: c.req.param("id")
265
- });
266
- return c.json({ ok: true });
267
- });
268
- authenticated.route("/api/scenes", app);
269
- }
270
- //#endregion
271
- export { registerSceneRoutes };
@@ -1,4 +0,0 @@
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;
@@ -1,54 +0,0 @@
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 };
@@ -1,34 +0,0 @@
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
- }