@crewx/sdk 0.9.0-rc.13 → 0.9.0-rc.130
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/README.md +1 -1
- package/dist/account/auth-client.d.ts +61 -0
- package/dist/account/auth-json-v2.d.ts +1 -0
- package/dist/account/auth-json.d.ts +30 -0
- package/dist/account/config.d.ts +37 -0
- package/dist/account/env-bootstrap.d.ts +11 -0
- package/dist/account/errors.d.ts +24 -0
- package/dist/account/index.d.ts +12 -0
- package/dist/account/index.js +2 -0
- package/dist/account/session-manager.d.ts +47 -0
- package/dist/activity-log/builder.d.ts +56 -6
- package/dist/agent/agent-list-view.d.ts +19 -0
- package/dist/boxing/box.types.d.ts +4 -0
- package/dist/config/canonicalize-agent-options.d.ts +18 -0
- package/dist/config/default-agent-models.d.ts +11 -0
- package/dist/config/global-settings.d.ts +33 -0
- package/dist/config/migrate-grok-mode.d.ts +6 -0
- package/dist/config/model-compat.d.ts +31 -0
- package/dist/config/models.generated.d.ts +37 -0
- package/dist/config/models.remote.d.ts +1 -0
- package/dist/config/overdrive.d.ts +7 -0
- package/dist/config/pricing.d.ts +6 -3
- package/dist/config/pricing.generated.d.ts +4 -0
- package/dist/config/pricing.types.d.ts +4 -0
- package/dist/config/timeout.config.d.ts +4 -0
- package/dist/config/wi-boards.d.ts +19 -0
- package/dist/context-budget/continuity.d.ts +61 -0
- package/dist/context-budget/index.d.ts +141 -0
- package/dist/conversation/index.d.ts +1 -1
- package/dist/conversation/sqlite-provider.d.ts +6 -2
- package/dist/conversation/to-template-messages.d.ts +9 -0
- package/dist/conversation/types.d.ts +47 -1
- package/dist/desktop/command-runner.d.ts +4 -0
- package/dist/desktop/default-adapters.d.ts +4 -0
- package/dist/desktop/global-install.d.ts +19 -0
- package/dist/desktop/index.d.ts +3 -0
- package/dist/desktop/index.js +3 -0
- package/dist/desktop/install.d.ts +5 -0
- package/dist/desktop/lnk.d.ts +22 -0
- package/dist/desktop/manifest.d.ts +21 -0
- package/dist/desktop/types.d.ts +67 -0
- package/dist/desktop/version.d.ts +1 -0
- package/dist/desktop/windows-paths.d.ts +21 -0
- package/dist/desktop/wrapper.d.ts +18 -0
- package/dist/esm/account/index.js +2 -0
- package/dist/esm/desktop/index.js +3 -0
- package/dist/esm/index.js +931 -224
- package/dist/esm/node/index.js +2 -0
- package/dist/esm/plugins/index.js +338 -214
- package/dist/esm/process/index.js +1 -0
- package/dist/esm/publish/index.js +2 -0
- package/dist/esm/repository/index.js +413 -211
- package/dist/esm/skills/index.js +2 -0
- package/dist/esm/testing/index.js +1 -1
- package/dist/events/types.d.ts +9 -0
- package/dist/facade/Crewx.d.ts +58 -5
- package/dist/facade/task-ticket.d.ts +14 -0
- package/dist/highlight/thread-highlight-prompt.d.ts +2 -0
- package/dist/highlight/thread-highlighter.d.ts +326 -0
- package/dist/index.browser.d.ts +17 -1
- package/dist/index.browser.js +6 -2
- package/dist/index.d.ts +122 -17
- package/dist/index.js +931 -224
- package/dist/internal/console-decoder.d.ts +38 -0
- package/dist/internal/windows-spawn.d.ts +10 -0
- package/dist/layout/types.d.ts +18 -1
- package/dist/lifecycle/process-lease.d.ts +80 -0
- package/dist/lifecycle/process-owner.d.ts +20 -0
- package/dist/lifecycle/task-heartbeat.d.ts +41 -0
- package/dist/lifecycle/task-stop.d.ts +82 -0
- package/dist/lifecycle/update-admission.d.ts +45 -0
- package/dist/local-server/base-url.d.ts +18 -0
- package/dist/local-server/index.d.ts +8 -0
- package/dist/local-server/opencode.d.ts +8 -0
- package/dist/local-server/probe.d.ts +3 -0
- package/dist/local-server/runtime.d.ts +26 -0
- package/dist/local-server/types.d.ts +43 -0
- package/dist/mcp-app/agent-access.d.ts +26 -0
- package/dist/mcp-app/apps-context.d.ts +6 -0
- package/dist/mcp-app/bundle-provenance.d.ts +3 -0
- package/dist/mcp-app/catalog.d.ts +7 -0
- package/dist/mcp-app/content-channel.d.ts +89 -0
- package/dist/mcp-app/content-declarations.d.ts +29 -0
- package/dist/mcp-app/dev-checks.d.ts +28 -0
- package/dist/mcp-app/discovery.d.ts +139 -0
- package/dist/mcp-app/errors.d.ts +7 -0
- package/dist/mcp-app/index.d.ts +33 -0
- package/dist/mcp-app/installed-app-ref.d.ts +25 -0
- package/dist/mcp-app/model-context.d.ts +26 -0
- package/dist/mcp-app/node-app-discovery-fs.d.ts +20 -0
- package/dist/mcp-app/product-bundle-assets.d.ts +27 -0
- package/dist/mcp-app/product-bundle-loader.d.ts +53 -0
- package/dist/mcp-app/projection.d.ts +13 -0
- package/dist/mcp-app/registry.d.ts +28 -0
- package/dist/mcp-app/skill-backend.d.ts +133 -0
- package/dist/mcp-app/state-set.d.ts +9 -0
- package/dist/mcp-app/types.d.ts +458 -0
- package/dist/mcp-app/workspace-app-assets.d.ts +38 -0
- package/dist/mcp-app/workspace-snapshot.d.ts +70 -0
- package/dist/migrations/0010_analyze_stats.sql +6 -0
- package/dist/migrations/0011_far_black_tarantula.sql +1 -0
- package/dist/migrations/0012_blue_turbo.sql +23 -0
- package/dist/migrations/0013_hesitant_adam_destine.sql +15 -0
- package/dist/migrations/0014_organic_mongu.sql +73 -0
- package/dist/migrations/0015_panoramic_gorilla_man.sql +71 -0
- package/dist/migrations/0016_fuzzy_hemingway.sql +14 -0
- package/dist/migrations/0017_project_stage_sdk_migration.sql +29 -0
- package/dist/migrations/0018_bored_jackal.sql +33 -0
- package/dist/migrations/0019_backfill_task_thread_ids.sql +74 -0
- package/dist/migrations/0020_useful_iron_lad.sql +55 -0
- package/dist/migrations/0021_dashing_peter_quill.sql +51 -0
- package/dist/migrations/0022_wandering_bucky.sql +1 -0
- package/dist/migrations/0023_red_payback.sql +1 -0
- package/dist/migrations/0024_storage_metadata.sql +262 -0
- package/dist/migrations/0025_task_heartbeat.sql +8 -0
- package/dist/migrations/0025_thread_app_instance_ledger.sql +2 -0
- package/dist/migrations/0026_mcp_action_source.sql +47 -0
- package/dist/migrations/0027_task_stop_scope_cleanup.sql +5 -0
- package/dist/migrations/0027_ui_instance_active_unique.sql +2 -0
- package/dist/migrations/0029_nice_rhino.sql +1 -0
- package/dist/migrations/0031_petite_arclight.sql +6 -0
- package/dist/migrations/0032_ui_instance_opened_by.sql +1 -0
- package/dist/migrations/0033_thread_creator_boundary_guard.sql +38 -0
- package/dist/migrations/0034_keen_fallen_one.sql +36 -0
- package/dist/migrations/meta/0010_snapshot.json +1335 -0
- package/dist/migrations/meta/0011_snapshot.json +1342 -0
- package/dist/migrations/meta/0012_snapshot.json +1494 -0
- package/dist/migrations/meta/0013_snapshot.json +1592 -0
- package/dist/migrations/meta/0014_snapshot.json +1975 -0
- package/dist/migrations/meta/0015_snapshot.json +2315 -0
- package/dist/migrations/meta/0016_snapshot.json +2419 -0
- package/dist/migrations/meta/0017_snapshot.json +2419 -0
- package/dist/migrations/meta/0018_snapshot.json +2570 -0
- package/dist/migrations/meta/0020_snapshot.json +2895 -0
- package/dist/migrations/meta/0021_snapshot.json +3031 -0
- package/dist/migrations/meta/0022_snapshot.json +3039 -0
- package/dist/migrations/meta/0023_snapshot.json +3047 -0
- package/dist/migrations/meta/0029_snapshot.json +3206 -0
- package/dist/migrations/meta/0031_snapshot.json +3251 -0
- package/dist/migrations/meta/0034_snapshot.json +3473 -0
- package/dist/migrations/meta/_journal.json +175 -0
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.js +2 -0
- package/dist/paths.d.ts +1 -0
- package/dist/plugin/types.d.ts +1 -0
- package/dist/plugins/index.d.ts +1 -1
- package/dist/plugins/index.js +338 -214
- package/dist/plugins/sqlite-tracing.d.ts +46 -0
- package/dist/process/index.d.ts +2 -0
- package/dist/process/index.js +1 -0
- package/dist/process/process-control.d.ts +41 -0
- package/dist/prompt/tag-names.d.ts +20 -0
- package/dist/provider/acp/connection.d.ts +6 -0
- package/dist/provider/acp/meta.d.ts +11 -0
- package/dist/provider/bridge.d.ts +7 -1
- package/dist/provider/classify-task-error.d.ts +2 -0
- package/dist/provider/cli/adapter.types.d.ts +14 -2
- package/dist/provider/cli/adapters/agent-call.util.d.ts +1 -1
- package/dist/provider/cli/adapters/cli-knob.util.d.ts +7 -0
- package/dist/provider/cli/adapters/codex-item.d.ts +1 -0
- package/dist/provider/cli/adapters/event-timestamp.util.d.ts +1 -0
- package/dist/provider/cli/adapters/grok.d.ts +2 -0
- package/dist/provider/cli/adapters/index.d.ts +5 -0
- package/dist/provider/cli/index.d.ts +3 -2
- package/dist/provider/cli/meta.d.ts +5 -0
- package/dist/provider/cli/protocol-envelope.d.ts +3 -0
- package/dist/provider/errors.d.ts +5 -1
- package/dist/provider/idle-watchdog.d.ts +19 -0
- package/dist/provider/models.d.ts +17 -12
- package/dist/provider/order.d.ts +1 -1
- package/dist/provider/parse-usage.d.ts +6 -0
- package/dist/provider/provider-selection.d.ts +8 -0
- package/dist/provider/redact-technical-message.d.ts +1 -0
- package/dist/provider/task-error.types.d.ts +17 -0
- package/dist/publish/constants.d.ts +6 -0
- package/dist/publish/errors.d.ts +7 -0
- package/dist/publish/index.d.ts +50 -0
- package/dist/publish/index.js +2 -0
- package/dist/publish/manifest.d.ts +47 -0
- package/dist/publish/marketplace-api.constants.d.ts +1 -0
- package/dist/publish/pack.d.ts +6 -0
- package/dist/publish/scan.d.ts +9 -0
- package/dist/publish/secrets.d.ts +6 -0
- package/dist/publish/upload.d.ts +19 -0
- package/dist/remote/execution-profile.d.ts +9 -0
- package/dist/remote/index.d.ts +1 -0
- package/dist/remote/types.d.ts +28 -0
- package/dist/repository/agent-suggestion.repository.d.ts +34 -0
- package/dist/repository/base-sqlite-repository.d.ts +1 -0
- package/dist/repository/common-code.repository.d.ts +45 -0
- package/dist/repository/db.d.ts +12 -1
- package/dist/repository/index.d.ts +37 -5
- package/dist/repository/index.js +413 -211
- package/dist/repository/notification.repository.d.ts +58 -0
- package/dist/repository/project.repository.d.ts +90 -0
- package/dist/repository/request-log.repository.d.ts +1 -0
- package/dist/repository/storage-metadata.repository.d.ts +64 -0
- package/dist/repository/task-log-migration.d.ts +74 -0
- package/dist/repository/task-log.repository.d.ts +44 -0
- package/dist/repository/task-status.d.ts +14 -0
- package/dist/repository/task.repository.d.ts +224 -7
- package/dist/repository/thread-history.repository.d.ts +193 -0
- package/dist/repository/thread-origin-verdict.d.ts +27 -0
- package/dist/repository/thread-title.types.d.ts +29 -0
- package/dist/repository/thread.repository.d.ts +72 -6
- package/dist/repository/usage-backfill.d.ts +62 -0
- package/dist/repository/usage-from-logs.d.ts +21 -0
- package/dist/repository/workspace.repository.d.ts +3 -0
- package/dist/schema/agent-suggestions.d.ts +199 -0
- package/dist/schema/common-codes.d.ts +216 -0
- package/dist/schema/index.d.ts +11 -0
- package/dist/schema/notifications.d.ts +303 -0
- package/dist/schema/projects.d.ts +610 -0
- package/dist/schema/storage-metadata.d.ts +181 -0
- package/dist/schema/task-log-events.d.ts +119 -0
- package/dist/schema/tasks.d.ts +165 -0
- package/dist/schema/thread-creator-unverified.d.ts +45 -0
- package/dist/schema/thread-history.d.ts +734 -0
- package/dist/schema/threads.d.ts +59 -0
- package/dist/schema/ui-action-receipts.d.ts +358 -0
- package/dist/schema/ui-instance-repins.d.ts +222 -0
- package/dist/schema/ui-instances.d.ts +305 -0
- package/dist/schema/workspaces.d.ts +17 -0
- package/dist/skills/index.d.ts +15 -0
- package/dist/skills/index.js +2 -0
- package/dist/skills/types.d.ts +18 -0
- package/dist/task-log/anchor-child-tasks.d.ts +7 -0
- package/dist/task-log/delegation-trailer.d.ts +34 -0
- package/dist/template/engine.d.ts +2 -2
- package/dist/template/helpers/exec.browser.d.ts +4 -3
- package/dist/template/helpers/exec.d.ts +4 -3
- package/dist/template/types.d.ts +20 -0
- package/dist/testing/index.js +1 -1
- package/dist/types/index.d.ts +1572 -3
- package/dist/types/task-log.types.d.ts +2 -0
- package/dist/ui-card/index.d.ts +2 -0
- package/dist/ui-card/legacy-card-parser.d.ts +11 -0
- package/dist/ui-instance/definition.d.ts +6 -0
- package/dist/ui-instance/errors.d.ts +18 -0
- package/dist/ui-instance/index.d.ts +11 -0
- package/dist/ui-instance/json.d.ts +19 -0
- package/dist/ui-instance/lineage.d.ts +22 -0
- package/dist/ui-instance/runtime.d.ts +18 -0
- package/dist/ui-instance/store.d.ts +184 -0
- package/dist/ui-instance/types.d.ts +308 -0
- package/dist/ui-plugin/csp.d.ts +25 -0
- package/dist/ui-plugin/index.d.ts +4 -0
- package/dist/ui-plugin/limits.d.ts +27 -0
- package/dist/ui-plugin/manifest.d.ts +3 -0
- package/dist/ui-plugin/types.d.ts +190 -0
- package/dist/ui-plugin/validator.d.ts +15 -0
- package/dist/utils/crewx-executable.d.ts +76 -0
- package/dist/utils/crewx-home.d.ts +1 -0
- package/dist/utils/env-defaults.d.ts +2 -0
- package/dist/utils/id.d.ts +1 -1
- package/dist/utils/local-identity.d.ts +2 -0
- package/dist/utils/runner-env.d.ts +3 -0
- package/dist/utils/timestamp.d.ts +1 -0
- package/dist/utils/workspace.d.ts +1 -0
- package/dist/wi/create.d.ts +48 -0
- package/dist/wi/select.d.ts +20 -0
- package/package.json +49 -2
- package/templates/agents/default.yaml +284 -128
- package/templates/documents/crewx-manual.md +138 -138
- package/templates/documents/crewx-quick-guide.md +8 -7
- package/templates/workflows/wi-default-flow.yaml +65 -0
- package/templates/workflows/wi-plan-flow.yaml +140 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS `storage_metadata` (
|
|
2
|
+
`source_kind` text NOT NULL,
|
|
3
|
+
`source_id` text NOT NULL,
|
|
4
|
+
`utc_ts` text,
|
|
5
|
+
`bytes` integer NOT NULL,
|
|
6
|
+
PRIMARY KEY (`source_kind`, `source_id`)
|
|
7
|
+
) WITHOUT ROWID;
|
|
8
|
+
--> statement-breakpoint
|
|
9
|
+
CREATE INDEX IF NOT EXISTS `idx_storage_metadata_kind_ts_bytes`
|
|
10
|
+
ON `storage_metadata` (`source_kind`, `utc_ts`, `bytes`);
|
|
11
|
+
--> statement-breakpoint
|
|
12
|
+
CREATE TABLE IF NOT EXISTS `storage_metadata_state` (
|
|
13
|
+
`unit` text PRIMARY KEY NOT NULL,
|
|
14
|
+
`cursor_rowid` integer DEFAULT 0 NOT NULL,
|
|
15
|
+
`end_rowid` integer,
|
|
16
|
+
`complete` integer DEFAULT 0 NOT NULL,
|
|
17
|
+
`updated_at` text NOT NULL
|
|
18
|
+
) WITHOUT ROWID;
|
|
19
|
+
--> statement-breakpoint
|
|
20
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_tle_ins`
|
|
21
|
+
AFTER INSERT ON `task_log_events`
|
|
22
|
+
BEGIN
|
|
23
|
+
INSERT INTO `storage_metadata` (`source_kind`, `source_id`, `utc_ts`, `bytes`)
|
|
24
|
+
VALUES (
|
|
25
|
+
'taskLogs',
|
|
26
|
+
CAST(NEW.`id` AS TEXT),
|
|
27
|
+
datetime(NEW.`timestamp`),
|
|
28
|
+
COALESCE(length(CAST(NEW.`message` AS BLOB)), 0)
|
|
29
|
+
+ COALESCE(length(CAST(NEW.`task_id` AS BLOB)), 0)
|
|
30
|
+
+ COALESCE(length(CAST(NEW.`timestamp` AS BLOB)), 0)
|
|
31
|
+
+ COALESCE(length(CAST(NEW.`level` AS BLOB)), 0)
|
|
32
|
+
)
|
|
33
|
+
ON CONFLICT (`source_kind`, `source_id`) DO UPDATE SET
|
|
34
|
+
`utc_ts` = excluded.`utc_ts`,
|
|
35
|
+
`bytes` = excluded.`bytes`;
|
|
36
|
+
END;
|
|
37
|
+
--> statement-breakpoint
|
|
38
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_tle_upd`
|
|
39
|
+
AFTER UPDATE OF `id`, `timestamp`, `task_id`, `level`, `message` ON `task_log_events`
|
|
40
|
+
BEGIN
|
|
41
|
+
DELETE FROM `storage_metadata`
|
|
42
|
+
WHERE `source_kind` = 'taskLogs'
|
|
43
|
+
AND `source_id` = CAST(OLD.`id` AS TEXT)
|
|
44
|
+
AND OLD.`id` IS NOT NEW.`id`;
|
|
45
|
+
INSERT INTO `storage_metadata` (`source_kind`, `source_id`, `utc_ts`, `bytes`)
|
|
46
|
+
VALUES (
|
|
47
|
+
'taskLogs',
|
|
48
|
+
CAST(NEW.`id` AS TEXT),
|
|
49
|
+
datetime(NEW.`timestamp`),
|
|
50
|
+
COALESCE(length(CAST(NEW.`message` AS BLOB)), 0)
|
|
51
|
+
+ COALESCE(length(CAST(NEW.`task_id` AS BLOB)), 0)
|
|
52
|
+
+ COALESCE(length(CAST(NEW.`timestamp` AS BLOB)), 0)
|
|
53
|
+
+ COALESCE(length(CAST(NEW.`level` AS BLOB)), 0)
|
|
54
|
+
)
|
|
55
|
+
ON CONFLICT (`source_kind`, `source_id`) DO UPDATE SET
|
|
56
|
+
`utc_ts` = excluded.`utc_ts`,
|
|
57
|
+
`bytes` = excluded.`bytes`;
|
|
58
|
+
END;
|
|
59
|
+
--> statement-breakpoint
|
|
60
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_tle_del`
|
|
61
|
+
AFTER DELETE ON `task_log_events`
|
|
62
|
+
BEGIN
|
|
63
|
+
DELETE FROM `storage_metadata`
|
|
64
|
+
WHERE `source_kind` = 'taskLogs'
|
|
65
|
+
AND `source_id` = CAST(OLD.`id` AS TEXT);
|
|
66
|
+
END;
|
|
67
|
+
--> statement-breakpoint
|
|
68
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_request_logs_ins`
|
|
69
|
+
AFTER INSERT ON `request_logs`
|
|
70
|
+
BEGIN
|
|
71
|
+
INSERT INTO `storage_metadata` (`source_kind`, `source_id`, `utc_ts`, `bytes`)
|
|
72
|
+
VALUES (
|
|
73
|
+
'requestLogs',
|
|
74
|
+
CAST(NEW.`id` AS TEXT),
|
|
75
|
+
datetime(NEW.`timestamp`),
|
|
76
|
+
COALESCE(length(CAST(NEW.`path` AS BLOB)), 0)
|
|
77
|
+
+ COALESCE(length(CAST(NEW.`method` AS BLOB)), 0)
|
|
78
|
+
+ COALESCE(length(CAST(NEW.`request_body` AS BLOB)), 0)
|
|
79
|
+
+ COALESCE(length(CAST(NEW.`response_body` AS BLOB)), 0)
|
|
80
|
+
+ COALESCE(length(CAST(NEW.`request_headers` AS BLOB)), 0)
|
|
81
|
+
+ COALESCE(length(CAST(NEW.`response_headers` AS BLOB)), 0)
|
|
82
|
+
+ COALESCE(length(CAST(NEW.`query` AS BLOB)), 0)
|
|
83
|
+
+ COALESCE(length(CAST(NEW.`metadata` AS BLOB)), 0)
|
|
84
|
+
)
|
|
85
|
+
ON CONFLICT (`source_kind`, `source_id`) DO UPDATE SET
|
|
86
|
+
`utc_ts` = excluded.`utc_ts`,
|
|
87
|
+
`bytes` = excluded.`bytes`;
|
|
88
|
+
END;
|
|
89
|
+
--> statement-breakpoint
|
|
90
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_request_logs_upd`
|
|
91
|
+
AFTER UPDATE OF `id`, `timestamp`, `path`, `method`, `request_body`, `response_body`, `request_headers`, `response_headers`, `query`, `metadata` ON `request_logs`
|
|
92
|
+
BEGIN
|
|
93
|
+
DELETE FROM `storage_metadata`
|
|
94
|
+
WHERE `source_kind` = 'requestLogs'
|
|
95
|
+
AND `source_id` = CAST(OLD.`id` AS TEXT)
|
|
96
|
+
AND OLD.`id` IS NOT NEW.`id`;
|
|
97
|
+
INSERT INTO `storage_metadata` (`source_kind`, `source_id`, `utc_ts`, `bytes`)
|
|
98
|
+
VALUES (
|
|
99
|
+
'requestLogs',
|
|
100
|
+
CAST(NEW.`id` AS TEXT),
|
|
101
|
+
datetime(NEW.`timestamp`),
|
|
102
|
+
COALESCE(length(CAST(NEW.`path` AS BLOB)), 0)
|
|
103
|
+
+ COALESCE(length(CAST(NEW.`method` AS BLOB)), 0)
|
|
104
|
+
+ COALESCE(length(CAST(NEW.`request_body` AS BLOB)), 0)
|
|
105
|
+
+ COALESCE(length(CAST(NEW.`response_body` AS BLOB)), 0)
|
|
106
|
+
+ COALESCE(length(CAST(NEW.`request_headers` AS BLOB)), 0)
|
|
107
|
+
+ COALESCE(length(CAST(NEW.`response_headers` AS BLOB)), 0)
|
|
108
|
+
+ COALESCE(length(CAST(NEW.`query` AS BLOB)), 0)
|
|
109
|
+
+ COALESCE(length(CAST(NEW.`metadata` AS BLOB)), 0)
|
|
110
|
+
)
|
|
111
|
+
ON CONFLICT (`source_kind`, `source_id`) DO UPDATE SET
|
|
112
|
+
`utc_ts` = excluded.`utc_ts`,
|
|
113
|
+
`bytes` = excluded.`bytes`;
|
|
114
|
+
END;
|
|
115
|
+
--> statement-breakpoint
|
|
116
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_request_logs_del`
|
|
117
|
+
AFTER DELETE ON `request_logs`
|
|
118
|
+
BEGIN
|
|
119
|
+
DELETE FROM `storage_metadata`
|
|
120
|
+
WHERE `source_kind` = 'requestLogs'
|
|
121
|
+
AND `source_id` = CAST(OLD.`id` AS TEXT);
|
|
122
|
+
END;
|
|
123
|
+
--> statement-breakpoint
|
|
124
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_tasks_ins`
|
|
125
|
+
AFTER INSERT ON `tasks`
|
|
126
|
+
BEGIN
|
|
127
|
+
INSERT INTO `storage_metadata` (`source_kind`, `source_id`, `utc_ts`, `bytes`)
|
|
128
|
+
VALUES (
|
|
129
|
+
'prompts',
|
|
130
|
+
CAST(NEW.`id` AS TEXT),
|
|
131
|
+
datetime(NEW.`started_at`),
|
|
132
|
+
COALESCE(length(CAST(NEW.`prompt` AS BLOB)), 0)
|
|
133
|
+
+ COALESCE(length(CAST(NEW.`rendered_prompt` AS BLOB)), 0)
|
|
134
|
+
+ COALESCE(length(CAST(NEW.`result` AS BLOB)), 0)
|
|
135
|
+
)
|
|
136
|
+
ON CONFLICT (`source_kind`, `source_id`) DO UPDATE SET
|
|
137
|
+
`utc_ts` = excluded.`utc_ts`,
|
|
138
|
+
`bytes` = excluded.`bytes`;
|
|
139
|
+
INSERT INTO `storage_metadata` (`source_kind`, `source_id`, `utc_ts`, `bytes`)
|
|
140
|
+
VALUES (
|
|
141
|
+
'tasksLedger',
|
|
142
|
+
CAST(NEW.`id` AS TEXT),
|
|
143
|
+
datetime(NEW.`started_at`),
|
|
144
|
+
COALESCE(length(CAST(NEW.`id` AS BLOB)), 0)
|
|
145
|
+
+ COALESCE(length(CAST(NEW.`agent_id` AS BLOB)), 0)
|
|
146
|
+
+ COALESCE(length(CAST(NEW.`status` AS BLOB)), 0)
|
|
147
|
+
+ COALESCE(length(CAST(NEW.`started_at` AS BLOB)), 0)
|
|
148
|
+
+ COALESCE(length(CAST(NEW.`input_tokens` AS TEXT)), 0)
|
|
149
|
+
+ COALESCE(length(CAST(NEW.`output_tokens` AS TEXT)), 0)
|
|
150
|
+
+ COALESCE(length(CAST(NEW.`cost_usd` AS TEXT)), 0)
|
|
151
|
+
)
|
|
152
|
+
ON CONFLICT (`source_kind`, `source_id`) DO UPDATE SET
|
|
153
|
+
`utc_ts` = excluded.`utc_ts`,
|
|
154
|
+
`bytes` = excluded.`bytes`;
|
|
155
|
+
END;
|
|
156
|
+
--> statement-breakpoint
|
|
157
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_tasks_upd`
|
|
158
|
+
AFTER UPDATE OF `id`, `prompt`, `rendered_prompt`, `result`, `started_at` ON `tasks`
|
|
159
|
+
BEGIN
|
|
160
|
+
DELETE FROM `storage_metadata`
|
|
161
|
+
WHERE `source_kind` = 'prompts'
|
|
162
|
+
AND `source_id` = CAST(OLD.`id` AS TEXT)
|
|
163
|
+
AND OLD.`id` IS NOT NEW.`id`;
|
|
164
|
+
INSERT INTO `storage_metadata` (`source_kind`, `source_id`, `utc_ts`, `bytes`)
|
|
165
|
+
VALUES (
|
|
166
|
+
'prompts',
|
|
167
|
+
CAST(NEW.`id` AS TEXT),
|
|
168
|
+
datetime(NEW.`started_at`),
|
|
169
|
+
COALESCE(length(CAST(NEW.`prompt` AS BLOB)), 0)
|
|
170
|
+
+ COALESCE(length(CAST(NEW.`rendered_prompt` AS BLOB)), 0)
|
|
171
|
+
+ COALESCE(length(CAST(NEW.`result` AS BLOB)), 0)
|
|
172
|
+
)
|
|
173
|
+
ON CONFLICT (`source_kind`, `source_id`) DO UPDATE SET
|
|
174
|
+
`utc_ts` = excluded.`utc_ts`,
|
|
175
|
+
`bytes` = excluded.`bytes`;
|
|
176
|
+
END;
|
|
177
|
+
--> statement-breakpoint
|
|
178
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_tasks_upd_ledger`
|
|
179
|
+
AFTER UPDATE OF `id`, `agent_id`, `status`, `started_at`, `input_tokens`, `output_tokens`, `cost_usd` ON `tasks`
|
|
180
|
+
BEGIN
|
|
181
|
+
DELETE FROM `storage_metadata`
|
|
182
|
+
WHERE `source_kind` = 'tasksLedger'
|
|
183
|
+
AND `source_id` = CAST(OLD.`id` AS TEXT)
|
|
184
|
+
AND OLD.`id` IS NOT NEW.`id`;
|
|
185
|
+
INSERT INTO `storage_metadata` (`source_kind`, `source_id`, `utc_ts`, `bytes`)
|
|
186
|
+
VALUES (
|
|
187
|
+
'tasksLedger',
|
|
188
|
+
CAST(NEW.`id` AS TEXT),
|
|
189
|
+
datetime(NEW.`started_at`),
|
|
190
|
+
COALESCE(length(CAST(NEW.`id` AS BLOB)), 0)
|
|
191
|
+
+ COALESCE(length(CAST(NEW.`agent_id` AS BLOB)), 0)
|
|
192
|
+
+ COALESCE(length(CAST(NEW.`status` AS BLOB)), 0)
|
|
193
|
+
+ COALESCE(length(CAST(NEW.`started_at` AS BLOB)), 0)
|
|
194
|
+
+ COALESCE(length(CAST(NEW.`input_tokens` AS TEXT)), 0)
|
|
195
|
+
+ COALESCE(length(CAST(NEW.`output_tokens` AS TEXT)), 0)
|
|
196
|
+
+ COALESCE(length(CAST(NEW.`cost_usd` AS TEXT)), 0)
|
|
197
|
+
)
|
|
198
|
+
ON CONFLICT (`source_kind`, `source_id`) DO UPDATE SET
|
|
199
|
+
`utc_ts` = excluded.`utc_ts`,
|
|
200
|
+
`bytes` = excluded.`bytes`;
|
|
201
|
+
END;
|
|
202
|
+
--> statement-breakpoint
|
|
203
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_tasks_del`
|
|
204
|
+
AFTER DELETE ON `tasks`
|
|
205
|
+
BEGIN
|
|
206
|
+
DELETE FROM `storage_metadata`
|
|
207
|
+
WHERE `source_kind` = 'prompts'
|
|
208
|
+
AND `source_id` = CAST(OLD.`id` AS TEXT);
|
|
209
|
+
DELETE FROM `storage_metadata`
|
|
210
|
+
WHERE `source_kind` = 'tasksLedger'
|
|
211
|
+
AND `source_id` = CAST(OLD.`id` AS TEXT);
|
|
212
|
+
END;
|
|
213
|
+
--> statement-breakpoint
|
|
214
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_threads_ins`
|
|
215
|
+
AFTER INSERT ON `threads`
|
|
216
|
+
BEGIN
|
|
217
|
+
INSERT INTO `storage_metadata` (`source_kind`, `source_id`, `utc_ts`, `bytes`)
|
|
218
|
+
VALUES (
|
|
219
|
+
'threadsLedger',
|
|
220
|
+
CAST(NEW.`id` AS TEXT),
|
|
221
|
+
datetime(COALESCE(NEW.`updated_at`, NEW.`created_at`)),
|
|
222
|
+
COALESCE(length(CAST(NEW.`id` AS BLOB)), 0)
|
|
223
|
+
+ COALESCE(length(CAST(NEW.`workspace_id` AS BLOB)), 0)
|
|
224
|
+
+ COALESCE(length(CAST(NEW.`platform` AS BLOB)), 0)
|
|
225
|
+
+ COALESCE(length(CAST(NEW.`created_at` AS BLOB)), 0)
|
|
226
|
+
+ COALESCE(length(CAST(NEW.`updated_at` AS BLOB)), 0)
|
|
227
|
+
)
|
|
228
|
+
ON CONFLICT (`source_kind`, `source_id`) DO UPDATE SET
|
|
229
|
+
`utc_ts` = excluded.`utc_ts`,
|
|
230
|
+
`bytes` = excluded.`bytes`;
|
|
231
|
+
END;
|
|
232
|
+
--> statement-breakpoint
|
|
233
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_threads_upd`
|
|
234
|
+
AFTER UPDATE OF `id`, `workspace_id`, `platform`, `created_at`, `updated_at` ON `threads`
|
|
235
|
+
BEGIN
|
|
236
|
+
DELETE FROM `storage_metadata`
|
|
237
|
+
WHERE `source_kind` = 'threadsLedger'
|
|
238
|
+
AND `source_id` = CAST(OLD.`id` AS TEXT)
|
|
239
|
+
AND OLD.`id` IS NOT NEW.`id`;
|
|
240
|
+
INSERT INTO `storage_metadata` (`source_kind`, `source_id`, `utc_ts`, `bytes`)
|
|
241
|
+
VALUES (
|
|
242
|
+
'threadsLedger',
|
|
243
|
+
CAST(NEW.`id` AS TEXT),
|
|
244
|
+
datetime(COALESCE(NEW.`updated_at`, NEW.`created_at`)),
|
|
245
|
+
COALESCE(length(CAST(NEW.`id` AS BLOB)), 0)
|
|
246
|
+
+ COALESCE(length(CAST(NEW.`workspace_id` AS BLOB)), 0)
|
|
247
|
+
+ COALESCE(length(CAST(NEW.`platform` AS BLOB)), 0)
|
|
248
|
+
+ COALESCE(length(CAST(NEW.`created_at` AS BLOB)), 0)
|
|
249
|
+
+ COALESCE(length(CAST(NEW.`updated_at` AS BLOB)), 0)
|
|
250
|
+
)
|
|
251
|
+
ON CONFLICT (`source_kind`, `source_id`) DO UPDATE SET
|
|
252
|
+
`utc_ts` = excluded.`utc_ts`,
|
|
253
|
+
`bytes` = excluded.`bytes`;
|
|
254
|
+
END;
|
|
255
|
+
--> statement-breakpoint
|
|
256
|
+
CREATE TRIGGER IF NOT EXISTS `trg_storage_meta_threads_del`
|
|
257
|
+
AFTER DELETE ON `threads`
|
|
258
|
+
BEGIN
|
|
259
|
+
DELETE FROM `storage_metadata`
|
|
260
|
+
WHERE `source_kind` = 'threadsLedger'
|
|
261
|
+
AND `source_id` = CAST(OLD.`id` AS TEXT);
|
|
262
|
+
END;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
ALTER TABLE `tasks` ADD `heartbeat_at` text;
|
|
2
|
+
--> statement-breakpoint
|
|
3
|
+
ALTER TABLE `tasks` ADD `stop_requested_at` text;
|
|
4
|
+
--> statement-breakpoint
|
|
5
|
+
ALTER TABLE `tasks` ADD `stop_requested_epoch` integer;
|
|
6
|
+
--> statement-breakpoint
|
|
7
|
+
CREATE INDEX IF NOT EXISTS `idx_tasks_status_heartbeat`
|
|
8
|
+
ON `tasks` (`status`, `heartbeat_at`);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
ALTER TABLE `ui_instances` ADD `app_id` text CONSTRAINT "ui_instances_app_id_ck" CHECK("ui_instances"."app_id" IS NULL OR length("ui_instances"."app_id") BETWEEN 1 AND 128);--> statement-breakpoint
|
|
2
|
+
CREATE UNIQUE INDEX IF NOT EXISTS `ui_instances_workspace_thread_app_uq` ON `ui_instances` (`workspace_id`,`thread_id`,`app_id`);
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
PRAGMA foreign_keys=OFF;--> statement-breakpoint
|
|
2
|
+
CREATE TABLE `__new_ui_action_receipts` (
|
|
3
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
4
|
+
`instance_id` text NOT NULL,
|
|
5
|
+
`request_id` text NOT NULL,
|
|
6
|
+
`action_id` text NOT NULL,
|
|
7
|
+
`actor_json` text NOT NULL,
|
|
8
|
+
`source` text NOT NULL,
|
|
9
|
+
`expected_revision` integer NOT NULL,
|
|
10
|
+
`before_revision` integer NOT NULL,
|
|
11
|
+
`after_revision` integer,
|
|
12
|
+
`status` text NOT NULL,
|
|
13
|
+
`outcome` text,
|
|
14
|
+
`input_json` text NOT NULL,
|
|
15
|
+
`result_json` text,
|
|
16
|
+
`error_code` text,
|
|
17
|
+
`requested_at` integer NOT NULL,
|
|
18
|
+
`settled_at` integer,
|
|
19
|
+
CONSTRAINT "ui_action_receipts_id_ck" CHECK(length("__new_ui_action_receipts"."id") BETWEEN 5 AND 128),
|
|
20
|
+
CONSTRAINT "ui_action_receipts_instance_id_ck" CHECK(length("__new_ui_action_receipts"."instance_id") BETWEEN 1 AND 128),
|
|
21
|
+
CONSTRAINT "ui_action_receipts_request_id_ck" CHECK(length("__new_ui_action_receipts"."request_id") BETWEEN 1 AND 128),
|
|
22
|
+
CONSTRAINT "ui_action_receipts_action_id_ck" CHECK(length("__new_ui_action_receipts"."action_id") BETWEEN 1 AND 128),
|
|
23
|
+
CONSTRAINT "ui_action_receipts_actor_json_ck" CHECK(json_valid("__new_ui_action_receipts"."actor_json") AND json_type("__new_ui_action_receipts"."actor_json") = 'object'),
|
|
24
|
+
CONSTRAINT "ui_action_receipts_source_ck" CHECK("__new_ui_action_receipts"."source" IN ('ui_host', 'cli', 'system', 'mcp')),
|
|
25
|
+
CONSTRAINT "ui_action_receipts_expected_revision_ck" CHECK("__new_ui_action_receipts"."expected_revision" >= 0),
|
|
26
|
+
CONSTRAINT "ui_action_receipts_before_revision_ck" CHECK("__new_ui_action_receipts"."before_revision" >= 0),
|
|
27
|
+
CONSTRAINT "ui_action_receipts_after_revision_ck" CHECK("__new_ui_action_receipts"."after_revision" IS NULL OR "__new_ui_action_receipts"."after_revision" >= 0),
|
|
28
|
+
CONSTRAINT "ui_action_receipts_status_ck" CHECK("__new_ui_action_receipts"."status" IN ('requested', 'settled')),
|
|
29
|
+
CONSTRAINT "ui_action_receipts_outcome_ck" CHECK("__new_ui_action_receipts"."outcome" IS NULL OR "__new_ui_action_receipts"."outcome" IN ('succeeded', 'rejected', 'failed', 'conflicted', 'expired')),
|
|
30
|
+
CONSTRAINT "ui_action_receipts_input_json_ck" CHECK(json_valid("__new_ui_action_receipts"."input_json") AND json_type("__new_ui_action_receipts"."input_json") = 'object'),
|
|
31
|
+
CONSTRAINT "ui_action_receipts_result_json_ck" CHECK("__new_ui_action_receipts"."result_json" IS NULL OR (json_valid("__new_ui_action_receipts"."result_json") AND json_type("__new_ui_action_receipts"."result_json") = 'object')),
|
|
32
|
+
CONSTRAINT "ui_action_receipts_requested_at_ck" CHECK("__new_ui_action_receipts"."requested_at" >= 0),
|
|
33
|
+
CONSTRAINT "ui_action_receipts_settled_at_ck" CHECK("__new_ui_action_receipts"."settled_at" IS NULL OR "__new_ui_action_receipts"."settled_at" >= "__new_ui_action_receipts"."requested_at"),
|
|
34
|
+
CONSTRAINT "ui_action_receipts_status_transition_ck" CHECK((
|
|
35
|
+
("__new_ui_action_receipts"."status" = 'requested' AND "__new_ui_action_receipts"."after_revision" IS NULL AND "__new_ui_action_receipts"."outcome" IS NULL AND "__new_ui_action_receipts"."settled_at" IS NULL)
|
|
36
|
+
OR
|
|
37
|
+
("__new_ui_action_receipts"."status" = 'settled' AND "__new_ui_action_receipts"."after_revision" IS NOT NULL AND "__new_ui_action_receipts"."outcome" IS NOT NULL AND "__new_ui_action_receipts"."settled_at" IS NOT NULL)
|
|
38
|
+
))
|
|
39
|
+
);
|
|
40
|
+
--> statement-breakpoint
|
|
41
|
+
INSERT INTO `__new_ui_action_receipts`("id", "instance_id", "request_id", "action_id", "actor_json", "source", "expected_revision", "before_revision", "after_revision", "status", "outcome", "input_json", "result_json", "error_code", "requested_at", "settled_at") SELECT "id", "instance_id", "request_id", "action_id", "actor_json", "source", "expected_revision", "before_revision", "after_revision", "status", "outcome", "input_json", "result_json", "error_code", "requested_at", "settled_at" FROM `ui_action_receipts`;--> statement-breakpoint
|
|
42
|
+
DROP TABLE `ui_action_receipts`;--> statement-breakpoint
|
|
43
|
+
ALTER TABLE `__new_ui_action_receipts` RENAME TO `ui_action_receipts`;--> statement-breakpoint
|
|
44
|
+
PRAGMA foreign_keys=ON;--> statement-breakpoint
|
|
45
|
+
CREATE UNIQUE INDEX `ui_action_receipts_instance_request_uq` ON `ui_action_receipts` (`instance_id`,`request_id`);--> statement-breakpoint
|
|
46
|
+
CREATE INDEX `ui_action_receipts_instance_id_idx` ON `ui_action_receipts` (`instance_id`);--> statement-breakpoint
|
|
47
|
+
CREATE INDEX `ui_action_receipts_requested_at_idx` ON `ui_action_receipts` (`requested_at`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE `tasks` ADD `cwd` text;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
ALTER TABLE `tasks` ADD `actor_kind` text;--> statement-breakpoint
|
|
2
|
+
ALTER TABLE `tasks` ADD `actor_id` text;--> statement-breakpoint
|
|
3
|
+
ALTER TABLE `threads` ADD `created_by_kind` text;--> statement-breakpoint
|
|
4
|
+
ALTER TABLE `threads` ADD `created_by_id` text;--> statement-breakpoint
|
|
5
|
+
ALTER TABLE `threads` ADD `created_by_task_id` text;--> statement-breakpoint
|
|
6
|
+
CREATE INDEX IF NOT EXISTS `idx_threads_workspace_created_by_kind_updated_at` ON `threads` (`workspace_id`,`created_by_kind`,`updated_at`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE `ui_instances` ADD `opened_by_json` text;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS `thread_creator_unverified` (
|
|
2
|
+
`thread_id` text NOT NULL,
|
|
3
|
+
`created_by_task_id` text NOT NULL,
|
|
4
|
+
PRIMARY KEY(`thread_id`, `created_by_task_id`)
|
|
5
|
+
);
|
|
6
|
+
--> statement-breakpoint
|
|
7
|
+
INSERT OR IGNORE INTO `thread_creator_unverified` (`thread_id`, `created_by_task_id`)
|
|
8
|
+
SELECT `id`, `created_by_task_id`
|
|
9
|
+
FROM `threads`
|
|
10
|
+
WHERE `created_by_task_id` IS NOT NULL
|
|
11
|
+
AND NOT EXISTS (
|
|
12
|
+
SELECT 1
|
|
13
|
+
FROM `sqlite_master`
|
|
14
|
+
WHERE `type` = 'trigger'
|
|
15
|
+
AND `name` = 'trg_threads_creator_late_fill_guard'
|
|
16
|
+
);
|
|
17
|
+
--> statement-breakpoint
|
|
18
|
+
CREATE TRIGGER IF NOT EXISTS `trg_threads_creator_late_fill_guard`
|
|
19
|
+
AFTER UPDATE OF `created_by_task_id` ON `threads`
|
|
20
|
+
WHEN OLD.`created_by_task_id` IS NULL
|
|
21
|
+
AND NEW.`created_by_task_id` IS NOT NULL
|
|
22
|
+
AND (
|
|
23
|
+
OLD.`message_count` <> 0
|
|
24
|
+
OR EXISTS (
|
|
25
|
+
SELECT 1
|
|
26
|
+
FROM `tasks`
|
|
27
|
+
WHERE `thread_id` = OLD.`id`
|
|
28
|
+
AND `id` <> NEW.`created_by_task_id`
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
BEGIN
|
|
32
|
+
UPDATE `threads`
|
|
33
|
+
SET `created_by_task_id` = NULL
|
|
34
|
+
WHERE `id` = NEW.`id`;
|
|
35
|
+
END;
|
|
36
|
+
--> statement-breakpoint
|
|
37
|
+
CREATE INDEX IF NOT EXISTS `idx_tasks_thread_creator`
|
|
38
|
+
ON `tasks` (`id`, `thread_id`, `actor_kind`, `actor_id`);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS `ui_instance_repins` (
|
|
2
|
+
`instance_id` text NOT NULL,
|
|
3
|
+
`from_version` integer NOT NULL,
|
|
4
|
+
`from_hash` text NOT NULL,
|
|
5
|
+
`to_version` integer NOT NULL,
|
|
6
|
+
`to_hash` text NOT NULL,
|
|
7
|
+
`from_revision` integer NOT NULL,
|
|
8
|
+
`to_revision` integer,
|
|
9
|
+
`status` text NOT NULL,
|
|
10
|
+
`code` text,
|
|
11
|
+
`attempts` integer DEFAULT 1 NOT NULL,
|
|
12
|
+
`first_at` integer NOT NULL,
|
|
13
|
+
`last_at` integer NOT NULL,
|
|
14
|
+
PRIMARY KEY(`instance_id`, `to_hash`),
|
|
15
|
+
CONSTRAINT "ui_instance_repins_instance_id_ck" CHECK(length("ui_instance_repins"."instance_id") BETWEEN 5 AND 128 AND "ui_instance_repins"."instance_id" GLOB 'uic_*'),
|
|
16
|
+
CONSTRAINT "ui_instance_repins_from_version_ck" CHECK("ui_instance_repins"."from_version" >= 1),
|
|
17
|
+
CONSTRAINT "ui_instance_repins_to_version_ck" CHECK("ui_instance_repins"."to_version" >= 1),
|
|
18
|
+
CONSTRAINT "ui_instance_repins_from_hash_ck" CHECK(length("ui_instance_repins"."from_hash") = 64 AND "ui_instance_repins"."from_hash" NOT GLOB '*[^0-9a-f]*'),
|
|
19
|
+
CONSTRAINT "ui_instance_repins_to_hash_ck" CHECK(length("ui_instance_repins"."to_hash") = 64 AND "ui_instance_repins"."to_hash" NOT GLOB '*[^0-9a-f]*'),
|
|
20
|
+
CONSTRAINT "ui_instance_repins_from_revision_ck" CHECK("ui_instance_repins"."from_revision" >= 0),
|
|
21
|
+
CONSTRAINT "ui_instance_repins_to_revision_ck" CHECK("ui_instance_repins"."to_revision" IS NULL OR "ui_instance_repins"."to_revision" >= 0),
|
|
22
|
+
CONSTRAINT "ui_instance_repins_status_ck" CHECK("ui_instance_repins"."status" IN ('applied', 'deferred', 'failed')),
|
|
23
|
+
CONSTRAINT "ui_instance_repins_attempts_ck" CHECK("ui_instance_repins"."attempts" >= 1),
|
|
24
|
+
CONSTRAINT "ui_instance_repins_dates_ck" CHECK("ui_instance_repins"."first_at" >= 0 AND "ui_instance_repins"."last_at" >= "ui_instance_repins"."first_at"),
|
|
25
|
+
CONSTRAINT "ui_instance_repins_result_ck" CHECK((
|
|
26
|
+
("ui_instance_repins"."status" = 'applied' AND "ui_instance_repins"."code" IS NULL
|
|
27
|
+
AND "ui_instance_repins"."to_revision" = "ui_instance_repins"."from_revision" + 1)
|
|
28
|
+
OR
|
|
29
|
+
("ui_instance_repins"."status" IN ('deferred', 'failed') AND "ui_instance_repins"."code" IS NOT NULL
|
|
30
|
+
AND "ui_instance_repins"."to_revision" IS NULL)
|
|
31
|
+
))
|
|
32
|
+
);
|
|
33
|
+
--> statement-breakpoint
|
|
34
|
+
ALTER TABLE `ui_action_receipts` ADD `definition_id` text;--> statement-breakpoint
|
|
35
|
+
ALTER TABLE `ui_action_receipts` ADD `definition_version` integer;--> statement-breakpoint
|
|
36
|
+
ALTER TABLE `ui_action_receipts` ADD `definition_hash` text;
|