@xopcai/xopc 0.0.413 → 0.0.415

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 (323) 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/{agent-avatar-dicebear-BT6oqCMD.js → agent-avatar-dicebear-CJFwitU2.js} +1 -1
  4. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DclyJr1N.js +1 -0
  5. package/dist/gateway/static/root/assets/{agents-admin-api-CeBkHnl8.js → agents-admin-api-B1p-ghg9.js} +1 -1
  6. package/dist/gateway/static/root/assets/agents-jhErNtzi.js +77 -0
  7. package/dist/gateway/static/root/assets/{app-management-settings-panel-BdCgtTfT.js → app-management-settings-panel-DgwqNi5i.js} +1 -1
  8. package/dist/gateway/static/root/assets/app-window-DXFNqt_0.js +1 -0
  9. package/dist/gateway/static/root/assets/{appearance-settings-C3-hCFlF.js → appearance-settings-C0wJfFyz.js} +1 -1
  10. package/dist/gateway/static/root/assets/apps-page-C0LcnI4h.js +1 -0
  11. package/dist/gateway/static/root/assets/{archive-plugin-BviFGCy4.js → archive-plugin-Ch7wolHE.js} +1 -1
  12. package/dist/gateway/static/root/assets/{automations-page-CfzazXE5.js → automations-page-DK7AU79v.js} +1 -1
  13. package/dist/gateway/static/root/assets/automations-workspace-CBxiV34x.js +8 -0
  14. package/dist/gateway/static/root/assets/{binary-plugins-Dp-gtJEk.js → binary-plugins-B4HcHYsC.js} +1 -1
  15. package/dist/gateway/static/root/assets/{block-editor-D-DEPdpi.js → block-editor-BQAWEZF-.js} +4 -4
  16. package/dist/gateway/static/root/assets/{browser-automation-inputs-D1pDgMJu.js → browser-automation-inputs-D6AccXaA.js} +1 -1
  17. package/dist/gateway/static/root/assets/browser-automations-page-vJIrTxdi.js +3 -0
  18. package/dist/gateway/static/root/assets/browser-settings-page-in5Roh_E.js +3 -0
  19. package/dist/gateway/static/root/assets/{capabilities-Bpeh6E22.js → capabilities-BlxF36t-.js} +1 -1
  20. package/dist/gateway/static/root/assets/capabilities-page-CiGx8wpQ.js +2 -0
  21. package/dist/gateway/static/root/assets/capabilities-settings-panel-a8kqjzQu.js +8 -0
  22. package/dist/gateway/static/root/assets/{capability-header-actions-CP2fI9Fe.js → capability-header-actions-D4Yq35fD.js} +1 -1
  23. package/dist/gateway/static/root/assets/channels-C_CxcjKT.js +1 -0
  24. package/dist/gateway/static/root/assets/{chat-terminal-dock-BL3tFntQ.js → chat-terminal-dock-zdMySdMm.js} +2 -2
  25. package/dist/gateway/static/root/assets/chevron-down-ccbiQQz_.js +1 -0
  26. package/dist/gateway/static/root/assets/{computer-settings-page-DEQ5GYfC.js → computer-settings-page-C5Z6Jr0p.js} +1 -1
  27. package/dist/gateway/static/root/assets/{connector-service-page-CecwMnC5.js → connector-service-page-Cxus0qrZ.js} +1 -1
  28. package/dist/gateway/static/root/assets/connectors-page-DCBO2CxK.js +1 -0
  29. package/dist/gateway/static/root/assets/{date-picker-N5jnlvPs.js → date-picker-DuyyD6jz.js} +1 -1
  30. package/dist/gateway/static/root/assets/dependency-picker-BZN72rrk.js +1 -0
  31. package/dist/gateway/static/root/assets/desktop-pet-BtvTIDCi.js +1 -0
  32. package/dist/gateway/static/root/assets/desktop-pet-settings-BcyP7Z6v.js +1 -0
  33. package/dist/gateway/static/root/assets/device-pairing-wizard-Ctbgr50F.js +1 -0
  34. package/dist/gateway/static/root/assets/{directory-picker-path-field-CbMbPimD.js → directory-picker-path-field-DOusKz-O.js} +1 -1
  35. package/dist/gateway/static/root/assets/ellipsis-0k4rZLoy.js +1 -0
  36. package/dist/gateway/static/root/assets/{extension-debug-page-OE1nJMQ8.js → extension-debug-page-Bt4FwsFu.js} +1 -1
  37. package/dist/gateway/static/root/assets/{extension-page-BEomiKhy.js → extension-page-0vsxX3FB.js} +1 -1
  38. package/dist/gateway/static/root/assets/{extension-settings-page-BFOjQeSX.js → extension-settings-page-5Pt5_ELc.js} +1 -1
  39. package/dist/gateway/static/root/assets/eye-CABVeTq0.js +1 -0
  40. package/dist/gateway/static/root/assets/folder-open-CyzJ19I9.js +1 -0
  41. package/dist/gateway/static/root/assets/{gateway-config-swr-DF_HV6NP.js → gateway-config-swr-fQKBHBi1.js} +1 -1
  42. package/dist/gateway/static/root/assets/{gateway-realtime-DMAzNlm-.js → gateway-realtime-DkWCHVzI.js} +1 -1
  43. package/dist/gateway/static/root/assets/gateway-realtime-store-Bx9KCID-.js +1 -0
  44. package/dist/gateway/static/root/assets/gateway-settings-BsVOcmV5.js +1 -0
  45. package/dist/gateway/static/root/assets/{gateway-startup-retry-B91CBTzO.js → gateway-startup-retry-Cfwxof4k.js} +1 -1
  46. package/dist/gateway/static/root/assets/{highlight-code-6ONPRH5r.js → highlight-code-C8eS9949.js} +1 -1
  47. package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-EJ9Kg4iQ.js → highlighted-body-KQOG7T2V-Cbk7eMlg.js} +1 -1
  48. package/dist/gateway/static/root/assets/home-page-BZDZnmyc.js +2 -0
  49. package/dist/gateway/static/root/assets/{image-generation-api-D0HNic89.js → image-generation-api-CAS8QVla.js} +1 -1
  50. package/dist/gateway/static/root/assets/imports-page-BCLBYzV1.js +1 -0
  51. package/dist/gateway/static/root/assets/index-Bys6njTY.js +710 -0
  52. package/dist/gateway/static/root/assets/index-Vsf0bj5e.css +1 -0
  53. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-Cmi-2SIh.js → keyboard-shortcuts-settings-CM_kt5XN.js} +1 -1
  54. package/dist/gateway/static/root/assets/local-app-workbench-page-Dk87jtcc.js +1 -0
  55. package/dist/gateway/static/root/assets/{local-apps-page-jgaogH9Z.js → local-apps-page-BTSOChhk.js} +1 -1
  56. package/dist/gateway/static/root/assets/{local-session-drafts-DvmwiLUx.js → local-session-drafts-iGX_6O0O.js} +1 -1
  57. package/dist/gateway/static/root/assets/{locale-store-JogcXC4J.js → locale-store-B7s2Hb35.js} +1 -1
  58. package/dist/gateway/static/root/assets/logs-page-D3gVdm8S.js +2 -0
  59. package/dist/gateway/static/root/assets/management-settings-BQNYFE4J.js +1 -0
  60. package/dist/gateway/static/root/assets/{media-plugins-BRS9puQV.js → media-plugins-DYQDjCVQ.js} +1 -1
  61. package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-ChweJKTv.js +1 -0
  62. package/dist/gateway/static/root/assets/{messages-RzwPiQNL.js → messages-BYq0cPbn.js} +2 -2
  63. package/dist/gateway/static/root/assets/note-detail-panel-CYKwUCte.js +5 -0
  64. package/dist/gateway/static/root/assets/note-image-lightbox-BTSZb9ZT.js +1 -0
  65. package/dist/gateway/static/root/assets/notes-page-CJ5nhWfL.js +8 -0
  66. package/dist/gateway/static/root/assets/{page-context-capture-button-D_VOB2_C.js → page-context-capture-button-DVn_dU83.js} +1 -1
  67. package/dist/gateway/static/root/assets/personal-page-DcW14lqn.js +1 -0
  68. package/dist/gateway/static/root/assets/personal-settings-panel-C16Iqe7X.js +1 -0
  69. package/dist/gateway/static/root/assets/phone-dependencies-card-D3l9uPFM.js +1 -0
  70. package/dist/gateway/static/root/assets/phone-model-picker-DOv38vBn.js +1 -0
  71. package/dist/gateway/static/root/assets/phone-settings-page-DUHp1q_9.js +1 -0
  72. package/dist/gateway/static/root/assets/plugin-details-dialog-BpfgDlVa.js +1 -0
  73. package/dist/gateway/static/root/assets/{preview-open-alternatives-DaTaSKox.js → preview-open-alternatives-RlHk76TI.js} +1 -1
  74. package/dist/gateway/static/root/assets/{product-open-page-wYlC0IVZ.js → product-open-page-Dh-HqLrE.js} +1 -1
  75. package/dist/gateway/static/root/assets/{product-preview-content-Bxur-p6S.js → product-preview-content-c3K-4DWc.js} +1 -1
  76. package/dist/gateway/static/root/assets/project-detail-page-GD8TxKad.js +7 -0
  77. package/dist/gateway/static/root/assets/projects-page-B8HAt9sD.js +1 -0
  78. package/dist/gateway/static/root/assets/{registry-api-BGqSwITi.js → registry-api-BcfoLEna.js} +1 -1
  79. package/dist/gateway/static/root/assets/remote-access-hub-D3el7lHK.js +1 -0
  80. package/dist/gateway/static/root/assets/{runtime-tools-api-CSm5SpnR.js → runtime-tools-api-DesqGCnE.js} +1 -1
  81. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-DXNidliV.js → runtime-tools-settings-panel-Dbskk6RG.js} +1 -1
  82. package/dist/gateway/static/root/assets/{schema-form-DeSZ7SiO.js → schema-form-CXO1B1k4.js} +1 -1
  83. package/dist/gateway/static/root/assets/{session-api-DTxZyMta.js → session-api-DdQnMwkl.js} +1 -1
  84. package/dist/gateway/static/root/assets/{session-manager-B2HDomj4.js → session-manager-CA1NkTR_.js} +1 -1
  85. package/dist/gateway/static/root/assets/sessions-page-07liaSHH.js +1 -0
  86. package/dist/gateway/static/root/assets/settings-advanced-gate-BGjU8rfN.js +1 -0
  87. package/dist/gateway/static/root/assets/{settings-form-section-BNYQjZU4.js → settings-form-section-BQxKmbbJ.js} +1 -1
  88. package/dist/gateway/static/root/assets/{settings-page-29Ix0jSQ.js → settings-page-DvVMpKiA.js} +1 -1
  89. package/dist/gateway/static/root/assets/{setup-status-panel-COQZgKX9.js → setup-status-panel-DKo_VTx-.js} +1 -1
  90. package/dist/gateway/static/root/assets/{share-preview-page-CwMRULXc.js → share-preview-page-XgZk8Oa1.js} +1 -1
  91. package/dist/gateway/static/root/assets/shares-settings-BODFqK8k.js +1 -0
  92. package/dist/gateway/static/root/assets/{skill-api-xfB5fUAh.js → skill-api-CV-WT2hj.js} +1 -1
  93. package/dist/gateway/static/root/assets/skill-reload-api-Ce6OUk2C.js +1 -0
  94. package/dist/gateway/static/root/assets/skills-page-B7ehOIML.js +2 -0
  95. package/dist/gateway/static/root/assets/{system-settings-panel-DRJu1ehM.js → system-settings-panel-CxJkZRT4.js} +1 -1
  96. package/dist/gateway/static/root/assets/task-detail-page-CxRR0QuW.js +2 -0
  97. package/dist/gateway/static/root/assets/{task-result-evidence-C4o_Yue_.js → task-result-evidence-D-gGKNX9.js} +1 -1
  98. package/dist/gateway/static/root/assets/{tracing-settings-page-CYslh-Pu.js → tracing-settings-page-CQw3G-FB.js} +1 -1
  99. package/dist/gateway/static/root/assets/{tunnel-api-Bi_kw6bv.js → tunnel-api-B2HnCi0U.js} +1 -1
  100. package/dist/gateway/static/root/assets/usage-page-uUEkO38r.js +1 -0
  101. package/dist/gateway/static/root/assets/{use-autosave-BkB9uD93.js → use-autosave-Dc0nwUpX.js} +1 -1
  102. package/dist/gateway/static/root/assets/user-model-page-ICUutbKL.js +2 -0
  103. package/dist/gateway/static/root/assets/{voice-api-key-field-bt8_Agih.js → voice-api-key-field-BSWXZkGa.js} +1 -1
  104. package/dist/gateway/static/root/assets/{voice-config-api-D7xsWrdh.js → voice-config-api-BkUlN7GH.js} +1 -1
  105. package/dist/gateway/static/root/assets/{work-discovery-overlay-D3NG14dX.js → work-discovery-overlay-H3cdwq3l.js} +1 -1
  106. package/dist/gateway/static/root/assets/{xopc-cloud-account-card-B2OUKOQi.js → xopc-cloud-account-card-CvT_W6YS.js} +1 -1
  107. package/dist/gateway/static/root/index.html +19 -14
  108. package/dist/package.js +1 -1
  109. package/dist/src/agent/agent-manager.js +1 -1
  110. package/dist/src/agent/background-review/run-background-review.js +1 -1
  111. package/dist/src/agent/coding/workspace-revision.js +1 -1
  112. package/dist/src/agent/commands/command-registry.js +1 -1
  113. package/dist/src/agent/external-tools/cliProvider.js +2 -2
  114. package/dist/src/agent/external-tools/composio-provider.js +2 -2
  115. package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
  116. package/dist/src/agent/memory/context-recovery.d.ts +1 -1
  117. package/dist/src/agent/service.js +1 -1
  118. package/dist/src/agent/skills/index.js +1 -1
  119. package/dist/src/agent/skills/installer.js +3 -3
  120. package/dist/src/agent/skills/managed-store.js +1 -1
  121. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  122. package/dist/src/agent/tool-manuals/phone.d.ts +1 -1
  123. package/dist/src/agent/tool-manuals/phone.js +5 -3
  124. package/dist/src/agent/tools/personal-read-tool.js +1 -1
  125. package/dist/src/agent/tools/personal-task-tool.d.ts +1 -1
  126. package/dist/src/agent/tools/personal-task-tool.js +23 -21
  127. package/dist/src/agent/tools/phone-use-tool.js +22 -2
  128. package/dist/src/agent/tools/xopc-use-tool.js +2 -2
  129. package/dist/src/agent-catalog/capabilities.js +2 -2
  130. package/dist/src/agent-catalog/repository.js +1 -1
  131. package/dist/src/automations/capabilities/drafts.js +1 -1
  132. package/dist/src/backup/archive.js +2 -1
  133. package/dist/src/browser/providers/browser-ext-install.js +2 -2
  134. package/dist/src/capabilities/runtime/dispatcher.js +1 -1
  135. package/dist/src/capabilities/runtime/product.js +1 -1
  136. package/dist/src/cli/commands/agents.js +1 -1
  137. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  138. package/dist/src/cli/commands/extension-pack.js +1 -1
  139. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  140. package/dist/src/cli/commands/models.js +1 -1
  141. package/dist/src/cli/commands/onboard/model.js +1 -1
  142. package/dist/src/cli/commands/onboard.js +1 -1
  143. package/dist/src/cli/utils/init-workspace-core.js +1 -1
  144. package/dist/src/config/agent-profile.js +1 -1
  145. package/dist/src/connectors/connected-source-understanding.js +1 -1
  146. package/dist/src/connectors/learning-coordinator.js +1 -1
  147. package/dist/src/execution-environments/local-worktree-manager.js +1 -1
  148. package/dist/src/extensions/agent-plugins/skill-catalog.js +1 -1
  149. package/dist/src/extensions/agent-plugins/validation.js +1 -1
  150. package/dist/src/extensions/install.js +1 -1
  151. package/dist/src/gateway/agents-admin.js +2 -2
  152. package/dist/src/gateway/global-defaults-admin.js +1 -1
  153. package/dist/src/gateway/hono/routes/agents.js +1 -1
  154. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  155. package/dist/src/gateway/hono/routes/connectors.js +7 -7
  156. package/dist/src/gateway/hono/routes/home.js +1 -1
  157. package/dist/src/gateway/hono/routes/notes.js +2 -2
  158. package/dist/src/gateway/hono/routes/phone.js +33 -4
  159. package/dist/src/gateway/hono/routes/projects.js +2 -2
  160. package/dist/src/gateway/hono/routes/public-gateway.js +1 -1
  161. package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
  162. package/dist/src/gateway/hono/routes/tasks.js +1 -1
  163. package/dist/src/gateway/image-generation-setup.js +1 -1
  164. package/dist/src/gateway/service/session-input-coordinator.js +1 -1
  165. package/dist/src/gateway/service.js +7 -7
  166. package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
  167. package/dist/src/imports/importService.js +1 -1
  168. package/dist/src/infra/unhandled-rejections.js +2 -2
  169. package/dist/src/infra/update-restart.js +1 -1
  170. package/dist/src/local-apps/service.js +1 -1
  171. package/dist/src/personal-agent/prompts.js +1 -1
  172. package/dist/src/personal-agent/service.js +1 -1
  173. package/dist/src/phone/adb-driver.d.ts +9 -2
  174. package/dist/src/phone/adb-driver.js +113 -37
  175. package/dist/src/phone/app-access.d.ts +10 -0
  176. package/dist/src/phone/app-access.js +21 -0
  177. package/dist/src/phone/applications.d.ts +4 -0
  178. package/dist/src/phone/applications.js +49 -0
  179. package/dist/src/phone/cloud-adb.d.ts +1 -0
  180. package/dist/src/phone/cloud-adb.js +60 -2
  181. package/dist/src/phone/cloud-phones.js +2 -1
  182. package/dist/src/phone/cloud-scrcpy.d.ts +3 -1
  183. package/dist/src/phone/cloud-scrcpy.js +19 -4
  184. package/dist/src/phone/contracts.d.ts +54 -1
  185. package/dist/src/phone/contracts.js +18 -4
  186. package/dist/src/phone/model-adapter.d.ts +90 -2
  187. package/dist/src/phone/model-adapter.js +87 -19
  188. package/dist/src/phone/reliability.d.ts +7 -0
  189. package/dist/src/phone/reliability.js +66 -0
  190. package/dist/src/phone/repository.js +4 -3
  191. package/dist/src/phone/runtime.d.ts +14 -1
  192. package/dist/src/phone/runtime.js +215 -19
  193. package/dist/src/phone/scrcpy-assets.d.ts +4 -0
  194. package/dist/src/phone/scrcpy-assets.js +16 -0
  195. package/dist/src/phone/scrcpy-text.d.ts +11 -0
  196. package/dist/src/phone/scrcpy-text.js +72 -0
  197. package/dist/src/phone/scrcpy.d.ts +6 -5
  198. package/dist/src/phone/scrcpy.js +51 -14
  199. package/dist/src/runtime-tools/archive.js +1 -1
  200. package/dist/src/storage/sqlite/connection.js +2 -2
  201. package/dist/src/storage/sqlite/offline-access.js +13 -7
  202. package/dist/src/storage/sqlite/schema-errors.d.ts +12 -0
  203. package/dist/src/storage/sqlite/schema-errors.js +21 -3
  204. package/dist/src/storage/sqlite/schema-upgrade.d.ts +4 -0
  205. package/dist/src/storage/sqlite/schema-upgrade.js +78 -0
  206. package/dist/src/storage/sqlite/schema.d.ts +2 -1
  207. package/dist/src/storage/sqlite/schema.js +9 -3
  208. package/dist/src/storage/sqlite/upgrades/203_remove_retired_proactive_contracts.sql +70 -0
  209. package/dist/src/storage/sqlite/upgrades/204_home_intelligence.sql +78 -0
  210. package/dist/src/storage/sqlite/upgrades/205_agent_catalog.sql +66 -0
  211. package/dist/src/storage/sqlite/upgrades/206_home_advice_strategy_version.sql +2 -0
  212. package/dist/src/storage/sqlite/upgrades/207_user_model_policy_contract.sql +121 -0
  213. package/dist/src/storage/sqlite/upgrades/208_automation_management.sql +2 -0
  214. package/dist/src/storage/sqlite/upgrades/209_automation_event_hub.sql +48 -0
  215. package/dist/src/storage/sqlite/upgrades/210_remove_legacy_automation_timeout.sql +14 -0
  216. package/dist/src/storage/sqlite/upgrades/211_automation_result_deliveries.sql +16 -0
  217. package/dist/src/storage/sqlite/upgrades/212_automation_delivery_policy.sql +30 -0
  218. package/dist/src/storage/sqlite/upgrades/213_automation_reliability_contract.sql +188 -0
  219. package/dist/src/storage/sqlite/upgrades/214_ai_usage_ledger.sql +41 -0
  220. package/dist/src/storage/sqlite/upgrades/215_scene_execution_adapters.sql +6 -0
  221. package/dist/src/storage/sqlite/upgrades/216_remove_scene_model_usage.sql +1 -0
  222. package/dist/src/storage/sqlite/upgrades/217_remove_legacy_memory_tables.sql +4 -0
  223. package/dist/src/storage/sqlite/upgrades/218_core_relation_indexes.sql +26 -0
  224. package/dist/src/storage/sqlite/upgrades/219_json_contracts.sql +123 -0
  225. package/dist/src/storage/sqlite/upgrades/220_normalize_timestamps.sql +339 -0
  226. package/dist/src/storage/sqlite/upgrades/221_ai_usage_retention_index.sql +2 -0
  227. package/dist/src/storage/sqlite/upgrades/222_session_config_authority.sql +13 -0
  228. package/dist/src/storage/sqlite/upgrades/223_session_creation_receipts.sql +59 -0
  229. package/dist/src/storage/sqlite/upgrades/224_task_origin_links.sql +8 -0
  230. package/dist/src/storage/sqlite/upgrades/225_task_collaboration.sql +32 -0
  231. package/dist/src/storage/sqlite/upgrades/226_task_main_updates.sql +9 -0
  232. package/dist/src/storage/sqlite/upgrades/227_task_main_update_decisions.sql +8 -0
  233. package/dist/src/storage/sqlite/upgrades/228_task_main_agent_links.sql +14 -0
  234. package/dist/src/storage/sqlite/upgrades/229_task_criterion_reviews.sql +12 -0
  235. package/dist/src/storage/sqlite/upgrades/230_personal_agent_onboarding.sql +8 -0
  236. package/dist/src/storage/sqlite/upgrades/231_task_result_deliveries.sql +32 -0
  237. package/dist/src/storage/sqlite/upgrades/232_personal_requests.sql +28 -0
  238. package/dist/src/storage/sqlite/upgrades/233_observability_usage_links.sql +3 -0
  239. package/dist/src/storage/sqlite/upgrades/234_task_result_reply.sql +14 -0
  240. package/dist/src/storage/sqlite/upgrades/235_personal_conversation_priority.sql +3 -0
  241. package/dist/src/storage/sqlite/upgrades/236_personal_proactivity.sql +53 -0
  242. package/dist/src/storage/sqlite/upgrades/237_personal_strategy_versions.sql +18 -0
  243. package/dist/src/storage/sqlite/upgrades/238_browser_record_replay.sql +45 -0
  244. package/dist/src/storage/sqlite/upgrades/239_clarification_notifications.sql +26 -0
  245. package/dist/src/storage/sqlite/upgrades/240_device_settings.sql +5 -0
  246. package/dist/src/storage/sqlite/upgrades/241_device_grant_audit.sql +13 -0
  247. package/dist/src/storage/sqlite/upgrades/242_cloud_usage_receipts.sql +5 -0
  248. package/dist/src/storage/sqlite/upgrades/243_voice_opening_greetings.sql +12 -0
  249. package/dist/src/storage/sqlite/upgrades/244_device_request_proofs.sql +8 -0
  250. package/dist/src/storage/sqlite/upgrades/245_memory_learning.sql +125 -0
  251. package/dist/src/storage/sqlite/upgrades/246_personal_session_thinking.sql +22 -0
  252. package/dist/src/storage/sqlite/upgrades/247_agent_selection_records.sql +32 -0
  253. package/dist/src/storage/sqlite/upgrades/248_next_turn_suggestions.sql +20 -0
  254. package/dist/src/storage/sqlite/upgrades/249_task_allocations.sql +17 -0
  255. package/dist/src/storage/sqlite/upgrades/250_research_checkpoints.sql +15 -0
  256. package/dist/src/storage/sqlite/upgrades/251_personal_result_reads.sql +40 -0
  257. package/dist/src/storage/sqlite/upgrades/252_task_work_revisions.sql +15 -0
  258. package/dist/src/storage/sqlite/upgrades/253_discussion_processing_recovery.sql +20 -0
  259. package/dist/src/storage/sqlite/upgrades/254_discussion_annotations.sql +17 -0
  260. package/dist/src/storage/sqlite/upgrades/255_discussion_chapter_progress.sql +10 -0
  261. package/dist/src/storage/sqlite/upgrades/256_task_main_update_retries.sql +21 -0
  262. package/dist/src/storage/sqlite/upgrades/257_session_composer_history.sql +11 -0
  263. package/dist/src/storage/sqlite/upgrades/258_task_phase_changes.sql +20 -0
  264. package/dist/src/storage/sqlite/upgrades/259_personal_default_style.sql +10 -0
  265. package/dist/src/storage/sqlite/windows-database-owners.js +33 -28
  266. package/dist/src/tasks/capabilities/read.js +2 -2
  267. package/dist/src/tasks/capabilities/relations.d.ts +2 -2
  268. package/dist/src/tasks/capabilities/write.js +1 -1
  269. package/dist/src/tui/backends/embedded-backend.js +1 -1
  270. package/dist/src/tui/clipboard-image.js +1 -1
  271. package/dist/src/tui/tui.js +1 -1
  272. package/dist/src/user-context/sources/index.js +1 -1
  273. package/dist/src/utils/index.js +1 -1
  274. package/dist/src/utils/logger/index.js +1 -1
  275. package/dist/src/utils/logger.js +1 -1
  276. package/dist/src/voice/realtime/persona-context.js +1 -1
  277. package/dist/src/work-discovery/probe.js +1 -1
  278. package/dist/src/work-discovery/service.js +2 -2
  279. package/package.json +6 -6
  280. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-BFmRRD_4.js +0 -1
  281. package/dist/gateway/static/root/assets/agents-Clwskw2J.js +0 -77
  282. package/dist/gateway/static/root/assets/apps-page-DJbKg3va.js +0 -1
  283. package/dist/gateway/static/root/assets/automations-workspace-D_X0_1X3.js +0 -8
  284. package/dist/gateway/static/root/assets/browser-automations-page-BI-ep6uM.js +0 -3
  285. package/dist/gateway/static/root/assets/browser-settings-page-BTyQ4-vN.js +0 -3
  286. package/dist/gateway/static/root/assets/capabilities-page-GNS95mG9.js +0 -2
  287. package/dist/gateway/static/root/assets/capabilities-settings-panel-DBiv1HN-.js +0 -8
  288. package/dist/gateway/static/root/assets/channels-DWlrUKBr.js +0 -1
  289. package/dist/gateway/static/root/assets/connectors-page-BcpUvrtl.js +0 -1
  290. package/dist/gateway/static/root/assets/dependency-picker-C4jddxFl.js +0 -1
  291. package/dist/gateway/static/root/assets/desktop-pet-BCbiUNQG.js +0 -1
  292. package/dist/gateway/static/root/assets/desktop-pet-settings-CkKU0JMY.js +0 -1
  293. package/dist/gateway/static/root/assets/device-pairing-wizard--E2GQoY1.js +0 -1
  294. package/dist/gateway/static/root/assets/gateway-realtime-store-CoIgC1Al.js +0 -1
  295. package/dist/gateway/static/root/assets/gateway-settings-CR4CsfNN.js +0 -1
  296. package/dist/gateway/static/root/assets/home-page-B9w3a6r2.js +0 -2
  297. package/dist/gateway/static/root/assets/imports-page-bxTINe-2.js +0 -1
  298. package/dist/gateway/static/root/assets/index-D1oivYvN.js +0 -710
  299. package/dist/gateway/static/root/assets/index-D_7q1UkI.css +0 -1
  300. package/dist/gateway/static/root/assets/local-app-workbench-page-NGCmXpa_.js +0 -1
  301. package/dist/gateway/static/root/assets/logs-page-drrr-c2W.js +0 -2
  302. package/dist/gateway/static/root/assets/management-settings-Dc1opXVr.js +0 -1
  303. package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-B--edI1I.js +0 -1
  304. package/dist/gateway/static/root/assets/note-detail-panel-C3s4-ytB.js +0 -5
  305. package/dist/gateway/static/root/assets/note-image-lightbox-D7q5-KuS.js +0 -1
  306. package/dist/gateway/static/root/assets/notes-page-qVxoErUS.js +0 -8
  307. package/dist/gateway/static/root/assets/personal-page-B-T8NzQo.js +0 -1
  308. package/dist/gateway/static/root/assets/personal-settings-panel-BKA4fbYH.js +0 -1
  309. package/dist/gateway/static/root/assets/phone-dependencies-card-DhEsfEUN.js +0 -1
  310. package/dist/gateway/static/root/assets/phone-model-picker-J4mFDk21.js +0 -1
  311. package/dist/gateway/static/root/assets/phone-settings-page-BLflz8CQ.js +0 -1
  312. package/dist/gateway/static/root/assets/plugin-details-dialog-1BwvmKZi.js +0 -1
  313. package/dist/gateway/static/root/assets/project-detail-page-DwowzxzD.js +0 -7
  314. package/dist/gateway/static/root/assets/projects-page-Bwvn4i_e.js +0 -1
  315. package/dist/gateway/static/root/assets/remote-access-hub-DrHisOUe.js +0 -1
  316. package/dist/gateway/static/root/assets/sessions-page-seP7t0kv.js +0 -1
  317. package/dist/gateway/static/root/assets/settings-advanced-gate-VqBu7gHu.js +0 -1
  318. package/dist/gateway/static/root/assets/shares-settings-BWaykw9E.js +0 -1
  319. package/dist/gateway/static/root/assets/skill-reload-api-Bq-3_MCt.js +0 -1
  320. package/dist/gateway/static/root/assets/skills-page-C3LfWsAZ.js +0 -2
  321. package/dist/gateway/static/root/assets/task-detail-page-XCJFP-Aa.js +0 -2
  322. package/dist/gateway/static/root/assets/usage-page-CTTmklCs.js +0 -1
  323. package/dist/gateway/static/root/assets/user-model-page-BDqguzRE.js +0 -2
