@xopcai/xopc 0.0.313 → 0.0.315
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.
- package/dist/browser-ext/dist/assets/{auth-C3yV1y_l.js → auth-DKo-NMUY.js} +18 -1
- package/dist/browser-ext/dist/background.js +68 -2
- package/dist/browser-ext/dist/sidepanel.html +1 -1
- package/dist/browser-ext/dist/sidepanel.js +1 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.js +3 -3
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +1 -1
- package/dist/extensions/telegram/src/outbound-sender.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +2 -2
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +2 -2
- package/dist/extensions/weixin/src/auth/accounts.js +12 -12
- package/dist/extensions/weixin/src/messaging/debug-mode.js +5 -5
- package/dist/extensions/weixin/src/messaging/inbound.js +11 -11
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-C73s_EYF.js → agent-avatar-dicebear-BbFOF2SH.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-D9T-QGmd.js +1 -0
- package/dist/gateway/static/root/assets/agents-Ds5sQcPd.js +1 -0
- package/dist/gateway/static/root/assets/{api-Com7kQuw.js → api-BzloAiIG.js} +1 -1
- package/dist/gateway/static/root/assets/{app-link-CKueEVbT.js → app-link-nL8iPwEr.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-DSo_SV6G.js → app-management-settings-panel-BpUHskXq.js} +1 -1
- package/dist/gateway/static/root/assets/appearance-settings-CQd5Vo6f.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-B7VIsfye.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-BWueu3Qt.js → archive-plugin-BM4O6WfL.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-DYV25sAC.js → attachment-load-Cdn9MYmI.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-Du8AkHrH.js → automations-page-DnRx-Ra4.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-B5s10G5F.js +7 -0
- package/dist/gateway/static/root/assets/{binary-plugins-rahoUE_-.js → binary-plugins-dkhUf4bm.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CVbiuQ90.js → block-editor-BTzqEuAy.js} +29 -29
- package/dist/gateway/static/root/assets/{browser-automation-inputs-CAC4w9KM.js → browser-automation-inputs-Bowij-nJ.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-B3-fdrAr.js → browser-automations-page-CQ7SYTQj.js} +2 -2
- package/dist/gateway/static/root/assets/browser-settings-page-vqLoPOOg.js +3 -0
- package/dist/gateway/static/root/assets/capabilities-D0S3DuAD.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DI68WGYd.js +8 -0
- package/dist/gateway/static/root/assets/channels-settings-Cimssy-S.js +1 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-98GzKJ0K.js → chat-terminal-dock-DzgFHd6l.js} +2 -2
- package/dist/gateway/static/root/assets/{computer-settings-page-CB3mySQb.js → computer-settings-page-380_vIqO.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-ZlbIXdey.js → connector-service-page-DILFakXb.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-COmFp9HC.js +2 -0
- package/dist/gateway/static/root/assets/conversation-identity-Cw0n9uzK.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-WW3fY-ng.js → date-picker-CRVun-T5.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-D1QgzM_s.js → dependency-picker-BoWqt5yU.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-D0MtbTwu.js → desktop-pet-DPlkBjft.js} +1 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-D7FgfX_K.js +1 -0
- package/dist/gateway/static/root/assets/device-pairing-wizard-BP6yxut8.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-BOtWAAGM.js → extension-debug-page-CT_QkSN_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-FULvawj8.js → extension-page-BF1NdcKP.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-Dzh6lE26.js → extension-settings-page-CKQVZ3Xc.js} +1 -1
- package/dist/gateway/static/root/assets/files-BK6enEvD.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-D7SG_ECs.js → gateway-config-swr-BPsZPoAT.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-3bIy7XMr.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-CrHz00-9.js → gateway-startup-retry-cG6EqUJw.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-DFNDLFgv.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-DGiHzeLb.js → image-generation-api-DI_QutIx.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-DiJrgu9D.js → imports-page-BUG6G72F.js} +1 -1
- package/dist/gateway/static/root/assets/index-BCi8nfxs.js +89 -0
- package/dist/gateway/static/root/assets/index-DWgd1VK2.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DZ60sucF.js → keyboard-shortcuts-settings-qnG-4FJs.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-B3iJWhjN.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-Cx2YuI8E.js → local-apps-page-BpEGeURS.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-vZTDIqJB.js → locale-store-BlgpZORR.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-0QPGj-5c.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-Sl0wwidS.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-view-DJfzcZCW.js → markdown-view-BzjjpL2H.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-COpQGcN3.js → media-plugins-Bzkdhotn.js} +1 -1
- package/dist/gateway/static/root/assets/messages-2GhUD7SC.js +3 -0
- package/dist/gateway/static/root/assets/note-detail-panel-BXtD71j1.js +5 -0
- package/dist/gateway/static/root/assets/notes-page-DNY4vW-u.js +8 -0
- package/dist/gateway/static/root/assets/page-context-capture-button-CFt4hXQ6.js +1 -0
- package/dist/gateway/static/root/assets/{page-tabs-nARdLZcP.js → page-tabs-Dz_x22MQ.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-BEJg3fTq.js → preview-open-alternatives-C1mkgFAl.js} +1 -1
- package/dist/gateway/static/root/assets/product-delivery-chCjIpvu.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-CR4Lehku.js → product-open-page-DHZgzSDV.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-D3NhZ7ZZ.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-CEr8DX9I.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-CF-nJ5MG.js → registry-api-DMW2apOO.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Db-B-Mf3.js +1 -0
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-DEJi0BLL.js +5 -0
- package/dist/gateway/static/root/assets/scenes-page-BUUX-PnI.js +2 -0
- package/dist/gateway/static/root/assets/{schema-form-DOsDKbWU.js → schema-form-RVltVpuG.js} +1 -1
- package/dist/gateway/static/root/assets/schemas-88fK3zzl.js +64 -0
- package/dist/gateway/static/root/assets/sessions-page-Rm4H2okS.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-VxPItcOG.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-kIV5M-9G.js → settings-form-section-BkBO7woF.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-B39PogyD.js → settings-page-layout-lLvHc-zF.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-C2TS9mvq.js → settings-page-zl0XY203.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-Difrpr4T.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-CMbgRZ7w.js → share-preview-page-NC4Gj867.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-DPLvEcB-.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-CKdLCf_-.js +1 -0
- package/dist/gateway/static/root/assets/{skills-page-DV4FX1ev.js → skills-page-CzekvBNQ.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page.utils-C-2lmZHk.js → skills-page.utils-BLeiN245.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-CQ1Z6i28.js → system-settings-panel-Bp75s9nl.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-Bh8H4FYR.js +1 -0
- package/dist/gateway/static/root/assets/tasks-CDR_RVbQ.js +1 -0
- package/dist/gateway/static/root/assets/{tunnel-api-tn6H0D44.js → tunnel-api-BDiaC6an.js} +1 -1
- package/dist/gateway/static/root/assets/turn-outcome-D0SnyZ3Z.js +1 -0
- package/dist/gateway/static/root/assets/{use-autosave-CkEM9tXu.js → use-autosave-C_ntK_Zu.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-C7gFCGAV.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-d0Fawetf.js → voice-api-key-field-D4cfuMp1.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-D_8zU7Li.js → voice-config-api-Cjvd6maH.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-C5FFSieF.js → work-discovery-overlay-Ce6ToB0O.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-q5ammR4k.js → workflow-run-setup-panel-C80nrmKi.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-CVQjo3RI.js +6 -0
- package/dist/gateway/static/root/index.html +16 -16
- package/dist/package.js +1 -1
- package/dist/packages/computer-control-contract/src/index.js +10 -1
- package/dist/packages/gateway-contract/src/app-context.js +55 -0
- package/dist/packages/gateway-contract/src/automations.js +16 -17
- package/dist/packages/gateway-contract/src/capabilities.js +1078 -0
- package/dist/packages/gateway-contract/src/extension-capabilities.js +26 -0
- package/dist/packages/gateway-contract/src/home.js +3 -3
- package/dist/packages/gateway-contract/src/index.js +8 -0
- package/dist/packages/gateway-contract/src/product-delivery.js +19 -4
- package/dist/packages/gateway-contract/src/scenes.js +199 -0
- package/dist/packages/gateway-contract/src/task-runs.js +8 -4
- package/dist/packages/gateway-contract/src/tasks.js +5 -4
- package/dist/packages/realtime-client/src/index.js +17 -4
- package/dist/src/agent/agent-manager.d.ts +1 -0
- package/dist/src/agent/agent-manager.js +19 -18
- package/dist/src/agent/agent-scope.js +2 -2
- package/dist/src/agent/background-review/run-background-review.js +4 -4
- package/dist/src/agent/child-agent-factory.d.ts +2 -0
- package/dist/src/agent/child-agent-factory.js +5 -0
- package/dist/src/agent/coding/repository-instructions.js +1 -1
- package/dist/src/agent/commands/approved-verification.d.ts +14 -0
- package/dist/src/agent/commands/approved-verification.js +48 -0
- package/dist/src/agent/context/coordinator.js +2 -2
- package/dist/src/agent/context/execution-context.js +4 -4
- package/dist/src/agent/context/execution-scope.js +4 -3
- package/dist/src/agent/context/project-context.js +5 -4
- package/dist/src/agent/data-acquisition/service.js +1 -1
- package/dist/src/agent/embedded/index.js +2 -2
- package/dist/src/agent/embedded/model-runtime.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +4 -4
- package/dist/src/agent/embedded/run-turn.js +4 -4
- package/dist/src/agent/embedded/session-tool-result-guard.js +3 -3
- package/dist/src/agent/embedded/tool-result-truncation.js +1 -1
- package/dist/src/agent/external-tools/cliProvider.js +126 -78
- package/dist/src/agent/external-tools/composio-provider.d.ts +1 -1
- package/dist/src/agent/external-tools/composio-provider.js +73 -15
- package/dist/src/agent/external-tools/endpoint-provider.js +14 -1
- package/dist/src/agent/external-tools/gateway-tools.js +1 -1
- package/dist/src/agent/external-tools/mcp-provider.js +2 -2
- package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
- package/dist/src/agent/image/generation/providers/dashscope.js +1 -1
- package/dist/src/agent/image/generation/providers/fal.js +1 -1
- package/dist/src/agent/image/generation/providers/google.js +1 -1
- package/dist/src/agent/image/generation/runtime.js +1 -1
- package/dist/src/agent/image/index.js +1 -1
- package/dist/src/agent/image/load-image-media.js +1 -1
- package/dist/src/agent/image/tool-model-config.js +1 -1
- package/dist/src/agent/inbound/attachment-pipeline.js +1 -1
- package/dist/src/agent/inbound/inbound-loop.js +2 -2
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +2 -0
- package/dist/src/agent/inbound/turn-dispatcher.js +2 -1
- package/dist/src/agent/index.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-gateway.d.ts +39 -0
- package/dist/src/agent/mcp/bundle-mcp-gateway.js +33 -2
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +12 -1
- package/dist/src/agent/mcp/bundle-mcp-types.d.ts +2 -1
- package/dist/src/agent/mcp/index.js +2 -2
- package/dist/src/agent/mcp/mcp-resource-id.d.ts +6 -0
- package/dist/src/agent/mcp/mcp-resource-id.js +19 -0
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/mcp/oauth/mcp-oauth-store.js +1 -1
- package/dist/src/agent/memory/compaction-chunks.d.ts +6 -1
- package/dist/src/agent/memory/compaction-chunks.js +16 -3
- package/dist/src/agent/memory/compaction-ledger.d.ts +3 -1
- package/dist/src/agent/memory/compaction-ledger.js +31 -18
- package/dist/src/agent/memory/compaction-request.d.ts +2 -0
- package/dist/src/agent/memory/compaction-request.js +6 -1
- package/dist/src/agent/memory/compaction.d.ts +19 -1
- package/dist/src/agent/memory/compaction.js +112 -30
- package/dist/src/agent/memory/context-recovery.js +1 -1
- package/dist/src/agent/memory/index.js +2 -2
- package/dist/src/agent/orchestration/agent-orchestrator.js +5 -5
- package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
- package/dist/src/agent/sandbox/exec-policy.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +5 -5
- package/dist/src/agent/service/process-direct-one-shot.js +1 -1
- package/dist/src/agent/service/process-direct-streaming.d.ts +3 -0
- package/dist/src/agent/service/process-direct-streaming.js +21 -12
- package/dist/src/agent/service/webchat-tts.js +1 -1
- package/dist/src/agent/service.js +22 -21
- package/dist/src/agent/service.types.d.ts +1 -0
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/config.js +2 -0
- package/dist/src/agent/skills/filesystem-watcher.js +1 -1
- package/dist/src/agent/skills/format-skills-prompt.js +14 -1
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +3 -3
- package/dist/src/agent/skills/index.js +16 -8
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +1 -1
- package/dist/src/agent/skills/types.d.ts +1 -1
- package/dist/src/agent/source-context/app-context.d.ts +4 -0
- package/dist/src/agent/source-context/app-context.js +36 -0
- package/dist/src/agent/source-context/browser-tab.d.ts +3 -0
- package/dist/src/agent/source-context/browser-tab.js +29 -0
- package/dist/src/agent/source-context/file-context.d.ts +3 -0
- package/dist/src/agent/source-context/file-context.js +64 -0
- package/dist/src/agent/source-context/index.d.ts +4 -0
- package/dist/src/agent/source-context/index.js +5 -1
- package/dist/src/agent/source-context/injector.js +2 -1
- package/dist/src/agent/source-context/mcp-resource-context.d.ts +8 -0
- package/dist/src/agent/source-context/mcp-resource-context.js +30 -0
- package/dist/src/agent/source-context/session-context.d.ts +8 -0
- package/dist/src/agent/source-context/session-context.js +33 -0
- package/dist/src/agent/source-context/types.d.ts +12 -2
- package/dist/src/agent/source-context/types.js +3 -2
- package/dist/src/agent/tasks/task-judge-service.js +6 -5
- package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
- package/dist/src/agent/tool-manuals/computer.js +1 -1
- package/dist/src/agent/tools/automation-tool.d.ts +12 -1
- package/dist/src/agent/tools/automation-tool.js +106 -32
- package/dist/src/agent/tools/create-share-tool.js +4 -4
- package/dist/src/agent/tools/dataBatch.js +1 -1
- package/dist/src/agent/tools/delegate-tool.js +3 -3
- package/dist/src/agent/tools/delegation-parent-policy.js +1 -1
- package/dist/src/agent/tools/executor.js +1 -1
- package/dist/src/agent/tools/factory.d.ts +1 -0
- package/dist/src/agent/tools/factory.js +22 -17
- package/dist/src/agent/tools/fetch-text.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +3 -3
- package/dist/src/agent/tools/index.js +6 -6
- package/dist/src/agent/tools/list-dir.js +1 -1
- package/dist/src/agent/tools/publish-artifacts.js +2 -2
- package/dist/src/agent/tools/read.js +2 -2
- package/dist/src/agent/tools/review-workspace.js +1 -1
- package/dist/src/agent/tools/scoped-workspace-tools.d.ts +8 -0
- package/dist/src/agent/tools/scoped-workspace-tools.js +81 -0
- package/dist/src/agent/tools/send-media.js +2 -2
- package/dist/src/agent/tools/skills-tools.js +1 -1
- package/dist/src/agent/tools/user-context-tool.js +1 -1
- package/dist/src/agent/tools/write.js +2 -2
- package/dist/src/agent/tools/xopc-use-tool.d.ts +6 -3
- package/dist/src/agent/tools/xopc-use-tool.js +997 -908
- package/dist/src/agent/workflow/subagent-runner.js +2 -1
- package/dist/src/agent-config/index.js +2 -2
- package/dist/src/agent-config/schema.d.ts +5 -0
- package/dist/src/agent-config/schema.js +14 -10
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/oauth/xopc-cloud.js +1 -1
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/auth/sync-provider-auth.js +2 -2
- package/dist/src/automations/api/routes.js +244 -164
- package/dist/src/automations/capabilities/drafts.d.ts +4 -0
- package/dist/src/automations/capabilities/drafts.js +95 -0
- package/dist/src/automations/capabilities/read.d.ts +4 -0
- package/dist/src/automations/capabilities/read.js +119 -0
- package/dist/src/automations/capabilities/write.d.ts +349 -0
- package/dist/src/automations/capabilities/write.js +172 -0
- package/dist/src/automations/domain/index.js +2 -2
- package/dist/src/automations/domain/validation.d.ts +77 -77
- package/dist/src/automations/domain/validation.js +9 -6
- package/dist/src/automations/draft/automation-draft-validator.d.ts +2 -2
- package/dist/src/automations/index.js +6 -6
- package/dist/src/automations/service/automation-service.d.ts +31 -0
- package/dist/src/automations/service/automation-service.js +213 -75
- package/dist/src/automations/service/index.js +2 -2
- package/dist/src/automations/storage/automation-repository.d.ts +2 -0
- package/dist/src/automations/storage/automation-repository.js +9 -1
- package/dist/src/automations/storage/automation-run-repository.d.ts +4 -1
- package/dist/src/automations/storage/automation-run-repository.js +16 -3
- package/dist/src/automations/storage/index.js +3 -3
- package/dist/src/browser/automations/schema.d.ts +1 -1
- package/dist/src/browser/automations/service.d.ts +1 -1
- package/dist/src/browser/observation/format.js +4 -0
- package/dist/src/browser/providers/browser-ext-install.js +1 -1
- package/dist/src/capabilities/adapters/http.d.ts +4 -0
- package/dist/src/capabilities/adapters/http.js +44 -0
- package/dist/src/capabilities/readiness/from-config.js +11 -7
- package/dist/src/capabilities/runtime/app-context.d.ts +3 -0
- package/dist/src/capabilities/runtime/app-context.js +72 -0
- package/dist/src/capabilities/runtime/atomic-operations.d.ts +11 -0
- package/dist/src/capabilities/runtime/atomic-operations.js +34 -0
- package/dist/src/capabilities/runtime/dispatcher.d.ts +67 -0
- package/dist/src/capabilities/runtime/dispatcher.js +170 -0
- package/dist/src/capabilities/runtime/errors.d.ts +6 -0
- package/dist/src/capabilities/runtime/errors.js +11 -0
- package/dist/src/capabilities/runtime/external-operations.d.ts +16 -0
- package/dist/src/capabilities/runtime/external-operations.js +92 -0
- package/dist/src/capabilities/runtime/product.d.ts +12 -0
- package/dist/src/capabilities/runtime/product.js +69 -0
- package/dist/src/capabilities/runtime/settings.d.ts +3 -0
- package/dist/src/capabilities/runtime/settings.js +27 -0
- package/dist/src/capabilities/store-connector.js +1 -1
- package/dist/src/channels/attachments/voice-stt-webchat.js +2 -2
- package/dist/src/channels/index.js +2 -2
- package/dist/src/channels/pairing/allow-from-file.js +9 -9
- package/dist/src/channels/pairing/pairing-store.js +6 -6
- package/dist/src/chat-commands/agent-edit.js +1 -1
- package/dist/src/chat-commands/builtins/config.js +1 -1
- package/dist/src/chat-commands/builtins/review.js +1 -1
- package/dist/src/chat-commands/builtins/thinking.js +1 -1
- package/dist/src/chat-commands/builtins/tts.js +1 -1
- package/dist/src/chat-commands/builtins/understanding.js +1 -1
- package/dist/src/chat-commands/builtins/workflow.js +2 -2
- package/dist/src/chat-commands/context.js +2 -2
- package/dist/src/chat-commands/index.js +2 -2
- package/dist/src/cli/cli-log-level-preset.d.ts +2 -0
- package/dist/src/cli/cli-log-level-preset.js +4 -0
- package/dist/src/cli/command-catalog.js +4 -0
- package/dist/src/cli/command-loaders.js +1 -0
- package/dist/src/cli/command-manifest.js +4 -0
- package/dist/src/cli/commands/agent.js +7 -7
- package/dist/src/cli/commands/agents.js +1 -1
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +3 -3
- package/dist/src/cli/commands/extension-dev.js +1 -1
- package/dist/src/cli/commands/extension.js +1 -1
- package/dist/src/cli/commands/gateway/shared.js +1 -1
- package/dist/src/cli/commands/gateway/token.js +1 -1
- package/dist/src/cli/commands/image.js +1 -1
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/mcp.d.ts +1 -0
- package/dist/src/cli/commands/mcp.js +51 -0
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/project.js +2 -2
- package/dist/src/cli/commands/runtime.js +1 -1
- package/dist/src/cli/commands/skills.js +2 -2
- package/dist/src/cli/commands/tunnel.js +3 -3
- package/dist/src/cli/extension-cli-register.js +4 -4
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/computer/broker.d.ts +0 -1
- package/dist/src/computer/broker.js +4 -6
- package/dist/src/computer/evaluation-harness.d.ts +45 -0
- package/dist/src/computer/evaluation-harness.js +108 -0
- package/dist/src/computer/model-adapter.d.ts +37 -2
- package/dist/src/computer/model-adapter.js +333 -42
- package/dist/src/computer/model-policy.d.ts +4 -1
- package/dist/src/computer/model-policy.js +11 -3
- package/dist/src/computer/release-gate.d.ts +22 -0
- package/dist/src/computer/release-gate.js +19 -0
- package/dist/src/computer/runtime.js +16 -12
- package/dist/src/computer/task-state.d.ts +1 -0
- package/dist/src/computer/task-state.js +1 -0
- package/dist/src/config/index.js +5 -5
- package/dist/src/config/loader.js +2 -2
- package/dist/src/config/models-json.d.ts +6 -0
- package/dist/src/config/models-json.js +3 -3
- package/dist/src/config/schema.d.ts +4 -0
- package/dist/src/config/schema.js +4 -10
- package/dist/src/connectors/cli/authorization.js +1 -1
- package/dist/src/connectors/cli/runtime.js +1 -1
- package/dist/src/connectors/composio-sessions.d.ts +4 -2
- package/dist/src/connectors/composio-sessions.js +11 -10
- package/dist/src/connectors/composio.js +11 -9
- package/dist/src/connectors/connected-source-understanding.js +2 -2
- package/dist/src/connectors/connection-recovery-service.js +5 -5
- package/dist/src/connectors/health.js +1 -1
- package/dist/src/discussions/action-tasks.js +2 -1
- package/dist/src/discussions/live-worker.js +1 -1
- package/dist/src/discussions/recording.js +1 -1
- package/dist/src/discussions/sealer.js +1 -1
- package/dist/src/execution-environments/local-worktree-manager.d.ts +1 -0
- package/dist/src/execution-environments/local-worktree-manager.js +13 -2
- package/dist/src/extensions/activation-context.js +3 -3
- package/dist/src/extensions/api.js +3 -3
- package/dist/src/extensions/bundled-extension-activation.js +1 -1
- package/dist/src/extensions/index.js +1 -1
- package/dist/src/extensions/loader.js +1 -1
- package/dist/src/extensions/lockfile.js +1 -1
- package/dist/src/extensions/normalize-manifest.js +6 -1
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/extensions/sdk/media.js +1 -1
- package/dist/src/extensions/types/manifest.d.ts +3 -0
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agents-admin.js +4 -4
- package/dist/src/gateway/chat-stream/mapper.js +3 -2
- package/dist/src/gateway/device-routes.js +2 -2
- package/dist/src/gateway/file-path-classifier.js +2 -2
- package/dist/src/gateway/global-defaults-admin.js +1 -1
- package/dist/src/gateway/hono/app.js +3 -3
- package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -0
- package/dist/src/gateway/hono/lib/config-payload.js +3 -3
- package/dist/src/gateway/hono/middleware/scopes.js +1 -1
- package/dist/src/gateway/hono/routes/agent-stream.js +2 -2
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +6 -3
- package/dist/src/gateway/hono/routes/browser.js +33 -1
- package/dist/src/gateway/hono/routes/capability-operations.d.ts +3 -0
- package/dist/src/gateway/hono/routes/capability-operations.js +52 -0
- package/dist/src/gateway/hono/routes/commands-skills.js +3 -3
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/devices.js +0 -16
- package/dist/src/gateway/hono/routes/endpoint-tools.js +86 -30
- package/dist/src/gateway/hono/routes/home.js +1 -1
- package/dist/src/gateway/hono/routes/imports.js +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +16 -0
- package/dist/src/gateway/hono/routes/local-app-capabilities.d.ts +4 -0
- package/dist/src/gateway/hono/routes/local-app-capabilities.js +41 -0
- package/dist/src/gateway/hono/routes/local-apps.js +41 -9
- package/dist/src/gateway/hono/routes/mcp.js +33 -2
- package/dist/src/gateway/hono/routes/media.js +1 -1
- package/dist/src/gateway/hono/routes/models.js +7 -7
- package/dist/src/gateway/hono/routes/notes.js +216 -147
- package/dist/src/gateway/hono/routes/projects.js +219 -376
- package/dist/src/gateway/hono/routes/scenes.js +188 -75
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +64 -16
- package/dist/src/gateway/hono/routes/session-input-handler.js +49 -7
- package/dist/src/gateway/hono/routes/sessions.js +18 -1
- package/dist/src/gateway/hono/routes/shares.js +3 -3
- package/dist/src/gateway/hono/routes/site-shares.js +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +182 -326
- package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
- package/dist/src/gateway/hono/routes/user-model.js +4 -4
- package/dist/src/gateway/hono/routes/voice.js +7 -7
- package/dist/src/gateway/hono/routes/workflows.js +3 -3
- package/dist/src/gateway/lock.js +11 -11
- package/dist/src/gateway/media-access.js +3 -2
- package/dist/src/gateway/mobile-privacy.js +2 -2
- package/dist/src/gateway/ports.js +6 -6
- package/dist/src/gateway/scenes/host.js +14 -3
- package/dist/src/gateway/scenes/mailContext.js +1 -1
- package/dist/src/gateway/scenes/slackThreadSource.d.ts +41 -0
- package/dist/src/gateway/scenes/slackThreadSource.js +168 -0
- package/dist/src/gateway/security/gateway-scopes.d.ts +1 -1
- package/dist/src/gateway/security/gateway-scopes.js +5 -0
- package/dist/src/gateway/server.js +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +1 -1
- package/dist/src/gateway/service/agent-runner.js +2 -2
- package/dist/src/gateway/service/app-context-access.d.ts +7 -0
- package/dist/src/gateway/service/app-context-access.js +70 -0
- package/dist/src/gateway/service/config-coordinator.js +4 -4
- package/dist/src/gateway/service/marketplace-service.js +3 -3
- package/dist/src/gateway/service/run-gateway-agent.js +13 -4
- package/dist/src/gateway/service/session-input-coordinator.d.ts +1 -1
- package/dist/src/gateway/service/session-input-coordinator.js +56 -17
- package/dist/src/gateway/service/sessions-api.d.ts +1 -0
- package/dist/src/gateway/service/sessions-api.js +4 -1
- package/dist/src/gateway/service/task-conversation-query-service.d.ts +3 -1
- package/dist/src/gateway/service/task-conversation-query-service.js +32 -3
- package/dist/src/gateway/service.d.ts +3 -0
- package/dist/src/gateway/service.js +130 -39
- package/dist/src/gateway/session-context-summary.js +3 -2
- package/dist/src/gateway/workspace-editor-path.js +2 -2
- package/dist/src/gateway/workspace-file-search.js +25 -12
- package/dist/src/heartbeat/index.js +1 -1
- package/dist/src/i18n/share-tool-bundle.js +2 -2
- package/dist/src/imports/runtime.js +1 -1
- package/dist/src/{tasks/task-outbox-dispatcher.d.ts → infra/domain-outbox-dispatcher.d.ts} +2 -2
- package/dist/src/{tasks/task-outbox-dispatcher.js → infra/domain-outbox-dispatcher.js} +10 -9
- package/dist/src/infra/gateway-processes.js +2 -2
- package/dist/src/infra/operation-context.d.ts +2 -0
- package/dist/src/infra/operation-context.js +16 -0
- package/dist/src/infra/path-env.js +3 -3
- package/dist/src/infra/update-global.js +10 -10
- package/dist/src/local-apps/capabilities/contracts.d.ts +2 -0
- package/dist/src/local-apps/capabilities/contracts.js +32 -0
- package/dist/src/local-apps/capabilities/read.d.ts +3 -0
- package/dist/src/local-apps/capabilities/read.js +48 -0
- package/dist/src/local-apps/capabilities/runtime.d.ts +16 -0
- package/dist/src/local-apps/capabilities/runtime.js +66 -0
- package/dist/src/local-apps/capabilities/write.d.ts +3 -0
- package/dist/src/local-apps/capabilities/write.js +35 -0
- package/dist/src/local-apps/release-lock.d.ts +2 -0
- package/dist/src/local-apps/release-lock.js +20 -0
- package/dist/src/local-apps/runtime-entry.d.ts +0 -2
- package/dist/src/local-apps/runtime-entry.js +1 -14
- package/dist/src/local-apps/scaffold.js +4 -1
- package/dist/src/local-apps/service.d.ts +24 -1
- package/dist/src/local-apps/service.js +187 -44
- package/dist/src/local-apps/store.js +0 -2
- package/dist/src/mcp/capability-server.d.ts +4 -0
- package/dist/src/mcp/capability-server.js +96 -0
- package/dist/src/mcp/channel-bridge.js +1 -1
- package/dist/src/mcp/gateway-http-client.d.ts +7 -0
- package/dist/src/mcp/gateway-http-client.js +27 -5
- package/dist/src/media-understanding/openai-compatible-audio.js +1 -1
- package/dist/src/notes/agent-context.js +4 -4
- package/dist/src/notes/capabilities/read.d.ts +3 -0
- package/dist/src/notes/capabilities/read.js +96 -0
- package/dist/src/notes/capabilities/write.d.ts +7 -0
- package/dist/src/notes/capabilities/write.js +152 -0
- package/dist/src/notes/index.js +1 -1
- package/dist/src/notes/service.d.ts +12 -4
- package/dist/src/notes/service.js +188 -175
- package/dist/src/notes/store.d.ts +14 -9
- package/dist/src/notes/store.js +81 -21
- package/dist/src/notifications/service.d.ts +1 -0
- package/dist/src/notifications/service.js +5 -0
- package/dist/src/projects/capabilities/read.d.ts +3 -0
- package/dist/src/projects/capabilities/read.js +81 -0
- package/dist/src/projects/capabilities/write.d.ts +9 -0
- package/dist/src/projects/capabilities/write.js +260 -0
- package/dist/src/projects/index.js +2 -2
- package/dist/src/projects/project-change-events.d.ts +2 -0
- package/dist/src/projects/project-change-events.js +18 -0
- package/dist/src/projects/project-service.d.ts +11 -0
- package/dist/src/projects/project-service.js +121 -42
- package/dist/src/projects/project-skill-service.js +2 -2
- package/dist/src/projects/project-store.js +12 -2
- package/dist/src/projects/project-workspace-creation.d.ts +3 -0
- package/dist/src/projects/project-workspace-creation.js +45 -0
- package/dist/src/projects/workspace-project.js +6 -0
- package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
- package/dist/src/providers/index.js +2 -2
- package/dist/src/providers/model-catalog-persistence.js +1 -1
- package/dist/src/providers/model-catalog-types.d.ts +2 -1
- package/dist/src/providers/model-reference-auditor.js +5 -5
- package/dist/src/providers/model-registry.js +1 -1
- package/dist/src/providers/model-supplements.js +13 -3
- package/dist/src/providers/presentation.js +3 -3
- package/dist/src/providers/register-runtime-providers.js +1 -1
- package/dist/src/providers/xopc-cloud-model-source.js +4 -2
- package/dist/src/realtime/runtime.js +4 -0
- package/dist/src/remote-access/exposure-manager.js +1 -1
- package/dist/src/scenes/capabilities/read.d.ts +3 -0
- package/dist/src/scenes/capabilities/read.js +187 -0
- package/dist/src/scenes/capabilities/write.d.ts +3 -0
- package/dist/src/scenes/capabilities/write.js +151 -0
- package/dist/src/scenes/contracts.d.ts +2 -105
- package/dist/src/scenes/contracts.js +3 -88
- package/dist/src/scenes/execution.d.ts +1 -1
- package/dist/src/scenes/httpServices.d.ts +2 -0
- package/dist/src/scenes/inbox.d.ts +1 -0
- package/dist/src/scenes/inbox.js +7 -7
- package/dist/src/scenes/preferences.d.ts +3 -24
- package/dist/src/scenes/preferences.js +8 -30
- package/dist/src/scenes/repository.d.ts +1 -0
- package/dist/src/scenes/repository.js +7 -3
- package/dist/src/scenes/resultNotifications.js +2 -2
- package/dist/src/scenes/schedule.d.ts +1 -8
- package/dist/src/scenes/schedule.js +3 -15
- package/dist/src/scenes/service.d.ts +6 -0
- package/dist/src/scenes/service.js +29 -25
- package/dist/src/scenes/taskFollowUp/agentExecutor.d.ts +36 -0
- package/dist/src/scenes/taskFollowUp/agentExecutor.js +149 -0
- package/dist/src/scenes/taskFollowUp/branchInventory.d.ts +38 -0
- package/dist/src/scenes/taskFollowUp/branchInventory.js +70 -0
- package/dist/src/scenes/taskFollowUp/contracts.d.ts +91 -0
- package/dist/src/scenes/taskFollowUp/contracts.js +100 -0
- package/dist/src/scenes/taskFollowUp/resources.d.ts +19 -0
- package/dist/src/scenes/taskFollowUp/resources.js +97 -0
- package/dist/src/scenes/taskFollowUp/service.d.ts +810 -0
- package/dist/src/scenes/taskFollowUp/service.js +710 -0
- package/dist/src/scenes/taskFollowUp/workspaceFingerprint.d.ts +2 -0
- package/dist/src/scenes/taskFollowUp/workspaceFingerprint.js +46 -0
- package/dist/src/scenes/templates.d.ts +2 -2
- package/dist/src/scenes/templates.js +1 -1
- package/dist/src/session/client-history.d.ts +2 -1
- package/dist/src/session/client-history.js +3 -2
- package/dist/src/session/index.js +2 -2
- package/dist/src/session/session-find.d.ts +17 -0
- package/dist/src/session/session-find.js +56 -0
- package/dist/src/session/session-title.js +1 -1
- package/dist/src/session/store.d.ts +4 -0
- package/dist/src/session/store.js +46 -10
- package/dist/src/session/thinking-resolve.js +1 -1
- package/dist/src/share/note-share-revocation.d.ts +3 -0
- package/dist/src/share/note-share-revocation.js +26 -0
- package/dist/src/share/share-store.js +1 -1
- package/dist/src/share/share-thumbnail.js +1 -1
- package/dist/src/share/site-proxy.js +1 -1
- package/dist/src/share/site-share-store.js +1 -1
- package/dist/src/storage/sqlite/connection.js +9 -9
- package/dist/src/storage/sqlite/endpoint-tool-invocation-repository.d.ts +15 -1
- package/dist/src/storage/sqlite/endpoint-tool-invocation-repository.js +39 -6
- package/dist/src/storage/sqlite/index.d.ts +1 -1
- package/dist/src/storage/sqlite/index.js +2 -2
- package/dist/src/storage/sqlite/migrations/190_scene_development.sql +37 -0
- package/dist/src/storage/sqlite/migrations/191_scene_task_follow_up.sql +27 -0
- package/dist/src/storage/sqlite/migrations/192_capability_operations.sql +20 -0
- package/dist/src/storage/sqlite/migrations/193_note_file_cleanup.sql +8 -0
- package/dist/src/storage/sqlite/migrations/194_capability_external_outcomes.sql +11 -0
- package/dist/src/storage/sqlite/migrations/195_automation_deleted_revisions.sql +4 -0
- package/dist/src/storage/sqlite/migrations/196_automation_run_requests.sql +23 -0
- package/dist/src/storage/sqlite/migrations/197_note_deletion_cleanup.sql +8 -0
- package/dist/src/storage/sqlite/migrations/198_project_workspace_creation.sql +7 -0
- package/dist/src/storage/sqlite/migrations/199_scene_resource_events.sql +488 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +6 -3
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/transaction.d.ts +5 -0
- package/dist/src/storage/sqlite/transaction.js +34 -3
- package/dist/src/tasks/capabilities/management.d.ts +195 -0
- package/dist/src/tasks/capabilities/management.js +111 -0
- package/dist/src/tasks/capabilities/read.d.ts +2 -0
- package/dist/src/tasks/capabilities/read.js +141 -0
- package/dist/src/tasks/capabilities/relations.d.ts +204 -0
- package/dist/src/tasks/capabilities/relations.js +140 -0
- package/dist/src/tasks/capabilities/runs.d.ts +2 -0
- package/dist/src/tasks/capabilities/runs.js +89 -0
- package/dist/src/tasks/capabilities/write.d.ts +207 -0
- package/dist/src/tasks/capabilities/write.js +107 -0
- package/dist/src/tasks/execution-context.js +1 -1
- package/dist/src/tasks/home-query-service.js +5 -4
- package/dist/src/tasks/index.d.ts +0 -1
- package/dist/src/tasks/index.js +9 -9
- package/dist/src/tasks/project-operating-view-service.js +2 -1
- package/dist/src/tasks/task-application-service.d.ts +1 -0
- package/dist/src/tasks/task-application-service.js +4 -3
- package/dist/src/tasks/task-change-events.js +5 -3
- package/dist/src/tasks/task-context-assembler.js +3 -2
- package/dist/src/tasks/task-deletion-service.js +2 -1
- package/dist/src/tasks/task-dependency-service.js +2 -1
- package/dist/src/tasks/task-handoff-service.js +3 -2
- package/dist/src/tasks/task-read-model-projector.js +2 -1
- package/dist/src/tasks/task-repository.d.ts +12 -7
- package/dist/src/tasks/task-repository.js +175 -154
- package/dist/src/tasks/task-run-coordinator.js +2 -1
- package/dist/src/tasks/task-run-dispatcher.js +2 -1
- package/dist/src/tasks/task-run-repository.d.ts +1 -0
- package/dist/src/tasks/task-run-repository.js +29 -14
- package/dist/src/tasks/task-signal-service.js +2 -1
- package/dist/src/tui/backends/embedded-backend.js +10 -10
- package/dist/src/tui/backends/gateway-realtime-backend.js +2 -2
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/tui-command-formatters.js +1 -1
- package/dist/src/tui/tui-commands.js +6 -6
- package/dist/src/tui/tui-picker-overlay.js +1 -1
- package/dist/src/tui/tui-skills-autocomplete.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +4 -4
- package/dist/src/tui/tui.js +3 -3
- package/dist/src/tunnel/gateway-lifecycle.js +1 -1
- package/dist/src/user-context/config.d.ts +13 -0
- package/dist/src/user-context/config.js +2 -0
- package/dist/src/voice/local/runtime-worker.js +1 -1
- package/dist/src/voice/platform-catalog.d.ts +1 -1
- package/dist/src/voice/realtime/memory-context.js +3 -3
- package/dist/src/voice/realtime/runtime.js +3 -3
- package/dist/src/voice/stt/index.js +2 -2
- package/dist/src/voice/stt/preflight.js +1 -1
- package/dist/src/voice/stt/providers/alibaba-transcription.js +1 -1
- package/dist/src/voice/stt/providers/local-transcription.js +1 -1
- package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +1 -1
- package/dist/src/voice/stt/transcribe-core.js +1 -1
- package/dist/src/voice/tts/audio.js +1 -1
- package/dist/src/voice/tts/factory.js +1 -1
- package/dist/src/voice/tts/index.js +1 -1
- package/dist/src/voice/tts/payload.js +1 -1
- package/dist/src/voice/tts/providers/xopc-cloud-speech.js +1 -1
- package/dist/src/work-discovery/incremental-repository.js +1 -1
- package/dist/src/work-discovery/index.js +1 -1
- package/dist/src/work-discovery/repository.d.ts +1 -1
- package/dist/src/work-discovery/repository.js +3 -2
- package/dist/src/work-discovery/service.d.ts +4 -0
- package/dist/src/work-discovery/service.js +40 -15
- package/dist/src/workflows/context/workflow-context.js +3 -2
- package/dist/src/workflows/service/workflow-run-service.js +7 -6
- package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
- package/package.json +8 -4
- package/skills/THIRD_PARTY_NOTICES.md +2 -2
- package/skills/documents/xlsx/SKILL.md +5 -0
- package/skills/engineering/build-xopc-local-app/SKILL.md +2 -0
- package/skills/tools/find-skills/SKILL.md +3 -0
- package/dist/gateway/static/root/assets/activity-store-CS_SAPwP.js +0 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-9w_YVThL.js +0 -1
- package/dist/gateway/static/root/assets/agents-Bspu1pT2.js +0 -1
- package/dist/gateway/static/root/assets/appearance-settings-Jgvx-RKL.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-403o57-3.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-Dpju5KT_.js +0 -7
- package/dist/gateway/static/root/assets/browser-settings-page-C0HJrpr1.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-settings-panel-BanM86OX.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-Bhh0F9pO.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BTqjm6eD.js +0 -2
- package/dist/gateway/static/root/assets/desktop-pet-settings-BI_sQTR_.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-BoPCEIm5.js +0 -1
- package/dist/gateway/static/root/assets/files-Be5viEFY.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-mpOw3R4d.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-Z-ErSgkD.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-Bq82yXVh.js +0 -1
- package/dist/gateway/static/root/assets/home-page-BD1v6Uee.js +0 -1
- package/dist/gateway/static/root/assets/index-Ah5XDhOL.js +0 -79
- package/dist/gateway/static/root/assets/index-CV5b1pD1.css +0 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-BF8x3bgh.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-B4vMUM7D.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-Cg0UjJpy.js +0 -1
- package/dist/gateway/static/root/assets/messages-CRH2my19.js +0 -3
- package/dist/gateway/static/root/assets/note-detail-panel-CWVIGctd.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-CcTzMI1K.js +0 -8
- package/dist/gateway/static/root/assets/product-delivery-CrAI8ZEa.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-BNYoV9Ac.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-CcKnYQqm.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-HIvwD5Xn.js +0 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-CFE2oX_l.js +0 -5
- package/dist/gateway/static/root/assets/scenes-page-BGKdg4uS.js +0 -1
- package/dist/gateway/static/root/assets/schemas-BaskVM5g.js +0 -64
- package/dist/gateway/static/root/assets/sessions-page-tn99saMj.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-Cx_uvwqz.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-1kYYg3BH.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-Du7BfwId.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-BMhhXxRZ.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-vFn3xdlZ.js +0 -1
- package/dist/gateway/static/root/assets/theme-store-DdURyZ1M.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-uK9sxPUH.js +0 -2
- package/dist/gateway/static/root/assets/workflows-page-DIyd5AC9.js +0 -6
- package/skills/creative/algorithmic-art/SKILL.md +0 -44
- package/skills/creative/algorithmic-art/templates/generator-template.js +0 -27
- package/skills/creative/algorithmic-art/templates/viewer.html +0 -27
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
-- Scene-specific source and delivery metadata; Task and TaskRun remain authoritative.
|
|
2
|
+
CREATE TABLE scene_development_bindings (
|
|
3
|
+
activation_id TEXT PRIMARY KEY REFERENCES scene_activations(id) ON DELETE CASCADE,
|
|
4
|
+
task_id TEXT NOT NULL UNIQUE REFERENCES tasks(task_id) ON DELETE CASCADE,
|
|
5
|
+
source_key TEXT NOT NULL UNIQUE,
|
|
6
|
+
input_json TEXT NOT NULL CHECK(json_valid(input_json)),
|
|
7
|
+
environment_id TEXT REFERENCES execution_environments(environment_id),
|
|
8
|
+
resource_operation_id TEXT,
|
|
9
|
+
observed_revision INTEGER NOT NULL DEFAULT 0,
|
|
10
|
+
delivered_revision INTEGER NOT NULL DEFAULT 0,
|
|
11
|
+
delivered_decisions_hash TEXT NOT NULL DEFAULT '',
|
|
12
|
+
applied_revision INTEGER NOT NULL DEFAULT 0,
|
|
13
|
+
executing_run_id TEXT REFERENCES task_runs(run_id),
|
|
14
|
+
last_error TEXT,
|
|
15
|
+
next_poll_at INTEGER NOT NULL DEFAULT 0,
|
|
16
|
+
failures INTEGER NOT NULL DEFAULT 0,
|
|
17
|
+
created_at INTEGER NOT NULL
|
|
18
|
+
);
|
|
19
|
+
CREATE TABLE scene_development_revisions (
|
|
20
|
+
activation_id TEXT NOT NULL REFERENCES scene_development_bindings(activation_id) ON DELETE CASCADE,
|
|
21
|
+
revision INTEGER NOT NULL,
|
|
22
|
+
source_hash TEXT NOT NULL,
|
|
23
|
+
content TEXT NOT NULL,
|
|
24
|
+
observed_at INTEGER NOT NULL,
|
|
25
|
+
PRIMARY KEY(activation_id, revision)
|
|
26
|
+
);
|
|
27
|
+
CREATE INDEX scene_development_poll ON scene_development_bindings(next_poll_at);
|
|
28
|
+
CREATE TABLE scene_development_branch_links (
|
|
29
|
+
owner_id TEXT NOT NULL,
|
|
30
|
+
workspace_id TEXT NOT NULL,
|
|
31
|
+
project_id TEXT NOT NULL REFERENCES projects(project_id) ON DELETE CASCADE,
|
|
32
|
+
branch_ref TEXT NOT NULL,
|
|
33
|
+
task_id TEXT NOT NULL REFERENCES tasks(task_id) ON DELETE CASCADE,
|
|
34
|
+
confirmed_sha TEXT NOT NULL,
|
|
35
|
+
confirmed_at INTEGER NOT NULL,
|
|
36
|
+
PRIMARY KEY(owner_id, workspace_id, project_id, branch_ref)
|
|
37
|
+
);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-- Preserve experimental records and resources without automatically widening authority.
|
|
2
|
+
ALTER TABLE scene_development_bindings RENAME TO scene_task_bindings;
|
|
3
|
+
ALTER TABLE scene_development_revisions RENAME TO scene_task_revisions;
|
|
4
|
+
ALTER TABLE scene_development_branch_links RENAME TO scene_task_branch_links;
|
|
5
|
+
ALTER TABLE scene_task_bindings RENAME COLUMN applied_revision TO processed_revision;
|
|
6
|
+
ALTER TABLE scene_task_bindings ADD COLUMN continuation_attempts INTEGER NOT NULL DEFAULT 0;
|
|
7
|
+
ALTER TABLE scene_task_bindings ADD COLUMN continuation_requested INTEGER NOT NULL DEFAULT 0;
|
|
8
|
+
UPDATE scene_task_bindings SET input_json = json_patch(json_object(
|
|
9
|
+
'source', json_object('provider', 'slack_thread', 'reference', json_extract(input_json, '$.thread')),
|
|
10
|
+
'goal', json_extract(input_json, '$.goal'),
|
|
11
|
+
'instruction', 'Follow the delegated goal using current discussion. Do not publish, commit, push, merge or deploy.',
|
|
12
|
+
'projectId', json_extract(input_json, '$.projectId'),
|
|
13
|
+
'resource', 'worktree',
|
|
14
|
+
'capabilities', json(CASE WHEN json_extract(input_json, '$.mode') = 'code'
|
|
15
|
+
THEN CASE WHEN json_extract(input_json, '$.verificationCommand') IS NOT NULL
|
|
16
|
+
THEN '["workspace.read","workspace.write","verification.run"]' ELSE '["workspace.read","workspace.write"]' END
|
|
17
|
+
ELSE '["workspace.read"]' END)
|
|
18
|
+
), json_object('sourceUrl', json_extract(input_json, '$.sourceUrl'), 'verificationCommand',
|
|
19
|
+
CASE WHEN json_extract(input_json, '$.mode') = 'code' THEN json_extract(input_json, '$.verificationCommand') ELSE NULL END)),
|
|
20
|
+
last_error = 'Configuration migrated. Review permissions and resume explicitly.', next_poll_at = 0;
|
|
21
|
+
-- Original verified receipts remain authoritative; processed is not a verification claim.
|
|
22
|
+
UPDATE scene_activations SET status = CASE WHEN status = 'archived' THEN status ELSE 'paused' END,
|
|
23
|
+
revision = revision + 1,
|
|
24
|
+
permissions_json = json_set(permissions_json, '$.contextProviders', json('["connected_source"]'),
|
|
25
|
+
'$.effectHandlers', json((SELECT json_group_array(value) FROM scene_task_bindings b,
|
|
26
|
+
json_each(b.input_json, '$.capabilities') WHERE b.activation_id = scene_activations.id AND value <> 'workspace.read')))
|
|
27
|
+
WHERE id IN (SELECT activation_id FROM scene_task_bindings);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
CREATE TABLE capability_operations (
|
|
2
|
+
operation_id TEXT PRIMARY KEY,
|
|
3
|
+
principal_id TEXT NOT NULL,
|
|
4
|
+
capability_id TEXT NOT NULL,
|
|
5
|
+
idempotency_key TEXT NOT NULL,
|
|
6
|
+
request_digest TEXT NOT NULL,
|
|
7
|
+
descriptor_digest TEXT NOT NULL,
|
|
8
|
+
result_json TEXT NOT NULL CHECK (json_valid(result_json)),
|
|
9
|
+
created_at INTEGER NOT NULL,
|
|
10
|
+
UNIQUE(principal_id, capability_id, idempotency_key)
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
CREATE TABLE capability_invocations (
|
|
14
|
+
invocation_id TEXT PRIMARY KEY,
|
|
15
|
+
operation_id TEXT NOT NULL REFERENCES capability_operations(operation_id) ON DELETE CASCADE,
|
|
16
|
+
surface TEXT NOT NULL,
|
|
17
|
+
replayed INTEGER NOT NULL CHECK (replayed IN (0, 1)),
|
|
18
|
+
created_at INTEGER NOT NULL
|
|
19
|
+
);
|
|
20
|
+
CREATE INDEX capability_invocations_operation ON capability_invocations(operation_id, created_at);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
ALTER TABLE capability_operations ADD COLUMN state TEXT NOT NULL DEFAULT 'succeeded'
|
|
2
|
+
CHECK (state IN ('running', 'succeeded', 'failed', 'unknown'));
|
|
3
|
+
ALTER TABLE capability_operations ADD COLUMN generation INTEGER NOT NULL DEFAULT 1;
|
|
4
|
+
ALTER TABLE capability_operations ADD COLUMN recovery_mode TEXT NOT NULL DEFAULT 'atomic'
|
|
5
|
+
CHECK (recovery_mode IN ('atomic', 'manual', 'provider-idempotent'));
|
|
6
|
+
ALTER TABLE capability_operations ADD COLUMN lease_expires_at INTEGER;
|
|
7
|
+
ALTER TABLE capability_operations ADD COLUMN evidence_json TEXT CHECK (evidence_json IS NULL OR json_valid(evidence_json));
|
|
8
|
+
ALTER TABLE capability_invocations ADD COLUMN state TEXT NOT NULL DEFAULT 'succeeded'
|
|
9
|
+
CHECK (state IN ('running', 'succeeded', 'failed', 'unknown'));
|
|
10
|
+
ALTER TABLE capability_invocations ADD COLUMN finished_at INTEGER;
|
|
11
|
+
ALTER TABLE domain_outbox ADD COLUMN operation_id TEXT;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
CREATE TABLE automation_run_requests (
|
|
2
|
+
run_id TEXT PRIMARY KEY,
|
|
3
|
+
automation_json TEXT NOT NULL CHECK (json_valid(automation_json))
|
|
4
|
+
);
|
|
5
|
+
|
|
6
|
+
-- Freeze the configuration previously used to resume pre-upgrade queued runs.
|
|
7
|
+
-- Remove only top-level optional fields; merge-patch would erase null workflow inputs.
|
|
8
|
+
INSERT INTO automation_run_requests (run_id, automation_json)
|
|
9
|
+
SELECT r.run_id, json_remove(json_object(
|
|
10
|
+
'id', a.automation_id, 'name', r.automation_name, 'description', a.description,
|
|
11
|
+
'projectId', a.project_id, 'enabled', json(CASE WHEN a.enabled = 1 THEN 'true' ELSE 'false' END),
|
|
12
|
+
'trigger', json(r.trigger_snapshot_json), 'action', json(r.action_snapshot_json),
|
|
13
|
+
'safety', json(a.safety_json), 'conversationMode', a.conversation_mode,
|
|
14
|
+
'notificationPolicy', a.notification_policy, 'completionWebhookUrl', a.completion_webhook_url,
|
|
15
|
+
'reliability', json(a.reliability_json), 'state', json(a.state_json),
|
|
16
|
+
'createdAtMs', a.created_at_ms, 'updatedAtMs', a.updated_at_ms
|
|
17
|
+
),
|
|
18
|
+
CASE WHEN a.description IS NULL THEN '$.description' ELSE '$.__absent' END,
|
|
19
|
+
CASE WHEN a.project_id IS NULL THEN '$.projectId' ELSE '$.__absent' END,
|
|
20
|
+
CASE WHEN a.safety_json IS NULL THEN '$.safety' ELSE '$.__absent' END,
|
|
21
|
+
CASE WHEN a.completion_webhook_url IS NULL THEN '$.completionWebhookUrl' ELSE '$.__absent' END,
|
|
22
|
+
CASE WHEN a.reliability_json IS NULL THEN '$.reliability' ELSE '$.__absent' END
|
|
23
|
+
) FROM automation_runs r JOIN automations a ON a.automation_id = r.automation_id WHERE r.status = 'queued';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
CREATE TABLE note_deletion_cleanup (
|
|
2
|
+
kind TEXT NOT NULL CHECK(kind IN ('media', 'share')),
|
|
3
|
+
object_id TEXT NOT NULL,
|
|
4
|
+
created_at INTEGER NOT NULL,
|
|
5
|
+
attempts INTEGER NOT NULL DEFAULT 0,
|
|
6
|
+
next_attempt_at INTEGER NOT NULL DEFAULT 0,
|
|
7
|
+
PRIMARY KEY(kind, object_id)
|
|
8
|
+
);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
CREATE TABLE project_workspace_creation (
|
|
2
|
+
project_id TEXT PRIMARY KEY REFERENCES projects(project_id) ON DELETE CASCADE,
|
|
3
|
+
workspace_root TEXT NOT NULL,
|
|
4
|
+
created_at INTEGER NOT NULL,
|
|
5
|
+
attempts INTEGER NOT NULL DEFAULT 0,
|
|
6
|
+
next_attempt_at INTEGER NOT NULL DEFAULT 0
|
|
7
|
+
);
|
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
-- Scene resource revisions cover the aggregate (notes, runs, results), not activation edit revisions.
|
|
2
|
+
-- Triggers keep background producers and capability calls on the same durable outbox path.
|
|
3
|
+
CREATE TABLE scene_resource_revisions (
|
|
4
|
+
resource_id TEXT PRIMARY KEY,
|
|
5
|
+
revision INTEGER NOT NULL CHECK(revision >= 0)
|
|
6
|
+
);
|
|
7
|
+
INSERT INTO scene_resource_revisions SELECT id, 0 FROM scene_activations;
|
|
8
|
+
|
|
9
|
+
CREATE TRIGGER scene_activations_resource_insert
|
|
10
|
+
AFTER INSERT ON scene_activations
|
|
11
|
+
BEGIN
|
|
12
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
13
|
+
SELECT NEW.id, 1 WHERE NEW.id IS NOT NULL
|
|
14
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
15
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
16
|
+
SELECT lower(hex(randomblob(16))), 'scene.created', 'scene', resource_id, resource_id,
|
|
17
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
18
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.id;
|
|
19
|
+
END;
|
|
20
|
+
|
|
21
|
+
CREATE TRIGGER scene_activations_resource_update
|
|
22
|
+
AFTER UPDATE ON scene_activations
|
|
23
|
+
WHEN OLD.revision IS NOT NEW.revision OR OLD.status IS NOT NEW.status OR OLD.goal IS NOT NEW.goal OR OLD.scope_json IS NOT NEW.scope_json OR OLD.permissions_json IS NOT NEW.permissions_json
|
|
24
|
+
BEGIN
|
|
25
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
26
|
+
SELECT NEW.id, 1 WHERE NEW.id IS NOT NULL
|
|
27
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
28
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
29
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
30
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
31
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.id;
|
|
32
|
+
END;
|
|
33
|
+
|
|
34
|
+
CREATE TRIGGER scene_activations_resource_delete
|
|
35
|
+
AFTER DELETE ON scene_activations
|
|
36
|
+
BEGIN
|
|
37
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
38
|
+
SELECT OLD.id, 1 WHERE OLD.id IS NOT NULL
|
|
39
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
40
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
41
|
+
SELECT lower(hex(randomblob(16))), 'scene.deleted', 'scene', resource_id, resource_id,
|
|
42
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
43
|
+
FROM scene_resource_revisions WHERE resource_id = OLD.id;
|
|
44
|
+
END;
|
|
45
|
+
|
|
46
|
+
CREATE TRIGGER scene_notes_resource_insert
|
|
47
|
+
AFTER INSERT ON scene_notes
|
|
48
|
+
BEGIN
|
|
49
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
50
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
51
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
52
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
53
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
54
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
55
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
56
|
+
END;
|
|
57
|
+
|
|
58
|
+
CREATE TRIGGER scene_notes_resource_update
|
|
59
|
+
AFTER UPDATE ON scene_notes
|
|
60
|
+
WHEN OLD.revision IS NOT NEW.revision
|
|
61
|
+
BEGIN
|
|
62
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
63
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
64
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
65
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
66
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
67
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
68
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
69
|
+
END;
|
|
70
|
+
|
|
71
|
+
CREATE TRIGGER scene_notes_resource_delete
|
|
72
|
+
AFTER DELETE ON scene_notes
|
|
73
|
+
BEGIN
|
|
74
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
75
|
+
SELECT OLD.activation_id, 1 WHERE OLD.activation_id IS NOT NULL
|
|
76
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
77
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
78
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
79
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
80
|
+
FROM scene_resource_revisions WHERE resource_id = OLD.activation_id;
|
|
81
|
+
END;
|
|
82
|
+
|
|
83
|
+
CREATE TRIGGER scene_work_items_resource_insert
|
|
84
|
+
AFTER INSERT ON scene_work_items
|
|
85
|
+
BEGIN
|
|
86
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
87
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
88
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
89
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
90
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
91
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
92
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
93
|
+
END;
|
|
94
|
+
|
|
95
|
+
CREATE TRIGGER scene_work_items_resource_update
|
|
96
|
+
AFTER UPDATE ON scene_work_items
|
|
97
|
+
WHEN OLD.revision IS NOT NEW.revision OR OLD.status IS NOT NEW.status OR OLD.due_at IS NOT NEW.due_at
|
|
98
|
+
BEGIN
|
|
99
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
100
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
101
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
102
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
103
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
104
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
105
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
106
|
+
END;
|
|
107
|
+
|
|
108
|
+
CREATE TRIGGER scene_work_items_resource_delete
|
|
109
|
+
AFTER DELETE ON scene_work_items
|
|
110
|
+
BEGIN
|
|
111
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
112
|
+
SELECT OLD.activation_id, 1 WHERE OLD.activation_id IS NOT NULL
|
|
113
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
114
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
115
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
116
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
117
|
+
FROM scene_resource_revisions WHERE resource_id = OLD.activation_id;
|
|
118
|
+
END;
|
|
119
|
+
|
|
120
|
+
CREATE TRIGGER scene_schedule_cursors_resource_insert
|
|
121
|
+
AFTER INSERT ON scene_schedule_cursors
|
|
122
|
+
BEGIN
|
|
123
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
124
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
125
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
126
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
127
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
128
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
129
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
130
|
+
END;
|
|
131
|
+
|
|
132
|
+
CREATE TRIGGER scene_schedule_cursors_resource_update
|
|
133
|
+
AFTER UPDATE ON scene_schedule_cursors
|
|
134
|
+
WHEN OLD.revision IS NOT NEW.revision OR OLD.next_due_at IS NOT NEW.next_due_at
|
|
135
|
+
BEGIN
|
|
136
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
137
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
138
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
139
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
140
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
141
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
142
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
143
|
+
END;
|
|
144
|
+
|
|
145
|
+
CREATE TRIGGER scene_schedule_cursors_resource_delete
|
|
146
|
+
AFTER DELETE ON scene_schedule_cursors
|
|
147
|
+
BEGIN
|
|
148
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
149
|
+
SELECT OLD.activation_id, 1 WHERE OLD.activation_id IS NOT NULL
|
|
150
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
151
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
152
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
153
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
154
|
+
FROM scene_resource_revisions WHERE resource_id = OLD.activation_id;
|
|
155
|
+
END;
|
|
156
|
+
|
|
157
|
+
CREATE TRIGGER scene_trigger_intents_resource_insert
|
|
158
|
+
AFTER INSERT ON scene_trigger_intents
|
|
159
|
+
BEGIN
|
|
160
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
161
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
162
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
163
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
164
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
165
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
166
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
167
|
+
END;
|
|
168
|
+
|
|
169
|
+
CREATE TRIGGER scene_trigger_intents_resource_update
|
|
170
|
+
AFTER UPDATE ON scene_trigger_intents
|
|
171
|
+
WHEN OLD.status IS NOT NEW.status OR OLD.due_at IS NOT NEW.due_at
|
|
172
|
+
BEGIN
|
|
173
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
174
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
175
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
176
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
177
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
178
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
179
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
180
|
+
END;
|
|
181
|
+
|
|
182
|
+
CREATE TRIGGER scene_trigger_intents_resource_delete
|
|
183
|
+
AFTER DELETE ON scene_trigger_intents
|
|
184
|
+
BEGIN
|
|
185
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
186
|
+
SELECT OLD.activation_id, 1 WHERE OLD.activation_id IS NOT NULL
|
|
187
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
188
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
189
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
190
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
191
|
+
FROM scene_resource_revisions WHERE resource_id = OLD.activation_id;
|
|
192
|
+
END;
|
|
193
|
+
|
|
194
|
+
CREATE TRIGGER scene_runs_resource_insert
|
|
195
|
+
AFTER INSERT ON scene_runs
|
|
196
|
+
BEGIN
|
|
197
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
198
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
199
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
200
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
201
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
202
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
203
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
204
|
+
END;
|
|
205
|
+
|
|
206
|
+
CREATE TRIGGER scene_runs_resource_update
|
|
207
|
+
AFTER UPDATE ON scene_runs
|
|
208
|
+
WHEN OLD.status IS NOT NEW.status OR OLD.attempt IS NOT NEW.attempt OR OLD.reason IS NOT NEW.reason OR OLD.retry_at IS NOT NEW.retry_at
|
|
209
|
+
BEGIN
|
|
210
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
211
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
212
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
213
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
214
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
215
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
216
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
217
|
+
END;
|
|
218
|
+
|
|
219
|
+
CREATE TRIGGER scene_runs_resource_delete
|
|
220
|
+
AFTER DELETE ON scene_runs
|
|
221
|
+
BEGIN
|
|
222
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
223
|
+
SELECT OLD.activation_id, 1 WHERE OLD.activation_id IS NOT NULL
|
|
224
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
225
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
226
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
227
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
228
|
+
FROM scene_resource_revisions WHERE resource_id = OLD.activation_id;
|
|
229
|
+
END;
|
|
230
|
+
|
|
231
|
+
CREATE TRIGGER scene_presentations_resource_insert
|
|
232
|
+
AFTER INSERT ON scene_presentations
|
|
233
|
+
BEGIN
|
|
234
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
235
|
+
SELECT (SELECT r.activation_id FROM scene_outcomes o JOIN scene_runs r ON r.id = o.run_id WHERE o.id = NEW.outcome_id), 1 WHERE (SELECT r.activation_id FROM scene_outcomes o JOIN scene_runs r ON r.id = o.run_id WHERE o.id = NEW.outcome_id) IS NOT NULL
|
|
236
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
237
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
238
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
239
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
240
|
+
FROM scene_resource_revisions WHERE resource_id = (SELECT r.activation_id FROM scene_outcomes o JOIN scene_runs r ON r.id = o.run_id WHERE o.id = NEW.outcome_id);
|
|
241
|
+
END;
|
|
242
|
+
|
|
243
|
+
CREATE TRIGGER scene_presentations_resource_update
|
|
244
|
+
AFTER UPDATE ON scene_presentations
|
|
245
|
+
WHEN OLD.status IS NOT NEW.status OR OLD.revision IS NOT NEW.revision OR OLD.withdrawn_at IS NOT NEW.withdrawn_at OR OLD.expires_at IS NOT NEW.expires_at OR OLD.snoozed_until IS NOT NEW.snoozed_until
|
|
246
|
+
BEGIN
|
|
247
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
248
|
+
SELECT (SELECT r.activation_id FROM scene_outcomes o JOIN scene_runs r ON r.id = o.run_id WHERE o.id = NEW.outcome_id), 1 WHERE (SELECT r.activation_id FROM scene_outcomes o JOIN scene_runs r ON r.id = o.run_id WHERE o.id = NEW.outcome_id) IS NOT NULL
|
|
249
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
250
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
251
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
252
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
253
|
+
FROM scene_resource_revisions WHERE resource_id = (SELECT r.activation_id FROM scene_outcomes o JOIN scene_runs r ON r.id = o.run_id WHERE o.id = NEW.outcome_id);
|
|
254
|
+
END;
|
|
255
|
+
|
|
256
|
+
CREATE TRIGGER scene_presentations_resource_delete
|
|
257
|
+
AFTER DELETE ON scene_presentations
|
|
258
|
+
BEGIN
|
|
259
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
260
|
+
SELECT (SELECT r.activation_id FROM scene_outcomes o JOIN scene_runs r ON r.id = o.run_id WHERE o.id = OLD.outcome_id), 1 WHERE (SELECT r.activation_id FROM scene_outcomes o JOIN scene_runs r ON r.id = o.run_id WHERE o.id = OLD.outcome_id) IS NOT NULL
|
|
261
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
262
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
263
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
264
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
265
|
+
FROM scene_resource_revisions WHERE resource_id = (SELECT r.activation_id FROM scene_outcomes o JOIN scene_runs r ON r.id = o.run_id WHERE o.id = OLD.outcome_id);
|
|
266
|
+
END;
|
|
267
|
+
|
|
268
|
+
CREATE TRIGGER scene_feedback_resource_insert
|
|
269
|
+
AFTER INSERT ON scene_feedback
|
|
270
|
+
BEGIN
|
|
271
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
272
|
+
SELECT (SELECT r.activation_id FROM scene_presentations p JOIN scene_outcomes o ON o.id = p.outcome_id JOIN scene_runs r ON r.id = o.run_id WHERE p.id = NEW.presentation_id), 1 WHERE (SELECT r.activation_id FROM scene_presentations p JOIN scene_outcomes o ON o.id = p.outcome_id JOIN scene_runs r ON r.id = o.run_id WHERE p.id = NEW.presentation_id) IS NOT NULL
|
|
273
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
274
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
275
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
276
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
277
|
+
FROM scene_resource_revisions WHERE resource_id = (SELECT r.activation_id FROM scene_presentations p JOIN scene_outcomes o ON o.id = p.outcome_id JOIN scene_runs r ON r.id = o.run_id WHERE p.id = NEW.presentation_id);
|
|
278
|
+
END;
|
|
279
|
+
|
|
280
|
+
CREATE TRIGGER scene_feedback_resource_update
|
|
281
|
+
AFTER UPDATE ON scene_feedback
|
|
282
|
+
WHEN OLD.revision IS NOT NEW.revision
|
|
283
|
+
BEGIN
|
|
284
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
285
|
+
SELECT (SELECT r.activation_id FROM scene_presentations p JOIN scene_outcomes o ON o.id = p.outcome_id JOIN scene_runs r ON r.id = o.run_id WHERE p.id = NEW.presentation_id), 1 WHERE (SELECT r.activation_id FROM scene_presentations p JOIN scene_outcomes o ON o.id = p.outcome_id JOIN scene_runs r ON r.id = o.run_id WHERE p.id = NEW.presentation_id) IS NOT NULL
|
|
286
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
287
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
288
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
289
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
290
|
+
FROM scene_resource_revisions WHERE resource_id = (SELECT r.activation_id FROM scene_presentations p JOIN scene_outcomes o ON o.id = p.outcome_id JOIN scene_runs r ON r.id = o.run_id WHERE p.id = NEW.presentation_id);
|
|
291
|
+
END;
|
|
292
|
+
|
|
293
|
+
CREATE TRIGGER scene_feedback_resource_delete
|
|
294
|
+
AFTER DELETE ON scene_feedback
|
|
295
|
+
BEGIN
|
|
296
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
297
|
+
SELECT (SELECT r.activation_id FROM scene_presentations p JOIN scene_outcomes o ON o.id = p.outcome_id JOIN scene_runs r ON r.id = o.run_id WHERE p.id = OLD.presentation_id), 1 WHERE (SELECT r.activation_id FROM scene_presentations p JOIN scene_outcomes o ON o.id = p.outcome_id JOIN scene_runs r ON r.id = o.run_id WHERE p.id = OLD.presentation_id) IS NOT NULL
|
|
298
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
299
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
300
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
301
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
302
|
+
FROM scene_resource_revisions WHERE resource_id = (SELECT r.activation_id FROM scene_presentations p JOIN scene_outcomes o ON o.id = p.outcome_id JOIN scene_runs r ON r.id = o.run_id WHERE p.id = OLD.presentation_id);
|
|
303
|
+
END;
|
|
304
|
+
|
|
305
|
+
CREATE TRIGGER scene_source_health_resource_insert
|
|
306
|
+
AFTER INSERT ON scene_source_health
|
|
307
|
+
BEGIN
|
|
308
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
309
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
310
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
311
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
312
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
313
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
314
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
315
|
+
END;
|
|
316
|
+
|
|
317
|
+
CREATE TRIGGER scene_source_health_resource_update
|
|
318
|
+
AFTER UPDATE ON scene_source_health
|
|
319
|
+
WHEN OLD.reason IS NOT NEW.reason OR OLD.retry_at IS NOT NEW.retry_at OR OLD.consecutive_failures IS NOT NEW.consecutive_failures
|
|
320
|
+
BEGIN
|
|
321
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
322
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
323
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
324
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
325
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
326
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
327
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
328
|
+
END;
|
|
329
|
+
|
|
330
|
+
CREATE TRIGGER scene_source_health_resource_delete
|
|
331
|
+
AFTER DELETE ON scene_source_health
|
|
332
|
+
BEGIN
|
|
333
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
334
|
+
SELECT OLD.activation_id, 1 WHERE OLD.activation_id IS NOT NULL
|
|
335
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
336
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
337
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
338
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
339
|
+
FROM scene_resource_revisions WHERE resource_id = OLD.activation_id;
|
|
340
|
+
END;
|
|
341
|
+
|
|
342
|
+
CREATE TRIGGER scene_task_bindings_resource_insert
|
|
343
|
+
AFTER INSERT ON scene_task_bindings
|
|
344
|
+
BEGIN
|
|
345
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
346
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
347
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
348
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
349
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
350
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
351
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
352
|
+
END;
|
|
353
|
+
|
|
354
|
+
CREATE TRIGGER scene_task_bindings_resource_update
|
|
355
|
+
AFTER UPDATE ON scene_task_bindings
|
|
356
|
+
WHEN OLD.observed_revision IS NOT NEW.observed_revision OR OLD.delivered_revision IS NOT NEW.delivered_revision OR OLD.processed_revision IS NOT NEW.processed_revision OR OLD.executing_run_id IS NOT NEW.executing_run_id OR OLD.last_error IS NOT NEW.last_error
|
|
357
|
+
BEGIN
|
|
358
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
359
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
360
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
361
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
362
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
363
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
364
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
365
|
+
END;
|
|
366
|
+
|
|
367
|
+
CREATE TRIGGER scene_task_bindings_resource_delete
|
|
368
|
+
AFTER DELETE ON scene_task_bindings
|
|
369
|
+
BEGIN
|
|
370
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
371
|
+
SELECT OLD.activation_id, 1 WHERE OLD.activation_id IS NOT NULL
|
|
372
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
373
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
374
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
375
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
376
|
+
FROM scene_resource_revisions WHERE resource_id = OLD.activation_id;
|
|
377
|
+
END;
|
|
378
|
+
|
|
379
|
+
CREATE TRIGGER scene_task_revisions_resource_insert
|
|
380
|
+
AFTER INSERT ON scene_task_revisions
|
|
381
|
+
BEGIN
|
|
382
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
383
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
384
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
385
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
386
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
387
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
388
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
389
|
+
END;
|
|
390
|
+
|
|
391
|
+
CREATE TRIGGER scene_task_revisions_resource_update
|
|
392
|
+
AFTER UPDATE ON scene_task_revisions
|
|
393
|
+
WHEN OLD.revision IS NOT NEW.revision
|
|
394
|
+
BEGIN
|
|
395
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
396
|
+
SELECT NEW.activation_id, 1 WHERE NEW.activation_id IS NOT NULL
|
|
397
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
398
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
399
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
400
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
401
|
+
FROM scene_resource_revisions WHERE resource_id = NEW.activation_id;
|
|
402
|
+
END;
|
|
403
|
+
|
|
404
|
+
CREATE TRIGGER scene_task_revisions_resource_delete
|
|
405
|
+
AFTER DELETE ON scene_task_revisions
|
|
406
|
+
BEGIN
|
|
407
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
408
|
+
SELECT OLD.activation_id, 1 WHERE OLD.activation_id IS NOT NULL
|
|
409
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
410
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
411
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
412
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
413
|
+
FROM scene_resource_revisions WHERE resource_id = OLD.activation_id;
|
|
414
|
+
END;
|
|
415
|
+
|
|
416
|
+
CREATE TRIGGER scene_preferences_resource_insert
|
|
417
|
+
AFTER INSERT ON scene_preferences
|
|
418
|
+
BEGIN
|
|
419
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
420
|
+
SELECT 'preferences', 1 WHERE 'preferences' IS NOT NULL
|
|
421
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
422
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
423
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
424
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
425
|
+
FROM scene_resource_revisions WHERE resource_id = 'preferences';
|
|
426
|
+
END;
|
|
427
|
+
|
|
428
|
+
CREATE TRIGGER scene_preferences_resource_update
|
|
429
|
+
AFTER UPDATE ON scene_preferences
|
|
430
|
+
WHEN OLD.revision IS NOT NEW.revision
|
|
431
|
+
BEGIN
|
|
432
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
433
|
+
SELECT 'preferences', 1 WHERE 'preferences' IS NOT NULL
|
|
434
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
435
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
436
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
437
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
438
|
+
FROM scene_resource_revisions WHERE resource_id = 'preferences';
|
|
439
|
+
END;
|
|
440
|
+
|
|
441
|
+
CREATE TRIGGER scene_preferences_resource_delete
|
|
442
|
+
AFTER DELETE ON scene_preferences
|
|
443
|
+
BEGIN
|
|
444
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
445
|
+
SELECT 'preferences', 1 WHERE 'preferences' IS NOT NULL
|
|
446
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
447
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
448
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
449
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
450
|
+
FROM scene_resource_revisions WHERE resource_id = 'preferences';
|
|
451
|
+
END;
|
|
452
|
+
|
|
453
|
+
CREATE TRIGGER scene_template_versions_resource_insert
|
|
454
|
+
AFTER INSERT ON scene_template_versions
|
|
455
|
+
BEGIN
|
|
456
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
457
|
+
SELECT 'templates', 1 WHERE 'templates' IS NOT NULL
|
|
458
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
459
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
460
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
461
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
462
|
+
FROM scene_resource_revisions WHERE resource_id = 'templates';
|
|
463
|
+
END;
|
|
464
|
+
|
|
465
|
+
CREATE TRIGGER scene_template_versions_resource_update
|
|
466
|
+
AFTER UPDATE ON scene_template_versions
|
|
467
|
+
WHEN OLD.content_hash IS NOT NEW.content_hash
|
|
468
|
+
BEGIN
|
|
469
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
470
|
+
SELECT 'templates', 1 WHERE 'templates' IS NOT NULL
|
|
471
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
472
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
473
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
474
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
475
|
+
FROM scene_resource_revisions WHERE resource_id = 'templates';
|
|
476
|
+
END;
|
|
477
|
+
|
|
478
|
+
CREATE TRIGGER scene_template_versions_resource_delete
|
|
479
|
+
AFTER DELETE ON scene_template_versions
|
|
480
|
+
BEGIN
|
|
481
|
+
INSERT INTO scene_resource_revisions(resource_id, revision)
|
|
482
|
+
SELECT 'templates', 1 WHERE 'templates' IS NOT NULL
|
|
483
|
+
ON CONFLICT(resource_id) DO UPDATE SET revision = revision + 1;
|
|
484
|
+
INSERT INTO domain_outbox(event_id, event_type, subject_kind, subject_id, correlation_id, payload_json, created_at, operation_id)
|
|
485
|
+
SELECT lower(hex(randomblob(16))), 'scene.changed', 'scene', resource_id, resource_id,
|
|
486
|
+
json_object('sceneId', resource_id, 'revision', revision), CAST(unixepoch('subsec') * 1000 AS INTEGER), xopc_operation_id()
|
|
487
|
+
FROM scene_resource_revisions WHERE resource_id = 'templates';
|
|
488
|
+
END;
|