@opengeni/db 0.28.9 → 0.31.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/attached-browser-devices.d.ts +42 -0
  2. package/dist/attempt-tool-catalogs.d.ts +16 -0
  3. package/dist/browser-auth.d.ts +91 -0
  4. package/dist/browser-identities.d.ts +128 -0
  5. package/dist/browser-sessions.d.ts +272 -0
  6. package/dist/browser-state-artifacts.d.ts +17 -0
  7. package/dist/capability-components.d.ts +37 -0
  8. package/dist/capability-integrations.d.ts +192 -0
  9. package/dist/chunk-F5FT7BEZ.js +3535 -0
  10. package/dist/chunk-F5FT7BEZ.js.map +1 -0
  11. package/dist/chunk-ISI2TIUG.js +639 -0
  12. package/dist/chunk-ISI2TIUG.js.map +1 -0
  13. package/dist/chunk-MWDVXQOL.js +11639 -0
  14. package/dist/chunk-MWDVXQOL.js.map +1 -0
  15. package/dist/chunk-NBE6CHRI.js +955 -0
  16. package/dist/chunk-NBE6CHRI.js.map +1 -0
  17. package/dist/{chunk-VHBFHMPC.js → chunk-YHZXQ7HP.js} +754 -11
  18. package/dist/chunk-YHZXQ7HP.js.map +1 -0
  19. package/dist/codemode-operations.d.ts +117 -0
  20. package/dist/codex-token-resolver.d.ts +2 -2
  21. package/dist/company-profile-schema.d.ts +798 -0
  22. package/dist/company-profile.d.ts +268 -0
  23. package/dist/computer-sessions.d.ts +109 -0
  24. package/dist/connection-token-resolver.d.ts +9 -4
  25. package/dist/database.d.ts +52 -3
  26. package/dist/editable-artifact-durable-export.d.ts +153 -0
  27. package/dist/editable-artifact-durable-export.js +788 -0
  28. package/dist/editable-artifact-durable-export.js.map +1 -0
  29. package/dist/editable-artifact-materialization.d.ts +123 -0
  30. package/dist/editable-artifacts-schema.d.ts +4152 -0
  31. package/dist/editable-artifacts.d.ts +610 -0
  32. package/dist/editable-artifacts.js +26 -0
  33. package/dist/editable-artifacts.js.map +1 -0
  34. package/dist/generated-images.d.ts +139 -0
  35. package/dist/index.d.ts +698 -111
  36. package/dist/index.js +27573 -10322
  37. package/dist/index.js.map +1 -1
  38. package/dist/insights.d.ts +51 -4
  39. package/dist/integration-bindings.d.ts +70 -0
  40. package/dist/integration-features.d.ts +99 -0
  41. package/dist/interaction-revisions.d.ts +3 -0
  42. package/dist/interaction-schema.d.ts +5372 -0
  43. package/dist/knowledge-source-sync-schema.d.ts +1679 -0
  44. package/dist/knowledge-source-sync.d.ts +274 -0
  45. package/dist/memory-governance.d.ts +2 -2
  46. package/dist/memory-slack-delivery.d.ts +101 -0
  47. package/dist/new-session-drafts.d.ts +2 -2
  48. package/dist/pack-components.d.ts +76 -0
  49. package/dist/pack-installations.d.ts +86 -0
  50. package/dist/persistence-errors.d.ts +3 -3
  51. package/dist/plugin-packages.d.ts +126 -0
  52. package/dist/preference-registry.d.ts +1 -1
  53. package/dist/provision-roles.d.ts +9 -1
  54. package/dist/provision-roles.js +1 -1
  55. package/dist/runtime-posture.d.ts +18 -6
  56. package/dist/schema.d.ts +18342 -9099
  57. package/dist/schema.js +165 -1
  58. package/dist/scoped-knowledge.d.ts +97 -1
  59. package/dist/session-control.d.ts +4 -4
  60. package/dist/session-queue-commands.d.ts +19 -11
  61. package/dist/session-realtime-context.d.ts +2 -2
  62. package/dist/session-realtime-ledger.d.ts +4 -4
  63. package/dist/session-realtime-mirror.d.ts +2 -2
  64. package/dist/session-realtime-state.d.ts +1 -1
  65. package/dist/session-realtime-terminal.d.ts +1 -1
  66. package/dist/session-realtime.d.ts +7 -7
  67. package/dist/session-tool-call-settlement.d.ts +1 -1
  68. package/dist/slack-user-link-access.d.ts +54 -0
  69. package/dist/transcription-recordings.d.ts +2 -2
  70. package/dist/turn-initiator.d.ts +2 -2
  71. package/dist/video-generation.d.ts +216 -0
  72. package/dist/video-generation.js +66 -0
  73. package/dist/video-generation.js.map +1 -0
  74. package/dist/workspace-artifacts.d.ts +1 -1
  75. package/dist/workspace-instruction-policies.d.ts +1 -1
  76. package/dist/workspace-learning-policy-schema.d.ts +932 -0
  77. package/dist/workspace-learning-policy.d.ts +161 -0
  78. package/drizzle/0183_model_call_provider_cost_estimates.sql +39 -0
  79. package/drizzle/0184_sandbox_drain_teardown_fence.sql +682 -0
  80. package/drizzle/0185_temporal_schedule_cleanup_outbox.sql +168 -0
  81. package/drizzle/0186_sandbox_capture_provider_contract.sql +400 -0
  82. package/drizzle/0187_generated_image_artifacts.sql +173 -0
  83. package/drizzle/0188_image_generation_retention_failure.sql +25 -0
  84. package/drizzle/0189_retained_session_image_formats.sql +13 -0
  85. package/drizzle/0190_timeline_annotations.sql +31 -0
  86. package/drizzle/0191_editable_artifact_engine.sql +3853 -0
  87. package/drizzle/0192_editable_artifact_live_tickets.sql +338 -0
  88. package/drizzle/0193_editable_artifact_authorization.sql +190 -0
  89. package/drizzle/0194_editable_artifact_durable_exports.sql +160 -0
  90. package/drizzle/0195_editable_artifact_import_authorization.sql +203 -0
  91. package/drizzle/0196_rig_provider_images.sql +152 -0
  92. package/drizzle/0197_knowledge_source_sync_schedules.sql +523 -0
  93. package/drizzle/0198_memory_slack_publication_delivery.sql +393 -0
  94. package/drizzle/0199_workspace_learning_policy.sql +980 -0
  95. package/drizzle/0201_company_profile_authority.sql +849 -0
  96. package/drizzle/0202_document_index_checkpoints.sql +85 -0
  97. package/drizzle/0203_durable_video_generation.sql +353 -0
  98. package/drizzle/0204_video_generation_funding.sql +44 -0
  99. package/drizzle/0205_attempt_tool_catalogs.sql +230 -0
  100. package/drizzle/0206_browser_sessions.sql +646 -0
  101. package/drizzle/0207_browser_identities.sql +379 -0
  102. package/drizzle/0208_attached_browser_devices.sql +165 -0
  103. package/drizzle/0209_computer_sessions.sql +575 -0
  104. package/drizzle/0210_browser_auth_network_interventions.sql +441 -0
  105. package/drizzle/0211_editable_artifact_session_links.sql +58 -0
  106. package/drizzle/0212_slack_installation_bindings.sql +348 -0
  107. package/drizzle/0213_slack_user_link_access_requests.sql +177 -0
  108. package/drizzle/0214_session_activity_commit_gate.sql +262 -0
  109. package/drizzle/0215_capabilities_platform.sql +980 -0
  110. package/drizzle/0216_pack_component_ownership.sql +235 -0
  111. package/drizzle/0217_capability_definition_delete_authority.sql +32 -0
  112. package/package.json +18 -5
  113. package/src/attached-browser-devices.ts +371 -0
  114. package/src/attempt-tool-catalogs.ts +131 -0
  115. package/src/browser-auth.ts +1896 -0
  116. package/src/browser-identities.ts +1168 -0
  117. package/src/browser-sessions.ts +2005 -0
  118. package/src/browser-state-artifacts.ts +59 -0
  119. package/src/capability-components.ts +166 -0
  120. package/src/capability-integrations.ts +1663 -0
  121. package/src/codemode-operations.ts +674 -0
  122. package/src/company-profile-schema.ts +143 -0
  123. package/src/company-profile.ts +968 -0
  124. package/src/computer-sessions.ts +1130 -0
  125. package/src/connection-token-resolver.ts +270 -25
  126. package/src/database.ts +427 -23
  127. package/src/editable-artifact-durable-export.ts +1201 -0
  128. package/src/editable-artifact-materialization.ts +893 -0
  129. package/src/editable-artifacts-schema.ts +879 -0
  130. package/src/editable-artifacts.ts +5404 -0
  131. package/src/generated-images.ts +740 -0
  132. package/src/index.ts +5917 -1182
  133. package/src/insights.ts +160 -13
  134. package/src/integration-bindings.ts +455 -0
  135. package/src/integration-features.ts +859 -0
  136. package/src/interaction-revisions.ts +40 -0
  137. package/src/interaction-schema.ts +1303 -0
  138. package/src/knowledge-source-sync-schema.ts +192 -0
  139. package/src/knowledge-source-sync.ts +1922 -0
  140. package/src/memory-slack-delivery.ts +801 -0
  141. package/src/pack-components.ts +954 -0
  142. package/src/pack-installations.ts +929 -0
  143. package/src/persistence-errors.ts +4 -7
  144. package/src/plugin-packages.ts +1186 -0
  145. package/src/provision-roles.ts +302 -1
  146. package/src/runtime-posture-cli.ts +9 -0
  147. package/src/runtime-posture.ts +508 -5
  148. package/src/schema.ts +5117 -3119
  149. package/src/scoped-knowledge-schema.ts +1 -1
  150. package/src/scoped-knowledge.ts +655 -3
  151. package/src/session-control.ts +8 -5
  152. package/src/session-queue-commands.ts +187 -14
  153. package/src/session-realtime-context.ts +2 -2
  154. package/src/session-realtime-ledger.ts +3 -3
  155. package/src/session-realtime.ts +7 -7
  156. package/src/session-tool-call-settlement.ts +9 -0
  157. package/src/slack-user-link-access.ts +702 -0
  158. package/src/video-generation.ts +1452 -0
  159. package/src/workspace-learning-policy-schema.ts +139 -0
  160. package/src/workspace-learning-policy.ts +595 -0
  161. package/dist/chunk-P6CUHXQZ.js +0 -7248
  162. package/dist/chunk-P6CUHXQZ.js.map +0 -1
  163. package/dist/chunk-VHBFHMPC.js.map +0 -1