@@ -0,0 +1,121 @@
1
+ ALTER TABLE user_assertions ADD COLUMN domain TEXT NOT NULL DEFAULT 'identity'
2
+ CHECK(domain IN (
3
+ 'identity', 'life_history', 'health', 'emotion', 'personality', 'cognition',
4
+ 'values', 'motivation', 'goals', 'capabilities', 'behavior', 'preferences',
5
+ 'relationships', 'resources_constraints', 'environment', 'digital_life'
6
+ ));
7
+ ALTER TABLE user_assertions ADD COLUMN model_layer TEXT NOT NULL DEFAULT 'fact'
8
+ CHECK(model_layer IN ('fact', 'pattern', 'interpretation'));
9
+ ALTER TABLE user_assertions ADD COLUMN sensitivity_categories_json TEXT NOT NULL DEFAULT '[]'
10
+ CHECK(json_valid(sensitivity_categories_json));
11
+ ALTER TABLE user_assertions ADD COLUMN purpose_ids_json TEXT NOT NULL DEFAULT '["personalization"]'
12
+ CHECK(json_valid(purpose_ids_json));
13
+ ALTER TABLE user_assertions ADD COLUMN allowed_uses_json TEXT NOT NULL DEFAULT '["answer","rank","recommend"]'
14
+ CHECK(json_valid(allowed_uses_json));
15
+ ALTER TABLE user_assertions ADD COLUMN allowed_agent_ids_json TEXT CHECK(allowed_agent_ids_json IS NULL OR json_valid(allowed_agent_ids_json));
16
+ ALTER TABLE user_assertions ADD COLUMN consent_receipt_id TEXT;
17
+ ALTER TABLE user_assertions ADD COLUMN support_count INTEGER NOT NULL DEFAULT 0 CHECK(support_count >= 0);
18
+ ALTER TABLE user_assertions ADD COLUMN independent_source_count INTEGER NOT NULL DEFAULT 0 CHECK(independent_source_count >= 0);
19
+ ALTER TABLE user_assertions ADD COLUMN last_supported_at INTEGER;
20
+ ALTER TABLE user_assertions ADD COLUMN delete_after INTEGER;
21
+
22
+ UPDATE user_assertions SET
23
+ domain = CASE kind
24
+ WHEN 'identity' THEN 'identity'
25
+ WHEN 'preference' THEN 'preferences'
26
+ WHEN 'value' THEN 'values'
27
+ WHEN 'routine' THEN 'behavior'
28
+ WHEN 'capability' THEN 'capabilities'
29
+ WHEN 'relationship' THEN 'relationships'
30
+ WHEN 'current_state' THEN 'environment'
31
+ ELSE 'cognition'
32
+ END,
33
+ model_layer = CASE
34
+ WHEN authority = 'user_explicit' OR kind = 'current_state' THEN 'fact'
35
+ WHEN kind = 'derived_insight' THEN 'interpretation'
36
+ ELSE 'pattern'
37
+ END,
38
+ support_count = (
39
+ SELECT COUNT(*) FROM user_assertion_evidence evidence
40
+ WHERE evidence.assertion_id = user_assertions.assertion_id AND evidence.relation = 'supports'
41
+ ),
42
+ independent_source_count = (
43
+ SELECT COUNT(DISTINCT COALESCE(context.source_instance_id, context.source_type || ':' || context.source_ref))
44
+ FROM user_assertion_evidence evidence
45
+ JOIN context_evidence context ON context.evidence_id = evidence.evidence_id
46
+ WHERE evidence.assertion_id = user_assertions.assertion_id AND evidence.relation = 'supports'
47
+ ),
48
+ last_supported_at = (
49
+ SELECT MAX(context.observed_at)
50
+ FROM user_assertion_evidence evidence
51
+ JOIN context_evidence context ON context.evidence_id = evidence.evidence_id
52
+ WHERE evidence.assertion_id = user_assertions.assertion_id AND evidence.relation = 'supports'
53
+ );
54
+
55
+ CREATE TABLE understanding_consent_receipts (
56
+ receipt_id TEXT PRIMARY KEY,
57
+ grant_id TEXT NOT NULL REFERENCES understanding_source_grants(grant_id) ON DELETE CASCADE,
58
+ purposes_json TEXT NOT NULL CHECK(json_valid(purposes_json)),
59
+ allowed_domains_json TEXT NOT NULL CHECK(json_valid(allowed_domains_json)),
60
+ denied_domains_json TEXT NOT NULL DEFAULT '[]' CHECK(json_valid(denied_domains_json)),
61
+ allowed_fields_json TEXT NOT NULL CHECK(json_valid(allowed_fields_json)),
62
+ access_mode TEXT NOT NULL CHECK(access_mode IN ('once', 'continuous')),
63
+ lookback_days INTEGER NOT NULL CHECK(lookback_days >= 0),
64
+ raw_retention_days INTEGER NOT NULL CHECK(raw_retention_days >= 0),
65
+ processing_policy TEXT NOT NULL CHECK(processing_policy IN ('local_only', 'remote_allowed')),
66
+ allowed_agent_ids_json TEXT CHECK(allowed_agent_ids_json IS NULL OR json_valid(allowed_agent_ids_json)),
67
+ disclosure_version TEXT NOT NULL,
68
+ granted_at INTEGER NOT NULL,
69
+ revoked_at INTEGER
70
+ );
71
+
72
+ CREATE INDEX idx_understanding_consent_receipts_grant
73
+ ON understanding_consent_receipts(grant_id, granted_at DESC);
74
+ CREATE UNIQUE INDEX idx_understanding_consent_receipts_active
75
+ ON understanding_consent_receipts(grant_id) WHERE revoked_at IS NULL;
76
+
77
+ CREATE TABLE user_model_observations (
78
+ observation_id TEXT PRIMARY KEY,
79
+ principal_id TEXT NOT NULL,
80
+ domain TEXT NOT NULL CHECK(domain IN (
81
+ 'identity', 'life_history', 'health', 'emotion', 'personality', 'cognition',
82
+ 'values', 'motivation', 'goals', 'capabilities', 'behavior', 'preferences',
83
+ 'relationships', 'resources_constraints', 'environment', 'digital_life'
84
+ )),
85
+ observation_type TEXT NOT NULL,
86
+ subject_type TEXT NOT NULL CHECK(subject_type IN ('user', 'person', 'goal', 'project', 'topic')),
87
+ subject_id TEXT NOT NULL,
88
+ value_json TEXT NOT NULL CHECK(json_valid(value_json)),
89
+ context_json TEXT NOT NULL DEFAULT '{}' CHECK(json_valid(context_json)),
90
+ sensitivity_categories_json TEXT NOT NULL DEFAULT '[]' CHECK(json_valid(sensitivity_categories_json)),
91
+ owner_attribution TEXT NOT NULL CHECK(owner_attribution IN ('user', 'other', 'shared', 'unknown')),
92
+ observed_at INTEGER NOT NULL,
93
+ valid_to INTEGER,
94
+ delete_after INTEGER,
95
+ source_grant_id TEXT REFERENCES understanding_source_grants(grant_id) ON DELETE CASCADE,
96
+ source_item_id TEXT,
97
+ evidence_id TEXT REFERENCES context_evidence(evidence_id) ON DELETE CASCADE,
98
+ content_hash TEXT NOT NULL,
99
+ created_at INTEGER NOT NULL,
100
+ UNIQUE(principal_id, content_hash)
101
+ );
102
+
103
+ CREATE INDEX idx_user_model_observations_domain_time
104
+ ON user_model_observations(principal_id, domain, observed_at DESC);
105
+ CREATE INDEX idx_user_model_observations_expiry
106
+ ON user_model_observations(delete_after) WHERE delete_after IS NOT NULL;
107
+ CREATE INDEX idx_user_model_observations_source
108
+ ON user_model_observations(source_grant_id, source_item_id);
109
+
110
+ CREATE TABLE user_assertion_edges (
111
+ from_assertion_id TEXT NOT NULL REFERENCES user_assertions(assertion_id) ON DELETE CASCADE,
112
+ to_assertion_id TEXT NOT NULL REFERENCES user_assertions(assertion_id) ON DELETE CASCADE,
113
+ relation TEXT NOT NULL CHECK(relation IN ('supports', 'contradicts', 'derived_from', 'specializes')),
114
+ confidence REAL NOT NULL CHECK(confidence >= 0 AND confidence <= 1),
115
+ created_at INTEGER NOT NULL,
116
+ PRIMARY KEY(from_assertion_id, to_assertion_id, relation),
117
+ CHECK(from_assertion_id <> to_assertion_id)
118
+ );
119
+
120
+ CREATE INDEX idx_user_assertion_edges_to
121
+ ON user_assertion_edges(to_assertion_id, relation);
@@ -0,0 +1,2 @@
1
+ ALTER TABLE automations ADD COLUMN management_json TEXT
2
+ CHECK(management_json IS NULL OR json_valid(management_json));
@@ -0,0 +1,48 @@
1
+ CREATE TABLE automation_events (
2
+ event_id TEXT PRIMARY KEY,
3
+ event_type TEXT NOT NULL,
4
+ schema_version INTEGER NOT NULL DEFAULT 1,
5
+ source TEXT NOT NULL,
6
+ subject_kind TEXT,
7
+ subject_id TEXT,
8
+ occurred_at_ms INTEGER NOT NULL,
9
+ ingested_at_ms INTEGER NOT NULL,
10
+ correlation_id TEXT NOT NULL,
11
+ causation_id TEXT,
12
+ root_event_id TEXT NOT NULL,
13
+ chain_depth INTEGER NOT NULL DEFAULT 0 CHECK(chain_depth BETWEEN 0 AND 32),
14
+ dedupe_key TEXT,
15
+ trust TEXT NOT NULL CHECK(trust IN ('system', 'user', 'connector', 'untrusted_webhook')),
16
+ payload_json TEXT NOT NULL,
17
+ projected_at_ms INTEGER,
18
+ projection_attempts INTEGER NOT NULL DEFAULT 0,
19
+ projection_error TEXT
20
+ );
21
+
22
+ CREATE UNIQUE INDEX idx_automation_events_source_dedupe
23
+ ON automation_events(source, dedupe_key)
24
+ WHERE dedupe_key IS NOT NULL;
25
+
26
+ CREATE INDEX idx_automation_events_projection
27
+ ON automation_events(projected_at_ms, ingested_at_ms);
28
+
29
+ CREATE TABLE automation_event_deliveries (
30
+ event_id TEXT NOT NULL,
31
+ automation_id TEXT NOT NULL,
32
+ status TEXT NOT NULL CHECK(status IN ('pending', 'queued', 'completed', 'failed', 'cancelled', 'skipped')),
33
+ run_id TEXT,
34
+ attempts INTEGER NOT NULL DEFAULT 0,
35
+ next_attempt_at_ms INTEGER NOT NULL,
36
+ last_error TEXT,
37
+ created_at_ms INTEGER NOT NULL,
38
+ updated_at_ms INTEGER NOT NULL,
39
+ PRIMARY KEY(event_id, automation_id),
40
+ FOREIGN KEY(event_id) REFERENCES automation_events(event_id) ON DELETE CASCADE
41
+ );
42
+
43
+ CREATE UNIQUE INDEX idx_automation_event_deliveries_run
44
+ ON automation_event_deliveries(run_id)
45
+ WHERE run_id IS NOT NULL;
46
+
47
+ CREATE INDEX idx_automation_event_deliveries_pending
48
+ ON automation_event_deliveries(status, next_attempt_at_ms, created_at_ms);
@@ -0,0 +1,14 @@
1
+ UPDATE automations
2
+ SET reliability_json = json_remove(
3
+ json_set(
4
+ reliability_json,
5
+ '$.executionTimeoutSeconds',
6
+ COALESCE(
7
+ json_extract(reliability_json, '$.executionTimeoutSeconds'),
8
+ json_extract(reliability_json, '$.timeoutSeconds')
9
+ )
10
+ ),
11
+ '$.timeoutSeconds'
12
+ )
13
+ WHERE reliability_json IS NOT NULL
14
+ AND json_type(reliability_json, '$.timeoutSeconds') IS NOT NULL;
@@ -0,0 +1,16 @@
1
+ CREATE TABLE automation_result_deliveries (
2
+ run_id TEXT NOT NULL,
3
+ destination_key TEXT NOT NULL,
4
+ kind TEXT NOT NULL,
5
+ status TEXT NOT NULL CHECK(status IN ('pending', 'delivering', 'delivered', 'failed')),
6
+ config_json TEXT NOT NULL,
7
+ attempts INTEGER NOT NULL DEFAULT 0,
8
+ next_attempt_at_ms INTEGER NOT NULL,
9
+ last_error TEXT,
10
+ created_at_ms INTEGER NOT NULL,
11
+ updated_at_ms INTEGER NOT NULL,
12
+ PRIMARY KEY(run_id, destination_key)
13
+ );
14
+
15
+ CREATE INDEX idx_automation_result_deliveries_pending
16
+ ON automation_result_deliveries(status, next_attempt_at_ms, created_at_ms);
@@ -0,0 +1,30 @@
1
+ ALTER TABLE automations ADD COLUMN delivery_json TEXT;
2
+
3
+ UPDATE automations
4
+ SET delivery_json = json_patch(
5
+ json_object('notificationPolicy', notification_policy),
6
+ CASE WHEN completion_webhook_url IS NULL
7
+ THEN json('{}')
8
+ ELSE json_object('completionWebhookUrl', completion_webhook_url)
9
+ END
10
+ );
11
+
12
+ UPDATE automation_run_requests
13
+ SET automation_json = json_remove(
14
+ json_set(
15
+ automation_json,
16
+ '$.delivery',
17
+ json_patch(
18
+ json_object('notificationPolicy', COALESCE(json_extract(automation_json, '$.notificationPolicy'), 'attention')),
19
+ CASE WHEN json_extract(automation_json, '$.completionWebhookUrl') IS NULL
20
+ THEN json('{}')
21
+ ELSE json_object('completionWebhookUrl', json_extract(automation_json, '$.completionWebhookUrl'))
22
+ END
23
+ )
24
+ ),
25
+ '$.notificationPolicy',
26
+ '$.completionWebhookUrl'
27
+ );
28
+
29
+ ALTER TABLE automations DROP COLUMN notification_policy;
30
+ ALTER TABLE automations DROP COLUMN completion_webhook_url;
@@ -0,0 +1,188 @@
1
+ ALTER TABLE automation_event_deliveries RENAME TO automation_event_deliveries_v212;
2
+ ALTER TABLE automation_events RENAME TO automation_events_v212;
3
+
4
+ CREATE TABLE automation_events (
5
+ event_id TEXT PRIMARY KEY,
6
+ event_type TEXT NOT NULL,
7
+ schema_version INTEGER NOT NULL DEFAULT 1,
8
+ source TEXT NOT NULL,
9
+ subject_kind TEXT,
10
+ subject_id TEXT,
11
+ occurred_at_ms INTEGER NOT NULL,
12
+ ingested_at_ms INTEGER NOT NULL,
13
+ correlation_id TEXT NOT NULL,
14
+ causation_id TEXT,
15
+ root_event_id TEXT NOT NULL,
16
+ chain_depth INTEGER NOT NULL DEFAULT 0 CHECK(chain_depth BETWEEN 0 AND 32),
17
+ dedupe_key TEXT,
18
+ trust TEXT NOT NULL CHECK(trust IN ('system', 'user', 'connector', 'untrusted_webhook')),
19
+ payload_json TEXT NOT NULL,
20
+ projection_status TEXT NOT NULL DEFAULT 'pending'
21
+ CHECK(projection_status IN ('pending', 'projecting', 'retrying', 'projected', 'dead_letter')),
22
+ projected_at_ms INTEGER,
23
+ projection_attempts INTEGER NOT NULL DEFAULT 0,
24
+ projection_next_attempt_at_ms INTEGER NOT NULL DEFAULT 0,
25
+ projection_error TEXT,
26
+ projection_owner TEXT,
27
+ projection_lease_until_ms INTEGER
28
+ );
29
+
30
+ INSERT INTO automation_events (
31
+ event_id, event_type, schema_version, source, subject_kind, subject_id,
32
+ occurred_at_ms, ingested_at_ms, correlation_id, causation_id, root_event_id,
33
+ chain_depth, dedupe_key, trust, payload_json, projection_status,
34
+ projected_at_ms, projection_attempts, projection_next_attempt_at_ms, projection_error
35
+ )
36
+ SELECT event_id, event_type, schema_version, source, subject_kind, subject_id,
37
+ occurred_at_ms, ingested_at_ms, correlation_id, causation_id, root_event_id,
38
+ chain_depth, dedupe_key, trust, payload_json,
39
+ CASE WHEN projected_at_ms IS NULL THEN 'pending' ELSE 'projected' END,
40
+ projected_at_ms, projection_attempts, 0, projection_error
41
+ FROM automation_events_v212;
42
+
43
+ CREATE TABLE automation_event_deliveries (
44
+ event_id TEXT NOT NULL,
45
+ automation_id TEXT NOT NULL,
46
+ status TEXT NOT NULL CHECK(status IN ('pending', 'retrying', 'queued', 'completed', 'failed', 'cancelled', 'skipped', 'dead_letter')),
47
+ run_id TEXT,
48
+ attempts INTEGER NOT NULL DEFAULT 0,
49
+ next_attempt_at_ms INTEGER NOT NULL,
50
+ last_error TEXT,
51
+ lease_owner TEXT,
52
+ lease_until_ms INTEGER,
53
+ created_at_ms INTEGER NOT NULL,
54
+ updated_at_ms INTEGER NOT NULL,
55
+ PRIMARY KEY(event_id, automation_id),
56
+ FOREIGN KEY(event_id) REFERENCES automation_events(event_id) ON DELETE CASCADE
57
+ );
58
+
59
+ INSERT INTO automation_event_deliveries (
60
+ event_id, automation_id, status, run_id, attempts, next_attempt_at_ms,
61
+ last_error, created_at_ms, updated_at_ms
62
+ )
63
+ SELECT event_id, automation_id, status, run_id, attempts, next_attempt_at_ms,
64
+ last_error, created_at_ms, updated_at_ms
65
+ FROM automation_event_deliveries_v212;
66
+
67
+ DROP TABLE automation_event_deliveries_v212;
68
+ DROP TABLE automation_events_v212;
69
+
70
+ CREATE UNIQUE INDEX idx_automation_events_source_dedupe
71
+ ON automation_events(source, dedupe_key)
72
+ WHERE dedupe_key IS NOT NULL;
73
+ CREATE INDEX idx_automation_events_projection
74
+ ON automation_events(projection_status, projection_next_attempt_at_ms, ingested_at_ms);
75
+ CREATE UNIQUE INDEX idx_automation_event_deliveries_run
76
+ ON automation_event_deliveries(run_id)
77
+ WHERE run_id IS NOT NULL;
78
+ CREATE INDEX idx_automation_event_deliveries_pending
79
+ ON automation_event_deliveries(status, next_attempt_at_ms, created_at_ms);
80
+
81
+ ALTER TABLE automation_result_deliveries RENAME TO automation_result_deliveries_v212;
82
+
83
+ CREATE TABLE automation_results (
84
+ run_id TEXT PRIMARY KEY,
85
+ result_id TEXT NOT NULL UNIQUE,
86
+ result_json TEXT NOT NULL CHECK(json_valid(result_json)),
87
+ created_at_ms INTEGER NOT NULL,
88
+ FOREIGN KEY(run_id) REFERENCES automation_runs(run_id) ON DELETE CASCADE
89
+ );
90
+
91
+ INSERT INTO automation_results (run_id, result_id, result_json, created_at_ms)
92
+ SELECT DISTINCT d.run_id, 'result:' || d.run_id,
93
+ json_object(
94
+ 'schemaVersion', 1,
95
+ 'resultId', 'result:' || d.run_id,
96
+ 'runId', d.run_id,
97
+ 'automationId', r.automation_id,
98
+ 'status', r.status,
99
+ 'artifacts', json_array(),
100
+ 'correlationId', d.run_id,
101
+ 'rootEventId', d.run_id,
102
+ 'createdAtMs', r.created_at_ms,
103
+ 'completedAtMs', COALESCE(r.ended_at_ms, d.created_at_ms)
104
+ ),
105
+ d.created_at_ms
106
+ FROM automation_result_deliveries_v212 d
107
+ JOIN automation_runs r ON r.run_id = d.run_id;
108
+
109
+ CREATE TABLE automation_result_deliveries (
110
+ delivery_id TEXT NOT NULL UNIQUE,
111
+ run_id TEXT NOT NULL,
112
+ destination_key TEXT NOT NULL,
113
+ kind TEXT NOT NULL,
114
+ status TEXT NOT NULL CHECK(status IN ('pending', 'delivering', 'retrying', 'delivered', 'dead_letter')),
115
+ config_json TEXT NOT NULL,
116
+ attempts INTEGER NOT NULL DEFAULT 0,
117
+ next_attempt_at_ms INTEGER NOT NULL,
118
+ last_error TEXT,
119
+ lease_owner TEXT,
120
+ lease_until_ms INTEGER,
121
+ created_at_ms INTEGER NOT NULL,
122
+ updated_at_ms INTEGER NOT NULL,
123
+ PRIMARY KEY(run_id, destination_key),
124
+ FOREIGN KEY(run_id) REFERENCES automation_results(run_id) ON DELETE CASCADE
125
+ );
126
+
127
+ INSERT INTO automation_result_deliveries (
128
+ delivery_id, run_id, destination_key, kind, status, config_json, attempts,
129
+ next_attempt_at_ms, last_error, created_at_ms, updated_at_ms
130
+ )
131
+ SELECT lower(hex(randomblob(16))), run_id, destination_key, kind,
132
+ CASE status
133
+ WHEN 'delivered' THEN 'delivered'
134
+ WHEN 'failed' THEN 'dead_letter'
135
+ WHEN 'pending' THEN 'pending'
136
+ ELSE 'retrying'
137
+ END,
138
+ CASE WHEN kind = 'webhook' THEN json_object(
139
+ 'key', destination_key,
140
+ 'kind', 'webhook',
141
+ 'endpoint', COALESCE(json_extract(config_json, '$.endpoint'), json_extract(config_json, '$.url')),
142
+ 'secretId', COALESCE(json_extract(config_json, '$.secretId'), 'completion_webhook')
143
+ ) ELSE json_object('key', destination_key, 'kind', kind) END,
144
+ attempts, next_attempt_at_ms, last_error, created_at_ms, updated_at_ms
145
+ FROM automation_result_deliveries_v212
146
+ WHERE run_id IN (SELECT run_id FROM automation_results);
147
+
148
+ DROP TABLE automation_result_deliveries_v212;
149
+ CREATE INDEX idx_automation_result_deliveries_pending
150
+ ON automation_result_deliveries(status, next_attempt_at_ms, created_at_ms);
151
+
152
+ UPDATE automations
153
+ SET delivery_json = json_object(
154
+ 'notificationPolicy', COALESCE(json_extract(delivery_json, '$.notificationPolicy'), 'attention'),
155
+ 'destinations', CASE WHEN json_extract(delivery_json, '$.completionWebhookUrl') IS NULL
156
+ THEN json_array(json_object('key', 'gateway_event', 'kind', 'gateway_event'))
157
+ ELSE json_array(
158
+ json_object('key', 'gateway_event', 'kind', 'gateway_event'),
159
+ json_object(
160
+ 'key', 'completion_webhook',
161
+ 'kind', 'webhook',
162
+ 'endpoint', json_extract(delivery_json, '$.completionWebhookUrl'),
163
+ 'secretId', 'completion_webhook'
164
+ )
165
+ )
166
+ END
167
+ );
168
+
169
+ UPDATE automation_run_requests
170
+ SET automation_json = json_set(
171
+ automation_json,
172
+ '$.delivery',
173
+ json_object(
174
+ 'notificationPolicy', COALESCE(json_extract(automation_json, '$.delivery.notificationPolicy'), 'attention'),
175
+ 'destinations', CASE WHEN json_extract(automation_json, '$.delivery.completionWebhookUrl') IS NULL
176
+ THEN json_array(json_object('key', 'gateway_event', 'kind', 'gateway_event'))
177
+ ELSE json_array(
178
+ json_object('key', 'gateway_event', 'kind', 'gateway_event'),
179
+ json_object(
180
+ 'key', 'completion_webhook',
181
+ 'kind', 'webhook',
182
+ 'endpoint', json_extract(automation_json, '$.delivery.completionWebhookUrl'),
183
+ 'secretId', 'completion_webhook'
184
+ )
185
+ )
186
+ END
187
+ )
188
+ );
@@ -0,0 +1,41 @@
1
+ CREATE TABLE ai_usage_events (
2
+ id TEXT PRIMARY KEY,
3
+ trace_id TEXT NOT NULL,
4
+ parent_event_id TEXT,
5
+ conversation_id TEXT,
6
+ run_id TEXT,
7
+ agent_id TEXT,
8
+ category TEXT NOT NULL,
9
+ operation TEXT NOT NULL,
10
+ trigger_kind TEXT NOT NULL,
11
+ reason_key TEXT NOT NULL,
12
+ provider TEXT NOT NULL,
13
+ model TEXT NOT NULL,
14
+ status TEXT NOT NULL CHECK(status IN ('running', 'succeeded', 'failed', 'aborted', 'unknown')),
15
+ started_at INTEGER NOT NULL,
16
+ finished_at INTEGER,
17
+ duration_ms INTEGER,
18
+ input_tokens INTEGER,
19
+ output_tokens INTEGER,
20
+ cache_read_tokens INTEGER,
21
+ cache_write_tokens INTEGER,
22
+ reasoning_tokens INTEGER,
23
+ total_tokens INTEGER,
24
+ estimated_cost_microusd INTEGER,
25
+ cost_source TEXT NOT NULL CHECK(cost_source IN ('model_catalog', 'local', 'unknown')),
26
+ pricing_snapshot_json TEXT,
27
+ error_summary TEXT,
28
+ created_at INTEGER NOT NULL,
29
+ updated_at INTEGER NOT NULL
30
+ );
31
+
32
+ CREATE INDEX idx_ai_usage_events_started
33
+ ON ai_usage_events(started_at DESC, id DESC);
34
+ CREATE INDEX idx_ai_usage_events_conversation
35
+ ON ai_usage_events(conversation_id, started_at DESC);
36
+ CREATE INDEX idx_ai_usage_events_trace
37
+ ON ai_usage_events(trace_id, started_at ASC);
38
+ CREATE INDEX idx_ai_usage_events_agent
39
+ ON ai_usage_events(agent_id, started_at DESC);
40
+ CREATE INDEX idx_ai_usage_events_category
41
+ ON ai_usage_events(category, started_at DESC);
@@ -0,0 +1,6 @@
1
+ -- Direct cutover: task-backed scenes are claimed by the task execution adapter.
2
+ -- Existing activations keep their template identity; no compatibility runtime remains.
3
+ UPDATE scene_template_versions
4
+ SET manifest_json = json_set(manifest_json, '$.execution.kind', 'task'),
5
+ content_hash = '4e0e6b0bfb597c06c81e34898f64af6b45b6d8705b65d1f4665d8027cddf5406'
6
+ WHERE template_key = 'task-follow-up' AND version = '1.0.0';
@@ -0,0 +1 @@
1
+ DROP TABLE IF EXISTS scene_model_usage;
@@ -0,0 +1,4 @@
1
+ DROP TABLE IF EXISTS memory_relations;
2
+ DROP TABLE IF EXISTS memory_fts;
3
+ DROP TABLE IF EXISTS memory_chunks;
4
+ DROP TABLE IF EXISTS memory_files;
@@ -0,0 +1,26 @@
1
+ CREATE INDEX idx_task_runs_contract
2
+ ON task_runs(task_id, contract_version);
3
+ CREATE INDEX idx_task_runs_conversation
4
+ ON task_runs(conversation_id);
5
+ CREATE INDEX idx_task_runs_parent
6
+ ON task_runs(parent_run_id);
7
+ CREATE INDEX idx_task_runs_retry
8
+ ON task_runs(retry_of_run_id);
9
+ CREATE INDEX idx_task_runs_context_snapshot
10
+ ON task_runs(context_snapshot_id);
11
+ CREATE INDEX idx_task_run_feedback_run
12
+ ON task_run_feedback(run_id);
13
+ CREATE INDEX idx_work_discovery_runs_conversation
14
+ ON work_discovery_runs(conversation_id);
15
+ CREATE INDEX idx_connector_execution_audit_connection
16
+ ON connector_execution_audit(connection_id);
17
+ CREATE INDEX idx_connector_execution_audit_installation
18
+ ON connector_execution_audit(installation_id);
19
+ CREATE INDEX idx_connector_learning_jobs_connection
20
+ ON connector_learning_jobs(connection_id);
21
+ CREATE INDEX idx_connector_approvals_connection
22
+ ON connector_approvals(connection_id);
23
+ CREATE INDEX idx_knowledge_source_changes_item
24
+ ON knowledge_source_changes(source_item_id);
25
+ CREATE INDEX idx_notification_deliveries_device
26
+ ON notification_deliveries(device_id);
@@ -0,0 +1,123 @@
1
+ CREATE TABLE automations_next (
2
+ automation_id TEXT PRIMARY KEY,
3
+ name TEXT NOT NULL,
4
+ description TEXT,
5
+ enabled INTEGER NOT NULL,
6
+ trigger_json TEXT NOT NULL CHECK(json_valid(trigger_json)),
7
+ action_json TEXT NOT NULL CHECK(json_valid(action_json)),
8
+ reliability_json TEXT CHECK(reliability_json IS NULL OR json_valid(reliability_json)),
9
+ state_json TEXT NOT NULL DEFAULT '{}' CHECK(json_valid(state_json)),
10
+ created_at_ms INTEGER NOT NULL,
11
+ updated_at_ms INTEGER NOT NULL,
12
+ safety_json TEXT CHECK(safety_json IS NULL OR json_valid(safety_json)),
13
+ project_id TEXT,
14
+ conversation_mode TEXT NOT NULL DEFAULT 'new_session'
15
+ CHECK(conversation_mode IN ('new_session', 'continuous')),
16
+ management_json TEXT CHECK(management_json IS NULL OR json_valid(management_json)),
17
+ delivery_json TEXT NOT NULL CHECK(json_valid(delivery_json))
18
+ );
19
+
20
+ INSERT INTO automations_next SELECT * FROM automations;
21
+ DROP TABLE automations;
22
+ ALTER TABLE automations_next RENAME TO automations;
23
+ CREATE INDEX idx_automations_enabled ON automations(enabled, updated_at_ms DESC);
24
+ CREATE INDEX idx_automations_updated ON automations(updated_at_ms DESC);
25
+ CREATE INDEX idx_automations_project ON automations(project_id, updated_at_ms DESC);
26
+
27
+ CREATE TABLE automation_events_next (
28
+ event_id TEXT PRIMARY KEY,
29
+ event_type TEXT NOT NULL,
30
+ schema_version INTEGER NOT NULL DEFAULT 1,
31
+ source TEXT NOT NULL,
32
+ subject_kind TEXT,
33
+ subject_id TEXT,
34
+ occurred_at_ms INTEGER NOT NULL,
35
+ ingested_at_ms INTEGER NOT NULL,
36
+ correlation_id TEXT NOT NULL,
37
+ causation_id TEXT,
38
+ root_event_id TEXT NOT NULL,
39
+ chain_depth INTEGER NOT NULL DEFAULT 0 CHECK(chain_depth BETWEEN 0 AND 32),
40
+ dedupe_key TEXT,
41
+ trust TEXT NOT NULL CHECK(trust IN ('system', 'user', 'connector', 'untrusted_webhook')),
42
+ payload_json TEXT NOT NULL CHECK(json_valid(payload_json)),
43
+ projection_status TEXT NOT NULL DEFAULT 'pending'
44
+ CHECK(projection_status IN ('pending', 'projecting', 'retrying', 'projected', 'dead_letter')),
45
+ projected_at_ms INTEGER,
46
+ projection_attempts INTEGER NOT NULL DEFAULT 0,
47
+ projection_next_attempt_at_ms INTEGER NOT NULL DEFAULT 0,
48
+ projection_error TEXT,
49
+ projection_owner TEXT,
50
+ projection_lease_until_ms INTEGER
51
+ );
52
+
53
+ INSERT INTO automation_events_next SELECT * FROM automation_events;
54
+ DROP TABLE automation_events;
55
+ ALTER TABLE automation_events_next RENAME TO automation_events;
56
+ CREATE UNIQUE INDEX idx_automation_events_source_dedupe
57
+ ON automation_events(source, dedupe_key) WHERE dedupe_key IS NOT NULL;
58
+ CREATE INDEX idx_automation_events_projection
59
+ ON automation_events(projection_status, projection_next_attempt_at_ms, ingested_at_ms);
60
+
61
+ CREATE TABLE automation_result_deliveries_next (
62
+ delivery_id TEXT NOT NULL UNIQUE,
63
+ run_id TEXT NOT NULL,
64
+ destination_key TEXT NOT NULL,
65
+ kind TEXT NOT NULL,
66
+ status TEXT NOT NULL CHECK(status IN ('pending', 'delivering', 'retrying', 'delivered', 'dead_letter')),
67
+ config_json TEXT NOT NULL CHECK(json_valid(config_json)),
68
+ attempts INTEGER NOT NULL DEFAULT 0,
69
+ next_attempt_at_ms INTEGER NOT NULL,
70
+ last_error TEXT,
71
+ lease_owner TEXT,
72
+ lease_until_ms INTEGER,
73
+ created_at_ms INTEGER NOT NULL,
74
+ updated_at_ms INTEGER NOT NULL,
75
+ PRIMARY KEY(run_id, destination_key),
76
+ FOREIGN KEY(run_id) REFERENCES automation_results(run_id) ON DELETE CASCADE
77
+ );
78
+
79
+ INSERT INTO automation_result_deliveries_next SELECT * FROM automation_result_deliveries;
80
+ DROP TABLE automation_result_deliveries;
81
+ ALTER TABLE automation_result_deliveries_next RENAME TO automation_result_deliveries;
82
+ CREATE INDEX idx_automation_result_deliveries_pending
83
+ ON automation_result_deliveries(status, next_attempt_at_ms, created_at_ms);
84
+
85
+ CREATE TABLE ai_usage_events_next (
86
+ id TEXT PRIMARY KEY,
87
+ trace_id TEXT NOT NULL,
88
+ parent_event_id TEXT,
89
+ conversation_id TEXT,
90
+ run_id TEXT,
91
+ agent_id TEXT,
92
+ category TEXT NOT NULL,
93
+ operation TEXT NOT NULL,
94
+ trigger_kind TEXT NOT NULL,
95
+ reason_key TEXT NOT NULL,
96
+ provider TEXT NOT NULL,
97
+ model TEXT NOT NULL,
98
+ status TEXT NOT NULL CHECK(status IN ('running', 'succeeded', 'failed', 'aborted', 'unknown')),
99
+ started_at INTEGER NOT NULL,
100
+ finished_at INTEGER,
101
+ duration_ms INTEGER,
102
+ input_tokens INTEGER,
103
+ output_tokens INTEGER,
104
+ cache_read_tokens INTEGER,
105
+ cache_write_tokens INTEGER,
106
+ reasoning_tokens INTEGER,
107
+ total_tokens INTEGER,
108
+ estimated_cost_microusd INTEGER,
109
+ cost_source TEXT NOT NULL CHECK(cost_source IN ('model_catalog', 'local', 'unknown')),
110
+ pricing_snapshot_json TEXT CHECK(pricing_snapshot_json IS NULL OR json_valid(pricing_snapshot_json)),
111
+ error_summary TEXT,
112
+ created_at INTEGER NOT NULL,
113
+ updated_at INTEGER NOT NULL
114
+ );
115
+
116
+ INSERT INTO ai_usage_events_next SELECT * FROM ai_usage_events;
117
+ DROP TABLE ai_usage_events;
118
+ ALTER TABLE ai_usage_events_next RENAME TO ai_usage_events;
119
+ CREATE INDEX idx_ai_usage_events_started ON ai_usage_events(started_at DESC, id DESC);
120
+ CREATE INDEX idx_ai_usage_events_conversation ON ai_usage_events(conversation_id, started_at DESC);
121
+ CREATE INDEX idx_ai_usage_events_trace ON ai_usage_events(trace_id, started_at ASC);
122
+ CREATE INDEX idx_ai_usage_events_agent ON ai_usage_events(agent_id, started_at DESC);
123
+ CREATE INDEX idx_ai_usage_events_category ON ai_usage_events(category, started_at DESC);