@@ -0,0 +1,173 @@
1
+ -- deployment-mode: rolling
2
+ -- Keep generated image bytes in the permanent workspace file authority while
3
+ -- recording only bounded provider/tool correlation needed for replay and UI.
4
+
5
+ SET LOCAL lock_timeout = '5s';
6
+ SET LOCAL statement_timeout = '5min';
7
+
8
+ CREATE TABLE "generated_image_artifacts" (
9
+ "artifact_id" uuid PRIMARY KEY,
10
+ "account_id" uuid NOT NULL,
11
+ "workspace_id" uuid NOT NULL,
12
+ "session_id" uuid,
13
+ "turn_id" uuid,
14
+ "attempt_id" uuid,
15
+ "upload_id" uuid,
16
+ "settlement_key" text NOT NULL,
17
+ "tool_call_id" text NOT NULL,
18
+ "source_strategy" text NOT NULL,
19
+ "provider_id" text NOT NULL,
20
+ "provider_binding_hash" text NOT NULL,
21
+ "provider_item_id" text,
22
+ "status" text NOT NULL DEFAULT 'pending',
23
+ "media_type" text NOT NULL,
24
+ "size_bytes" bigint NOT NULL,
25
+ "sha256" text NOT NULL,
26
+ "width" integer NOT NULL,
27
+ "height" integer NOT NULL,
28
+ "sandbox_path" text NOT NULL,
29
+ "ready_at" timestamptz,
30
+ "last_error" text,
31
+ "created_at" timestamptz NOT NULL DEFAULT now(),
32
+ "updated_at" timestamptz NOT NULL DEFAULT now(),
33
+ CONSTRAINT "generated_image_artifacts_workspace_account_fk"
34
+ FOREIGN KEY ("workspace_id", "account_id")
35
+ REFERENCES "workspaces"("id", "account_id") ON DELETE CASCADE,
36
+ CONSTRAINT "generated_image_artifacts_workspace_session_fk"
37
+ FOREIGN KEY ("workspace_id", "session_id")
38
+ REFERENCES "sessions"("workspace_id", "id") ON DELETE SET NULL ("session_id"),
39
+ CONSTRAINT "generated_image_artifacts_workspace_turn_fk"
40
+ FOREIGN KEY ("workspace_id", "turn_id")
41
+ REFERENCES "session_turns"("workspace_id", "id") ON DELETE SET NULL ("turn_id"),
42
+ CONSTRAINT "generated_image_artifacts_workspace_attempt_fk"
43
+ FOREIGN KEY ("workspace_id", "attempt_id")
44
+ REFERENCES "session_turn_attempts"("workspace_id", "id") ON DELETE SET NULL ("attempt_id"),
45
+ CONSTRAINT "generated_image_artifacts_upload_fk"
46
+ FOREIGN KEY ("upload_id") REFERENCES "file_uploads"("id") ON DELETE SET NULL,
47
+ CONSTRAINT "generated_image_artifacts_workspace_file_fk"
48
+ FOREIGN KEY ("workspace_id", "artifact_id")
49
+ REFERENCES "files"("workspace_id", "id") ON DELETE CASCADE,
50
+ CONSTRAINT "generated_image_artifacts_source_strategy_chk"
51
+ CHECK ("source_strategy" IN ('native_hosted', 'provider_adapter')),
52
+ CONSTRAINT "generated_image_artifacts_source_shape_chk"
53
+ CHECK (
54
+ ("source_strategy" = 'native_hosted' AND "provider_item_id" IS NOT NULL)
55
+ OR ("source_strategy" = 'provider_adapter' AND "provider_item_id" IS NULL)
56
+ ),
57
+ CONSTRAINT "generated_image_artifacts_status_chk"
58
+ CHECK ("status" IN ('pending', 'ready')),
59
+ CONSTRAINT "generated_image_artifacts_ready_shape_chk"
60
+ CHECK (("status" = 'ready') = ("ready_at" IS NOT NULL)),
61
+ CONSTRAINT "generated_image_artifacts_media_type_chk"
62
+ CHECK ("media_type" IN ('image/png', 'image/jpeg', 'image/webp')),
63
+ CONSTRAINT "generated_image_artifacts_size_chk"
64
+ CHECK ("size_bytes" > 0 AND "size_bytes" <= 67108864),
65
+ CONSTRAINT "generated_image_artifacts_sha256_chk"
66
+ CHECK ("sha256" ~ '^[0-9a-f]{64}$'),
67
+ CONSTRAINT "generated_image_artifacts_binding_hash_chk"
68
+ CHECK ("provider_binding_hash" ~ '^[0-9a-f]{64}$'),
69
+ CONSTRAINT "generated_image_artifacts_identity_bounds_chk"
70
+ CHECK (
71
+ "settlement_key" ~ '^[0-9a-f]{64}$'
72
+ AND octet_length("tool_call_id") BETWEEN 1 AND 512
73
+ AND octet_length("provider_id") BETWEEN 1 AND 128
74
+ AND ("provider_item_id" IS NULL OR octet_length("provider_item_id") BETWEEN 1 AND 512)
75
+ AND ("last_error" IS NULL OR octet_length("last_error") <= 16384)
76
+ ),
77
+ CONSTRAINT "generated_image_artifacts_dimensions_chk"
78
+ CHECK (
79
+ "width" BETWEEN 1 AND 16384
80
+ AND "height" BETWEEN 1 AND 16384
81
+ AND ("width"::bigint * "height"::bigint) <= 67108864
82
+ ),
83
+ CONSTRAINT "generated_image_artifacts_sandbox_path_chk"
84
+ CHECK ("sandbox_path" ~ '^/workspace/generated-images/generated-image-[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\.(png|jpg|webp)$')
85
+ );
86
+
87
+ CREATE UNIQUE INDEX "generated_image_artifacts_settlement_key_uq"
88
+ ON "generated_image_artifacts" ("workspace_id", "settlement_key");
89
+ CREATE INDEX "generated_image_artifacts_session_created_idx"
90
+ ON "generated_image_artifacts" ("workspace_id", "session_id", "created_at", "artifact_id");
91
+ CREATE UNIQUE INDEX "generated_image_artifacts_provider_item_uq"
92
+ ON "generated_image_artifacts" ("workspace_id", "provider_id", "provider_binding_hash", "provider_item_id")
93
+ WHERE "provider_item_id" IS NOT NULL;
94
+
95
+ CREATE TABLE "image_generation_operations" (
96
+ "id" uuid PRIMARY KEY,
97
+ "account_id" uuid NOT NULL,
98
+ "workspace_id" uuid NOT NULL,
99
+ "session_id" uuid,
100
+ "turn_id" uuid,
101
+ "attempt_id" uuid,
102
+ "operation_key" text NOT NULL,
103
+ "tool_call_id" text NOT NULL,
104
+ "provider_id" text NOT NULL,
105
+ "provider_binding_hash" text NOT NULL,
106
+ "model_id" text NOT NULL,
107
+ "request_digest" text NOT NULL,
108
+ "expected_artifact_id" uuid NOT NULL,
109
+ "status" text NOT NULL DEFAULT 'prepared',
110
+ "provider_started_at" timestamptz,
111
+ "completed_at" timestamptz,
112
+ "last_error" text,
113
+ "created_at" timestamptz NOT NULL DEFAULT now(),
114
+ "updated_at" timestamptz NOT NULL DEFAULT now(),
115
+ CONSTRAINT "image_generation_operations_workspace_account_fk"
116
+ FOREIGN KEY ("workspace_id", "account_id")
117
+ REFERENCES "workspaces"("id", "account_id") ON DELETE CASCADE,
118
+ CONSTRAINT "image_generation_operations_workspace_session_fk"
119
+ FOREIGN KEY ("workspace_id", "session_id")
120
+ REFERENCES "sessions"("workspace_id", "id") ON DELETE CASCADE,
121
+ CONSTRAINT "image_generation_operations_workspace_turn_fk"
122
+ FOREIGN KEY ("workspace_id", "turn_id")
123
+ REFERENCES "session_turns"("workspace_id", "id") ON DELETE CASCADE,
124
+ CONSTRAINT "image_generation_operations_workspace_attempt_fk"
125
+ FOREIGN KEY ("workspace_id", "attempt_id")
126
+ REFERENCES "session_turn_attempts"("workspace_id", "id") ON DELETE SET NULL ("attempt_id"),
127
+ CONSTRAINT "image_generation_operations_status_chk"
128
+ CHECK ("status" IN ('prepared', 'provider_started', 'completed', 'outcome_unknown')),
129
+ CONSTRAINT "image_generation_operations_digest_chk"
130
+ CHECK (
131
+ "operation_key" ~ '^[0-9a-f]{64}$'
132
+ AND "provider_binding_hash" ~ '^[0-9a-f]{64}$'
133
+ AND "request_digest" ~ '^[0-9a-f]{64}$'
134
+ ),
135
+ CONSTRAINT "image_generation_operations_identity_bounds_chk"
136
+ CHECK (
137
+ octet_length("tool_call_id") BETWEEN 1 AND 512
138
+ AND octet_length("provider_id") BETWEEN 1 AND 128
139
+ AND octet_length("model_id") BETWEEN 1 AND 256
140
+ AND ("last_error" IS NULL OR octet_length("last_error") <= 16384)
141
+ ),
142
+ CONSTRAINT "image_generation_operations_state_chk"
143
+ CHECK (
144
+ ("status" = 'prepared' AND "provider_started_at" IS NULL AND "completed_at" IS NULL)
145
+ OR ("status" IN ('provider_started', 'outcome_unknown') AND "provider_started_at" IS NOT NULL AND "completed_at" IS NULL)
146
+ OR ("status" = 'completed' AND "provider_started_at" IS NOT NULL AND "completed_at" IS NOT NULL)
147
+ )
148
+ );
149
+
150
+ CREATE UNIQUE INDEX "image_generation_operations_operation_key_uq"
151
+ ON "image_generation_operations" ("workspace_id", "operation_key");
152
+ CREATE INDEX "image_generation_operations_session_created_idx"
153
+ ON "image_generation_operations" ("workspace_id", "session_id", "created_at", "id");
154
+
155
+ ALTER TABLE "generated_image_artifacts" ENABLE ROW LEVEL SECURITY;
156
+ ALTER TABLE "generated_image_artifacts" FORCE ROW LEVEL SECURITY;
157
+ CREATE POLICY "workspace_isolation" ON "generated_image_artifacts"
158
+ USING (opengeni_private.workspace_rls_visible(account_id, workspace_id))
159
+ WITH CHECK (opengeni_private.workspace_rls_visible(account_id, workspace_id));
160
+
161
+ ALTER TABLE "image_generation_operations" ENABLE ROW LEVEL SECURITY;
162
+ ALTER TABLE "image_generation_operations" FORCE ROW LEVEL SECURITY;
163
+ CREATE POLICY "workspace_isolation" ON "image_generation_operations"
164
+ USING (opengeni_private.workspace_rls_visible(account_id, workspace_id))
165
+ WITH CHECK (opengeni_private.workspace_rls_visible(account_id, workspace_id));
166
+
167
+ DO $$
168
+ BEGIN
169
+ IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'opengeni_app') THEN
170
+ GRANT SELECT, INSERT, UPDATE, DELETE ON "generated_image_artifacts" TO opengeni_app;
171
+ GRANT SELECT, INSERT, UPDATE, DELETE ON "image_generation_operations" TO opengeni_app;
172
+ END IF;
173
+ END $$;
@@ -0,0 +1,25 @@
1
+ -- deployment-mode: rolling
2
+ -- Distinguish a known provider success whose bytes could not be retained from
3
+ -- an ambiguous provider request. Both remain non-replayable.
4
+
5
+ SET LOCAL lock_timeout = '5s';
6
+ SET LOCAL statement_timeout = '5min';
7
+
8
+ ALTER TABLE "image_generation_operations"
9
+ DROP CONSTRAINT "image_generation_operations_status_chk",
10
+ DROP CONSTRAINT "image_generation_operations_state_chk",
11
+ ADD CONSTRAINT "image_generation_operations_status_chk"
12
+ CHECK ("status" IN ('prepared', 'provider_started', 'completed', 'outcome_unknown', 'retention_failed')) NOT VALID,
13
+ ADD CONSTRAINT "image_generation_operations_state_chk"
14
+ CHECK (
15
+ ("status" = 'prepared' AND "provider_started_at" IS NULL AND "completed_at" IS NULL)
16
+ OR ("status" IN ('provider_started', 'outcome_unknown', 'retention_failed') AND "provider_started_at" IS NOT NULL AND "completed_at" IS NULL)
17
+ OR ("status" = 'completed' AND "provider_started_at" IS NOT NULL AND "completed_at" IS NOT NULL)
18
+ ) NOT VALID;
19
+
20
+ -- Validation uses a weaker lock than adding an immediately-valid check, so a
21
+ -- large operations table remains writable during the scan.
22
+ ALTER TABLE "image_generation_operations"
23
+ VALIDATE CONSTRAINT "image_generation_operations_status_chk";
24
+ ALTER TABLE "image_generation_operations"
25
+ VALIDATE CONSTRAINT "image_generation_operations_state_chk";
@@ -0,0 +1,13 @@
1
+ -- deployment-mode: rolling
2
+ SET LOCAL lock_timeout = '5s';
3
+ SET LOCAL statement_timeout = '30s';
4
+
5
+ ALTER TABLE "retained_screenshot_artifacts"
6
+ ADD CONSTRAINT "retained_screenshot_artifacts_media_type_v2_chk"
7
+ CHECK ("media_type" IN ('image/png', 'image/jpeg', 'image/webp')) NOT VALID;
8
+
9
+ ALTER TABLE "retained_screenshot_artifacts"
10
+ VALIDATE CONSTRAINT "retained_screenshot_artifacts_media_type_v2_chk";
11
+
12
+ ALTER TABLE "retained_screenshot_artifacts"
13
+ DROP CONSTRAINT "retained_screenshot_artifacts_media_type_chk";
@@ -0,0 +1,31 @@
1
+ -- deployment-mode: rolling
2
+ SET LOCAL lock_timeout = '5s';
3
+ SET LOCAL statement_timeout = '30s';
4
+
5
+ ALTER TABLE "composer_drafts"
6
+ ADD COLUMN "annotations" jsonb NOT NULL DEFAULT '[]'::jsonb;
7
+
8
+ ALTER TABLE "session_turns"
9
+ ADD COLUMN "annotations" jsonb NOT NULL DEFAULT '[]'::jsonb;
10
+
11
+ ALTER TABLE "composer_drafts"
12
+ ADD CONSTRAINT "composer_drafts_annotations_check"
13
+ CHECK (
14
+ jsonb_typeof("annotations") = 'array'
15
+ AND jsonb_array_length("annotations") <= 12
16
+ AND octet_length("annotations"::text) <= 65536
17
+ ) NOT VALID;
18
+
19
+ ALTER TABLE "session_turns"
20
+ ADD CONSTRAINT "session_turns_annotations_check"
21
+ CHECK (
22
+ jsonb_typeof("annotations") = 'array'
23
+ AND jsonb_array_length("annotations") <= 12
24
+ AND octet_length("annotations"::text) <= 65536
25
+ ) NOT VALID;
26
+
27
+ ALTER TABLE "composer_drafts"
28
+ VALIDATE CONSTRAINT "composer_drafts_annotations_check";
29
+
30
+ ALTER TABLE "session_turns"
31
+ VALIDATE CONSTRAINT "session_turns_annotations_check";