@opengeni/db 4.3.2 → 4.3.3-canary.0
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/canonical-human-identities.js +3 -3
- package/dist/{chunk-UVBPOGA7.js → chunk-232VC2LW.js} +2 -2
- package/dist/{chunk-DVSLOUEI.js → chunk-2ZMTQVTR.js} +2 -2
- package/dist/{chunk-AI4NC6XW.js → chunk-6TKL3GQO.js} +47 -1
- package/dist/chunk-6TKL3GQO.js.map +1 -0
- package/dist/{chunk-F4BIHJ7J.js → chunk-EYF6MH6C.js} +4 -4
- package/dist/{chunk-I4ITNMX2.js → chunk-GVZJ7XSR.js} +16 -4
- package/dist/{chunk-I4ITNMX2.js.map → chunk-GVZJ7XSR.js.map} +1 -1
- package/dist/{chunk-XBXANJQS.js → chunk-M7PSMVFF.js} +2 -2
- package/dist/{chunk-PFBUHOI5.js → chunk-QLA3UQNX.js} +3 -3
- package/dist/{chunk-YVYBAWBU.js → chunk-THJGMEK5.js} +53 -1
- package/dist/chunk-THJGMEK5.js.map +1 -0
- package/dist/{chunk-UUPY6IGP.js → chunk-UK57QA2H.js} +2 -2
- package/dist/connection-token-resolver.d.ts +2 -0
- package/dist/database.d.ts +7 -2
- package/dist/editable-artifact-durable-export.js +2 -2
- package/dist/editable-artifacts.js +3 -3
- package/dist/host-mcp-bindings.d.ts +3 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.js +85 -26
- package/dist/index.js.map +1 -1
- package/dist/managed-auth-session-sets.js +3 -3
- package/dist/mcp-operations.d.ts +95 -0
- package/dist/mcp-operations.js +95 -0
- package/dist/mcp-operations.js.map +1 -0
- package/dist/provision-roles.js +1 -1
- package/dist/retained-provider-commands.js +2 -2
- package/dist/runtime-posture.d.ts +3 -3
- package/dist/schema.d.ts +517 -0
- package/dist/schema.js +3 -1
- package/dist/session-background-commands.js +4 -4
- package/dist/session-command-output.js +4 -4
- package/dist/session-event-slices.js +2 -2
- package/dist/session-tenancy.js +3 -3
- package/dist/video-generation.js +3 -3
- package/dist/workspace-tool-defaults.js +4 -4
- package/drizzle/0459_mcp_operations.sql +396 -0
- package/package.json +10 -6
- package/src/connection-token-resolver.ts +2 -0
- package/src/database.ts +23 -2
- package/src/host-mcp-bindings.ts +14 -1
- package/src/index.ts +84 -4
- package/src/mcp-operations.ts +189 -0
- package/src/provision-roles.ts +6 -0
- package/src/runtime-posture.ts +50 -0
- package/src/schema.ts +46 -0
- package/dist/chunk-AI4NC6XW.js.map +0 -1
- package/dist/chunk-YVYBAWBU.js.map +0 -1
- /package/dist/{chunk-UVBPOGA7.js.map → chunk-232VC2LW.js.map} +0 -0
- /package/dist/{chunk-DVSLOUEI.js.map → chunk-2ZMTQVTR.js.map} +0 -0
- /package/dist/{chunk-F4BIHJ7J.js.map → chunk-EYF6MH6C.js.map} +0 -0
- /package/dist/{chunk-XBXANJQS.js.map → chunk-M7PSMVFF.js.map} +0 -0
- /package/dist/{chunk-PFBUHOI5.js.map → chunk-QLA3UQNX.js.map} +0 -0
- /package/dist/{chunk-UUPY6IGP.js.map → chunk-UK57QA2H.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema.ts","../src/lossless-columns.ts","../src/lossless-json.ts","../src/editable-artifacts-schema.ts","../src/managed-auth-session-set-schema.ts","../src/organization-recovery-schema.ts","../src/workspace-instruction-policies-schema.ts","../src/company-profile-schema.ts","../src/workspace-learning-policy-schema.ts","../src/slack-task-policy-schema.ts","../src/preference-registry-schema.ts","../src/skills-schema.ts","../src/memory-governance-schema.ts","../src/scoped-knowledge-schema.ts","../src/task-notes-schema.ts","../src/work-claims-schema.ts","../src/company-brain-context-selection-schema.ts","../src/governed-learning-evaluator-schema.ts","../src/governed-learning-activation-schema.ts","../src/knowledge-source-sync-schema.ts","../src/transcription-recordings-schema.ts","../src/interaction-schema.ts"],"sourcesContent":["import type {\n SandboxProviderCommand,\n AutomationAcceptedExecution,\n AutomationSessionTemplate,\n AttemptToolCatalog,\n AttemptToolResult,\n DraftTimelineAnnotation,\n FirstPartyMcpToolName,\n McpPersonalConnectionDelegation,\n PersonalResourceAttachmentIntent,\n PersonalResourceAttachmentSummary,\n Permission,\n McpServerConnectionRef,\n ModelContextContributionSummary,\n ModelContextSnapshot,\n RigProviderImages,\n SessionMcpApprovalPolicy,\n SessionGoalChangeKind,\n SessionGoalMutationPolicy,\n SessionGoalSnapshot,\n SlackUserLinkAccessRequest,\n TimelineAnnotation,\n ToolGatewayIdentity,\n UserResourceDelegation,\n XaiProviderAccountAuthoritySnapshotV1,\n} from \"@opengeni/contracts\";\nimport { WORKSPACE_XAI_PROVIDER_ACCOUNT_AUTHORITY_SNAPSHOT_V1 } from \"@opengeni/contracts\";\nimport { sql } from \"drizzle-orm\";\nimport type { SessionToolPolicy } from \"@opengeni/contracts\";\nimport type { HumanInputQuestion, HumanInputResponse } from \"@opengeni/contracts\";\nimport {\n bigint,\n boolean,\n check,\n customType,\n foreignKey,\n index,\n integer,\n jsonb,\n numeric,\n pgSchema,\n pgTable,\n primaryKey,\n text,\n timestamp,\n unique,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\nimport {\n losslessCodecVersion,\n losslessJsonb,\n losslessOrderedJson,\n losslessText,\n} from \"./lossless-columns\";\n\nexport * from \"./editable-artifacts-schema\";\nexport * from \"./managed-auth-session-set-schema\";\nexport * from \"./organization-recovery-schema\";\n\nconst vector = customType<{ data: number[]; driverData: string }>({\n dataType() {\n return \"vector(3072)\";\n },\n toDriver(value) {\n return `[${value.join(\",\")}]`;\n },\n});\n\nconst bytea = customType<{ data: Uint8Array; driverData: Uint8Array }>({\n dataType() {\n return \"bytea\";\n },\n});\n\nconst opengeniPrivateSchema = pgSchema(\"opengeni_private\");\n\nexport type ConnectorActionPolicyDecision = \"allow\" | \"ask\" | \"block\";\n\nexport type ConnectorActionPolicySnapshotEntry = {\n id: string;\n connectionId: string;\n serverId: string;\n toolName: string;\n actionName: string;\n policy: ConnectorActionPolicyDecision;\n version: number;\n};\n\nexport const managedAccounts = pgTable(\n \"managed_accounts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n name: text(\"name\").notNull(),\n externalSource: text(\"external_source\"),\n externalId: text(\"external_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n external: uniqueIndex(\"managed_accounts_external_idx\").on(\n table.externalSource,\n table.externalId,\n ),\n }),\n);\n\nexport const workspaces = pgTable(\n \"workspaces\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n name: text(\"name\").notNull(),\n slug: text(\"slug\"),\n externalSource: text(\"external_source\"),\n externalId: text(\"external_id\"),\n // White-label agent persona template override. NULL means the deployment\n // default (OPENGENI_AGENT_INSTRUCTIONS_TEMPLATE / DEFAULT_AGENT_INSTRUCTIONS).\n agentInstructions: text(\"agent_instructions\"),\n // Growth-ready per-workspace settings bag (migration 0045). Migration 0393\n // makes Memory enabled by default; explicit false remains authoritative.\n settings: jsonb(\"settings\")\n .$type<Record<string, unknown>>()\n .notNull()\n .default({ memoryEnabled: true }),\n // The workspace's default rig (migration 0047). NULL ⇒ no default; sessions\n // created without an explicit rig ride no rig (today's behavior exactly). FK\n // (-> rigs(id) ON DELETE SET NULL) lives in migration 0047, not a Drizzle\n // .references(), because `rigs` is declared later in this file (same\n // forward-reference pattern as sessions.activeSandboxId). Consumed in M3.\n defaultRigId: uuid(\"default_rig_id\"),\n // Workspace-wide viewer admission intent set by the warm-meter reaper when\n // managed credits or the monthly warm allowance are exhausted. It is\n // deliberately independent of a lease so a dashboard cannot re-arm a\n // draining box or spawn a cold successor before a fresh limit evaluation\n // clears the gate.\n sandboxViewerForceDrainReason: text(\"sandbox_viewer_force_drain_reason\", {\n enum: [\"balance\", \"warm_cap\"],\n }),\n sandboxViewerForceDrainRequestedAt: timestamp(\"sandbox_viewer_force_drain_requested_at\", {\n withTimezone: true,\n }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n account: index(\"workspaces_account_idx\").on(table.accountId),\n accountSlug: uniqueIndex(\"workspaces_account_slug_idx\")\n .on(table.accountId, table.slug)\n .where(sql`${table.slug} is not null`),\n external: uniqueIndex(\"workspaces_external_idx\").on(\n table.accountId,\n table.externalSource,\n table.externalId,\n ),\n sandboxViewerForceDrain: index(\"workspaces_sandbox_viewer_force_drain_idx\")\n .on(table.id)\n .where(sql`${table.sandboxViewerForceDrainReason} is not null`),\n sandboxViewerForceDrainValid: check(\n \"workspaces_sandbox_viewer_force_drain_check\",\n sql`(\n ${table.sandboxViewerForceDrainReason} is null\n and ${table.sandboxViewerForceDrainRequestedAt} is null\n ) or (\n ${table.sandboxViewerForceDrainReason} in ('balance', 'warm_cap')\n and ${table.sandboxViewerForceDrainRequestedAt} is not null\n )`,\n ),\n }),\n);\n\n// A single generic workspace-published surface. Presentation labels such as\n// app, page, gallery, or document are intentionally not persisted as types.\nexport const workspaceArtifacts = pgTable(\n \"workspace_artifacts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n slug: text(\"slug\").notNull(),\n title: text(\"title\").notNull(),\n description: text(\"description\"),\n status: text(\"status\").$type<\"active\" | \"archived\">().notNull().default(\"active\"),\n // The FK to workspace_artifact_versions is installed by migration after\n // that table exists. Keeping this pointer here makes reads inexpensive.\n currentVersionId: uuid(\"current_version_id\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"workspace_artifacts_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSlug: uniqueIndex(\"workspace_artifacts_workspace_slug_uq\").on(\n table.workspaceId,\n table.slug,\n ),\n workspaceId: uniqueIndex(\"workspace_artifacts_workspace_id_uq\").on(table.workspaceId, table.id),\n list: index(\"workspace_artifacts_list_idx\").on(table.workspaceId, table.updatedAt),\n statusList: index(\"workspace_artifacts_status_list_idx\").on(\n table.workspaceId,\n table.status,\n table.updatedAt,\n ),\n }),\n);\n\nexport const workspaceArtifactUploads = pgTable(\n \"workspace_artifact_uploads\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n ownerId: text(\"owner_id\").notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n status: text(\"status\")\n .$type<\"pending\" | \"published\" | \"expired\">()\n .notNull()\n .default(\"pending\"),\n },\n (table) => [\n foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n index(\"workspace_artifact_uploads_expiry_idx\")\n .on(table.workspaceId, table.expiresAt)\n .where(sql`${table.status} <> 'published'`),\n check(\n \"workspace_artifact_uploads_status_check\",\n sql`${table.status} in ('pending', 'published', 'expired')`,\n ),\n ],\n);\n\nexport const workspaceArtifactVersions = pgTable(\n \"workspace_artifact_versions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n artifactId: uuid(\"artifact_id\").notNull(),\n revision: integer(\"revision\").notNull(),\n contentKey: text(\"content_key\").notNull(),\n contentType: text(\"content_type\").$type<\"text/html\">().notNull().default(\"text/html\"),\n contentSha256: text(\"content_sha256\"),\n sizeBytes: bigint(\"size_bytes\", { mode: \"number\" }).notNull(),\n sourceKey: text(\"source_key\"),\n sourceSha256: text(\"source_sha256\"),\n sourceSizeBytes: bigint(\"source_size_bytes\", { mode: \"number\" }),\n requestedTools: jsonb(\"requested_tools\").$type<ToolGatewayIdentity[]>().notNull().default([]),\n operationKey: text(\"operation_key\").notNull(),\n sourceSessionId: uuid(\"source_session_id\"),\n sourceTurnId: uuid(\"source_turn_id\"),\n sourceAttemptId: uuid(\"source_attempt_id\"),\n sourceExecutionGeneration: integer(\"source_execution_generation\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"workspace_artifact_versions_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n artifact: foreignKey({\n name: \"workspace_artifact_versions_artifact_fk\",\n columns: [table.workspaceId, table.artifactId],\n foreignColumns: [workspaceArtifacts.workspaceId, workspaceArtifacts.id],\n }).onDelete(\"cascade\"),\n workspaceId: uniqueIndex(\"workspace_artifact_versions_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n revision: uniqueIndex(\"workspace_artifact_versions_revision_uq\").on(\n table.workspaceId,\n table.artifactId,\n table.revision,\n ),\n operation: uniqueIndex(\"workspace_artifact_versions_operation_uq\").on(\n table.workspaceId,\n table.operationKey,\n ),\n provenance: check(\n \"workspace_artifact_versions_provenance_chk\",\n sql`(\n ${table.sourceSessionId} is null\n and ${table.sourceTurnId} is null\n and ${table.sourceAttemptId} is null\n and ${table.sourceExecutionGeneration} is null\n ) or (\n ${table.sourceSessionId} is not null\n and ${table.sourceTurnId} is not null\n and ${table.sourceAttemptId} is not null\n and ${table.sourceExecutionGeneration} > 0\n )`,\n ),\n }),\n);\n\nexport const workspaceArtifactEvents = pgTable(\n \"workspace_artifact_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n artifactId: uuid(\"artifact_id\").notNull(),\n type: text(\"type\").$type<\"published\" | \"rolled_back\" | \"archived\" | \"restored\">().notNull(),\n fromVersionId: uuid(\"from_version_id\"),\n toVersionId: uuid(\"to_version_id\").notNull(),\n operationKey: text(\"operation_key\").notNull(),\n requestDigest: text(\"request_digest\"),\n requestInput: jsonb(\"request_input\").$type<Record<string, unknown>>(),\n sourceSessionId: uuid(\"source_session_id\"),\n sourceTurnId: uuid(\"source_turn_id\"),\n sourceAttemptId: uuid(\"source_attempt_id\"),\n sourceExecutionGeneration: integer(\"source_execution_generation\"),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n reason: text(\"reason\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"workspace_artifact_events_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n artifact: foreignKey({\n name: \"workspace_artifact_events_artifact_fk\",\n columns: [table.workspaceId, table.artifactId],\n foreignColumns: [workspaceArtifacts.workspaceId, workspaceArtifacts.id],\n }).onDelete(\"cascade\"),\n operation: uniqueIndex(\"workspace_artifact_events_operation_uq\").on(\n table.workspaceId,\n table.operationKey,\n ),\n list: index(\"workspace_artifact_events_list_idx\").on(\n table.workspaceId,\n table.artifactId,\n table.createdAt,\n ),\n provenance: check(\n \"workspace_artifact_events_provenance_chk\",\n sql`(\n ${table.sourceSessionId} is null\n and ${table.sourceTurnId} is null\n and ${table.sourceAttemptId} is null\n and ${table.sourceExecutionGeneration} is null\n ) or (\n ${table.sourceSessionId} is not null\n and ${table.sourceTurnId} is not null\n and ${table.sourceAttemptId} is not null\n and ${table.sourceExecutionGeneration} > 0\n )`,\n ),\n }),\n);\n\n// One target-schema-local deployment fallback. The migration runner reconciles\n// this singleton from OPENGENI_MAX_NESTED_AGENT_DEPTH; session admission locks\n// and reads it through the SECURITY DEFINER capability installed by the\n// boundary migration so the application role cannot mutate policy authority.\nexport const nestedAgentDepthConfiguration = pgTable(\n \"nested_agent_depth_configuration\",\n {\n singleton: boolean(\"singleton\").primaryKey().notNull().default(true),\n maxNestedAgentDepth: integer(\"max_nested_agent_depth\").notNull(),\n policySource: text(\"policy_source\").$type<\"deployment\" | \"default\">().notNull(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n singletonOnly: check(\n \"nested_agent_depth_configuration_singleton_check\",\n sql`${table.singleton}`,\n ),\n maxValid: check(\n \"nested_agent_depth_configuration_max_check\",\n sql`${table.maxNestedAgentDepth} >= 0`,\n ),\n sourceValid: check(\n \"nested_agent_depth_configuration_source_check\",\n sql`${table.policySource} in ('deployment', 'default')`,\n ),\n }),\n);\n\n// One mandatory workspace-wide admission barrier. Every inference-admitting\n// transaction locks this row before it touches a session; Pause/Resume and\n// foreground Send/Steer advance its monotonic revision under FOR UPDATE.\nexport const workspaceInferenceControls = pgTable(\n \"workspace_inference_controls\",\n {\n workspaceId: uuid(\"workspace_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull().default(0),\n workspaceState: text(\"workspace_state\").notNull().default(\"active\"),\n timerId: uuid(\"timer_id\"),\n timerAction: text(\"timer_action\"),\n timerDueAt: timestamp(\"timer_due_at\", { withTimezone: true }),\n timerPauseForSeconds: integer(\"timer_pause_for_seconds\"),\n timerPauseRevision: bigint(\"timer_pause_revision\", { mode: \"number\" }),\n workspacePauseRevision: bigint(\"workspace_pause_revision\", {\n mode: \"number\",\n }),\n reason: text(\"reason\"),\n changedBy: text(\"changed_by\"),\n changedAt: timestamp(\"changed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"workspace_inference_controls_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n timerDue: index(\"workspace_pause_timer_due_idx\")\n .on(table.timerDueAt, table.workspaceId)\n .where(sql`${table.timerId} is not null`),\n timerShape: check(\n \"workspace_pause_timer_shape\",\n sql`\n (${table.timerId} is null and ${table.timerAction} is null and ${table.timerDueAt} is null\n and ${table.timerPauseForSeconds} is null and ${table.timerPauseRevision} is null)\n or (${table.timerId} is not null and ${table.timerAction} is not null and ${table.timerDueAt} is not null\n and ((${table.timerAction} = 'pause' and ${table.timerPauseRevision} is null)\n or (${table.timerAction} = 'resume' and ${table.timerPauseRevision} is not null and ${table.timerPauseForSeconds} is null))\n and (${table.timerPauseForSeconds} is null or ${table.timerPauseForSeconds} between 60 and 2592000))\n `,\n ),\n workspaceAccountIdentity: uniqueIndex(\"workspace_inference_controls_workspace_account_uq\").on(\n table.workspaceId,\n table.accountId,\n ),\n stateValid: check(\n \"workspace_inference_controls_state_check\",\n sql`${table.workspaceState} in ('active', 'paused')`,\n ),\n pauseRevisionConsistent: check(\n \"workspace_inference_controls_pause_revision_check\",\n sql`(${table.workspaceState} = 'active' and ${table.workspacePauseRevision} is null)\n or (${table.workspaceState} = 'paused' and ${table.workspacePauseRevision} is not null)`,\n ),\n revisionValid: check(\n \"workspace_inference_controls_revision_check\",\n sql`${table.revision} >= 0 and (${table.workspacePauseRevision} is null or ${table.workspacePauseRevision} <= ${table.revision})`,\n ),\n }),\n);\n\n// One transactionally allocated activity clock per workspace. Updated-order\n// discovery reads the committed value through plain MVCC. Semantic writers\n// advance it once at their explicit commit gate, after every other deferred\n// constraint and row lock has settled.\nexport const workspaceSessionActivityRevisions = pgTable(\n \"workspace_session_activity_revisions\",\n {\n workspaceId: uuid(\"workspace_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull().default(0),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"workspace_session_activity_revisions_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n revisionValid: check(\n \"workspace_session_activity_revisions_revision_check\",\n sql`${table.revision} >= 0`,\n ),\n }),\n);\n\nexport const workspaceMemberships = pgTable(\n \"workspace_memberships\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n subjectId: text(\"subject_id\").notNull(),\n subjectLabel: text(\"subject_label\"),\n role: text(\"role\").notNull().default(\"member\"),\n permissions: jsonb(\"permissions\").$type<string[]>().notNull().default([]),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n subjectWorkspace: uniqueIndex(\"workspace_memberships_subject_workspace_idx\").on(\n table.subjectId,\n table.workspaceId,\n ),\n subject: index(\"workspace_memberships_subject_idx\").on(table.subjectId),\n account: index(\"workspace_memberships_account_idx\").on(table.accountId),\n }),\n);\n\n// Organization membership is distinct from workspace access. `account_id` is\n// the physical organization identifier; `personal_workspace_id` is lifecycle\n// metadata only and never the ownership anchor for user resources.\nexport const externalIdentities = pgTable(\n \"external_identities\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n source: text(\"source\").notNull(),\n externalId: text(\"external_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n organizationMembershipId: uuid(\"organization_membership_id\").notNull(),\n personalWorkspaceId: uuid(\"personal_workspace_id\").notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n authorizationRevision: bigint(\"authorization_revision\", { mode: \"number\" })\n .notNull()\n .default(1),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n mapping: uniqueIndex(\"external_identities_account_id_source_external_id_key\").on(\n table.accountId,\n table.source,\n table.externalId,\n ),\n subject: uniqueIndex(\"external_identities_account_id_subject_id_key\").on(\n table.accountId,\n table.subjectId,\n ),\n membership: foreignKey({\n columns: [table.organizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }),\n personalWorkspace: foreignKey({\n columns: [table.personalWorkspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }),\n }),\n);\n\nexport const organizationMemberships = pgTable(\n \"organization_memberships\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n subjectId: text(\"subject_id\").notNull(),\n role: text(\"role\").notNull().default(\"member\"),\n status: text(\"status\").notNull().default(\"provisioning\"),\n personalWorkspaceId: uuid(\"personal_workspace_id\"),\n authorizationRevision: bigint(\"authorization_revision\", { mode: \"number\" })\n .notNull()\n .default(1),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n personalRetentionUntil: timestamp(\"personal_retention_until\", {\n withTimezone: true,\n }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountIdentity: uniqueIndex(\"organization_memberships_id_account_idx\").on(\n table.id,\n table.accountId,\n ),\n accountSubject: uniqueIndex(\"organization_memberships_account_subject_idx\").on(\n table.accountId,\n table.subjectId,\n ),\n personalWorkspace: uniqueIndex(\"organization_memberships_personal_workspace_idx\")\n .on(table.accountId, table.personalWorkspaceId)\n .where(sql`${table.personalWorkspaceId} is not null`),\n retentionDue: index(\"organization_memberships_retention_due_idx\")\n .on(table.accountId, table.personalRetentionUntil, table.id)\n .where(sql`${table.status} = 'revoked' and ${table.personalRetentionUntil} is not null`),\n personalWorkspaceAccount: foreignKey({\n name: \"organization_memberships_personal_workspace_account_fk\",\n columns: [table.personalWorkspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"restrict\"),\n statusValid: check(\n \"organization_memberships_status_check\",\n sql`${table.status} in ('provisioning', 'active', 'suspended', 'revoked')`,\n ),\n roleValid: check(\n \"organization_memberships_role_check\",\n sql`${table.role} in ('owner', 'admin', 'member')`,\n ),\n activePersonalWorkspace: check(\n \"organization_memberships_active_personal_workspace_check\",\n sql`${table.status} <> 'active' or ${table.personalWorkspaceId} is not null`,\n ),\n subjectValid: check(\n \"organization_memberships_subject_check\",\n sql`length(btrim(${table.subjectId})) between 1 and 1024`,\n ),\n revisionValid: check(\n \"organization_memberships_revision_check\",\n sql`${table.authorizationRevision} > 0`,\n ),\n revocationValid: check(\n \"organization_memberships_revocation_check\",\n sql`(${table.status} = 'revoked' and ${table.revokedAt} is not null)\n or (${table.status} <> 'revoked' and ${table.revokedAt} is null)`,\n ),\n }),\n);\n\nexport const organizationProfileEvents = pgTable(\n \"organization_profile_events\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n actorMembershipId: uuid(\"actor_membership_id\").notNull(),\n previousName: text(\"previous_name\").notNull(),\n requestedName: text(\"requested_name\").notNull(),\n expectedUpdatedAt: timestamp(\"expected_updated_at\", {\n withTimezone: true,\n }).notNull(),\n resultUpdatedAt: timestamp(\"result_updated_at\", {\n withTimezone: true,\n }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n actorMembership: foreignKey({\n name: \"organization_profile_events_actor_fk\",\n columns: [table.actorMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n }),\n);\n\n// Forward-only organization-scoped activation receipt for the product session-\n// tenancy surface. Runtime may observe this marker, but only the drained\n// migration-owner activation seam may insert it.\nexport const sessionTenancyActivations = pgTable(\n \"session_tenancy_activations\",\n {\n accountId: uuid(\"account_id\")\n .primaryKey()\n .references(() => managedAccounts.id, { onDelete: \"restrict\" }),\n activationVersion: integer(\"activation_version\").notNull(),\n inventoryDigest: text(\"inventory_digest\").notNull(),\n parityDigest: text(\"parity_digest\").notNull(),\n activatedBy: text(\"activated_by\").notNull(),\n backfillReceiptIds: uuid(\"backfill_receipt_ids\")\n .array()\n .notNull()\n .default(sql`'{}'::uuid[]`),\n activatedAt: timestamp(\"activated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n versionValid: check(\n \"session_tenancy_activations_version_check\",\n sql`${table.activationVersion} = 1`,\n ),\n digestsValid: check(\n \"session_tenancy_activations_digests_check\",\n sql`${table.inventoryDigest} ~ '^[0-9a-f]{64}$'\n and ${table.parityDigest} ~ '^[0-9a-f]{64}$'`,\n ),\n actorValid: check(\n \"session_tenancy_activations_actor_check\",\n sql`octet_length(${table.activatedBy}) between 1 and 256`,\n ),\n backfillReceiptsValid: check(\n \"session_tenancy_activation_backfill_receipts_check\",\n sql`cardinality(${table.backfillReceiptIds}) in (0, 5, 6)`,\n ),\n }),\n);\n\nexport const organizationPrivateSessionSettings = pgTable(\n \"organization_private_session_settings\",\n {\n accountId: uuid(\"account_id\")\n .primaryKey()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n enabled: boolean(\"enabled\").notNull().default(false),\n version: bigint(\"version\", { mode: \"number\" }).notNull().default(1),\n updatedByMembershipId: uuid(\"updated_by_membership_id\"),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n updater: foreignKey({\n name: \"organization_private_session_settings_updater_fk\",\n columns: [table.updatedByMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n versionValid: check(\n \"organization_private_session_settings_version_check\",\n sql`${table.version} > 0`,\n ),\n }),\n);\n\nexport const organizationPrivateSessionSettingEvents = pgTable(\n \"organization_private_session_setting_events\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n actorMembershipId: uuid(\"actor_membership_id\").notNull(),\n requestedEnabled: boolean(\"requested_enabled\").notNull(),\n expectedVersion: bigint(\"expected_version\", { mode: \"number\" }).notNull(),\n resultEnabled: boolean(\"result_enabled\").notNull(),\n resultVersion: bigint(\"result_version\", { mode: \"number\" }).notNull(),\n resultUpdatedAt: timestamp(\"result_updated_at\", {\n withTimezone: true,\n }).notNull(),\n changed: boolean(\"changed\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n actor: foreignKey({\n name: \"organization_private_session_setting_events_actor_fk\",\n columns: [table.actorMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n versionsValid: check(\n \"organization_private_session_setting_events_versions_check\",\n sql`${table.expectedVersion} >= 0 and ${table.resultVersion} > 0`,\n ),\n }),\n);\n\nexport const organizationUserRetentionPolicies = pgTable(\n \"organization_user_retention_policies\",\n {\n accountId: uuid(\"account_id\")\n .primaryKey()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n mode: text(\"mode\").notNull().default(\"retain\"),\n retentionDays: integer(\"retention_days\"),\n version: bigint(\"version\", { mode: \"number\" }).notNull().default(1),\n updatedByMembershipId: uuid(\"updated_by_membership_id\"),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n updater: foreignKey({\n name: \"organization_user_retention_policies_updater_fk\",\n columns: [table.updatedByMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n modeValid: check(\n \"organization_user_retention_policies_mode_check\",\n sql`${table.mode} in ('retain', 'delete_after')`,\n ),\n durationValid: check(\n \"organization_user_retention_policies_duration_check\",\n sql`(${table.mode} = 'retain' and ${table.retentionDays} is null)\n or (\n ${table.mode} = 'delete_after'\n and ${table.retentionDays} is not null\n and ${table.retentionDays} between 30 and 90\n )`,\n ),\n versionValid: check(\n \"organization_user_retention_policies_version_check\",\n sql`${table.version} > 0`,\n ),\n }),\n);\n\nexport const organizationMembershipInvitations = pgTable(\n \"organization_membership_invitations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n targetSubjectId: text(\"target_subject_id\"),\n targetEmail: text(\"target_email\").notNull(),\n targetName: text(\"target_name\"),\n initialWorkspaceIds: uuid(\"initial_workspace_ids\")\n .array()\n .notNull()\n .default(sql`'{}'::uuid[]`),\n role: text(\"role\").notNull().default(\"member\"),\n status: text(\"status\").notNull().default(\"pending\"),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull().default(1),\n createdByMembershipId: uuid(\"created_by_membership_id\").notNull(),\n acceptedMembershipId: uuid(\"accepted_membership_id\"),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountIdentity: uniqueIndex(\"organization_membership_invitations_id_account_idx\").on(\n table.id,\n table.accountId,\n ),\n pendingTarget: uniqueIndex(\"organization_membership_invitations_pending_target_uq\")\n .on(table.accountId, table.targetSubjectId)\n .where(sql`${table.status} = 'pending' AND ${table.targetSubjectId} IS NOT NULL`),\n pendingEmail: uniqueIndex(\"organization_membership_invitations_pending_email_uq\")\n .on(table.accountId, table.targetEmail)\n .where(sql`${table.status} = 'pending'`),\n accountCreated: index(\"organization_membership_invitations_account_created_idx\").on(\n table.accountId,\n table.createdAt.desc(),\n table.id.desc(),\n ),\n subjectCreated: index(\"organization_membership_invitations_subject_created_idx\").on(\n table.targetSubjectId,\n table.createdAt.desc(),\n table.id.desc(),\n ),\n creator: foreignKey({\n name: \"organization_membership_invitations_creator_fk\",\n columns: [table.createdByMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n acceptedMembership: foreignKey({\n name: \"organization_membership_invitations_accepted_membership_fk\",\n columns: [table.acceptedMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n roleValid: check(\n \"organization_membership_invitations_role_check\",\n sql`${table.role} in ('owner', 'admin', 'member')`,\n ),\n statusValid: check(\n \"organization_membership_invitations_status_check\",\n sql`${table.status} in ('pending', 'accepted', 'revoked', 'expired')`,\n ),\n revisionValid: check(\n \"organization_membership_invitations_revision_check\",\n sql`${table.revision} > 0`,\n ),\n acceptanceValid: check(\n \"organization_membership_invitations_acceptance_check\",\n sql`(${table.status} = 'accepted' and ${table.acceptedMembershipId} is not null)\n or (${table.status} <> 'accepted' and ${table.acceptedMembershipId} is null)`,\n ),\n }),\n);\n\nexport const organizationInvitationBindingEvents = pgTable(\n \"organization_invitation_binding_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n invitationId: uuid(\"invitation_id\").notNull(),\n targetSubjectId: text(\"target_subject_id\").notNull(),\n resultingRevision: bigint(\"resulting_revision\", {\n mode: \"number\",\n }).notNull(),\n boundAt: timestamp(\"bound_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n invitation: foreignKey({\n name: \"organization_invitation_binding_events_invitation_fk\",\n columns: [table.invitationId, table.accountId],\n foreignColumns: [\n organizationMembershipInvitations.id,\n organizationMembershipInvitations.accountId,\n ],\n }).onDelete(\"restrict\"),\n invitationIdentity: uniqueIndex(\"organization_invitation_binding_events_invitation_uq\").on(\n table.accountId,\n table.invitationId,\n ),\n subjectValid: check(\n \"organization_invitation_binding_events_subject_check\",\n sql`${table.targetSubjectId} = btrim(${table.targetSubjectId})\n and ${table.targetSubjectId} like 'user:%'\n and octet_length(convert_to(${table.targetSubjectId}, 'UTF8')) between 6 and 1024`,\n ),\n revisionValid: check(\n \"organization_invitation_binding_events_revision_check\",\n sql`${table.resultingRevision} > 1`,\n ),\n }),\n);\n\nexport const organizationMembershipOperationReceipts = pgTable(\n \"organization_membership_operation_receipts\",\n {\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n operationId: uuid(\"operation_id\").notNull(),\n action: text(\"action\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n result: jsonb(\"result\").$type<Record<string, unknown>>().notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({ columns: [table.accountId, table.operationId] }),\n actionValid: check(\n \"organization_membership_operation_receipts_action_check\",\n sql`${table.action} in ('invite', 'accept', 'revoke_invitation', 'change_role', 'suspend', 'reactivate', 'offboard', 'retention', 'create_workspace')`,\n ),\n inputHashValid: check(\n \"organization_membership_operation_receipts_input_hash_check\",\n sql`${table.inputHash} ~ '^[0-9a-f]{64}$'`,\n ),\n }),\n);\n\nexport const organizationMembershipLifecycleEvents = pgTable(\n \"organization_membership_lifecycle_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n operationId: uuid(\"operation_id\").notNull(),\n actorMembershipId: uuid(\"actor_membership_id\"),\n actorServiceSubject: text(\"actor_service_subject\"),\n targetMembershipId: uuid(\"target_membership_id\"),\n kind: text(\"kind\").notNull(),\n priorAuthorizationRevision: bigint(\"prior_authorization_revision\", {\n mode: \"number\",\n }),\n resultingAuthorizationRevision: bigint(\"resulting_authorization_revision\", {\n mode: \"number\",\n }),\n reason: text(\"reason\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operation: uniqueIndex(\"organization_membership_lifecycle_events_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n actor: foreignKey({\n name: \"organization_membership_lifecycle_events_actor_fk\",\n columns: [table.actorMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n target: foreignKey({\n name: \"organization_membership_lifecycle_events_target_fk\",\n columns: [table.targetMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n kindValid: check(\n \"organization_membership_lifecycle_events_kind_check\",\n sql`${table.kind} in ('invite', 'accept', 'revoke_invitation', 'change_role', 'suspend', 'reactivate', 'offboard', 'retention')`,\n ),\n actorKindValid: check(\n \"organization_membership_lifecycle_events_actor_kind_check\",\n sql`(${table.actorMembershipId} is not null and ${table.actorServiceSubject} is null) or (${table.actorMembershipId} is null and ${table.actorServiceSubject} is not null and ${table.actorServiceSubject} ~ '^api_key:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$')`,\n ),\n }),\n);\n\nexport const organizationUserRetentionDeletions = pgTable(\n \"organization_user_retention_deletions\",\n {\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n membershipId: uuid(\"membership_id\").notNull(),\n retentionUntil: timestamp(\"retention_until\", {\n withTimezone: true,\n }).notNull(),\n state: text(\"state\").notNull().default(\"claimed\"),\n claimOperationId: uuid(\"claim_operation_id\").notNull(),\n claimExpiresAt: timestamp(\"claim_expires_at\", {\n withTimezone: true,\n }).notNull(),\n attemptCount: integer(\"attempt_count\").notNull().default(1),\n databaseResult: jsonb(\"database_result\").$type<Record<string, unknown>>(),\n databaseFinalizedAt: timestamp(\"database_finalized_at\", {\n withTimezone: true,\n }),\n result: jsonb(\"result\").$type<Record<string, unknown>>(),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({ columns: [table.accountId, table.membershipId] }),\n operation: uniqueIndex(\"organization_user_retention_deletions_operation_uq\").on(\n table.claimOperationId,\n ),\n claim: index(\"organization_user_retention_deletions_claim_idx\").on(\n table.accountId,\n table.state,\n table.claimExpiresAt,\n ),\n membership: foreignKey({\n name: \"organization_user_retention_deletions_membership_fk\",\n columns: [table.membershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n stateValid: check(\n \"organization_user_retention_deletions_state_check\",\n sql`${table.state} in ('claimed', 'failed', 'completed')`,\n ),\n attemptValid: check(\n \"organization_user_retention_deletions_attempt_check\",\n sql`${table.attemptCount} > 0`,\n ),\n completionValid: check(\n \"organization_user_retention_deletions_completion_check\",\n sql`(${table.state} = 'completed' and ${table.completedAt} is not null and ${table.result} is not null)\n or (${table.state} <> 'completed' and ${table.completedAt} is null and ${table.result} is null)`,\n ),\n databaseFinalizationValid: check(\n \"organization_retention_deletions_db_finalized_chk\",\n sql`(${table.databaseFinalizedAt} is null and ${table.databaseResult} is null)\n or (${table.databaseFinalizedAt} is not null and ${table.databaseResult} is not null)`,\n ),\n }),\n);\n\nexport const organizationUserRetentionObjectObligations = pgTable(\n \"organization_user_retention_object_obligations\",\n {\n accountId: uuid(\"account_id\").notNull(),\n membershipId: uuid(\"membership_id\").notNull(),\n objectKind: text(\"object_kind\").notNull(),\n sourceId: text(\"source_id\").notNull(),\n objectBucket: text(\"object_bucket\").notNull(),\n objectKey: text(\"object_key\").notNull(),\n preparedOperationId: uuid(\"prepared_operation_id\").notNull(),\n objectKeyHash: text(\"object_key_hash\").notNull(),\n preparedAt: timestamp(\"prepared_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({\n columns: [\n table.accountId,\n table.membershipId,\n table.objectKind,\n table.sourceId,\n table.objectBucket,\n ],\n }),\n deletion: foreignKey({\n name: \"organization_retention_object_obligations_deletion_fk\",\n columns: [table.accountId, table.membershipId],\n foreignColumns: [\n organizationUserRetentionDeletions.accountId,\n organizationUserRetentionDeletions.membershipId,\n ],\n }).onDelete(\"restrict\"),\n hashValid: check(\n \"organization_user_retention_object_obligations_hash_check\",\n sql`${table.objectKeyHash} ~ '^[0-9a-f]{64}$'`,\n ),\n shapeValid: check(\n \"organization_user_retention_object_obligations_shape_check\",\n sql`${table.objectKind} in (\n 'file', 'session_recording', 'browser_state_artifact', 'browser_state_upload',\n 'transcription_recording_object', 'video_staging_reference',\n 'workspace_artifact_version', 'editable_artifact_blob',\n 'workspace_capture_manifest', 'workspace_capture_tree_index',\n 'workspace_capture_blob'\n )\n and octet_length(${table.sourceId}) between 1 and 2048\n and octet_length(${table.objectBucket}) between 1 and 1024\n and octet_length(${table.objectKey}) between 1 and 4096`,\n ),\n }),\n);\n\nexport const organizationUserRetentionObjectDeletionReceipts = pgTable(\n \"organization_user_retention_object_deletion_receipts\",\n {\n accountId: uuid(\"account_id\").notNull(),\n membershipId: uuid(\"membership_id\").notNull(),\n objectKind: text(\"object_kind\").notNull(),\n sourceId: text(\"source_id\").notNull(),\n objectBucket: text(\"object_bucket\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n deletedAt: timestamp(\"deleted_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({\n columns: [\n table.accountId,\n table.membershipId,\n table.objectKind,\n table.sourceId,\n table.objectBucket,\n ],\n }),\n obligation: foreignKey({\n name: \"organization_retention_object_deletions_obligation_fk\",\n columns: [\n table.accountId,\n table.membershipId,\n table.objectKind,\n table.sourceId,\n table.objectBucket,\n ],\n foreignColumns: [\n organizationUserRetentionObjectObligations.accountId,\n organizationUserRetentionObjectObligations.membershipId,\n organizationUserRetentionObjectObligations.objectKind,\n organizationUserRetentionObjectObligations.sourceId,\n organizationUserRetentionObjectObligations.objectBucket,\n ],\n }).onDelete(\"restrict\"),\n }),\n);\n\nexport const organizationUserRetentionDeletionEvents = pgTable(\n \"organization_user_retention_deletion_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n membershipId: uuid(\"membership_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n kind: text(\"kind\").notNull(),\n reasonCode: text(\"reason_code\"),\n result: jsonb(\"result\").$type<Record<string, unknown>>().notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operationKind: uniqueIndex(\"organization_user_retention_deletion_events_operation_kind_uq\").on(\n table.accountId,\n table.operationId,\n table.kind,\n ),\n membershipCreated: index(\"organization_retention_events_member_created_idx\").on(\n table.accountId,\n table.membershipId,\n table.createdAt,\n table.id,\n ),\n membership: foreignKey({\n name: \"organization_user_retention_deletion_events_membership_fk\",\n columns: [table.membershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n kindValid: check(\n \"organization_user_retention_deletion_events_kind_check\",\n sql`${table.kind} in ('claimed', 'failed', 'completed')`,\n ),\n reasonValid: check(\n \"organization_user_retention_deletion_events_reason_check\",\n sql`${table.reasonCode} is null or ${table.reasonCode} ~ '^[a-z0-9_]{1,64}$'`,\n ),\n }),\n);\n\nexport const organizationUserResourceAuthorities = pgTable(\n \"organization_user_resource_authorities\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n organizationMembershipId: uuid(\"organization_membership_id\").notNull(),\n resourceKind: text(\"resource_kind\").notNull(),\n resourceId: uuid(\"resource_id\").notNull(),\n // Provenance only. The migration owns a composite same-organization FK\n // whose delete action clears only this column, never account_id.\n originWorkspaceId: uuid(\"origin_workspace_id\"),\n generation: bigint(\"generation\", { mode: \"number\" }).notNull().default(1),\n status: text(\"status\").notNull().default(\"active\"),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountIdentity: uniqueIndex(\"organization_user_resource_authorities_id_account_idx\").on(\n table.id,\n table.accountId,\n ),\n accountMembershipIdentity: uniqueIndex(\n \"organization_user_resource_authorities_id_account_membership_idx\",\n ).on(table.id, table.accountId, table.organizationMembershipId),\n resourceIdentity: uniqueIndex(\n \"organization_user_resource_authorities_resource_identity_idx\",\n ).on(table.accountId, table.organizationMembershipId, table.resourceKind, table.resourceId),\n membership: foreignKey({\n name: \"organization_user_resource_authorities_membership_fk\",\n columns: [table.organizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n resourceKindValid: check(\n \"organization_user_resource_authorities_kind_check\",\n sql`${table.resourceKind} = lower(btrim(${table.resourceKind}))\n and length(${table.resourceKind}) between 1 and 64\n and ${table.resourceKind} ~ '^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$'`,\n ),\n generationValid: check(\n \"organization_user_resource_authorities_generation_check\",\n sql`${table.generation} > 0`,\n ),\n statusValid: check(\n \"organization_user_resource_authorities_status_check\",\n sql`${table.status} in ('active', 'retained', 'revoked')`,\n ),\n revocationValid: check(\n \"organization_user_resource_authorities_revocation_check\",\n sql`(${table.status} = 'revoked' and ${table.revokedAt} is not null)\n or (${table.status} <> 'revoked' and ${table.revokedAt} is null)`,\n ),\n }),\n);\n\nexport type ApiKeyCredentialKind = \"workspace\" | \"organization\" | \"legacy_account\";\n\nexport const apiKeys = pgTable(\n \"api_keys\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\").references(() => workspaces.id, {\n onDelete: \"cascade\",\n }),\n name: text(\"name\").notNull(),\n description: text(\"description\"),\n credentialKind: text(\"credential_kind\").$type<ApiKeyCredentialKind>().notNull(),\n prefix: text(\"prefix\").notNull(),\n keyHash: text(\"key_hash\").notNull(),\n permissions: jsonb(\"permissions\").$type<string[]>().notNull().default([]),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n lastUsedAt: timestamp(\"last_used_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n prefix: index(\"api_keys_prefix_idx\").on(table.prefix),\n hash: uniqueIndex(\"api_keys_key_hash_idx\").on(table.keyHash),\n account: index(\"api_keys_account_idx\").on(table.accountId),\n workspace: index(\"api_keys_workspace_idx\").on(table.workspaceId),\n descriptionValid: check(\n \"api_keys_description_check\",\n sql`${table.description} is null or length(${table.description}) between 1 and 500`,\n ),\n credentialKindValid: check(\n \"api_keys_credential_kind_check\",\n sql`(\n ${table.workspaceId} is not null\n and ${table.credentialKind} = 'workspace'\n ) or (\n ${table.workspaceId} is null\n and ${table.credentialKind} = 'organization'\n ) or (\n ${table.workspaceId} is null\n and ${table.credentialKind} = 'legacy_account'\n and ${table.revokedAt} is not null\n )`,\n ),\n }),\n);\n\nexport const workspaceVariableSets = pgTable(\n \"workspace_variable_sets\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n name: text(\"name\").notNull(),\n description: text(\"description\"),\n // Omitted creation remains workspace-owned. User ownership is anchored to\n // the common organization-user resource authority; organization ownership\n // has no member owner and is administered through account authority.\n authorityScope: text(\"authority_scope\").notNull().default(\"workspace\"),\n authorityId: uuid(\"authority_id\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n originWorkspaceId: uuid(\"origin_workspace_id\"),\n generation: bigint(\"generation\", { mode: \"number\" }).notNull().default(1),\n status: text(\"status\").notNull().default(\"active\"),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceName: uniqueIndex(\"workspace_variable_sets_workspace_name_active_idx\")\n .on(table.workspaceId, table.name)\n .where(sql`${table.authorityScope} = 'workspace' and ${table.status} = 'active'`),\n workspaceCreated: index(\"workspace_variable_sets_workspace_created_idx\").on(\n table.workspaceId,\n table.createdAt,\n ),\n authorityShape: check(\n \"workspace_variable_sets_authority_shape_check\",\n sql`(\n ${table.authorityScope} in ('organization', 'workspace')\n and ${table.authorityId} is null\n and ${table.ownerOrganizationMembershipId} is null\n ) or (\n ${table.authorityScope} = 'user'\n and ${table.authorityId} is not null\n and ${table.ownerOrganizationMembershipId} is not null\n )`,\n ),\n authorityScopeValid: check(\n \"workspace_variable_sets_authority_scope_check\",\n sql`${table.authorityScope} in ('organization', 'workspace', 'user')`,\n ),\n generationValid: check(\n \"workspace_variable_sets_generation_check\",\n sql`${table.generation} > 0`,\n ),\n statusValid: check(\n \"workspace_variable_sets_status_check\",\n sql`${table.status} in ('active', 'revoked')`,\n ),\n revocationValid: check(\n \"workspace_variable_sets_revocation_check\",\n sql`(${table.status} = 'revoked' and ${table.revokedAt} is not null)\n or (${table.status} = 'active' and ${table.revokedAt} is null)`,\n ),\n authority: foreignKey({\n name: \"workspace_variable_sets_authority_fk\",\n columns: [table.authorityId, table.accountId, table.ownerOrganizationMembershipId],\n foreignColumns: [\n organizationUserResourceAuthorities.id,\n organizationUserResourceAuthorities.accountId,\n organizationUserResourceAuthorities.organizationMembershipId,\n ],\n }).onDelete(\"restrict\"),\n // PostgreSQL's column-subset SET NULL action preserves account_id; Drizzle\n // cannot represent that action, so migration 0230 owns the origin FK.\n }),\n);\n\nexport const workspaceVariableSetVariables = pgTable(\n \"workspace_variable_set_variables\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n variableSetId: uuid(\"variable_set_id\")\n .notNull()\n .references(() => workspaceVariableSets.id, { onDelete: \"cascade\" }),\n name: text(\"name\").notNull(),\n // Format: v1:<base64 iv>:<base64 ciphertext||gcm-tag>. Never returned by any API.\n valueEncrypted: text(\"value_encrypted\").notNull(),\n version: integer(\"version\").notNull().default(1),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n variableSetName: uniqueIndex(\"workspace_variable_set_variables_env_name_idx\").on(\n table.workspaceId,\n table.variableSetId,\n table.name,\n ),\n variableSet: index(\"workspace_variable_set_variables_workspace_env_idx\").on(\n table.workspaceId,\n table.variableSetId,\n ),\n }),\n);\n\n// Workspace- or organization-owned ChatGPT/Codex subscription credential. One\n// row per connected ChatGPT account in the owning pool. Organization rows have\n// workspace_id = NULL and are selected only for inheriting shared workspaces.\n// access/refresh/id tokens live INSIDE credential_encrypted (v1 AES-256-GCM,\n// same envelope as workspace_variable_set_variables); the other columns are\n// plaintext metadata (header value + UI). RLS-isolated per workspace.\nexport const codexSubscriptionCredentials = pgTable(\n \"codex_subscription_credentials\",\n {\n allowedModelIds: text(\"allowed_model_ids\").array(),\n allowedWorkspaceIds: uuid(\"allowed_workspace_ids\").array(),\n allowPersonalWorkspaces: boolean(\"allow_personal_workspaces\").notNull().default(true),\n accessPolicyVersion: integer(\"access_policy_version\").notNull().default(1),\n accessPolicyUpdatedBy: text(\"access_policy_updated_by\"),\n accessPolicyUpdatedAt: timestamp(\"access_policy_updated_at\", { withTimezone: true }),\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\").references(() => workspaces.id, {\n onDelete: \"cascade\",\n }),\n organizationId: uuid(\"organization_id\").references(() => managedAccounts.id, {\n onDelete: \"cascade\",\n }),\n authorityScope: text(\"authority_scope\").notNull().default(\"workspace\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n organizationUserResourceAuthorityId: uuid(\"organization_user_resource_authority_id\"),\n organizationUserResourceKind: text(\"organization_user_resource_kind\"),\n organizationUserResourceAuthorityGeneration: bigint(\n \"organization_user_resource_authority_generation\",\n { mode: \"number\" },\n ),\n // Format: v1:<base64 iv>:<base64 ciphertext||gcm-tag>. JSON {access_token, refresh_token, id_token}. Never returned by any API.\n credentialEncrypted: text(\"credential_encrypted\").notNull(),\n chatgptAccountId: text(\"chatgpt_account_id\"), // plaintext ChatGPT-Account-ID header value (non-secret)\n scopes: text(\"scopes\"), // space-delimited, as granted\n planType: text(\"plan_type\"),\n isFedramp: boolean(\"is_fedramp\").notNull().default(false),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }), // derived from access-token JWT exp\n lastRefreshAt: timestamp(\"last_refresh_at\", { withTimezone: true }),\n status: text(\"status\").notNull().default(\"active\"), // active | needs_relogin | error\n lastError: text(\"last_error\"),\n version: integer(\"version\").notNull().default(1),\n label: text(\"label\"), // user-chosen nickname; null ⇒ derive from email/plan/account\n accountEmail: text(\"account_email\"), // email from the id_token (user's own email; non-secret)\n // P2 usage cache (plaintext metadata; NEVER a token). Snapshotted from\n // GET /wham/usage; drives the quota bars + the cache TTL. primary = 5h window\n // (limit_window_seconds 18000), secondary = weekly (604800).\n primaryUsedPercent: integer(\"primary_used_percent\"),\n primaryResetAt: timestamp(\"primary_reset_at\", { withTimezone: true }),\n secondaryUsedPercent: integer(\"secondary_used_percent\"),\n secondaryResetAt: timestamp(\"secondary_reset_at\", { withTimezone: true }),\n usageCheckedAt: timestamp(\"usage_checked_at\", { withTimezone: true }), // snapshot freshness → cache TTL clock\n // P3 rotation cooldown (plaintext metadata; NEVER a token). The kind keeps\n // quota refusals distinct from generic provider backpressure. The independent\n // revision fences a live usage response against a concurrently newer refusal;\n // neither field participates in token-refresh OCC.\n exhaustedUntil: timestamp(\"exhausted_until\", { withTimezone: true }),\n exhaustedKind: text(\"exhausted_kind\"), // quota | rate_limit | null (legacy/cleared)\n exhaustedRevision: bigint(\"exhausted_revision\", { mode: \"number\" }).notNull().default(0),\n // Workspace-local, server-held fairness cursor. Provider usage headers are\n // capacity hints, never the sole allocator: live lease count is ranked first\n // and this cursor deterministically breaks equal-load/equal-capacity ties.\n // This flag controls NEW automatic allocations only. Credential health,\n // refresh, encrypted material, and an already-leased in-flight turn are\n // intentionally independent. account eligibility policy owns toggle OCC/audit and product UI.\n allocatorEnabled: boolean(\"allocator_enabled\").notNull().default(true),\n // Independent OCC/audit sequence for the allocator toggle. Token refresh\n // continues to own `version`; quota/cache writes own neither counter.\n allocatorVersion: integer(\"allocator_version\").notNull().default(1),\n allocatorUpdatedBySubjectId: text(\"allocator_updated_by_subject_id\"),\n allocatorUpdatedAt: timestamp(\"allocator_updated_at\", {\n withTimezone: true,\n }),\n // Authoritative count-only summary cached from /wham/usage. Detailed rows\n // are never persisted as redemption authority; every first POST preflights\n // the provider's fresh detail endpoint.\n resetCreditAvailableCount: integer(\"reset_credit_available_count\"),\n resetCreditsCheckedAt: timestamp(\"reset_credits_checked_at\", {\n withTimezone: true,\n }),\n // Set only by a direct Better Auth cookie connection/reconnection. Legacy,\n // configured, delegated, API-key, and agent-created rows remain view-only.\n connectedBySubjectId: text(\"connected_by_subject_id\"),\n selectionCount: integer(\"selection_count\").notNull().default(0),\n lastSelectedAt: timestamp(\"last_selected_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n // REPLACES codex_subscription_credentials_workspace_idx (the one-per-workspace cap).\n // One row per (workspace, ChatGPT account). Partial WHERE chatgpt_account_id IS NOT NULL\n // so degenerate null-account rows can't collide; the device-grant connect path always\n // populates chatgpt_account_id.\n wsAccount: uniqueIndex(\"codex_subscription_credentials_ws_account_idx\")\n .on(table.workspaceId, table.chatgptAccountId)\n .where(sql`${table.chatgptAccountId} is not null`),\n workspace: index(\"codex_subscription_credentials_workspace_lookup_idx\").on(table.workspaceId),\n // Composite identity is the defense-in-depth FK target for workspace-local\n // lease references in migration 0053.\n workspaceIdentity: uniqueIndex(\"codex_subscription_credentials_workspace_id_idx\").on(\n table.workspaceId,\n table.id,\n ),\n workspaceAccountIdentity: uniqueIndex(\n \"codex_subscription_credentials_workspace_account_id_idx\",\n ).on(table.workspaceId, table.accountId, table.id),\n accountIdentity: uniqueIndex(\"codex_subscription_credentials_account_id_idx\").on(\n table.accountId,\n table.id,\n ),\n organizationAccount: uniqueIndex(\"codex_subscription_credentials_organization_account_idx\")\n .on(table.organizationId, table.chatgptAccountId)\n .where(\n sql`${table.authorityScope} = 'organization' and ${table.chatgptAccountId} is not null`,\n ),\n organizationLookup: index(\"codex_subscription_credentials_organization_lookup_idx\")\n .on(table.organizationId, table.createdAt, table.id)\n .where(sql`${table.authorityScope} = 'organization'`),\n }),\n);\n\nexport const workspaceCodexSubscriptionPreferences = pgTable(\n \"workspace_codex_subscription_preferences\",\n {\n workspaceId: uuid(\"workspace_id\")\n .primaryKey()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n mode: text(\"mode\").notNull().default(\"automatic\"),\n updatedBySubjectId: text(\"updated_by_subject_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"workspace_codex_subscription_preferences_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n modeValid: check(\n \"workspace_codex_subscription_preferences_mode_chk\",\n sql`${table.mode} in ('automatic', 'workspace', 'organization', 'disabled')`,\n ),\n }),\n);\n\nexport const organizationCodexRotationSettings = pgTable(\n \"organization_codex_rotation_settings\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n activeCredentialId: uuid(\"active_credential_id\"),\n rotationEnabled: boolean(\"rotation_enabled\").notNull().default(false),\n rotationStrategy: text(\"rotation_strategy\").notNull().default(\"sharded\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n account: uniqueIndex(\"organization_codex_rotation_settings_account_idx\").on(table.accountId),\n activeCredential: foreignKey({\n name: \"organization_codex_rotation_settings_active_fk\",\n columns: [table.activeCredentialId],\n foreignColumns: [codexSubscriptionCredentials.id],\n }).onDelete(\"set null\"),\n }),\n);\n\n// Optional workspace-level credential used only for ChatGPT connected Apps.\n// Inference selection, usage, cooldown, allocator, pins, and leases never read\n// this row. A durable null row retains the OCC sequence after designation clear.\nexport const codexAppsSettings = pgTable(\n \"codex_apps_settings\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n credentialId: uuid(\"credential_id\"),\n version: integer(\"version\").notNull().default(1),\n designatedAt: timestamp(\"designated_at\", { withTimezone: true }),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"codex_apps_settings_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n credentialScope: foreignKey({\n name: \"codex_apps_settings_credential_scope_fk\",\n columns: [table.workspaceId, table.accountId, table.credentialId],\n foreignColumns: [\n codexSubscriptionCredentials.workspaceId,\n codexSubscriptionCredentials.accountId,\n codexSubscriptionCredentials.id,\n ],\n }).onDelete(\"cascade\"),\n workspace: uniqueIndex(\"codex_apps_settings_workspace_idx\").on(table.workspaceId),\n designationShape: check(\n \"codex_apps_settings_designation_shape_chk\",\n sql`${table.version} > 0 and (\n (${table.credentialId} is null and ${table.designatedAt} is null)\n or\n (${table.credentialId} is not null and ${table.designatedAt} is not null)\n )`,\n ),\n }),\n);\n\n// One durable logical human redemption. `processing` means the fresh provider\n// detail preflight is still owed; `provider_started` means the POST may have\n// reached upstream and every retry must reuse upstreamIdempotencyKey without\n// requiring the credit to remain visible as available.\nexport const codexResetRedemptionAttempts = pgTable(\n \"codex_reset_redemption_attempts\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n credentialId: uuid(\"credential_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n browserSessionHash: text(\"browser_session_hash\").notNull(),\n creditId: text(\"credit_id\").notNull(),\n upstreamIdempotencyKey: uuid(\"upstream_idempotency_key\").notNull().defaultRandom(),\n status: text(\"status\").notNull().default(\"processing\"),\n outcome: text(\"outcome\"),\n claimHolderId: uuid(\"claim_holder_id\"),\n claimExpiresAt: timestamp(\"claim_expires_at\", { withTimezone: true }),\n confirmationExpiresAt: timestamp(\"confirmation_expires_at\", {\n withTimezone: true,\n }).notNull(),\n providerStartedAt: timestamp(\"provider_started_at\", { withTimezone: true }),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n lastFailureKind: text(\"last_failure_kind\"),\n retryCount: integer(\"retry_count\").notNull().default(0),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"codex_reset_redemption_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n upstreamKey: uniqueIndex(\"codex_reset_redemption_upstream_key_idx\").on(\n table.upstreamIdempotencyKey,\n ),\n credentialCredit: uniqueIndex(\"codex_reset_redemption_credential_credit_idx\")\n .on(table.workspaceId, table.credentialId, table.creditId)\n .where(\n sql`${table.status} <> 'completed' or ${table.outcome} in ('reset', 'alreadyRedeemed')`,\n ),\n workspaceCredential: index(\"codex_reset_redemption_workspace_credential_idx\").on(\n table.workspaceId,\n table.credentialId,\n table.createdAt,\n ),\n claimExpiry: index(\"codex_reset_redemption_claim_expiry_idx\")\n .on(table.claimExpiresAt)\n .where(sql`${table.status} <> 'completed'`),\n statusValid: check(\n \"codex_reset_redemption_status_check\",\n sql`${table.status} in ('processing', 'provider_started', 'completed')`,\n ),\n outcomeValid: check(\n \"codex_reset_redemption_outcome_check\",\n sql`${table.outcome} is null or ${table.outcome} in ('reset', 'nothingToReset', 'noCredit', 'alreadyRedeemed')`,\n ),\n completionConsistent: check(\n \"codex_reset_redemption_completed_check\",\n sql`(${table.status} = 'completed') = (${table.outcome} is not null and ${table.completedAt} is not null)`,\n ),\n retryCountValid: check(\n \"codex_reset_redemption_retry_count_check\",\n sql`${table.retryCount} >= 0`,\n ),\n humanSubjectValid: check(\n \"codex_reset_redemption_human_subject_check\",\n sql`${table.subjectId} like 'user:_%'`,\n ),\n }),\n);\n\n// Generic external-service credential spine. credential_encrypted is the ONLY\n// secret-bearing column; normal API reads use metadata-only helpers below the DB\n// layer. Runtime token material is decrypted only by the broker accessor.\nexport const connections = pgTable(\n \"connections\",\n {\n allowedModelIds: text(\"allowed_model_ids\").array(),\n allowedWorkspaceIds: uuid(\"allowed_workspace_ids\").array(),\n allowPersonalWorkspaces: boolean(\"allow_personal_workspaces\").notNull().default(true),\n accessPolicyVersion: integer(\"access_policy_version\").notNull().default(1),\n accessPolicyUpdatedBy: text(\"access_policy_updated_by\"),\n accessPolicyUpdatedAt: timestamp(\"access_policy_updated_at\", { withTimezone: true }),\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n subjectId: text(\"subject_id\"),\n providerDomain: text(\"provider_domain\").notNull(),\n kind: text(\"kind\").notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n credentialEncrypted: text(\"credential_encrypted\").notNull(),\n grantedScopes: jsonb(\"granted_scopes\").$type<string[]>().notNull().default([]),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }),\n lastRefreshAt: timestamp(\"last_refresh_at\", { withTimezone: true }),\n lastUsedAt: timestamp(\"last_used_at\", { withTimezone: true }),\n lastError: text(\"last_error\"),\n version: integer(\"version\").notNull().default(1),\n // Server-owned proof that the dedicated install route verified the exact\n // credential at this connection version. Generic/legacy writers cannot set\n // these columns, and migration 0131 clears them when protected fields change\n // without a fresh verification in the same statement.\n verifiedInstallAt: timestamp(\"verified_install_at\", { withTimezone: true }),\n verifiedInstallVersion: integer(\"verified_install_version\"),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n createdBySubjectId: text(\"created_by_subject_id\"),\n updatedBySubjectId: text(\"updated_by_subject_id\"),\n // Explicit execution authority. Workspace rows have no member authority;\n // user rows bind one immutable organization membership and common resource\n // authority. `legacy_user` preserves pre-tenancy personal rows without\n // inventing an owner membership; it is ineligible for delegated use until\n // the migration cutover binds it. Public metadata projects only the opaque\n // authority id to the exact subject owner; membership, scope, origin, and\n // generation remain internal.\n authorityScope: text(\"authority_scope\").notNull().default(\"workspace\"),\n authorityId: uuid(\"authority_id\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n originWorkspaceId: uuid(\"origin_workspace_id\"),\n // Separate from credential version: refresh may rotate token material\n // without invalidating already accepted work, while reconnect/disconnect\n // and identity/status transitions advance this generation.\n authorityGeneration: bigint(\"authority_generation\", { mode: \"number\" }).notNull().default(1),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceProviderStatus: index(\"connections_workspace_provider_status_idx\").on(\n table.workspaceId,\n table.providerDomain,\n table.status,\n ),\n workspaceSubjectProvider: index(\"connections_workspace_subject_provider_idx\").on(\n table.workspaceId,\n table.subjectId,\n table.providerDomain,\n ),\n workspaceKind: index(\"connections_workspace_kind_idx\").on(table.workspaceId, table.kind),\n workspaceExpires: index(\"connections_workspace_expires_idx\").on(\n table.workspaceId,\n table.expiresAt,\n ),\n authorityIdentity: uniqueIndex(\"connections_authority_identity_uq\")\n .on(table.accountId, table.authorityId)\n .where(sql`${table.authorityId} is not null`),\n ownerAuthority: index(\"connections_owner_authority_idx\")\n .on(\n table.accountId,\n table.ownerOrganizationMembershipId,\n table.status,\n table.updatedAt,\n table.id,\n )\n .where(sql`${table.authorityScope} = 'user'`),\n authorityScopeValid: check(\n \"connections_authority_scope_check\",\n sql`${table.authorityScope} in ('workspace', 'user', 'legacy_user')`,\n ),\n authorityShapeValid: check(\n \"connections_authority_shape_check\",\n sql`(\n ${table.authorityScope} = 'workspace'\n and ${table.subjectId} is null\n and ${table.authorityId} is null\n and ${table.ownerOrganizationMembershipId} is null\n and ${table.originWorkspaceId} = ${table.workspaceId}\n ) or (\n ${table.authorityScope} = 'user'\n and ${table.subjectId} is not null\n and ${table.authorityId} is not null\n and ${table.ownerOrganizationMembershipId} is not null\n and ${table.originWorkspaceId} is not null\n ) or (\n ${table.authorityScope} = 'legacy_user'\n and ${table.subjectId} is not null\n and ${table.authorityId} is null\n and ${table.ownerOrganizationMembershipId} is null\n and ${table.originWorkspaceId} is not null\n )`,\n ),\n authorityGenerationValid: check(\n \"connections_authority_generation_check\",\n sql`${table.authorityGeneration} > 0`,\n ),\n authority: foreignKey({\n name: \"connections_authority_fk\",\n columns: [table.authorityId, table.accountId, table.ownerOrganizationMembershipId],\n foreignColumns: [\n organizationUserResourceAuthorities.id,\n organizationUserResourceAuthorities.accountId,\n organizationUserResourceAuthorities.organizationMembershipId,\n ],\n }).onDelete(\"restrict\"),\n // Migration 0255 owns the same-organization origin FK because Drizzle\n // cannot express PostgreSQL's column-subset SET NULL action.\n }),\n);\n\n/**\n * Monotonic authority head for one personal GitHub connection's selected\n * repository set. The head is separate from the selected rows so replacing\n * the set with an empty array still advances durable authority.\n */\nexport const personalGitHubRepositorySelectionHeads = pgTable(\n \"personal_github_repository_selection_heads\",\n {\n connectionId: uuid(\"connection_id\")\n .primaryKey()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n originWorkspaceId: uuid(\"origin_workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n ownerSubjectId: text(\"owner_subject_id\").notNull(),\n providerPrincipalId: text(\"provider_principal_id\").notNull(),\n credentialBindingId: uuid(\"credential_binding_id\").notNull(),\n connectionAuthorityGeneration: bigint(\"connection_authority_generation\", {\n mode: \"number\",\n }).notNull(),\n generation: bigint(\"generation\", { mode: \"number\" }).notNull().default(1),\n updatedBySubjectId: text(\"updated_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n tenantConnection: uniqueIndex(\"personal_github_repository_selection_heads_tenant_uq\").on(\n table.accountId,\n table.originWorkspaceId,\n table.ownerSubjectId,\n table.connectionId,\n ),\n owner: index(\"personal_github_repository_selection_heads_owner_idx\").on(\n table.accountId,\n table.ownerSubjectId,\n table.connectionId,\n ),\n generationValid: check(\n \"personal_github_repository_selection_heads_generation_chk\",\n sql`${table.connectionAuthorityGeneration} > 0 and ${table.generation} > 0`,\n ),\n }),\n);\n\n/** Only explicitly selected repositories are persisted; discovery stays live. */\nexport const personalGitHubRepositorySelections = pgTable(\n \"personal_github_repository_selections\",\n {\n connectionId: uuid(\"connection_id\").notNull(),\n repositoryId: bigint(\"repository_id\", { mode: \"bigint\" }).notNull(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n originWorkspaceId: uuid(\"origin_workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n ownerSubjectId: text(\"owner_subject_id\").notNull(),\n canonicalFullName: text(\"canonical_full_name\").notNull(),\n canonicalHttpsUri: text(\"canonical_https_uri\").notNull(),\n defaultBranch: text(\"default_branch\").notNull(),\n visibility: text(\"visibility\").notNull(),\n private: boolean(\"private\").notNull(),\n archived: boolean(\"archived\").notNull(),\n disabled: boolean(\"disabled\").notNull(),\n permissions: jsonb(\"permissions\").$type<Record<string, boolean>>().notNull(),\n selectedAccess: text(\"selected_access\").notNull(),\n selectionGeneration: bigint(\"selection_generation\", {\n mode: \"number\",\n }).notNull(),\n selectedBySubjectId: text(\"selected_by_subject_id\").notNull(),\n selectedAt: timestamp(\"selected_at\", { withTimezone: true }).notNull().defaultNow(),\n verifiedAt: timestamp(\"verified_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({ columns: [table.connectionId, table.repositoryId] }),\n head: foreignKey({\n name: \"personal_github_repository_selections_head_fk\",\n columns: [table.accountId, table.originWorkspaceId, table.ownerSubjectId, table.connectionId],\n foreignColumns: [\n personalGitHubRepositorySelectionHeads.accountId,\n personalGitHubRepositorySelectionHeads.originWorkspaceId,\n personalGitHubRepositorySelectionHeads.ownerSubjectId,\n personalGitHubRepositorySelectionHeads.connectionId,\n ],\n }).onDelete(\"cascade\"),\n tenant: index(\"personal_github_repository_selections_tenant_idx\").on(\n table.accountId,\n table.originWorkspaceId,\n table.connectionId,\n ),\n shapeValid: check(\n \"personal_github_repository_selections_shape_chk\",\n sql`${table.repositoryId} > 0\n and ${table.selectionGeneration} > 0\n and ${table.selectedAccess} in ('read', 'write')\n and ${table.visibility} in ('public', 'private', 'internal')\n and ${table.private} = (${table.visibility} = 'private')\n and jsonb_typeof(${table.permissions}) = 'object'\n and ${table.permissions} ?& array['pull','push','admin','maintain','triage']\n and ${table.permissions} - array['pull','push','admin','maintain','triage']::text[] = '{}'::jsonb\n and jsonb_typeof(${table.permissions}->'pull') = 'boolean'\n and jsonb_typeof(${table.permissions}->'push') = 'boolean'\n and jsonb_typeof(${table.permissions}->'admin') = 'boolean'\n and jsonb_typeof(${table.permissions}->'maintain') = 'boolean'\n and jsonb_typeof(${table.permissions}->'triage') = 'boolean'\n and (${table.permissions}->'pull' = 'true'::jsonb\n or ${table.permissions}->'push' = 'true'::jsonb\n or ${table.permissions}->'admin' = 'true'::jsonb\n or ${table.permissions}->'maintain' = 'true'::jsonb\n or ${table.permissions}->'triage' = 'true'::jsonb)\n and (${table.selectedAccess} <> 'write' or (\n not ${table.archived} and not ${table.disabled}\n and (${table.permissions}->'push' = 'true'::jsonb\n or ${table.permissions}->'admin' = 'true'::jsonb\n or ${table.permissions}->'maintain' = 'true'::jsonb)\n ))\n and octet_length(${table.ownerSubjectId}) between 1 and 512\n and ${table.canonicalFullName} ~ '^[A-Za-z0-9][A-Za-z0-9-]{0,38}/[A-Za-z0-9_.-]{1,100}$'\n and octet_length(${table.canonicalFullName}) between 3 and 140\n and octet_length(${table.defaultBranch}) between 1 and 255`,\n ),\n }),\n);\n\n/** Bounded idempotency receipt for an owner-issued full selection replacement. */\nexport const personalGitHubRepositorySelectionOperations = pgTable(\n \"personal_github_repository_selection_operations\",\n {\n connectionId: uuid(\"connection_id\").notNull(),\n idempotencyKey: text(\"idempotency_key\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n originWorkspaceId: uuid(\"origin_workspace_id\").notNull(),\n ownerSubjectId: text(\"owner_subject_id\").notNull(),\n requestDigest: bytea(\"request_digest\").notNull(),\n resultingGeneration: bigint(\"resulting_generation\", {\n mode: \"number\",\n }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({\n columns: [table.connectionId, table.idempotencyKey],\n }),\n head: foreignKey({\n name: \"personal_github_repository_selection_operations_head_fk\",\n columns: [table.accountId, table.originWorkspaceId, table.ownerSubjectId, table.connectionId],\n foreignColumns: [\n personalGitHubRepositorySelectionHeads.accountId,\n personalGitHubRepositorySelectionHeads.originWorkspaceId,\n personalGitHubRepositorySelectionHeads.ownerSubjectId,\n personalGitHubRepositorySelectionHeads.connectionId,\n ],\n }).onDelete(\"cascade\"),\n shapeValid: check(\n \"personal_github_repository_selection_operations_shape_chk\",\n sql`${table.resultingGeneration} > 0\n and octet_length(${table.idempotencyKey}) between 1 and 200\n and octet_length(${table.ownerSubjectId}) between 1 and 512\n and octet_length(${table.requestDigest}) = 32`,\n ),\n }),\n);\n\nexport const connectionUseOnceConsumptionReceipts = pgTable(\n \"connection_use_once_consumption_receipts\",\n {\n grantId: uuid(\"grant_id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n authorityId: uuid(\"authority_id\").notNull(),\n authorityGeneration: bigint(\"authority_generation\", {\n mode: \"number\",\n }).notNull(),\n grantGeneration: bigint(\"grant_generation\", { mode: \"number\" }).notNull(),\n acceptedWorkKind: text(\"accepted_work_kind\").notNull(),\n acceptedWorkId: uuid(\"accepted_work_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n authority: foreignKey({\n name: \"connection_once_receipts_authority_fk\",\n columns: [table.authorityId, table.accountId],\n foreignColumns: [\n organizationUserResourceAuthorities.id,\n organizationUserResourceAuthorities.accountId,\n ],\n }).onDelete(\"cascade\"),\n grant: foreignKey({\n name: \"connection_once_receipts_grant_fk\",\n columns: [table.grantId, table.accountId],\n foreignColumns: [organizationUserResourceGrants.id, organizationUserResourceGrants.accountId],\n }).onDelete(\"cascade\"),\n generationValid: check(\n \"connection_once_receipts_generation_check\",\n sql`${table.authorityGeneration} > 0 and ${table.grantGeneration} > 0`,\n ),\n acceptedWorkKindValid: check(\n \"connection_once_receipts_work_kind_check\",\n sql`${table.acceptedWorkKind} in ('turn', 'scheduled_task')`,\n ),\n }),\n);\n\n// One durable routing authority per installed Slack team. The active partial\n// unique index is the database fence that prevents a team from being routed to\n// two OpenGeni workspaces. Legacy ambiguous rows are retained as quarantined\n// evidence instead of deleting credentials or guessing a winner.\nexport const slackInstallationBindings = pgTable(\n \"slack_installation_bindings\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n slackTeamId: text(\"slack_team_id\").notNull(),\n slackTeamName: text(\"slack_team_name\").notNull(),\n botId: text(\"bot_id\").notNull(),\n botUserId: text(\"bot_user_id\").notNull(),\n botDisplayName: text(\"bot_display_name\").notNull(),\n state: text(\"state\").$type<\"active\" | \"quarantined\">().notNull(),\n quarantineReason: text(\"quarantine_reason\"),\n version: integer(\"version\").notNull().default(1),\n createdBySubjectId: text(\"created_by_subject_id\"),\n updatedBySubjectId: text(\"updated_by_subject_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n connection: uniqueIndex(\"slack_installation_bindings_connection_uq\").on(table.connectionId),\n activeTeam: uniqueIndex(\"slack_installation_bindings_active_team_uq\")\n .on(table.slackTeamId)\n .where(sql`${table.state} = 'active'`),\n workspaceState: index(\"slack_installation_bindings_workspace_state_idx\").on(\n table.workspaceId,\n table.state,\n table.updatedAt,\n ),\n workspaceAccount: foreignKey({\n name: \"slack_installation_bindings_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n stateValid: check(\n \"slack_installation_bindings_state_check\",\n sql`${table.state} in ('active', 'quarantined')`,\n ),\n quarantineConsistent: check(\n \"slack_installation_bindings_quarantine_check\",\n sql`(${table.state} = 'active' and ${table.quarantineReason} is null)\n or (${table.state} = 'quarantined' and length(btrim(${table.quarantineReason})) > 0)`,\n ),\n identityBounded: check(\n \"slack_installation_bindings_identity_check\",\n sql`octet_length(${table.slackTeamId}) between 1 and 64\n and octet_length(${table.slackTeamName}) between 1 and 256\n and octet_length(${table.botId}) between 1 and 64\n and octet_length(${table.botUserId}) between 1 and 64\n and ${table.botDisplayName} in ('OpenGeni', 'OpenGeni Staging')`,\n ),\n versionPositive: check(\"slack_installation_bindings_version_check\", sql`${table.version} > 0`),\n }),\n);\n\n/**\n * Per-channel Slack workspace routing within one organization.\n *\n * HOME tenancy (`accountId`/`workspaceId`) is the installation binding's own\n * workspace: it owns the bot credential every provider call is fenced on. The\n * TARGET (`targetAccountId`/`targetWorkspaceId`) is where the session, its\n * grant, and its events live. `slack_channel_routes_same_account_check` keeps\n * both sides in one organization; cross-organization routing is out of scope.\n *\n * The row is the durable ask-once memory: once a human picks in the Slack\n * picker, or an admin sets it in the web sheet, later messages in that channel\n * never ask again.\n */\nexport const slackChannelRoutes = pgTable(\n \"slack_channel_routes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n slackTeamId: text(\"slack_team_id\").notNull(),\n slackChannelId: text(\"slack_channel_id\").notNull(),\n targetAccountId: uuid(\"target_account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n targetWorkspaceId: uuid(\"target_workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n decidedBySubjectId: text(\"decided_by_subject_id\").notNull(),\n decidedBySlackUserId: text(\"decided_by_slack_user_id\").notNull(),\n source: text(\"source\").$type<\"picker\" | \"admin\">().notNull(),\n version: integer(\"version\").notNull().default(1),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n channel: unique(\"slack_channel_routes_channel_uq\").on(table.connectionId, table.slackChannelId),\n workspaceAccount: foreignKey({\n name: \"slack_channel_routes_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n targetWorkspaceAccount: foreignKey({\n name: \"slack_channel_routes_target_workspace_account_fk\",\n columns: [table.targetWorkspaceId, table.targetAccountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n target: index(\"slack_channel_routes_target_idx\").on(table.targetWorkspaceId, table.slackTeamId),\n sameAccount: check(\n \"slack_channel_routes_same_account_check\",\n sql`${table.targetAccountId} = ${table.accountId}`,\n ),\n bounded: check(\n \"slack_channel_routes_bounds_check\",\n sql`octet_length(${table.slackTeamId}) between 1 and 64\n and octet_length(${table.slackChannelId}) between 1 and 64\n and octet_length(${table.decidedBySubjectId}) between 1 and 1024\n and octet_length(${table.decidedBySlackUserId}) between 1 and 64\n and ${table.source} in ('picker', 'admin')\n and ${table.version} > 0`,\n ),\n }),\n);\n\n/**\n * Per-Slack-human direct-message workspace routing, same HOME/TARGET split as\n * {@link slackChannelRoutes}. Absent a row, a DM derives that human's own\n * personal workspace from their active organization membership pointer; the\n * workspace id is never accepted from a Slack payload or from this table.\n */\nexport const slackUserDmRoutes = pgTable(\n \"slack_user_dm_routes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n slackTeamId: text(\"slack_team_id\").notNull(),\n slackUserId: text(\"slack_user_id\").notNull(),\n targetAccountId: uuid(\"target_account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n targetWorkspaceId: uuid(\"target_workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n decidedBySubjectId: text(\"decided_by_subject_id\").notNull(),\n decidedBySlackUserId: text(\"decided_by_slack_user_id\").notNull(),\n source: text(\"source\").$type<\"picker\" | \"admin\">().notNull(),\n version: integer(\"version\").notNull().default(1),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n user: unique(\"slack_user_dm_routes_user_uq\").on(table.connectionId, table.slackUserId),\n workspaceAccount: foreignKey({\n name: \"slack_user_dm_routes_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n targetWorkspaceAccount: foreignKey({\n name: \"slack_user_dm_routes_target_workspace_account_fk\",\n columns: [table.targetWorkspaceId, table.targetAccountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n target: index(\"slack_user_dm_routes_target_idx\").on(table.targetWorkspaceId, table.slackTeamId),\n sameAccount: check(\n \"slack_user_dm_routes_same_account_check\",\n sql`${table.targetAccountId} = ${table.accountId}`,\n ),\n bounded: check(\n \"slack_user_dm_routes_bounds_check\",\n sql`octet_length(${table.slackTeamId}) between 1 and 64\n and octet_length(${table.slackUserId}) between 1 and 64\n and octet_length(${table.decidedBySubjectId}) between 1 and 1024\n and octet_length(${table.decidedBySlackUserId}) between 1 and 64\n and ${table.source} in ('picker', 'admin')\n and ${table.version} > 0`,\n ),\n }),\n);\n\n/**\n * The pending first-use Slack workspace picker.\n *\n * `slack_interaction_action_handles` cannot carry it: that table's `sessionId`\n * is NOT NULL and composite-FK'd to an existing `slack_interactions` row, while\n * a picker exists BEFORE any session.\n *\n * `inboxId` deliberately carries no foreign key. The `awaiting_choice` inbox row\n * is settled `processed` before the human answers - the answer arrives as its\n * own `block_action` inbox row - so this column is provenance, not a live edge.\n *\n * `requestText` mirrors the inbox's exact 12000 byte bound so a prompt can\n * always carry the originating row's text losslessly.\n *\n * `providerEventId` is the ORIGINAL event, and it is PROVENANCE, not the id the\n * answer re-materializes under. Migration 0335's comment claims the answer can\n * re-insert the original event id under the inbox's own\n * `(connection_id, provider_event_id)` dedupe unique; that is wrong, and the\n * migration's bytes are frozen so the claim is corrected here instead. The\n * original inbox row still exists and is settled `processed`, so re-inserting\n * its id conflicts and does nothing, and the chosen workspace would never start\n * any work at all. The answer must enqueue a DERIVED id -\n * `<originalProviderEventId>:route:<promptId>` - which is unique per prompt and\n * still idempotent, so a double-click cannot create two sessions. The\n * `(connection_id, provider_event_id)` unique on this table is what makes\n * Slack's retries of the same event unable to post a second picker.\n */\nexport const slackRoutePrompts = pgTable(\n \"slack_route_prompts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n inboxId: uuid(\"inbox_id\").notNull(),\n slackTeamId: text(\"slack_team_id\").notNull(),\n slackUserId: text(\"slack_user_id\").notNull(),\n slackChannelId: text(\"slack_channel_id\").notNull(),\n slackMessageTs: text(\"slack_message_ts\").notNull(),\n providerEventId: text(\"provider_event_id\").notNull(),\n triggerKind: text(\"trigger_kind\")\n .$type<\n | \"app_mention\"\n | \"dm\"\n | \"reaction\"\n | \"slash_command\"\n | \"message_shortcut\"\n | \"thread_reply\"\n | \"block_action\"\n >()\n .notNull(),\n requestText: text(\"request_text\").notNull(),\n hasFiles: boolean(\"has_files\").notNull().default(false),\n slackThreadTs: text(\"slack_thread_ts\"),\n messageOperationId: uuid(\"message_operation_id\").notNull(),\n status: text(\"status\")\n .$type<\"pending\" | \"answered\" | \"expired\" | \"cancelled\">()\n .notNull()\n .default(\"pending\"),\n answeredTargetAccountId: uuid(\"answered_target_account_id\"),\n answeredTargetWorkspaceId: uuid(\"answered_target_workspace_id\"),\n answeredBySubjectId: text(\"answered_by_subject_id\"),\n answeredAt: timestamp(\"answered_at\", { withTimezone: true }),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n inbox: unique(\"slack_route_prompts_inbox_uq\").on(table.connectionId, table.inboxId),\n providerEvent: unique(\"slack_route_prompts_event_uq\").on(\n table.connectionId,\n table.providerEventId,\n ),\n tenantIdentity: unique(\"slack_route_prompts_identity_uq\").on(\n table.accountId,\n table.workspaceId,\n table.id,\n ),\n workspaceAccount: foreignKey({\n name: \"slack_route_prompts_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n pending: index(\"slack_route_prompts_pending_idx\")\n .on(table.expiresAt, table.id)\n .where(sql`${table.status} = 'pending'`),\n // One live card per person per conversation. The existing uniques are keyed\n // to the originating event, so they stop Slack's retries of ONE event from\n // posting twice but not two different messages. `slackUserId` is in the key\n // on purpose: a shared channel has many people in it, and asking one of them\n // must not swallow another's request. A direct message is already one\n // channel per person, so the same index covers both surfaces.\n //\n // Expiry is not in the predicate because `now()` is not immutable. A\n // timed-out row is settled `expired` by the writer before it opens a new\n // prompt.\n pendingConversation: uniqueIndex(\"slack_route_prompts_pending_conversation_uq\")\n .on(table.connectionId, table.slackChannelId, table.slackUserId)\n .where(sql`${table.status} = 'pending'`),\n statusValid: check(\n \"slack_route_prompts_status_check\",\n sql`${table.status} in ('pending', 'answered', 'expired', 'cancelled')`,\n ),\n triggerValid: check(\n \"slack_route_prompts_trigger_check\",\n sql`${table.triggerKind} in (\n 'app_mention', 'dm', 'reaction', 'slash_command',\n 'message_shortcut', 'thread_reply', 'block_action'\n )`,\n ),\n answerConsistent: check(\n \"slack_route_prompts_answer_check\",\n sql`(${table.status} = 'answered') = (${table.answeredTargetWorkspaceId} is not null)\n and (${table.answeredTargetAccountId} is null) = (${table.answeredTargetWorkspaceId} is null)\n and (${table.answeredTargetAccountId} is null\n or ${table.answeredTargetAccountId} = ${table.accountId})\n and (${table.answeredTargetWorkspaceId} is null) = (${table.answeredAt} is null)`,\n ),\n bounded: check(\n \"slack_route_prompts_bounds_check\",\n sql`octet_length(${table.slackTeamId}) between 1 and 64\n and octet_length(${table.slackUserId}) between 1 and 64\n and octet_length(${table.slackChannelId}) between 1 and 64\n and octet_length(${table.slackMessageTs}) between 1 and 64\n and octet_length(${table.providerEventId}) between 1 and 256\n and octet_length(${table.requestText}) between 1 and 12000\n and (${table.slackThreadTs} is null\n or octet_length(${table.slackThreadTs}) between 1 and 64)\n and (${table.answeredBySubjectId} is null\n or octet_length(${table.answeredBySubjectId}) between 1 and 1024)`,\n ),\n }),\n);\n\n/**\n * One row per workspace offered by a {@link slackRoutePrompts} card. The row id\n * is the Slack button `value`, so it must be a UUID: the block-action normalizer\n * already requires that shape, which is why the picker uses buttons rather than\n * a `static_select` (whose `selected_option.value` the normalizer never reads).\n *\n * These rows are a snapshot taken at prompt time and are NEVER authority. The\n * answer path re-authorizes the chosen workspace live.\n */\nexport const slackRoutePromptOptions = pgTable(\n \"slack_route_prompt_options\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n promptId: uuid(\"prompt_id\").notNull(),\n candidateAccountId: uuid(\"candidate_account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n candidateWorkspaceId: uuid(\"candidate_workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n candidateLabel: text(\"candidate_label\").notNull(),\n position: integer(\"position\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"slack_route_prompt_options_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n promptIdentity: foreignKey({\n name: \"slack_route_prompt_options_prompt_fk\",\n columns: [table.accountId, table.workspaceId, table.promptId],\n foreignColumns: [\n slackRoutePrompts.accountId,\n slackRoutePrompts.workspaceId,\n slackRoutePrompts.id,\n ],\n }).onDelete(\"cascade\"),\n candidateWorkspaceAccount: foreignKey({\n name: \"slack_route_prompt_options_candidate_workspace_account_fk\",\n columns: [table.candidateWorkspaceId, table.candidateAccountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n promptWorkspace: unique(\"slack_route_prompt_options_prompt_workspace_uq\").on(\n table.promptId,\n table.candidateWorkspaceId,\n ),\n promptPosition: unique(\"slack_route_prompt_options_prompt_position_uq\").on(\n table.promptId,\n table.position,\n ),\n sameAccount: check(\n \"slack_route_prompt_options_same_account_check\",\n sql`${table.candidateAccountId} = ${table.accountId}`,\n ),\n bounded: check(\n \"slack_route_prompt_options_bounds_check\",\n sql`octet_length(${table.candidateLabel}) between 1 and 128\n and ${table.position} >= 0`,\n ),\n }),\n);\n\nexport const connectionDisconnectOperations = pgTable(\n \"connection_disconnect_operations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n subjectId: text(\"subject_id\").notNull(),\n idempotencyKey: text(\"idempotency_key\").notNull(),\n expectedVersion: integer(\"expected_version\").notNull(),\n resultVersion: integer(\"result_version\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceSubjectKey: uniqueIndex(\"connection_disconnect_operations_subject_key_uq\").on(\n table.workspaceId,\n table.subjectId,\n table.idempotencyKey,\n ),\n connectionGeneration: uniqueIndex(\n \"connection_disconnect_operations_connection_generation_uq\",\n ).on(table.workspaceId, table.connectionId, table.expectedVersion),\n identityValid: check(\n \"connection_disconnect_operations_identity_check\",\n sql`length(${table.subjectId}) between 1 and 512\n and length(${table.idempotencyKey}) between 1 and 200\n and ${table.idempotencyKey} = btrim(${table.idempotencyKey})\n and ${table.expectedVersion} > 0\n and ${table.resultVersion} = ${table.expectedVersion} + 1`,\n ),\n }),\n);\n\nexport const connectorActionPolicies = pgTable(\n \"connector_action_policies\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: text(\"connection_id\").notNull(),\n serverId: text(\"server_id\").notNull(),\n toolName: text(\"tool_name\").notNull(),\n actionName: text(\"action_name\").notNull(),\n policy: text(\"policy\").$type<ConnectorActionPolicyDecision>().notNull(),\n version: integer(\"version\").notNull().default(1),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n updatedBySubjectId: text(\"updated_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"connector_action_policies_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n scope: uniqueIndex(\"connector_action_policies_scope_uq\").on(\n table.workspaceId,\n table.connectionId,\n table.serverId,\n table.toolName,\n table.actionName,\n ),\n workspaceConnection: index(\"connector_action_policies_workspace_connection_idx\").on(\n table.workspaceId,\n table.connectionId,\n table.serverId,\n ),\n policyValid: check(\n \"connector_action_policies_policy_chk\",\n sql`${table.policy} in ('allow', 'ask', 'block')`,\n ),\n versionValid: check(\"connector_action_policies_version_chk\", sql`${table.version} > 0`),\n }),\n);\n\nexport const slackBotUserLinks = pgTable(\n \"slack_bot_user_links\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n slackTeamId: text(\"slack_team_id\").notNull(),\n slackUserId: text(\"slack_user_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n linkedBySubjectId: text(\"linked_by_subject_id\").notNull(),\n // The exact interaction id that won this identity's one-time onboarding\n // hint. NULL means the hint has not been shown yet.\n firstTaskHintInteractionId: uuid(\"first_task_hint_interaction_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n connectionUser: uniqueIndex(\"slack_bot_user_links_connection_user_uq\").on(\n table.connectionId,\n table.slackUserId,\n ),\n workspaceSubject: index(\"slack_bot_user_links_workspace_subject_idx\").on(\n table.workspaceId,\n table.subjectId,\n ),\n }),\n);\n\nexport const slackUserLinkAccessRequests = pgTable(\n \"slack_user_link_access_requests\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n tokenDigest: text(\"token_digest\").notNull(),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n slackTeamId: text(\"slack_team_id\").notNull(),\n slackUserId: text(\"slack_user_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n subjectLabel: text(\"subject_label\"),\n status: text(\"status\").notNull().default(\"prepared\"),\n version: integer(\"version\").notNull().default(1),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n requestedAt: timestamp(\"requested_at\", { withTimezone: true }),\n decidedAt: timestamp(\"decided_at\", { withTimezone: true }),\n decisionBySubjectId: text(\"decision_by_subject_id\"),\n approvedRole: text(\"approved_role\"),\n approvedPermissions: jsonb(\"approved_permissions\").$type<string[]>(),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"slack_user_link_access_requests_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n tenantIdentity: unique(\"slack_user_link_access_requests_tenant_uq\").on(\n table.id,\n table.workspaceId,\n table.accountId,\n ),\n tokenDigestUnique: uniqueIndex(\"slack_user_link_access_requests_token_digest_uq\").on(\n table.tokenDigest,\n ),\n activePrincipal: uniqueIndex(\"slack_user_link_access_requests_active_principal_uq\")\n .on(table.workspaceId, table.connectionId, table.slackUserId, table.subjectId)\n .where(sql`${table.status} in ('prepared', 'pending')`),\n workspacePending: index(\"slack_user_link_access_requests_workspace_pending_idx\").on(\n table.workspaceId,\n table.status,\n table.expiresAt,\n table.createdAt,\n ),\n subjectLookup: index(\"slack_user_link_access_requests_subject_idx\").on(\n table.workspaceId,\n table.subjectId,\n table.id,\n ),\n identityValid: check(\n \"slack_user_link_access_requests_identity_check\",\n sql`length(${table.tokenDigest}) = 64\n and ${table.tokenDigest} ~ '^[0-9a-f]{64}$'\n and length(${table.slackTeamId}) between 1 and 64\n and length(${table.slackUserId}) between 1 and 64\n and length(${table.subjectId}) between 1 and 512\n and (${table.subjectLabel} is null or length(${table.subjectLabel}) between 1 and 512)\n and ${table.version} > 0`,\n ),\n statusValid: check(\n \"slack_user_link_access_requests_status_check\",\n sql`${table.status} in ('prepared', 'pending', 'completed', 'denied', 'cancelled', 'expired')`,\n ),\n lifecycleValid: check(\n \"slack_user_link_access_requests_lifecycle_check\",\n sql`(${table.status} = 'prepared' and ${table.requestedAt} is null and ${table.decidedAt} is null and ${table.completedAt} is null)\n or (${table.status} = 'pending' and ${table.requestedAt} is not null and ${table.decidedAt} is null and ${table.completedAt} is null)\n or (${table.status} = 'completed' and ${table.completedAt} is not null)\n or (${table.status} in ('denied', 'cancelled', 'expired') and ${table.decidedAt} is not null and ${table.completedAt} is null)`,\n ),\n }),\n);\n\nexport const slackUserLinkAccessRequestOperations = pgTable(\n \"slack_user_link_access_request_operations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n requestId: uuid(\"request_id\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n operation: text(\"operation\").notNull(),\n idempotencyKey: text(\"idempotency_key\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n expectedVersion: integer(\"expected_version\").notNull(),\n resultVersion: integer(\"result_version\").notNull(),\n resultStatus: text(\"result_status\").notNull(),\n result: jsonb(\"result\").$type<SlackUserLinkAccessRequest>().notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"slack_user_link_access_request_operations_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n requestTenant: foreignKey({\n name: \"slack_user_link_access_request_operations_request_tenant_fk\",\n columns: [table.requestId, table.workspaceId, table.accountId],\n foreignColumns: [\n slackUserLinkAccessRequests.id,\n slackUserLinkAccessRequests.workspaceId,\n slackUserLinkAccessRequests.accountId,\n ],\n }).onDelete(\"cascade\"),\n idempotency: uniqueIndex(\"slack_user_link_access_request_operations_idempotency_uq\").on(\n table.requestId,\n table.actorSubjectId,\n table.operation,\n table.idempotencyKey,\n ),\n resultVersionUnique: uniqueIndex(\n \"slack_user_link_access_request_operations_result_version_uq\",\n ).on(table.requestId, table.resultVersion),\n identityValid: check(\n \"slack_user_link_access_request_operations_identity_check\",\n sql`length(${table.actorSubjectId}) between 1 and 512\n and length(${table.idempotencyKey}) between 1 and 200\n and ${table.idempotencyKey} = btrim(${table.idempotencyKey})\n and length(${table.requestDigest}) = 64\n and ${table.requestDigest} ~ '^[0-9a-f]{64}$'\n and ${table.expectedVersion} > 0\n and ${table.resultVersion} = ${table.expectedVersion} + 1\n and ${table.operation} in ('request', 'cancel', 'approve', 'deny')\n and ${table.resultStatus} in ('pending', 'completed', 'denied', 'cancelled')\n and jsonb_typeof(${table.result}) = 'object'\n and ${table.result} ?& array[\n 'id', 'workspaceId', 'workspaceDisplayName', 'subjectLabel', 'status', 'version',\n 'expiresAt', 'requestedAt', 'decidedAt', 'completedAt', 'createdAt', 'updatedAt'\n ]\n and ${table.result} - array[\n 'id', 'workspaceId', 'workspaceDisplayName', 'subjectLabel', 'status', 'version',\n 'expiresAt', 'requestedAt', 'decidedAt', 'completedAt', 'createdAt', 'updatedAt'\n ] = '{}'::jsonb\n and jsonb_typeof(${table.result}->'id') = 'string'\n and jsonb_typeof(${table.result}->'workspaceId') = 'string'\n and jsonb_typeof(${table.result}->'workspaceDisplayName') in ('string', 'null')\n and jsonb_typeof(${table.result}->'subjectLabel') in ('string', 'null')\n and jsonb_typeof(${table.result}->'status') = 'string'\n and jsonb_typeof(${table.result}->'version') = 'number'\n and jsonb_typeof(${table.result}->'expiresAt') = 'string'\n and jsonb_typeof(${table.result}->'requestedAt') in ('string', 'null')\n and jsonb_typeof(${table.result}->'decidedAt') in ('string', 'null')\n and jsonb_typeof(${table.result}->'completedAt') in ('string', 'null')\n and jsonb_typeof(${table.result}->'createdAt') = 'string'\n and jsonb_typeof(${table.result}->'updatedAt') = 'string'\n and ${table.result}->>'id' = ${table.requestId}::text\n and ${table.result}->>'workspaceId' = ${table.workspaceId}::text\n and ${table.result}->>'status' = ${table.resultStatus}\n and ${table.result}->'version' = to_jsonb(${table.resultVersion})`,\n ),\n }),\n);\n\nexport const slackInteractionInbox = pgTable(\n \"slack_interaction_inbox\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n providerEventId: text(\"provider_event_id\").notNull(),\n providerMessageId: text(\"provider_message_id\").notNull(),\n slackTeamId: text(\"slack_team_id\").notNull(),\n slackUserId: text(\"slack_user_id\").notNull(),\n slackChannelId: text(\"slack_channel_id\").notNull(),\n slackMessageTs: text(\"slack_message_ts\").notNull(),\n slackThreadTs: text(\"slack_thread_ts\"),\n triggerKind: text(\"trigger_kind\")\n .$type<\n | \"app_mention\"\n | \"dm\"\n | \"reaction\"\n | \"slash_command\"\n | \"message_shortcut\"\n | \"thread_reply\"\n | \"block_action\"\n >()\n .notNull(),\n text: text(\"text\").notNull(),\n hasFiles: boolean(\"has_files\").notNull().default(false),\n status: text(\"status\")\n .$type<\"pending\" | \"processing\" | \"processed\" | \"failed\">()\n .notNull()\n .default(\"pending\"),\n claimHolderId: uuid(\"claim_holder_id\"),\n claimExpiresAt: timestamp(\"claim_expires_at\", { withTimezone: true }),\n attemptCount: integer(\"attempt_count\").notNull().default(0),\n retryAt: timestamp(\"retry_at\", { withTimezone: true }),\n lastErrorCode: text(\"last_error_code\"),\n reactionContextCheckpoint: jsonb(\"reaction_context_checkpoint\").$type<unknown>(),\n // Workspace routing decision, persisted on the claimed row so a retry after\n // a crash re-uses the same decision rather than re-asking. `accountId` and\n // `workspaceId` above stay HOME (the installation's credential tenancy) and\n // stay NOT NULL: `workspace_rls_visible` is strict equality, so a NULL\n // workspace would make an un-routed row invisible to every tenant including\n // its own. NULL `routeState` means \"legacy / never routed\" and is exactly\n // pre-routing behaviour.\n routeState: text(\"route_state\").$type<\"resolved\" | \"awaiting_choice\" | \"denied\">(),\n // Deliberately no foreign key: an inbox row is short-lived and\n // definer-claimed, so a runtime re-check degrades to \"ask again\" while an FK\n // would hard-fail on a workspace deleted mid-flight.\n targetAccountId: uuid(\"target_account_id\"),\n targetWorkspaceId: uuid(\"target_workspace_id\"),\n routePromptId: uuid(\"route_prompt_id\"),\n routePromptExpiresAt: timestamp(\"route_prompt_expires_at\", {\n withTimezone: true,\n }),\n processedAt: timestamp(\"processed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n providerEvent: uniqueIndex(\"slack_interaction_inbox_provider_event_uq\").on(\n table.connectionId,\n table.providerEventId,\n ),\n providerMessage: uniqueIndex(\"slack_interaction_inbox_provider_message_uq\").on(\n table.connectionId,\n table.providerMessageId,\n ),\n pending: index(\"slack_interaction_inbox_pending_idx\").on(\n table.status,\n table.retryAt,\n table.createdAt,\n table.id,\n ),\n }),\n);\n\n// Coalesced private App Home refresh authority. One row per installed Slack\n// connection/user serializes provider replacement calls while allowing event\n// retries and newer opens to converge on the latest requested revision.\nexport const slackAppHomeRefreshes = pgTable(\n \"slack_app_home_refreshes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n slackTeamId: text(\"slack_team_id\").notNull(),\n slackUserId: text(\"slack_user_id\").notNull(),\n providerEventId: text(\"provider_event_id\").notNull(),\n providerViewHash: text(\"provider_view_hash\"),\n desiredRevision: integer(\"desired_revision\").notNull().default(1),\n processedRevision: integer(\"processed_revision\").notNull().default(0),\n claimHolderId: uuid(\"claim_holder_id\"),\n claimExpiresAt: timestamp(\"claim_expires_at\", { withTimezone: true }),\n attemptCount: integer(\"attempt_count\").notNull().default(0),\n retryAt: timestamp(\"retry_at\", { withTimezone: true }),\n lastErrorCode: text(\"last_error_code\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n connectionUser: uniqueIndex(\"slack_app_home_refreshes_connection_user_uq\").on(\n table.connectionId,\n table.slackUserId,\n ),\n pending: index(\"slack_app_home_refreshes_pending_idx\")\n .on(table.retryAt, table.updatedAt, table.id)\n .where(sql`${table.processedRevision} < ${table.desiredRevision}`),\n workspaceAccount: foreignKey({\n name: \"slack_app_home_refreshes_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n bounds: check(\n \"slack_app_home_refreshes_bounds_check\",\n sql`octet_length(${table.slackTeamId}) between 1 and 64\n and octet_length(${table.slackUserId}) between 1 and 64\n and octet_length(${table.providerEventId}) between 1 and 256\n and (${table.providerViewHash} is null\n or octet_length(${table.providerViewHash}) between 1 and 256)\n and (${table.lastErrorCode} is null\n or octet_length(${table.lastErrorCode}) between 1 and 128)`,\n ),\n revisions: check(\n \"slack_app_home_refreshes_revisions_check\",\n sql`${table.desiredRevision} > 0\n and ${table.processedRevision} >= 0\n and ${table.processedRevision} <= ${table.desiredRevision}\n and ${table.attemptCount} >= 0`,\n ),\n claim: check(\n \"slack_app_home_refreshes_claim_check\",\n sql`(${table.claimHolderId} is null) = (${table.claimExpiresAt} is null)`,\n ),\n }),\n);\n\nexport const slackInteractions = pgTable(\n \"slack_interactions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n slackTeamId: text(\"slack_team_id\").notNull(),\n slackChannelId: text(\"slack_channel_id\").notNull(),\n slackThreadTs: text(\"slack_thread_ts\").notNull(),\n routeKey: text(\"route_key\").notNull(),\n triggeringProviderEventId: text(\"triggering_provider_event_id\").notNull(),\n initiatingSlackUserId: text(\"initiating_slack_user_id\"),\n owningSubjectId: text(\"owning_subject_id\").notNull(),\n visibility: text(\"visibility\").$type<\"private\" | \"workspace\">().notNull(),\n sessionReservationId: uuid(\"session_reservation_id\").notNull().defaultRandom(),\n sessionId: uuid(\"session_id\").references(() => sessions.id, {\n onDelete: \"cascade\",\n }),\n lastDeliveredSessionEventSequence: integer(\"last_delivered_session_event_sequence\")\n .notNull()\n .default(0),\n deliveryClaimHolderId: uuid(\"delivery_claim_holder_id\"),\n deliveryClaimExpiresAt: timestamp(\"delivery_claim_expires_at\", {\n withTimezone: true,\n }),\n deliveryAttemptCount: integer(\"delivery_attempt_count\").notNull().default(0),\n deliveryRetryAt: timestamp(\"delivery_retry_at\", { withTimezone: true }),\n deliveryLastErrorCode: text(\"delivery_last_error_code\"),\n ackSlackMessageTs: text(\"ack_slack_message_ts\"),\n // Frozen once: whether this interaction's acknowledgement renders the\n // one-time onboarding hint. NULL means the decision has not been resolved.\n firstTaskHint: boolean(\"first_task_hint\"),\n // The routed workspace's display name, frozen when the interaction binds.\n // A live lookup at post time would be wrong: a workspace rename between the\n // original post and a reconciliation makes `reconcilePostMessage`'s\n // byte-compare raise `post_reconciliation_mismatch`. NULL means no\n // per-message workspace line.\n routedWorkspaceLabel: text(\"routed_workspace_label\"),\n progressCount: integer(\"progress_count\").notNull().default(0),\n terminalDeliveryState: text(\"terminal_delivery_state\")\n .$type<\"open\" | \"completed\" | \"failed\" | \"cancelled\" | \"blocked\">()\n .notNull()\n .default(\"open\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n route: uniqueIndex(\"slack_interactions_route_uq\").on(table.connectionId, table.routeKey),\n identity: uniqueIndex(\"slack_interactions_identity_uq\").on(\n table.accountId,\n table.workspaceId,\n table.id,\n ),\n workspaceReservation: uniqueIndex(\"slack_interactions_workspace_reservation_uq\").on(\n table.workspaceId,\n table.sessionReservationId,\n ),\n workspaceSession: uniqueIndex(\"slack_interactions_workspace_session_uq\")\n .on(table.workspaceId, table.sessionId)\n .where(sql`${table.sessionId} is not null`),\n delivery: index(\"slack_interactions_delivery_idx\").on(\n table.terminalDeliveryState,\n table.deliveryRetryAt,\n table.updatedAt,\n table.id,\n ),\n }),\n);\n\nexport const slackInteractionActionHandles = pgTable(\n \"slack_interaction_action_handles\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n interactionId: uuid(\"interaction_id\").notNull(),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n sessionEventSequence: integer(\"session_event_sequence\").notNull(),\n actionKind: text(\"action_kind\")\n .$type<\n | \"approval_approve\"\n | \"approval_reject\"\n | \"human_input_select\"\n | \"human_input_skip\"\n | \"session_status\"\n | \"session_pause\"\n | \"session_resume\"\n | \"shared_result_publish\"\n >()\n .notNull(),\n actionKey: text(\"action_key\").notNull(),\n targetId: text(\"target_id\"),\n targetValue: text(\"target_value\"),\n authorizedSubjectId: text(\"authorized_subject_id\").notNull(),\n authorizedSlackUserId: text(\"authorized_slack_user_id\").notNull(),\n messageOperationId: uuid(\"message_operation_id\").notNull(),\n status: text(\"status\").$type<\"pending\" | \"completed\" | \"stale\">().notNull().default(\"pending\"),\n result: text(\"result\"),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n interactionIdentity: foreignKey({\n columns: [table.accountId, table.workspaceId, table.interactionId],\n foreignColumns: [\n slackInteractions.accountId,\n slackInteractions.workspaceId,\n slackInteractions.id,\n ],\n name: \"slack_interaction_action_handles_interaction_fk\",\n }).onDelete(\"cascade\"),\n identity: uniqueIndex(\"slack_interaction_action_handles_identity_uq\").on(\n table.interactionId,\n table.sessionEventSequence,\n table.actionKey,\n ),\n pending: index(\"slack_interaction_action_handles_pending_idx\").on(\n table.workspaceId,\n table.status,\n table.expiresAt,\n table.id,\n ),\n }),\n);\n\nexport const slackInteractionProgressDeliveries = pgTable(\n \"slack_interaction_progress_deliveries\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n interactionId: uuid(\"interaction_id\").notNull(),\n sessionEventSequence: integer(\"session_event_sequence\").notNull(),\n slot: integer(\"slot\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n interactionIdentity: foreignKey({\n columns: [table.accountId, table.workspaceId, table.interactionId],\n foreignColumns: [\n slackInteractions.accountId,\n slackInteractions.workspaceId,\n slackInteractions.id,\n ],\n name: \"slack_interaction_progress_deliveries_interaction_fk\",\n }).onDelete(\"cascade\"),\n event: uniqueIndex(\"slack_interaction_progress_deliveries_event_uq\").on(\n table.interactionId,\n table.sessionEventSequence,\n ),\n slot: uniqueIndex(\"slack_interaction_progress_deliveries_slot_uq\").on(\n table.interactionId,\n table.slot,\n ),\n operation: uniqueIndex(\"slack_interaction_progress_deliveries_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n }),\n);\n\n// Durable provider-operation identity for OpenGeni Slack bot posts. The\n// server-owned durable operation UUID is also Slack's client_msg_id. `pending` is\n// safe to send, `provider_started` and `outcome_unknown` require provider read\n// reconciliation, and only `completed` may expose the provider result.\nexport const slackBotPostOperations = pgTable(\n \"slack_bot_post_operations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n operationId: uuid(\"operation_id\").notNull(),\n clientMessageId: uuid(\"client_message_id\").notNull(),\n targetKind: text(\"target_kind\").$type<\"channel\" | \"user\">().notNull(),\n targetId: text(\"target_id\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n status: text(\"status\")\n .$type<\"pending\" | \"provider_started\" | \"outcome_unknown\" | \"completed\">()\n .notNull(),\n claimHolderId: uuid(\"claim_holder_id\"),\n claimExpiresAt: timestamp(\"claim_expires_at\", { withTimezone: true }),\n claimMode: text(\"claim_mode\").$type<\"send\" | \"reconcile\">(),\n attemptCount: integer(\"attempt_count\").notNull().default(0),\n lastFailureCode: text(\"last_failure_code\"),\n slackChannelId: text(\"slack_channel_id\"),\n slackMessageTimestamp: text(\"slack_message_timestamp\"),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"slack_bot_post_operations_workspace_operation_uq\").on(\n table.workspaceId,\n table.connectionId,\n table.operationId,\n ),\n workspaceStatus: index(\"slack_bot_post_operations_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n table.updatedAt,\n ),\n targetKindValid: check(\n \"slack_bot_post_operations_target_kind_check\",\n sql`${table.targetKind} in ('channel', 'user')`,\n ),\n statusValid: check(\n \"slack_bot_post_operations_status_check\",\n sql`${table.status} in ('pending', 'provider_started', 'outcome_unknown', 'completed')`,\n ),\n identityValid: check(\n \"slack_bot_post_operations_identity_check\",\n sql`${table.clientMessageId} = ${table.operationId}\n and length(${table.targetId}) between 1 and 64\n and ${table.requestDigest} ~ '^[0-9a-f]{64}$'\n and ${table.attemptCount} > 0\n and (\n (\n ${table.claimHolderId} is null\n and ${table.claimExpiresAt} is null\n and ${table.claimMode} is null\n )\n or (\n ${table.claimHolderId} is not null\n and ${table.claimExpiresAt} is not null\n and (\n (${table.claimMode} = 'send' and ${table.status} in ('pending', 'provider_started'))\n or (${table.claimMode} = 'reconcile' and ${table.status} = 'outcome_unknown')\n )\n )\n )`,\n ),\n completionValid: check(\n \"slack_bot_post_operations_completion_check\",\n sql`(\n ${table.status} <> 'completed'\n and ${table.slackChannelId} is null\n and ${table.slackMessageTimestamp} is null\n and ${table.completedAt} is null\n ) or (\n ${table.status} = 'completed'\n and ${table.claimHolderId} is null\n and ${table.claimExpiresAt} is null\n and ${table.slackChannelId} is not null\n and ${table.slackMessageTimestamp} is not null\n and ${table.completedAt} is not null\n )`,\n ),\n }),\n);\n\nexport const slackBotUpdateOperations = pgTable(\n \"slack_bot_update_operations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n operationId: uuid(\"operation_id\").notNull(),\n slackChannelId: text(\"slack_channel_id\").notNull(),\n slackMessageTimestamp: text(\"slack_message_timestamp\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n status: text(\"status\").$type<\"provider_started\" | \"completed\">().notNull(),\n claimHolderId: uuid(\"claim_holder_id\"),\n claimExpiresAt: timestamp(\"claim_expires_at\", { withTimezone: true }),\n attemptCount: integer(\"attempt_count\").notNull().default(0),\n lastFailureCode: text(\"last_failure_code\"),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"slack_bot_update_operations_workspace_operation_uq\").on(\n table.workspaceId,\n table.connectionId,\n table.operationId,\n ),\n workspaceStatus: index(\"slack_bot_update_operations_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n table.updatedAt,\n ),\n }),\n);\n\nexport const memorySlackPublicationConfigurations = pgTable(\n \"memory_slack_publication_configurations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n revision: integer(\"revision\").notNull(),\n enabled: boolean(\"enabled\").notNull(),\n connectionId: uuid(\"connection_id\"),\n slackTeamId: text(\"slack_team_id\"),\n slackChannelId: text(\"slack_channel_id\"),\n slackChannelName: text(\"slack_channel_name\"),\n autoImportances: text(\"auto_importances\").array().notNull().default([\"major\"]),\n reviewImportances: text(\"review_importances\").array().notNull().default([\"normal\"]),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceRevision: uniqueIndex(\n \"memory_slack_publication_configurations_workspace_revision_uq\",\n ).on(table.workspaceId, table.revision),\n workspaceCreated: index(\"memory_slack_publication_configurations_workspace_created_idx\").on(\n table.workspaceId,\n table.revision,\n ),\n revisionValid: check(\n \"memory_slack_publication_configurations_revision_check\",\n sql`${table.revision} > 0`,\n ),\n destinationValid: check(\n \"memory_slack_publication_configurations_destination_check\",\n sql`not ${table.enabled} or (\n ${table.connectionId} is not null\n and octet_length(${table.slackTeamId}) between 1 and 64\n and octet_length(${table.slackChannelId}) between 1 and 64\n )`,\n ),\n channelNameValid: check(\n \"memory_slack_publication_configurations_channel_name_check\",\n sql`${table.slackChannelName} is null\n or octet_length(${table.slackChannelName}) between 1 and 256`,\n ),\n policyValid: check(\n \"memory_slack_publication_configurations_policy_check\",\n sql`${table.autoImportances} <@ array['major', 'normal', 'minor']::text[]\n and ${table.reviewImportances} <@ array['major', 'normal', 'minor']::text[]\n and cardinality(${table.autoImportances}) <= 3\n and cardinality(${table.reviewImportances}) <= 3\n and not (${table.autoImportances} && ${table.reviewImportances})`,\n ),\n actorValid: check(\n \"memory_slack_publication_configurations_actor_check\",\n sql`octet_length(${table.createdBySubjectId}) between 1 and 1024`,\n ),\n }),\n);\n\nexport const memorySlackPublications = pgTable(\n \"memory_slack_publications\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n configurationId: uuid(\"configuration_id\")\n .notNull()\n .references(() => memorySlackPublicationConfigurations.id, {\n onDelete: \"restrict\",\n }),\n configurationRevision: integer(\"configuration_revision\").notNull(),\n connectionId: uuid(\"connection_id\").notNull(),\n slackTeamId: text(\"slack_team_id\").notNull(),\n slackChannelId: text(\"slack_channel_id\").notNull(),\n sourceType: text(\"source_type\").$type<\"workspace_memory\" | \"durable_learning\">().notNull(),\n sourceId: text(\"source_id\").notNull(),\n sourceVersion: text(\"source_version\"),\n sourceIdempotencyKey: text(\"source_idempotency_key\").notNull(),\n projection: jsonb(\"projection\").$type<Record<string, unknown>>().notNull(),\n projectionSha256: text(\"projection_sha256\").notNull(),\n importance: text(\"importance\").$type<\"major\" | \"normal\" | \"minor\">().notNull(),\n deliveryMode: text(\"delivery_mode\").$type<\"auto\" | \"review\">().notNull(),\n state: text(\"state\")\n .$type<\n | \"review_pending\"\n | \"queued\"\n | \"delivering\"\n | \"retry_wait\"\n | \"delivered\"\n | \"rejected\"\n | \"failed\"\n | \"cancelled\"\n >()\n .notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n initiatorKind: text(\"initiator_kind\").$type<\"human\" | \"agent\" | \"service\">().notNull(),\n initiatorSubjectId: text(\"initiator_subject_id\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\"),\n sessionId: uuid(\"session_id\"),\n turnId: uuid(\"turn_id\"),\n attemptId: uuid(\"attempt_id\"),\n claimHolderId: uuid(\"claim_holder_id\"),\n claimExpiresAt: timestamp(\"claim_expires_at\", { withTimezone: true }),\n attemptCount: integer(\"attempt_count\").notNull().default(0),\n retryAt: timestamp(\"retry_at\", { withTimezone: true }),\n lastErrorCode: text(\"last_error_code\"),\n slackMessageTimestamp: text(\"slack_message_timestamp\"),\n deliveredAt: timestamp(\"delivered_at\", { withTimezone: true }),\n terminalAt: timestamp(\"terminal_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n source: uniqueIndex(\"memory_slack_publications_source_uq\").on(\n table.workspaceId,\n table.sourceIdempotencyKey,\n ),\n operation: uniqueIndex(\"memory_slack_publications_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n claim: index(\"memory_slack_publications_claim_idx\").on(\n table.state,\n table.retryAt,\n table.createdAt,\n table.id,\n ),\n workspaceHistory: index(\"memory_slack_publications_workspace_history_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n sourceTypeValid: check(\n \"memory_slack_publications_source_type_check\",\n sql`${table.sourceType} in ('workspace_memory', 'durable_learning')`,\n ),\n sourceValid: check(\n \"memory_slack_publications_source_check\",\n sql`octet_length(${table.sourceId}) between 1 and 1024\n and (${table.sourceVersion} is null or octet_length(${table.sourceVersion}) between 1 and 512)\n and octet_length(${table.sourceIdempotencyKey}) between 1 and 256`,\n ),\n projectionValid: check(\n \"memory_slack_publications_projection_check\",\n sql`jsonb_typeof(${table.projection}) = 'object'\n and octet_length(${table.projection}::text) between 2 and 8192\n and ${table.projectionSha256} ~ '^[0-9a-f]{64}$'`,\n ),\n distributionValid: check(\n \"memory_slack_publications_distribution_check\",\n sql`${table.importance} in ('major', 'normal', 'minor')\n and ${table.deliveryMode} in ('auto', 'review')`,\n ),\n stateValid: check(\n \"memory_slack_publications_state_check\",\n sql`${table.state} in (\n 'review_pending', 'queued', 'delivering', 'retry_wait',\n 'delivered', 'rejected', 'failed', 'cancelled'\n )`,\n ),\n destinationValid: check(\n \"memory_slack_publications_destination_check\",\n sql`${table.configurationRevision} > 0\n and octet_length(${table.slackTeamId}) between 1 and 64\n and octet_length(${table.slackChannelId}) between 1 and 64`,\n ),\n initiatorValid: check(\n \"memory_slack_publications_initiator_check\",\n sql`${table.initiatorKind} in ('human', 'agent', 'service')\n and octet_length(${table.initiatorSubjectId}) between 1 and 1024\n and (${table.initiatingHumanSubjectId} is null\n or octet_length(${table.initiatingHumanSubjectId}) between 1 and 1024)`,\n ),\n claimValid: check(\n \"memory_slack_publications_claim_check\",\n sql`(${table.state} = 'delivering'\n and ${table.claimHolderId} is not null\n and ${table.claimExpiresAt} is not null\n and ${table.retryAt} is null)\n or (${table.state} = 'retry_wait'\n and ${table.claimHolderId} is null\n and ${table.claimExpiresAt} is null\n and ${table.retryAt} is not null)\n or (${table.state} not in ('delivering', 'retry_wait')\n and ${table.claimHolderId} is null\n and ${table.claimExpiresAt} is null\n and ${table.retryAt} is null)`,\n ),\n attemptValid: check(\"memory_slack_publications_attempt_check\", sql`${table.attemptCount} >= 0`),\n errorValid: check(\n \"memory_slack_publications_error_check\",\n sql`${table.lastErrorCode} is null or octet_length(${table.lastErrorCode}) between 1 and 128`,\n ),\n }),\n);\n\nexport const memorySlackPublicationReceipts = pgTable(\n \"memory_slack_publication_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n publicationId: uuid(\"publication_id\")\n .notNull()\n .references(() => memorySlackPublications.id, { onDelete: \"cascade\" }),\n sequence: integer(\"sequence\").notNull(),\n kind: text(\"kind\")\n .$type<\n | \"enqueued\"\n | \"review_approved\"\n | \"review_rejected\"\n | \"delivery_claimed\"\n | \"retry_scheduled\"\n | \"delivered\"\n | \"failed\"\n | \"cancelled\"\n | \"manual_retry\"\n >()\n .notNull(),\n state: text(\"state\")\n .$type<\n | \"review_pending\"\n | \"queued\"\n | \"delivering\"\n | \"retry_wait\"\n | \"delivered\"\n | \"rejected\"\n | \"failed\"\n | \"cancelled\"\n >()\n .notNull(),\n attemptNumber: integer(\"attempt_number\").notNull(),\n actorKind: text(\"actor_kind\").$type<\"human\" | \"agent\" | \"service\">().notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n errorCode: text(\"error_code\"),\n retryAt: timestamp(\"retry_at\", { withTimezone: true }),\n slackChannelId: text(\"slack_channel_id\"),\n slackMessageTimestamp: text(\"slack_message_timestamp\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n sequenceUnique: uniqueIndex(\"memory_slack_publication_receipts_sequence_uq\").on(\n table.publicationId,\n table.sequence,\n ),\n workspaceHistory: index(\"memory_slack_publication_receipts_workspace_history_idx\").on(\n table.workspaceId,\n table.publicationId,\n table.sequence,\n ),\n kindValid: check(\n \"memory_slack_publication_receipts_kind_check\",\n sql`${table.kind} in (\n 'enqueued', 'review_approved', 'review_rejected', 'delivery_claimed',\n 'retry_scheduled', 'delivered', 'failed', 'cancelled', 'manual_retry'\n )`,\n ),\n stateValid: check(\n \"memory_slack_publication_receipts_state_check\",\n sql`${table.state} in (\n 'review_pending', 'queued', 'delivering', 'retry_wait',\n 'delivered', 'rejected', 'failed', 'cancelled'\n )`,\n ),\n attemptValid: check(\n \"memory_slack_publication_receipts_attempt_check\",\n sql`${table.sequence} > 0 and ${table.attemptNumber} >= 0`,\n ),\n actorValid: check(\n \"memory_slack_publication_receipts_actor_check\",\n sql`${table.actorKind} in ('human', 'agent', 'service')\n and octet_length(${table.actorSubjectId}) between 1 and 1024`,\n ),\n errorValid: check(\n \"memory_slack_publication_receipts_error_check\",\n sql`${table.errorCode} is null or octet_length(${table.errorCode}) between 1 and 128`,\n ),\n providerValid: check(\n \"memory_slack_publication_receipts_provider_check\",\n sql`((${table.slackChannelId} is null) = (${table.slackMessageTimestamp} is null))\n and (${table.slackChannelId} is null\n or octet_length(${table.slackChannelId}) between 1 and 64)\n and (${table.slackMessageTimestamp} is null\n or octet_length(${table.slackMessageTimestamp}) between 1 and 64)`,\n ),\n }),\n);\n\n// Durable provider-operation identity for OpenGeni Slack bot deletions. Slack\n// has no client-supplied idempotency key for chat.delete, so an expired\n// provider_started claim becomes outcome_unknown and must be reconciled before\n// another mutation is admitted.\nexport const slackBotDeleteOperations = pgTable(\n \"slack_bot_delete_operations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => connections.id, { onDelete: \"cascade\" }),\n operationId: uuid(\"operation_id\").notNull(),\n principalType: text(\"principal_type\").$type<\"subject\" | \"service\">().notNull(),\n principalId: text(\"principal_id\").notNull(),\n toolName: text(\"tool_name\").notNull(),\n channelId: text(\"channel_id\").notNull(),\n messageTimestamp: text(\"message_timestamp\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n status: text(\"status\")\n .$type<\"pending\" | \"provider_started\" | \"outcome_unknown\" | \"completed\">()\n .notNull(),\n claimHolderId: uuid(\"claim_holder_id\"),\n claimExpiresAt: timestamp(\"claim_expires_at\", { withTimezone: true }),\n attemptCount: integer(\"attempt_count\").notNull().default(0),\n lastFailureCode: text(\"last_failure_code\"),\n slackChannelId: text(\"slack_channel_id\"),\n slackMessageTimestamp: text(\"slack_message_timestamp\"),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"slack_bot_delete_operations_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n workspaceStatus: index(\"slack_bot_delete_operations_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n table.updatedAt,\n ),\n principalValid: check(\n \"slack_bot_delete_operations_principal_check\",\n sql`${table.principalType} in ('subject', 'service')\n and length(${table.principalId}) between 1 and 512`,\n ),\n identityValid: check(\n \"slack_bot_delete_operations_identity_check\",\n sql`${table.toolName} = 'slack_bot_delete_message'\n and length(${table.channelId}) between 1 and 64\n and length(${table.messageTimestamp}) between 1 and 64\n and ${table.requestDigest} ~ '^[0-9a-f]{64}$'\n and ${table.attemptCount} > 0\n and ((${table.claimHolderId} is null) = (${table.claimExpiresAt} is null))`,\n ),\n statusValid: check(\n \"slack_bot_delete_operations_status_check\",\n sql`${table.status} in ('pending', 'provider_started', 'outcome_unknown', 'completed')`,\n ),\n completionValid: check(\n \"slack_bot_delete_operations_completion_check\",\n sql`(\n ${table.status} <> 'completed'\n and ${table.slackChannelId} is null\n and ${table.slackMessageTimestamp} is null\n and ${table.completedAt} is null\n ) or (\n ${table.status} = 'completed'\n and ${table.claimHolderId} is null\n and ${table.claimExpiresAt} is null\n and ${table.slackChannelId} is not null\n and ${table.slackMessageTimestamp} is not null\n and ${table.completedAt} is not null\n )`,\n ),\n }),\n);\n\n// OAuth client registrations minted through MCP DCR, keyed by authorization\n// server issuer. This is deployment-wide client identity, not a workspace\n// credential; per-user/provider tokens still live only in connections.\nexport const integrationOauthClients = pgTable(\n \"integration_oauth_clients\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n issuer: text(\"issuer\").notNull(),\n authorizationServer: text(\"authorization_server\").notNull(),\n clientId: text(\"client_id\").notNull(),\n clientSecretEncrypted: text(\"client_secret_encrypted\"),\n tokenEndpointAuthMethod: text(\"token_endpoint_auth_method\").notNull().default(\"none\"),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n issuer: uniqueIndex(\"integration_oauth_clients_issuer_idx\").on(table.issuer),\n authorizationServer: index(\"integration_oauth_clients_as_idx\").on(table.authorizationServer),\n }),\n);\n\n// Consumed OAuth state nonces. Rows are inserted only on callback; the primary\n// key makes a verified state single-use across API instances.\nexport const hostMcpTurnAuthorities = pgTable(\n \"host_mcp_turn_authorities\",\n {\n turnId: uuid(\"turn_id\")\n .notNull()\n .references(() => sessionTurns.id, { onDelete: \"cascade\" }),\n serverId: text(\"server_id\").notNull(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n ownerSubjectId: text(\"owner_subject_id\").notNull(),\n bindingId: uuid(\"binding_id\")\n .notNull()\n .references(() => hostMcpBindings.id),\n delegationId: uuid(\"delegation_id\")\n .notNull()\n .references(() => hostMcpDelegations.id),\n canonicalSnapshot: jsonb(\"canonical_snapshot\")\n .$type<import(\"@opengeni/contracts/host-mcp-bindings\").HostMcpAcceptedAuthority>()\n .notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({ columns: [table.turnId, table.serverId] }),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n serverBounds: check(\n \"host_mcp_turn_authorities_server_id_check\",\n sql`octet_length(${table.serverId}) between 1 and 1024`,\n ),\n snapshotBounds: check(\n \"host_mcp_turn_authorities_canonical_snapshot_check\",\n sql`jsonb_typeof(${table.canonicalSnapshot}) = 'object' and octet_length(${table.canonicalSnapshot}::text) <= 262144`,\n ),\n }),\n);\n\nexport const integrationOauthStateNonces = pgTable(\n \"integration_oauth_state_nonces\",\n {\n nonce: text(\"nonce\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n subjectId: text(\"subject_id\").notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n usedAt: timestamp(\"used_at\", { withTimezone: true }).notNull().defaultNow(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspace: index(\"integration_oauth_state_nonces_workspace_idx\").on(table.workspaceId),\n expires: index(\"integration_oauth_state_nonces_expires_idx\").on(table.expiresAt),\n }),\n);\n\nexport const hostMcpBindings = pgTable(\n \"host_mcp_bindings\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\").notNull(),\n ownerSubjectId: text(\"owner_subject_id\").notNull(),\n authorizationRevision: bigint(\"authorization_revision\", { mode: \"number\" }).notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n definition: jsonb(\"definition\").notNull(),\n generation: bigint(\"generation\", { mode: \"number\" }).notNull().default(1),\n status: text(\"status\").notNull().default(\"active\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n },\n (table) => ({\n workspace: foreignKey({\n name: \"host_mcp_bindings_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n owner: foreignKey({\n name: \"host_mcp_bindings_member_owner_fk\",\n columns: [table.accountId, table.ownerSubjectId],\n foreignColumns: [organizationMemberships.accountId, organizationMemberships.subjectId],\n }),\n operation: uniqueIndex(\"host_mcp_bindings_workspace_id_owner_subject_id_operation_id_key\").on(\n table.workspaceId,\n table.ownerSubjectId,\n table.operationId,\n ),\n inventory: index(\"host_mcp_bindings_owner_idx\").on(\n table.workspaceId,\n table.ownerSubjectId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n\nexport const hostMcpDelegations = pgTable(\n \"host_mcp_delegations\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\").notNull(),\n ownerSubjectId: text(\"owner_subject_id\").notNull(),\n ownerAuthorizationRevision: bigint(\"owner_authorization_revision\", {\n mode: \"number\",\n }).notNull(),\n bindingId: uuid(\"binding_id\")\n .notNull()\n .references(() => hostMcpBindings.id),\n bindingGeneration: bigint(\"binding_generation\", { mode: \"number\" }).notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n grantDefinition: jsonb(\"grant_definition\").notNull(),\n generation: bigint(\"generation\", { mode: \"number\" }).notNull().default(1),\n status: text(\"status\").notNull().default(\"active\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n },\n (table) => ({\n workspace: foreignKey({\n name: \"host_mcp_delegations_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n owner: foreignKey({\n name: \"host_mcp_delegations_member_owner_fk\",\n columns: [table.accountId, table.ownerSubjectId],\n foreignColumns: [organizationMemberships.accountId, organizationMemberships.subjectId],\n }),\n operation: uniqueIndex(\n \"host_mcp_delegations_workspace_id_owner_subject_id_operation_id_key\",\n ).on(table.workspaceId, table.ownerSubjectId, table.operationId),\n inventory: index(\"host_mcp_delegations_owner_idx\").on(\n table.workspaceId,\n table.ownerSubjectId,\n table.bindingId,\n table.id,\n ),\n }),\n);\n\nexport const connectAttempts = pgTable(\n \"connect_attempts\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n idempotencyKeyHash: text(\"idempotency_key_hash\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n returnUrl: text(\"return_url\").notNull(),\n externalContinuation: jsonb(\"external_continuation\"),\n projection: jsonb(\"projection\").notNull(),\n operationId: text(\"operation_id\"),\n operationDigest: text(\"operation_digest\"),\n receipts: jsonb(\"receipts\").notNull().default({}),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"connect_attempts_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n idempotency: uniqueIndex(\"connect_attempts_actor_idempotency_idx\").on(\n table.workspaceId,\n table.subjectId,\n table.idempotencyKeyHash,\n ),\n pending: index(\"connect_attempts_actor_pending_idx\")\n .on(table.workspaceId, table.subjectId, table.createdAt.desc(), table.id.desc())\n .where(sql`${table.projection}->>'state' not in ('complete','cancelled','expired')`),\n expiry: index(\"connect_attempts_expiry_idx\").on(table.expiresAt, table.id),\n }),\n);\n\nexport const mcpOauthClients = pgTable(\n \"mcp_oauth_clients\",\n {\n clientId: text(\"client_id\").primaryKey(),\n redirectUris: jsonb(\"redirect_uris\").$type<string[]>().notNull(),\n clientName: text(\"client_name\"),\n tokenEndpointAuthMethod: text(\"token_endpoint_auth_method\").notNull().default(\"none\"),\n grantTypes: jsonb(\"grant_types\")\n .$type<Array<\"authorization_code\" | \"refresh_token\">>()\n .notNull(),\n responseTypes: jsonb(\"response_types\").$type<[\"code\"]>().notNull(),\n registrationScopeHash: text(\"registration_scope_hash\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n },\n (table) => ({\n created: index(\"mcp_oauth_clients_created_idx\").on(table.createdAt),\n scopeCreated: index(\"mcp_oauth_clients_scope_created_idx\").on(\n table.registrationScopeHash,\n table.createdAt,\n ),\n expires: index(\"mcp_oauth_clients_expires_idx\").on(table.expiresAt, table.clientId),\n }),\n);\n\nconst mcpOauthGrantColumns = () => ({\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n subjectId: text(\"subject_id\").notNull(),\n resource: text(\"resource\").notNull(),\n permissions: jsonb(\"permissions\").$type<Permission[]>().notNull(),\n toolIdentities: jsonb(\"tool_identities\").$type<ToolGatewayIdentity[]>().notNull(),\n});\n\nexport const mcpOauthAuthorizationRequests = pgTable(\n \"mcp_oauth_authorization_requests\",\n {\n requestHash: text(\"request_hash\").primaryKey(),\n clientId: text(\"client_id\")\n .notNull()\n .references(() => mcpOauthClients.clientId, { onDelete: \"cascade\" }),\n ...mcpOauthGrantColumns(),\n redirectUri: text(\"redirect_uri\").notNull(),\n codeChallenge: text(\"code_challenge\").notNull(),\n state: text(\"state\"),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"mcp_oauth_authorization_requests_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n expires: index(\"mcp_oauth_authorization_requests_expires_idx\").on(table.expiresAt),\n }),\n);\n\nexport const mcpOauthAuthorizationCodes = pgTable(\n \"mcp_oauth_authorization_codes\",\n {\n codeHash: text(\"code_hash\").primaryKey(),\n clientId: text(\"client_id\")\n .notNull()\n .references(() => mcpOauthClients.clientId, { onDelete: \"cascade\" }),\n ...mcpOauthGrantColumns(),\n redirectUri: text(\"redirect_uri\").notNull(),\n codeChallenge: text(\"code_challenge\").notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"mcp_oauth_authorization_codes_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n expires: index(\"mcp_oauth_authorization_codes_expires_idx\").on(table.expiresAt),\n }),\n);\n\nexport const mcpOauthRefreshTokens = pgTable(\n \"mcp_oauth_refresh_tokens\",\n {\n tokenHash: text(\"token_hash\").primaryKey(),\n familyId: uuid(\"family_id\").notNull(),\n generation: integer(\"generation\").notNull(),\n clientId: text(\"client_id\")\n .notNull()\n .references(() => mcpOauthClients.clientId, { onDelete: \"cascade\" }),\n ...mcpOauthGrantColumns(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"mcp_oauth_refresh_tokens_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n familyGeneration: uniqueIndex(\"mcp_oauth_refresh_tokens_family_generation_uq\").on(\n table.familyId,\n table.generation,\n ),\n expires: index(\"mcp_oauth_refresh_tokens_expires_idx\").on(table.expiresAt),\n }),\n);\n\nexport const mcpOauthAccessTokens = pgTable(\n \"mcp_oauth_access_tokens\",\n {\n tokenHash: text(\"token_hash\").primaryKey(),\n refreshFamilyId: uuid(\"refresh_family_id\").notNull(),\n refreshGeneration: integer(\"refresh_generation\").notNull(),\n clientId: text(\"client_id\")\n .notNull()\n .references(() => mcpOauthClients.clientId, { onDelete: \"cascade\" }),\n ...mcpOauthGrantColumns(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"mcp_oauth_access_tokens_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n family: index(\"mcp_oauth_access_tokens_family_idx\").on(\n table.refreshFamilyId,\n table.refreshGeneration,\n ),\n expires: index(\"mcp_oauth_access_tokens_expires_idx\").on(table.expiresAt),\n }),\n);\n\nexport const toolGatewayApprovalCapabilities = pgTable(\n \"tool_gateway_approval_capabilities\",\n {\n tokenHash: text(\"token_hash\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n subjectId: text(\"subject_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n catalogDigest: text(\"catalog_digest\").notNull(),\n serverId: text(\"server_id\").notNull(),\n toolName: text(\"tool_name\").notNull(),\n argumentsDigest: text(\"arguments_digest\").notNull(),\n authorityDigest: text(\"authority_digest\").notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n consumedAt: timestamp(\"consumed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"tool_gateway_approval_capabilities_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n operation: uniqueIndex(\"tool_gateway_approval_capabilities_operation_uq\").on(\n table.workspaceId,\n table.subjectId,\n table.operationId,\n ),\n expires: index(\"tool_gateway_approval_capabilities_expires_idx\").on(\n table.expiresAt,\n table.tokenHash,\n ),\n liveSubjectExpiry: index(\"tool_gateway_approval_capabilities_live_subject_expiry_idx\")\n .on(table.workspaceId, table.subjectId, table.expiresAt, table.tokenHash)\n .where(sql`${table.consumedAt} is null`),\n tokenHashValid: check(\n \"tool_gateway_approval_capabilities_token_hash_chk\",\n sql`${table.tokenHash} ~ '^[0-9a-f]{64}$'`,\n ),\n catalogDigestValid: check(\n \"tool_gateway_approval_capabilities_catalog_digest_chk\",\n sql`${table.catalogDigest} ~ '^[0-9a-f]{64}$'`,\n ),\n argumentsDigestValid: check(\n \"tool_gateway_approval_capabilities_arguments_digest_chk\",\n sql`${table.argumentsDigest} ~ '^[0-9a-f]{64}$'`,\n ),\n authorityDigestValid: check(\n \"tool_gateway_approval_capabilities_authority_digest_chk\",\n sql`${table.authorityDigest} ~ '^[0-9a-f]{64}$'`,\n ),\n subjectValid: check(\n \"tool_gateway_approval_capabilities_subject_chk\",\n sql`length(btrim(${table.subjectId})) between 1 and 1024`,\n ),\n identityValid: check(\n \"tool_gateway_approval_capabilities_identity_chk\",\n sql`length(${table.serverId}) between 1 and 256\n and length(${table.toolName}) between 1 and 512`,\n ),\n expiryValid: check(\n \"tool_gateway_approval_capabilities_expiry_chk\",\n sql`${table.expiresAt} > ${table.createdAt}\n and ${table.expiresAt} <= ${table.createdAt} + interval '10 minutes'`,\n ),\n }),\n);\n\n// Per-workspace Codex account selection (the ACTIVE pointer) + P3 rotation\n// forward-compat. One row per workspace. The only P1-load-bearing column is\n// activeCredentialId — the account a session runs on when it has no pin. NULL ⇒\n// none selected (e.g. the active one was just disconnected). The\n// (account_id, workspace_id) pair inherits the verbatim workspace_rls_visible\n// policy. active_credential_id's FK is declared in the MIGRATION (not\n// .references()) to avoid a forward-reference on the const ordering, exactly like\n// sessions.activeSandboxId; ON DELETE SET NULL.\nexport const codexRotationSettings = pgTable(\n \"codex_rotation_settings\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n activeCredentialId: uuid(\"active_credential_id\"),\n // User-owned account-selection policy. When false, every new turn may lease\n // only the active credential and waits if that credential is unavailable.\n // When true, the allocator may choose another eligible account.\n rotationEnabled: boolean(\"rotation_enabled\").notNull().default(false),\n rotationStrategy: text(\"rotation_strategy\").notNull().default(\"sharded\"), // sharded-rotation policy: legacy residue; behavior is always sharded\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspace: uniqueIndex(\"codex_rotation_settings_workspace_idx\").on(table.workspaceId),\n }),\n);\n\n// Per-workspace model/provider availability policy — the HARD blocker deciding\n// which providers/models may serve a turn in this workspace AT ALL. NULL columns\n// mean unrestricted (today's behavior for every workspace without a row). A\n// non-null allowed_providers is a strict allowlist over provider identities\n// (the same identities the model router resolves to, with the built-in\n// OpenAI/Azure client — including the legacy resolveTurnModel-null fallback —\n// mapped to one well-known id); a non-null allowed_models is an additional\n// exact-model-id allowlist. Enforced at the API model-choke points (422) and,\n// authoritatively, in the worker immediately after turn model resolution: a\n// blocked resolution NEVER reaches a model call and NEVER silently remaps.\n// This exists so a codex-subscription workspace can be fail-closed to codex —\n// a turn can wait/fail loud, but can never fall through to the paid built-in.\nexport const workspaceModelPolicies = pgTable(\n \"workspace_model_policies\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n allowedProviders: text(\"allowed_providers\").array(),\n allowedModels: text(\"allowed_models\").array(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspace: uniqueIndex(\"workspace_model_policies_workspace_idx\").on(table.workspaceId),\n }),\n);\n\n// One workspace-local short-lived holder per running Codex turn. Selection and\n// insertion happen atomically while codex_rotation_settings is locked FOR\n// UPDATE, so concurrent replicas in the SAME workspace see one another's\n// assignments before choosing. Workspaces never share or correlate lease state.\n// The turn workspace FK is declared in migration 0053 and the account/credential\n// FK is installed in migration 0381 (sessionTurns is defined later in this\n// module).\nexport const codexCredentialLeases = pgTable(\n \"codex_credential_leases\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n credentialId: uuid(\"credential_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n // Durable turn-attempt fence. The worker holder includes the\n // durable workflow turn-attempt identity; dispatchId remains a separate\n // attempt/audit identity. A successor dispatch for the same durable turn\n // replaces holderId and increments generation atomically; stale/zombie\n // heartbeats and releases must match both values. Generation may restart\n // at 1 after an expired row is reaped, so holder identity cannot be reused.\n holderId: text(\"holder_id\").notNull(),\n generation: integer(\"generation\").notNull().default(1),\n leasedUntil: timestamp(\"leased_until\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n turn: uniqueIndex(\"codex_credential_leases_workspace_turn_idx\").on(\n table.workspaceId,\n table.turnId,\n ),\n activeCredential: index(\"codex_credential_leases_active_credential_idx\").on(\n table.credentialId,\n table.leasedUntil,\n ),\n expiry: index(\"codex_credential_leases_expiry_idx\").on(table.leasedUntil),\n }),\n);\n\n// Encrypted multi-account xAI/SuperGrok credentials. Provider tokens and\n// cookies live only inside credential_encrypted; every other column is bounded\n// allocation/health metadata. User-scoped rows are created only by the\n// migration-owned lifecycle function that also creates their exact generic\n// organization_user_resource_authorities row.\nexport const xaiSubscriptionCredentials = pgTable(\n \"xai_subscription_credentials\",\n {\n allowedModelIds: text(\"allowed_model_ids\").array(),\n allowedWorkspaceIds: uuid(\"allowed_workspace_ids\").array(),\n allowPersonalWorkspaces: boolean(\"allow_personal_workspaces\").notNull().default(true),\n accessPolicyVersion: integer(\"access_policy_version\").notNull().default(1),\n accessPolicyUpdatedBy: text(\"access_policy_updated_by\"),\n accessPolicyUpdatedAt: timestamp(\"access_policy_updated_at\", { withTimezone: true }),\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\").references(() => workspaces.id, { onDelete: \"cascade\" }),\n credentialEncrypted: text(\"credential_encrypted\").notNull(),\n providerAccountId: text(\"provider_account_id\"),\n label: text(\"label\"),\n accountEmail: text(\"account_email\"),\n planType: text(\"plan_type\"),\n status: text(\"status\").notNull().default(\"active\"),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }),\n lastRefreshAt: timestamp(\"last_refresh_at\", { withTimezone: true }),\n lastError: text(\"last_error\"),\n version: integer(\"version\").notNull().default(1),\n allocatorEnabled: boolean(\"allocator_enabled\").notNull().default(true),\n allocatorVersion: integer(\"allocator_version\").notNull().default(1),\n allocatorUpdatedAt: timestamp(\"allocator_updated_at\", {\n withTimezone: true,\n }),\n quotaUsedPercent: integer(\"quota_used_percent\"),\n quotaResetAt: timestamp(\"quota_reset_at\", { withTimezone: true }),\n quotaCheckedAt: timestamp(\"quota_checked_at\", { withTimezone: true }),\n exhaustedUntil: timestamp(\"exhausted_until\", { withTimezone: true }),\n selectionCount: integer(\"selection_count\").notNull().default(0),\n lastSelectedAt: timestamp(\"last_selected_at\", { withTimezone: true }),\n authorityScope: text(\"authority_scope\").notNull().default(\"workspace\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n organizationUserResourceAuthorityId: uuid(\"organization_user_resource_authority_id\"),\n organizationUserResourceKind: text(\"organization_user_resource_kind\"),\n organizationUserResourceAuthorityGeneration: bigint(\n \"organization_user_resource_authority_generation\",\n { mode: \"number\" },\n ),\n // Connection attribution only. Ownership/execution authority comes from\n // the explicit authority tuple above and the frozen acceptance snapshot.\n connectedBySubjectId: text(\"connected_by_subject_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountIdentity: uniqueIndex(\"xai_subscription_credentials_account_identity_uq\").on(\n table.accountId,\n table.id,\n ),\n scopeWorkspaceShape: check(\n \"xai_credential_scope_workspace_shape\",\n sql`(${table.authorityScope} = 'organization') = (${table.workspaceId} is null)`,\n ),\n workspaceIdentity: uniqueIndex(\"xai_subscription_credentials_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n workspaceAccountIdentity: uniqueIndex(\n \"xai_subscription_credentials_workspace_account_id_uq\",\n ).on(table.workspaceId, table.accountId, table.id),\n providerIdentity: uniqueIndex(\"xai_subscription_credentials_provider_identity_uq\")\n .on(\n table.accountId,\n table.workspaceId,\n table.authorityScope,\n table.ownerOrganizationMembershipId,\n table.providerAccountId,\n )\n .where(sql`${table.providerAccountId} is not null`),\n workspaceStatus: index(\"xai_subscription_credentials_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n table.allocatorEnabled,\n ),\n scopeValid: check(\n \"xai_subscription_credentials_authority_scope_chk\",\n sql`${table.authorityScope} in ('workspace', 'user', 'organization')`,\n ),\n authorityShapeValid: check(\n \"xai_subscription_credentials_authority_shape_chk\",\n sql`(\n ${table.authorityScope} in ('workspace', 'organization')\n and ${table.ownerOrganizationMembershipId} is null\n and ${table.organizationUserResourceAuthorityId} is null\n and ${table.organizationUserResourceKind} is null\n and ${table.organizationUserResourceAuthorityGeneration} is null\n ) or (\n ${table.authorityScope} = 'user'\n and ${table.ownerOrganizationMembershipId} is not null\n and ${table.organizationUserResourceAuthorityId} is not null\n and ${table.organizationUserResourceKind} = 'xai_subscription'\n and ${table.organizationUserResourceAuthorityGeneration} > 0\n )`,\n ),\n statusValid: check(\n \"xai_subscription_credentials_status_chk\",\n sql`${table.status} in ('active', 'needs_relogin', 'error', 'disabled')`,\n ),\n versionValid: check(\n \"xai_subscription_credentials_version_chk\",\n sql`${table.version} > 0 and ${table.allocatorVersion} > 0`,\n ),\n quotaValid: check(\n \"xai_subscription_credentials_quota_chk\",\n sql`${table.quotaUsedPercent} is null or ${table.quotaUsedPercent} between 0 and 100`,\n ),\n }),\n);\n\n// One allocation serialization row per organization, workspace, or exact user pool.\nexport const xaiRotationSettings = pgTable(\n \"xai_rotation_settings\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\").references(() => workspaces.id, { onDelete: \"cascade\" }),\n authorityScope: text(\"authority_scope\").notNull().default(\"workspace\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n activeCredentialId: uuid(\"active_credential_id\"),\n rotationEnabled: boolean(\"rotation_enabled\").notNull().default(true),\n fairnessCursor: bigint(\"fairness_cursor\", { mode: \"number\" }).notNull().default(0),\n version: integer(\"version\").notNull().default(1),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n scopeWorkspaceShape: check(\n \"xai_rotation_scope_workspace_shape\",\n sql`(${table.authorityScope} = 'organization') = (${table.workspaceId} is null)`,\n ),\n workspacePool: uniqueIndex(\"xai_rotation_settings_workspace_pool_uq\").on(\n table.accountId,\n table.workspaceId,\n table.authorityScope,\n table.ownerOrganizationMembershipId,\n ),\n scopeValid: check(\n \"xai_rotation_settings_authority_scope_chk\",\n sql`(${table.authorityScope} in ('workspace', 'organization') and ${table.ownerOrganizationMembershipId} is null)\n or (${table.authorityScope} = 'user' and ${table.ownerOrganizationMembershipId} is not null)`,\n ),\n countersValid: check(\n \"xai_rotation_settings_counters_chk\",\n sql`${table.fairnessCursor} >= 0 and ${table.version} > 0`,\n ),\n }),\n);\n\n// Exact logical-turn lease. A replacement holder for the same turn preserves\n// the credential and advances generation; stale holders must match both.\nexport const xaiCredentialLeases = pgTable(\n \"xai_credential_leases\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n authorityScope: text(\"authority_scope\").notNull(),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n credentialId: uuid(\"credential_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n holderId: text(\"holder_id\").notNull(),\n generation: integer(\"generation\").notNull().default(1),\n leasedUntil: timestamp(\"leased_until\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceTurn: uniqueIndex(\"xai_credential_leases_workspace_turn_uq\").on(\n table.workspaceId,\n table.turnId,\n ),\n activeCredential: index(\"xai_credential_leases_active_credential_idx\").on(\n table.workspaceId,\n table.credentialId,\n table.leasedUntil,\n ),\n expiry: index(\"xai_credential_leases_expiry_idx\").on(table.leasedUntil),\n scopeValid: check(\n \"xai_credential_leases_authority_scope_chk\",\n sql`(${table.authorityScope} in ('workspace', 'organization') and ${table.ownerOrganizationMembershipId} is null)\n or (${table.authorityScope} = 'user' and ${table.ownerOrganizationMembershipId} is not null)`,\n ),\n generationValid: check(\"xai_credential_leases_generation_chk\", sql`${table.generation} > 0`),\n }),\n);\n\n// Workspace-shared channels organize root sessions (\"workstreams\") by work\n// type in the rail. Pure organizational metadata: filing a session into a\n// channel never affects execution, authority, memory, or history.\nexport const channels = pgTable(\n \"channels\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n name: text(\"name\").notNull(),\n description: text(\"description\"),\n pinned: boolean(\"pinned\").notNull().default(false),\n // Explicit user order within the pinned and unpinned project groups.\n sortOrder: integer(\"sort_order\").notNull().default(0),\n // Attribution string: 'user:<subject>' | 'session:<id>' | 'system'.\n createdBy: text(\"created_by\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n // The migration owns the case-insensitive lower(name) uniqueness.\n workspaceIdentity: uniqueIndex(\"channels_workspace_id_uq\").on(table.workspaceId, table.id),\n }),\n);\n\nexport const sessions = pgTable(\n \"sessions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n status: text(\"status\").notNull().default(\"queued\"),\n initialMessage: losslessText(\"initial_message\").notNull(),\n initialMessageCodecVersion: losslessCodecVersion(\"initial_message_codec_version\"),\n // Model-visible application context frozen with the winning create. The\n // initial turn copies it into the canonical user message so an idempotent\n // repair cannot adopt a retrying caller's different message context.\n initialModelContext: text(\"initial_model_context\"),\n title: text(\"title\"),\n titleSource: text(\"title_source\"),\n // Per-session agent persona/system instructions supplied at create (the\n // per-agent-type prompt lever for embedding hosts). NULL ⇒ the session\n // carried none, so the composed agent instructions are byte-identical to a\n // workspace-only persona (no backfill, no behavior change for existing rows).\n // Composed system-level AFTER the workspace agentInstructions; never emitted\n // as a timeline event.\n instructions: text(\"instructions\"),\n // Immutable normalized prompt-policy role. This is deliberately separate\n // from workspace membership roles and memory selectors. Existing rows keep\n // NULL and use the bounded metadata.role compatibility fallback at the\n // attempt-snapshot boundary.\n policyRole: text(\"policy_role\"),\n resources: jsonb(\"resources\").$type<unknown[]>().notNull().default([]),\n skills: jsonb(\"skills\").$type<unknown[]>().notNull().default([]),\n tools: jsonb(\"tools\").$type<unknown[]>().notNull().default([]),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n // Frozen creator fact. This is used for creation attribution and for the\n // idempotent first-turn repair only; later turns capture their own actor.\n createdByKind: text(\"created_by_kind\").notNull().default(\"service\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull().default(\"unattributed-legacy\"),\n createdByContext: jsonb(\"created_by_context\")\n .$type<Record<string, unknown>>()\n .notNull()\n .default({ backfill: true }),\n // Generic tenancy metadata is additive foundation only. Existing rows are\n // explicitly workspace-shared and have no owner membership, so absent\n // fields can never manufacture user authority.\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n ownerSubjectId: text(\"owner_subject_id\"),\n visibility: text(\"visibility\").notNull().default(\"workspace_shared\"),\n createRequestedVisibility: text(\"create_requested_visibility\")\n .notNull()\n .default(\"workspace_shared\"),\n authorityEpoch: integer(\"authority_epoch\").notNull().default(1),\n // Agent-access scope (migration 0427). Declares how far a live attempt on\n // this session may reach across the workspace and how far peers may reach\n // into it. 'workspace' is the pre-0426 behaviour; 'user' limits reach to\n // sessions carrying the same end-user label; 'session' limits it to the\n // own root tree. Enforced only in the core session-authorization seam.\n agentAccess: text(\"agent_access\").notNull().default(\"workspace\"),\n // Canonical authenticated user for the frozen cross-session agent scope.\n // Independent of per-turn initiating users and historical external labels.\n scopeSubjectId: text(\"scope_subject_id\"),\n // Opaque end-user label (both set or both null). This is a product label\n // used for scoping and filtering, never a subject and never authority.\n endUserSource: text(\"end_user_source\"),\n endUserId: text(\"end_user_id\"),\n // Typed Workspace Memory selector this session's agent reads and writes:\n // 'workspace' | 'user' (end_user:v1:<tuple hash>) | 'session' (root tree) |\n // 'off' (no Memory tools). Frozen at create like the columns above.\n memoryScope: text(\"memory_scope\").notNull().default(\"workspace\"),\n // Independent-copy provenance. A destination may use either visibility and\n // may live in another workspace in the same organization; no live process,\n // credential, grant, or delegation is represented by these facts.\n forkedFromSessionId: uuid(\"forked_from_session_id\"),\n forkedFromAuthorityEpoch: integer(\"forked_from_authority_epoch\"),\n forkedFromVisibility: text(\"forked_from_visibility\"),\n forkedAt: timestamp(\"forked_at\", { withTimezone: true }),\n forkedByOrganizationMembershipId: uuid(\"forked_by_organization_membership_id\"),\n model: text(\"model\").notNull(),\n // Immutable session-default execution policy. Follow-up composer drafts and\n // accepted turns are separate authorities and never mutate these columns.\n reasoningEffort: text(\"reasoning_effort\").notNull(),\n latencyMode: text(\"latency_mode\").notNull(),\n sandboxBackend: text(\"sandbox_backend\").notNull(),\n // The OS this session's box runs. Defaults to 'linux' (today's only OS, so\n // every existing + new row is a behavior-preserving no-op). CHECK-constrained\n // to the SandboxOs enum (linux|macos|windows) in migration 0018.\n sandboxOs: text(\"sandbox_os\").notNull().default(\"linux\"),\n // The shared-sandbox group this session's box belongs to. Defaults to the\n // session's OWN id (a singleton group: group === session — today's 1:1\n // behavior). When spawned shared via session_create, set to the PARENT's\n // sandboxGroupId so both run in ONE box. Immutable once set. NOT an FK (the\n // value is this row's id or an ancestor session's id in the same workspace;\n // the live lease row, not a sandbox_groups table, materializes the group).\n // The app generates the uuid and uses it for both id and sandbox_group_id in\n // one insert — it cannot SQL-default to id (id is defaultRandom()).\n sandboxGroupId: uuid(\"sandbox_group_id\").notNull(),\n // The first-class swappable-sandbox POINTER (bring-your-own-compute M2).\n // NULL == \"use the session's own group sandbox\" (the\n // backward-compat default — every existing/new row is a behavior-preserving\n // no-op). The routing proxy re-reads (active_sandbox_id, active_epoch) PER\n // TOOL CALL to make a Modal<->selfhosted hot-swap seamless. The FK\n // (-> sandboxes(id) ON DELETE SET NULL — a deleted sandbox degrades the\n // pointer to the group default, never dangles) lives in migration 0024, NOT a\n // Drizzle .references() — exactly like parentSessionId below, so the const\n // ordering imposes no forward-reference.\n activeSandboxId: uuid(\"active_sandbox_id\"),\n // The SECOND epoch ABOVE sandbox_leases.lease_epoch, bumped on every swap; an\n // in-flight op fenced by a stale active_epoch retries against the new active\n // sandbox. integer (NOT bigint) — the lease-epoch spike: int8 reads back as a\n // JS string and breaks the strict fence; int4 returns a number.\n activeEpoch: integer(\"active_epoch\").notNull().default(0),\n // The session's effective absolute Connected Machine root. New attaches\n // resolve an optional relative request against the persisted Hello root and\n // write the result through the epoch-fenced setActiveSandbox CAS. Legacy\n // rows may still be null/relative and are resolved at establishment.\n workingDir: text(\"working_dir\"),\n // Ordered low-to-high precedence source for public/session/runtime reads.\n // session_variable_set_attachments is the FK-backed lifecycle projection;\n // the session trigger maintains it and the legacy singular alias atomically.\n variableSetIds: jsonb(\"variable_set_ids\").$type<string[]>().notNull().default([]),\n variableSetId: uuid(\"variable_set_id\").references(() => workspaceVariableSets.id, {\n onDelete: \"set null\",\n }),\n // The rig this session rides + the exact rig version frozen at create time\n // (migration 0047). NULL ⇒ the session rides no rig (today's behavior). FKs\n // (-> rigs(id)/rig_versions(id) ON DELETE SET NULL) live in migration 0047,\n // not Drizzle .references(), because those tables are declared later in this\n // file (forward-reference pattern, same as activeSandboxId). Consumed in M3.\n rigId: uuid(\"rig_id\"),\n rigVersionId: uuid(\"rig_version_id\"),\n // Workspace channel this session is filed under (rail organization only;\n // the rail groups a tree by its ROOT session's channel). Null = unfiled\n // (inbox). ON DELETE SET NULL detaches sessions when a channel is removed.\n channelId: uuid(\"channel_id\").references(() => channels.id, {\n onDelete: \"set null\",\n }),\n // Non-default first-party MCP token permissions (manager-style sessions);\n // null means the fixed worker default set in @opengeni/runtime.\n firstPartyMcpPermissions: jsonb(\"first_party_mcp_permissions\").$type<string[]>(),\n // Exact model-visible first-party tool selection. All catalogued tools are\n // selected by default; [] intentionally selects no broad-server tools.\n firstPartyMcpTools: jsonb(\"first_party_mcp_tools\").$type<FirstPartyMcpToolName[]>().notNull(),\n // Initial-command staging only. initializeSessionStartAtomically copies\n // this immutable snapshot onto the first turn so create repair survives a\n // crash between the session insert and first-turn transaction. Runtime\n // credential authority must never read this session field.\n initialPersonalConnectionDelegations: jsonb(\"initial_personal_connection_delegations\")\n .$type<McpPersonalConnectionDelegation[]>()\n .notNull()\n .default([]),\n // Initial accepted-work staging only. The initializer consumes this inside\n // the same transaction that inserts the first logical turn and grant\n // snapshots; runtime never authorizes from the session field.\n initialPersonalResourceAttachmentIntent: jsonb(\n \"initial_personal_resource_attachment_intent\",\n ).$type<PersonalResourceAttachmentIntent>(),\n initialXaiProviderAccountAuthoritySnapshot: jsonb(\n \"initial_xai_provider_account_authority_snapshot\",\n )\n .$type<XaiProviderAccountAuthoritySnapshotV1>()\n .notNull()\n .default(WORKSPACE_XAI_PROVIDER_ACCOUNT_AUTHORITY_SNAPSHOT_V1),\n // Durable tool-policy origin. Migration 0136 removes the old null/legacy\n // representation so every session has one explicit policy mode.\n toolPolicy: jsonb(\"tool_policy\").$type<SessionToolPolicy>().notNull(),\n // Optimistic-concurrency fence for durable session tool-policy writes.\n toolPolicyVersion: integer(\"tool_policy_version\").notNull().default(1),\n // The manager session that spawned this one via session_create. Set only\n // when the creating grant carried a worker-signed sessionId claim (a session\n // spawning a worker); null for direct API creates and scheduled-task runs.\n // When set, this worker's terminal-for-now transitions wake the parent so a\n // manager can orchestrate workers without busy-polling. The migration-owned\n // self-reference uses ON DELETE CASCADE so the explicit quiescent root-tree\n // deletion lifecycle removes the complete hierarchy atomically.\n parentSessionId: uuid(\"parent_session_id\"),\n // Exact parent turn whose worker-signed attempt created this child. This is\n // private immutable authority lineage: child completion copies personal MCP\n // authority from that turn, never from whichever parent turn ran most\n // recently. Null for top-level and legacy child sessions.\n parentTurnId: uuid(\"parent_turn_id\"),\n // Workspace-scoped CREATE idempotency key. NULL means the create carried no\n // key (each such create is independent). When set, the partial unique index\n // below collapses concurrent/retried creates with the same key in the same\n // workspace to a single session row — the dedup that closes the\n // double-submit/double-dispatch stuck-queued bug.\n createIdempotencyKey: text(\"create_idempotency_key\"),\n // Immutable creation-time hierarchy and policy snapshot. These values are\n // populated by the database admission boundary and never re-derived from\n // a live workspace setting for an existing session.\n rootSessionId: uuid(\"root_session_id\").notNull(),\n nestedAgentDepth: integer(\"nested_agent_depth\").notNull(),\n maxNestedAgentDepthOverride: integer(\"max_nested_agent_depth_override\"),\n effectiveMaxNestedAgentDepth: integer(\"effective_max_nested_agent_depth\").notNull(),\n nestedAgentDepthPolicySource: text(\"nested_agent_depth_policy_source\").notNull(),\n nestedAgentDepthPolicySessionId: uuid(\"nested_agent_depth_policy_session_id\"),\n temporalWorkflowId: text(\"temporal_workflow_id\"),\n activeTurnId: uuid(\"active_turn_id\"),\n // Session-scoped out-of-turn wait (`wait_for_input`). The exact declaring\n // turn and absolute deadline are durable PostgreSQL authority; workflow\n // signals and timers only nudge reevaluation. A newer finished turn or a\n // terminal timeout input retires all four fields together.\n inputWaitTurnId: uuid(\"input_wait_turn_id\"),\n inputWaitUntil: timestamp(\"input_wait_until\", { withTimezone: true }),\n inputWaitReason: text(\"input_wait_reason\"),\n inputWaitSetAt: timestamp(\"input_wait_set_at\", { withTimezone: true }),\n // Actual input tokens reported for the latest authoritative ordinary model\n // call. Compaction/context clearing invalidates it to null; local history\n // estimates must never be stored here.\n lastInputTokens: integer(\"last_input_tokens\"),\n // Operator /compact request flag. The API sets\n // it true; the worker honors it BEFORE the next turn's model call by forcing\n // a compaction, then clears it. A durable flag (not a transient signal) so\n // the trigger survives a worker restart and converges before the next turn.\n compactRequested: boolean(\"compact_requested\").notNull().default(false),\n queueVersion: integer(\"queue_version\").notNull().default(0),\n queueHeadPosition: bigint(\"queue_head_position\", { mode: \"number\" }).notNull().default(0),\n queueTailPosition: bigint(\"queue_tail_position\", { mode: \"number\" }).notNull().default(0),\n directControlState: text(\"direct_control_state\").notNull().default(\"active\"),\n directPauseRevision: bigint(\"direct_pause_revision\", { mode: \"number\" }),\n subtreeRunOverrideRevision: bigint(\"subtree_run_override_revision\", {\n mode: \"number\",\n }),\n controlVersion: bigint(\"control_version\", { mode: \"number\" }).notNull().default(0),\n directControlReason: text(\"direct_control_reason\"),\n directControlChangedBy: text(\"direct_control_changed_by\"),\n directControlChangedAt: timestamp(\"direct_control_changed_at\", {\n withTimezone: true,\n }),\n lastSequence: integer(\"last_sequence\").notNull().default(0),\n // The session's PINNED Codex account (manual override from the in-session\n // switcher). NULL ⇒ follow the workspace active pointer. FK declared in the\n // migration with ON DELETE SET NULL (a disconnected pin degrades to \"follow\n // active\", never dangles), same pattern as activeSandboxId.\n codexPinnedCredentialId: uuid(\"codex_pinned_credential_id\"),\n // The Codex account the session's most recent turn ACTUALLY ran on — drives\n // the \"Running on:\" indicator. Written by the worker at the turn boundary. FK\n // ON DELETE SET NULL (migration).\n codexLastCredentialId: uuid(\"codex_last_credential_id\"),\n // The SOURCE of codex_pinned_credential_id (AM-2): 'manual' — the user's\n // in-session account switcher, which is SACRED and never moved by any policy —\n // or 'policy' — the sharded rotation strategy's deterministic per-session home\n // assignment, which MAY be re-sharded to another account when its own account\n // caps. NULL when there is no pin (and for every pre-existing row). CHECK\n // (manual|policy) lives in the migration; no FK (it describes the pin, not an\n // account).\n codexPinSource: text(\"codex_pin_source\"),\n // Frozen at create: remote_v2 (Codex remote compaction + Codex-only models)\n // or portable (plaintext compaction + free provider switching). Existing\n // rows backfill to portable. CHECK lives in the migration.\n codexCompactionMode: text(\"codex_compaction_mode\").notNull().default(\"portable\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n // Assigned once by the explicit transaction commit gate whenever canonical\n // updated_at activity advances. Raw delta-only writers intentionally omit\n // updated_at and therefore do not allocate revisions.\n activityRevision: bigint(\"activity_revision\", { mode: \"number\" }).notNull().default(0),\n // Transaction ownership marker between the cheap row trigger and the\n // once-per-transaction commit gate. Committed rows must always be null.\n activityRevisionPendingXid: bigint(\"activity_revision_pending_xid\", {\n mode: \"bigint\",\n }),\n },\n (table) => ({\n reasoningEffortValid: check(\n \"sessions_reasoning_effort_check\",\n sql`${table.reasoningEffort} in ('none', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max')`,\n ),\n latencyModeValid: check(\n \"sessions_latency_mode_check\",\n sql`${table.latencyMode} in ('standard', 'priority', 'fast')`,\n ),\n accountIdentity: uniqueIndex(\"sessions_id_account_idx\").on(table.id, table.accountId),\n workspaceIdentity: uniqueIndex(\"sessions_workspace_id_idx\").on(table.workspaceId, table.id),\n workspaceCreated: index(\"sessions_workspace_created_idx\").on(\n table.workspaceId,\n table.createdAt,\n ),\n // Model-facing monitoring pages use exact (timestamp,id) keysets. Keep the\n // older prefix index during rolling deploys; these composites serve both\n // deterministic traversal and updatedAfter change scans.\n workspaceCreatedId: index(\"sessions_workspace_created_id_idx\").on(\n table.workspaceId,\n table.createdAt.desc(),\n table.id.desc(),\n ),\n workspaceUpdatedId: index(\"sessions_workspace_updated_id_idx\").on(\n table.workspaceId,\n table.updatedAt.desc(),\n table.id.desc(),\n ),\n workspaceCreatorUpdatedId: index(\"sessions_workspace_creator_updated_id_idx\").on(\n table.workspaceId,\n table.createdByKind,\n table.createdBySubjectId,\n table.updatedAt.desc(),\n table.id.desc(),\n ),\n workspaceActivityRevision: index(\"sessions_workspace_activity_revision_idx\").on(\n table.workspaceId,\n table.activityRevision.desc(),\n table.updatedAt.desc(),\n table.id.desc(),\n ),\n workspaceActivityPending: index(\"sessions_workspace_activity_pending_idx\")\n .on(table.workspaceId, table.activityRevisionPendingXid, table.id)\n .where(sql`${table.activityRevisionPendingXid} is not null`),\n ownerOrganizationMembership: foreignKey({\n name: \"sessions_owner_organization_membership_fk\",\n columns: [table.ownerOrganizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n forkedFromSession: foreignKey({\n name: \"sessions_forked_from_session_account_fk\",\n columns: [table.forkedFromSessionId, table.accountId],\n foreignColumns: [table.id, table.accountId],\n }).onDelete(\"restrict\"),\n forkedByOrganizationMembership: foreignKey({\n name: \"sessions_forked_by_organization_membership_fk\",\n columns: [table.forkedByOrganizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n visibilityValid: check(\n \"sessions_visibility_check\",\n sql`${table.visibility} in ('user_private', 'workspace_shared')`,\n ),\n privateOwnerValid: check(\n \"sessions_private_owner_check\",\n sql`${table.visibility} <> 'user_private' or ${table.ownerOrganizationMembershipId} is not null`,\n ),\n authorityEpochValid: check(\"sessions_authority_epoch_check\", sql`${table.authorityEpoch} > 0`),\n forkProvenanceValid: check(\n \"sessions_fork_provenance_check\",\n sql`(\n ${table.forkedFromSessionId} is null\n and ${table.forkedFromAuthorityEpoch} is null\n and ${table.forkedFromVisibility} is null\n and ${table.forkedAt} is null\n and ${table.forkedByOrganizationMembershipId} is null\n ) or (\n ${table.forkedFromSessionId} is not null\n and ${table.forkedFromAuthorityEpoch} is not null\n and ${table.forkedFromAuthorityEpoch} > 0\n and ${table.forkedFromVisibility} in ('user_private', 'workspace_shared')\n and ${table.forkedAt} is not null\n and ${table.forkedByOrganizationMembershipId} is not null\n )`,\n ),\n variableSet: index(\"sessions_variable_set_idx\").on(table.workspaceId, table.variableSetId),\n parent: index(\"sessions_parent_idx\").on(table.workspaceId, table.parentSessionId),\n // Routing index: resolve session_id -> sandbox_group_id at every lease entry\n // point and enumerate all sessions in a group for attribution/disclosure.\n sandboxGroup: index(\"sessions_sandbox_group_idx\").on(table.workspaceId, table.sandboxGroupId),\n // Partial unique index: one session per (workspace, create_idempotency_key)\n // when a key is present. The boundary trigger reserves the cross-outcome\n // winner before this source row commits; a losing source insert is\n // suppressed and the domain layer replays the durable winner.\n createIdempotency: uniqueIndex(\"sessions_workspace_create_idempotency_idx\")\n .on(table.workspaceId, table.createIdempotencyKey)\n .where(sql`${table.createIdempotencyKey} is not null`),\n rootDepth: index(\"sessions_workspace_root_depth_idx\").on(\n table.workspaceId,\n table.rootSessionId,\n table.nestedAgentDepth,\n ),\n initialModelContextValid: check(\n \"sessions_initial_model_context_check\",\n sql`${table.initialModelContext} is null\n or opengeni_private.model_context_value_valid(${table.initialModelContext})`,\n ),\n inputWaitValid: check(\n \"sessions_input_wait_check\",\n sql`(\n ${table.inputWaitTurnId} is null\n and ${table.inputWaitUntil} is null\n and ${table.inputWaitReason} is null\n and ${table.inputWaitSetAt} is null\n ) or (\n ${table.inputWaitTurnId} is not null\n and ${table.inputWaitUntil} is not null\n and ${table.inputWaitReason} is not null\n and octet_length(btrim(${table.inputWaitReason})) between 1 and 2048\n and ${table.inputWaitSetAt} is not null\n )`,\n ),\n }),\n);\n\nexport const sessionVariableSetAttachments = pgTable(\n \"session_variable_set_attachments\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n variableSetId: uuid(\"variable_set_id\")\n .notNull()\n .references(() => workspaceVariableSets.id, { onDelete: \"cascade\" }),\n position: integer(\"position\").notNull(),\n sessionStatus: text(\"session_status\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_variable_set_attachments_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n session: foreignKey({\n name: \"session_variable_set_attachments_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n sessionPosition: uniqueIndex(\"session_variable_set_attachments_session_position_uq\").on(\n table.workspaceId,\n table.sessionId,\n table.position,\n ),\n sessionVariableSet: uniqueIndex(\"session_variable_set_attachments_session_set_uq\").on(\n table.workspaceId,\n table.sessionId,\n table.variableSetId,\n ),\n variableSetSessions: index(\"session_variable_set_attachments_set_sessions_idx\").on(\n table.variableSetId,\n table.sessionStatus,\n table.workspaceId,\n table.sessionId,\n ),\n positionValid: check(\n \"session_variable_set_attachments_position_check\",\n sql`${table.position} >= 0 and ${table.position} < 25`,\n ),\n statusValid: check(\n \"session_variable_set_attachments_status_check\",\n sql`${table.sessionStatus} in (\n 'queued', 'running', 'idle', 'requires_action', 'recovering',\n 'waiting_capacity', 'failed', 'cancelled'\n )`,\n ),\n }),\n);\n\nexport const organizationUserResourceGrants = pgTable(\n \"organization_user_resource_grants\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n authorityId: uuid(\"authority_id\").notNull(),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\"),\n action: text(\"action\").notNull(),\n mode: text(\"mode\").notNull(),\n context: text(\"context\").notNull(),\n authorityEpoch: integer(\"authority_epoch\"),\n generation: bigint(\"generation\", { mode: \"number\" }).notNull().default(1),\n status: text(\"status\").notNull().default(\"active\"),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountIdentity: uniqueIndex(\"organization_user_resource_grants_id_account_idx\").on(\n table.id,\n table.accountId,\n ),\n authorityWorkspace: index(\"organization_user_resource_grants_authority_workspace_idx\").on(\n table.authorityId,\n table.workspaceId,\n table.status,\n ),\n activeIdentity: uniqueIndex(\"organization_user_resource_grants_active_identity_uq\")\n .on(\n table.accountId,\n table.authorityId,\n table.workspaceId,\n table.action,\n table.mode,\n table.context,\n sql`coalesce(${table.sessionId}, '00000000-0000-0000-0000-000000000000'::uuid)`,\n sql`coalesce(${table.authorityEpoch}, 0)`,\n )\n .where(sql`${table.status} = 'active'`),\n authority: foreignKey({\n name: \"organization_user_resource_grants_authority_fk\",\n columns: [table.authorityId, table.accountId],\n foreignColumns: [\n organizationUserResourceAuthorities.id,\n organizationUserResourceAuthorities.accountId,\n ],\n }).onDelete(\"restrict\"),\n ownerMembership: foreignKey({\n name: \"organization_user_resource_grants_owner_membership_fk\",\n columns: [table.ownerOrganizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n authorityOwner: foreignKey({\n name: \"organization_user_resource_grants_authority_owner_fk\",\n columns: [table.authorityId, table.accountId, table.ownerOrganizationMembershipId],\n foreignColumns: [\n organizationUserResourceAuthorities.id,\n organizationUserResourceAuthorities.accountId,\n organizationUserResourceAuthorities.organizationMembershipId,\n ],\n }).onDelete(\"restrict\"),\n workspaceAccount: foreignKey({\n name: \"organization_user_resource_grants_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n sessionWorkspace: foreignKey({\n name: \"organization_user_resource_grants_session_workspace_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"restrict\"),\n actionValid: check(\n \"organization_user_resource_grants_action_check\",\n sql`${table.action} = lower(btrim(${table.action}))\n and length(${table.action}) between 1 and 64\n and ${table.action} ~ '^[a-z0-9](?:[a-z0-9._:-]*[a-z0-9])?$'`,\n ),\n modeValid: check(\n \"organization_user_resource_grants_mode_check\",\n sql`${table.mode} in ('once', 'session', 'always')`,\n ),\n contextValid: check(\n \"organization_user_resource_grants_context_check\",\n sql`${table.context} in ('user_private', 'workspace_shared')`,\n ),\n sessionFenceValid: check(\n \"organization_user_resource_grants_session_fence_check\",\n sql`(\n ${table.mode} = 'always'\n and ${table.sessionId} is null\n and ${table.authorityEpoch} is null\n ) or (\n ${table.mode} in ('once', 'session')\n and\n ${table.sessionId} is not null\n and ${table.authorityEpoch} is not null\n and ${table.authorityEpoch} > 0\n )`,\n ),\n generationValid: check(\n \"organization_user_resource_grants_generation_check\",\n sql`${table.generation} > 0`,\n ),\n statusValid: check(\n \"organization_user_resource_grants_status_check\",\n sql`${table.status} in ('active', 'consumed', 'revoked', 'expired')`,\n ),\n revocationValid: check(\n \"organization_user_resource_grants_revocation_check\",\n sql`(${table.status} = 'revoked' and ${table.revokedAt} is not null)\n or (${table.status} <> 'revoked' and ${table.revokedAt} is null)`,\n ),\n }),\n);\n\n// One temporary realtime owner for an ordinary session. Terminal rows remain\n// as lifecycle evidence; the partial unique index admits only one active owner.\nexport const sessionRealtimeModes = pgTable(\n \"session_realtime_modes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n ownerSubjectId: text(\"owner_subject_id\").notNull(),\n browserInstanceId: text(\"browser_instance_id\").notNull(),\n ownerKeyHash: text(\"owner_key_hash\").notNull(),\n model: text(\"model\").notNull(),\n state: text(\"state\").notNull().default(\"active\"),\n version: integer(\"version\").notNull().default(1),\n connectionEpoch: integer(\"connection_epoch\").notNull().default(1),\n leaseExpiresAt: timestamp(\"lease_expires_at\", {\n withTimezone: true,\n }).notNull(),\n lastHeartbeatAt: timestamp(\"last_heartbeat_at\", {\n withTimezone: true,\n }).notNull(),\n startedAt: timestamp(\"started_at\", { withTimezone: true }).notNull().defaultNow(),\n endedAt: timestamp(\"ended_at\", { withTimezone: true }),\n endReason: text(\"end_reason\"),\n // The rolling migration owns this forward reference. End commits at most\n // one canonical transcript-tail Steer and binds its audit projection here.\n contextProjectionId: uuid(\"context_projection_id\"),\n contextProjectedAt: timestamp(\"context_projected_at\", {\n withTimezone: true,\n }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_realtime_modes_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"session_realtime_modes_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n operation: uniqueIndex(\"session_realtime_modes_operation_uq\").on(\n table.workspaceId,\n table.sessionId,\n table.operationId,\n ),\n oneActive: uniqueIndex(\"session_realtime_modes_one_active_uq\")\n .on(table.workspaceId, table.sessionId)\n .where(sql`${table.state} = 'active'`),\n activeLease: index(\"session_realtime_modes_active_lease_idx\")\n .on(table.leaseExpiresAt, table.workspaceId, table.sessionId)\n .where(sql`${table.state} = 'active'`),\n stateValid: check(\n \"session_realtime_modes_state_check\",\n sql`${table.state} in ('active', 'ended')`,\n ),\n modelValid: check(\n \"session_realtime_modes_model_check\",\n sql`${table.model} in (\n 'gpt-live-1-boulder-alpha',\n 'supergrok/grok-voice-think-fast-2.0',\n 'opengeni-gateway/openai/gpt-realtime-2.1',\n 'opengeni-gateway/openai/gpt-realtime-mini',\n 'opengeni-gateway/xai/grok-voice-think-fast-2.0',\n 'workspace-gateway/openai/gpt-realtime-2.1',\n 'workspace-gateway/openai/gpt-realtime-mini',\n 'workspace-gateway/xai/grok-voice-think-fast-2.0'\n )`,\n ),\n endReasonValid: check(\n \"session_realtime_modes_end_reason_check\",\n sql`${table.endReason} is null or ${table.endReason} in ('user_stop', 'browser_unload', 'lease_expired', 'authority_revoked')`,\n ),\n versionValid: check(\"session_realtime_modes_version_check\", sql`${table.version} >= 1`),\n epochValid: check(\"session_realtime_modes_epoch_check\", sql`${table.connectionEpoch} >= 1`),\n ownerSubjectValid: check(\n \"session_realtime_modes_owner_subject_check\",\n sql`octet_length(${table.ownerSubjectId}) between 1 and 1024`,\n ),\n browserInstanceValid: check(\n \"session_realtime_modes_browser_instance_check\",\n sql`octet_length(${table.browserInstanceId}) between 1 and 256`,\n ),\n ownerKeyHashValid: check(\n \"session_realtime_modes_owner_key_hash_check\",\n sql`${table.ownerKeyHash} ~ '^[0-9a-f]{64}$'`,\n ),\n leaseValid: check(\n \"session_realtime_modes_lease_check\",\n sql`${table.leaseExpiresAt} > ${table.lastHeartbeatAt}`,\n ),\n terminalValid: check(\n \"session_realtime_modes_terminal_check\",\n sql`(${table.state} = 'active' and ${table.endedAt} is null and ${table.endReason} is null)\n or (${table.state} = 'ended' and ${table.endedAt} is not null and ${table.endReason} is not null)`,\n ),\n }),\n);\n\nexport const sessionRealtimeConnections = pgTable(\n \"session_realtime_connections\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n realtimeId: uuid(\"realtime_id\")\n .notNull()\n .references(() => sessionRealtimeModes.id, { onDelete: \"cascade\" }),\n operationId: uuid(\"operation_id\").notNull(),\n connectionEpoch: integer(\"connection_epoch\").notNull(),\n startupFenceSequence: integer(\"startup_fence_sequence\").notNull().default(0),\n promotionMode: text(\"promotion_mode\").notNull().default(\"legacy\"),\n state: text(\"state\").notNull().default(\"negotiating\"),\n sdpAnswer: text(\"sdp_answer\"),\n failureCode: text(\"failure_code\"),\n providerSessionId: text(\"provider_session_id\"),\n startupEventId: text(\"startup_event_id\"),\n startupAcknowledgedAt: timestamp(\"startup_acknowledged_at\", {\n withTimezone: true,\n }),\n negotiatedAt: timestamp(\"negotiated_at\", { withTimezone: true }),\n closedAt: timestamp(\"closed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_realtime_connections_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"session_realtime_connections_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n operation: uniqueIndex(\"session_realtime_connections_operation_uq\").on(\n table.realtimeId,\n table.operationId,\n ),\n epoch: uniqueIndex(\"session_realtime_connections_epoch_uq\").on(\n table.realtimeId,\n table.connectionEpoch,\n ),\n oneActive: uniqueIndex(\"session_realtime_connections_one_active_uq\")\n .on(table.realtimeId)\n .where(\n sql`(${table.promotionMode} = 'legacy' and ${table.state} in ('negotiating', 'ready', 'active'))\n or (${table.promotionMode} = 'staged' and ${table.state} = 'active')`,\n ),\n onePreparing: uniqueIndex(\"session_realtime_connections_one_preparing_uq\")\n .on(table.realtimeId)\n .where(\n sql`(${table.promotionMode} = 'legacy' and ${table.state} in ('negotiating', 'ready', 'active'))\n or (${table.promotionMode} = 'staged' and ${table.state} in ('negotiating', 'ready'))`,\n ),\n epochValid: check(\n \"session_realtime_connections_epoch_check\",\n sql`${table.connectionEpoch} >= 1`,\n ),\n startupFenceValid: check(\n \"session_realtime_connections_startup_fence_check\",\n sql`${table.startupFenceSequence} >= 0`,\n ),\n promotionModeValid: check(\n \"session_realtime_connections_promotion_mode_check\",\n sql`${table.promotionMode} in ('legacy', 'staged')`,\n ),\n stateValid: check(\n \"session_realtime_connections_state_check\",\n sql`${table.state} in ('negotiating', 'ready', 'active', 'failed', 'closed')`,\n ),\n sdpValid: check(\n \"session_realtime_connections_sdp_check\",\n sql`${table.sdpAnswer} is null or octet_length(${table.sdpAnswer}) between 1 and 1048576`,\n ),\n failureValid: check(\n \"session_realtime_connections_failure_check\",\n sql`${table.failureCode} is null or octet_length(${table.failureCode}) between 1 and 128`,\n ),\n providerSessionValid: check(\n \"session_realtime_connections_provider_session_check\",\n sql`${table.providerSessionId} is null or octet_length(${table.providerSessionId}) between 1 and 1024`,\n ),\n startupEventValid: check(\n \"session_realtime_connections_startup_event_check\",\n sql`${table.startupEventId} is null or octet_length(${table.startupEventId}) between 1 and 1024`,\n ),\n startupAckValid: check(\n \"session_realtime_connections_startup_ack_check\",\n sql`(${table.startupAcknowledgedAt} is null and ${table.providerSessionId} is null and ${table.startupEventId} is null)\n or (${table.startupAcknowledgedAt} is not null and ${table.providerSessionId} is not null)`,\n ),\n terminalValid: check(\n \"session_realtime_connections_terminal_check\",\n sql`(${table.state} = 'negotiating' and ${table.sdpAnswer} is null and ${table.failureCode} is null and ${table.negotiatedAt} is null and ${table.closedAt} is null)\n or (${table.state} = 'ready' and ${table.sdpAnswer} is not null and ${table.failureCode} is null and ${table.negotiatedAt} is not null and ${table.closedAt} is null)\n or (${table.state} = 'active' and ${table.sdpAnswer} is not null and ${table.failureCode} is null and ${table.negotiatedAt} is not null and ${table.closedAt} is null)\n or (${table.state} = 'failed' and ${table.sdpAnswer} is null and ${table.failureCode} is not null and ${table.closedAt} is not null)\n or (${table.state} = 'closed' and ${table.closedAt} is not null)`,\n ),\n }),\n);\n\nexport const sessionRealtimeEntries = pgTable(\n \"session_realtime_entries\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n realtimeId: uuid(\"realtime_id\")\n .notNull()\n .references(() => sessionRealtimeModes.id, { onDelete: \"cascade\" }),\n operationId: uuid(\"operation_id\").notNull(),\n connectionEpoch: integer(\"connection_epoch\").notNull(),\n sequence: integer(\"sequence\").notNull(),\n direction: text(\"direction\").notNull(),\n kind: text(\"kind\").notNull(),\n role: text(\"role\"),\n providerEventId: text(\"provider_event_id\"),\n delegationItemId: text(\"delegation_item_id\"),\n // The referenced tables are declared later in this schema module; the\n // rolling migration owns all three ON DELETE SET NULL foreign keys.\n sourceUpdateId: uuid(\"source_update_id\"),\n historyItemId: uuid(\"history_item_id\"),\n // The rolling migration owns this ON DELETE SET NULL foreign key because\n // sessionTurns is declared later in this schema module. A non-null value\n // links the accepted provider call and its one terminal outbound\n // result/error to the same ordinary turn. It never denotes a child/fork\n // session.\n turnId: uuid(\"turn_id\"),\n text: losslessText(\"text\"),\n textCodecVersion: losslessCodecVersion(\"text_codec_version\"),\n payload: losslessJsonb(\"payload\").$type<Record<string, unknown>>().notNull().default({}),\n payloadCodecVersion: losslessCodecVersion(\"payload_codec_version\"),\n // Application context for an exact provider-in delegation or finalized\n // transcript. It is materialized as ordinary user-role message content.\n modelContext: text(\"model_context\"),\n clientAckedAt: timestamp(\"client_acked_at\", { withTimezone: true }),\n providerAckedAt: timestamp(\"provider_acked_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_realtime_entries_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"session_realtime_entries_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n operation: uniqueIndex(\"session_realtime_entries_operation_uq\").on(\n table.realtimeId,\n table.operationId,\n ),\n sequence: uniqueIndex(\"session_realtime_entries_sequence_uq\").on(\n table.realtimeId,\n table.sequence,\n ),\n sourceUpdate: uniqueIndex(\"session_realtime_entries_source_update_uq\")\n .on(table.realtimeId, table.sourceUpdateId)\n .where(sql`${table.sourceUpdateId} is not null`),\n delegationTurn: uniqueIndex(\"session_realtime_entries_delegation_turn_uq\")\n .on(table.turnId)\n .where(sql`${table.kind} = 'delegation_call' and ${table.turnId} is not null`),\n delegationTerminal: uniqueIndex(\"session_realtime_entries_delegation_terminal_uq\")\n .on(table.turnId)\n .where(\n sql`${table.direction} = 'provider_out' and ${table.kind} in ('delegation_result', 'error') and ${table.turnId} is not null`,\n ),\n delegationCall: uniqueIndex(\"session_realtime_entries_delegation_call_uq\")\n .on(table.realtimeId, table.delegationItemId)\n .where(sql`${table.kind} = 'delegation_call' and ${table.delegationItemId} is not null`),\n outboundPending: index(\"session_realtime_entries_outbound_pending_idx\")\n .on(table.realtimeId, table.sequence)\n .where(sql`${table.direction} = 'provider_out' and ${table.providerAckedAt} is null`),\n epochValid: check(\"session_realtime_entries_epoch_check\", sql`${table.connectionEpoch} >= 1`),\n sequenceValid: check(\"session_realtime_entries_sequence_check\", sql`${table.sequence} >= 1`),\n directionValid: check(\n \"session_realtime_entries_direction_check\",\n sql`${table.direction} in ('provider_in', 'provider_out')`,\n ),\n kindValid: check(\n \"session_realtime_entries_kind_check\",\n sql`${table.kind} in ('user_transcript', 'assistant_transcript', 'delegation_call', 'delegation_progress', 'delegation_result', 'interruption', 'session_update', 'error')`,\n ),\n roleValid: check(\n \"session_realtime_entries_role_check\",\n sql`${table.role} is null or ${table.role} in ('user', 'assistant')`,\n ),\n providerEventValid: check(\n \"session_realtime_entries_provider_event_check\",\n sql`${table.providerEventId} is null or octet_length(${table.providerEventId}) between 1 and 1024`,\n ),\n delegationItemValid: check(\n \"session_realtime_entries_delegation_item_check\",\n sql`${table.delegationItemId} is null or octet_length(${table.delegationItemId}) between 1 and 1024`,\n ),\n turnValid: check(\n \"session_realtime_entries_turn_check\",\n sql`${table.turnId} is null\n or (${table.kind} = 'delegation_call' and ${table.direction} = 'provider_in')\n or (${table.kind} in ('delegation_progress', 'delegation_result', 'error') and ${table.direction} = 'provider_out')`,\n ),\n transcriptValid: check(\n \"session_realtime_entries_transcript_check\",\n sql`(${table.kind} = 'user_transcript' and ${table.role} = 'user' and ${table.text} is not null)\n or (${table.kind} = 'assistant_transcript' and ${table.role} = 'assistant' and ${table.text} is not null)\n or (${table.kind} not in ('user_transcript', 'assistant_transcript') and ${table.role} is null)`,\n ),\n modelContextValid: check(\n \"session_realtime_entries_model_context_check\",\n sql`${table.modelContext} is null\n or (\n ${table.direction} = 'provider_in'\n and ${table.kind} in ('delegation_call', 'user_transcript', 'assistant_transcript')\n and opengeni_private.model_context_value_valid(${table.modelContext})\n )`,\n ),\n }),\n);\n\n// A denied session create is durable evidence, not a mutable session/resource\n// artifact. It has its own workspace-scoped idempotency key so retries replay\n// the same denial without creating a session or billing/run rows.\nexport const sessionSpawnDenials = pgTable(\n \"session_spawn_denials\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n parentSessionId: uuid(\"parent_session_id\"),\n rootSessionId: uuid(\"root_session_id\"),\n currentDepth: integer(\"current_depth\").notNull(),\n attemptedDepth: bigint(\"attempted_depth\", { mode: \"number\" }).notNull(),\n effectiveMaxNestedAgentDepth: integer(\"effective_max_nested_agent_depth\").notNull(),\n requestedMaxNestedAgentDepthOverride: integer(\"requested_max_nested_agent_depth_override\"),\n policySource: text(\"policy_source\").notNull(),\n policySessionId: uuid(\"policy_session_id\"),\n subjectId: text(\"subject_id\"),\n code: text(\"code\").notNull(),\n idempotencyKey: text(\"idempotency_key\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"session_spawn_denials_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n workspaceCreated: index(\"session_spawn_denials_workspace_created_idx\").on(\n table.workspaceId,\n table.createdAt,\n ),\n parent: index(\"session_spawn_denials_parent_idx\").on(\n table.workspaceId,\n table.parentSessionId,\n table.createdAt,\n ),\n idempotency: uniqueIndex(\"session_spawn_denials_workspace_idempotency_idx\")\n .on(table.workspaceId, table.idempotencyKey)\n .where(sql`${table.idempotencyKey} is not null`),\n workspaceAccount: foreignKey({\n name: \"session_spawn_denials_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n }),\n);\n\n// Per-authenticated-subject session organization and follow-up state. This is\n// deliberately a relation instead of session columns: one member's pin,\n// acknowledgment, or actively-working label must never affect another member,\n// and a session's own activity timestamps must remain agent/runtime truth.\n// `subjectId` is the trusted AccessGrant\n// subject, which is text because configured/delegated principals are not always\n// UUIDs. The account/workspace pair carries the standard forced-RLS boundary.\nexport const sessionPins = pgTable(\n \"session_pins\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n subjectId: text(\"subject_id\").notNull(),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n // Keep an unpinned tombstone (pinned=false, pinned_at=null) rather than\n // deleting it. That preserves a monotonic version and prevents an ABA race:\n // a stale client that saw pin version 1 cannot silently overwrite a later\n // unpin+re-pin that would otherwise recreate version 1.\n pinned: boolean(\"pinned\").notNull().default(true),\n pinnedAt: timestamp(\"pinned_at\", { withTimezone: true }).defaultNow(),\n version: integer(\"version\").notNull().default(1),\n // A session is unread for this subject whenever its durable event sequence\n // has advanced beyond this explicit acknowledgment fence. Merely opening a\n // route never changes the fence.\n acknowledgedSequence: integer(\"acknowledged_sequence\").notNull().default(0),\n activelyWorking: boolean(\"actively_working\").notNull().default(false),\n attentionVersion: integer(\"attention_version\").notNull().default(0),\n archived: boolean(\"archived\").notNull().default(false),\n archivedAt: timestamp(\"archived_at\", { withTimezone: true }),\n archiveVersion: integer(\"archive_version\").notNull().default(0),\n },\n (table) => ({\n subjectNonempty: check(\n \"session_pins_subject_nonempty\",\n sql`length(btrim(${table.subjectId})) > 0`,\n ),\n versionNonnegative: check(\"session_pins_version_nonnegative\", sql`${table.version} >= 0`),\n acknowledgedSequenceFloor: check(\n \"session_pins_acknowledged_sequence_floor\",\n sql`${table.acknowledgedSequence} >= -1`,\n ),\n attentionVersionNonnegative: check(\n \"session_pins_attention_version_nonnegative\",\n sql`${table.attentionVersion} >= 0`,\n ),\n archiveVersionNonnegative: check(\n \"session_pins_archive_version_nonnegative\",\n sql`${table.archiveVersion} >= 0`,\n ),\n archiveStateConsistent: check(\n \"session_pins_archive_state_consistent\",\n sql`((${table.archived}) and (${table.archivedAt}) is not null) or ((not ${table.archived}) and (${table.archivedAt}) is null)`,\n ),\n stateConsistent: check(\n \"session_pins_state_consistent\",\n sql`((${table.pinned}) and (${table.pinnedAt}) is not null) or ((not ${table.pinned}) and (${table.pinnedAt}) is null)`,\n ),\n workspaceAccount: foreignKey({\n name: \"session_pins_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"session_pins_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n subjectSession: uniqueIndex(\"session_pins_subject_workspace_session_idx\").on(\n table.subjectId,\n table.workspaceId,\n table.sessionId,\n ),\n subjectPinned: index(\"session_pins_workspace_subject_pinned_idx\").on(\n table.workspaceId,\n table.subjectId,\n table.pinned,\n table.pinnedAt.desc(),\n table.sessionId.desc(),\n ),\n subjectArchived: index(\"session_pins_workspace_subject_archived_idx\").on(\n table.workspaceId,\n table.subjectId,\n table.archived,\n table.archivedAt.desc(),\n table.sessionId.desc(),\n ),\n }),\n);\n\n// Rolling-compatibility storage for pre-keyset session-list cursors. New page\n// one reads freeze the committed workspace activity revision in an opaque\n// updated_at/id keyset and create no row here. Old API replicas and cursors may\n// retain an already-ordered id array for its short TTL, so current replicas keep\n// reading, visibility-stripping, member-cleaning, and reaping those rows until\n// the compatibility table is retired by a later migration.\nexport const sessionListSnapshots = pgTable(\n \"session_list_snapshots\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n parentSessionFilter: text(\"parent_session_filter\").notNull().default(\"all\"),\n search: text(\"search\"),\n archiveMode: text(\"archive_mode\").$type<\"active\" | \"archived\">().notNull().default(\"active\"),\n ordinarySessionIds: uuid(\"ordinary_session_ids\")\n .array()\n .notNull()\n .default(sql`'{}'::uuid[]`),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_list_snapshots_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n subjectNonempty: check(\n \"session_list_snapshots_subject_nonempty\",\n sql`length(btrim(${table.subjectId})) > 0`,\n ),\n parentFilterValid: check(\n \"session_list_snapshots_parent_filter_valid\",\n sql`${table.parentSessionFilter} = 'all' or ${table.parentSessionFilter} = 'null' or ${table.parentSessionFilter} ~ '^[0-9a-fA-F-]{36}$'`,\n ),\n searchLength: check(\n \"session_list_snapshots_search_length\",\n sql`${table.search} is null or length(${table.search}) <= 200`,\n ),\n archiveModeValid: check(\n \"session_list_snapshots_archive_mode_valid\",\n sql`${table.archiveMode} in ('active', 'archived')`,\n ),\n workspaceExpiry: index(\"session_list_snapshots_workspace_expiry_idx\").on(\n table.workspaceId,\n table.subjectId,\n table.expiresAt,\n ),\n expiryReaper: index(\"session_list_snapshots_expiry_reaper_idx\").on(table.expiresAt, table.id),\n }),\n);\n\nexport const sessionMcpServers = pgTable(\n \"session_mcp_servers\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n serverId: text(\"server_id\").notNull(),\n name: text(\"name\"),\n url: text(\"url\").notNull(),\n allowedTools: jsonb(\"allowed_tools\").$type<string[]>(),\n timeoutMs: integer(\"timeout_ms\"),\n cacheToolsList: boolean(\"cache_tools_list\").notNull().default(false),\n // Human-approval policy: `true` = every tool requires approval, a string[] of\n // UNPREFIXED tool names = only those require it, null/absent = auto-run.\n requireApproval: jsonb(\"require_approval\").$type<boolean | string[]>(),\n // Non-secret pointer resolved at request time by the standalone broker or\n // an embedding host. Unlike headersEncrypted, this is safe to project.\n connectionRef: jsonb(\"connection_ref\").$type<McpServerConnectionRef>(),\n // Map of header name -> AES-GCM ciphertext. Values are decrypted only by the\n // worker's run-preparation path and never returned by API helpers.\n headersEncrypted: jsonb(\"headers_encrypted\")\n .$type<Record<string, string>>()\n .notNull()\n .default({}),\n credentialVersion: integer(\"credential_version\").notNull().default(1),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n sessionServer: uniqueIndex(\"session_mcp_servers_session_server_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.serverId,\n ),\n session: index(\"session_mcp_servers_session_idx\").on(table.workspaceId, table.sessionId),\n }),\n);\n\nexport const files = pgTable(\n \"files\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n status: text(\"status\").notNull().default(\"pending_upload\"),\n filename: text(\"filename\").notNull(),\n safeFilename: text(\"safe_filename\").notNull(),\n contentType: text(\"content_type\").notNull(),\n sizeBytes: bigint(\"size_bytes\", { mode: \"number\" }).notNull(),\n sha256: text(\"sha256\"),\n bucket: text(\"bucket\").notNull(),\n objectKey: text(\"object_key\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceCreated: index(\"files_workspace_created_idx\").on(table.workspaceId, table.createdAt),\n objectKey: uniqueIndex(\"files_object_key_idx\").on(table.objectKey),\n scopeIdentity: uniqueIndex(\"files_scope_id_uq\").on(\n table.accountId,\n table.workspaceId,\n table.id,\n ),\n status: index(\"files_status_idx\").on(table.status),\n }),\n);\n\nexport const fileUploads = pgTable(\n \"file_uploads\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n fileId: uuid(\"file_id\")\n .notNull()\n .references(() => files.id, { onDelete: \"cascade\" }),\n status: text(\"status\").notNull().default(\"pending\"),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspace: index(\"file_uploads_workspace_idx\").on(table.workspaceId),\n fileId: index(\"file_uploads_file_id_idx\").on(table.fileId),\n status: index(\"file_uploads_status_idx\").on(table.status),\n }),\n);\n\n/** Permanent generated-image correlation; canonical bytes stay in `files`. */\nexport const generatedImageArtifacts = pgTable(\n \"generated_image_artifacts\",\n {\n artifactId: uuid(\"artifact_id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\").references(() => sessions.id, {\n onDelete: \"set null\",\n }),\n // Turn/attempt foreign keys are installed by the migration; those tables\n // are declared later in this monolithic schema module.\n turnId: uuid(\"turn_id\"),\n attemptId: uuid(\"attempt_id\"),\n uploadId: uuid(\"upload_id\").references(() => fileUploads.id, {\n onDelete: \"set null\",\n }),\n settlementKey: text(\"settlement_key\").notNull(),\n toolCallId: text(\"tool_call_id\").notNull(),\n sourceStrategy: text(\"source_strategy\").$type<\"native_hosted\" | \"provider_adapter\">().notNull(),\n providerId: text(\"provider_id\").notNull(),\n providerBindingHash: text(\"provider_binding_hash\").notNull(),\n providerItemId: text(\"provider_item_id\"),\n status: text(\"status\").$type<\"pending\" | \"ready\">().notNull().default(\"pending\"),\n mediaType: text(\"media_type\").notNull(),\n sizeBytes: bigint(\"size_bytes\", { mode: \"number\" }).notNull(),\n sha256: text(\"sha256\").notNull(),\n width: integer(\"width\").notNull(),\n height: integer(\"height\").notNull(),\n sandboxPath: text(\"sandbox_path\").notNull(),\n readyAt: timestamp(\"ready_at\", { withTimezone: true }),\n lastError: text(\"last_error\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n settlementKey: uniqueIndex(\"generated_image_artifacts_settlement_key_uq\").on(\n table.workspaceId,\n table.settlementKey,\n ),\n sessionCreated: index(\"generated_image_artifacts_session_created_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.createdAt,\n table.artifactId,\n ),\n providerItem: uniqueIndex(\"generated_image_artifacts_provider_item_uq\")\n .on(table.workspaceId, table.providerId, table.providerBindingHash, table.providerItemId)\n .where(sql`${table.providerItemId} is not null`),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"generated_image_artifacts_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n workspaceFile: foreignKey({\n columns: [table.workspaceId, table.artifactId],\n foreignColumns: [files.workspaceId, files.id],\n name: \"generated_image_artifacts_workspace_file_fk\",\n }).onDelete(\"cascade\"),\n sourceStrategyValid: check(\n \"generated_image_artifacts_source_strategy_chk\",\n sql`${table.sourceStrategy} in ('native_hosted', 'provider_adapter')`,\n ),\n sourceShapeValid: check(\n \"generated_image_artifacts_source_shape_chk\",\n sql`(${table.sourceStrategy} = 'native_hosted' and ${table.providerItemId} is not null)\n or (${table.sourceStrategy} = 'provider_adapter' and ${table.providerItemId} is null)`,\n ),\n statusValid: check(\n \"generated_image_artifacts_status_chk\",\n sql`${table.status} in ('pending', 'ready')`,\n ),\n readyShapeValid: check(\n \"generated_image_artifacts_ready_shape_chk\",\n sql`(${table.status} = 'ready') = (${table.readyAt} is not null)`,\n ),\n mediaTypeValid: check(\n \"generated_image_artifacts_media_type_chk\",\n sql`${table.mediaType} in ('image/png', 'image/jpeg', 'image/webp')`,\n ),\n sizeValid: check(\n \"generated_image_artifacts_size_chk\",\n sql`${table.sizeBytes} > 0 and ${table.sizeBytes} <= 67108864`,\n ),\n sha256Valid: check(\n \"generated_image_artifacts_sha256_chk\",\n sql`${table.sha256} ~ '^[0-9a-f]{64}$'`,\n ),\n bindingHashValid: check(\n \"generated_image_artifacts_binding_hash_chk\",\n sql`${table.providerBindingHash} ~ '^[0-9a-f]{64}$'`,\n ),\n identityBoundsValid: check(\n \"generated_image_artifacts_identity_bounds_chk\",\n sql`${table.settlementKey} ~ '^[0-9a-f]{64}$'\n and octet_length(${table.toolCallId}) between 1 and 512\n and octet_length(${table.providerId}) between 1 and 128\n and (${table.providerItemId} is null or octet_length(${table.providerItemId}) between 1 and 512)\n and (${table.lastError} is null or octet_length(${table.lastError}) <= 16384)`,\n ),\n dimensionsValid: check(\n \"generated_image_artifacts_dimensions_chk\",\n sql`${table.width} between 1 and 16384 and ${table.height} between 1 and 16384 and (${table.width}::bigint * ${table.height}::bigint) <= 67108864`,\n ),\n sandboxPathValid: check(\n \"generated_image_artifacts_sandbox_path_chk\",\n sql`${table.sandboxPath} ~ '^/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)$'`,\n ),\n }),\n);\n\n/** Paid non-native generation admission; prevents ambiguous automatic replay. */\nexport const imageGenerationOperations = pgTable(\n \"image_generation_operations\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\").references(() => sessions.id, {\n onDelete: \"cascade\",\n }),\n turnId: uuid(\"turn_id\"),\n attemptId: uuid(\"attempt_id\"),\n operationKey: text(\"operation_key\").notNull(),\n toolCallId: text(\"tool_call_id\").notNull(),\n providerId: text(\"provider_id\").notNull(),\n providerBindingHash: text(\"provider_binding_hash\").notNull(),\n modelId: text(\"model_id\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n expectedArtifactId: uuid(\"expected_artifact_id\").notNull(),\n status: text(\"status\")\n .$type<\n \"prepared\" | \"provider_started\" | \"completed\" | \"outcome_unknown\" | \"retention_failed\"\n >()\n .notNull()\n .default(\"prepared\"),\n providerStartedAt: timestamp(\"provider_started_at\", { withTimezone: true }),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n lastError: text(\"last_error\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operationKey: uniqueIndex(\"image_generation_operations_operation_key_uq\").on(\n table.workspaceId,\n table.operationKey,\n ),\n sessionCreated: index(\"image_generation_operations_session_created_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.createdAt,\n table.id,\n ),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"image_generation_operations_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n statusValid: check(\n \"image_generation_operations_status_chk\",\n sql`${table.status} in ('prepared', 'provider_started', 'completed', 'outcome_unknown', 'retention_failed')`,\n ),\n digestValid: check(\n \"image_generation_operations_digest_chk\",\n sql`${table.operationKey} ~ '^[0-9a-f]{64}$'\n and ${table.providerBindingHash} ~ '^[0-9a-f]{64}$'\n and ${table.requestDigest} ~ '^[0-9a-f]{64}$'`,\n ),\n identityBoundsValid: check(\n \"image_generation_operations_identity_bounds_chk\",\n sql`octet_length(${table.toolCallId}) between 1 and 512\n and octet_length(${table.providerId}) between 1 and 128\n and octet_length(${table.modelId}) between 1 and 256\n and (${table.lastError} is null or octet_length(${table.lastError}) <= 16384)`,\n ),\n stateValid: check(\n \"image_generation_operations_state_chk\",\n sql`(${table.status} = 'prepared' and ${table.providerStartedAt} is null and ${table.completedAt} is null)\n or (${table.status} in ('provider_started', 'outcome_unknown', 'retention_failed') and ${table.providerStartedAt} is not null and ${table.completedAt} is null)\n or (${table.status} = 'completed' and ${table.providerStartedAt} is not null and ${table.completedAt} is not null)`,\n ),\n }),\n);\n\n/** Workspace policy for provider-neutral video generation. Disabled by default. */\nexport const workspaceVideoGenerationPolicies = pgTable(\n \"workspace_video_generation_policies\",\n {\n workspaceId: uuid(\"workspace_id\")\n .primaryKey()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull().default(0),\n fundingSource: text(\"funding_source\").notNull().default(\"workspace_gateway\"),\n enabledModelIds: jsonb(\"enabled_model_ids\").$type<string[]>().notNull().default([]),\n defaultModelId: text(\"default_model_id\"),\n updatedBySubjectId: text(\"updated_by_subject_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"workspace_video_generation_policies_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n revisionValid: check(\n \"workspace_video_generation_policies_revision_chk\",\n sql`${table.revision} between 0 and 9007199254740991`,\n ),\n modelsValid: check(\n \"workspace_video_generation_policies_models_chk\",\n sql`jsonb_typeof(${table.enabledModelIds}) = 'array'\n and jsonb_array_length(${table.enabledModelIds}) <= 16\n and (${table.defaultModelId} is null or ${table.enabledModelIds} ? ${table.defaultModelId})`,\n ),\n fundingSourceValid: check(\n \"workspace_video_generation_policies_funding_source_chk\",\n sql`${table.fundingSource} in ('opengeni_credits', 'workspace_gateway', 'supergrok_subscription')`,\n ),\n }),\n);\n\n/** Exact pending/ready accounting for permanent generated-video files. */\nexport const workspaceVideoGenerationQuotas = pgTable(\n \"workspace_video_generation_quotas\",\n {\n workspaceId: uuid(\"workspace_id\")\n .primaryKey()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n reservedBytes: bigint(\"reserved_bytes\", { mode: \"number\" }).notNull().default(0),\n readyBytes: bigint(\"ready_bytes\", { mode: \"number\" }).notNull().default(0),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"workspace_video_generation_quotas_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n nonnegative: check(\n \"workspace_video_generation_quotas_nonnegative_chk\",\n sql`${table.reservedBytes} >= 0 and ${table.readyBytes} >= 0`,\n ),\n }),\n);\n\n/**\n * Paid asynchronous provider operation. This aggregate owns recovery; the\n * originating session is nullable provenance and never owns its lifecycle.\n */\nexport const videoGenerationOperations = pgTable(\n \"video_generation_operations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\").references(() => sessions.id, {\n onDelete: \"set null\",\n }),\n turnId: uuid(\"turn_id\"),\n attemptId: uuid(\"attempt_id\"),\n toolCallId: text(\"tool_call_id\").notNull(),\n admissionKey: text(\"admission_key\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n promptDigest: text(\"prompt_digest\").notNull(),\n requestEncrypted: text(\"request_encrypted\"),\n modelId: text(\"model_id\").notNull(),\n sourceMode: text(\"source_mode\").notNull(),\n capabilityRevision: text(\"capability_revision\").notNull(),\n fundingSource: text(\"funding_source\").notNull().default(\"workspace_gateway\"),\n pricedCostMicros: bigint(\"priced_cost_micros\", { mode: \"number\" }).notNull().default(0),\n creditState: text(\"credit_state\").notNull().default(\"not_applicable\"),\n connectionId: uuid(\"connection_id\"),\n credentialVersion: integer(\"credential_version\").notNull(),\n credentialEncrypted: text(\"credential_encrypted\"),\n providerIdempotencyKey: text(\"provider_idempotency_key\").notNull(),\n providerJobId: text(\"provider_job_id\"),\n /** Exact provider start body, encrypted before the first network byte. */\n providerRequestEncrypted: text(\"provider_request_encrypted\"),\n /** Bearer URLs inside the frozen body are unusable after this instant. */\n providerRequestExpiresAt: timestamp(\"provider_request_expires_at\", {\n withTimezone: true,\n }),\n expectedArtifactId: uuid(\"expected_artifact_id\").notNull(),\n expectedFileId: uuid(\"expected_file_id\").notNull(),\n reservedBytes: bigint(\"reserved_bytes\", { mode: \"number\" }).notNull(),\n quotaState: text(\"quota_state\").notNull().default(\"reserved\"),\n status: text(\"status\").notNull().default(\"preparing\"),\n admissionOutputState: text(\"admission_output_state\").notNull().default(\"pending\"),\n terminalUpdateState: text(\"terminal_update_state\").notNull().default(\"ineligible\"),\n terminalUpdateId: uuid(\"terminal_update_id\"),\n reconcileRevision: bigint(\"reconcile_revision\", { mode: \"number\" }).notNull().default(0),\n reconcileLeaseOwner: text(\"reconcile_lease_owner\"),\n reconcileLeaseExpiresAt: timestamp(\"reconcile_lease_expires_at\", {\n withTimezone: true,\n }),\n nextReconcileAt: timestamp(\"next_reconcile_at\", { withTimezone: true }),\n providerRequestSentAt: timestamp(\"provider_request_sent_at\", {\n withTimezone: true,\n }),\n providerStartedAt: timestamp(\"provider_started_at\", { withTimezone: true }),\n recoveryDeadlineAt: timestamp(\"recovery_deadline_at\", {\n withTimezone: true,\n }).notNull(),\n terminalAt: timestamp(\"terminal_at\", { withTimezone: true }),\n privateDataEraseAfter: timestamp(\"private_data_erase_after\", {\n withTimezone: true,\n }),\n boundedPublicReason: text(\"bounded_public_reason\"),\n lastError: text(\"last_error\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n admission: uniqueIndex(\"video_generation_operations_admission_uq\").on(\n table.workspaceId,\n table.admissionKey,\n ),\n expectedArtifact: uniqueIndex(\"video_generation_operations_expected_artifact_uq\").on(\n table.workspaceId,\n table.expectedArtifactId,\n ),\n expectedFile: uniqueIndex(\"video_generation_operations_expected_file_uq\").on(\n table.workspaceId,\n table.expectedFileId,\n ),\n due: index(\"video_generation_operations_due_idx\").on(\n table.status,\n table.nextReconcileAt,\n table.id,\n ),\n workspaceCreated: index(\"video_generation_operations_workspace_created_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n workspaceAccount: foreignKey({\n name: \"video_generation_operations_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n hashesValid: check(\n \"video_generation_operations_hashes_chk\",\n sql`${table.admissionKey} ~ '^[0-9a-f]{64}$'\n and ${table.requestDigest} ~ '^[0-9a-f]{64}$'\n and ${table.promptDigest} ~ '^[0-9a-f]{64}$'\n and ${table.capabilityRevision} ~ '^[0-9a-f]{64}$'`,\n ),\n shapeValid: check(\n \"video_generation_operations_shape_chk\",\n sql`octet_length(${table.toolCallId}) between 1 and 512\n and octet_length(${table.modelId}) between 1 and 256\n and octet_length(${table.providerIdempotencyKey}) between 1 and 128\n and ${table.sourceMode} in ('text','first_frame','first_and_last_frames','image_reference','video_reference')\n and ${table.reservedBytes} > 0 and ${table.reservedBytes} <= 536870912\n and (${table.boundedPublicReason} is null or octet_length(${table.boundedPublicReason}) <= 4000)\n and (${table.lastError} is null or octet_length(${table.lastError}) <= 16384)`,\n ),\n stateValid: check(\n \"video_generation_operations_state_chk\",\n sql`${table.status} in ('preparing','prepared','accepted','submission_uncertain','provider_started','retaining','completed','provider_failed','cancelled_before_submit','outcome_unknown','retention_failed')\n and ${table.admissionOutputState} in ('pending','recorded')\n and ${table.terminalUpdateState} in ('ineligible','pending','leased','delivered','suppressed')\n and ${table.quotaState} in ('reserved','ready','released')\n and ((${table.terminalAt} is not null) = (${table.status} in ('completed','provider_failed','cancelled_before_submit','outcome_unknown','retention_failed')))\n and (${table.status} <> 'submission_uncertain' or (${table.providerRequestEncrypted} is not null and ${table.providerRequestExpiresAt} is not null))\n and (${table.providerRequestEncrypted} is null or ${table.status} = 'submission_uncertain')\n and (${table.status} not in ('provider_started','retaining','completed','retention_failed') or ${table.providerJobId} is not null)\n and (${table.providerJobId} is null or ${table.status} in ('provider_started','retaining','completed','provider_failed','retention_failed'))`,\n ),\n fundingStateValid: check(\n \"video_generation_operations_funding_state_chk\",\n sql`(${table.fundingSource} = 'workspace_gateway'\n and ${table.connectionId} is not null\n and ${table.pricedCostMicros} = 0\n and ${table.creditState} = 'not_applicable')\n or (${table.fundingSource} = 'opengeni_credits'\n and ${table.connectionId} is null\n and ((${table.pricedCostMicros} = 0 and ${table.creditState} = 'not_applicable')\n or (${table.pricedCostMicros} > 0\n and ((${table.status} in ('provider_failed','cancelled_before_submit','outcome_unknown','retention_failed')\n and ${table.creditState} = 'refunded')\n or (${table.status} not in ('provider_failed','cancelled_before_submit','outcome_unknown','retention_failed')\n and ${table.creditState} = 'debited'))))\n or (${table.fundingSource} = 'supergrok_subscription'\n and ${table.connectionId} is null\n and ${table.pricedCostMicros} = 0\n and ${table.creditState} = 'not_applicable'))`,\n ),\n fundingValuesValid: check(\n \"video_generation_operations_funding_values_chk\",\n sql`${table.fundingSource} in ('opengeni_credits','workspace_gateway','supergrok_subscription')\n and ${table.pricedCostMicros} between 0 and 1000000000\n and ${table.creditState} in ('not_applicable','debited','refunded')`,\n ),\n }),\n);\n\n/** Immutable operation reference snapshots; provider-facing URLs never persist here. */\nexport const videoGenerationReferences = pgTable(\n \"video_generation_references\",\n {\n operationId: uuid(\"operation_id\")\n .notNull()\n .references(() => videoGenerationOperations.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n ordinal: integer(\"ordinal\").notNull(),\n role: text(\"role\").notNull(),\n contentType: text(\"content_type\").notNull(),\n sizeBytes: bigint(\"size_bytes\", { mode: \"number\" }).notNull(),\n sha256: text(\"sha256\").notNull(),\n stagingObjectKey: text(\"staging_object_key\"),\n grantExpiresAt: timestamp(\"grant_expires_at\", { withTimezone: true }),\n cleanupAfter: timestamp(\"cleanup_after\", { withTimezone: true }),\n cleanedAt: timestamp(\"cleaned_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"video_generation_references_pk\",\n columns: [table.operationId, table.ordinal],\n }),\n workspaceAccount: foreignKey({\n name: \"video_generation_references_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n hashValid: check(\n \"video_generation_references_hash_chk\",\n sql`${table.sha256} ~ '^[0-9a-f]{64}$'`,\n ),\n boundsValid: check(\n \"video_generation_references_bounds_chk\",\n sql`${table.ordinal} between 0 and 1\n and ${table.role} in ('first_frame','last_frame','image_reference','video_reference')\n and octet_length(${table.contentType}) between 3 and 128\n and ${table.sizeBytes} > 0 and ${table.sizeBytes} <= 209715200`,\n ),\n }),\n);\n\n/** Permanent generated-video product; canonical bytes remain a separate File. */\nexport const generatedVideoArtifacts = pgTable(\n \"generated_video_artifacts\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n primaryFileId: uuid(\"primary_file_id\")\n .notNull()\n .references(() => files.id, { onDelete: \"restrict\" }),\n operationId: uuid(\"operation_id\")\n .notNull()\n .references(() => videoGenerationOperations.id, { onDelete: \"restrict\" }),\n sessionId: uuid(\"session_id\").references(() => sessions.id, {\n onDelete: \"set null\",\n }),\n turnId: uuid(\"turn_id\"),\n attemptId: uuid(\"attempt_id\"),\n modelId: text(\"model_id\").notNull(),\n sourceMode: text(\"source_mode\").notNull(),\n promptDigest: text(\"prompt_digest\").notNull(),\n contentType: text(\"content_type\").notNull(),\n sizeBytes: bigint(\"size_bytes\", { mode: \"number\" }).notNull(),\n sha256: text(\"sha256\").notNull(),\n durationMillis: integer(\"duration_millis\").notNull(),\n width: integer(\"width\").notNull(),\n height: integer(\"height\").notNull(),\n fpsMilli: integer(\"fps_milli\").notNull(),\n videoCodec: text(\"video_codec\").notNull(),\n audioCodec: text(\"audio_codec\"),\n hasAudio: boolean(\"has_audio\").notNull(),\n sandboxFilename: text(\"sandbox_filename\").notNull(),\n deletedAt: timestamp(\"deleted_at\", { withTimezone: true }),\n readyAt: timestamp(\"ready_at\", { withTimezone: true }).notNull().defaultNow(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceFile: uniqueIndex(\"generated_video_artifacts_workspace_file_uq\").on(\n table.workspaceId,\n table.primaryFileId,\n ),\n workspaceOperation: uniqueIndex(\"generated_video_artifacts_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n sessionCreated: index(\"generated_video_artifacts_session_created_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.createdAt,\n table.id,\n ),\n workspaceAccount: foreignKey({\n name: \"generated_video_artifacts_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceFileScope: foreignKey({\n name: \"generated_video_artifacts_workspace_file_scope_fk\",\n columns: [table.accountId, table.workspaceId, table.primaryFileId],\n foreignColumns: [files.accountId, files.workspaceId, files.id],\n }).onDelete(\"restrict\"),\n valuesValid: check(\n \"generated_video_artifacts_values_chk\",\n sql`${table.contentType} = 'video/mp4'\n and ${table.sizeBytes} > 0 and ${table.sizeBytes} <= 536870912\n and ${table.sha256} ~ '^[0-9a-f]{64}$'\n and ${table.promptDigest} ~ '^[0-9a-f]{64}$'\n and ${table.durationMillis} between 1 and 120000\n and ${table.width} between 1 and 8192\n and ${table.height} between 1 and 8192\n and ${table.fpsMilli} between 1 and 120000\n and ${table.videoCodec} = 'h264'\n and ((${table.hasAudio} and ${table.audioCodec} = 'aac') or (not ${table.hasAudio} and ${table.audioCodec} is null))\n and ${table.sandboxFilename} = 'generated-video-' || ${table.id}::text || '.mp4'`,\n ),\n }),\n);\n\n/** Exact pending/ready byte accounting for retained computer screenshots. */\nexport const workspaceScreenshotQuotas = pgTable(\n \"workspace_screenshot_quotas\",\n {\n workspaceId: uuid(\"workspace_id\")\n .primaryKey()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n reservedBytes: bigint(\"reserved_bytes\", { mode: \"number\" }).notNull().default(0),\n readyBytes: bigint(\"ready_bytes\", { mode: \"number\" }).notNull().default(0),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"workspace_screenshot_quotas_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n nonnegative: check(\n \"workspace_screenshot_quotas_nonnegative_chk\",\n sql`${table.reservedBytes} >= 0 and ${table.readyBytes} >= 0`,\n ),\n }),\n);\n\n/** Provider-neutral screenshot lifecycle; canonical bytes stay in `files` storage. */\nexport const retainedScreenshotArtifacts = pgTable(\n \"retained_screenshot_artifacts\",\n {\n // The composite file FK is RESTRICT in migration 0176: only the retained\n // screenshot lifecycle may remove its backing file after provider cleanup.\n artifactId: uuid(\"artifact_id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\").references(() => sessions.id, {\n onDelete: \"set null\",\n }),\n // Turn/attempt foreign keys are installed by migrations 0140/0176.\n // Those tables are declared later in this monolithic schema module, so\n // referencing them here would create an eager initialization cycle.\n turnId: uuid(\"turn_id\"),\n attemptId: uuid(\"attempt_id\"),\n settlementKey: text(\"settlement_key\").notNull(),\n toolCallId: text(\"tool_call_id\").notNull(),\n toolOutputId: text(\"tool_output_id\").notNull(),\n status: text(\"status\")\n .$type<\n | \"pending\"\n | \"reconciling\"\n | \"ready\"\n | \"cleanup_queued\"\n | \"cleanup_pending\"\n | \"failed\"\n | \"expired\"\n | \"deleted\"\n >()\n .notNull()\n .default(\"pending\"),\n quotaState: text(\"quota_state\")\n .$type<\"reserved\" | \"ready\" | \"released\">()\n .notNull()\n .default(\"reserved\"),\n mediaType: text(\"media_type\").notNull(),\n sizeBytes: bigint(\"size_bytes\", { mode: \"number\" }).notNull(),\n sha256: text(\"sha256\").notNull(),\n width: integer(\"width\").notNull(),\n height: integer(\"height\").notNull(),\n retentionExpiresAt: timestamp(\"retention_expires_at\", {\n withTimezone: true,\n }).notNull(),\n readyAt: timestamp(\"ready_at\", { withTimezone: true }),\n cleanupReason: text(\"cleanup_reason\"),\n lastError: text(\"last_error\"),\n maintenanceClaimId: uuid(\"maintenance_claim_id\"),\n maintenanceClaimedAt: timestamp(\"maintenance_claimed_at\", {\n withTimezone: true,\n }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n settlementKey: uniqueIndex(\"retained_screenshot_artifacts_settlement_key_uq\").on(\n table.settlementKey,\n ),\n sessionCreated: index(\"retained_screenshot_artifacts_session_created_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.createdAt,\n table.artifactId,\n ),\n readyExpiry: index(\"retained_screenshot_artifacts_ready_expiry_idx\")\n .on(table.retentionExpiresAt, table.artifactId)\n .where(sql`${table.status} = 'ready'`),\n pendingReconcile: index(\"retained_screenshot_artifacts_pending_reconcile_idx\")\n .on(table.updatedAt, table.artifactId)\n .where(\n sql`${table.status} in ('pending', 'reconciling', 'cleanup_queued', 'cleanup_pending')`,\n ),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"retained_screenshot_artifacts_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n workspaceFile: foreignKey({\n columns: [table.workspaceId, table.artifactId],\n foreignColumns: [files.workspaceId, files.id],\n name: \"retained_screenshot_artifacts_workspace_file_fk\",\n }).onDelete(\"restrict\"),\n statusValid: check(\n \"retained_screenshot_artifacts_status_chk\",\n sql`${table.status} in ('pending', 'reconciling', 'ready', 'cleanup_queued', 'cleanup_pending', 'failed', 'expired', 'deleted')`,\n ),\n quotaStateValid: check(\n \"retained_screenshot_artifacts_quota_state_chk\",\n sql`${table.quotaState} in ('reserved', 'ready', 'released')`,\n ),\n statusQuotaValid: check(\n \"retained_screenshot_artifacts_status_quota_chk\",\n sql`(${table.status} in ('pending', 'reconciling') and ${table.quotaState} = 'reserved')\n or (${table.status} = 'ready' and ${table.quotaState} = 'ready')\n or (${table.status} in ('cleanup_queued', 'cleanup_pending') and ${table.quotaState} in ('reserved', 'ready'))\n or (${table.status} in ('failed', 'expired', 'deleted') and ${table.quotaState} = 'released')`,\n ),\n claimShapeValid: check(\n \"retained_screenshot_artifacts_claim_shape_chk\",\n sql`(${table.status} in ('reconciling', 'cleanup_pending')\n and ${table.maintenanceClaimId} is not null\n and ${table.maintenanceClaimedAt} is not null)\n or (${table.status} not in ('reconciling', 'cleanup_pending')\n and ${table.maintenanceClaimId} is null\n and ${table.maintenanceClaimedAt} is null)`,\n ),\n dimensionsValid: check(\n \"retained_screenshot_artifacts_dimensions_chk\",\n sql`${table.width} between 1 and 16384 and ${table.height} between 1 and 16384 and (${table.width}::bigint * ${table.height}::bigint) <= 67108864`,\n ),\n mediaTypeValid: check(\n \"retained_screenshot_artifacts_media_type_v2_chk\",\n sql`${table.mediaType} in ('image/png', 'image/jpeg', 'image/webp')`,\n ),\n }),\n);\n\nexport const documentBases = pgTable(\n \"document_bases\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n name: text(\"name\").notNull(),\n description: text(\"description\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceCreated: index(\"document_bases_workspace_created_idx\").on(\n table.workspaceId,\n table.createdAt,\n ),\n defaultName: uniqueIndex(\"document_bases_workspace_default_name_uq\")\n .on(table.workspaceId)\n .where(sql`lower(btrim(${table.name})) = 'default'`),\n }),\n);\n\nexport const documents = pgTable(\n \"documents\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n baseId: uuid(\"base_id\")\n .notNull()\n .references(() => documentBases.id, { onDelete: \"cascade\" }),\n fileId: uuid(\"file_id\")\n .notNull()\n .references(() => files.id, { onDelete: \"restrict\" }),\n status: text(\"status\").notNull().default(\"queued\"),\n title: text(\"title\").notNull(),\n parser: text(\"parser\").notNull().default(\"liteparse\"),\n chunkCount: integer(\"chunk_count\").notNull().default(0),\n error: text(\"error\"),\n sourceKind: text(\"source_kind\").notNull().default(\"manual_upload\"),\n sourceUri: text(\"source_uri\"),\n sourceExternalId: text(\"source_external_id\"),\n sourceTitle: text(\"source_title\"),\n sourceAuthor: text(\"source_author\"),\n sourceCreatedAt: timestamp(\"source_created_at\", { withTimezone: true }),\n sourceUpdatedAt: timestamp(\"source_updated_at\", { withTimezone: true }),\n sourceVersion: text(\"source_version\"),\n // Connector imports keep immutable source-object/version identity separate\n // from the content-addressed file row so equal bytes never collapse two\n // independently authorized provider objects into one Document.\n knowledgeSourceIdentity: text(\"knowledge_source_identity\"),\n aclTags: jsonb(\"acl_tags\").$type<string[]>().notNull().default([]),\n // Durable authorization tuple. The workspace_id above remains ingestion\n // provenance; organization authority deliberately has no workspace owner.\n authorityKind: text(\"authority_kind\").notNull().default(\"workspace\"),\n authorityWorkspaceId: uuid(\"authority_workspace_id\"),\n authoritySubjectId: text(\"authority_subject_id\"),\n // Activated personal documents follow their organization membership across\n // workspaces. Legacy personal rows retain a null authority id and their\n // original workspace anchor; originWorkspaceId is provenance only.\n authorityId: uuid(\"authority_id\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n originWorkspaceId: uuid(\"origin_workspace_id\").notNull(),\n // Per-document access controls. visibility 'private' restricts human reads to\n // created_by (a grant subject id, not a uuid); agent_access=false hides the\n // document from agent retrieval surfaces (docs MCP) while humans keep REST.\n visibility: text(\"visibility\").notNull().default(\"workspace\"),\n createdBy: text(\"created_by\"),\n agentAccess: boolean(\"agent_access\").notNull().default(true),\n // Auto-curation output (knowledge drops).\n summary: text(\"summary\"),\n topics: jsonb(\"topics\").$type<string[]>().notNull().default([]),\n curationStatus: text(\"curation_status\").notNull().default(\"none\"),\n curation: jsonb(\"curation\").$type<Record<string, unknown>>(),\n // Assigned only by the database whenever indexing transitions to ready.\n // Unlike updated_at, metadata refreshes and base moves cannot advance this\n // checkpoint order.\n indexSequence: bigint(\"index_sequence\", { mode: \"bigint\" }),\n indexedAt: timestamp(\"indexed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n baseFile: uniqueIndex(\"documents_workspace_base_file_idx\")\n .on(table.workspaceId, table.baseId, table.fileId)\n .where(sql`${table.knowledgeSourceIdentity} is null`),\n knowledgeSourceIdentity: uniqueIndex(\"documents_workspace_knowledge_source_identity_uq\")\n .on(table.workspaceId, table.knowledgeSourceIdentity)\n .where(sql`${table.knowledgeSourceIdentity} is not null`),\n baseStatus: index(\"documents_workspace_base_status_idx\").on(\n table.workspaceId,\n table.baseId,\n table.status,\n ),\n sourceKind: index(\"documents_workspace_source_kind_idx\").on(\n table.workspaceId,\n table.sourceKind,\n ),\n sourceExternalId: index(\"documents_workspace_source_external_id_idx\").on(\n table.workspaceId,\n table.sourceExternalId,\n ),\n curationStatus: index(\"documents_workspace_curation_status_idx\").on(\n table.workspaceId,\n table.curationStatus,\n ),\n accountIndexSequence: index(\"documents_account_index_sequence_idx\")\n .on(table.accountId, table.indexSequence)\n .where(sql`${table.status} = 'ready' and ${table.indexSequence} is not null`),\n authority: index(\"documents_authority_idx\").on(\n table.accountId,\n table.authorityKind,\n table.authorityWorkspaceId,\n table.authoritySubjectId,\n table.status,\n ),\n authorityWorkspaceAccount: foreignKey({\n name: \"documents_authority_workspace_fk\",\n columns: [table.authorityWorkspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"restrict\"),\n userAuthority: foreignKey({\n name: \"documents_user_authority_fk\",\n columns: [table.authorityId, table.accountId, table.ownerOrganizationMembershipId],\n foreignColumns: [\n organizationUserResourceAuthorities.id,\n organizationUserResourceAuthorities.accountId,\n organizationUserResourceAuthorities.organizationMembershipId,\n ],\n }).onDelete(\"restrict\"),\n authorityState: check(\n \"documents_authority_chk\",\n sql`(${table.authorityKind} = 'organization' and ${table.authorityWorkspaceId} is null and ${table.authoritySubjectId} is null and ${table.authorityId} is null and ${table.ownerOrganizationMembershipId} is null)\n or (${table.authorityKind} = 'workspace' and ${table.authorityWorkspaceId} = ${table.workspaceId} and ${table.authoritySubjectId} is null and ${table.authorityId} is null and ${table.ownerOrganizationMembershipId} is null)\n or (${table.authorityKind} = 'personal' and nullif(btrim(${table.authoritySubjectId}), '') is not null and octet_length(convert_to(${table.authoritySubjectId}, 'UTF8')) <= 1024 and ${table.authoritySubjectId} = ${table.createdBy} and ((${table.authorityWorkspaceId} = ${table.workspaceId} and ${table.authorityId} is null and ${table.ownerOrganizationMembershipId} is null) or (${table.authorityWorkspaceId} is null and ${table.authorityId} is not null and ${table.ownerOrganizationMembershipId} is not null)))`,\n ),\n authorityVisibility: check(\n \"documents_authority_visibility_chk\",\n sql`(${table.authorityKind} = 'personal') = (${table.visibility} = 'private')`,\n ),\n originWorkspace: check(\n \"documents_origin_workspace_chk\",\n sql`${table.originWorkspaceId} = ${table.workspaceId}`,\n ),\n visibilityState: check(\n \"documents_visibility_chk\",\n sql`${table.visibility} in ('workspace', 'private')`,\n ),\n curationState: check(\n \"documents_curation_status_chk\",\n sql`${table.curationStatus} in ('none', 'pending', 'suggested', 'auto_filed', 'failed')`,\n ),\n privateCreator: check(\n \"documents_private_creator_chk\",\n sql`${table.visibility} <> 'private' or nullif(btrim(${table.createdBy}), '') is not null`,\n ),\n knowledgeSourceIdentityBounds: check(\n \"documents_knowledge_source_identity_chk\",\n sql`${table.knowledgeSourceIdentity} is null or length(btrim(${table.knowledgeSourceIdentity})) between 1 and 512`,\n ),\n topicsArray: check(\"documents_topics_array_chk\", sql`jsonb_typeof(${table.topics}) = 'array'`),\n curationObject: check(\n \"documents_curation_object_chk\",\n sql`${table.curation} is null or jsonb_typeof(${table.curation}) = 'object'`,\n ),\n indexSequenceState: check(\n \"documents_index_sequence_chk\",\n sql`(${table.indexSequence} is null or ${table.indexSequence} > 0)\n and (${table.status} <> 'ready' or (${table.indexSequence} is not null and ${table.indexedAt} is not null))`,\n ),\n }),\n);\n\nexport const documentChunks = pgTable(\n \"document_chunks\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n documentId: uuid(\"document_id\")\n .notNull()\n .references(() => documents.id, { onDelete: \"cascade\" }),\n baseId: uuid(\"base_id\")\n .notNull()\n .references(() => documentBases.id, { onDelete: \"cascade\" }),\n fileId: uuid(\"file_id\")\n .notNull()\n .references(() => files.id, { onDelete: \"restrict\" }),\n chunkIndex: integer(\"chunk_index\").notNull(),\n text: text(\"text\").notNull(),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n authorityKind: text(\"authority_kind\").notNull().default(\"workspace\"),\n authorityWorkspaceId: uuid(\"authority_workspace_id\"),\n authoritySubjectId: text(\"authority_subject_id\"),\n authorityId: uuid(\"authority_id\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n embedding: vector(\"embedding\").notNull(),\n embeddingModel: text(\"embedding_model\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n documentIndex: uniqueIndex(\"document_chunks_workspace_document_index_idx\").on(\n table.workspaceId,\n table.documentId,\n table.chunkIndex,\n ),\n base: index(\"document_chunks_workspace_base_idx\").on(table.workspaceId, table.baseId),\n authority: index(\"document_chunks_authority_idx\").on(\n table.accountId,\n table.authorityKind,\n table.authorityWorkspaceId,\n table.authoritySubjectId,\n ),\n authorityWorkspaceAccount: foreignKey({\n name: \"document_chunks_authority_workspace_fk\",\n columns: [table.authorityWorkspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"restrict\"),\n userAuthority: foreignKey({\n name: \"document_chunks_user_authority_fk\",\n columns: [table.authorityId, table.accountId, table.ownerOrganizationMembershipId],\n foreignColumns: [\n organizationUserResourceAuthorities.id,\n organizationUserResourceAuthorities.accountId,\n organizationUserResourceAuthorities.organizationMembershipId,\n ],\n }).onDelete(\"restrict\"),\n authorityState: check(\n \"document_chunks_authority_chk\",\n sql`(${table.authorityKind} = 'organization' and ${table.authorityWorkspaceId} is null and ${table.authoritySubjectId} is null and ${table.authorityId} is null and ${table.ownerOrganizationMembershipId} is null)\n or (${table.authorityKind} = 'workspace' and ${table.authorityWorkspaceId} = ${table.workspaceId} and ${table.authoritySubjectId} is null and ${table.authorityId} is null and ${table.ownerOrganizationMembershipId} is null)\n or (${table.authorityKind} = 'personal' and nullif(btrim(${table.authoritySubjectId}), '') is not null and octet_length(convert_to(${table.authoritySubjectId}, 'UTF8')) <= 1024 and ((${table.authorityWorkspaceId} = ${table.workspaceId} and ${table.authorityId} is null and ${table.ownerOrganizationMembershipId} is null) or (${table.authorityWorkspaceId} is null and ${table.authorityId} is not null and ${table.ownerOrganizationMembershipId} is not null)))`,\n ),\n }),\n);\n\nexport const knowledgeMemories = pgTable(\n \"knowledge_memories\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n status: text(\"status\").notNull().default(\"proposed\"),\n kind: text(\"kind\").notNull().default(\"semantic\"),\n scope: text(\"scope\").notNull().default(\"workspace\"),\n text: losslessText(\"text\").notNull(),\n textCodecVersion: losslessCodecVersion(\"text_codec_version\"),\n sourceRefs: jsonb(\"source_refs\").$type<unknown[]>().notNull().default([]),\n confidence: integer(\"confidence\").notNull().default(50),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n createdBySessionId: uuid(\"created_by_session_id\").references(() => sessions.id, {\n onDelete: \"set null\",\n }),\n reviewedBy: text(\"reviewed_by\"),\n reviewedAt: timestamp(\"reviewed_at\", { withTimezone: true }),\n // Workspace Memory V1 (migration 0045). Embedding is nullable: fail-soft writes\n // (embedder unavailable) persist keyword-searchable rows without a vector.\n embedding: vector(\"embedding\"),\n embeddingModel: text(\"embedding_model\"),\n pinned: boolean(\"pinned\").notNull().default(false),\n usageCount: integer(\"usage_count\").notNull().default(0),\n lastUsedAt: timestamp(\"last_used_at\", { withTimezone: true }),\n // Self-referential supersession chain. FKs live in migration 0045 (ON DELETE SET\n // NULL); declared here as plain columns like the migration-only composite FK.\n supersedesId: uuid(\"supersedes_id\"),\n supersededById: uuid(\"superseded_by_id\"),\n validFrom: timestamp(\"valid_from\", { withTimezone: true }).notNull().defaultNow(),\n validUntil: timestamp(\"valid_until\", { withTimezone: true }),\n // Hierarchical memory foundation (migration 0152). `scope` remains the V1\n // compatibility projection; typed selectors are the fail-closed authority.\n scopeType: text(\"scope_type\").notNull().default(\"workspace\"),\n scopeSubjectId: text(\"scope_subject_id\"),\n scopeRoleKey: text(\"scope_role_key\"),\n scopeSessionId: uuid(\"scope_session_id\"),\n namespace: text(\"namespace_key\").notNull().default(\"general\"),\n labels: text(\"labels\").array().notNull().default([]),\n memoryVersion: integer(\"memory_version\").notNull().default(1),\n createdByKind: text(\"created_by_kind\").notNull().default(\"service\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull().default(\"unattributed-legacy\"),\n createdByContext: jsonb(\"created_by_context\")\n .$type<Record<string, unknown>>()\n .notNull()\n .default({ backfill: true }),\n // sha256(normalizeMemoryText(text)) — exact-dedup key; see memory-domain.\n textHash: text(\"text_hash\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceStatus: index(\"knowledge_memories_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n table.updatedAt,\n ),\n workspaceKind: index(\"knowledge_memories_workspace_kind_idx\").on(table.workspaceId, table.kind),\n workspaceScope: index(\"knowledge_memories_workspace_scope_idx\").on(\n table.workspaceId,\n table.scope,\n ),\n workspaceTypedScope: index(\"knowledge_memories_workspace_typed_scope_idx\").on(\n table.workspaceId,\n table.scopeType,\n table.scopeSubjectId,\n table.scopeRoleKey,\n table.scopeSessionId,\n ),\n workspaceNamespace: index(\"knowledge_memories_workspace_namespace_idx\").on(\n table.workspaceId,\n table.namespace,\n ),\n labelsGin: index(\"knowledge_memories_labels_idx\").using(\"gin\", table.labels),\n createdBySession: index(\"knowledge_memories_workspace_created_by_session_idx\").on(\n table.workspaceId,\n table.createdBySessionId,\n ),\n // Working-set selection (partial index mirrors migration 0045).\n workspaceVisible: index(\"knowledge_memories_workspace_visible_idx\")\n .on(table.workspaceId, table.pinned, table.updatedAt)\n .where(sql`${table.status} in ('active', 'approved')`),\n workspaceTextHash: index(\"knowledge_memories_workspace_text_hash_idx\").on(\n table.workspaceId,\n table.textHash,\n ),\n // Drizzle 0.45 cannot encode PostgreSQL `NULLS NOT DISTINCT`; migration\n // 0152 owns that option so nullable scope selectors remain one identity.\n scopeVisibleTextHashUnique: uniqueIndex(\"knowledge_memories_scope_visible_text_hash_uq\")\n .on(\n table.workspaceId,\n table.scopeType,\n table.scopeSubjectId,\n table.scopeRoleKey,\n table.scopeSessionId,\n table.namespace,\n table.textHash,\n )\n .where(sql`${table.status} in ('active', 'approved') and ${table.textHash} is not null`),\n }),\n);\n\nexport const sessionTurns = pgTable(\n \"session_turns\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n triggerEventId: uuid(\"trigger_event_id\").notNull(),\n temporalWorkflowId: text(\"temporal_workflow_id\").notNull(),\n status: text(\"status\").notNull(),\n source: text(\"source\").notNull().default(\"user\"),\n // Immutable user-facing admission intent. Physical execution still uses\n // status=queued until a worker claims the row; this field keeps that\n // implementation queue distinct from prompts genuinely waiting behind\n // other work. Null is reserved for rolling/legacy writers and non-human\n // turns, and is projected conservatively as visible queue work.\n promptRouting: text(\"prompt_routing\"),\n position: bigint(\"position\", { mode: \"number\" }).notNull(),\n prompt: losslessText(\"prompt\").notNull(),\n promptCodecVersion: losslessCodecVersion(\"prompt_codec_version\"),\n annotations: jsonb(\"annotations\").$type<TimelineAnnotation[]>().notNull().default([]),\n // Application context for this exact user message. It is copied into the\n // canonical user-role history item at claim and omitted from public queue\n // projections; full event/audit data retains it.\n modelContext: text(\"model_context\"),\n resources: jsonb(\"resources\").$type<unknown[]>().notNull().default([]),\n tools: jsonb(\"tools\").$type<unknown[]>().notNull().default([]),\n // false = inherit the durable session policy; true = this turn explicitly\n // replaces it with `tools` after the core subset fence.\n toolsProvided: boolean(\"tools_provided\").notNull().default(false),\n model: text(\"model\").notNull(),\n reasoningEffort: text(\"reasoning_effort\").notNull(),\n // Peer of model + reasoning_effort for Fast/priority inheritance.\n latencyMode: text(\"latency_mode\").notNull().default(\"standard\"),\n sandboxBackend: text(\"sandbox_backend\").notNull(),\n // Per-turn OS override. NULL = inherit the session's sandbox_os. CHECK-\n // constrained to the SandboxOs enum (or NULL) in migration 0018.\n sandboxOs: text(\"sandbox_os\"),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n version: integer(\"version\").notNull().default(1),\n executionGeneration: integer(\"execution_generation\").notNull().default(0),\n // Composite FK to session_turn_attempts is installed by migration 0063.\n // It lives in SQL because attempts carry the reciprocal turn FK and because\n // the claim transaction preallocates this ID before inserting the attempt;\n // the SQL constraint is therefore DEFERRABLE INITIALLY DEFERRED.\n activeAttemptId: uuid(\"active_attempt_id\"),\n lineage: jsonb(\"lineage\").$type<Record<string, unknown>>().notNull().default({}),\n // Required immutable authority captured when the turn is accepted. These\n // columns are deliberately outside mutable metadata/lineage.\n initiatorKind: text(\"initiator_kind\").notNull().default(\"service\"),\n initiatorSubjectId: text(\"initiator_subject_id\").notNull().default(\"unattributed-legacy\"),\n initiatorContext: jsonb(\"initiator_context\")\n .$type<Record<string, unknown>>()\n .notNull()\n .default({ backfill: true }),\n // Bounded, immutable causal-human selector for named attempt-bound\n // capabilities. Human turns bind their own subject; trusted continuations\n // and compactions may inherit the causal turn's value while retaining a\n // service initiator. It never authorizes by itself. Null means pure service\n // work has no human-bound authority.\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\"),\n // Exact goal authority frozen when the logical turn is accepted. The\n // migration trigger fills this for old and rolling writers; claim only\n // reconstructs legacy nulls from events as-of created_at.\n goalSnapshot: jsonb(\"goal_snapshot\").$type<SessionGoalSnapshot>(),\n // Immutable exact personal MCP authority for this logical turn. Recovery,\n // approval, retries, and Codemode reuse this row; no runtime may infer\n // broader authority from the session creator or mutable session state.\n personalConnectionDelegations: jsonb(\"personal_connection_delegations\")\n .$type<McpPersonalConnectionDelegation[]>()\n .notNull()\n .default([]),\n // Credential-free public summary of a turn-bound personal Variable\n // Set/Rig attachment. Exact resource and grant identity lives only in the\n // immutable accepted-work snapshot tables.\n personalResourceAttachmentSummary: jsonb(\n \"personal_resource_attachment_summary\",\n ).$type<PersonalResourceAttachmentSummary>(),\n // 0 = legacy attempt-selected authority; 1 = immutable logical-turn\n // snapshots. Drained migration 0306 makes every new atomic attachment v1.\n personalResourceProtocolVersion: integer(\"personal_resource_protocol_version\")\n .notNull()\n .default(0),\n // Immutable scheduled occurrence that accepted this logical turn. Null for\n // ordinary human, goal, child, and unrelated internal work.\n scheduledTaskRunId: uuid(\"scheduled_task_run_id\"),\n xaiProviderAccountAuthoritySnapshot: jsonb(\"xai_provider_account_authority_snapshot\")\n .$type<XaiProviderAccountAuthoritySnapshotV1>()\n .notNull()\n .default(WORKSPACE_XAI_PROVIDER_ACCOUNT_AUTHORITY_SNAPSHOT_V1),\n cancelledBy: text(\"cancelled_by\"),\n cancelReason: text(\"cancel_reason\"),\n // Leftover unused counter from the removed per-turn Codemode call cap\n // (migrations 0043/0205). New writers do not increment it; do not enforce.\n codemodeCallCount: integer(\"codemode_call_count\").notNull().default(0),\n startedAt: timestamp(\"started_at\", { withTimezone: true }),\n finishedAt: timestamp(\"finished_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"session_turns_workspace_id_idx\").on(\n table.workspaceId,\n table.id,\n ),\n queue: index(\"session_turns_workspace_queue_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.status,\n table.position,\n ),\n oneCurrentInference: uniqueIndex(\"session_turns_one_current_inference_uq\")\n .on(table.workspaceId, table.sessionId)\n .where(sql`${table.status} in ('running','requires_action','recovering','waiting_capacity')`),\n // Agent-monitoring \"was this prompt's turn ever claimed\" probe\n // (`excludeUnclaimedHumanPromptEventFilter`), migration 0322.\n unclaimedPromptTrigger: index(\"session_turns_unclaimed_prompt_trigger_idx\")\n .on(table.workspaceId, table.sessionId, table.triggerEventId)\n .where(sql`${table.startedAt} is null`),\n latencyModeValid: check(\n \"session_turns_latency_mode_check\",\n sql`${table.latencyMode} in ('standard', 'priority', 'fast')`,\n ),\n modelContextValid: check(\n \"session_turns_model_context_check\",\n sql`${table.modelContext} is null\n or opengeni_private.model_context_value_valid(${table.modelContext})`,\n ),\n }),\n);\n\n/** Immutable logical-turn receipt for atomic personal-resource issuance. */\nexport const turnPersonalResourceAttachmentReceipts = pgTable(\n \"turn_personal_resource_attachment_receipts\",\n {\n turnId: uuid(\"turn_id\")\n .primaryKey()\n .references(() => sessionTurns.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\").notNull(),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\").notNull(),\n membershipAuthorizationRevision: bigint(\"membership_authorization_revision\", {\n mode: \"number\",\n }).notNull(),\n sessionVisibility: text(\"session_visibility\").notNull(),\n sessionAuthorityEpoch: integer(\"session_authority_epoch\").notNull(),\n grantMode: text(\"grant_mode\").notNull(),\n sharedOutputWarningVersion: integer(\"shared_output_warning_version\").notNull(),\n sharedOutputAcknowledged: boolean(\"shared_output_acknowledged\").notNull(),\n requestDigest: bytea(\"request_digest\").notNull(),\n resourceCount: integer(\"resource_count\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceTurn: foreignKey({\n name: \"turn_personal_resource_attachment_receipts_workspace_turn_fk\",\n columns: [table.workspaceId, table.turnId],\n foreignColumns: [sessionTurns.workspaceId, sessionTurns.id],\n }).onDelete(\"cascade\"),\n identity: check(\n \"turn_personal_resource_attachment_receipts_identity_chk\",\n sql`${table.sessionAuthorityEpoch} > 0\n and octet_length(${table.initiatingHumanSubjectId}) between 1 and 512\n and ${table.membershipAuthorizationRevision} > 0\n and ${table.resourceCount} between 1 and 52\n and ${table.grantMode} in ('once', 'session', 'always')\n and ${table.sessionVisibility} in ('user_private', 'workspace_shared')\n and ${table.sharedOutputWarningVersion} = 1\n and (${table.sessionVisibility} <> 'workspace_shared'\n or ${table.sharedOutputAcknowledged})`,\n ),\n }),\n);\n\n/** Exact resource/grant authority frozen on one accepted logical turn. */\nexport const turnPersonalResourceSnapshots = pgTable(\n \"turn_personal_resource_snapshots\",\n {\n turnId: uuid(\"turn_id\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n resourceKind: text(\"resource_kind\").notNull(),\n resourceId: uuid(\"resource_id\").notNull(),\n resourceVersionId: uuid(\"resource_version_id\"),\n selectionSources: text(\"selection_sources\").array().notNull(),\n action: text(\"action\").notNull(),\n originWorkspaceId: uuid(\"origin_workspace_id\").notNull(),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\").notNull(),\n membershipAuthorizationRevision: bigint(\"membership_authorization_revision\", {\n mode: \"number\",\n }).notNull(),\n authorityId: uuid(\"authority_id\").notNull(),\n authorityGeneration: bigint(\"authority_generation\", {\n mode: \"number\",\n }).notNull(),\n grantId: uuid(\"grant_id\").notNull(),\n grantGeneration: bigint(\"grant_generation\", { mode: \"number\" }).notNull(),\n grantMode: text(\"grant_mode\").notNull(),\n grantContext: text(\"grant_context\").notNull(),\n grantSessionId: uuid(\"grant_session_id\"),\n grantAuthorityEpoch: integer(\"grant_authority_epoch\"),\n canonicalDelegation: jsonb(\"canonical_delegation\").$type<UserResourceDelegation>().notNull(),\n snapshotDigest: bytea(\"snapshot_digest\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n columns: [table.turnId, table.resourceKind, table.resourceId],\n }),\n receipt: foreignKey({\n name: \"turn_personal_resource_snapshots_receipt_fk\",\n columns: [table.turnId],\n foreignColumns: [turnPersonalResourceAttachmentReceipts.turnId],\n }).onDelete(\"cascade\"),\n authority: index(\"turn_personal_resource_snapshots_authority_idx\").on(table.authorityId),\n grant: index(\"turn_personal_resource_snapshots_grant_idx\").on(table.grantId),\n kind: check(\n \"turn_personal_resource_snapshots_kind_chk\",\n sql`(${table.resourceKind} = 'variable_set'\n and ${table.action} = 'variable_set.use'\n and ${table.resourceVersionId} is null)\n or (${table.resourceKind} = 'rig'\n and ${table.action} = 'rig.use'\n and ${table.resourceVersionId} is not null)\n or (${table.resourceKind} = 'connected_machine'\n and ${table.action} = 'connected_machine.use'\n and ${table.resourceVersionId} is null)`,\n ),\n generations: check(\n \"turn_personal_resource_snapshots_generation_chk\",\n sql`${table.membershipAuthorizationRevision} > 0\n and ${table.authorityGeneration} > 0\n and ${table.grantGeneration} > 0\n and cardinality(${table.selectionSources}) between 1 and 50`,\n ),\n grantShape: check(\n \"turn_personal_resource_snapshots_grant_chk\",\n sql`${table.grantMode} in ('once', 'session', 'always')\n and ${table.grantContext} in ('user_private', 'workspace_shared')\n and ((${table.grantMode} = 'always'\n and ${table.grantSessionId} is null\n and ${table.grantAuthorityEpoch} is null)\n or (${table.grantMode} in ('once', 'session')\n and ${table.grantSessionId} = ${table.sessionId}\n and ${table.grantAuthorityEpoch} > 0))`,\n ),\n }),\n);\n\n/** One once grant may belong to one accepted logical turn only. */\nexport const turnPersonalResourceOnceReceipts = pgTable(\n \"turn_personal_resource_once_receipts\",\n {\n grantId: uuid(\"grant_id\").primaryKey(),\n turnId: uuid(\"turn_id\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n authorityId: uuid(\"authority_id\").notNull(),\n authorityGeneration: bigint(\"authority_generation\", {\n mode: \"number\",\n }).notNull(),\n grantGeneration: bigint(\"grant_generation\", { mode: \"number\" }).notNull(),\n consumedAt: timestamp(\"consumed_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n receipt: foreignKey({\n name: \"turn_personal_resource_once_receipts_turn_fk\",\n columns: [table.turnId],\n foreignColumns: [turnPersonalResourceAttachmentReceipts.turnId],\n }).onDelete(\"cascade\"),\n generations: check(\n \"turn_personal_resource_once_receipts_generation_chk\",\n sql`${table.authorityGeneration} > 0 and ${table.grantGeneration} > 0`,\n ),\n }),\n);\n\n// One bounded audit/idempotency projection of an ended mode's transcript-tail\n// wrapper, bound to the exact ordinary Steer turn that durably carries it.\nexport const sessionRealtimeContextProjections = pgTable(\n \"session_realtime_context_projections\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n context: text(\"context\"),\n sourceModeCount: integer(\"source_mode_count\").notNull(),\n sourceEntryCount: integer(\"source_entry_count\").notNull(),\n includedEntryCount: integer(\"included_entry_count\").notNull(),\n omittedEntryCount: integer(\"omitted_entry_count\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_realtime_context_projections_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"session_realtime_context_projections_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n workspaceTurn: foreignKey({\n name: \"session_realtime_context_projections_workspace_turn_fk\",\n columns: [table.workspaceId, table.turnId],\n foreignColumns: [sessionTurns.workspaceId, sessionTurns.id],\n }).onDelete(\"cascade\"),\n turn: uniqueIndex(\"session_realtime_context_projections_turn_uq\").on(\n table.workspaceId,\n table.sessionId,\n table.turnId,\n ),\n contextValid: check(\n \"session_realtime_context_projections_context_check\",\n sql`${table.context} is null or octet_length(${table.context}) between 1 and 65536`,\n ),\n countsValid: check(\n \"session_realtime_context_projections_counts_check\",\n sql`${table.sourceModeCount} >= 1\n and ${table.sourceEntryCount} >= 0\n and ${table.includedEntryCount} >= 0\n and ${table.omittedEntryCount} >= 0\n and ${table.includedEntryCount} + ${table.omittedEntryCount} = ${table.sourceEntryCount}\n and ((${table.sourceEntryCount} = 0 and ${table.context} is null)\n or (${table.sourceEntryCount} > 0 and ${table.context} is not null))`,\n ),\n }),\n);\n\n// First-class ownership for one accepted execution attempt. A workflow may\n// preallocate id, but this row is inserted only by the activity transaction\n// that actually claims the logical turn and registers its exact dispatch.\nexport const sessionTurnAttempts = pgTable(\n \"session_turn_attempts\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n state: text(\"state\").notNull().default(\"claimed\"),\n outcome: text(\"outcome\"),\n temporalWorkflowId: text(\"temporal_workflow_id\").notNull(),\n temporalWorkflowRunId: text(\"temporal_workflow_run_id\").notNull(),\n temporalActivityId: text(\"temporal_activity_id\").notNull(),\n workerId: text(\"worker_id\"),\n leaseId: text(\"lease_id\"),\n leaseExpiresAt: timestamp(\"lease_expires_at\", { withTimezone: true }),\n verifiedControlRevision: bigint(\"verified_control_revision\", {\n mode: \"number\",\n }).notNull(),\n // Immutable generic session-tenancy authority admitted with this exact\n // attempt. A later visibility/ownership epoch change fences the attempt;\n // these are snapshots, never live lookups or mutable metadata.\n // Pre-0222 SQL writers may omit these columns; the migration-owned BEFORE\n // INSERT trigger fills them from the exact session row. Current claim\n // writers pass both explicitly, so no client-side default may bypass the\n // trigger and manufacture stale authority.\n authorityEpoch: integer(\"authority_epoch\").notNull(),\n authorityVisibility: text(\"authority_visibility\").notNull(),\n authorityOwnerOrganizationMembershipId: uuid(\"authority_owner_organization_membership_id\"),\n personalResourceProtocolVersion: integer(\"personal_resource_protocol_version\")\n .notNull()\n .default(0),\n // Immutable policy snapshot captured under the session lock at claim.\n mcpApprovalPolicies: jsonb(\"mcp_approval_policies\")\n .$type<Record<string, SessionMcpApprovalPolicy>>()\n .notNull(),\n connectorActionPolicies: jsonb(\"connector_action_policies\")\n .$type<ConnectorActionPolicySnapshotEntry[]>()\n .notNull()\n .default([]),\n startedAt: timestamp(\"started_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n closedAt: timestamp(\"closed_at\", { withTimezone: true }),\n // The cancelled activity writes this after losing inference, user-visible\n // output, and workspace-persistence authority. Fenced/idempotent cleanup\n // and telemetry may still finish. Temporal activity cancellation or\n // terminalization is transport state only; queue admission and clients use\n // this durable receipt as the physical-quiescence authority.\n quiescedAt: timestamp(\"quiesced_at\", { withTimezone: true }),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_turn_attempts_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"session_turn_attempts_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n workspaceTurn: foreignKey({\n name: \"session_turn_attempts_workspace_turn_fk\",\n columns: [table.workspaceId, table.turnId],\n foreignColumns: [sessionTurns.workspaceId, sessionTurns.id],\n }).onDelete(\"restrict\"),\n workspaceIdentity: uniqueIndex(\"session_turn_attempts_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n ownershipIdentity: uniqueIndex(\"session_turn_attempts_human_input_owner_uq\").on(\n table.accountId,\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.id,\n ),\n liveTurn: uniqueIndex(\"session_turn_attempts_live_turn_uq\")\n .on(table.workspaceId, table.turnId)\n .where(sql`${table.state} in ('claimed', 'running')`),\n liveSession: uniqueIndex(\"session_turn_attempts_live_session_uq\")\n .on(table.workspaceId, table.sessionId)\n .where(sql`${table.state} in ('claimed', 'running')`),\n latestSessionAttempt: index(\"session_turn_attempts_latest_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.startedAt.desc(),\n table.id.desc(),\n ),\n authorityEpoch: index(\"session_turn_attempts_authority_epoch_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.authorityEpoch,\n ),\n dispatch: uniqueIndex(\"session_turn_attempts_dispatch_uq\").on(\n table.workspaceId,\n table.temporalWorkflowRunId,\n table.temporalActivityId,\n ),\n leaseExpiry: index(\"session_turn_attempts_lease_expiry_idx\")\n .on(table.leaseExpiresAt, table.workspaceId, table.sessionId)\n .where(sql`${table.state} in ('claimed', 'running')`),\n stateValid: check(\n \"session_turn_attempts_state_check\",\n sql`${table.state} in ('claimed', 'running', 'closed')`,\n ),\n outcomeValid: check(\n \"session_turn_attempts_outcome_check\",\n sql`${table.outcome} is null or ${table.outcome} in (\n 'completed', 'failed', 'cancelled', 'superseded', 'requires_action',\n 'waiting_capacity', 'interrupted_recoverable', 'lease_lost_recoverable',\n 'pre_cutover_closed'\n )`,\n ),\n closedConsistent: check(\n \"session_turn_attempts_closed_check\",\n sql`(${table.state} = 'closed' and ${table.outcome} is not null and ${table.closedAt} is not null)\n or (${table.state} <> 'closed' and ${table.outcome} is null and ${table.closedAt} is null)`,\n ),\n authorityEpochValid: check(\n \"session_turn_attempts_authority_epoch_check\",\n sql`${table.authorityEpoch} is not null\n and ${table.authorityVisibility} is not null\n and ${table.authorityEpoch} > 0`,\n ),\n authorityVisibilityValid: check(\n \"session_turn_attempts_authority_visibility_check\",\n sql`${table.authorityEpoch} is not null\n and ${table.authorityVisibility} is not null\n and ${table.authorityVisibility} in ('user_private', 'workspace_shared')`,\n ),\n authorityOwnerShape: check(\n \"session_turn_attempts_authority_owner_shape_check\",\n sql`${table.authorityVisibility} <> 'user_private'\n or ${table.authorityOwnerOrganizationMembershipId} is not null`,\n ),\n authorityOwner: foreignKey({\n name: \"session_turn_attempts_authority_owner_fk\",\n columns: [table.authorityOwnerOrganizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n }),\n);\n\n// Per-turn startup SLO checkpoint ledger (migration 0318). One row per\n// (turn, milestone, outcome); the transaction whose\n// `insert ... on conflict do nothing returning` returns the row is the\n// canonical inserter and the sole metric receipt, so recovery and replay\n// conflict without re-reading the turn's session_events. `pre_ledger_history`\n// rows seal a turn whose startup predates the ledger.\nexport const sessionTurnStartupMilestones = pgTable(\n \"session_turn_startup_milestones\",\n {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n milestone: text(\"milestone\").notNull(),\n outcome: text(\"outcome\").notNull(),\n canonicalSource: text(\"canonical_source\").notNull(),\n eventId: uuid(\"event_id\"),\n occurredAt: timestamp(\"occurred_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"session_turn_startup_milestones_pkey\",\n columns: [table.workspaceId, table.turnId, table.milestone, table.outcome],\n }),\n workspaceAccount: foreignKey({\n name: \"session_turn_startup_milestones_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"session_turn_startup_milestones_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n workspaceTurn: foreignKey({\n name: \"session_turn_startup_milestones_workspace_turn_fk\",\n columns: [table.workspaceId, table.turnId],\n foreignColumns: [sessionTurns.workspaceId, sessionTurns.id],\n }).onDelete(\"cascade\"),\n workspaceSessionIndex: index(\"session_turn_startup_milestones_workspace_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n ),\n milestoneCheck: check(\n \"session_turn_startup_milestones_milestone_chk\",\n sql`${table.milestone} in ('queue', 'provider_dispatch', 'first_byte')`,\n ),\n outcomeCheck: check(\n \"session_turn_startup_milestones_outcome_chk\",\n sql`${table.outcome} in ('completed', 'failed')`,\n ),\n checkpointCheck: check(\n \"session_turn_startup_milestones_checkpoint_chk\",\n sql`${table.outcome} = 'completed' or ${table.milestone} = 'first_byte'`,\n ),\n canonicalSourceCheck: check(\n \"session_turn_startup_milestones_canonical_source_chk\",\n sql`(${table.canonicalSource} = 'inserted_event' and ${table.eventId} is not null and ${table.occurredAt} is not null) or (${table.canonicalSource} = 'pre_ledger_history' and ${table.outcome} = 'completed' and ${table.eventId} is null and ${table.occurredAt} is null)`,\n ),\n }),\n);\n\n// Credential-free authority captured with the accepted logical turn. Runtime\n// credential resolution loads this canonical row by exact turn + tool surface;\n// a caller-provided snapshot is never authority.\nexport const turnConnectionAuthoritySnapshots = pgTable(\n \"turn_connection_authority_snapshots\",\n {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n serverId: text(\"server_id\").notNull(),\n connectionId: uuid(\"connection_id\").notNull(),\n connectionGeneration: bigint(\"connection_generation\", {\n mode: \"number\",\n }).notNull(),\n originWorkspaceId: uuid(\"origin_workspace_id\").notNull(),\n providerDomain: text(\"provider_domain\").notNull(),\n connectionKind: text(\"connection_kind\").notNull(),\n authorityScope: text(\"authority_scope\").notNull(),\n authoritySource: text(\"authority_source\").notNull(),\n ownerSubjectId: text(\"owner_subject_id\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n membershipAuthorizationRevision: bigint(\"membership_authorization_revision\", {\n mode: \"number\",\n }),\n authorityId: uuid(\"authority_id\"),\n authorityGeneration: bigint(\"authority_generation\", { mode: \"number\" }),\n grantId: uuid(\"grant_id\"),\n grantGeneration: bigint(\"grant_generation\", { mode: \"number\" }),\n grantMode: text(\"grant_mode\"),\n grantContext: text(\"grant_context\"),\n grantSessionId: uuid(\"grant_session_id\"),\n grantAuthorityEpoch: integer(\"grant_authority_epoch\"),\n sessionVisibility: text(\"session_visibility\").notNull(),\n sessionAuthorityEpoch: integer(\"session_authority_epoch\").notNull(),\n canonicalSnapshot: jsonb(\"canonical_snapshot\").$type<Record<string, unknown>>().notNull(),\n snapshotDigest: bytea(\"snapshot_digest\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({ columns: [table.turnId, table.serverId] }),\n turn: foreignKey({\n name: \"turn_connection_authority_turn_fk\",\n columns: [table.workspaceId, table.turnId],\n foreignColumns: [sessionTurns.workspaceId, sessionTurns.id],\n }).onDelete(\"cascade\"),\n connection: foreignKey({\n name: \"turn_connection_authority_connection_fk\",\n columns: [table.connectionId],\n foreignColumns: [connections.id],\n }).onDelete(\"restrict\"),\n membership: foreignKey({\n name: \"turn_connection_authority_membership_fk\",\n columns: [table.ownerOrganizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n authority: foreignKey({\n name: \"turn_connection_authority_authority_fk\",\n columns: [table.authorityId, table.accountId],\n foreignColumns: [\n organizationUserResourceAuthorities.id,\n organizationUserResourceAuthorities.accountId,\n ],\n }).onDelete(\"restrict\"),\n grant: foreignKey({\n name: \"turn_connection_authority_grant_fk\",\n columns: [table.grantId, table.accountId],\n foreignColumns: [organizationUserResourceGrants.id, organizationUserResourceGrants.accountId],\n }).onDelete(\"restrict\"),\n connectionLookup: index(\"turn_connection_authority_connection_idx\").on(\n table.accountId,\n table.connectionId,\n table.turnId,\n table.serverId,\n ),\n serverValid: check(\n \"turn_connection_authority_server_check\",\n sql`octet_length(${table.serverId}) between 1 and 256`,\n ),\n generationValid: check(\n \"turn_connection_authority_generation_check\",\n sql`${table.connectionGeneration} > 0 and ${table.sessionAuthorityEpoch} > 0`,\n ),\n }),\n);\n\n// One metadata-only authorization fact per caller-preallocated physical\n// provider request. No credential, header, body, provider response, or content\n// is retained in this table.\nexport const connectionUseAuditFacts = pgTable(\n \"connection_use_audit_facts\",\n {\n physicalRequestId: uuid(\"physical_request_id\").primaryKey(),\n usePhase: text(\"use_phase\").notNull(),\n requestDigest: bytea(\"request_digest\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n attemptId: uuid(\"attempt_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n serverId: text(\"server_id\").notNull(),\n connectionId: uuid(\"connection_id\"),\n connectionGeneration: bigint(\"connection_generation\", { mode: \"number\" }),\n authorityScope: text(\"authority_scope\"),\n ownerSubjectId: text(\"owner_subject_id\"),\n authorityId: uuid(\"authority_id\"),\n grantId: uuid(\"grant_id\"),\n initiatorKind: text(\"initiator_kind\"),\n initiatorSubjectId: text(\"initiator_subject_id\"),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\"),\n authorityEpoch: integer(\"authority_epoch\"),\n authorityVisibility: text(\"authority_visibility\"),\n authorityOwnerOrganizationMembershipId: uuid(\"authority_owner_organization_membership_id\"),\n outcome: text(\"outcome\").notNull(),\n denialReason: text(\"denial_reason\"),\n occurredAt: timestamp(\"occurred_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n attempt: index(\"connection_use_audit_attempt_idx\").on(\n table.workspaceId,\n table.attemptId,\n table.occurredAt,\n ),\n shapeValid: check(\n \"connection_use_audit_shape_check\",\n sql`octet_length(${table.serverId}) between 1 and 256\n and octet_length(${table.requestDigest}) = 32\n and ${table.executionGeneration} > 0\n and ${table.usePhase} in ('credential_resolution', 'provider_request')\n and ${table.outcome} in ('authorized', 'denied')`,\n ),\n }),\n);\n\n// Immutable executable tool universe admitted to one exact attempt. Model MCP\n// and sandbox Codemode use the same digest and opaque identities from this row.\nexport const sessionAttemptToolCatalogs = pgTable(\n \"session_attempt_tool_catalogs\",\n {\n attemptId: uuid(\"attempt_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n catalogVersion: integer(\"catalog_version\").notNull(),\n generation: integer(\"generation\").notNull(),\n digest: text(\"digest\").notNull(),\n catalog: jsonb(\"catalog\").$type<AttemptToolCatalog>().notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull(),\n },\n (table) => ({\n attemptOwner: foreignKey({\n name: \"session_attempt_tool_catalogs_attempt_owner_fk\",\n columns: [table.accountId, table.workspaceId, table.sessionId, table.turnId, table.attemptId],\n foreignColumns: [\n sessionTurnAttempts.accountId,\n sessionTurnAttempts.workspaceId,\n sessionTurnAttempts.sessionId,\n sessionTurnAttempts.turnId,\n sessionTurnAttempts.id,\n ],\n }).onDelete(\"cascade\"),\n sessionTurn: index(\"session_attempt_tool_catalogs_session_turn_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.turnId,\n ),\n exactAuthorityDigest: uniqueIndex(\n \"session_attempt_tool_catalogs_exact_authority_digest_uidx\",\n ).on(\n table.accountId,\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.attemptId,\n table.executionGeneration,\n table.digest,\n ),\n versionValid: check(\n \"session_attempt_tool_catalogs_version_check\",\n sql`${table.catalogVersion} = 1 and ${table.generation} > 0 and ${table.executionGeneration} > 0`,\n ),\n digestValid: check(\n \"session_attempt_tool_catalogs_digest_check\",\n sql`${table.digest} ~ '^[0-9a-f]{64}$'`,\n ),\n catalogSize: check(\n \"session_attempt_tool_catalogs_size_check\",\n sql`octet_length(${table.catalog}::text) between 2 and 16777216`,\n ),\n catalogIdentity: check(\n \"session_attempt_tool_catalogs_catalog_identity_check\",\n sql`jsonb_typeof(${table.catalog}) = 'object'\n and ${table.catalog} ?& array[\n 'version', 'accountId', 'workspaceId', 'sessionId', 'turnId',\n 'attemptId', 'executionGeneration', 'generation', 'createdAt',\n 'digest', 'entries'\n ]::text[]\n and ${table.catalog}->>'accountId' = ${table.accountId}::text\n and ${table.catalog}->>'workspaceId' = ${table.workspaceId}::text\n and ${table.catalog}->>'sessionId' = ${table.sessionId}::text\n and ${table.catalog}->>'turnId' = ${table.turnId}::text\n and ${table.catalog}->>'attemptId' = ${table.attemptId}::text\n and (${table.catalog}->>'executionGeneration')::integer = ${table.executionGeneration}\n and (${table.catalog}->>'version')::integer = ${table.catalogVersion}\n and (${table.catalog}->>'generation')::integer = ${table.generation}\n and ${table.catalog}->>'digest' = ${table.digest}\n and jsonb_typeof(${table.catalog}->'entries') = 'array'\n and jsonb_array_length(${table.catalog}->'entries') <= 4096`,\n ),\n }),\n);\n\nexport const sessionAttemptModelContextSnapshots = pgTable(\n \"session_attempt_model_context_snapshots\",\n {\n attemptId: uuid(\"attempt_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n requestIndex: integer(\"request_index\").notNull(),\n capturedAt: timestamp(\"captured_at\", { withTimezone: true }).notNull(),\n snapshot: jsonb(\"snapshot\").$type<ModelContextSnapshot>().notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull(),\n },\n (table) => ({\n attemptOwner: foreignKey({\n name: \"session_attempt_model_context_snapshots_attempt_owner_fk\",\n columns: [table.accountId, table.workspaceId, table.sessionId, table.turnId, table.attemptId],\n foreignColumns: [\n sessionTurnAttempts.accountId,\n sessionTurnAttempts.workspaceId,\n sessionTurnAttempts.sessionId,\n sessionTurnAttempts.turnId,\n sessionTurnAttempts.id,\n ],\n }).onDelete(\"cascade\"),\n sessionLatest: index(\"session_attempt_model_context_snapshots_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.capturedAt.desc(),\n ),\n requestIndexValid: check(\n \"session_attempt_model_context_snapshots_request_index_check\",\n sql`${table.requestIndex} > 0 and ${table.executionGeneration} > 0`,\n ),\n snapshotSize: check(\n \"session_attempt_model_context_snapshots_size_check\",\n sql`octet_length(${table.snapshot}::text) between 2 and 16777216`,\n ),\n snapshotIdentity: check(\n \"session_attempt_model_context_snapshots_identity_check\",\n sql`jsonb_typeof(${table.snapshot}) = 'object'\n and ${table.snapshot} ?& array['version', 'capturedAt', 'source', 'requestIndex', 'instructions', 'layers', 'tools', 'skills', 'tokens']::text[]\n and (${table.snapshot}->>'version')::integer = 1\n and ${table.snapshot}->>'source' = 'model_request'\n and jsonb_typeof(${table.snapshot}->'layers') = 'array'\n and jsonb_typeof(${table.snapshot}->'tools') = 'array'\n and jsonb_typeof(${table.snapshot}->'skills') = 'array'`,\n ),\n }),\n);\n\n// Durable idempotency and outcome journal for calls made programmatically from\n// an attempt's sandbox. The active worker executes these through the exact same\n// in-memory AttemptToolEnvironment as model MCP calls.\nexport const sessionAttemptCodemodeCalls = pgTable(\n \"session_attempt_codemode_calls\",\n {\n operationId: uuid(\"operation_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n attemptId: uuid(\"attempt_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n catalogDigest: text(\"catalog_digest\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n serverId: text(\"server_id\").notNull(),\n toolName: text(\"tool_name\").notNull(),\n arguments: jsonb(\"arguments\").$type<Record<string, unknown>>().notNull(),\n callerSubjectId: text(\"caller_subject_id\").notNull(),\n state: text(\"state\", {\n enum: [\"queued\", \"running\", \"completed\", \"failed\", \"outcome_unknown\", \"cancelled\"],\n })\n .notNull()\n .default(\"queued\"),\n claimId: uuid(\"claim_id\"),\n result: jsonb(\"result\").$type<AttemptToolResult>(),\n errorCode: text(\"error_code\"),\n errorMessage: text(\"error_message\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n claimedAt: timestamp(\"claimed_at\", { withTimezone: true }),\n executionStartedAt: timestamp(\"execution_started_at\", {\n withTimezone: true,\n }),\n claimExpiresAt: timestamp(\"claim_expires_at\", { withTimezone: true }),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n catalog: foreignKey({\n name: \"session_attempt_codemode_calls_catalog_fk\",\n columns: [\n table.accountId,\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.attemptId,\n table.executionGeneration,\n table.catalogDigest,\n ],\n foreignColumns: [\n sessionAttemptToolCatalogs.accountId,\n sessionAttemptToolCatalogs.workspaceId,\n sessionAttemptToolCatalogs.sessionId,\n sessionAttemptToolCatalogs.turnId,\n sessionAttemptToolCatalogs.attemptId,\n sessionAttemptToolCatalogs.executionGeneration,\n sessionAttemptToolCatalogs.digest,\n ],\n }).onDelete(\"cascade\"),\n sessionTurn: index(\"session_attempt_codemode_calls_session_turn_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.createdAt,\n ),\n activeAttempt: index(\"session_attempt_codemode_calls_active_attempt_idx\")\n .on(table.workspaceId, table.attemptId, table.state)\n .where(sql`${table.state} in ('queued', 'running')`),\n generationsValid: check(\n \"session_attempt_codemode_calls_generation_check\",\n sql`${table.executionGeneration} > 0`,\n ),\n digestsValid: check(\n \"session_attempt_codemode_calls_digests_check\",\n sql`${table.catalogDigest} ~ '^[0-9a-f]{64}$' and ${table.requestDigest} ~ '^[0-9a-f]{64}$'`,\n ),\n identityValid: check(\n \"session_attempt_codemode_calls_identity_check\",\n sql`octet_length(${table.serverId}) between 1 and 256\n and octet_length(${table.toolName}) between 1 and 512\n and octet_length(${table.callerSubjectId}) between 1 and 1024`,\n ),\n argumentsSize: check(\n \"session_attempt_codemode_calls_arguments_size_check\",\n sql`jsonb_typeof(${table.arguments}) = 'object'\n and octet_length(${table.arguments}::text) between 2 and 4194304`,\n ),\n resultSize: check(\n \"session_attempt_codemode_calls_result_size_check\",\n sql`${table.result} is null or (\n jsonb_typeof(${table.result}) = 'object'\n and octet_length(${table.result}::text) between 2 and 16777216\n )`,\n ),\n lifecycleValid: check(\n \"session_attempt_codemode_calls_lifecycle_check\",\n sql`(\n ${table.state} = 'queued'\n and ${table.claimId} is null\n and ${table.claimedAt} is null\n and ${table.executionStartedAt} is null\n and ${table.claimExpiresAt} is null\n and ${table.completedAt} is null\n and ${table.result} is null\n and ${table.errorCode} is null\n and ${table.errorMessage} is null\n ) or (\n ${table.state} = 'running'\n and ${table.claimId} is not null\n and ${table.claimedAt} is not null\n and ${table.claimExpiresAt} is not null\n and ${table.completedAt} is null\n and ${table.result} is null\n and ${table.errorCode} is null\n and ${table.errorMessage} is null\n ) or (\n ${table.state} = 'completed'\n and ${table.claimId} is not null\n and ${table.claimedAt} is not null\n and ${table.executionStartedAt} is not null\n and ${table.claimExpiresAt} is not null\n and ${table.completedAt} is not null\n and ${table.result} is not null\n and ${table.errorCode} is null\n and ${table.errorMessage} is null\n ) or (\n ${table.state} = 'failed'\n and ${table.claimId} is not null\n and ${table.claimedAt} is not null\n and ${table.claimExpiresAt} is not null\n and ${table.completedAt} is not null\n and ${table.result} is null\n and ${table.errorCode} is not null\n and ${table.errorMessage} is not null\n ) or (\n ${table.state} = 'outcome_unknown'\n and ${table.claimId} is not null\n and ${table.claimedAt} is not null\n and ${table.executionStartedAt} is not null\n and ${table.claimExpiresAt} is not null\n and ${table.completedAt} is not null\n and ${table.result} is null\n and ${table.errorCode} is not null\n and ${table.errorMessage} is not null\n ) or (\n ${table.state} = 'cancelled'\n and ${table.claimId} is null\n and ${table.claimedAt} is null\n and ${table.executionStartedAt} is null\n and ${table.claimExpiresAt} is null\n and ${table.completedAt} is not null\n and ${table.result} is null\n and ${table.errorCode} is not null\n and ${table.errorMessage} is not null\n )`,\n ),\n }),\n);\n\nexport const connectorActionRequests = pgTable(\n \"connector_action_requests\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n creationAttemptId: uuid(\"creation_attempt_id\").notNull(),\n creationExecutionGeneration: integer(\"creation_execution_generation\").notNull(),\n executionAttemptId: uuid(\"execution_attempt_id\"),\n executionAttemptGeneration: integer(\"execution_attempt_generation\"),\n approvalId: text(\"approval_id\").notNull(),\n initiatorKind: text(\"initiator_kind\").$type<\"subject\" | \"service\">().notNull(),\n initiatorSubjectId: text(\"initiator_subject_id\").notNull(),\n connectionId: text(\"connection_id\").notNull(),\n connectionVersion: integer(\"connection_version\"),\n serverId: text(\"server_id\").notNull(),\n toolName: text(\"tool_name\").notNull(),\n actionName: text(\"action_name\").notNull(),\n // Attempt-frozen provenance intentionally survives policy deletion.\n policyId: uuid(\"policy_id\"),\n policyVersion: integer(\"policy_version\"),\n policySource: text(\"policy_source\").$type<\"explicit\" | \"ambiguous\">().notNull(),\n policyDecision: text(\"policy_decision\").$type<ConnectorActionPolicyDecision>().notNull(),\n actionFingerprint: text(\"action_fingerprint\").notNull(),\n status: text(\"status\")\n .$type<\n | \"pending\"\n | \"approved\"\n | \"rejected\"\n | \"blocked\"\n | \"executing\"\n | \"completed\"\n | \"failed\"\n | \"uncertain\"\n >()\n .notNull(),\n decision: text(\"decision\").$type<\"approve\" | \"reject\">(),\n decisionBySubjectId: text(\"decision_by_subject_id\"),\n decisionEventId: uuid(\"decision_event_id\"),\n decidedAt: timestamp(\"decided_at\", { withTimezone: true }),\n executionStartedAt: timestamp(\"execution_started_at\", {\n withTimezone: true,\n }),\n executionFinishedAt: timestamp(\"execution_finished_at\", {\n withTimezone: true,\n }),\n outcome: text(\"outcome\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n creationAttempt: foreignKey({\n name: \"connector_action_requests_creation_attempt_fk\",\n columns: [\n table.accountId,\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.creationAttemptId,\n ],\n foreignColumns: [\n sessionTurnAttempts.accountId,\n sessionTurnAttempts.workspaceId,\n sessionTurnAttempts.sessionId,\n sessionTurnAttempts.turnId,\n sessionTurnAttempts.id,\n ],\n }).onDelete(\"cascade\"),\n executionAttempt: foreignKey({\n name: \"connector_action_requests_execution_attempt_fk\",\n columns: [\n table.accountId,\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.executionAttemptId,\n ],\n foreignColumns: [\n sessionTurnAttempts.accountId,\n sessionTurnAttempts.workspaceId,\n sessionTurnAttempts.sessionId,\n sessionTurnAttempts.turnId,\n sessionTurnAttempts.id,\n ],\n }).onDelete(\"cascade\"),\n identity: uniqueIndex(\"connector_action_requests_identity_uq\").on(\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.approvalId,\n ),\n attemptStatus: index(\"connector_action_requests_attempt_status_idx\").on(\n table.workspaceId,\n table.creationAttemptId,\n table.status,\n ),\n sessionCreated: index(\"connector_action_requests_session_created_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.createdAt.desc(),\n table.id.desc(),\n ),\n policyDecisionValid: check(\n \"connector_action_requests_policy_decision_chk\",\n sql`${table.policyDecision} in ('allow', 'ask', 'block')`,\n ),\n statusValid: check(\n \"connector_action_requests_status_chk\",\n sql`${table.status} in (\n 'pending', 'approved', 'rejected', 'blocked', 'executing',\n 'completed', 'failed', 'uncertain'\n )`,\n ),\n }),\n);\n\n// One durable idempotency/operation record for every queue, control,\n// foreground Send/Steer, and Agent MCP mutation. The database migration owns\n// the NULLS NOT DISTINCT uniqueness form because Drizzle does not model it.\nexport const sessionCommandReceipts = pgTable(\n \"session_command_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n actorType: text(\"actor_type\").notNull(),\n actorSubjectId: text(\"actor_subject_id\"),\n actorAttemptId: uuid(\"actor_attempt_id\"),\n action: text(\"action\").notNull(),\n targetSessionId: uuid(\"target_session_id\"),\n targetTurnId: uuid(\"target_turn_id\"),\n operationKey: text(\"operation_key\").notNull(),\n canonicalRequestHash: text(\"canonical_request_hash\").notNull(),\n appliedControlRevision: bigint(\"applied_control_revision\", {\n mode: \"number\",\n }),\n appliedQueueVersion: integer(\"applied_queue_version\"),\n appliedTurnVersion: integer(\"applied_turn_version\"),\n appliedDraftRevision: bigint(\"applied_draft_revision\", { mode: \"number\" }),\n result: jsonb(\"result\").$type<Record<string, unknown>>().notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_command_receipts_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n actorAttempt: foreignKey({\n name: \"session_command_receipts_actor_attempt_fk\",\n columns: [table.workspaceId, table.actorAttemptId],\n foreignColumns: [sessionTurnAttempts.workspaceId, sessionTurnAttempts.id],\n }).onDelete(\"restrict\"),\n targetSession: foreignKey({\n name: \"session_command_receipts_target_session_fk\",\n columns: [table.workspaceId, table.targetSessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n targetTurn: foreignKey({\n name: \"session_command_receipts_target_turn_fk\",\n columns: [table.workspaceId, table.targetTurnId],\n foreignColumns: [sessionTurns.workspaceId, sessionTurns.id],\n }).onDelete(\"restrict\"),\n workspaceIdentity: uniqueIndex(\"session_command_receipts_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n targetCreated: index(\"session_command_receipts_target_created_idx\").on(\n table.workspaceId,\n table.targetSessionId,\n table.createdAt,\n ),\n promptActorOperation: index(\"session_command_receipts_prompt_actor_operation_idx\")\n .on(\n table.workspaceId,\n table.actorType,\n table.actorSubjectId,\n table.actorAttemptId,\n table.operationKey,\n )\n .where(sql`${table.action} in ('prompt.send', 'prompt.steer')`),\n goalUpdateOperation: uniqueIndex(\"session_command_receipts_goal_update_operation_uq\")\n .on(table.workspaceId, table.action, table.targetSessionId, table.operationKey)\n .where(sql`${table.action} = 'goal.update'`),\n waitForInputOperation: uniqueIndex(\"session_command_receipts_wait_for_input_operation_uq\")\n .on(table.workspaceId, table.action, table.targetSessionId, table.operationKey)\n .where(sql`${table.action} = 'session.wait_for_input'`),\n actorValid: check(\n \"session_command_receipts_actor_check\",\n sql`(\n ${table.actorType} = 'agent_attempt'\n and ${table.actorAttemptId} is not null\n and ${table.actorSubjectId} is null\n ) or (\n ${table.actorType} in ('human', 'operator', 'service')\n and ${table.actorSubjectId} is not null\n and ${table.actorAttemptId} is null\n )`,\n ),\n }),\n);\n\n// One workspace-scoped durable invalidation per committed control revision.\n// This is deliberately separate from conversation/session events: a parent or\n// workspace Pause can change thousands of effective projections without\n// manufacturing one event (or queue row) per descendant.\nexport const workspaceControlEvents = pgTable(\n \"workspace_control_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull(),\n scope: text(\"scope\").notNull(),\n rootSessionId: uuid(\"root_session_id\"),\n action: text(\"action\").notNull(),\n automatic: boolean(\"automatic\").notNull().default(false),\n reason: text(\"reason\"),\n reasonOriginalBytes: integer(\"reason_original_bytes\"),\n actor: text(\"actor\").notNull(),\n // Null is the rolling-upgrade shape for untouched, already-bounded legacy\n // rows. New writes and rewritten poison rows carry exact source byte facts.\n actorOriginalBytes: integer(\"actor_original_bytes\"),\n occurredAt: timestamp(\"occurred_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"workspace_control_events_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n rootSession: foreignKey({\n name: \"workspace_control_events_root_session_fk\",\n columns: [table.workspaceId, table.rootSessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n workspaceRevision: uniqueIndex(\"workspace_control_events_workspace_revision_uq\").on(\n table.workspaceId,\n table.revision,\n ),\n revisionValid: check(\"workspace_control_events_revision_check\", sql`${table.revision} > 0`),\n shapeValid: check(\n \"workspace_control_events_shape_check\",\n sql`(${table.scope} = 'workspace' and ${table.rootSessionId} is null)\n or (${table.scope} = 'session' and ${table.rootSessionId} is not null)`,\n ),\n actionValid: check(\n \"workspace_control_events_action_check\",\n sql`${table.action} in ('pause', 'resume', 'timer_set', 'timer_cancelled')`,\n ),\n }),\n);\n\n// An interruption is an independently durable request against an exact live\n// attempt. Multiple Pause/Steer causes coexist; no scalar session field owns\n// delivery or settlement.\nexport const sessionAttemptInterruptions = pgTable(\n \"session_attempt_interruptions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n attemptId: uuid(\"attempt_id\").notNull(),\n kind: text(\"kind\").notNull(),\n controlRevision: bigint(\"control_revision\", { mode: \"number\" }).notNull(),\n state: text(\"state\").notNull().default(\"pending\"),\n requestedAt: timestamp(\"requested_at\", { withTimezone: true }).notNull().defaultNow(),\n deliveredAt: timestamp(\"delivered_at\", { withTimezone: true }),\n acknowledgedAt: timestamp(\"acknowledged_at\", { withTimezone: true }),\n settledAt: timestamp(\"settled_at\", { withTimezone: true }),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_attempt_interruptions_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"session_attempt_interruptions_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n operation: foreignKey({\n name: \"session_attempt_interruptions_operation_fk\",\n columns: [table.workspaceId, table.operationId],\n foreignColumns: [sessionCommandReceipts.workspaceId, sessionCommandReceipts.id],\n }).onDelete(\"restrict\"),\n attempt: foreignKey({\n name: \"session_attempt_interruptions_attempt_fk\",\n columns: [table.workspaceId, table.attemptId],\n foreignColumns: [sessionTurnAttempts.workspaceId, sessionTurnAttempts.id],\n }).onDelete(\"restrict\"),\n operationAttempt: uniqueIndex(\"session_attempt_interruptions_operation_attempt_uq\").on(\n table.operationId,\n table.attemptId,\n ),\n unsettled: index(\"session_attempt_interruptions_unsettled_idx\")\n .on(table.workspaceId, table.sessionId, table.requestedAt)\n .where(sql`${table.state} in ('pending', 'delivered', 'acknowledged')`),\n kindValid: check(\n \"session_attempt_interruptions_kind_check\",\n sql`${table.kind} in ('session_pause', 'workspace_pause', 'steer', 'maintenance', 'authority_change', 'organization_membership_revoked')`,\n ),\n stateValid: check(\n \"session_attempt_interruptions_state_check\",\n sql`${table.state} in ('pending', 'delivered', 'acknowledged', 'settled', 'rejected_stale')`,\n ),\n }),\n);\n\n// Private, authenticated-subject composer truth. Editing a queued prompt and\n// restoring it here is one transaction; human drafts are never agent-visible.\nexport const composerDrafts = pgTable(\n \"composer_drafts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull().default(1),\n text: text(\"text\").notNull().default(\"\"),\n annotations: jsonb(\"annotations\").$type<DraftTimelineAnnotation[]>().notNull().default([]),\n resources: jsonb(\"resources\").$type<unknown[]>().notNull().default([]),\n tools: jsonb(\"tools\").$type<unknown[]>().notNull().default([]),\n toolsProvided: boolean(\"tools_provided\").notNull().default(false),\n model: text(\"model\").notNull(),\n reasoningEffort: text(\"reasoning_effort\").notNull(),\n latencyMode: text(\"latency_mode\").notNull().default(\"standard\"),\n sourceTurnId: uuid(\"source_turn_id\"),\n sourceTurnVersion: integer(\"source_turn_version\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"composer_drafts_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"composer_drafts_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n sourceTurn: foreignKey({\n name: \"composer_drafts_source_turn_fk\",\n columns: [table.workspaceId, table.sourceTurnId],\n foreignColumns: [sessionTurns.workspaceId, sessionTurns.id],\n }).onDelete(\"restrict\"),\n subjectSession: uniqueIndex(\"composer_drafts_subject_session_uq\").on(\n table.workspaceId,\n table.sessionId,\n table.subjectId,\n ),\n subjectValid: check(\n \"composer_drafts_subject_check\",\n sql`length(btrim(${table.subjectId})) > 0`,\n ),\n revisionValid: check(\"composer_drafts_revision_check\", sql`${table.revision} >= 1`),\n latencyModeValid: check(\n \"composer_drafts_latency_mode_check\",\n sql`${table.latencyMode} in ('standard', 'priority', 'fast')`,\n ),\n }),\n);\n\n// Private pre-session composer truth. It is separate from composerDrafts so\n// the established-session table keeps its mandatory session foreign key.\nexport const newSessionDrafts = pgTable(\n \"new_session_drafts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull().default(1),\n text: text(\"text\").notNull().default(\"\"),\n resources: jsonb(\"resources\").$type<unknown[]>().notNull().default([]),\n tools: jsonb(\"tools\").$type<unknown[]>().notNull().default([]),\n model: text(\"model\").notNull(),\n reasoningEffort: text(\"reasoning_effort\").notNull(),\n latencyMode: text(\"latency_mode\").notNull().default(\"standard\"),\n sessionOptions: jsonb(\"session_options\").$type<Record<string, unknown>>().notNull().default({}),\n // Project provenance is schema-owned so rolling old Drizzle binaries do\n // not select or overwrite it while updating the public draft columns.\n // A null snapshot means absent/unknown; a non-null snapshot plus a null\n // channel means explicit Default provenance.\n selectedProjectChannelId: uuid(\"selected_project_channel_id\"),\n selectedProjectComputeSnapshot: jsonb(\"selected_project_compute_snapshot\").$type<\n Record<string, unknown>\n >(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"new_session_drafts_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n subjectWorkspace: uniqueIndex(\"new_session_drafts_subject_workspace_uq\").on(\n table.workspaceId,\n table.subjectId,\n ),\n subjectValid: check(\n \"new_session_drafts_subject_check\",\n sql`length(btrim(${table.subjectId})) > 0`,\n ),\n revisionValid: check(\"new_session_drafts_revision_check\", sql`${table.revision} >= 1`),\n latencyModeValid: check(\n \"new_session_drafts_latency_mode_check\",\n sql`${table.latencyMode} in ('standard', 'priority', 'fast')`,\n ),\n projectProvenanceValid: check(\n \"new_session_drafts_project_provenance_check\",\n sql`(${table.selectedProjectComputeSnapshot} is null and ${table.selectedProjectChannelId} is null) or jsonb_typeof(${table.selectedProjectComputeSnapshot}) = 'object'`,\n ),\n }),\n);\n\nexport const sessionSystemUpdates = pgTable(\n \"session_system_updates\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n kind: text(\"kind\").notNull(),\n classification: text(\"classification\").notNull().default(\"info\"),\n sourceId: text(\"source_id\").notNull(),\n dedupeKey: text(\"dedupe_key\").notNull(),\n summary: losslessText(\"summary\").notNull(),\n summaryCodecVersion: losslessCodecVersion(\"summary_codec_version\"),\n payload: losslessJsonb(\"payload\").$type<Record<string, unknown>>().notNull().default({}),\n payloadCodecVersion: losslessCodecVersion(\"payload_codec_version\"),\n lineage: jsonb(\"lineage\").$type<Record<string, unknown>>().notNull().default({}),\n // Private immutable authority frozen when this machine input is accepted.\n // Public projections intentionally omit connection ids and owner subjects.\n personalConnectionDelegations: jsonb(\"personal_connection_delegations\")\n .$type<McpPersonalConnectionDelegation[]>()\n .notNull()\n .default([]),\n xaiProviderAccountAuthoritySnapshot: jsonb(\"xai_provider_account_authority_snapshot\")\n .$type<XaiProviderAccountAuthoritySnapshotV1>()\n .notNull()\n .default(WORKSPACE_XAI_PROVIDER_ACCOUNT_AUTHORITY_SNAPSHOT_V1),\n // Private scheduled-occurrence authority linkage. Public update/event\n // projections intentionally omit this producer identifier.\n scheduledTaskRunId: uuid(\"scheduled_task_run_id\"),\n // pending is visible queue truth; delivered means its exact model-memory\n // batch was durably claimed. Terminal cancellation/supersession is explicit.\n state: text(\"state\").notNull().default(\"pending\"),\n deliveredTurnId: uuid(\"delivered_turn_id\").references(() => sessionTurns.id, {\n onDelete: \"set null\",\n }),\n // Migration owns the forward FK to session_history_items, declared later.\n // Every member of one claimed batch points at the exact model-memory row.\n deliveredHistoryItemId: uuid(\"delivered_history_item_id\"),\n deliveredAt: timestamp(\"delivered_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n kindValid: check(\n \"system_updates_kind_check\",\n sql`${table.kind} in ('scheduled_occurrence', 'goal_continuation', 'agent_message', 'agent_steer_instruction', 'session_wait_timeout', 'background_command_result', 'child_terminal_result', 'media_generation_result', 'child_requires_action', 'child_requires_action_resolved', 'child_paused', 'child_waiting_capacity', 'child_progress')`,\n ),\n payloadKindValid: check(\n \"system_updates_payload_kind_check\",\n sql`${table.payload} ->> 'type' = ${table.kind}`,\n ),\n stateValid: check(\n \"system_updates_state_check\",\n sql`${table.state} in ('pending', 'delivered', 'cancelled', 'superseded', 'failed')`,\n ),\n dedupe: uniqueIndex(\"session_system_updates_dedupe_uq\").on(\n table.workspaceId,\n table.sessionId,\n table.dedupeKey,\n ),\n pending: index(\"session_system_updates_pending_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.state,\n table.createdAt,\n ),\n // Producer-side supersession / resolution of one child's pending notices\n // of one kind on the parent (migration 0325).\n pendingKindSource: index(\"session_system_updates_pending_kind_source_idx\")\n .on(table.workspaceId, table.sessionId, table.kind, table.sourceId)\n .where(sql`${table.state} = 'pending'`),\n onePendingSteer: uniqueIndex(\"session_system_updates_one_pending_steer_idx\")\n .on(table.workspaceId, table.sessionId)\n .where(sql`${table.kind} = 'agent_steer_instruction' and ${table.state} = 'pending'`),\n deliveryHistoryValid: check(\n \"session_system_updates_delivery_history_check\",\n sql`(\n (${table.state} = 'delivered' and ${table.deliveredHistoryItemId} is not null)\n or\n (${table.state} <> 'delivered' and ${table.deliveredHistoryItemId} is null)\n )`,\n ),\n }),\n);\n\n/**\n * Durable child-terminal producer outbox. The source terminal transaction\n * inserts this row; fan-in delivery marks it delivered inside\n * addSessionSystemUpdateWithSourceMutation. A bounded reconciler may retry a\n * committed row after any worker/process death without duplicating a member.\n */\nexport const sessionSystemUpdateOutbox = pgTable(\n \"session_system_update_outbox\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sourceSessionId: uuid(\"source_session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n targetSessionId: uuid(\"target_session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n dedupeKey: text(\"dedupe_key\").notNull(),\n kind: text(\"kind\").notNull(),\n classification: text(\"classification\").notNull(),\n sourceId: text(\"source_id\").notNull(),\n summary: losslessText(\"summary\").notNull(),\n summaryCodecVersion: losslessCodecVersion(\"summary_codec_version\"),\n payload: losslessJsonb(\"payload\").$type<Record<string, unknown>>().notNull().default({}),\n payloadCodecVersion: losslessCodecVersion(\"payload_codec_version\"),\n lineage: jsonb(\"lineage\").$type<Record<string, unknown>>().notNull().default({}),\n // Exact private authority copied from the causal parent turn in the source\n // terminal transaction. Delivery retries cannot replace this snapshot.\n personalConnectionDelegations: jsonb(\"personal_connection_delegations\")\n .$type<McpPersonalConnectionDelegation[]>()\n .notNull()\n .default([]),\n xaiProviderAccountAuthoritySnapshot: jsonb(\"xai_provider_account_authority_snapshot\")\n .$type<XaiProviderAccountAuthoritySnapshotV1>()\n .notNull()\n .default(WORKSPACE_XAI_PROVIDER_ACCOUNT_AUTHORITY_SNAPSHOT_V1),\n status: text(\"status\").notNull().default(\"pending\"),\n attempts: integer(\"attempts\").notNull().default(0),\n updateId: uuid(\"update_id\"),\n lastError: text(\"last_error\"),\n deliveredAt: timestamp(\"delivered_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n kindValid: check(\n \"system_update_outbox_kind_check\",\n sql`${table.kind} in ('child_terminal_result', 'child_requires_action', 'child_requires_action_resolved', 'child_paused', 'child_waiting_capacity', 'child_progress')`,\n ),\n payloadKindValid: check(\n \"system_update_outbox_payload_kind_check\",\n sql`${table.payload} ->> 'type' = ${table.kind}`,\n ),\n dedupe: uniqueIndex(\"session_system_update_outbox_dedupe_uq\").on(\n table.workspaceId,\n table.dedupeKey,\n ),\n pending: index(\"session_system_update_outbox_pending_idx\").on(table.status, table.createdAt),\n }),\n);\n\n/**\n * Transactional delivery ledger for session-workflow wakeups. Postgres owns\n * work eligibility; Temporal signals are only nudges. One coalescing row per\n * session makes a committed mutation repairable without periodically scanning\n * every session that happens to look runnable.\n */\nexport const sessionWorkflowWakeOutbox = pgTable(\n \"session_workflow_wake_outbox\",\n {\n sessionId: uuid(\"session_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n temporalWorkflowId: text(\"temporal_workflow_id\").notNull(),\n wakeRevision: bigint(\"wake_revision\", { mode: \"number\" }).notNull().default(1),\n deliveredRevision: bigint(\"delivered_revision\", { mode: \"number\" }).notNull().default(0),\n controlRevision: bigint(\"control_revision\", { mode: \"number\" }).notNull().default(0),\n reason: text(\"reason\").notNull(),\n attempts: integer(\"attempts\").notNull().default(0),\n nextAttemptAt: timestamp(\"next_attempt_at\", { withTimezone: true }).notNull().defaultNow(),\n lastError: text(\"last_error\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n revisionValid: check(\n \"session_workflow_wake_outbox_revision_check\",\n sql`${table.wakeRevision} > 0 and ${table.deliveredRevision} >= 0 and ${table.deliveredRevision} <= ${table.wakeRevision}`,\n ),\n revisionSafe: check(\n \"session_workflow_wake_outbox_revision_safe_check\",\n sql`${table.wakeRevision} <= 9007199254740991 and ${table.deliveredRevision} <= 9007199254740991`,\n ),\n controlRevisionValid: check(\n \"session_workflow_wake_outbox_control_revision_check\",\n sql`${table.controlRevision} >= 0 and ${table.controlRevision} <= ${table.wakeRevision} and ${table.controlRevision} <= 9007199254740991`,\n ),\n workspaceAccount: foreignKey({\n name: \"session_workflow_wake_outbox_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSessionFk: foreignKey({\n name: \"session_workflow_wake_outbox_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n workspaceSession: uniqueIndex(\"session_workflow_wake_outbox_workspace_session_uq\").on(\n table.workspaceId,\n table.sessionId,\n ),\n pending: index(\"session_workflow_wake_outbox_pending_idx\")\n .on(table.nextAttemptAt, table.updatedAt, table.sessionId)\n .where(sql`${table.wakeRevision} > ${table.deliveredRevision}`),\n }),\n);\n\nexport const sessionGoals = pgTable(\n \"session_goals\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n status: text(\"status\").notNull().default(\"active\"), // active | paused | completed\n text: text(\"text\").notNull(),\n successCriteria: text(\"success_criteria\"),\n rootConstraints: jsonb(\"root_constraints\").$type<string[]>().notNull().default([]),\n evidence: text(\"evidence\"), // set by goal_complete\n rationale: text(\"rationale\"), // set by goal_pause\n pausedReason: text(\"paused_reason\"), // agent | user_pause | api | no_progress | max_auto_continuations | limits\n createdBy: text(\"created_by\").notNull().default(\"api\"), // api | agent | scheduled_task\n version: integer(\"version\").notNull().default(1), // bumped on every set/update; progress signal\n // Semantic objective changes use a separate fence. `version` remains the\n // established lifecycle/wake identity for continuation compatibility.\n objectiveRevision: integer(\"objective_revision\").notNull().default(1),\n mutationPolicy: text(\"mutation_policy\")\n .$type<SessionGoalMutationPolicy>()\n .notNull()\n .default(\"preserve_intent\"),\n autoContinuations: integer(\"auto_continuations\").notNull().default(0),\n noProgressStreak: integer(\"no_progress_streak\").notNull().default(0),\n maxAutoContinuations: integer(\"max_auto_continuations\"), // per-goal override; a configured settings cap (if any) remains the hard ceiling\n lastContinuationTurnId: uuid(\"last_continuation_turn_id\"),\n versionAtLastContinuation: integer(\"version_at_last_continuation\"),\n // Postgres owns the continuation obligation. Terminal settlement advances\n // wakeRevision in the same transaction that makes the session idle;\n // materialization advances observedRevision only alongside the one typed\n // update, timeline events, usage row, and workflow-wake outbox row.\n // Temporal signals and workflow history are replaceable nudges over these\n // monotonic revisions.\n continuationWakeRevision: bigint(\"continuation_wake_revision\", {\n mode: \"number\",\n })\n .notNull()\n .default(0),\n continuationObservedRevision: bigint(\"continuation_observed_revision\", {\n mode: \"number\",\n })\n .notNull()\n .default(0),\n // A terminal condition can keep the goal active while making unchanged\n // autonomous input unsafe. The fence is honored only while this remains\n // the newest finished turn; newer work or a goal mutation clears it.\n continuationSuppressedTurnId: uuid(\"continuation_suppressed_turn_id\"),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"session_goals_workspace_id_idx\").on(\n table.workspaceId,\n table.id,\n ),\n workspaceSession: uniqueIndex(\"session_goals_workspace_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n ),\n status: index(\"session_goals_workspace_status_idx\").on(table.workspaceId, table.status),\n continuationRevisionValid: check(\n \"session_goals_continuation_revision_check\",\n sql`${table.continuationWakeRevision} >= 0 and ${table.continuationObservedRevision} >= 0 and ${table.continuationObservedRevision} <= ${table.continuationWakeRevision} and ${table.continuationWakeRevision} <= 9007199254740991 and ${table.continuationObservedRevision} <= 9007199254740991`,\n ),\n }),\n);\n\n/**\n * Immutable semantic goal history. A proposal is never model-visible until a\n * later applied row references it; rejection is another immutable decision\n * row rather than mutation of the original proposal.\n */\nexport const sessionGoalRevisions = pgTable(\n \"session_goal_revisions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n goalId: uuid(\"goal_id\").notNull(),\n disposition: text(\"disposition\").$type<\"applied\" | \"proposed\" | \"rejected\">().notNull(),\n changeKind: text(\"change_kind\").$type<SessionGoalChangeKind>().notNull(),\n baseObjectiveRevision: integer(\"base_objective_revision\").notNull(),\n resultObjectiveRevision: integer(\"result_objective_revision\"),\n text: text(\"text\").notNull(),\n successCriteria: text(\"success_criteria\"),\n rootConstraints: jsonb(\"root_constraints\").$type<string[]>().notNull().default([]),\n mutationPolicy: text(\"mutation_policy\").$type<SessionGoalMutationPolicy>().notNull(),\n rationale: text(\"rationale\").notNull(),\n actor: text(\"actor\").$type<\"agent\" | \"api\" | \"scheduled_task\">().notNull(),\n actorTurnId: uuid(\"actor_turn_id\"),\n actorAttemptId: uuid(\"actor_attempt_id\"),\n proposalId: uuid(\"proposal_id\"),\n rollbackOfRevisionId: uuid(\"rollback_of_revision_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_goal_revisions_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"session_goal_revisions_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n actorTurn: foreignKey({\n name: \"session_goal_revisions_actor_turn_fk\",\n columns: [table.workspaceId, table.actorTurnId],\n foreignColumns: [sessionTurns.workspaceId, sessionTurns.id],\n }).onDelete(\"restrict\"),\n actorAttempt: foreignKey({\n name: \"session_goal_revisions_actor_attempt_fk\",\n columns: [table.workspaceId, table.actorAttemptId],\n foreignColumns: [sessionTurnAttempts.workspaceId, sessionTurnAttempts.id],\n }).onDelete(\"restrict\"),\n proposal: foreignKey({\n name: \"session_goal_revisions_proposal_fk\",\n columns: [table.workspaceId, table.proposalId],\n foreignColumns: [table.workspaceId, table.id],\n }).onDelete(\"restrict\"),\n rollbackOfRevision: foreignKey({\n name: \"session_goal_revisions_rollback_of_revision_fk\",\n columns: [table.workspaceId, table.rollbackOfRevisionId],\n foreignColumns: [table.workspaceId, table.id],\n }).onDelete(\"restrict\"),\n appliedRevision: uniqueIndex(\"session_goal_revisions_applied_revision_uq\")\n .on(table.workspaceId, table.goalId, table.resultObjectiveRevision)\n .where(sql`${table.disposition} = 'applied'`),\n goalTimeline: index(\"session_goal_revisions_goal_timeline_idx\").on(\n table.workspaceId,\n table.goalId,\n table.createdAt,\n table.id,\n ),\n proposalDecision: uniqueIndex(\"session_goal_revisions_proposal_decision_uq\")\n .on(table.workspaceId, table.proposalId)\n .where(\n sql`${table.proposalId} is not null and ${table.disposition} in ('applied', 'rejected')`,\n ),\n rollbackRequest: uniqueIndex(\"session_goal_revisions_rollback_request_uq\")\n .on(table.workspaceId, table.goalId, table.rollbackOfRevisionId, table.baseObjectiveRevision)\n .where(sql`${table.disposition} = 'applied' and ${table.rollbackOfRevisionId} is not null`),\n dispositionValid: check(\n \"session_goal_revisions_disposition_chk\",\n sql`${table.disposition} in ('applied', 'proposed', 'rejected')`,\n ),\n changeKindValid: check(\n \"session_goal_revisions_change_kind_chk\",\n sql`${table.changeKind} in ('refinement', 'adaptation', 'replacement')`,\n ),\n policyValid: check(\n \"session_goal_revisions_policy_chk\",\n sql`${table.mutationPolicy} in ('review_changes', 'preserve_intent', 'autonomous_adaptation')`,\n ),\n revisionShape: check(\n \"session_goal_revisions_revision_shape_chk\",\n sql`(${table.disposition} = 'applied' and ${table.resultObjectiveRevision} = ${table.baseObjectiveRevision} + 1)\n or (${table.disposition} in ('proposed', 'rejected') and ${table.resultObjectiveRevision} is null)`,\n ),\n lineageShape: check(\n \"session_goal_revisions_lineage_shape_chk\",\n sql`(${table.disposition} = 'proposed' and ${table.proposalId} is null and ${table.rollbackOfRevisionId} is null)\n or (${table.disposition} = 'rejected' and ${table.proposalId} is not null and ${table.rollbackOfRevisionId} is null)\n or (${table.disposition} = 'applied' and not (${table.proposalId} is not null and ${table.rollbackOfRevisionId} is not null))`,\n ),\n }),\n);\n\n// credential allocator: one durable, coalescing capacity waiter per session. The row is both\n// the wait state and the commit->signal outbox: capacity mutations increment\n// wakeRevision in the SAME transaction as the mutation, while the session\n// workflow advances observedWakeRevision only after it has re-evaluated the\n// allocator. Temporal signals are therefore repairable nudges rather than the\n// source of truth. No credential material or provider response is stored here.\n//\n// The session/goal/turn foreign keys are declared in migration 0053 so the\n// table keeps the same composite workspace-integrity posture as credential\n// leases. Control is evaluated independently at admission and never changes a\n// capacity waiter's identity. policy filter supplies policyHash when accepted-turn\n// pool routing lands.\nexport const codexCapacityWaiters = pgTable(\n \"codex_capacity_waiters\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\").notNull(),\n goalId: uuid(\"goal_id\"),\n blockedTurnId: uuid(\"blocked_turn_id\").notNull(),\n blockedTurnGeneration: integer(\"blocked_turn_generation\").notNull(),\n workflowId: text(\"workflow_id\").notNull(),\n generation: integer(\"generation\").notNull().default(1),\n status: text(\"status\").notNull().default(\"waiting\"), // waiting | resumed | superseded\n goalVersion: integer(\"goal_version\"),\n policyHash: text(\"policy_hash\"),\n earliestResetAt: timestamp(\"earliest_reset_at\", { withTimezone: true }),\n nextCheckAt: timestamp(\"next_check_at\", { withTimezone: true }).notNull(),\n resetKind: text(\"reset_kind\").notNull(), // authoritative | bounded_refresh | mutation_only\n refreshAttempt: integer(\"refresh_attempt\").notNull().default(0),\n // Coalescing outbox generation. Every eligibility-affecting mutation bumps\n // wakeRevision. Duplicate/lost Temporal signals are harmless because only\n // the row-locked evaluator moves observedWakeRevision and may enqueue work.\n wakeRevision: integer(\"wake_revision\").notNull().default(1),\n observedWakeRevision: integer(\"observed_wake_revision\").notNull().default(0),\n lastWakeReason: text(\"last_wake_reason\").notNull().default(\"capacity_wait_armed\"),\n resumedUpdateId: uuid(\"resumed_update_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceSession: uniqueIndex(\"codex_capacity_waiters_workspace_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n ),\n workspaceId: uniqueIndex(\"codex_capacity_waiters_workspace_id_idx\").on(\n table.workspaceId,\n table.id,\n ),\n pending: index(\"codex_capacity_waiters_pending_idx\").on(\n table.workspaceId,\n table.status,\n table.nextCheckAt,\n ),\n wakeRepair: index(\"codex_capacity_waiters_wake_repair_idx\").on(\n table.status,\n table.wakeRevision,\n table.observedWakeRevision,\n ),\n }),\n);\n\n// Per-session pin and last-account state is kept outside the shared session row\n// so user-scoped account identifiers remain behind the same exact-subject RLS\n// policy as every other xAI persistence table.\nexport const xaiSessionAccountPins = pgTable(\n \"xai_session_account_pins\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\").notNull(),\n authorityScope: text(\"authority_scope\").notNull().default(\"workspace\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n pinnedCredentialId: uuid(\"pinned_credential_id\"),\n pinSource: text(\"pin_source\"),\n lastCredentialId: uuid(\"last_credential_id\"),\n version: integer(\"version\").notNull().default(1),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n // Migration 0231 adds NULLS NOT DISTINCT so workspace scope is also a\n // singleton; Drizzle 0.45 cannot encode that PostgreSQL index modifier.\n workspaceSessionPool: uniqueIndex(\"xai_session_account_pins_workspace_session_uq\").on(\n table.workspaceId,\n table.sessionId,\n table.authorityScope,\n table.ownerOrganizationMembershipId,\n ),\n scopeValid: check(\n \"xai_session_account_pins_authority_scope_chk\",\n sql`(${table.authorityScope} in ('workspace', 'organization') and ${table.ownerOrganizationMembershipId} is null)\n or (${table.authorityScope} = 'user' and ${table.ownerOrganizationMembershipId} is not null)`,\n ),\n pinValid: check(\n \"xai_session_account_pins_pin_chk\",\n sql`(${table.pinnedCredentialId} is null and ${table.pinSource} is null)\n or (${table.pinnedCredentialId} is not null and ${table.pinSource} in ('manual', 'policy'))`,\n ),\n versionValid: check(\"xai_session_account_pins_version_chk\", sql`${table.version} > 0`),\n }),\n);\n\n// Durable same-turn capacity wait. The blocked turn owns the immutable xAI\n// authority snapshot; this row carries only pool scope and wake/retry metadata.\nexport const xaiCapacityWaiters = pgTable(\n \"xai_capacity_waiters\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\").notNull(),\n goalId: uuid(\"goal_id\"),\n goalVersion: integer(\"goal_version\"),\n blockedTurnId: uuid(\"blocked_turn_id\").notNull(),\n blockedTurnGeneration: integer(\"blocked_turn_generation\").notNull(),\n workflowId: text(\"workflow_id\").notNull(),\n authorityScope: text(\"authority_scope\").notNull(),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n status: text(\"status\").notNull().default(\"waiting\"),\n generation: integer(\"generation\").notNull().default(1),\n earliestResetAt: timestamp(\"earliest_reset_at\", { withTimezone: true }),\n nextCheckAt: timestamp(\"next_check_at\", { withTimezone: true }).notNull(),\n wakeRevision: integer(\"wake_revision\").notNull().default(1),\n observedWakeRevision: integer(\"observed_wake_revision\").notNull().default(0),\n lastWakeReason: text(\"last_wake_reason\").notNull().default(\"capacity_wait_armed\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n // Migration 0234 uses NULLS NOT DISTINCT so workspace scope is also a\n // singleton; Drizzle 0.45 cannot encode that PostgreSQL index modifier.\n workspaceSessionPool: uniqueIndex(\"xai_capacity_waiters_workspace_session_uq\").on(\n table.workspaceId,\n table.sessionId,\n table.authorityScope,\n table.ownerOrganizationMembershipId,\n ),\n pending: index(\"xai_capacity_waiters_pending_idx\").on(\n table.workspaceId,\n table.status,\n table.nextCheckAt,\n ),\n wakeRepair: index(\"xai_capacity_waiters_wake_repair_idx\").on(\n table.status,\n table.wakeRevision,\n table.observedWakeRevision,\n ),\n scopeValid: check(\n \"xai_capacity_waiters_authority_scope_chk\",\n sql`(${table.authorityScope} in ('workspace', 'organization') and ${table.ownerOrganizationMembershipId} is null)\n or (${table.authorityScope} = 'user' and ${table.ownerOrganizationMembershipId} is not null)`,\n ),\n statusValid: check(\n \"xai_capacity_waiters_status_chk\",\n sql`${table.status} in ('waiting', 'resumed', 'superseded')`,\n ),\n countersValid: check(\n \"xai_capacity_waiters_counters_chk\",\n sql`${table.blockedTurnGeneration} >= 0\n and ${table.generation} > 0\n and ${table.wakeRevision} > 0\n and ${table.observedWakeRevision} >= 0\n and ${table.observedWakeRevision} <= ${table.wakeRevision}`,\n ),\n goalFenceValid: check(\n \"xai_capacity_waiters_goal_fence_chk\",\n sql`(${table.goalId} is null and ${table.goalVersion} is null)\n or (${table.goalId} is not null and ${table.goalVersion} > 0)`,\n ),\n }),\n);\n\nexport const sessionEventCursors = pgTable(\n \"session_event_cursors\",\n {\n sessionId: uuid(\"session_id\")\n .primaryKey()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n lastSequence: integer(\"last_sequence\").notNull().default(0),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull().default(0),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_event_cursors_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"session_event_cursors_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n workspaceIdentity: uniqueIndex(\"session_event_cursors_workspace_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n ),\n sequenceValid: check(\"session_event_cursors_sequence_check\", sql`${table.lastSequence} >= 0`),\n revisionValid: check(\"session_event_cursors_revision_check\", sql`${table.revision} >= 0`),\n }),\n);\n\nexport const sessionEvents = pgTable(\n \"session_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n turnId: uuid(\"turn_id\"),\n turnGeneration: integer(\"turn_generation\"),\n turnAttemptId: uuid(\"turn_attempt_id\"),\n turnAssociation: text(\"turn_association\"),\n duplicateOfEventId: uuid(\"duplicate_of_event_id\"),\n duplicateReason: text(\"duplicate_reason\"),\n sequence: integer(\"sequence\").notNull(),\n type: text(\"type\").notNull(),\n payload: losslessJsonb(\"payload\").$type<unknown>().notNull().default({}),\n payloadCodecVersion: losslessCodecVersion(\"payload_codec_version\"),\n clientEventId: text(\"client_event_id\"),\n producerId: text(\"producer_id\"),\n producerSeq: integer(\"producer_seq\"),\n occurredAt: timestamp(\"occurred_at\", { withTimezone: true }).notNull().defaultNow(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAttempt: foreignKey({\n name: \"session_events_workspace_attempt_fk\",\n columns: [table.workspaceId, table.turnAttemptId],\n foreignColumns: [sessionTurnAttempts.workspaceId, sessionTurnAttempts.id],\n }).onDelete(\"restrict\"),\n sessionSequence: uniqueIndex(\"session_events_workspace_session_sequence_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.sequence,\n ),\n clientEvent: uniqueIndex(\"session_events_workspace_client_event_idx\")\n .on(table.workspaceId, table.sessionId, table.clientEventId)\n .where(sql`${table.clientEventId} is not null`),\n producer: uniqueIndex(\"session_events_workspace_producer_idx\")\n .on(table.workspaceId, table.sessionId, table.producerId, table.producerSeq)\n .where(sql`${table.producerId} is not null and ${table.producerSeq} is not null`),\n sessionCreated: index(\"session_events_workspace_session_created_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.createdAt,\n ),\n sessionTypeSequence: index(\"session_events_workspace_session_type_sequence_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.type,\n table.sequence,\n ),\n workspaceTurnType: index(\"session_events_workspace_turn_type_idx\")\n .on(table.workspaceId, table.turnId, table.type)\n .where(sql`${table.turnId} is not null`),\n commandOutputPage: index(\"session_events_command_output_page_idx\")\n .on(\n table.workspaceId,\n table.sessionId,\n sql`(${table.payload} ->> 'commandId')`,\n table.sequence,\n )\n .where(sql`${table.type} = 'sandbox.command.output.delta'`),\n monitoringTail: index(\"session_events_workspace_session_monitoring_tail_idx\")\n .on(table.workspaceId, table.sessionId, table.sequence)\n .where(\n sql`${table.type} not in ('agent.message.delta', 'agent.reasoning.delta', 'sandbox.command.output.delta', 'terminal.pty.output.delta')`,\n ),\n duplicateOfEvent: index(\"session_events_duplicate_of_event_idx\").on(table.duplicateOfEventId),\n typeBytes: check(\n \"session_events_type_bytes_check\",\n sql`octet_length(${table.type}) <= 256 and position(E'\\n' in ${table.type}) = 0 and position(E'\\r' in ${table.type}) = 0`,\n ),\n clientEventIdBytes: check(\n \"session_events_client_event_id_bytes_check\",\n sql`${table.clientEventId} is null or octet_length(${table.clientEventId}) <= 1024`,\n ),\n producerIdBytes: check(\n \"session_events_producer_id_bytes_check\",\n sql`${table.producerId} is null or octet_length(${table.producerId}) <= 1024`,\n ),\n turnAssociationBytes: check(\n \"session_events_turn_association_bytes_check\",\n sql`${table.turnAssociation} is null or octet_length(${table.turnAssociation}) <= 64`,\n ),\n duplicateReasonBytes: check(\n \"session_events_duplicate_reason_bytes_check\",\n sql`${table.duplicateReason} is null or octet_length(${table.duplicateReason}) <= 4096`,\n ),\n }),\n);\n\n/**\n * Durable fanout obligation for the migration-owned automatic-title\n * quarantine event. The deployment-wide workflow-wake dispatcher publishes\n * these exact committed events and marks them delivered; duplicate publication\n * after a process crash is safe because consumers sequence-fence every event.\n */\nexport const automaticSessionTitleFanoutOutboxV1 = opengeniPrivateSchema.table(\n \"automatic_session_title_fanout_outbox_v1\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n eventId: uuid(\"event_id\").notNull(),\n attempts: integer(\"attempts\").notNull().default(0),\n lastError: text(\"last_error\"),\n deliveredAt: timestamp(\"delivered_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n attemptsValid: check(\"automatic_title_fanout_attempts_chk\", sql`${table.attempts} >= 0`),\n workspaceAccount: foreignKey({\n name: \"automatic_title_fanout_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"automatic_title_fanout_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n workspaceEvent: foreignKey({\n name: \"automatic_title_fanout_workspace_event_fk\",\n columns: [table.workspaceId, table.eventId],\n foreignColumns: [sessionEvents.workspaceId, sessionEvents.id],\n }).onDelete(\"cascade\"),\n event: uniqueIndex(\"automatic_title_fanout_event_uq\").on(table.eventId),\n pending: index(\"automatic_title_fanout_pending_idx\")\n .on(table.createdAt, table.id)\n .where(sql`${table.deliveredAt} is null`),\n }),\n);\n\nexport const agentRunStates = pgTable(\"agent_run_states\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n turnId: uuid(\"turn_id\").references(() => sessionTurns.id, {\n onDelete: \"set null\",\n }),\n stateVersion: integer(\"state_version\").notNull(),\n serializedRunState: losslessText(\"serialized_run_state\").notNull(),\n serializedRunStateCodecVersion: losslessCodecVersion(\"serialized_run_state_codec_version\"),\n pendingApprovals: losslessJsonb(\"pending_approvals\").$type<unknown[]>().notNull().default([]),\n pendingApprovalsCodecVersion: losslessCodecVersion(\"pending_approvals_codec_version\"),\n // Exact provider rejection marks the latest current-turn receipt only when it\n // was part of the rejected request. The serialized receipt remains durable;\n // recovery builds a temporary view without unusable opaque artifacts.\n providerArtifactInvalidatedAt: timestamp(\"provider_artifact_invalidated_at\", {\n withTimezone: true,\n }),\n providerArtifactInvalidationReason: text(\"provider_artifact_invalidation_reason\"),\n providerArtifactInvalidatedByAttemptId: uuid(\"provider_artifact_invalidated_by_attempt_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n});\n\n// Durable structured human-input requests. The creation attempt is immutable\n// provenance; legitimate resume attempts are newer owners of the SAME logical\n// turn. Settlement therefore fences on the active session/turn plus the\n// request's turn generation, never on creationAttemptId.\nexport const sessionHumanInputRequests = pgTable(\n \"session_human_input_requests\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n turnGeneration: integer(\"turn_generation\").notNull(),\n creationAttemptId: uuid(\"creation_attempt_id\").notNull(),\n toolCallId: text(\"tool_call_id\").notNull(),\n status: text(\"status\").notNull().default(\"pending\"),\n questions: jsonb(\"questions\").$type<HumanInputQuestion[]>().notNull(),\n allowSkip: boolean(\"allow_skip\").notNull().default(false),\n response: jsonb(\"response\").$type<HumanInputResponse>(),\n respondedBy: text(\"responded_by\"),\n skillReviewHumanAuthorized: boolean(\"skill_review_human_authorized\").notNull().default(false),\n respondedAt: timestamp(\"responded_at\", { withTimezone: true }),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n creationAttemptOwner: foreignKey({\n name: \"session_human_input_requests_creation_attempt_fk\",\n columns: [\n table.accountId,\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.creationAttemptId,\n ],\n foreignColumns: [\n sessionTurnAttempts.accountId,\n sessionTurnAttempts.workspaceId,\n sessionTurnAttempts.sessionId,\n sessionTurnAttempts.turnId,\n sessionTurnAttempts.id,\n ],\n }).onDelete(\"cascade\"),\n toolCall: uniqueIndex(\"session_human_input_requests_tool_call_uq\").on(\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.toolCallId,\n ),\n pendingSession: index(\"session_human_input_requests_pending_session_idx\")\n .on(table.workspaceId, table.sessionId, table.createdAt, table.id)\n .where(sql`${table.status} = 'pending'`),\n pendingExpiry: index(\"session_human_input_requests_pending_expiry_idx\")\n .on(table.expiresAt, table.id)\n .where(sql`${table.status} = 'pending' and ${table.expiresAt} is not null`),\n status: check(\n \"session_human_input_requests_status_check\",\n sql`${table.status} in ('pending','answered','skipped','expired','cancelled')`,\n ),\n generation: check(\n \"session_human_input_requests_generation_check\",\n sql`${table.turnGeneration} > 0`,\n ),\n toolCallBytes: check(\n \"session_human_input_requests_tool_call_bytes_check\",\n sql`octet_length(${table.toolCallId}) between 1 and 1024`,\n ),\n questionsBytes: check(\n \"session_human_input_requests_questions_bytes_check\",\n sql`octet_length(${table.questions}::text) <= 49152`,\n ),\n responseBytes: check(\n \"session_human_input_requests_response_bytes_check\",\n sql`${table.response} is null or octet_length(${table.response}::text) <= 49152`,\n ),\n actorBytes: check(\n \"session_human_input_requests_actor_bytes_check\",\n sql`${table.respondedBy} is null or octet_length(${table.respondedBy}) <= 1024`,\n ),\n }),\n);\n\n// Conversation truth: ordered, verbatim SDK input items (issue #35). The\n// model-facing memory store — exact and replay-ready. session_events is also\n// exact canonical OpenGeni data; transport projections must not rewrite it.\nexport const sessionHistoryItems = pgTable(\n \"session_history_items\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n turnId: uuid(\"turn_id\").references(() => sessionTurns.id, {\n onDelete: \"set null\",\n }),\n // Numeric (not integer) so the synthetic compaction-summary row can be\n // inserted at a FRACTIONAL position (boundaryPosition - 0.5) that sorts ahead\n // of the kept tail without colliding with — and thus overwriting — the real\n // prefix row at boundaryPosition - 1. Normally-appended rows keep whole-number\n // positions; only the summary uses the half-step. `mode: \"number\"` maps the\n // postgres.js string back to a JS number so every reader stays numeric.\n position: numeric(\"position\", { mode: \"number\" }).notNull(),\n item: losslessOrderedJson(\"item_ordered\").$type<Record<string, unknown>>().notNull(),\n itemCodecVersion: losslessCodecVersion(\"item_codec_version\"),\n // Live-row flag for client-side context compaction. The read path selects\n // only active rows; a compaction supersedes the summarized prefix (sets this\n // false — never deletes, so the full transcript stays as an audit trail) and\n // inserts ONE synthetic active summary row at the boundary. Defaults true so\n // every existing and normally-appended row is live.\n active: boolean(\"active\").notNull().default(true),\n // An exact provider 400 can prove that the request's active opaque artifact\n // set is no longer usable. Keep each canonical item immutable, but record the\n // attempt-fenced rejection on the exact candidate row IDs so later model\n // reads build a temporary projection. No FK: the receipt must outlive\n // operational attempt retention.\n providerArtifactInvalidatedAt: timestamp(\"provider_artifact_invalidated_at\", {\n withTimezone: true,\n }),\n providerArtifactInvalidationReason: text(\"provider_artifact_invalidation_reason\"),\n providerArtifactInvalidatedByAttemptId: uuid(\"provider_artifact_invalidated_by_attempt_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n positionIdx: uniqueIndex(\"session_history_items_position_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.position,\n ),\n }),\n);\n\n// Turn-lineage ledger for a tool call that the SDK emitted but has not yet\n// produced a durably reconciled result. The raw call item is model-facing truth\n// (not a transport projection). The attempt/generation identify\n// where the call originated, but the receipt survives an approval resume into a\n// newer attempt of the same logical turn. Turn-ending transactions\n// consume these rows atomically and append a valid interrupted result so a\n// recovered model sees an explicit unknown outcome instead of a silently\n// dropped call.\nexport const sessionPendingToolCalls = pgTable(\n \"session_pending_tool_calls\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n turnId: uuid(\"turn_id\")\n .notNull()\n .references(() => sessionTurns.id, { onDelete: \"cascade\" }),\n executionGeneration: integer(\"execution_generation\").notNull(),\n attemptId: uuid(\"attempt_id\").notNull(),\n callId: text(\"call_id\").notNull(),\n callType: text(\"call_type\").notNull(),\n callItem: losslessOrderedJson(\"call_item_ordered\").$type<Record<string, unknown>>().notNull(),\n callItemCodecVersion: losslessCodecVersion(\"call_item_codec_version\"),\n interruptionKind: text(\"interruption_kind\"),\n tiedReasoningItems: losslessOrderedJson(\"tied_reasoning_items_ordered\")\n .$type<Array<Record<string, unknown>>>()\n .notNull()\n .default([]),\n tiedReasoningItemsCodecVersion: losslessCodecVersion(\"tied_reasoning_items_codec_version\"),\n modelToolOutputTruncationTokens: integer(\"model_tool_output_truncation_tokens\"),\n resultItem: losslessOrderedJson(\"result_item_ordered\").$type<Record<string, unknown>>(),\n resultItemCodecVersion: losslessCodecVersion(\"result_item_codec_version\"),\n eventOutput: losslessJsonb(\"event_output\").$type<{ value: unknown }>(),\n eventOutputCodecVersion: losslessCodecVersion(\"event_output_codec_version\"),\n resultRecordedAt: timestamp(\"result_recorded_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAttempt: foreignKey({\n name: \"pending_tool_calls_workspace_attempt_fk\",\n columns: [table.workspaceId, table.attemptId],\n foreignColumns: [sessionTurnAttempts.workspaceId, sessionTurnAttempts.id],\n }).onDelete(\"restrict\"),\n turnCall: uniqueIndex(\"session_pending_tool_calls_turn_call_idx\").on(\n table.workspaceId,\n table.turnId,\n table.callId,\n ),\n sessionTurn: index(\"session_pending_tool_calls_session_turn_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.turnId,\n ),\n interruptionKindValid: check(\n \"session_pending_tool_calls_interruption_kind_chk\",\n sql`${table.interruptionKind} is null or ${table.interruptionKind} in ('human_input', 'approval', 'interaction_intervention')`,\n ),\n tiedReasoningItemsArray: check(\n \"session_pending_tool_calls_tied_reasoning_items_chk\",\n sql`jsonb_typeof(${table.tiedReasoningItems}) = 'array'`,\n ),\n }),\n);\n\n// Sandbox recovery descriptor, decoupled from the RunState blob: the small\n// versioned envelope (provider handle / snapshot ref / manifest) needed to\n// reattach, restore, or rebuild the session's sandbox on its next turn.\nexport const sandboxSessionEnvelopes = pgTable(\n \"sandbox_session_envelopes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n envelope: losslessJsonb(\"envelope\").$type<Record<string, unknown>>().notNull(),\n envelopeCodecVersion: losslessCodecVersion(\"envelope_codec_version\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n sessionIdx: uniqueIndex(\"sandbox_session_envelopes_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n ),\n }),\n);\n\nexport const sandboxCheckpointArtifactStateValues = [\n \"candidate\",\n \"current\",\n \"previous\",\n \"delete_pending\",\n \"deleting\",\n \"delete_failed\",\n \"deleted\",\n] as const;\n\n/**\n * Durable ownership ledger for provider-native workspace checkpoints. These\n * rows intentionally have no cascading parent FK: a workspace/lease can vanish\n * before the provider object is deleted, and global GC still needs the exact\n * non-secret provider binding and object id after that deletion.\n */\nexport const sandboxCheckpointArtifacts = pgTable(\n \"sandbox_checkpoint_artifacts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sandboxGroupId: uuid(\"sandbox_group_id\").notNull(),\n sourceLeaseId: uuid(\"source_lease_id\").notNull(),\n sourceLeaseEpoch: integer(\"source_lease_epoch\").notNull(),\n sourceInstanceId: text(\"source_instance_id\"),\n sourceWorkspaceGeneration: integer(\"source_workspace_generation\"),\n provenance: text(\"provenance\", {\n enum: [\"native_capture\", \"legacy_provider_adopted\"],\n }).notNull(),\n providerBackend: text(\"provider_backend\").notNull(),\n providerBindingKey: text(\"provider_binding_key\").notNull(),\n providerBinding: jsonb(\"provider_binding\").$type<Record<string, unknown>>().notNull(),\n objectKind: text(\"object_kind\", {\n enum: [\"modal_filesystem_snapshot\", \"modal_directory_snapshot\"],\n }).notNull(),\n objectId: text(\"object_id\").notNull(),\n archiveBase64: text(\"archive_base64\").notNull(),\n archiveSha256: text(\"archive_sha256\").notNull(),\n archiveBytes: integer(\"archive_bytes\").notNull(),\n descriptor: jsonb(\"descriptor\").$type<Record<string, unknown>>().notNull(),\n descriptorRevision: text(\"descriptor_revision\").notNull(),\n state: text(\"state\", { enum: sandboxCheckpointArtifactStateValues })\n .notNull()\n .default(\"candidate\"),\n deleteAfter: timestamp(\"delete_after\", { withTimezone: true }),\n deleteAttempts: integer(\"delete_attempts\").notNull().default(0),\n deleteClaimId: uuid(\"delete_claim_id\"),\n deleteClaimedAt: timestamp(\"delete_claimed_at\", { withTimezone: true }),\n lastDeleteError: text(\"last_delete_error\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n publishedAt: timestamp(\"published_at\", { withTimezone: true }),\n deletedAt: timestamp(\"deleted_at\", { withTimezone: true }),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n providerObject: uniqueIndex(\"sandbox_checkpoint_artifacts_provider_object_uq\").on(\n table.providerBackend,\n table.providerBindingKey,\n table.objectId,\n ),\n gc: index(\"sandbox_checkpoint_artifacts_gc_idx\")\n .on(table.deleteAfter, table.createdAt, table.id)\n .where(\n sql`${table.state} in (\n 'candidate', 'current', 'previous',\n 'delete_pending', 'delete_failed', 'deleting'\n )`,\n ),\n source: index(\"sandbox_checkpoint_artifacts_source_idx\").on(\n table.workspaceId,\n table.sandboxGroupId,\n table.sourceLeaseId,\n ),\n sourceValid: check(\n \"sandbox_checkpoint_artifacts_source_check\",\n sql`${table.sourceLeaseEpoch} >= 0\n and (\n (\n ${table.provenance} = 'native_capture'\n and ${table.sourceWorkspaceGeneration} is not null\n and ${table.sourceWorkspaceGeneration} >= 0\n and ${table.sourceInstanceId} is not null\n and octet_length(${table.sourceInstanceId}) between 1 and 512\n )\n or (\n ${table.provenance} = 'legacy_provider_adopted'\n and ${table.sourceWorkspaceGeneration} is null\n and ${table.sourceInstanceId} is null\n )\n )`,\n ),\n providerValid: check(\n \"sandbox_checkpoint_artifacts_provider_check\",\n sql`${table.providerBackend} = 'modal'\n and octet_length(${table.providerBindingKey}) between 1 and 1024\n and jsonb_typeof(${table.providerBinding}) = 'object'\n and ${table.providerBindingKey}::jsonb = ${table.providerBinding}\n and ${table.objectKind} in ('modal_filesystem_snapshot', 'modal_directory_snapshot')\n and octet_length(${table.objectId}) between 1 and 1024`,\n ),\n archiveValid: check(\n \"sandbox_checkpoint_artifacts_archive_check\",\n sql`${table.archiveBytes} > 0\n and octet_length(${table.archiveBase64}) > 0\n and ${table.archiveSha256} ~ '^[0-9a-f]{64}$'\n and jsonb_typeof(${table.descriptor}) = 'object'\n and octet_length(${table.descriptorRevision}) between 1 and 256`,\n ),\n stateValid: check(\n \"sandbox_checkpoint_artifacts_state_check\",\n sql`${table.state} in (\n 'candidate', 'current', 'previous', 'delete_pending',\n 'deleting', 'delete_failed', 'deleted'\n )`,\n ),\n deleteClaimValid: check(\n \"sandbox_checkpoint_artifacts_delete_claim_check\",\n sql`(${table.state} = 'deleting'\n and ${table.deleteClaimId} is not null\n and ${table.deleteClaimedAt} is not null)\n or (${table.state} <> 'deleting'\n and ${table.deleteClaimId} is null\n and ${table.deleteClaimedAt} is null)`,\n ),\n }),\n);\n\n// The 4 liveness states of the singleton lease. Exported so the query layer and\n// the stateless resume-by-id path share one source of truth for the domain.\nexport const sandboxLeaseLivenessValues = [\"cold\", \"warming\", \"warm\", \"draining\"] as const;\n\n// One row per GROUP: the SOLE enforcer of the strict-singleton-box invariant.\n// uniqueIndex(workspaceId, sandboxGroupId) + SELECT…FOR UPDATE + cold->warming\n// CAS + integer lease_epoch fence. Re-keyed to sandboxGroupId from the start\n// (addendum B.2) so today's 1:1 world (sandboxGroupId == session id, set in\n// 0018) is a behavior-preserving no-op. Mirrors the account/workspace FK chain\n// of sandboxSessionEnvelopes; sandboxGroupId is a BARE uuid (NOT an FK — the\n// value is a session id or an ancestor's, and an FK would let a founder's\n// deletion cascade-kill a box still in use by a spawned session).\nexport const sandboxLeases = pgTable(\n \"sandbox_leases\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sandboxGroupId: uuid(\"sandbox_group_id\").notNull(),\n\n unobservableCommandDrainIds: uuid(\"unobservable_command_drain_ids\").array(),\n unobservableCommandCheckedAt: timestamp(\"unobservable_command_checked_at\", {\n withTimezone: true,\n }),\n liveness: text(\"liveness\", { enum: sandboxLeaseLivenessValues }).notNull().default(\"cold\"),\n refcount: integer(\"refcount\").notNull().default(0),\n turnHolders: integer(\"turn_holders\").notNull().default(0),\n viewerHolders: integer(\"viewer_holders\").notNull().default(0),\n\n instanceId: text(\"instance_id\"),\n backend: text(\"backend\").notNull(),\n os: text(\"os\").notNull().default(\"linux\"),\n // The container IMAGE the group box runs (Modal image ref / docker image). A shared\n // box is SHARED STATE: all its sessions run the SAME filesystem, so they must run the\n // same image. This column stamps the image the live box was created with; a resume\n // whose resolved image DIFFERS is a conflict (B3): a solo holder requests a\n // capture-and-drain rotation; N-holders are rejected (SandboxImageConflictError). Nullable — a\n // legacy/cold row reads NULL = \"image unknown\", which never conflicts.\n image: text(\"image\"),\n // The frozen rig version the live box was created under (M3). Like `image`,\n // this is SHARED STATE: all the box's sessions run the same rig-baked setup,\n // so a resume resolving a DIFFERENT rig_version_id conflicts (a solo holder\n // requests capture-and-drain rotation; N-holders throw SandboxRigConflictError).\n // Nullable — a legacy/cold row or a rig-less session reads NULL = \"rig\n // unknown\", which never conflicts. No FK (symmetric with sandbox_group_id's\n // bare-uuid rationale: this lease outlives no single rig_versions row's RLS).\n rigVersionId: uuid(\"rig_version_id\"),\n dataPlaneUrl: text(\"data_plane_url\"),\n // The REAL PTY terminal (ttyd pty-ws) rides a SEPARATE provider tunnel (7681)\n // from the desktop noVNC (6080), so its resolved URL is cached independently.\n // Recorded under the epoch fence by recordLeaseTerminalDataPlaneUrl; reset to\n // null on every box re-key (warm-commit / fail / drain), symmetric with\n // data_plane_url.\n terminalDataPlaneUrl: text(\"terminal_data_plane_url\"),\n\n // Cached browserd HTTP/WebSocket tunnel (7682). Controller requests use\n // this epoch-fenced endpoint directly after the first provider resolution;\n // provider-handle coordination remains limited to lifecycle/provisioning.\n controllerDataPlaneUrl: text(\"controller_data_plane_url\"),\n\n // integer (NOT bigint): the lease-epoch spike proved a raw int8 read returns a\n // JS STRING from postgres-js, breaking the strict epoch-fence comparison (it\n // was always-true → every turn fenced); int4 returns a JS number, the fix.\n // Epochs never approach 2^31, so the narrower type loses nothing.\n leaseEpoch: integer(\"lease_epoch\").notNull().default(0),\n\n // Monotonic mutation intent for the live workspace. Every acknowledged\n // filesystem-writing operation advances this under the exact lease epoch +\n // provider-instance fence BEFORE it reaches the provider. A verified\n // archive fold copies the exact captured value into archive_generation in\n // the same row update; equality is the only durable completeness proof.\n workspaceGeneration: integer(\"workspace_generation\").notNull().default(0),\n archiveGeneration: integer(\"archive_generation\"),\n // Provider-native capture may pause the live box. The exact claim is\n // acquired before provider I/O and cleared only after that capture settles;\n // new holders and workspace mutations fence on it. operation_id is the\n // stable logical request across Temporal retries, while capture_id + attempt\n // identify the one callback currently allowed to publish/terminate. The SQL\n // constraint also requires the claimed generation to remain current, so an\n // unaware writer cannot advance generation through an active capture.\n archiveCaptureId: uuid(\"archive_capture_id\"),\n archiveCaptureOperationId: uuid(\"archive_capture_operation_id\"),\n archiveCaptureProviderRequestId: uuid(\"archive_capture_provider_request_id\"),\n // True only when the provider contract guarantees that reusing\n // archiveCaptureProviderRequestId resumes the same physical capture. This is\n // deliberately explicit rather than inferred from backend/id equality so a\n // rolling old worker can never be mistaken for an idempotent caller.\n archiveCaptureProviderReplaySafe: boolean(\"archive_capture_provider_replay_safe\")\n .notNull()\n .default(false),\n // Provider-neutral takeover proof. True means the registered adapter has\n // proven either same-request idempotency or an independently repeatable,\n // read-only capture. It is distinct from providerReplaySafe so portable tar\n // can recover immediately without pretending it resumes one provider RPC.\n archiveCaptureTakeoverSafe: boolean(\"archive_capture_takeover_safe\").notNull().default(false),\n archiveCaptureAttempt: integer(\"archive_capture_attempt\"),\n archiveCaptureGeneration: integer(\"archive_capture_generation\"),\n archiveCaptureStartedAt: timestamp(\"archive_capture_started_at\", {\n withTimezone: true,\n }),\n archiveCaptureDeadlineAt: timestamp(\"archive_capture_deadline_at\", {\n withTimezone: true,\n }),\n // Set atomically with a verified draining archive publication. Once set,\n // the exact claim is an irreversible teardown receipt: a recovered worker\n // skips recapture and resumes provider termination. Warm capture clears its\n // claim in the publication write and therefore never retains this marker.\n archiveCapturePublishedAt: timestamp(\"archive_capture_published_at\", {\n withTimezone: true,\n }),\n // Bounded operator preservation gate. Unlike rotation/capture, this blocks\n // only reaper teardown: a user may still re-arm a resumable draining lease.\n // The exact id makes renewal/release ownership explicit and race-safe.\n reaperHoldId: uuid(\"reaper_hold_id\"),\n reaperHoldUntil: timestamp(\"reaper_hold_until\", { withTimezone: true }),\n reaperHoldReason: text(\"reaper_hold_reason\"),\n\n // The group box-envelope (the \"envelope split\" Critical): the small recovery\n // descriptor to resume()-by-id the group's box without a per-session join.\n resumeBackendId: text(\"resume_backend_id\"),\n resumeState: jsonb(\"resume_state\").$type<Record<string, unknown>>(),\n\n // Warm-time billing cursor: last_meter_at = accrual cursor; last_meter_tick =\n // idempotency tick (warm_seconds accrued idempotent on\n // (sandbox_group_id, lease_epoch, last_meter_tick) in P2.1).\n lastMeterAt: timestamp(\"last_meter_at\", { withTimezone: true }),\n lastMeterTick: integer(\"last_meter_tick\").notNull().default(0),\n\n providerCreatedAt: timestamp(\"provider_created_at\", { withTimezone: true }),\n providerDeadlineAt: timestamp(\"provider_deadline_at\", {\n withTimezone: true,\n }),\n rotationRequestedAt: timestamp(\"rotation_requested_at\", {\n withTimezone: true,\n }),\n rotationReason: text(\"rotation_reason\", {\n enum: [\"provider_deadline\", \"operator\", \"teardown_claim\"],\n }),\n // The SQL migration owns the two DEFERRABLE foreign keys and deferred\n // scope/state constraint triggers. Drizzle does not model deferrability, so\n // these remain bare UUIDs here rather than generating a stricter wrong FK.\n currentCheckpointArtifactId: uuid(\"current_checkpoint_artifact_id\"),\n previousCheckpointArtifactId: uuid(\"previous_checkpoint_artifact_id\"),\n\n // Durable single-flight for immutable machine setup (currently exact rig\n // setup only). Per-turn credentials, repositories, files, and cloud login\n // deliberately remain outside this lease-scoped receipt.\n sharedPreparationLeaseEpoch: integer(\"shared_preparation_lease_epoch\"),\n sharedPreparationInstanceId: text(\"shared_preparation_instance_id\"),\n sharedPreparationSpecHash: text(\"shared_preparation_spec_hash\"),\n sharedPreparationStatus: text(\"shared_preparation_status\", {\n enum: [\"running\", \"completed\", \"failed\"],\n }),\n sharedPreparationClaimId: uuid(\"shared_preparation_claim_id\"),\n sharedPreparationOwnerAttemptId: uuid(\"shared_preparation_owner_attempt_id\"),\n sharedPreparationAttempt: integer(\"shared_preparation_attempt\"),\n sharedPreparationRevision: integer(\"shared_preparation_revision\").notNull().default(0),\n sharedPreparationStartedAt: timestamp(\"shared_preparation_started_at\", {\n withTimezone: true,\n }),\n sharedPreparationDeadlineAt: timestamp(\"shared_preparation_deadline_at\", {\n withTimezone: true,\n }),\n sharedPreparationSettledAt: timestamp(\"shared_preparation_settled_at\", {\n withTimezone: true,\n }),\n\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n groupIdx: uniqueIndex(\"sandbox_leases_group_idx\").on(table.workspaceId, table.sandboxGroupId),\n scopedId: uniqueIndex(\"sandbox_leases_scoped_id_uq\").on(\n table.accountId,\n table.workspaceId,\n table.sandboxGroupId,\n table.id,\n ),\n accountWorkspaceId: uniqueIndex(\"sandbox_leases_account_workspace_id_uq\").on(\n table.accountId,\n table.workspaceId,\n table.id,\n ),\n reaperIdx: index(\"sandbox_leases_reaper_idx\")\n .on(table.expiresAt)\n .where(sql`${table.liveness} in ('warming','warm','draining')`),\n expiredDrainingInventory: index(\"sandbox_leases_expired_draining_inventory_idx\")\n .on(table.expiresAt, table.backend)\n .where(sql`${table.liveness} = 'draining'`),\n providerDeadline: index(\"sandbox_leases_provider_deadline_idx\")\n .on(table.providerDeadlineAt, table.id)\n .where(\n sql`${table.backend} = 'modal'\n and ${table.liveness} in ('warming', 'warm')\n and ${table.rotationRequestedAt} is null`,\n ),\n workspaceGenerationValid: check(\n \"sandbox_leases_workspace_generation_check\",\n sql`${table.workspaceGeneration} >= 0`,\n ),\n archiveGenerationValid: check(\n \"sandbox_leases_archive_generation_check\",\n sql`${table.archiveGeneration} is null\n or (${table.archiveGeneration} >= 0\n and ${table.archiveGeneration} <= ${table.workspaceGeneration})`,\n ),\n archiveCaptureValid: check(\n \"sandbox_leases_archive_capture_check\",\n sql`(\n ${table.archiveCaptureId} is null\n and ${table.archiveCaptureOperationId} is null\n and ${table.archiveCaptureProviderRequestId} is null\n and ${table.archiveCaptureProviderReplaySafe} = false\n and ${table.archiveCaptureTakeoverSafe} = false\n and ${table.archiveCaptureAttempt} is null\n and ${table.archiveCaptureGeneration} is null\n and ${table.archiveCaptureStartedAt} is null\n and ${table.archiveCaptureDeadlineAt} is null\n and ${table.archiveCapturePublishedAt} is null\n ) or (\n ${table.archiveCaptureId} is not null\n and ${table.archiveCaptureOperationId} is not null\n and ${table.archiveCaptureProviderRequestId} is not null\n and (\n ${table.archiveCaptureProviderReplaySafe} = false\n or ${table.archiveCaptureTakeoverSafe} = true\n )\n and ${table.archiveCaptureAttempt} is not null\n and ${table.archiveCaptureAttempt} > 0\n and ${table.archiveCaptureGeneration} is not null\n and ${table.archiveCaptureGeneration} = ${table.workspaceGeneration}\n and ${table.archiveCaptureStartedAt} is not null\n and ${table.archiveCaptureDeadlineAt} is not null\n and ${table.archiveCaptureDeadlineAt} > ${table.archiveCaptureStartedAt}\n and (\n ${table.archiveCapturePublishedAt} is null\n or ${table.liveness} = 'draining'\n )\n )`,\n ),\n archiveCaptureDeadline: index(\"sandbox_leases_archive_capture_deadline_idx\")\n .on(table.archiveCaptureDeadlineAt, table.id)\n .where(sql`${table.archiveCaptureId} is not null`),\n reaperHoldValid: check(\n \"sandbox_leases_reaper_hold_check\",\n sql`(\n ${table.reaperHoldId} is null\n and ${table.reaperHoldUntil} is null\n and ${table.reaperHoldReason} is null\n ) or (\n ${table.reaperHoldId} is not null\n and ${table.reaperHoldUntil} is not null\n and ${table.reaperHoldReason} is not null\n and length(${table.reaperHoldReason}) between 1 and 500\n )`,\n ),\n providerDeadlineValid: check(\n \"sandbox_leases_provider_deadline_check\",\n sql`(${table.providerCreatedAt} is null and ${table.providerDeadlineAt} is null)\n or (${table.providerCreatedAt} is not null\n and ${table.providerDeadlineAt} is not null\n and ${table.providerDeadlineAt} > ${table.providerCreatedAt})`,\n ),\n rotationValid: check(\n \"sandbox_leases_rotation_check\",\n sql`(${table.rotationRequestedAt} is null and ${table.rotationReason} is null)\n or (${table.rotationRequestedAt} is not null\n and ${table.rotationReason} is not null\n and ${table.rotationReason} in ('provider_deadline', 'operator', 'teardown_claim'))`,\n ),\n checkpointDistinct: check(\n \"sandbox_leases_checkpoint_distinct_check\",\n sql`${table.currentCheckpointArtifactId} is null\n or ${table.previousCheckpointArtifactId} is null\n or ${table.currentCheckpointArtifactId} <> ${table.previousCheckpointArtifactId}`,\n ),\n }),\n);\n\n// N rows per group: one per live holder. Makes release idempotent\n// (delete-my-row, never blind decrement) and lets the reaper recompute refcount.\nexport const sandboxLeaseHolders = pgTable(\n \"sandbox_lease_holders\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n leaseId: uuid(\"lease_id\")\n .notNull()\n .references(() => sandboxLeases.id, { onDelete: \"cascade\" }),\n kind: text(\"kind\", {\n enum: [\"turn\", \"viewer\", \"direct\", \"process\", \"interaction\"],\n }).notNull(),\n holderId: text(\"holder_id\").notNull(),\n // The attributing session within the (possibly shared) group.\n subjectId: uuid(\"subject_id\"),\n // Viewer holders only (0281): the authenticated viewer subject and the\n // session authority epoch observed at attach - identities and epochs\n // only, mirrored into the scoped stream token's claims.\n viewerSubjectId: text(\"viewer_subject_id\"),\n viewerAuthorityEpoch: integer(\"viewer_authority_epoch\"),\n lastHeartbeatAt: timestamp(\"last_heartbeat_at\", { withTimezone: true }).notNull().defaultNow(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n leaseScope: foreignKey({\n name: \"sandbox_lease_holders_lease_scope_fk\",\n columns: [table.accountId, table.workspaceId, table.leaseId],\n foreignColumns: [sandboxLeases.accountId, sandboxLeases.workspaceId, sandboxLeases.id],\n }).onDelete(\"cascade\"),\n holderIdx: uniqueIndex(\"sandbox_lease_holders_holder_idx\").on(\n table.leaseId,\n table.kind,\n table.holderId,\n ),\n staleIdx: index(\"sandbox_lease_holders_stale_idx\").on(table.kind, table.lastHeartbeatAt),\n leaseIdx: index(\"sandbox_lease_holders_lease_idx\").on(table.leaseId),\n }),\n);\n\nexport const sandboxWorkspaceMutationActorKindValues = [\"turn\", \"direct\", \"process\"] as const;\nexport const sandboxWorkspaceMutationHolderKindValues = [\"turn\", \"direct\", \"process\"] as const;\n// The causal principal behind an admitted workspace writer. `subject`/`service`\n// are the canonical `session_turns` initiator vocabulary; `legacy_unattributed`\n// exists only for rows written before migration 0277 recorded any authority.\nexport const sandboxWorkspaceMutationInitiatorKindValues = [\n \"subject\",\n \"service\",\n \"legacy_unattributed\",\n] as const;\n\n// Durable admission ledger for every provider operation that may mutate a\n// persistable /workspace. The row is inserted atomically with the lease's\n// workspace_generation increment before the provider is invoked, then marked\n// physically settled after the provider promise resolves OR rejects. Capture\n// remains blocked by an unsettled direct/process row. A turn row may cease\n// blocking only after its exact attempt carries the authoritative quiesced_at\n// receipt. Yielded provider processes remain retained/unsettled until exact\n// exit or loss proof settles their parent admission.\nexport const sandboxWorkspaceMutationAdmissions = pgTable(\n \"sandbox_workspace_mutation_admissions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n leaseId: uuid(\"lease_id\")\n .notNull()\n .references(() => sandboxLeases.id, { onDelete: \"cascade\" }),\n sandboxGroupId: uuid(\"sandbox_group_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n actorKind: text(\"actor_kind\", {\n enum: sandboxWorkspaceMutationActorKindValues,\n }).notNull(),\n actorId: uuid(\"actor_id\").notNull(),\n // Exact turn authority is present only for actor_kind='turn'. Direct HTTP\n // requests and retained processes never invent a turn or quiescence owner.\n turnId: uuid(\"turn_id\"),\n attemptId: uuid(\"attempt_id\"),\n executionGeneration: integer(\"execution_generation\"),\n holderKind: text(\"holder_kind\", {\n enum: sandboxWorkspaceMutationHolderKindValues,\n }).notNull(),\n holderId: text(\"holder_id\").notNull(),\n leaseEpoch: integer(\"lease_epoch\").notNull(),\n providerBackend: text(\"provider_backend\").notNull(),\n providerInstanceId: text(\"provider_instance_id\").notNull(),\n routeKind: text(\"route_kind\", { enum: [\"home\", \"active\"] }).notNull(),\n // null route target means the persistable home/group provider. A non-null\n // target is pinned together with the active pointer epoch observed when the\n // operation was admitted.\n routeTargetId: uuid(\"route_target_id\"),\n routeEpoch: integer(\"route_epoch\").notNull(),\n workspaceGeneration: integer(\"workspace_generation\").notNull(),\n operation: text(\"operation\").notNull(),\n // Exact authority admitted with this operation (migration 0277). Identities\n // and epochs only, never a secret value. `legacy_unattributed` marks a\n // pre-0277 `direct`/`process` row whose authority was never recorded; a\n // post-0277 writer never produces it and new admission refuses it.\n initiatorKind: text(\"initiator_kind\", {\n enum: sandboxWorkspaceMutationInitiatorKindValues,\n })\n .notNull()\n .default(\"legacy_unattributed\"),\n initiatorSubjectId: text(\"initiator_subject_id\").notNull().default(\"unattributed-legacy\"),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\"),\n // The grant identity that authorized the causal human, plus the\n // authorization revision observed at admission. The revision is audit\n // evidence: a role change is not a revocation and must not fence a writer.\n initiatorOrganizationMembershipId: uuid(\"initiator_organization_membership_id\"),\n initiatorAuthorizationRevision: bigint(\"initiator_authorization_revision\", {\n mode: \"number\",\n }),\n // Session tenancy authority observed when the operation was admitted; the\n // same triple `session_turn_attempts` freezes for a turn.\n authorityEpoch: integer(\"authority_epoch\"),\n authorityVisibility: text(\"authority_visibility\", {\n enum: [\"user_private\", \"workspace_shared\"],\n }),\n authorityOwnerOrganizationMembershipId: uuid(\"authority_owner_organization_membership_id\"),\n providerOutcome: text(\"provider_outcome\", {\n enum: [\"resolved\", \"rejected\", \"retained\"],\n }),\n admittedAt: timestamp(\"admitted_at\", { withTimezone: true }).notNull().defaultNow(),\n settledAt: timestamp(\"settled_at\", { withTimezone: true }),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"sandbox_workspace_mutation_admissions_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"sandbox_workspace_mutation_admissions_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"restrict\"),\n workspaceTurn: foreignKey({\n name: \"sandbox_workspace_mutation_admissions_workspace_turn_fk\",\n columns: [table.workspaceId, table.turnId],\n foreignColumns: [sessionTurns.workspaceId, sessionTurns.id],\n }).onDelete(\"restrict\"),\n workspaceAttempt: foreignKey({\n name: \"sandbox_workspace_mutation_admissions_workspace_attempt_fk\",\n columns: [table.workspaceId, table.attemptId],\n foreignColumns: [sessionTurnAttempts.workspaceId, sessionTurnAttempts.id],\n }).onDelete(\"restrict\"),\n leaseGeneration: uniqueIndex(\"sandbox_workspace_mutation_admissions_lease_generation_uq\").on(\n table.leaseId,\n table.workspaceGeneration,\n ),\n scopedId: uniqueIndex(\"sandbox_workspace_mutation_admissions_scoped_id_uq\").on(\n table.accountId,\n table.workspaceId,\n table.sessionId,\n table.leaseId,\n table.id,\n ),\n blocking: index(\"sandbox_workspace_mutation_admissions_blocking_idx\")\n .on(table.leaseId, table.workspaceGeneration)\n .where(sql`${table.settledAt} is null`),\n attempt: index(\"sandbox_workspace_mutation_admissions_attempt_idx\").on(\n table.workspaceId,\n table.attemptId,\n ),\n actor: index(\"sandbox_workspace_mutation_admissions_actor_idx\").on(\n table.workspaceId,\n table.actorKind,\n table.actorId,\n ),\n initiatorMembership: foreignKey({\n name: \"sandbox_workspace_mutation_admissions_initiator_membership_fk\",\n columns: [table.initiatorOrganizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n authorityOwnerMembership: foreignKey({\n name: \"sandbox_workspace_mutation_admissions_authority_owner_fk\",\n columns: [table.authorityOwnerOrganizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n initiator: index(\"sandbox_workspace_mutation_admissions_initiator_idx\")\n .on(table.accountId, table.initiatorOrganizationMembershipId)\n .where(sql`${table.settledAt} is null`),\n initiatorValid: check(\n \"sandbox_workspace_mutation_admissions_initiator_check\",\n sql`(\n ${table.initiatorKind} = 'legacy_unattributed'\n and ${table.initiatorSubjectId} = 'unattributed-legacy'\n and ${table.initiatingHumanSubjectId} is null\n and ${table.initiatorOrganizationMembershipId} is null\n and ${table.initiatorAuthorizationRevision} is null\n ) or (\n ${table.initiatorKind} in ('subject', 'service')\n and length(btrim(${table.initiatorSubjectId})) between 1 and 1024\n and ${table.initiatorSubjectId} <> 'unattributed-legacy'\n and (\n ${table.initiatingHumanSubjectId} is null\n or length(btrim(${table.initiatingHumanSubjectId})) between 1 and 1024\n )\n and (\n ${table.initiatorOrganizationMembershipId} is null\n or ${table.initiatingHumanSubjectId} is not null\n )\n and (\n ${table.initiatorAuthorizationRevision} is null\n or (\n ${table.initiatorAuthorizationRevision} > 0\n and ${table.initiatorOrganizationMembershipId} is not null\n )\n )\n )`,\n ),\n tenancyValid: check(\n \"sandbox_workspace_mutation_admissions_tenancy_check\",\n sql`(\n ${table.authorityEpoch} is null\n and ${table.authorityVisibility} is null\n and ${table.authorityOwnerOrganizationMembershipId} is null\n ) or (\n ${table.authorityEpoch} is not null\n and ${table.authorityVisibility} is not null\n and ${table.authorityEpoch} > 0\n and ${table.authorityVisibility} in ('user_private', 'workspace_shared')\n and (\n ${table.authorityVisibility} <> 'user_private'\n or ${table.authorityOwnerOrganizationMembershipId} is not null\n )\n )`,\n ),\n generationValid: check(\n \"sandbox_workspace_mutation_admissions_generation_check\",\n sql`${table.workspaceGeneration} > 0\n and ${table.leaseEpoch} >= 0\n and ${table.routeEpoch} >= 0\n and (${table.executionGeneration} is null or ${table.executionGeneration} > 0)`,\n ),\n actorValid: check(\n \"sandbox_workspace_mutation_admissions_actor_check\",\n sql`(\n ${table.actorKind} = 'turn'\n and ${table.actorId} = ${table.attemptId}\n and ${table.turnId} is not null\n and ${table.attemptId} is not null\n and ${table.executionGeneration} is not null\n and ${table.holderKind} = 'turn'\n ) or (\n ${table.actorKind} = 'direct'\n and ${table.turnId} is null\n and ${table.attemptId} is null\n and ${table.executionGeneration} is null\n and ${table.holderKind} = 'direct'\n ) or (\n ${table.actorKind} = 'process'\n and ${table.turnId} is null\n and ${table.attemptId} is null\n and ${table.executionGeneration} is null\n and ${table.holderKind} = 'process'\n )`,\n ),\n routeValid: check(\n \"sandbox_workspace_mutation_admissions_route_check\",\n sql`${table.actorKind} in ('turn', 'direct', 'process')\n and ${table.holderKind} in ('turn', 'direct', 'process')\n and octet_length(${table.holderId}) between 1 and 256\n and octet_length(${table.providerBackend}) between 1 and 64\n and octet_length(${table.providerInstanceId}) between 1 and 512\n and ${table.routeKind} in ('home', 'active')\n and (${table.routeKind} = 'active' or ${table.routeTargetId} is null)`,\n ),\n operationValid: check(\n \"sandbox_workspace_mutation_admissions_operation_check\",\n sql`octet_length(${table.operation}) between 1 and 128`,\n ),\n outcomeValid: check(\n \"sandbox_workspace_mutation_admissions_outcome_check\",\n sql`${table.providerOutcome} is null or ${table.providerOutcome} in ('resolved', 'rejected', 'retained')`,\n ),\n settlementConsistent: check(\n \"sandbox_workspace_mutation_admissions_settlement_check\",\n sql`(${table.providerOutcome} is null and ${table.settledAt} is null)\n or (${table.providerOutcome} = 'retained' and ${table.settledAt} is null)\n or (${table.providerOutcome} in ('resolved', 'rejected') and ${table.settledAt} is not null)`,\n ),\n }),\n);\n\nexport const sandboxRetainedProcessStateValues = [\"active\", \"exited\", \"lost\"] as const;\n\n// A yielded exec is not merely a numeric provider session id: it is a durable\n// continuation of the exact admitted mutation and owns a non-TTL process lease\n// holder until exit/loss is proven. Every later model-facing stdin write gets a\n// distinct actor_kind='process' admission tied back to this identity. Control\n// polling may use the pinned provider route without creating a new generation.\nexport const sandboxRetainedProcesses = pgTable(\n \"sandbox_retained_processes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n leaseId: uuid(\"lease_id\").notNull(),\n sandboxGroupId: uuid(\"sandbox_group_id\").notNull(),\n parentAdmissionId: uuid(\"parent_admission_id\").notNull(),\n holderId: text(\"holder_id\").notNull(),\n ownerActorKind: text(\"owner_actor_kind\", {\n enum: [\"turn\", \"direct\"],\n }).notNull(),\n ownerActorId: uuid(\"owner_actor_id\").notNull(),\n ownerTurnId: uuid(\"owner_turn_id\"),\n ownerAttemptId: uuid(\"owner_attempt_id\"),\n ownerExecutionGeneration: integer(\"owner_execution_generation\"),\n leaseEpoch: integer(\"lease_epoch\").notNull(),\n providerBackend: text(\"provider_backend\").notNull(),\n providerInstanceId: text(\"provider_instance_id\").notNull(),\n // Provider object ids are namespace-scoped. New Modal processes bind the\n // exact authenticated workspace before execution; legacy rows remain null\n // until a positive lookup proves which namespace owns the historical box.\n providerBindingKey: text(\"provider_binding_key\"),\n providerBinding: jsonb(\"provider_binding\").$type<Record<string, unknown>>(),\n routeKind: text(\"route_kind\", { enum: [\"home\", \"active\"] }).notNull(),\n routeTargetId: uuid(\"route_target_id\"),\n routeEpoch: integer(\"route_epoch\").notNull(),\n providerSessionId: integer(\"provider_session_id\").notNull(),\n providerCommand: jsonb(\"provider_command\").$type<SandboxProviderCommand>(),\n providerCommandInputIndex: bigint(\"provider_command_input_index\", { mode: \"number\" })\n .notNull()\n .default(0),\n // Authority frozen when the process was retained (migration 0277). A\n // `legacy_unattributed` process keeps running; only its next workspace\n // mutation is refused, because nothing may invent an owner for it.\n initiatorKind: text(\"initiator_kind\", {\n enum: sandboxWorkspaceMutationInitiatorKindValues,\n })\n .notNull()\n .default(\"legacy_unattributed\"),\n initiatorSubjectId: text(\"initiator_subject_id\").notNull().default(\"unattributed-legacy\"),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\"),\n initiatorOrganizationMembershipId: uuid(\"initiator_organization_membership_id\"),\n initiatorAuthorizationRevision: bigint(\"initiator_authorization_revision\", {\n mode: \"number\",\n }),\n authorityEpoch: integer(\"authority_epoch\"),\n authorityVisibility: text(\"authority_visibility\", {\n enum: [\"user_private\", \"workspace_shared\"],\n }),\n authorityOwnerOrganizationMembershipId: uuid(\"authority_owner_organization_membership_id\"),\n state: text(\"state\", { enum: sandboxRetainedProcessStateValues }).notNull().default(\"active\"),\n exitCode: integer(\"exit_code\"),\n settlementReason: text(\"settlement_reason\"),\n startedAt: timestamp(\"started_at\", { withTimezone: true }).notNull().defaultNow(),\n settledAt: timestamp(\"settled_at\", { withTimezone: true }),\n // Coordination state for bounded terminal-owner reconciliation. While a\n // claim is live, reconcileAfter is its expiry; otherwise it is the next\n // retry time. Becoming due only licenses an exact provider probe and is\n // never exit/loss proof.\n reconcileAfter: timestamp(\"reconcile_after\", { withTimezone: true }).notNull().defaultNow(),\n reconcileClaimId: uuid(\"reconcile_claim_id\"),\n reconcileClaimedAt: timestamp(\"reconcile_claimed_at\", {\n withTimezone: true,\n }),\n reconcileAttempts: integer(\"reconcile_attempts\").notNull().default(0),\n lastReconcileOutcome: text(\"last_reconcile_outcome\"),\n reconcileProofOutcome: text(\"reconcile_proof_outcome\", {\n enum: [\"exited\", \"lost\"],\n }),\n reconcileProofExitCode: integer(\"reconcile_proof_exit_code\"),\n reconcileProofReason: text(\"reconcile_proof_reason\"),\n reconcileProofObservedAt: timestamp(\"reconcile_proof_observed_at\", {\n withTimezone: true,\n }),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"sandbox_retained_processes_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceSession: foreignKey({\n name: \"sandbox_retained_processes_workspace_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"restrict\"),\n parentAdmissionScope: foreignKey({\n name: \"sandbox_retained_processes_parent_admission_scope_fk\",\n columns: [\n table.accountId,\n table.workspaceId,\n table.sessionId,\n table.leaseId,\n table.parentAdmissionId,\n ],\n foreignColumns: [\n sandboxWorkspaceMutationAdmissions.accountId,\n sandboxWorkspaceMutationAdmissions.workspaceId,\n sandboxWorkspaceMutationAdmissions.sessionId,\n sandboxWorkspaceMutationAdmissions.leaseId,\n sandboxWorkspaceMutationAdmissions.id,\n ],\n }).onDelete(\"restrict\"),\n scopedId: uniqueIndex(\"sandbox_retained_processes_scoped_id_uq\").on(\n table.accountId,\n table.workspaceId,\n table.sessionId,\n table.leaseId,\n table.id,\n ),\n parentAdmission: uniqueIndex(\"sandbox_retained_processes_parent_admission_uq\").on(\n table.parentAdmissionId,\n ),\n liveProviderSession: uniqueIndex(\"sandbox_retained_processes_live_provider_session_uq\")\n .on(\n table.leaseId,\n table.leaseEpoch,\n table.providerInstanceId,\n table.routeEpoch,\n table.providerSessionId,\n )\n .where(sql`${table.state} = 'active'`),\n providerCommandValid: check(\n \"sandbox_retained_processes_provider_command_chk\",\n sql`${table.providerCommand} IS NULL OR ((\n ${table.providerBackend} = 'modal'\n AND jsonb_typeof(${table.providerCommand}) = 'object'\n AND ${table.providerCommand}->>'kind' = 'modal-control-v1'\n AND ${table.providerCommand}->>'sandboxId' = ${table.providerInstanceId}\n AND length(${table.providerCommand}->>'taskId') > 0\n AND length(${table.providerCommand}->>'execId') > 0\n ) IS TRUE)`,\n ),\n providerInputIndexValid: check(\n \"sandbox_retained_processes_provider_input_index_chk\",\n sql`${table.providerCommandInputIndex} BETWEEN 0 AND 9007199254740991`,\n ),\n holder: uniqueIndex(\"sandbox_retained_processes_holder_uq\").on(table.leaseId, table.holderId),\n active: index(\"sandbox_retained_processes_active_idx\")\n .on(table.workspaceId, table.sessionId, table.startedAt)\n .where(sql`${table.state} = 'active'`),\n reconcileDue: index(\"sandbox_retained_processes_reconcile_due_idx\")\n .on(table.reconcileAfter, table.startedAt, table.id)\n .where(sql`${table.state} = 'active'`),\n activeInventory: index(\"sandbox_retained_processes_active_inventory_idx\")\n .on(table.ownerActorKind, table.workspaceId, table.ownerTurnId, table.ownerAttemptId)\n .where(sql`${table.state} = 'active'`),\n initiatorMembership: foreignKey({\n name: \"sandbox_retained_processes_initiator_membership_fk\",\n columns: [table.initiatorOrganizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n authorityOwnerMembership: foreignKey({\n name: \"sandbox_retained_processes_authority_owner_fk\",\n columns: [table.authorityOwnerOrganizationMembershipId, table.accountId],\n foreignColumns: [organizationMemberships.id, organizationMemberships.accountId],\n }).onDelete(\"restrict\"),\n initiator: index(\"sandbox_retained_processes_initiator_idx\")\n .on(table.accountId, table.initiatorOrganizationMembershipId)\n .where(sql`${table.state} = 'active'`),\n initiatingHuman: index(\"sandbox_retained_processes_initiating_human_idx\")\n .on(table.accountId, table.initiatingHumanSubjectId)\n .where(sql`${table.state} = 'active'`),\n initiatorValid: check(\n \"sandbox_retained_processes_initiator_check\",\n sql`(\n ${table.initiatorKind} = 'legacy_unattributed'\n and ${table.initiatorSubjectId} = 'unattributed-legacy'\n and ${table.initiatingHumanSubjectId} is null\n and ${table.initiatorOrganizationMembershipId} is null\n and ${table.initiatorAuthorizationRevision} is null\n ) or (\n ${table.initiatorKind} in ('subject', 'service')\n and length(btrim(${table.initiatorSubjectId})) between 1 and 1024\n and ${table.initiatorSubjectId} <> 'unattributed-legacy'\n and (\n ${table.initiatingHumanSubjectId} is null\n or length(btrim(${table.initiatingHumanSubjectId})) between 1 and 1024\n )\n and (\n ${table.initiatorOrganizationMembershipId} is null\n or ${table.initiatingHumanSubjectId} is not null\n )\n and (\n ${table.initiatorAuthorizationRevision} is null\n or (\n ${table.initiatorAuthorizationRevision} > 0\n and ${table.initiatorOrganizationMembershipId} is not null\n )\n )\n )`,\n ),\n tenancyValid: check(\n \"sandbox_retained_processes_tenancy_check\",\n sql`(\n ${table.authorityEpoch} is null\n and ${table.authorityVisibility} is null\n and ${table.authorityOwnerOrganizationMembershipId} is null\n ) or (\n ${table.authorityEpoch} is not null\n and ${table.authorityVisibility} is not null\n and ${table.authorityEpoch} > 0\n and ${table.authorityVisibility} in ('user_private', 'workspace_shared')\n and (\n ${table.authorityVisibility} <> 'user_private'\n or ${table.authorityOwnerOrganizationMembershipId} is not null\n )\n )`,\n ),\n identityValid: check(\n \"sandbox_retained_processes_identity_check\",\n sql`${table.leaseEpoch} >= 0\n and ${table.routeEpoch} >= 0\n and ${table.providerSessionId} > 0\n and octet_length(${table.holderId}) between 1 and 256\n and octet_length(${table.providerBackend}) between 1 and 64\n and octet_length(${table.providerInstanceId}) between 1 and 512\n and (${table.routeKind} = 'active' or ${table.routeTargetId} is null)`,\n ),\n ownerValid: check(\n \"sandbox_retained_processes_owner_check\",\n sql`(\n ${table.ownerActorKind} = 'turn'\n and ${table.ownerActorId} = ${table.ownerAttemptId}\n and ${table.ownerTurnId} is not null\n and ${table.ownerAttemptId} is not null\n and ${table.ownerExecutionGeneration} > 0\n ) or (\n ${table.ownerActorKind} = 'direct'\n and ${table.ownerTurnId} is null\n and ${table.ownerAttemptId} is null\n and ${table.ownerExecutionGeneration} is null\n )`,\n ),\n settlementValid: check(\n \"sandbox_retained_processes_settlement_check\",\n sql`(${table.state} = 'active' and ${table.settledAt} is null and ${table.exitCode} is null)\n or (${table.state} = 'exited' and ${table.settledAt} is not null)\n or (${table.state} = 'lost' and ${table.settledAt} is not null and ${table.exitCode} is null)`,\n ),\n reasonValid: check(\n \"sandbox_retained_processes_reason_check\",\n sql`${table.settlementReason} is null\n or octet_length(${table.settlementReason}) between 1 and 512`,\n ),\n providerBindingValid: check(\n \"sandbox_retained_processes_provider_binding_check\",\n sql`(\n ${table.providerBindingKey} is null\n and ${table.providerBinding} is null\n ) or (\n ${table.providerBackend} = 'modal'\n and octet_length(${table.providerBindingKey}) between 1 and 1024\n and jsonb_typeof(${table.providerBinding}) = 'object'\n and ${table.providerBindingKey}::jsonb = ${table.providerBinding}\n and ${table.providerBindingKey} = format(\n '{\"version\":1,\"serverUrl\":%s,\"workspaceName\":%s,\"environment\":%s}',\n to_jsonb(${table.providerBinding} ->> 'serverUrl')::text,\n to_jsonb(${table.providerBinding} ->> 'workspaceName')::text,\n to_jsonb(${table.providerBinding} ->> 'environment')::text\n )\n and ${table.providerBinding} = jsonb_build_object(\n 'version', 1,\n 'serverUrl', ${table.providerBinding} ->> 'serverUrl',\n 'workspaceName', ${table.providerBinding} ->> 'workspaceName',\n 'environment', ${table.providerBinding} ->> 'environment'\n )\n and coalesce(octet_length(${table.providerBinding} ->> 'serverUrl'), 0) > 0\n and coalesce(octet_length(${table.providerBinding} ->> 'workspaceName'), 0) > 0\n and ${table.providerBinding} ->> 'environment' is not null\n )`,\n ),\n reconcileClaimValid: check(\n \"sandbox_retained_processes_reconcile_claim_check\",\n sql`(${table.reconcileClaimId} is null and ${table.reconcileClaimedAt} is null)\n or (${table.reconcileClaimId} is not null and ${table.reconcileClaimedAt} is not null)`,\n ),\n reconcileAttemptsValid: check(\n \"sandbox_retained_processes_reconcile_attempts_check\",\n sql`${table.reconcileAttempts} >= 0`,\n ),\n reconcileOutcomeValid: check(\n \"sandbox_retained_processes_reconcile_outcome_check\",\n sql`${table.lastReconcileOutcome} is null\n or octet_length(${table.lastReconcileOutcome}) between 1 and 64`,\n ),\n reconcileProofValid: check(\n \"sandbox_retained_processes_reconcile_proof_check\",\n sql`(\n ${table.reconcileProofOutcome} is null\n and ${table.reconcileProofExitCode} is null\n and ${table.reconcileProofReason} is null\n and ${table.reconcileProofObservedAt} is null\n ) or (\n ${table.reconcileProofOutcome} = 'exited'\n and ${table.reconcileProofExitCode} is not null\n and ${table.reconcileProofReason} = 'provider_exit_banner'\n and ${table.reconcileProofObservedAt} is not null\n ) or (\n ${table.reconcileProofOutcome} = 'lost'\n and ${table.reconcileProofExitCode} is null\n and ${table.reconcileProofReason} in (\n 'provider_session_lost_banner', 'provider_instance_not_found',\n 'provider_instance_terminated'\n )\n and ${table.reconcileProofObservedAt} is not null\n )`,\n ),\n }),\n);\n\nexport const sessionBackgroundCommands = pgTable(\n \"session_background_commands\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n provider: text(\"provider\", {\n enum: [\"managed\", \"connected_machine\"],\n }).notNull(),\n state: text(\"state\", { enum: [\"running\", \"stopping\", \"exited\", \"lost\"] })\n .notNull()\n .default(\"running\"),\n retainedProcessId: uuid(\"retained_process_id\"),\n // Exact launch receipt, never inferred from a later turn or session owner.\n launchTurnId: uuid(\"launch_turn_id\"),\n launchAttemptId: uuid(\"launch_attempt_id\"),\n launchExecutionGeneration: integer(\"launch_execution_generation\"),\n controlWorkspaceId: uuid(\"control_workspace_id\"),\n enrollmentId: uuid(\"enrollment_id\"),\n connectionInstanceId: text(\"connection_instance_id\"),\n opId: text(\"op_id\"),\n commandPreview: text(\"command_preview\").notNull().default(\"\"),\n cancelRequestedAt: timestamp(\"cancel_requested_at\", { withTimezone: true }),\n cancelRequestedBy: text(\"cancel_requested_by\"),\n exitCode: integer(\"exit_code\"),\n settlementReason: text(\"settlement_reason\"),\n runnerFailure:\n jsonb(\"runner_failure\").$type<import(\"@opengeni/contracts\").SessionCommandFailure>(),\n startedAt: timestamp(\"started_at\", { withTimezone: true }).notNull().defaultNow(),\n settledAt: timestamp(\"settled_at\", { withTimezone: true }),\n completionObservedAt: timestamp(\"completion_observed_at\", { withTimezone: true }),\n reconcileAfter: timestamp(\"reconcile_after\", { withTimezone: true }).notNull().defaultNow(),\n reconcileClaimId: uuid(\"reconcile_claim_id\"),\n reconcileClaimedAt: timestamp(\"reconcile_claimed_at\", {\n withTimezone: true,\n }),\n reconcileAttempts: integer(\"reconcile_attempts\").notNull().default(0),\n lastReconcileOutcome: text(\"last_reconcile_outcome\"),\n reconcileProofOutcome: text(\"reconcile_proof_outcome\", {\n enum: [\"exited\", \"lost\"],\n }),\n reconcileProofExitCode: integer(\"reconcile_proof_exit_code\"),\n reconcileProofReason: text(\"reconcile_proof_reason\"),\n reconcileProofObservedAt: timestamp(\"reconcile_proof_observed_at\", {\n withTimezone: true,\n }),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"session_background_commands_workspace_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n runnerFailureCheck: check(\n \"session_background_commands_runner_failure_check\",\n sql`\n ${table.runnerFailure} IS NULL OR (\n ${table.provider} = 'connected_machine'\n AND jsonb_typeof(${table.runnerFailure}) = 'object'\n AND octet_length(${table.runnerFailure}::text) <= 8192\n AND ${table.runnerFailure} ?& ARRAY['code', 'retryable']\n AND jsonb_typeof(${table.runnerFailure} -> 'code') = 'string'\n AND (${table.runnerFailure} ->> 'code') ~ '^[A-Za-z0-9_-]{1,128}$'\n AND ${table.runnerFailure} -> 'retryable' = 'false'::jsonb\n AND (NOT (${table.runnerFailure} ? 'detail') OR jsonb_typeof(${table.runnerFailure} -> 'detail') = 'object')\n )`,\n ),\n workspaceSession: foreignKey({\n name: \"session_background_commands_session_fk\",\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n controlWorkspaceAccount: foreignKey({\n name: \"session_background_commands_control_workspace_fk\",\n columns: [table.controlWorkspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"restrict\"),\n retainedProcess: foreignKey({\n name: \"session_background_commands_process_fk\",\n columns: [table.retainedProcessId],\n foreignColumns: [sandboxRetainedProcesses.id],\n }).onDelete(\"restrict\"),\n managedProcess: uniqueIndex(\"session_background_commands_process_uq\")\n .on(table.retainedProcessId)\n .where(sql`${table.retainedProcessId} is not null`),\n connectedOp: uniqueIndex(\"session_background_commands_connected_op_uq\")\n .on(table.controlWorkspaceId, table.enrollmentId, table.connectionInstanceId, table.opId)\n .where(sql`${table.provider} = 'connected_machine'`),\n activeSession: index(\"session_background_commands_active_session_idx\")\n .on(table.workspaceId, table.sessionId, table.state, table.startedAt, table.id)\n .where(sql`${table.state} in ('running', 'stopping')`),\n stopping: index(\"session_background_commands_stopping_idx\")\n .on(table.reconcileAfter, table.cancelRequestedAt, table.id)\n .where(sql`${table.state} in ('running', 'stopping')`),\n launchIdentityValid: check(\n \"session_background_commands_launch_identity_check\",\n sql`(${table.launchTurnId} is null and ${table.launchAttemptId} is null and ${table.launchExecutionGeneration} is null)\n or (${table.launchTurnId} is not null and ${table.launchAttemptId} is not null\n and ${table.launchExecutionGeneration} is not null and ${table.launchExecutionGeneration} > 0)`,\n ),\n providerValid: check(\n \"session_background_commands_provider_check\",\n sql`${table.provider} in ('managed', 'connected_machine')`,\n ),\n stateValid: check(\n \"session_background_commands_state_check\",\n sql`${table.state} in ('running', 'stopping', 'exited', 'lost')`,\n ),\n observationValid: check(\n \"session_background_commands_observation_check\",\n sql`${table.completionObservedAt} is null or ${table.state} in ('exited', 'lost')`,\n ),\n providerIdentityValid: check(\n \"session_background_commands_provider_identity_check\",\n sql`(\n ${table.provider} = 'managed'\n and ${table.retainedProcessId} is not null\n and ${table.controlWorkspaceId} is null\n and ${table.enrollmentId} is null\n and ${table.connectionInstanceId} is null\n and ${table.opId} is null\n ) or (\n ${table.provider} = 'connected_machine'\n and ${table.retainedProcessId} is null\n and ${table.controlWorkspaceId} is not null\n and ${table.enrollmentId} is not null\n and ${table.connectionInstanceId} is not null\n and octet_length(${table.connectionInstanceId}) between 1 and 128\n and ${table.opId} is not null\n and octet_length(${table.opId}) between 1 and 256\n )`,\n ),\n lifecycleValid: check(\n \"session_background_commands_lifecycle_check\",\n sql`(\n ${table.state} = 'running'\n and ${table.cancelRequestedAt} is null\n and ${table.cancelRequestedBy} is null\n and ${table.exitCode} is null\n and ${table.settlementReason} is null\n and ${table.settledAt} is null\n ) or (\n ${table.state} = 'stopping'\n and ${table.cancelRequestedAt} is not null\n and ${table.cancelRequestedBy} is not null\n and octet_length(btrim(${table.cancelRequestedBy})) between 1 and 1024\n and ${table.exitCode} is null\n and ${table.settlementReason} is null\n and ${table.settledAt} is null\n ) or (\n ${table.state} = 'exited'\n and ${table.settledAt} is not null\n and octet_length(btrim(${table.settlementReason})) between 1 and 512\n ) or (\n ${table.state} = 'lost'\n and ${table.exitCode} is null\n and ${table.settledAt} is not null\n and octet_length(btrim(${table.settlementReason})) between 1 and 512\n )`,\n ),\n previewValid: check(\n \"session_background_commands_preview_check\",\n sql`octet_length(${table.commandPreview}) <= 2048`,\n ),\n reconcileValid: check(\n \"session_background_commands_reconcile_check\",\n sql`${table.reconcileAttempts} >= 0\n and (\n (${table.reconcileClaimId} is null and ${table.reconcileClaimedAt} is null)\n or (${table.reconcileClaimId} is not null and ${table.reconcileClaimedAt} is not null)\n )\n and (\n ${table.lastReconcileOutcome} is null\n or octet_length(${table.lastReconcileOutcome}) between 1 and 64\n )\n and (\n (\n ${table.reconcileProofOutcome} is null\n and ${table.reconcileProofExitCode} is null\n and ${table.reconcileProofReason} is null\n and ${table.reconcileProofObservedAt} is null\n ) or (\n ${table.reconcileProofOutcome} = 'exited'\n and ${table.reconcileProofExitCode} is not null\n and octet_length(btrim(${table.reconcileProofReason})) between 1 and 512\n and ${table.reconcileProofObservedAt} is not null\n ) or (\n ${table.reconcileProofOutcome} = 'lost'\n and ${table.reconcileProofExitCode} is null\n and octet_length(btrim(${table.reconcileProofReason})) between 1 and 512\n and ${table.reconcileProofObservedAt} is not null\n )\n )`,\n ),\n }),\n);\n\n// The recording lifecycle states (P4.3). Exported so the activity + the query\n// layer share one source of truth for the §3.1 state machine.\nexport const sessionRecordingStateValues = [\n \"recording\",\n \"finalizing\",\n \"available\",\n \"failed\",\n] as const;\nexport const sessionRecordingModeValues = [\"manual\", \"on-turn\", \"on-verify\"] as const;\nexport const sessionRecordingCodecValues = [\"h264-mp4\", \"vp9-webm\"] as const;\n\n// One row per recording — the durable index for the \"agent films itself proving\n// the fix\" loop. ffmpeg x11grab of the SAME :0 humans watch, finalized by\n// reading the bytes off the box and PUTting them to @opengeni/storage in the\n// process that holds the resumed-by-id handle (never a Temporal payload, F10).\n// Mirrors the account/workspace/session FK chain of sandboxSessionEnvelopes;\n// turnId is ON DELETE SET NULL (a deleted turn must not kill the artifact row).\nexport const sessionRecordings = pgTable(\n \"session_recordings\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n turnId: uuid(\"turn_id\").references(() => sessionTurns.id, {\n onDelete: \"set null\",\n }),\n\n state: text(\"state\", { enum: sessionRecordingStateValues }).notNull(),\n mode: text(\"mode\", { enum: sessionRecordingModeValues }).notNull(),\n codec: text(\"codec\", { enum: sessionRecordingCodecValues }).notNull(),\n\n storageKey: text(\"storage_key\"),\n sizeBytes: bigint(\"size_bytes\", { mode: \"number\" }),\n durationSeconds: numeric(\"duration_seconds\").$type<number>(),\n\n width: integer(\"width\").notNull(),\n height: integer(\"height\").notNull(),\n\n reason: losslessText(\"reason\"),\n reasonCodecVersion: losslessCodecVersion(\"reason_codec_version\"),\n\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n finalizedAt: timestamp(\"finalized_at\", { withTimezone: true }),\n },\n (table) => ({\n sessionIdx: index(\"session_recordings_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.createdAt,\n ),\n }),\n);\n\n// Workbench v2 turn-end workspace capture (model: sessionRecordings).\n// One row per capture revision — a point-in-time snapshot of a session's changed\n// files, probed off the live box at turn end. The manifest (tree index + per-repo\n// status/diff + file index) and each after-image blob live in @opengeni/storage;\n// this row is the durable index the read routes serve from. `revision` is\n// monotonic per session (unique (session_id, revision)); `blob_keys` records the\n// content-addressed after-image keys this revision references so the keep-latest-10\n// GC can delete only blobs no surviving revision shares (set-difference GC without\n// a storage read). `lease_epoch` fences a write: an insert whose lease was\n// superseded writes zero rows (see insertWorkspaceCapture).\nexport const workspaceCaptures = pgTable(\n \"workspace_captures\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n turnId: uuid(\"turn_id\").references(() => sessionTurns.id, {\n onDelete: \"set null\",\n }),\n\n revision: bigint(\"revision\", { mode: \"number\" }).notNull(),\n leaseEpoch: integer(\"lease_epoch\").notNull(),\n // 'available' on a committed capture. 'failed' reserved for a future two-phase\n // write; the current synchronous capture only ever inserts 'available'.\n state: text(\"state\", { enum: [\"available\", \"failed\"] })\n .notNull()\n .default(\"available\"),\n\n // Single JSON manifest blob (tree index + repos + file refs) — the cold-paint payload.\n manifestKey: text(\"manifest_key\"),\n // The fs tree index blob, kept separate from the manifest so the API can inline\n // or sign it independently of the (usually small) manifest metadata.\n treeIndexKey: text(\"tree_index_key\"),\n // Content-addressed after-image blob keys this revision references (GC input).\n blobKeys: jsonb(\"blob_keys\").$type<string[]>().notNull().default([]),\n\n sizeBytes: bigint(\"size_bytes\", { mode: \"number\" }),\n stats: jsonb(\"stats\").$type<Record<string, unknown>>().notNull().default({}),\n\n capturedAt: timestamp(\"captured_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n sessionRevision: uniqueIndex(\"workspace_captures_session_revision_idx\").on(\n table.sessionId,\n table.revision,\n ),\n latest: index(\"workspace_captures_latest_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.revision,\n ),\n }),\n);\n\n// Interactive PTY sessions. An OPEN PTY adopts one exact retained process; the\n// provider's numeric exec-session id is only a copied locator and never authority\n// on its own. Provider/lease/route/admission identity is copied onto the row so a\n// stale pointer or box epoch cannot redirect control to a rival process. Legacy\n// numeric-only rows are closed by the maintenance cutover and may retain null\n// identity columns only in that terminal state.\nexport const sandboxPtySessions = pgTable(\n \"sandbox_pty_sessions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(), // == ptyId on the wire\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\")\n .notNull()\n .references(() => sessions.id, { onDelete: \"cascade\" }),\n leaseId: uuid(\"lease_id\"),\n sandboxGroupId: uuid(\"sandbox_group_id\"),\n retainedProcessId: uuid(\"retained_process_id\"),\n openAdmissionId: uuid(\"open_admission_id\"),\n // Copied provider locator for the adopted retained process.\n execSessionId: integer(\"exec_session_id\"),\n leaseEpoch: integer(\"lease_epoch\").notNull(),\n providerBackend: text(\"provider_backend\"),\n providerInstanceId: text(\"provider_instance_id\"),\n routeKind: text(\"route_kind\", { enum: [\"home\", \"active\"] }),\n routeTargetId: uuid(\"route_target_id\"),\n routeEpoch: integer(\"route_epoch\"),\n cols: integer(\"cols\").notNull(),\n rows: integer(\"rows\").notNull(),\n shell: text(\"shell\").notNull(),\n cwd: text(\"cwd\").notNull(),\n status: text(\"status\").notNull().default(\"open\"), // 'open' | 'closed'\n // The viewer grant/subject that opened it (free-text — access subjects are not\n // always UUIDs, M5; so a text column, never a uuid NOT NULL).\n openedBy: text(\"opened_by\").notNull(),\n lastInputAt: timestamp(\"last_input_at\", { withTimezone: true }).notNull().defaultNow(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n closedAt: timestamp(\"closed_at\", { withTimezone: true }),\n },\n (table) => ({\n retainedProcessScope: foreignKey({\n name: \"sandbox_pty_sessions_retained_process_scope_fk\",\n columns: [\n table.accountId,\n table.workspaceId,\n table.sessionId,\n table.leaseId,\n table.retainedProcessId,\n ],\n foreignColumns: [\n sandboxRetainedProcesses.accountId,\n sandboxRetainedProcesses.workspaceId,\n sandboxRetainedProcesses.sessionId,\n sandboxRetainedProcesses.leaseId,\n sandboxRetainedProcesses.id,\n ],\n }).onDelete(\"restrict\"),\n openIdx: index(\"sandbox_pty_sessions_session_idx\")\n .on(table.workspaceId, table.sessionId)\n .where(sql`${table.status} = 'open'`),\n processIdx: uniqueIndex(\"sandbox_pty_sessions_open_process_uq\")\n .on(table.retainedProcessId)\n .where(sql`${table.status} = 'open'`),\n openIdentityValid: check(\n \"sandbox_pty_sessions_open_identity_check\",\n sql`${table.status} <> 'open' or (\n ${table.leaseId} is not null\n and ${table.sandboxGroupId} is not null\n and ${table.retainedProcessId} is not null\n and ${table.openAdmissionId} is not null\n and ${table.execSessionId} > 0\n and octet_length(${table.providerBackend}) between 1 and 64\n and octet_length(${table.providerInstanceId}) between 1 and 512\n and ${table.routeKind} in ('home', 'active')\n and (${table.routeKind} = 'active' or ${table.routeTargetId} is null)\n and ${table.routeEpoch} is not null\n and ${table.leaseEpoch} >= 0\n and ${table.routeEpoch} >= 0\n )`,\n ),\n }),\n);\n\n// ============================================================================\n// Bring-your-own-compute (M2): first-class swappable sandboxes + enrollment +\n// metrics (migration 0024). The session→box\n// binding becomes a per-session mutable, epoch-fenced active_sandbox_id pointer\n// (declared on sessions above) that the routing proxy resolves PER TOOL CALL.\n\n// The lifecycle/enum domains, exported so the query layer + the migration share\n// ONE source of truth for each CHECK.\nexport const enrollmentExposureValues = [\"whole-machine\"] as const;\nexport const enrollmentStatusValues = [\"active\", \"revoked\"] as const;\nexport const enrollmentOsValues = [\"linux\", \"macos\", \"windows\"] as const;\nexport const sandboxKindValues = [\"modal\", \"selfhosted\"] as const;\nexport const agentUpdateStatusValues = [\n \"requested\",\n \"accepted\",\n \"waiting_for_idle\",\n \"downloading\",\n \"verifying\",\n \"applying\",\n \"restarting\",\n \"succeeded\",\n \"failed\",\n] as const;\n\n// One row per registered machine. The agent's ed25519 PUBLIC key IS the machine\n// identity (the NATS control-plane subject the agent subscribes to maps to it).\n// exposure is the loudly-consented access mode; has_display/allow_screen_control\n// are the desktop/computer-use consent bits (default false — opt-in). status is\n// the active|revoked lifecycle; last_seen_at the heartbeat liveness cursor the\n// Machines dashboard renders online/reconnecting/offline from.\nexport const enrollments = pgTable(\n \"enrollments\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n authorityScope: text(\"authority_scope\").notNull().default(\"workspace\"),\n authorityId: uuid(\"authority_id\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n originWorkspaceId: uuid(\"origin_workspace_id\"),\n generation: bigint(\"generation\", { mode: \"number\" }).notNull().default(1),\n // The agent's ed25519 public key (the machine identity).\n pubkey: text(\"pubkey\").notNull(),\n exposure: text(\"exposure\", { enum: enrollmentExposureValues })\n .notNull()\n .default(\"whole-machine\"),\n hasDisplay: boolean(\"has_display\").notNull().default(false),\n // Refreshed from every connect Hello (Capabilities.op_stream); false for\n // agents predating the op-stream engine.\n opStream: boolean(\"op_stream\").notNull().default(false),\n // When the machine has a display it CANNOT capture (macOS Screen Recording / TCC\n // not granted), the agent reports has_display=false AND a human, actionable reason\n // here (e.g. \"grant Screen Recording in System Settings\"). NULL means capture is\n // permitted (has_display=true) or the machine is genuinely headless — the reason\n // distinguishes \"display present but capture not granted\" from plain \"no display\"\n // so the Machines dashboard / VM picker can surface the specific hint. Refreshed\n // from every connect Hello alongside has_display.\n desktopUnavailableReason: text(\"desktop_unavailable_reason\"),\n allowScreenControl: boolean(\"allow_screen_control\").notNull().default(false),\n // Optional per-connection command policy. NULL is the unrestricted default.\n // Values remain within JavaScript's exact-integer wire range; local runner and\n // ancestor host policy may only tighten them at execution.\n operationMemoryMaxBytes: bigint(\"operation_memory_max_bytes\", {\n mode: \"number\",\n }),\n operationMemoryHighBytes: bigint(\"operation_memory_high_bytes\", {\n mode: \"number\",\n }),\n operationCpuMaxMillicores: bigint(\"operation_cpu_max_millicores\", {\n mode: \"number\",\n }),\n operationPolicyRevision: integer(\"operation_policy_revision\").notNull().default(0),\n operationPolicyUpdatedAt: timestamp(\"operation_policy_updated_at\", {\n withTimezone: true,\n }),\n status: text(\"status\", { enum: enrollmentStatusValues }).notNull().default(\"active\"),\n // Credential-family fence. Existing rows/migration-era bearers are generation\n // 1; every successful re-enrollment increments this atomically before a new\n // bearer is signed. Auth and self-revoke require an exact row/claim match.\n credentialGeneration: integer(\"credential_generation\").notNull().default(1),\n // One live runner instance owns this enrollment's data-plane address at a\n // time. Auth-callout claims/renews the lease before NATS grants a connection;\n // every operational subject includes the instance id, so an older still-open\n // socket cannot receive work after a successor claims authority.\n connectionInstanceId: text(\"connection_instance_id\"),\n connectionGeneration: integer(\"connection_generation\").notNull().default(0),\n connectionLeaseExpiresAt: timestamp(\"connection_lease_expires_at\", {\n withTimezone: true,\n }),\n // Durable diagnostics for valid cloned credentials / duplicate daemons that\n // were blocked while another process held the live authority lease.\n connectionDuplicateDeniedCount: integer(\"connection_duplicate_denied_count\")\n .notNull()\n .default(0),\n connectionDuplicateDeniedAt: timestamp(\"connection_duplicate_denied_at\", {\n withTimezone: true,\n }),\n os: text(\"os\", { enum: enrollmentOsValues }).notNull().default(\"linux\"),\n arch: text(\"arch\").notNull().default(\"x86_64\"),\n // Exact absolute launch root reported by the authoritative runner Hello.\n // Null means no current runner has supplied a usable root yet.\n workspaceRoot: text(\"workspace_root\"),\n // Heartbeat liveness cursor. Null until the first connect.\n lastSeenAt: timestamp(\"last_seen_at\", { withTimezone: true }),\n // Clean going-offline marker (migration 0049). Set when the machine announces a\n // typed GoingOffline (user-stop / self-update / host-shutdown); the liveness\n // derivation reads an un-cleared marker as OFFLINE immediately, regardless of a\n // still-fresh last_seen. Any newer liveness signal (a reconnect Hello or a\n // fresher heartbeat via touchEnrollmentLastSeen) clears BOTH back to NULL. NULL\n // (the default) ⇒ no goodbye pending — today's last_seen-aging behavior.\n wentOfflineAt: timestamp(\"went_offline_at\", { withTimezone: true }),\n wentOfflineReason: text(\"went_offline_reason\"),\n // Exact running build + negotiated capability truth, refreshed from the\n // authoritative process Hello. Null means an older agent has not reported it.\n agentVersion: text(\"agent_version\"),\n agentBinarySha256: text(\"agent_binary_sha256\"),\n agentUpdateChannel: text(\"agent_update_channel\", {\n enum: [\"stable\", \"beta\"] as const,\n }),\n agentCapabilities: jsonb(\"agent_capabilities\")\n .$type<Record<string, boolean>>()\n .notNull()\n .default({}),\n // One current/most-recent self-update. The accepting connection coordinates\n // fence every progress write; a successor Hello is the only success signal.\n agentUpdateOperationId: uuid(\"agent_update_operation_id\"),\n agentUpdateStatus: text(\"agent_update_status\", {\n enum: agentUpdateStatusValues,\n }),\n agentUpdateTargetVersion: text(\"agent_update_target_version\"),\n agentUpdateExpectedBinarySha256: text(\"agent_update_expected_binary_sha256\"),\n agentUpdateErrorCode: text(\"agent_update_error_code\"),\n agentUpdateRetryable: boolean(\"agent_update_retryable\").notNull().default(false),\n agentUpdateRolledBack: boolean(\"agent_update_rolled_back\").notNull().default(false),\n agentUpdateConnectionInstanceId: text(\"agent_update_connection_instance_id\"),\n agentUpdateConnectionGeneration: integer(\"agent_update_connection_generation\"),\n agentUpdateRequestedAt: timestamp(\"agent_update_requested_at\", {\n withTimezone: true,\n }),\n agentUpdateUpdatedAt: timestamp(\"agent_update_updated_at\", {\n withTimezone: true,\n }),\n agentUpdateCompletedAt: timestamp(\"agent_update_completed_at\", {\n withTimezone: true,\n }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n // One enrollment identity per authority boundary and pubkey. Revocation keeps\n // the identity so a re-enroll can reactivate the same durable row.\n workspacePubkey: uniqueIndex(\"enrollments_workspace_pubkey_idx\")\n .on(table.workspaceId, table.pubkey)\n .where(sql`${table.authorityScope} = 'workspace'`),\n organizationPubkey: uniqueIndex(\"enrollments_organization_pubkey_idx\")\n .on(table.accountId, table.pubkey)\n .where(sql`${table.authorityScope} = 'organization'`),\n userPubkey: uniqueIndex(\"enrollments_user_pubkey_idx\")\n .on(table.accountId, table.ownerOrganizationMembershipId, table.pubkey)\n .where(sql`${table.authorityScope} = 'user'`),\n // List a workspace's ACTIVE machines without scanning revoked rows.\n workspaceStatus: index(\"enrollments_workspace_status_idx\").on(table.workspaceId, table.status),\n authorityShape: check(\n \"enrollments_authority_shape_check\",\n sql`(\n ${table.authorityScope} in ('organization', 'workspace')\n and ${table.authorityId} is null\n and ${table.ownerOrganizationMembershipId} is null\n ) or (\n ${table.authorityScope} = 'user'\n and ${table.authorityId} is not null\n and ${table.ownerOrganizationMembershipId} is not null\n )`,\n ),\n authorityScopeValid: check(\n \"enrollments_authority_scope_check\",\n sql`${table.authorityScope} in ('organization', 'workspace', 'user')`,\n ),\n generationPositive: check(\"enrollments_generation_check\", sql`${table.generation} > 0`),\n authority: foreignKey({\n name: \"enrollments_authority_fk\",\n columns: [table.authorityId, table.accountId, table.ownerOrganizationMembershipId],\n foreignColumns: [\n organizationUserResourceAuthorities.id,\n organizationUserResourceAuthorities.accountId,\n organizationUserResourceAuthorities.organizationMembershipId,\n ],\n }).onDelete(\"restrict\"),\n connectionAuthorityShape: check(\n \"enrollments_connection_authority_shape_chk\",\n sql`(${table.connectionInstanceId} is null and ${table.connectionLeaseExpiresAt} is null)\n or (${table.connectionInstanceId} is not null\n and length(${table.connectionInstanceId}) between 1 and 128\n and ${table.connectionLeaseExpiresAt} is not null)`,\n ),\n connectionGenerationNonnegative: check(\n \"enrollments_connection_generation_chk\",\n sql`${table.connectionGeneration} >= 0`,\n ),\n operationMemoryMaxShape: check(\n \"enrollments_operation_memory_max_shape_chk\",\n sql`${table.operationMemoryMaxBytes} is null or (${table.operationMemoryMaxBytes} > 0 and ${table.operationMemoryMaxBytes} <= 9007199254740991)`,\n ),\n operationMemoryHighShape: check(\n \"enrollments_operation_memory_high_shape_chk\",\n sql`${table.operationMemoryHighBytes} is null or (${table.operationMemoryHighBytes} > 0 and ${table.operationMemoryHighBytes} <= 9007199254740991)`,\n ),\n operationMemoryOrder: check(\n \"enrollments_operation_memory_order_chk\",\n sql`${table.operationMemoryMaxBytes} is null or ${table.operationMemoryHighBytes} is null or ${table.operationMemoryHighBytes} <= ${table.operationMemoryMaxBytes}`,\n ),\n operationCpuShape: check(\n \"enrollments_operation_cpu_shape_chk\",\n sql`${table.operationCpuMaxMillicores} is null or ${table.operationCpuMaxMillicores} between 1 and 4294967295`,\n ),\n operationPolicyRevisionNonnegative: check(\n \"enrollments_operation_policy_revision_chk\",\n sql`${table.operationPolicyRevision} >= 0`,\n ),\n agentBinarySha256Shape: check(\n \"enrollments_agent_binary_sha256_chk\",\n sql`${table.agentBinarySha256} is null or ${table.agentBinarySha256} ~ '^[0-9a-f]{64}$'`,\n ),\n agentUpdateChannelShape: check(\n \"enrollments_agent_update_channel_chk\",\n sql`${table.agentUpdateChannel} is null or ${table.agentUpdateChannel} in ('stable', 'beta')`,\n ),\n agentUpdateExpectedBinarySha256Shape: check(\n \"enrollments_agent_update_expected_binary_sha256_chk\",\n sql`${table.agentUpdateExpectedBinarySha256} is null or ${table.agentUpdateExpectedBinarySha256} ~ '^[0-9a-f]{64}$'`,\n ),\n agentUpdateStateShape: check(\n \"enrollments_agent_update_state_shape_chk\",\n sql`(\n (${table.agentUpdateOperationId} is null\n and ${table.agentUpdateStatus} is null\n and ${table.agentUpdateTargetVersion} is null\n and ${table.agentUpdateConnectionInstanceId} is null\n and ${table.agentUpdateConnectionGeneration} is null\n and ${table.agentUpdateRequestedAt} is null\n and ${table.agentUpdateUpdatedAt} is null)\n or\n (${table.agentUpdateOperationId} is not null\n and ${table.agentUpdateStatus} in (\n 'requested', 'accepted', 'waiting_for_idle', 'downloading', 'verifying',\n 'applying', 'restarting', 'succeeded', 'failed'\n )\n and ${table.agentUpdateTargetVersion} is not null\n and ${table.agentUpdateConnectionInstanceId} is not null\n and ${table.agentUpdateConnectionGeneration} is not null\n and ${table.agentUpdateConnectionGeneration} >= 0\n and ${table.agentUpdateRequestedAt} is not null\n and ${table.agentUpdateUpdatedAt} is not null)\n )`,\n ),\n connectionDuplicateDeniedCountNonnegative: check(\n \"enrollments_connection_duplicate_denied_count_chk\",\n sql`${table.connectionDuplicateDeniedCount} >= 0`,\n ),\n }),\n);\n\n// One durable receipt per workspace-authorized connected-machine removal\n// request. The enrollment row remains the lifecycle truth; this table preserves\n// the exact idempotency key, request fingerprint, and terminal result so a lost\n// response can be replayed without re-running dependency checks or mutating a\n// different enrollment that happens to share the same display name.\nexport const machineRemovalOperationOutcomeValues = [\n \"removed\",\n \"already_removed\",\n \"blocked\",\n] as const;\n\nexport const machineRemovalOperations = pgTable(\n \"machine_removal_operations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n enrollmentId: uuid(\"enrollment_id\")\n .notNull()\n .references(() => enrollments.id, { onDelete: \"restrict\" }),\n operationKey: text(\"operation_key\").notNull(),\n requestFingerprint: text(\"request_fingerprint\").notNull(),\n outcome: text(\"outcome\", {\n enum: machineRemovalOperationOutcomeValues,\n }).notNull(),\n result: jsonb(\"result\").$type<Record<string, unknown>>().notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccount: foreignKey({\n name: \"machine_removal_operations_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceOperation: uniqueIndex(\"machine_removal_operations_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationKey,\n ),\n workspaceIdentity: uniqueIndex(\"machine_removal_operations_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n enrollmentTimeline: index(\"machine_removal_operations_enrollment_created_idx\").on(\n table.workspaceId,\n table.enrollmentId,\n table.createdAt,\n ),\n requestFingerprintValid: check(\n \"machine_removal_operations_request_fingerprint_chk\",\n sql`${table.requestFingerprint} ~ '^[0-9a-f]{64}$'`,\n ),\n operationKeyValid: check(\n \"machine_removal_operations_operation_key_chk\",\n sql`length(btrim(${table.operationKey})) between 1 and 200\n and ${table.operationKey} = btrim(${table.operationKey})`,\n ),\n }),\n);\n\n// The OAuth 2.0 device-authorization (RFC 8628) PENDING request (M5, migration\n// 0025 / enrollment + §18 LOUD consent). An agent's `enroll` starts\n// a flow (POST /enrollments/device/start) → one short-TTL, single-use row keyed by\n// an opaque `device_code` (the agent polls with) + a short `user_code` (the user\n// types at the approve page). The user (workspace-membership / workspace:admin\n// gated) approves it (POST /enrollments/device/approve), which records WHO\n// (subject + label) consented WHEN (approved_at) to WHAT (whole-machine mandatory +\n// screen-control per allow_screen_control) and stamps the resulting enrollment_id /\n// sandbox_id. The agent then polls (POST /enrollments/device/poll) and the approved\n// row yields the EnrollmentCredentials. State machine: pending → approved | denied;\n// a pending row past expires_at is EXPIRED; once the agent has polled an approved\n// row its credentials, the row flips to consumed (single-use). NOT a long-lived\n// record — a retention sweep prunes terminal rows; the durable identity is the\n// `enrollments` row the approve produced.\nexport const deviceEnrollmentStatusValues = [\"pending\", \"approved\", \"denied\", \"consumed\"] as const;\n\nexport const deviceEnrollmentRequests = pgTable(\n \"device_enrollment_requests\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n // The opaque code the agent polls with (unguessable, single-use). Unique.\n deviceCode: text(\"device_code\").notNull(),\n // The short human-typed code (e.g. \"WDJB-MJHT\"). Unique among LIVE (pending)\n // rows via a partial unique index so a recycled code never collides with a\n // terminal row.\n userCode: text(\"user_code\").notNull(),\n // The workspace this request was started for (resolved from the deployment-edge\n // request context — the agent presents the access key, the flow binds to the\n // single managed workspace OR a workspace hint). account_id rides along for RLS.\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n // The agent's ed25519 public key (the machine identity the enrollment binds to).\n pubkey: text(\"pubkey\").notNull(),\n os: text(\"os\", { enum: enrollmentOsValues }).notNull().default(\"linux\"),\n arch: text(\"arch\").notNull().default(\"x86_64\"),\n machineName: text(\"machine_name\"),\n // The exposure the agent REQUESTED (whole-machine in v1; loudly consented at\n // approve). Mirrors the enrollment column domain.\n requestedExposure: text(\"requested_exposure\", {\n enum: enrollmentExposureValues,\n })\n .notNull()\n .default(\"whole-machine\"),\n // The agent CAN offer a display (a real screen / Xvfb is available) — gates\n // whether screen-control consent is even meaningful. has_display on the\n // resulting enrollment is derived from this.\n canOfferDisplay: boolean(\"can_offer_display\").notNull().default(false),\n // The agent REQUESTS screen control (computer-use). The user's allow_screen_control\n // at approve is the AUTHORITATIVE consent; this is only the agent's request.\n requestsScreenControl: boolean(\"requests_screen_control\").notNull().default(false),\n status: text(\"status\", { enum: deviceEnrollmentStatusValues }).notNull().default(\"pending\"),\n // ── LOUD CONSENT capture (who/when/what), stamped at approve ──────────────\n approvedBySubjectId: text(\"approved_by_subject_id\"),\n approvedBySubjectLabel: text(\"approved_by_subject_label\"),\n // The user's screen-control consent decision (whole-machine is mandatory at\n // approve; screen-control is opt-in per this flag).\n allowScreenControl: boolean(\"allow_screen_control\").notNull().default(false),\n approvedAt: timestamp(\"approved_at\", { withTimezone: true }),\n // The enrollment + sandbox the approve produced (acceptance #2: an enrollment\n // row AND a sandbox row appear). Null until approved.\n enrollmentId: uuid(\"enrollment_id\").references(() => enrollments.id, {\n onDelete: \"set null\",\n }),\n sandboxId: uuid(\"sandbox_id\").references(() => sandboxes.id, {\n onDelete: \"set null\",\n }),\n // The short-TTL expiry; a pending row past this is EXPIRED on poll.\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n // The device_code is the agent's poll key — globally unique + indexed.\n deviceCode: uniqueIndex(\"device_enrollment_requests_device_code_idx\").on(table.deviceCode),\n // The user_code must be unique among LIVE (pending) rows so the approve lookup\n // is unambiguous; a terminal row's code may be recycled.\n userCodePending: uniqueIndex(\"device_enrollment_requests_user_code_pending_idx\")\n .on(table.userCode)\n .where(sql`${table.status} = 'pending'`),\n workspaceCreated: index(\"device_enrollment_requests_workspace_created_idx\").on(\n table.workspaceId,\n table.createdAt,\n ),\n expires: index(\"device_enrollment_requests_expires_idx\").on(table.expiresAt),\n }),\n);\n\n// The first-class NAMED sandbox a session's active_sandbox_id points AT. kind\n// discriminates the backend the routing proxy resolves to: 'modal' (cloud box,\n// NULL enrollment_id) or 'selfhosted' (a user's machine, enrollment_id -> the\n// enrollment it lives on). The selfhosted-needs-enrollment invariant is pinned by\n// the sandboxes_selfhosted_enrollment_chk CHECK in migration 0024. enrollment_id\n// is ON DELETE SET NULL so deleting an enrollment never cascade-kills a sandbox a\n// session might still point at (the routing layer surfaces agent_offline instead).\nexport const sandboxes = pgTable(\n \"sandboxes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n kind: text(\"kind\", { enum: sandboxKindValues }).notNull(),\n name: text(\"name\").notNull(),\n enrollmentId: uuid(\"enrollment_id\").references(() => enrollments.id, {\n onDelete: \"set null\",\n }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceCreated: index(\"sandboxes_workspace_created_idx\").on(\n table.workspaceId,\n table.createdAt,\n ),\n enrollment: index(\"sandboxes_enrollment_idx\")\n .on(table.enrollmentId)\n .where(sql`${table.enrollmentId} is not null`),\n }),\n);\n\n// Last-sample upsert: ONE row per enrollment, overwritten on every sample (the\n// PK on enrollment_id is the ON CONFLICT target). The §10.7 signals; nullable\n// where a platform/sample may not provide it (no GPU, headless).\nexport const machineMetricsLatest = pgTable(\n \"machine_metrics_latest\",\n {\n enrollmentId: uuid(\"enrollment_id\")\n .primaryKey()\n .references(() => enrollments.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n cpuPercent: numeric(\"cpu_percent\").$type<number>(),\n load1: numeric(\"load1\").$type<number>(),\n load5: numeric(\"load5\").$type<number>(),\n load15: numeric(\"load15\").$type<number>(),\n memUsedBytes: bigint(\"mem_used_bytes\", { mode: \"number\" }),\n memTotalBytes: bigint(\"mem_total_bytes\", { mode: \"number\" }),\n diskUsedBytes: bigint(\"disk_used_bytes\", { mode: \"number\" }),\n diskTotalBytes: bigint(\"disk_total_bytes\", { mode: \"number\" }),\n gpuUtilPercent: numeric(\"gpu_util_percent\").$type<number>(),\n gpuMemUsedBytes: bigint(\"gpu_mem_used_bytes\", { mode: \"number\" }),\n gpuMemTotalBytes: bigint(\"gpu_mem_total_bytes\", { mode: \"number\" }),\n contention: numeric(\"contention\").$type<number>(),\n sampledAt: timestamp(\"sampled_at\", { withTimezone: true }).notNull(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspace: index(\"machine_metrics_latest_workspace_idx\").on(table.workspaceId),\n }),\n);\n\n// Append-only downsampled history (~1/min per enrollment, retained N days). Same\n// signal columns as _latest. The (enrollment_id, sampled_at) index serves the\n// dashboard time-range read AND the (later) retention sweep.\nexport const machineMetricsSeries = pgTable(\n \"machine_metrics_series\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n enrollmentId: uuid(\"enrollment_id\")\n .notNull()\n .references(() => enrollments.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n cpuPercent: numeric(\"cpu_percent\").$type<number>(),\n load1: numeric(\"load1\").$type<number>(),\n load5: numeric(\"load5\").$type<number>(),\n load15: numeric(\"load15\").$type<number>(),\n memUsedBytes: bigint(\"mem_used_bytes\", { mode: \"number\" }),\n memTotalBytes: bigint(\"mem_total_bytes\", { mode: \"number\" }),\n diskUsedBytes: bigint(\"disk_used_bytes\", { mode: \"number\" }),\n diskTotalBytes: bigint(\"disk_total_bytes\", { mode: \"number\" }),\n gpuUtilPercent: numeric(\"gpu_util_percent\").$type<number>(),\n gpuMemUsedBytes: bigint(\"gpu_mem_used_bytes\", { mode: \"number\" }),\n gpuMemTotalBytes: bigint(\"gpu_mem_total_bytes\", { mode: \"number\" }),\n contention: numeric(\"contention\").$type<number>(),\n sampledAt: timestamp(\"sampled_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n enrollmentSampled: index(\"machine_metrics_series_enrollment_sampled_idx\").on(\n table.enrollmentId,\n table.sampledAt,\n ),\n sampled: index(\"machine_metrics_series_sampled_idx\").on(table.sampledAt),\n }),\n);\n\nexport const scheduledTasks = pgTable(\n \"scheduled_tasks\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n name: text(\"name\").notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n schedule: jsonb(\"schedule\").$type<unknown>().notNull(),\n temporalScheduleId: text(\"temporal_schedule_id\").notNull(),\n runMode: text(\"run_mode\").notNull().default(\"new_session_per_run\"),\n overlapPolicy: text(\"overlap_policy\").notNull().default(\"allow_concurrent\"),\n action: jsonb(\"action\").$type<unknown>().notNull().default({ kind: \"agent_turn\" }),\n agentConfig: jsonb(\"agent_config\").$type<unknown>().notNull(),\n createdByKind: text(\"created_by_kind\").notNull().default(\"service\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull().default(\"unattributed-legacy\"),\n createdByContext: jsonb(\"created_by_context\")\n .$type<Record<string, unknown>>()\n .notNull()\n .default({ backfill: true }),\n personalConnectionDelegations: jsonb(\"personal_connection_delegations\")\n .$type<McpPersonalConnectionDelegation[]>()\n .notNull()\n .default([]),\n xaiProviderAccountAuthoritySnapshot: jsonb(\"xai_provider_account_authority_snapshot\")\n .$type<XaiProviderAccountAuthoritySnapshotV1>()\n .notNull()\n .default(WORKSPACE_XAI_PROVIDER_ACCOUNT_AUTHORITY_SNAPSHOT_V1),\n authorityRevision: bigint(\"authority_revision\", { mode: \"number\" }).notNull().default(1),\n // The migration-owned BEFORE INSERT/UPDATE trigger replaces this client\n // placeholder with the canonical whole-row execution digest.\n executionDigest: text(\"execution_digest\")\n .notNull()\n .$defaultFn(() => \"\"),\n reusableSessionId: uuid(\"reusable_session_id\").references(() => sessions.id, {\n onDelete: \"set null\",\n }),\n variableSetId: uuid(\"variable_set_id\").references(() => workspaceVariableSets.id, {\n onDelete: \"restrict\",\n }),\n // The rig this task's runs ride; the active version is resolved per fire\n // (migration 0047). NULL ⇒ no rig. FK (-> rigs(id) ON DELETE SET NULL) lives\n // in migration 0047 (forward-reference pattern). Consumed in M3.\n rigId: uuid(\"rig_id\"),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n // Frozen creator boundary for tasks created by a live agent attempt\n // (migration 0428): generated sessions inherit these instead of the\n // deployment default. NULL for human/API creates.\n creatorFirstPartyMcpTools: jsonb(\"creator_first_party_mcp_tools\").$type<\n FirstPartyMcpToolName[]\n >(),\n creatorFirstPartyMcpPermissions: jsonb(\"creator_first_party_mcp_permissions\").$type<\n Permission[]\n >(),\n creatorSessionPolicy: jsonb(\"creator_session_policy\").$type<{\n agentAccess: string | null;\n scopeSubjectId: string | null;\n memoryScope: string | null;\n }>(),\n deletedAt: timestamp(\"deleted_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n temporalScheduleId: uniqueIndex(\"scheduled_tasks_workspace_temporal_schedule_id_idx\").on(\n table.workspaceId,\n table.temporalScheduleId,\n ),\n sessionTarget: index(\"scheduled_tasks_workspace_session_target_idx\")\n .on(table.workspaceId, table.reusableSessionId)\n .where(sql`${table.deletedAt} is null`),\n status: index(\"scheduled_tasks_workspace_status_idx\").on(table.workspaceId, table.status),\n variableSet: index(\"scheduled_tasks_variable_set_idx\").on(\n table.workspaceId,\n table.variableSetId,\n ),\n }),\n);\n\n/**\n * Durable ownership of Temporal schedules whose database owner was deleted.\n *\n * Deliberately no workspace/account foreign key: this row must survive the\n * workspace cascade that creates it. Ordinary runtime code may insert it while\n * the workspace is still RLS-visible; cross-workspace claim/settlement is only\n * available through migration-owned SECURITY DEFINER functions.\n */\nexport const temporalScheduleCleanupOutbox = pgTable(\n \"temporal_schedule_cleanup_outbox\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n temporalScheduleId: text(\"temporal_schedule_id\").notNull(),\n scheduledTaskId: uuid(\"scheduled_task_id\"),\n connectorCleanupSubjectId: text(\"connector_cleanup_subject_id\"),\n connectorCleanupSnapshot: jsonb(\"connector_cleanup_snapshot\"),\n connectorCleanupCompletedAt: timestamp(\"connector_cleanup_completed_at\", {\n withTimezone: true,\n }),\n claimId: uuid(\"claim_id\"),\n claimUntil: timestamp(\"claim_until\", { withTimezone: true }),\n attemptCount: integer(\"attempt_count\").notNull().default(0),\n nextAttemptAt: timestamp(\"next_attempt_at\", { withTimezone: true }).notNull().defaultNow(),\n lastError: text(\"last_error\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n schedule: uniqueIndex(\"temporal_schedule_cleanup_outbox_schedule_uq\").on(\n table.temporalScheduleId,\n ),\n due: index(\"temporal_schedule_cleanup_outbox_due_idx\").on(\n table.nextAttemptAt,\n table.claimUntil,\n table.id,\n ),\n valid: check(\n \"temporal_schedule_cleanup_outbox_valid_chk\",\n sql`length(${table.temporalScheduleId}) between 1 and 512\n and ${table.attemptCount} >= 0\n and ((${table.claimId} is null and ${table.claimUntil} is null)\n or (${table.claimId} is not null and ${table.claimUntil} is not null))\n and ((${table.scheduledTaskId} is null and ${table.connectorCleanupSubjectId} is null\n and ${table.connectorCleanupSnapshot} is null)\n or (${table.scheduledTaskId} is not null and ${table.connectorCleanupSubjectId} is not null\n and ${table.connectorCleanupSnapshot} is not null))\n and (${table.connectorCleanupSnapshot} is not null\n or ${table.connectorCleanupCompletedAt} is null)\n and (${table.connectorCleanupSubjectId} is null\n or octet_length(${table.connectorCleanupSubjectId}) between 1 and 4096)\n and (${table.connectorCleanupSnapshot} is null or (\n jsonb_typeof(${table.connectorCleanupSnapshot}) = 'object'\n and ${table.connectorCleanupSnapshot} ?& array[\n 'version','taskId','accountId','workspaceId','connectorKind','connectionId',\n 'connectionVersion','sourceId','sourceLifecycleGeneration',\n 'sourceConfigGeneration','externalSourceId','subjectId'\n ]\n and ${table.connectorCleanupSnapshot} - array[\n 'version','taskId','accountId','workspaceId','connectorKind','connectionId',\n 'connectionVersion','sourceId','sourceLifecycleGeneration',\n 'sourceConfigGeneration','externalSourceId','subjectId'\n ]::text[] = '{}'::jsonb\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'version') = 'number'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'taskId') = 'string'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'accountId') = 'string'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'workspaceId') = 'string'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'connectorKind') = 'string'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'connectionId') = 'string'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'connectionVersion') = 'number'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'sourceId') = 'string'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'sourceLifecycleGeneration') = 'number'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'sourceConfigGeneration') = 'number'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'externalSourceId') = 'string'\n and jsonb_typeof(${table.connectorCleanupSnapshot}->'subjectId') = 'string'\n and ${table.connectorCleanupSnapshot}->>'version' = '1'\n and ${table.connectorCleanupSnapshot}->>'connectorKind' in ('google_drive','atlassian')\n and ${table.connectorCleanupSnapshot}->>'subjectId' = ${table.connectorCleanupSubjectId}\n and ${table.connectorCleanupSnapshot}->>'taskId' = ${table.scheduledTaskId}::text\n and ${table.connectorCleanupSnapshot}->>'accountId' = ${table.accountId}::text\n and ${table.connectorCleanupSnapshot}->>'workspaceId' = ${table.workspaceId}::text\n and octet_length(${table.connectorCleanupSnapshot}->>'externalSourceId') between 1 and 2048\n and octet_length(${table.connectorCleanupSnapshot}->>'subjectId') between 1 and 4096\n and ${table.connectorCleanupSnapshot}->>'taskId' ~* '^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'\n and ${table.connectorCleanupSnapshot}->>'accountId' ~* '^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'\n and ${table.connectorCleanupSnapshot}->>'workspaceId' ~* '^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'\n and ${table.connectorCleanupSnapshot}->>'connectionId' ~* '^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'\n and ${table.connectorCleanupSnapshot}->>'sourceId' ~* '^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'\n and ${table.connectorCleanupSnapshot}->>'connectionVersion' ~ '^[1-9][0-9]*$'\n and ${table.connectorCleanupSnapshot}->>'sourceLifecycleGeneration' ~ '^[1-9][0-9]*$'\n and ${table.connectorCleanupSnapshot}->>'sourceConfigGeneration' ~ '^[1-9][0-9]*$'\n and (${table.connectorCleanupSnapshot}->>'connectionVersion')::numeric <= 9007199254740991\n and (${table.connectorCleanupSnapshot}->>'sourceLifecycleGeneration')::numeric <= 9007199254740991\n and (${table.connectorCleanupSnapshot}->>'sourceConfigGeneration')::numeric <= 9007199254740991\n ))\n and (${table.lastError} is null or length(${table.lastError}) <= 2000)`,\n ),\n }),\n);\n\nexport const scheduledTaskRuns = pgTable(\n \"scheduled_task_runs\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n taskId: uuid(\"task_id\")\n .notNull()\n .references(() => scheduledTasks.id),\n taskAuthorityRevision: bigint(\"task_authority_revision\", {\n mode: \"number\",\n }),\n taskExecutionDigest: text(\"task_execution_digest\"),\n status: text(\"status\").notNull().default(\"queued\"),\n triggerType: text(\"trigger_type\").notNull(),\n scheduledAt: timestamp(\"scheduled_at\", { withTimezone: true }),\n firedAt: timestamp(\"fired_at\", { withTimezone: true }).notNull().defaultNow(),\n sessionId: uuid(\"session_id\").references(() => sessions.id),\n triggerEventId: uuid(\"trigger_event_id\"),\n actionKind: text(\"action_kind\").notNull().default(\"agent_turn\"),\n knowledgeSyncRunId: uuid(\"knowledge_sync_run_id\"),\n knowledgeSummary: jsonb(\"knowledge_summary\").$type<Record<string, unknown>>(),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n // Stable Temporal producer identity. Activity replay/re-dispatch returns\n // the exact run instead of allocating a second schedule source row.\n producerKey: text(\"producer_key\"),\n // Complete credential-free accepted execution truth. It is private worker\n // authority and never appears in public scheduled-run projections.\n acceptedExecutionSnapshot: jsonb(\"accepted_execution_snapshot\").$type<unknown>(),\n acceptedExecutionDigest: text(\"accepted_execution_digest\"),\n error: text(\"error\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n taskCreated: index(\"scheduled_task_runs_workspace_task_created_idx\").on(\n table.workspaceId,\n table.taskId,\n table.createdAt,\n ),\n session: index(\"scheduled_task_runs_workspace_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n ),\n producer: uniqueIndex(\"scheduled_task_runs_producer_key_uq\")\n .on(table.workspaceId, table.producerKey)\n .where(sql`${table.producerKey} is not null`),\n }),\n);\n\nexport const githubInstallations = pgTable(\n \"github_installations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n installationId: integer(\"installation_id\").notNull(),\n githubAccountId: bigint(\"github_account_id\", { mode: \"number\" }),\n accountLogin: text(\"account_login\"),\n accountType: text(\"account_type\"),\n repositoryScope: text(\"repository_scope\").notNull().default(\"all\"),\n linkedBySubjectId: text(\"linked_by_subject_id\"),\n githubActorId: bigint(\"github_actor_id\", { mode: \"number\" }),\n githubActorLogin: text(\"github_actor_login\"),\n authorityKind: text(\"authority_kind\"),\n authorityCheckedAt: timestamp(\"authority_checked_at\", {\n withTimezone: true,\n }),\n authorityExpiresAt: timestamp(\"authority_expires_at\", {\n withTimezone: true,\n }),\n authorityNonce: text(\"authority_nonce\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceInstallation: uniqueIndex(\"github_installations_workspace_installation_idx\").on(\n table.workspaceId,\n table.installationId,\n ),\n installation: index(\"github_installations_installation_idx\").on(table.installationId),\n workspace: index(\"github_installations_workspace_idx\").on(table.workspaceId),\n repositoryScopeCheck: check(\n \"github_installations_repository_scope_check\",\n sql`${table.repositoryScope} in ('all', 'selected')`,\n ),\n authorityKindCheck: check(\n \"github_installations_authority_kind_check\",\n sql`\n (\n ${table.githubAccountId} is null\n and ${table.githubActorId} is null\n and ${table.githubActorLogin} is null\n and ${table.authorityKind} is null\n and ${table.authorityCheckedAt} is null\n and ${table.authorityExpiresAt} is null\n and ${table.authorityNonce} is null\n )\n or (\n ${table.githubAccountId} is not null\n and ${table.githubAccountId} > 0\n and ${table.githubActorId} is not null\n and ${table.githubActorId} > 0\n and ${table.githubActorLogin} is not null\n and length(${table.githubActorLogin}) > 0\n and ${table.accountLogin} is not null\n and length(${table.accountLogin}) > 0\n and ${table.accountType} is not null\n and ${table.linkedBySubjectId} is not null\n and length(${table.linkedBySubjectId}) > 0\n and ${table.authorityKind} is not null\n and ${table.authorityCheckedAt} is not null\n and ${table.authorityExpiresAt} is not null\n and ${table.authorityCheckedAt} < ${table.authorityExpiresAt}\n and ${table.authorityExpiresAt} <= ${table.authorityCheckedAt} + interval '10 minutes'\n and ${table.authorityNonce} is not null\n and length(${table.authorityNonce}) > 0\n and ${table.repositoryScope} = 'selected'\n and (\n (\n ${table.authorityKind} = 'personal_owner'\n and ${table.accountType} = 'User'\n and ${table.githubActorId} = ${table.githubAccountId}\n )\n or (\n ${table.authorityKind} = 'organization_owner'\n and ${table.accountType} = 'Organization'\n )\n )\n )\n `,\n ),\n authorityNonce: uniqueIndex(\"github_installations_authority_nonce_uq\")\n .on(table.authorityNonce)\n .where(sql`${table.authorityNonce} is not null`),\n }),\n);\n\nexport const githubInstallationRepositories = pgTable(\n \"github_installation_repositories\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n installationId: integer(\"installation_id\").notNull(),\n repositoryId: bigint(\"repository_id\", { mode: \"number\" }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n installationRepository: uniqueIndex(\"github_install_repo_workspace_installation_repo_idx\").on(\n table.workspaceId,\n table.installationId,\n table.repositoryId,\n ),\n workspaceInstallation: index(\"github_install_repo_workspace_installation_idx\").on(\n table.workspaceId,\n table.installationId,\n ),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"github_installation_repositories_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n installationBinding: foreignKey({\n columns: [table.workspaceId, table.installationId],\n foreignColumns: [githubInstallations.workspaceId, githubInstallations.installationId],\n name: \"github_installation_repositories_installation_fk\",\n }).onDelete(\"cascade\"),\n }),\n);\n\nexport const prReviewAppRegistrations = pgTable(\n \"pr_review_app_registrations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n sourceId: uuid(\"source_id\").notNull(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n name: text(\"name\").notNull(),\n provider: text(\"provider\").notNull(),\n providerBaseUrl: text(\"provider_base_url\").notNull(),\n appId: text(\"app_id\"),\n installationId: text(\"installation_id\"),\n providerAccountLogin: text(\"provider_account_login\"),\n providerAccountType: text(\"provider_account_type\"),\n githubActorId: text(\"github_actor_id\"),\n authorityKind: text(\"authority_kind\"),\n authorityCheckedAt: timestamp(\"authority_checked_at\", {\n withTimezone: true,\n }),\n authorityExpiresAt: timestamp(\"authority_expires_at\", {\n withTimezone: true,\n }),\n authorityNonce: text(\"authority_nonce\"),\n credentialKind: text(\"credential_kind\").notNull(),\n credentialEncrypted: text(\"credential_encrypted\"),\n accessTokenExpiresAt: timestamp(\"access_token_expires_at\", {\n withTimezone: true,\n }),\n webhookAuthKind: text(\"webhook_auth_kind\").notNull(),\n webhookUsername: text(\"webhook_username\"),\n status: text(\"status\").notNull().default(\"active\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceRegistration: uniqueIndex(\"pr_review_app_registrations_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n workspaceRegistrationProvider: uniqueIndex(\n \"pr_review_app_registrations_workspace_id_provider_uq\",\n ).on(table.workspaceId, table.id, table.provider),\n workspaceProviderName: uniqueIndex(\"pr_review_app_registrations_workspace_provider_name_uq\").on(\n table.workspaceId,\n table.provider,\n table.name,\n ),\n workspaceStatus: index(\"pr_review_app_registrations_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n ),\n managedGithubInstallation: uniqueIndex(\"pr_review_managed_github_workspace_installation_uq\")\n .on(table.workspaceId, table.installationId)\n .where(sql`${table.credentialKind} = 'managed_github_app'`),\n managedGithubAuthorityNonce: uniqueIndex(\"pr_review_managed_github_authority_nonce_uq\")\n .on(table.authorityNonce)\n .where(sql`${table.authorityNonce} is not null`),\n providerCheck: check(\n \"pr_review_app_registrations_provider_chk\",\n sql`${table.provider} in ('github', 'gitlab', 'azure_devops')`,\n ),\n credentialCheck: check(\n \"pr_review_app_registrations_credential_chk\",\n sql`(\n (${table.provider} = 'github' and ${table.credentialKind} = 'github_app' and ${table.credentialEncrypted} is not null and ${table.appId} is not null and ${table.installationId} is null)\n or\n (${table.provider} = 'github' and ${table.credentialKind} = 'managed_github_app' and ${table.credentialEncrypted} is null and ${table.appId} is not null and ${table.installationId} is not null and ${table.providerAccountType} in ('User', 'Organization') and ${table.githubActorId} ~ '^[1-9][0-9]*$' and ${table.authorityKind} in ('personal_owner', 'organization_owner') and ${table.authorityCheckedAt} is not null and ${table.authorityExpiresAt} is not null and ${table.authorityExpiresAt} > ${table.authorityCheckedAt} and octet_length(${table.authorityNonce}) between 16 and 256)\n or\n (${table.provider} in ('gitlab', 'azure_devops') and ${table.credentialKind} = 'provider_token' and ${table.credentialEncrypted} is not null and ${table.installationId} is null)\n )`,\n ),\n webhookAuthCheck: check(\n \"pr_review_app_registrations_webhook_auth_chk\",\n sql`(\n (${table.provider} = 'github' and ${table.webhookAuthKind} = 'hmac_sha256')\n or (${table.provider} = 'gitlab' and ${table.webhookAuthKind} = 'shared_token')\n or (${table.provider} = 'azure_devops' and ${table.webhookAuthKind} = 'basic' and ${table.webhookUsername} is not null)\n )`,\n ),\n statusCheck: check(\n \"pr_review_app_registrations_status_chk\",\n sql`${table.status} in ('active', 'disabled')`,\n ),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"pr_review_app_registrations_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n }),\n);\n\nexport const prReviewRepositoryBindings = pgTable(\n \"pr_review_repository_bindings\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n triggerId: uuid(\"trigger_id\").notNull(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n registrationId: uuid(\"registration_id\").notNull(),\n provider: text(\"provider\").notNull(),\n repositoryUri: text(\"repository_uri\").notNull(),\n repositoryFullName: text(\"repository_full_name\").notNull(),\n providerRepositoryId: text(\"provider_repository_id\").notNull(),\n installationId: text(\"installation_id\"),\n projectId: text(\"project_id\"),\n model: text(\"model\"),\n additionalInstructions: text(\"additional_instructions\"),\n status: text(\"status\").notNull().default(\"active\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceBinding: uniqueIndex(\"pr_review_repository_bindings_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n workspaceBindingRegistrationProvider: uniqueIndex(\n \"pr_review_repo_workspace_registration_provider_uq\",\n ).on(table.workspaceId, table.id, table.registrationId, table.provider),\n registrationRepository: uniqueIndex(\"pr_review_repository_bindings_registration_repo_uq\").on(\n table.registrationId,\n table.providerRepositoryId,\n ),\n triggerIdentity: uniqueIndex(\"pr_review_repository_bindings_trigger_uq\").on(table.triggerId),\n workspaceStatus: index(\"pr_review_repository_bindings_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n ),\n providerCheck: check(\n \"pr_review_repository_bindings_provider_chk\",\n sql`${table.provider} in ('github', 'gitlab', 'azure_devops')`,\n ),\n statusCheck: check(\n \"pr_review_repository_bindings_status_chk\",\n sql`${table.status} in ('active', 'disabled')`,\n ),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"pr_review_repository_bindings_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n registration: foreignKey({\n columns: [table.workspaceId, table.registrationId, table.provider],\n foreignColumns: [\n prReviewAppRegistrations.workspaceId,\n prReviewAppRegistrations.id,\n prReviewAppRegistrations.provider,\n ],\n name: \"pr_review_repository_bindings_registration_fk\",\n }).onDelete(\"cascade\"),\n }),\n);\n\n/** Append-only successful OAuth-state consumption receipts. The latest receipt\n * is also projected on the registration, but this ledger owns durable replay\n * rejection across later reconnects. */\nexport const prReviewManagedGithubAuthorityNonces = pgTable(\n \"pr_review_managed_github_authority_nonces\",\n {\n authorityNonce: text(\"authority_nonce\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n installationId: text(\"installation_id\").notNull(),\n authorityExpiresAt: timestamp(\"authority_expires_at\", {\n withTimezone: true,\n }).notNull(),\n consumedAt: timestamp(\"consumed_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identityCheck: check(\n \"pr_review_managed_github_authority_nonces_identity_chk\",\n sql`octet_length(${table.authorityNonce}) between 16 and 256\n and ${table.installationId} ~ '^[1-9][0-9]*$'\n and ${table.authorityExpiresAt} > ${table.consumedAt}`,\n ),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"pr_review_managed_github_authority_nonces_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n }),\n);\n\n/** Credential-free routing for the deployment-owned PR-review GitHub App.\n * Signature verification happens before provider ids reach this table. */\nexport const prReviewManagedGithubRoutes = pgTable(\n \"pr_review_managed_github_routes\",\n {\n bindingId: uuid(\"binding_id\")\n .primaryKey()\n .references(() => prReviewRepositoryBindings.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n registrationId: uuid(\"registration_id\").notNull(),\n sourceId: uuid(\"source_id\").notNull(),\n installationId: text(\"installation_id\").notNull(),\n providerRepositoryId: text(\"provider_repository_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n routeIdentity: uniqueIndex(\"pr_review_managed_github_route_identity_uq\").on(\n table.installationId,\n table.providerRepositoryId,\n ),\n identityCheck: check(\n \"pr_review_managed_github_routes_identity_chk\",\n sql`${table.installationId} ~ '^[1-9][0-9]*$'\n and ${table.providerRepositoryId} ~ '^[1-9][0-9]*$'`,\n ),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"pr_review_managed_github_routes_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n registration: foreignKey({\n columns: [table.workspaceId, table.registrationId],\n foreignColumns: [prReviewAppRegistrations.workspaceId, prReviewAppRegistrations.id],\n name: \"pr_review_managed_github_routes_registration_fk\",\n }).onDelete(\"cascade\"),\n source: foreignKey({\n columns: [table.workspaceId, table.sourceId],\n foreignColumns: [automationSources.workspaceId, automationSources.id],\n name: \"pr_review_managed_github_routes_source_fk\",\n }).onDelete(\"cascade\"),\n }),\n);\n\nexport const usageEvents = pgTable(\n \"usage_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n subjectId: text(\"subject_id\"),\n eventType: text(\"event_type\").notNull(),\n quantity: bigint(\"quantity\", { mode: \"number\" }).notNull(),\n unit: text(\"unit\").notNull(),\n sourceResourceType: text(\"source_resource_type\"),\n sourceResourceId: text(\"source_resource_id\"),\n // Exact execution source for host usage export. These are deliberately\n // validated soft references rather than cascading foreign keys: usage is\n // an immutable billing/audit fact and must retain its source identity after\n // a session or turn is deleted.\n sessionId: uuid(\"session_id\"),\n turnId: uuid(\"turn_id\"),\n turnAttemptId: uuid(\"turn_attempt_id\"),\n initiatorKind: text(\"initiator_kind\"),\n initiatorSubjectId: text(\"initiator_subject_id\"),\n initiatorContext: jsonb(\"initiator_context\")\n .$type<Record<string, unknown>>()\n .notNull()\n .default({}),\n origin: text(\"origin\"),\n idempotencyKey: text(\"idempotency_key\").notNull(),\n occurredAt: timestamp(\"occurred_at\", { withTimezone: true }).notNull(),\n recordedAt: timestamp(\"recorded_at\", { withTimezone: true }).notNull().defaultNow(),\n exportedToBillingAt: timestamp(\"exported_to_billing_at\", {\n withTimezone: true,\n }),\n billingProviderEventId: text(\"billing_provider_event_id\"),\n },\n (table) => ({\n idempotency: uniqueIndex(\"usage_events_idempotency_idx\").on(table.idempotencyKey),\n workspaceMetric: index(\"usage_events_workspace_metric_idx\").on(\n table.workspaceId,\n table.eventType,\n table.occurredAt,\n ),\n accountMetric: index(\"usage_events_account_metric_idx\").on(\n table.accountId,\n table.eventType,\n table.occurredAt,\n ),\n workspaceSession: index(\"usage_events_workspace_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.occurredAt,\n ),\n contextHierarchy: check(\n \"usage_events_context_hierarchy_check\",\n sql`(${table.turnId} is null or ${table.sessionId} is not null)\n and (${table.turnAttemptId} is null or ${table.turnId} is not null)`,\n ),\n initiatorConsistent: check(\n \"usage_events_initiator_check\",\n sql`(${table.initiatorKind} is null and ${table.initiatorSubjectId} is null)\n or (${table.initiatorKind} in ('subject', 'service')\n and ${table.initiatorSubjectId} is not null\n and octet_length(${table.initiatorSubjectId}) between 1 and 1024)`,\n ),\n attributionContextBytes: check(\n \"usage_events_initiator_context_bytes_check\",\n sql`octet_length(${table.initiatorContext}::text) <= 4096`,\n ),\n originValid: check(\n \"usage_events_origin_check\",\n sql`${table.origin} is null or ${table.origin} in (\n 'user', 'scheduled_task', 'api', 'goal', 'system', 'compaction'\n )`,\n ),\n }),\n);\n\n/**\n * Per model-call Insights facts. Additive observability only — never the billing\n * ledger. Written after an authoritative `agent.model.usage` emit.\n */\nexport const modelCallFacts = pgTable(\n \"model_call_facts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n turnAttemptId: uuid(\"turn_attempt_id\"),\n sourceKey: text(\"source_key\").notNull(),\n provider: text(\"provider\").notNull(),\n providerApi: text(\"provider_api\").notNull(),\n model: text(\"model\").notNull(),\n billingPath: text(\"billing_path\").notNull(),\n turnSource: text(\"turn_source\"),\n initiatorKind: text(\"initiator_kind\"),\n initiatorSubjectId: text(\"initiator_subject_id\"),\n scheduledTaskId: uuid(\"scheduled_task_id\"),\n inputTokens: bigint(\"input_tokens\", { mode: \"number\" }),\n outputTokens: bigint(\"output_tokens\", { mode: \"number\" }),\n cachedTokens: bigint(\"cached_tokens\", { mode: \"number\" }),\n cacheWriteTokens: bigint(\"cache_write_tokens\", { mode: \"number\" }),\n reasoningTokens: bigint(\"reasoning_tokens\", { mode: \"number\" }),\n totalTokens: bigint(\"total_tokens\", { mode: \"number\" }),\n pricedCostMicros: bigint(\"priced_cost_micros\", { mode: \"number\" }).notNull().default(0),\n estimatedProviderCostMicros: bigint(\"estimated_provider_cost_micros\", {\n mode: \"number\",\n }),\n equivalentCreditCostMicros: bigint(\"equivalent_credit_cost_micros\", {\n mode: \"number\",\n }),\n pricingSource: text(\"pricing_source\"),\n contextContributions:\n jsonb(\"context_contributions\").$type<readonly ModelContextContributionSummary[]>(),\n occurredAt: timestamp(\"occurred_at\", { withTimezone: true }).notNull(),\n recordedAt: timestamp(\"recorded_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceTurnSource: uniqueIndex(\"model_call_facts_workspace_turn_source_uq\").on(\n table.workspaceId,\n table.turnId,\n table.sourceKey,\n ),\n workspaceOccurred: index(\"model_call_facts_workspace_occurred_idx\").on(\n table.workspaceId,\n table.occurredAt,\n ),\n workspaceProviderModelOccurred: index(\n \"model_call_facts_workspace_provider_model_occurred_idx\",\n ).on(table.workspaceId, table.provider, table.model, table.occurredAt),\n workspaceSessionOccurred: index(\"model_call_facts_workspace_session_occurred_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.occurredAt,\n ),\n workspaceScheduledTaskOccurred: index(\"model_call_facts_workspace_scheduled_task_occurred_idx\")\n .on(table.workspaceId, table.scheduledTaskId, table.occurredAt)\n .where(sql`${table.scheduledTaskId} is not null`),\n workspaceAccount: foreignKey({\n name: \"model_call_facts_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n billingPathValid: check(\n \"model_call_facts_billing_path_check\",\n sql`${table.billingPath} in ('opengeni_credits', 'external')`,\n ),\n pricedCostNonNegative: check(\n \"model_call_facts_priced_cost_check\",\n sql`${table.pricedCostMicros} >= 0`,\n ),\n estimatedProviderCostValid: check(\n \"model_call_facts_estimated_provider_cost_check\",\n sql`${table.estimatedProviderCostMicros} is null or ${table.estimatedProviderCostMicros} >= 0`,\n ),\n equivalentCreditCostValid: check(\n \"model_call_facts_equivalent_credit_cost_check\",\n sql`${table.equivalentCreditCostMicros} is null or (${table.equivalentCreditCostMicros} >= 0 and ${table.estimatedProviderCostMicros} is not null)`,\n ),\n pricingSourceValid: check(\n \"model_call_facts_pricing_source_check\",\n sql`(${table.estimatedProviderCostMicros} is null and ${table.pricingSource} is null)\n or (${table.estimatedProviderCostMicros} is not null\n and ${table.pricingSource} in ('configured_list_price', 'gateway_reported'))`,\n ),\n initiatorConsistent: check(\n \"model_call_facts_initiator_check\",\n sql`(${table.initiatorKind} is null and ${table.initiatorSubjectId} is null)\n or (${table.initiatorKind} in ('subject', 'service')\n and ${table.initiatorSubjectId} is not null\n and octet_length(${table.initiatorSubjectId}) between 1 and 1024)`,\n ),\n sourceKeyBytes: check(\n \"model_call_facts_source_key_bytes_check\",\n sql`octet_length(${table.sourceKey}) between 1 and 1024`,\n ),\n providerBytes: check(\n \"model_call_facts_provider_bytes_check\",\n sql`octet_length(${table.provider}) between 1 and 256`,\n ),\n providerApiBytes: check(\n \"model_call_facts_provider_api_bytes_check\",\n sql`octet_length(${table.providerApi}) between 1 and 256`,\n ),\n modelBytes: check(\n \"model_call_facts_model_bytes_check\",\n sql`octet_length(${table.model}) between 1 and 512`,\n ),\n contextContributionsValid: check(\n \"model_call_facts_context_contributions_check\",\n sql`opengeni_private.model_context_contributions_valid(${table.contextContributions})`,\n ),\n }),\n);\n\n/** Singleton, migration-installed gate. Standalone defaults keep both off. */\nexport const hostExportConfig = pgTable(\n \"host_export_config\",\n {\n id: integer(\"id\").primaryKey().default(1),\n sessionEventsEnabled: boolean(\"session_events_enabled\").notNull().default(false),\n usageEventsEnabled: boolean(\"usage_events_enabled\").notNull().default(false),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n singleton: check(\"host_export_config_singleton_check\", sql`${table.id} = 1`),\n }),\n);\n\n/**\n * Transactional delivery buffer. It intentionally has no tenant/source FKs:\n * a workspace deletion must not erase an already-committed, unacknowledged\n * host fact. Session-event rows retain exact storage bytes while they fit the\n * bounded host wire; larger canonical events carry an explicit content-free\n * projection plus literal-JSON codec truth. Usage payloads remain ordinary JSON.\n */\nexport const hostExportOutbox = pgTable(\n \"host_export_outbox\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n exportKind: text(\"export_kind\").notNull(),\n exportCursor: bigint(\"export_cursor\", { mode: \"bigint\" }),\n sourceId: uuid(\"source_id\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\"),\n rootSessionId: uuid(\"root_session_id\"),\n turnId: uuid(\"turn_id\"),\n turnGeneration: integer(\"turn_generation\"),\n turnAttemptId: uuid(\"turn_attempt_id\"),\n sessionSequence: integer(\"session_sequence\"),\n clientEventId: text(\"client_event_id\"),\n turnAssociation: text(\"turn_association\"),\n duplicateOfEventId: uuid(\"duplicate_of_event_id\"),\n duplicateReason: text(\"duplicate_reason\"),\n eventType: text(\"event_type\").notNull(),\n idempotencyKey: text(\"idempotency_key\").notNull(),\n initiator: jsonb(\"initiator\").$type<Record<string, unknown> | null>(),\n initiatorContext: jsonb(\"initiator_context\")\n .$type<Record<string, unknown>>()\n .notNull()\n .default({}),\n origin: text(\"origin\"),\n payload: jsonb(\"payload\").$type<unknown>().notNull(),\n payloadCodecVersion: losslessCodecVersion(\"payload_codec_version\"),\n envelopeBytes: integer(\"envelope_bytes\").notNull(),\n occurredAt: timestamp(\"occurred_at\", { withTimezone: true }).notNull(),\n sourceRecordedAt: timestamp(\"source_recorded_at\", {\n withTimezone: true,\n }).notNull(),\n enqueuedAt: timestamp(\"enqueued_at\", { withTimezone: true }).notNull(),\n },\n (table) => ({\n kindValid: check(\n \"host_export_outbox_kind_check\",\n sql`${table.exportKind} in ('session_event', 'usage_event')`,\n ),\n rootSessionCaptured: check(\n \"host_export_outbox_root_session_check\",\n sql`${table.sessionId} is null or ${table.rootSessionId} is not null`,\n ),\n sourceUnique: uniqueIndex(\"host_export_outbox_source_uq\").on(table.exportKind, table.sourceId),\n cursorUnique: uniqueIndex(\"host_export_outbox_cursor_uq\")\n .on(table.exportKind, table.exportCursor)\n .where(sql`${table.exportCursor} is not null`),\n unassigned: index(\"host_export_outbox_unassigned_idx\")\n .on(table.exportKind, table.enqueuedAt, table.id)\n .where(sql`${table.exportCursor} is null`),\n unassignedSession: index(\"host_export_outbox_unassigned_session_idx\")\n .on(table.exportKind, table.sessionId, table.sessionSequence)\n .where(sql`${table.exportCursor} is null and ${table.sessionId} is not null`),\n contextBytes: check(\n \"host_export_outbox_context_bytes_check\",\n sql`octet_length(${table.initiatorContext}::text) <= 4096`,\n ),\n originValid: check(\n \"host_export_outbox_origin_check\",\n sql`${table.origin} is null or ${table.origin} in (\n 'user', 'scheduled_task', 'api', 'goal', 'system', 'compaction'\n )`,\n ),\n }),\n);\n\nexport const hostExportCursorState = pgTable(\n \"host_export_cursor_state\",\n {\n exportKind: text(\"export_kind\").primaryKey(),\n nextCursor: bigint(\"next_cursor\", { mode: \"bigint\" }).notNull().default(1n),\n prunedThrough: bigint(\"pruned_through\", { mode: \"bigint\" }).notNull().default(0n),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n kindValid: check(\n \"host_export_cursor_state_kind_check\",\n sql`${table.exportKind} in ('session_event', 'usage_event')`,\n ),\n cursorValid: check(\n \"host_export_cursor_state_next_check\",\n sql`${table.nextCursor} > 0 and ${table.prunedThrough} >= 0\n and ${table.prunedThrough} < ${table.nextCursor}`,\n ),\n }),\n);\n\n/** Named at-least-once consumer checkpoint and one-batch lease. */\nexport const hostExportConsumers = pgTable(\n \"host_export_consumers\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n consumerId: text(\"consumer_id\").notNull(),\n exportKind: text(\"export_kind\").notNull(),\n checkpoint: bigint(\"checkpoint\", { mode: \"bigint\" }).notNull().default(0n),\n enabled: boolean(\"enabled\").notNull().default(true),\n leaseToken: uuid(\"lease_token\"),\n leaseHolderId: text(\"lease_holder_id\"),\n leaseExpiresAt: timestamp(\"lease_expires_at\", { withTimezone: true }),\n leaseFrom: bigint(\"lease_from\", { mode: \"bigint\" }),\n leaseThrough: bigint(\"lease_through\", { mode: \"bigint\" }),\n consecutiveFailures: integer(\"consecutive_failures\").notNull().default(0),\n nextAttemptAt: timestamp(\"next_attempt_at\", { withTimezone: true }).notNull().defaultNow(),\n lastError: text(\"last_error\"),\n lastErrorCodecVersion: losslessCodecVersion(\"last_error_codec_version\"),\n lastErrorAt: timestamp(\"last_error_at\", { withTimezone: true }),\n blockedAt: timestamp(\"blocked_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n consumerKind: uniqueIndex(\"host_export_consumers_kind_id_uq\").on(\n table.exportKind,\n table.consumerId,\n ),\n kindValid: check(\n \"host_export_consumers_kind_check\",\n sql`${table.exportKind} in ('session_event', 'usage_event')`,\n ),\n checkpointValid: check(\"host_export_consumers_checkpoint_check\", sql`${table.checkpoint} >= 0`),\n due: index(\"host_export_consumers_due_idx\").on(\n table.enabled,\n table.blockedAt,\n table.nextAttemptAt,\n ),\n }),\n);\n\n/** Explicit poison-row disposition; transient failures never write here. */\nexport const hostExportDeadLetters = pgTable(\n \"host_export_dead_letters\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n consumerId: text(\"consumer_id\").notNull(),\n exportKind: text(\"export_kind\").notNull(),\n exportCursor: bigint(\"export_cursor\", { mode: \"bigint\" }).notNull(),\n sourceId: uuid(\"source_id\").notNull(),\n reason: text(\"reason\").notNull(),\n envelope: losslessJsonb(\"envelope\").$type<Record<string, unknown>>().notNull(),\n envelopeCodecVersion: losslessCodecVersion(\"envelope_codec_version\"),\n eventPayloadCodecVersion: losslessCodecVersion(\"event_payload_codec_version\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n consumerCursor: uniqueIndex(\"host_export_dead_letters_consumer_cursor_uq\").on(\n table.exportKind,\n table.consumerId,\n table.exportCursor,\n ),\n kindValid: check(\n \"host_export_dead_letters_kind_check\",\n sql`${table.exportKind} in ('session_event', 'usage_event')`,\n ),\n reasonValid: check(\n \"host_export_dead_letters_reason_check\",\n sql`length(${table.reason}) between 1 and 500`,\n ),\n envelopeBytes: check(\n \"host_export_dead_letters_envelope_bytes_check\",\n sql`pg_column_size(${table.envelope}) <= 114688`,\n ),\n }),\n);\n\nexport const creditLedgerEntries = pgTable(\n \"credit_ledger_entries\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\").references(() => workspaces.id, {\n onDelete: \"set null\",\n }),\n type: text(\"type\").notNull(),\n amountMicros: bigint(\"amount_micros\", { mode: \"number\" }).notNull(),\n currency: text(\"currency\").notNull().default(\"usd\"),\n sourceType: text(\"source_type\"),\n sourceId: text(\"source_id\"),\n idempotencyKey: text(\"idempotency_key\").notNull(),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n occurredAt: timestamp(\"occurred_at\", { withTimezone: true }).notNull().defaultNow(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n idempotency: uniqueIndex(\"credit_ledger_entries_idempotency_idx\").on(table.idempotencyKey),\n accountCreated: index(\"credit_ledger_entries_account_created_idx\").on(\n table.accountId,\n table.createdAt,\n ),\n }),\n);\n\nexport const billingCustomers = pgTable(\n \"billing_customers\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n provider: text(\"provider\").notNull().default(\"stripe\"),\n providerCustomerId: text(\"provider_customer_id\").notNull(),\n email: text(\"email\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountProvider: uniqueIndex(\"billing_customers_account_provider_idx\").on(\n table.accountId,\n table.provider,\n ),\n providerCustomer: uniqueIndex(\"billing_customers_provider_customer_idx\").on(\n table.provider,\n table.providerCustomerId,\n ),\n }),\n);\n\nexport const stripeWebhookEvents = pgTable(\"stripe_webhook_events\", {\n id: text(\"id\").primaryKey(),\n type: text(\"type\").notNull(),\n livemode: text(\"livemode\").notNull().default(\"false\"),\n payload: jsonb(\"payload\").$type<unknown>().notNull(),\n processedAt: timestamp(\"processed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n});\n\nexport const auditEvents = pgTable(\n \"audit_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").references(() => managedAccounts.id, {\n onDelete: \"set null\",\n }),\n workspaceId: uuid(\"workspace_id\").references(() => workspaces.id, {\n onDelete: \"set null\",\n }),\n subjectId: text(\"subject_id\"),\n action: text(\"action\").notNull(),\n targetType: text(\"target_type\"),\n targetId: text(\"target_id\"),\n metadata: losslessJsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n metadataCodecVersion: losslessCodecVersion(\"metadata_codec_version\"),\n occurredAt: timestamp(\"occurred_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountCreated: index(\"audit_events_account_created_idx\").on(table.accountId, table.occurredAt),\n workspaceCreated: index(\"audit_events_workspace_created_idx\").on(\n table.workspaceId,\n table.occurredAt,\n ),\n }),\n);\n\nexport const packInstallations = pgTable(\n \"pack_installations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n packId: text(\"pack_id\").notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n version: integer(\"version\").notNull().default(1),\n manifestSnapshot: jsonb(\"manifest_snapshot\").$type<Record<string, unknown>>(),\n manifestDigest: text(\"manifest_digest\"),\n selectedRigId: uuid(\"selected_rig_id\").references(() => rigs.id, {\n onDelete: \"set null\",\n }),\n installedBySubjectId: text(\"installed_by_subject_id\"),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n enabledAt: timestamp(\"enabled_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"pack_installations_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n workspacePack: uniqueIndex(\"pack_installations_workspace_pack_idx\").on(\n table.workspaceId,\n table.packId,\n ),\n status: index(\"pack_installations_workspace_status_idx\").on(table.workspaceId, table.status),\n selectedRig: index(\"pack_installations_workspace_rig_idx\")\n .on(table.workspaceId, table.selectedRigId)\n .where(sql`${table.selectedRigId} is not null`),\n }),\n);\n\nexport const packInstallationComponents = pgTable(\n \"pack_installation_components\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n packInstallationId: uuid(\"pack_installation_id\")\n .notNull()\n .references(() => packInstallations.id, { onDelete: \"cascade\" }),\n componentKey: text(\"component_key\").notNull(),\n kind: text(\"kind\").notNull(),\n capabilityId: text(\"capability_id\").notNull(),\n resolvedId: text(\"resolved_id\").notNull(),\n digest: text(\"digest\").notNull(),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n installationKey: uniqueIndex(\"pack_installation_components_pack_key_uq\").on(\n table.packInstallationId,\n table.componentKey,\n ),\n workspaceCapability: index(\"pack_installation_components_workspace_capability_idx\").on(\n table.workspaceId,\n table.kind,\n table.capabilityId,\n ),\n }),\n);\n\nexport const automationSources = pgTable(\n \"automation_sources\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n endpointId: uuid(\"endpoint_id\").notNull().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n name: text(\"name\").notNull(),\n adapterId: text(\"adapter_id\").notNull(),\n configuration: jsonb(\"configuration\").$type<Record<string, unknown>>().notNull().default({}),\n webhookSecretEncrypted: text(\"webhook_secret_encrypted\").notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n version: integer(\"version\").notNull().default(1),\n packInstallationId: uuid(\"pack_installation_id\"),\n packConnectorId: text(\"pack_connector_id\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n endpoint: uniqueIndex(\"automation_sources_endpoint_uq\").on(table.endpointId),\n workspaceIdentity: uniqueIndex(\"automation_sources_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n workspaceStatus: index(\"automation_sources_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n ),\n shape: check(\n \"automation_sources_shape_chk\",\n sql`${table.status} in ('active', 'disabled')\n and ${table.version} > 0\n and octet_length(${table.name}) between 1 and 512\n and octet_length(${table.adapterId}) between 1 and 128\n and octet_length(${table.createdBySubjectId}) between 1 and 4096\n and jsonb_typeof(${table.configuration}) = 'object'\n and ((${table.packInstallationId} is null and ${table.packConnectorId} is null)\n or (${table.packInstallationId} is not null\n and octet_length(${table.packConnectorId}) between 1 and 128))`,\n ),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"automation_sources_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n packInstallation: foreignKey({\n columns: [table.workspaceId, table.packInstallationId],\n foreignColumns: [packInstallations.workspaceId, packInstallations.id],\n name: \"automation_sources_pack_installation_fk\",\n }).onDelete(\"cascade\"),\n }),\n);\n\n/** Credential-free global webhook routing. Possession of the opaque endpoint\n * UUID locates the tenant; authentication still requires the encrypted secret\n * on the FORCE-RLS source row before any payload is parsed or accepted. */\nexport const automationWebhookEndpoints = pgTable(\n \"automation_webhook_endpoints\",\n {\n endpointId: uuid(\"endpoint_id\").primaryKey(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sourceId: uuid(\"source_id\")\n .notNull()\n .references(() => automationSources.id, { onDelete: \"cascade\" }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n source: uniqueIndex(\"automation_webhook_endpoints_source_uq\").on(table.sourceId),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"automation_webhook_endpoints_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n }),\n);\n\nexport const automationTriggers = pgTable(\n \"automation_triggers\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n sourceId: uuid(\"source_id\").notNull(),\n name: text(\"name\").notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n currentRevision: integer(\"current_revision\").notNull().default(1),\n packInstallationId: uuid(\"pack_installation_id\"),\n packTemplateId: text(\"pack_template_id\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"automation_triggers_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n workspaceSourceIdentity: uniqueIndex(\"automation_triggers_workspace_source_id_uq\").on(\n table.workspaceId,\n table.id,\n table.sourceId,\n ),\n workspaceStatus: index(\"automation_triggers_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n ),\n source: foreignKey({\n columns: [table.workspaceId, table.sourceId],\n foreignColumns: [automationSources.workspaceId, automationSources.id],\n name: \"automation_triggers_source_fk\",\n }).onDelete(\"cascade\"),\n packInstallation: foreignKey({\n columns: [table.workspaceId, table.packInstallationId],\n foreignColumns: [packInstallations.workspaceId, packInstallations.id],\n name: \"automation_triggers_pack_installation_fk\",\n }).onDelete(\"cascade\"),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"automation_triggers_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n shape: check(\n \"automation_triggers_shape_chk\",\n sql`${table.status} in ('active', 'paused', 'disabled')\n and ${table.currentRevision} > 0\n and octet_length(${table.name}) between 1 and 512\n and octet_length(${table.createdBySubjectId}) between 1 and 4096\n and ((${table.packInstallationId} is null and ${table.packTemplateId} is null)\n or (${table.packInstallationId} is not null and octet_length(${table.packTemplateId}) between 1 and 128))`,\n ),\n }),\n);\n\nexport const automationTriggerRevisions = pgTable(\n \"automation_trigger_revisions\",\n {\n triggerId: uuid(\"trigger_id\").notNull(),\n revision: integer(\"revision\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n adapterId: text(\"adapter_id\").notNull(),\n eventTypes: jsonb(\"event_types\").$type<string[]>().notNull(),\n configuration: jsonb(\"configuration\").$type<Record<string, unknown>>().notNull().default({}),\n parameters: jsonb(\"parameters\").$type<Record<string, unknown>>().notNull().default({}),\n sessionTemplate: jsonb(\"session_template\").$type<AutomationSessionTemplate>().notNull(),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({ columns: [table.triggerId, table.revision] }),\n trigger: foreignKey({\n columns: [table.workspaceId, table.triggerId],\n foreignColumns: [automationTriggers.workspaceId, automationTriggers.id],\n name: \"automation_trigger_revisions_trigger_fk\",\n }).onDelete(\"cascade\"),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"automation_trigger_revisions_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n shape: check(\n \"automation_trigger_revisions_shape_chk\",\n sql`${table.revision} > 0\n and octet_length(${table.adapterId}) between 1 and 128\n and jsonb_typeof(${table.eventTypes}) = 'array'\n and jsonb_array_length(${table.eventTypes}) between 1 and 64\n and jsonb_typeof(${table.configuration}) = 'object'\n and jsonb_typeof(${table.parameters}) = 'object'\n and jsonb_typeof(${table.sessionTemplate}) = 'object'`,\n ),\n }),\n);\n\nexport const automationTriggerEvents = pgTable(\n \"automation_trigger_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sourceId: uuid(\"source_id\").notNull(),\n sourceVersion: integer(\"source_version\").notNull(),\n sourceConfiguration: jsonb(\"source_configuration\").$type<Record<string, unknown>>().notNull(),\n matchedTriggerRevisions: jsonb(\"matched_trigger_revisions\")\n .$type<Array<{ triggerId: string; revision: number }>>()\n .notNull(),\n deliveryKey: text(\"delivery_key\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n adapterId: text(\"adapter_id\").notNull(),\n eventType: text(\"event_type\").notNull(),\n occurrenceKey: text(\"occurrence_key\").notNull(),\n normalizedEvent: jsonb(\"normalized_event\").$type<Record<string, unknown>>().notNull(),\n status: text(\"status\").notNull().default(\"accepted\"),\n ignoredReason: text(\"ignored_reason\"),\n errorCode: text(\"error_code\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n sourceDelivery: uniqueIndex(\"automation_trigger_events_source_delivery_uq\").on(\n table.sourceId,\n table.deliveryKey,\n ),\n workspaceCreated: index(\"automation_trigger_events_workspace_created_idx\").on(\n table.workspaceId,\n table.createdAt,\n ),\n workspaceSourceIdentity: uniqueIndex(\"automation_trigger_events_workspace_source_id_uq\").on(\n table.workspaceId,\n table.sourceId,\n table.id,\n ),\n source: foreignKey({\n columns: [table.workspaceId, table.sourceId],\n foreignColumns: [automationSources.workspaceId, automationSources.id],\n name: \"automation_trigger_events_source_fk\",\n }).onDelete(\"cascade\"),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"automation_trigger_events_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n shape: check(\n \"automation_trigger_events_shape_chk\",\n sql`${table.status} in ('accepted', 'ignored', 'failed')\n and ${table.sourceVersion} > 0\n and jsonb_typeof(${table.sourceConfiguration}) = 'object'\n and jsonb_typeof(${table.matchedTriggerRevisions}) = 'array'\n and jsonb_array_length(${table.matchedTriggerRevisions}) <= 32\n and ${table.requestDigest} ~ '^[0-9a-f]{64}$'\n and octet_length(${table.deliveryKey}) between 1 and 1024\n and octet_length(${table.eventType}) between 1 and 256\n and octet_length(${table.occurrenceKey}) between 1 and 1024\n and jsonb_typeof(${table.normalizedEvent}) = 'object'`,\n ),\n }),\n);\n\nexport const automationRuns = pgTable(\n \"automation_runs\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sourceId: uuid(\"source_id\").notNull(),\n triggerId: uuid(\"trigger_id\").notNull(),\n triggerRevision: integer(\"trigger_revision\").notNull(),\n eventId: uuid(\"event_id\").notNull(),\n occurrenceKey: text(\"occurrence_key\").notNull(),\n acceptedExecution: jsonb(\"accepted_execution\").$type<AutomationAcceptedExecution>().notNull(),\n status: text(\"status\").notNull().default(\"queued\"),\n sessionId: uuid(\"session_id\").references(() => sessions.id, {\n onDelete: \"set null\",\n }),\n errorCode: text(\"error_code\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n triggerOccurrence: uniqueIndex(\"automation_runs_trigger_occurrence_uq\").on(\n table.triggerId,\n table.occurrenceKey,\n ),\n workspaceStatus: index(\"automation_runs_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n table.createdAt,\n ),\n workspaceTriggerIdentity: uniqueIndex(\"automation_runs_workspace_trigger_id_uq\").on(\n table.workspaceId,\n table.triggerId,\n table.id,\n ),\n source: foreignKey({\n columns: [table.workspaceId, table.sourceId],\n foreignColumns: [automationSources.workspaceId, automationSources.id],\n name: \"automation_runs_source_fk\",\n }).onDelete(\"restrict\"),\n triggerSource: foreignKey({\n columns: [table.workspaceId, table.triggerId, table.sourceId],\n foreignColumns: [\n automationTriggers.workspaceId,\n automationTriggers.id,\n automationTriggers.sourceId,\n ],\n name: \"automation_runs_trigger_source_fk\",\n }).onDelete(\"restrict\"),\n triggerRevisionFk: foreignKey({\n columns: [table.triggerId, table.triggerRevision],\n foreignColumns: [automationTriggerRevisions.triggerId, automationTriggerRevisions.revision],\n name: \"automation_runs_trigger_revision_fk\",\n }).onDelete(\"restrict\"),\n event: foreignKey({\n columns: [table.workspaceId, table.sourceId, table.eventId],\n foreignColumns: [\n automationTriggerEvents.workspaceId,\n automationTriggerEvents.sourceId,\n automationTriggerEvents.id,\n ],\n name: \"automation_runs_event_fk\",\n }).onDelete(\"restrict\"),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"automation_runs_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n shape: check(\n \"automation_runs_shape_chk\",\n sql`${table.triggerRevision} > 0\n and ${table.status} in ('queued', 'dispatching', 'dispatched', 'skipped', 'failed')\n and octet_length(${table.occurrenceKey}) between 1 and 1024\n and jsonb_typeof(${table.acceptedExecution}) = 'object'`,\n ),\n }),\n);\n\nexport const automationRunEventLinks = pgTable(\n \"automation_run_event_links\",\n {\n runId: uuid(\"run_id\")\n .notNull()\n .references(() => automationRuns.id, { onDelete: \"cascade\" }),\n eventId: uuid(\"event_id\")\n .notNull()\n .references(() => automationTriggerEvents.id, { onDelete: \"cascade\" }),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sourceId: uuid(\"source_id\").notNull(),\n triggerId: uuid(\"trigger_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({ columns: [table.runId, table.eventId] }),\n eventTrigger: uniqueIndex(\"automation_run_event_links_event_trigger_uq\").on(\n table.eventId,\n table.triggerId,\n ),\n run: foreignKey({\n columns: [table.workspaceId, table.triggerId, table.runId],\n foreignColumns: [automationRuns.workspaceId, automationRuns.triggerId, automationRuns.id],\n name: \"automation_run_event_links_run_fk\",\n }).onDelete(\"cascade\"),\n event: foreignKey({\n columns: [table.workspaceId, table.sourceId, table.eventId],\n foreignColumns: [\n automationTriggerEvents.workspaceId,\n automationTriggerEvents.sourceId,\n automationTriggerEvents.id,\n ],\n name: \"automation_run_event_links_event_fk\",\n }).onDelete(\"cascade\"),\n workspaceAccount: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n name: \"automation_run_event_links_workspace_account_fk\",\n }).onDelete(\"cascade\"),\n }),\n);\n\nexport const workspacePacks = pgTable(\n \"workspace_packs\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n packId: text(\"pack_id\").notNull(),\n manifest: jsonb(\"manifest\").$type<Record<string, unknown>>().notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspacePack: uniqueIndex(\"workspace_packs_workspace_pack_idx\").on(\n table.workspaceId,\n table.packId,\n ),\n }),\n);\n\nexport const importBatches = pgTable(\n \"import_batches\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n source: text(\"source\").notNull(),\n snapshotDate: timestamp(\"snapshot_date\", { withTimezone: true }).notNull(),\n snapshotRef: text(\"snapshot_ref\"),\n attributionNote: text(\"attribution_note\").notNull(),\n importedCount: integer(\"imported_count\").notNull().default(0),\n skippedCount: integer(\"skipped_count\").notNull().default(0),\n quarantinedCount: integer(\"quarantined_count\").notNull().default(0),\n logoFailureCount: integer(\"logo_failure_count\").notNull().default(0),\n staleCount: integer(\"stale_count\").notNull().default(0),\n details: jsonb(\"details\").$type<Record<string, unknown>>().notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n sourceSnapshot: index(\"import_batches_source_snapshot_idx\").on(\n table.source,\n table.snapshotDate,\n ),\n createdAt: index(\"import_batches_created_at_idx\").on(table.createdAt),\n }),\n);\n\nexport const capabilityCatalogItems = pgTable(\n \"capability_catalog_items\",\n {\n id: text(\"id\").notNull(),\n accountId: uuid(\"account_id\").references(() => managedAccounts.id, {\n onDelete: \"cascade\",\n }),\n workspaceId: uuid(\"workspace_id\").references(() => workspaces.id, {\n onDelete: \"cascade\",\n }),\n kind: text(\"kind\").notNull(),\n source: text(\"source\").notNull().default(\"manual\"),\n name: text(\"name\").notNull(),\n description: text(\"description\"),\n category: text(\"category\").notNull().default(\"custom\"),\n tags: jsonb(\"tags\").$type<string[]>().notNull().default([]),\n homepageUrl: text(\"homepage_url\"),\n endpointUrl: text(\"endpoint_url\"),\n installUrl: text(\"install_url\"),\n authModel: text(\"auth_model\"),\n providerDomain: text(\"provider_domain\"),\n surfaceType: text(\"surface_type\"),\n transport: text(\"transport\"),\n mcpUrl: text(\"mcp_url\"),\n authKind: text(\"auth_kind\"),\n credentialFacts: jsonb(\"credential_facts\")\n .$type<Array<Record<string, unknown>>>()\n .notNull()\n .default([]),\n tier: text(\"tier\"),\n provenance: text(\"provenance\"),\n logoAssetPath: text(\"logo_asset_path\"),\n importBatchId: uuid(\"import_batch_id\").references(() => importBatches.id, {\n onDelete: \"set null\",\n }),\n stale: boolean(\"stale\").notNull().default(false),\n staleAt: timestamp(\"stale_at\", { withTimezone: true }),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n kindAuthority: check(\"capability_catalog_items_kind_authority_chk\", sql`${table.kind} = 'mcp'`),\n workspaceCapability: uniqueIndex(\"capability_catalog_items_workspace_capability_idx\").on(\n table.workspaceId,\n table.id,\n ),\n registrySurface: uniqueIndex(\"capability_catalog_items_registry_surface_idx\").on(\n table.source,\n table.providerDomain,\n table.mcpUrl,\n ),\n globalCapability: uniqueIndex(\"capability_catalog_items_global_capability_idx\")\n .on(table.id)\n .where(sql`${table.workspaceId} is null`),\n kind: index(\"capability_catalog_items_workspace_kind_idx\").on(table.workspaceId, table.kind),\n category: index(\"capability_catalog_items_workspace_category_idx\").on(\n table.workspaceId,\n table.category,\n ),\n source: index(\"capability_catalog_items_workspace_source_idx\").on(\n table.workspaceId,\n table.source,\n ),\n providerDomain: index(\"capability_catalog_items_provider_domain_idx\").on(table.providerDomain),\n importBatch: index(\"capability_catalog_items_import_batch_idx\").on(table.importBatchId),\n stale: index(\"capability_catalog_items_source_stale_idx\").on(table.source, table.stale),\n }),\n);\n\nexport const capabilityInstallations = pgTable(\n \"capability_installations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n capabilityId: text(\"capability_id\").notNull(),\n kind: text(\"kind\").notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n config: jsonb(\"config\").$type<Record<string, unknown>>().notNull().default({}),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n enabledAt: timestamp(\"enabled_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n kindAuthority: check(\"capability_installations_kind_authority_chk\", sql`${table.kind} = 'mcp'`),\n workspaceCapability: uniqueIndex(\"capability_installations_workspace_capability_idx\").on(\n table.workspaceId,\n table.capabilityId,\n ),\n kind: index(\"capability_installations_workspace_kind_idx\").on(table.workspaceId, table.kind),\n status: index(\"capability_installations_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n ),\n }),\n);\n\n// --- Capabilities platform ---------------------------------------------------\n// Authoritative Plugin, immutable Version, Facet, installation, and ownership\n// state. The generic catalog/installations ledger is reserved for MCP.\n\nexport const capabilityPlugins = pgTable(\n \"capability_plugins\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n pluginKey: text(\"plugin_key\").notNull(),\n accountId: uuid(\"account_id\").references(() => managedAccounts.id, {\n onDelete: \"cascade\",\n }),\n workspaceId: uuid(\"workspace_id\").references(() => workspaces.id, {\n onDelete: \"cascade\",\n }),\n name: text(\"name\").notNull(),\n description: text(\"description\"),\n category: text(\"category\").notNull(),\n tags: jsonb(\"tags\").$type<string[]>().notNull().default([]),\n provenance: text(\"provenance\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n globalKey: uniqueIndex(\"capability_plugins_global_key_idx\")\n .on(table.pluginKey)\n .where(sql`${table.workspaceId} is null`),\n workspaceKey: uniqueIndex(\"capability_plugins_workspace_key_idx\").on(\n table.workspaceId,\n table.pluginKey,\n ),\n scope: index(\"capability_plugins_scope_idx\").on(table.workspaceId, table.category),\n }),\n);\n\nexport const capabilityPluginVersions = pgTable(\n \"capability_plugin_versions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n pluginId: uuid(\"plugin_id\")\n .notNull()\n .references(() => capabilityPlugins.id, { onDelete: \"cascade\" }),\n version: text(\"version\").notNull(),\n manifestDigest: text(\"manifest_digest\").notNull(),\n manifest: jsonb(\"manifest\").$type<Record<string, unknown>>().notNull().default({}),\n status: text(\"status\").notNull().default(\"published\"),\n importBatchId: uuid(\"import_batch_id\").references(() => importBatches.id, {\n onDelete: \"set null\",\n }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pluginVersion: uniqueIndex(\"capability_plugin_versions_plugin_version_idx\").on(\n table.pluginId,\n table.version,\n ),\n pluginDigest: uniqueIndex(\"capability_plugin_versions_plugin_digest_idx\").on(\n table.pluginId,\n table.manifestDigest,\n ),\n pluginIdentity: uniqueIndex(\"capability_plugin_versions_plugin_identity_idx\").on(\n table.pluginId,\n table.id,\n ),\n }),\n);\n\nexport const capabilityFacets = pgTable(\n \"capability_facets\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n pluginVersionId: uuid(\"plugin_version_id\")\n .notNull()\n .references(() => capabilityPluginVersions.id, { onDelete: \"cascade\" }),\n facetKey: text(\"facet_key\").notNull(),\n kind: text(\"kind\").notNull(),\n activationMode: text(\"activation_mode\").notNull(),\n required: boolean(\"required\").notNull().default(true),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n versionKey: uniqueIndex(\"capability_facets_version_key_idx\").on(\n table.pluginVersionId,\n table.facetKey,\n ),\n versionKind: index(\"capability_facets_version_kind_idx\").on(table.pluginVersionId, table.kind),\n }),\n);\n\nexport const capabilityIntegrationFacets = pgTable(\"capability_integration_facets\", {\n facetId: uuid(\"facet_id\")\n .primaryKey()\n .references(() => capabilityFacets.id, { onDelete: \"cascade\" }),\n providerDomain: text(\"provider_domain\").notNull(),\n connectionKinds: jsonb(\"connection_kinds\").$type<string[]>().notNull().default([]),\n ownership: text(\"ownership\").notNull(),\n requiredScopes: jsonb(\"required_scopes\").$type<string[]>().notNull().default([]),\n resourceSelection: text(\"resource_selection\").notNull().default(\"none\"),\n});\n\nexport const capabilityMcpFacets = pgTable(\n \"capability_mcp_facets\",\n {\n facetId: uuid(\"facet_id\")\n .primaryKey()\n .references(() => capabilityFacets.id, { onDelete: \"cascade\" }),\n serverId: text(\"server_id\").notNull(),\n endpointUrl: text(\"endpoint_url\").notNull(),\n transport: text(\"transport\").notNull(),\n authKind: text(\"auth_kind\").notNull(),\n integrationFacetId: uuid(\"integration_facet_id\").references(\n () => capabilityIntegrationFacets.facetId,\n { onDelete: \"restrict\" },\n ),\n allowedTools: jsonb(\"allowed_tools\").$type<string[]>().notNull().default([]),\n },\n (table) => ({\n server: index(\"capability_mcp_facets_server_idx\").on(table.serverId),\n }),\n);\n\nexport const capabilityApiFacets = pgTable(\"capability_api_facets\", {\n facetId: uuid(\"facet_id\")\n .primaryKey()\n .references(() => capabilityFacets.id, { onDelete: \"cascade\" }),\n protocol: text(\"protocol\").notNull(),\n baseUrl: text(\"base_url\").notNull(),\n specSourceUrl: text(\"spec_source_url\"),\n authScheme: jsonb(\"auth_scheme\").$type<Record<string, unknown>>().notNull().default({}),\n integrationFacetId: uuid(\"integration_facet_id\").references(\n () => capabilityIntegrationFacets.facetId,\n { onDelete: \"restrict\" },\n ),\n});\n\nexport const capabilitySkillFacets = pgTable(\n \"capability_skill_facets\",\n {\n facetId: uuid(\"facet_id\")\n .primaryKey()\n .references(() => capabilityFacets.id, { onDelete: \"cascade\" }),\n capabilityId: text(\"capability_id\").notNull(),\n name: text(\"name\").notNull(),\n description: text(\"description\").notNull(),\n sourceUrl: text(\"source_url\").notNull(),\n sourceCommit: text(\"source_commit\").notNull(),\n sourcePath: text(\"source_path\").notNull(),\n contentSha256: text(\"content_sha256\").notNull(),\n fileCount: integer(\"file_count\").notNull(),\n totalBytes: integer(\"total_bytes\").notNull(),\n license: text(\"license\"),\n },\n (table) => ({\n content: index(\"capability_skill_facets_content_idx\").on(table.contentSha256),\n }),\n);\n\nexport const capabilitySkillFiles = pgTable(\n \"capability_skill_files\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n skillFacetId: uuid(\"skill_facet_id\")\n .notNull()\n .references(() => capabilitySkillFacets.facetId, { onDelete: \"cascade\" }),\n path: text(\"path\").notNull(),\n content: text(\"content\").notNull(),\n byteSize: integer(\"byte_size\").notNull(),\n contentSha256: text(\"content_sha256\").notNull(),\n },\n (table) => ({\n skillPath: uniqueIndex(\"capability_skill_files_skill_path_idx\").on(\n table.skillFacetId,\n table.path,\n ),\n }),\n);\n\nexport const capabilityPluginInstallations = pgTable(\n \"capability_plugin_installations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n pluginId: uuid(\"plugin_id\")\n .notNull()\n .references(() => capabilityPlugins.id, { onDelete: \"restrict\" }),\n pluginVersionId: uuid(\"plugin_version_id\").notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n version: integer(\"version\").notNull().default(1),\n installedBySubjectId: text(\"installed_by_subject_id\").notNull(),\n installedAt: timestamp(\"installed_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pluginVersion: foreignKey({\n columns: [table.pluginId, table.pluginVersionId],\n foreignColumns: [capabilityPluginVersions.pluginId, capabilityPluginVersions.id],\n name: \"capability_plugin_installations_plugin_version_fk\",\n }).onDelete(\"restrict\"),\n workspacePlugin: uniqueIndex(\"capability_plugin_installations_workspace_plugin_idx\").on(\n table.workspaceId,\n table.pluginId,\n ),\n workspaceStatus: index(\"capability_plugin_installations_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n ),\n }),\n);\n\nexport const capabilityFacetInstallations = pgTable(\n \"capability_facet_installations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n pluginInstallationId: uuid(\"plugin_installation_id\")\n .notNull()\n .references(() => capabilityPluginInstallations.id, {\n onDelete: \"cascade\",\n }),\n facetId: uuid(\"facet_id\")\n .notNull()\n .references(() => capabilityFacets.id, { onDelete: \"restrict\" }),\n connectionId: uuid(\"connection_id\").references(() => connections.id, {\n onDelete: \"restrict\",\n }),\n status: text(\"status\").notNull().default(\"active\"),\n config: jsonb(\"config\").$type<Record<string, unknown>>().notNull().default({}),\n version: integer(\"version\").notNull().default(1),\n attentionCode: text(\"attention_code\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n installationFacet: uniqueIndex(\"capability_facet_installations_installation_facet_idx\").on(\n table.pluginInstallationId,\n table.facetId,\n ),\n workspaceStatus: index(\"capability_facet_installations_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n ),\n }),\n);\n\nexport const capabilityComponentOwners = pgTable(\n \"capability_component_owners\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n facetInstallationId: uuid(\"facet_installation_id\")\n .notNull()\n .references(() => capabilityFacetInstallations.id, {\n onDelete: \"cascade\",\n }),\n ownerKind: text(\"owner_kind\").notNull(),\n ownerId: text(\"owner_id\").notNull(),\n removable: boolean(\"removable\").notNull().default(true),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n uniqueOwner: uniqueIndex(\"capability_component_owners_unique_idx\").on(\n table.facetInstallationId,\n table.ownerKind,\n table.ownerId,\n ),\n workspaceOwner: index(\"capability_component_owners_workspace_owner_idx\").on(\n table.workspaceId,\n table.ownerKind,\n table.ownerId,\n ),\n }),\n);\n\nexport const integrationSpecRevisions = pgTable(\n \"integration_spec_revisions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n apiFacetId: uuid(\"api_facet_id\")\n .notNull()\n .references(() => capabilityApiFacets.facetId, { onDelete: \"cascade\" }),\n revision: integer(\"revision\").notNull(),\n protocol: text(\"protocol\").notNull(),\n sourceUrl: text(\"source_url\"),\n specDigest: text(\"spec_digest\").notNull(),\n spec: jsonb(\"spec\").$type<Record<string, unknown>>().notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n fetchedAt: timestamp(\"fetched_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n facetRevision: uniqueIndex(\"integration_spec_revisions_facet_revision_idx\").on(\n table.apiFacetId,\n table.revision,\n ),\n facetDigest: uniqueIndex(\"integration_spec_revisions_facet_digest_idx\").on(\n table.apiFacetId,\n table.specDigest,\n ),\n }),\n);\n\nexport const integrationTools = pgTable(\n \"integration_tools\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n facetId: uuid(\"facet_id\")\n .notNull()\n .references(() => capabilityFacets.id, { onDelete: \"cascade\" }),\n toolKey: text(\"tool_key\").notNull(),\n name: text(\"name\").notNull(),\n description: text(\"description\"),\n inputSchema: jsonb(\"input_schema\").$type<Record<string, unknown>>().notNull().default({}),\n outputSchema: jsonb(\"output_schema\").$type<Record<string, unknown>>(),\n effect: text(\"effect\").notNull().default(\"read\"),\n active: boolean(\"active\").notNull().default(true),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n facetTool: uniqueIndex(\"integration_tools_facet_tool_idx\").on(table.facetId, table.toolKey),\n }),\n);\n\nexport const integrationFacetDefinitions = pgTable(\n \"integration_facet_definitions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n integrationFacetId: uuid(\"integration_facet_id\")\n .notNull()\n .references(() => capabilityIntegrationFacets.facetId, {\n onDelete: \"cascade\",\n }),\n facetKey: text(\"facet_key\").notNull(),\n kind: text(\"kind\").notNull(),\n configSchema: jsonb(\"config_schema\").$type<Record<string, unknown>>().notNull().default({}),\n capabilities: jsonb(\"capabilities\").$type<Record<string, unknown>>().notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n integrationFacet: uniqueIndex(\"integration_facet_definitions_integration_facet_idx\").on(\n table.integrationFacetId,\n table.facetKey,\n ),\n integrationKind: index(\"integration_facet_definitions_integration_kind_idx\").on(\n table.integrationFacetId,\n table.kind,\n ),\n }),\n);\n\nexport const integrationFacetBindings = pgTable(\n \"integration_facet_bindings\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n facetDefinitionId: uuid(\"facet_definition_id\")\n .notNull()\n .references(() => integrationFacetDefinitions.id, {\n onDelete: \"restrict\",\n }),\n integrationFacetInstallationId: uuid(\"integration_facet_installation_id\")\n .notNull()\n .references(() => capabilityFacetInstallations.id, {\n onDelete: \"cascade\",\n }),\n bindingKey: text(\"binding_key\").notNull(),\n displayName: text(\"display_name\").notNull(),\n runtimeKey: text(\"runtime_key\"),\n connectionId: uuid(\"connection_id\").references(() => connections.id, {\n onDelete: \"restrict\",\n }),\n status: text(\"status\").notNull().default(\"active\"),\n config: jsonb(\"config\").$type<Record<string, unknown>>().notNull().default({}),\n cursor: jsonb(\"cursor\").$type<Record<string, unknown>>().notNull().default({}),\n version: integer(\"version\").notNull().default(1),\n lastSuccessAt: timestamp(\"last_success_at\", { withTimezone: true }),\n lastErrorCode: text(\"last_error_code\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n installationFacetKey: uniqueIndex(\"integration_facet_bindings_installation_facet_key_idx\").on(\n table.workspaceId,\n table.integrationFacetInstallationId,\n table.facetDefinitionId,\n table.bindingKey,\n ),\n workspaceRuntime: uniqueIndex(\"integration_facet_bindings_workspace_runtime_idx\")\n .on(table.workspaceId, table.runtimeKey)\n .where(sql`${table.runtimeKey} is not null`),\n workspaceStatus: index(\"integration_facet_bindings_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n ),\n }),\n);\n\nexport const integrationFacetBindingOwners = pgTable(\n \"integration_facet_binding_owners\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n bindingId: uuid(\"binding_id\")\n .notNull()\n .references(() => integrationFacetBindings.id, { onDelete: \"cascade\" }),\n ownerKind: text(\"owner_kind\").notNull(),\n ownerId: text(\"owner_id\").notNull(),\n removable: boolean(\"removable\").notNull().default(true),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n uniqueOwner: uniqueIndex(\"integration_facet_binding_owners_unique_idx\").on(\n table.bindingId,\n table.ownerKind,\n table.ownerId,\n ),\n workspaceOwner: index(\"integration_facet_binding_owners_workspace_owner_idx\").on(\n table.workspaceId,\n table.ownerKind,\n table.ownerId,\n ),\n }),\n);\n\nexport const capabilityOperations = pgTable(\n \"capability_operations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n idempotencyKey: text(\"idempotency_key\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n kind: text(\"kind\").notNull(),\n targetKind: text(\"target_kind\").notNull(),\n targetId: text(\"target_id\").notNull(),\n status: text(\"status\").notNull().default(\"pending\"),\n phase: text(\"phase\").notNull().default(\"admitted\"),\n version: integer(\"version\").notNull().default(1),\n result: jsonb(\"result\").$type<Record<string, unknown>>(),\n errorCode: text(\"error_code\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n },\n (table) => ({\n workspaceIdempotency: uniqueIndex(\"capability_operations_workspace_idempotency_idx\").on(\n table.workspaceId,\n table.idempotencyKey,\n ),\n workspaceStatus: index(\"capability_operations_workspace_status_idx\").on(\n table.workspaceId,\n table.status,\n table.updatedAt,\n ),\n }),\n);\n\nexport const socialConnections = pgTable(\n \"social_connections\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n version: integer(\"version\").notNull().default(1),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n subjectId: text(\"subject_id\"),\n provider: text(\"provider\").notNull(),\n accountHandle: text(\"account_handle\").notNull(),\n accountName: text(\"account_name\"),\n externalAccountId: text(\"external_account_id\"),\n status: text(\"status\").notNull().default(\"connected\"),\n scopes: jsonb(\"scopes\").$type<string[]>().notNull().default([]),\n credentialRef: text(\"credential_ref\"),\n // AES-256-GCM envelope (environment-crypto v1 format) holding the OAuth\n // token bundle. Never exposed through contracts or MCP tools; only the\n // host-side social API client decrypts it.\n credentialEncrypted: text(\"credential_encrypted\"),\n tokenMetadata: jsonb(\"token_metadata\").$type<Record<string, unknown>>().notNull().default({}),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceProviderHandle: uniqueIndex(\"social_connections_workspace_provider_handle_idx\")\n .on(table.workspaceId, table.provider, table.accountHandle)\n .where(sql`${table.subjectId} is null`),\n subjectProviderHandle: uniqueIndex(\"social_connections_subject_provider_handle_idx\")\n .on(table.workspaceId, table.subjectId, table.provider)\n .where(sql`${table.subjectId} is not null`),\n providerStatus: index(\"social_connections_workspace_provider_status_idx\").on(\n table.workspaceId,\n table.provider,\n table.status,\n ),\n subjectProviderStatus: index(\"social_connections_subject_provider_status_idx\").on(\n table.workspaceId,\n table.subjectId,\n table.provider,\n table.status,\n ),\n }),\n);\n\nexport const socialPosts = pgTable(\n \"social_posts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n connectionId: uuid(\"connection_id\")\n .notNull()\n .references(() => socialConnections.id, { onDelete: \"cascade\" }),\n provider: text(\"provider\").notNull(),\n externalPostId: text(\"external_post_id\"),\n url: text(\"url\"),\n authorHandle: text(\"author_handle\"),\n text: text(\"text\").notNull(),\n publishedAt: timestamp(\"published_at\", { withTimezone: true }).notNull(),\n metrics: jsonb(\"metrics\").$type<Record<string, number>>().notNull().default({}),\n raw: jsonb(\"raw\").$type<Record<string, unknown>>().notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n connectionExternalPost: uniqueIndex(\"social_posts_workspace_connection_external_post_idx\").on(\n table.workspaceId,\n table.connectionId,\n table.externalPostId,\n ),\n connectionPublished: index(\"social_posts_workspace_connection_published_idx\").on(\n table.workspaceId,\n table.connectionId,\n table.publishedAt,\n ),\n providerPublished: index(\"social_posts_workspace_provider_published_idx\").on(\n table.workspaceId,\n table.provider,\n table.publishedAt,\n ),\n }),\n);\n\n// Rigs (migration 0047): workspace-scoped, versioned sandbox machine definitions.\n// A rig is the named truth; each sandbox is a disposable fork of a rig version.\nexport const rigs = pgTable(\n \"rigs\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n name: text(\"name\").notNull(),\n description: text(\"description\"),\n // Attribution string: 'user:<subject>' | 'session:<id>' | 'system'.\n createdBy: text(\"created_by\"),\n authorityScope: text(\"authority_scope\").notNull().default(\"workspace\"),\n authorityId: uuid(\"authority_id\"),\n ownerOrganizationMembershipId: uuid(\"owner_organization_membership_id\"),\n originWorkspaceId: uuid(\"origin_workspace_id\"),\n generation: bigint(\"generation\", { mode: \"number\" }).notNull().default(1),\n status: text(\"status\").notNull().default(\"active\"),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceName: uniqueIndex(\"rigs_workspace_name_active_idx\")\n .on(table.workspaceId, table.name)\n .where(sql`${table.authorityScope} = 'workspace' and ${table.status} = 'active'`),\n organizationName: uniqueIndex(\"rigs_organization_name_active_idx\")\n .on(table.accountId, table.name)\n .where(sql`${table.authorityScope} = 'organization' and ${table.status} = 'active'`),\n userName: uniqueIndex(\"rigs_user_name_active_idx\")\n .on(table.accountId, table.ownerOrganizationMembershipId, table.name)\n .where(sql`${table.authorityScope} = 'user' and ${table.status} = 'active'`),\n workspaceCreated: index(\"rigs_workspace_created_idx\").on(table.workspaceId, table.createdAt),\n authorityShape: check(\n \"rigs_authority_shape_check\",\n sql`(\n ${table.authorityScope} in ('organization', 'workspace')\n and ${table.authorityId} is null\n and ${table.ownerOrganizationMembershipId} is null\n ) or (\n ${table.authorityScope} = 'user'\n and ${table.authorityId} is not null\n and ${table.ownerOrganizationMembershipId} is not null\n )`,\n ),\n authorityScopeValid: check(\n \"rigs_authority_scope_check\",\n sql`${table.authorityScope} in ('organization', 'workspace', 'user')`,\n ),\n generationPositive: check(\"rigs_generation_check\", sql`${table.generation} > 0`),\n statusValid: check(\"rigs_status_check\", sql`${table.status} in ('active', 'revoked')`),\n revocationShape: check(\n \"rigs_revocation_check\",\n sql`(${table.status} = 'active' and ${table.revokedAt} is null)\n or (${table.status} = 'revoked' and ${table.revokedAt} is not null)`,\n ),\n authority: foreignKey({\n name: \"rigs_authority_fk\",\n columns: [table.authorityId, table.accountId, table.ownerOrganizationMembershipId],\n foreignColumns: [\n organizationUserResourceAuthorities.id,\n organizationUserResourceAuthorities.accountId,\n organizationUserResourceAuthorities.organizationMembershipId,\n ],\n }).onDelete(\"restrict\"),\n // Migration 0230 owns the origin-workspace FK's column-subset SET NULL.\n }),\n);\n\n// Append-only, definition-content-immutable rig versions. Exactly one active\n// per rig (partial unique index). Definition columns never UPDATE; only the\n// `active` flag and provider-image build metadata are operationally mutable.\nexport const rigVersions = pgTable(\n \"rig_versions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n rigId: uuid(\"rig_id\")\n .notNull()\n .references(() => rigs.id, { onDelete: \"cascade\" }),\n version: integer(\"version\").notNull(),\n // Legacy audit field only. Migration 0356 rejects new non-null values;\n // runtime always uses the deployment platform sandbox image.\n image: text(\"image\"),\n setupScript: text(\"setup_script\"),\n // Self-declared health checks: [{ name, command }].\n checks: jsonb(\"checks\").$type<Array<{ name: string; command: string }>>().notNull().default([]),\n // Registered credential-hook names (resolved to hook implementations in M3).\n credentialHooks: jsonb(\"credential_hooks\").$type<string[]>().notNull().default([]),\n // Variable-set ids layered below the session's variable set at run time (M3).\n defaultVariableSetIds: jsonb(\"default_variable_set_ids\")\n .$type<string[]>()\n .notNull()\n .default([]),\n changelog: text(\"changelog\"),\n // Build-once provider-native image state, keyed by sandbox backend. This is\n // operational metadata bound to the exact immutable version definition;\n // it never contains credentials, variable values, repositories, archives,\n // session state, or process state.\n providerImages: jsonb(\"provider_images\").$type<RigProviderImages>().notNull().default({}),\n createdBy: text(\"created_by\"),\n active: boolean(\"active\").notNull().default(false),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n rigVersion: uniqueIndex(\"rig_versions_rig_version_idx\").on(table.rigId, table.version),\n // At most one active version per rig — the single-active invariant, in the DB.\n rigActive: uniqueIndex(\"rig_versions_rig_active_idx\")\n .on(table.rigId)\n .where(sql`${table.active}`),\n workspaceRig: index(\"rig_versions_workspace_rig_idx\").on(\n table.workspaceId,\n table.rigId,\n table.version,\n ),\n }),\n);\n\n// Proposed/verified rig changes (M4 substrate). M2 creates the table + CRUD only;\n// verification/auto-merge/promotion land in M4.\nexport const rigChanges = pgTable(\n \"rig_changes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n rigId: uuid(\"rig_id\")\n .notNull()\n .references(() => rigs.id, { onDelete: \"cascade\" }),\n baseVersionId: uuid(\"base_version_id\").references(() => rigVersions.id, {\n onDelete: \"set null\",\n }),\n // 'setup_append' | 'definition_edit' (CHECK in migration 0047).\n kind: text(\"kind\").notNull(),\n payload: losslessJsonb(\"payload\").$type<Record<string, unknown>>().notNull(),\n payloadCodecVersion: losslessCodecVersion(\"payload_codec_version\"),\n // 'proposed' | 'verifying' | 'merged' | 'rejected' | 'failed' (CHECK in 0047).\n status: text(\"status\").notNull().default(\"proposed\"),\n proposedBy: text(\"proposed_by\"),\n verification: losslessJsonb(\"verification\").$type<Record<string, unknown>>(),\n verificationCodecVersion: losslessCodecVersion(\"verification_codec_version\"),\n resultVersionId: uuid(\"result_version_id\").references(() => rigVersions.id, {\n onDelete: \"set null\",\n }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceRig: index(\"rig_changes_workspace_rig_idx\").on(\n table.workspaceId,\n table.rigId,\n table.createdAt,\n ),\n workspaceStatus: index(\"rig_changes_workspace_status_idx\").on(table.workspaceId, table.status),\n }),\n);\n\nexport const deploymentModelCatalog = pgTable(\n \"deployment_model_catalog\",\n {\n singleton: boolean(\"singleton\").primaryKey().notNull().default(true),\n document: jsonb(\"document\").$type<unknown>().notNull(),\n version: bigint(\"version\", { mode: \"number\" }).notNull().default(1),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n singletonCheck: check(\"deployment_model_catalog_singleton_chk\", sql`${table.singleton}`),\n documentCheck: check(\n \"deployment_model_catalog_document_chk\",\n sql`jsonb_typeof(${table.document}) = 'object'`,\n ),\n versionCheck: check(\"deployment_model_catalog_version_chk\", sql`${table.version} > 0`),\n }),\n);\n\nexport const workspaceGatewayCustomModels = pgTable(\n \"workspace_gateway_custom_models\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n workspaceId: uuid(\"workspace_id\")\n .notNull()\n .references(() => workspaces.id, { onDelete: \"cascade\" }),\n providerKind: text(\"provider_kind\").$type<\"vercel_gateway\" | \"openrouter\">().notNull(),\n upstreamModelId: text(\"upstream_model_id\").notNull(),\n label: text(\"label\"),\n version: integer(\"version\").notNull().default(1),\n createOperationId: uuid(\"create_operation_id\").notNull(),\n createRequestHash: text(\"create_request_hash\").notNull(),\n deleteOperationId: uuid(\"delete_operation_id\"),\n deleteRequestHash: text(\"delete_request_hash\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n retiredAt: timestamp(\"retired_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceAccountFk: foreignKey({\n name: \"workspace_gateway_custom_models_workspace_account_fk\",\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n workspaceUpstream: uniqueIndex(\"workspace_gateway_custom_models_workspace_upstream_uq\")\n .on(table.workspaceId, table.providerKind, table.upstreamModelId)\n .where(sql`${table.retiredAt} is null`),\n createOperation: uniqueIndex(\"workspace_gateway_custom_models_create_operation_uq\").on(\n table.workspaceId,\n table.providerKind,\n table.createOperationId,\n ),\n deleteOperation: uniqueIndex(\"workspace_gateway_custom_models_delete_operation_uq\")\n .on(table.workspaceId, table.providerKind, table.deleteOperationId)\n .where(sql`${table.deleteOperationId} is not null`),\n providerKindCheck: check(\n \"workspace_gateway_custom_models_provider_kind_chk\",\n sql`${table.providerKind} in ('vercel_gateway', 'openrouter')`,\n ),\n upstreamCheck: check(\n \"workspace_gateway_custom_models_upstream_chk\",\n sql`octet_length(${table.upstreamModelId}) between 1 and 238 and ${table.upstreamModelId} ~ '^[!-~]+$' and ${table.upstreamModelId} !~ '[|]'`,\n ),\n labelCheck: check(\n \"workspace_gateway_custom_models_label_chk\",\n sql`${table.label} is null or (octet_length(${table.label}) between 1 and 128 and ${table.label} !~ '[\\r\\n|]')`,\n ),\n actorCheck: check(\n \"workspace_gateway_custom_models_actor_chk\",\n sql`octet_length(${table.createdBySubjectId}) between 1 and 1024`,\n ),\n versionCheck: check(\"workspace_gateway_custom_models_version_chk\", sql`${table.version} > 0`),\n createHashCheck: check(\n \"workspace_gateway_custom_models_create_hash_chk\",\n sql`${table.createRequestHash} ~ '^[a-f0-9]{64}$'`,\n ),\n deleteReceiptCheck: check(\n \"workspace_gateway_custom_models_delete_receipt_chk\",\n sql`(${table.deleteOperationId} is null and ${table.deleteRequestHash} is null) or (${table.deleteOperationId} is not null and ${table.deleteRequestHash} ~ '^[a-f0-9]{64}$' and ${table.retiredAt} is not null)`,\n ),\n }),\n);\n\nexport const organizationModelProviderConnections = pgTable(\n \"organization_model_provider_connections\",\n {\n allowedModelIds: text(\"allowed_model_ids\").array(),\n allowedWorkspaceIds: uuid(\"allowed_workspace_ids\").array(),\n allowPersonalWorkspaces: boolean(\"allow_personal_workspaces\").notNull().default(true),\n accessPolicyVersion: integer(\"access_policy_version\").notNull().default(1),\n accessPolicyUpdatedBy: text(\"access_policy_updated_by\"),\n accessPolicyUpdatedAt: timestamp(\"access_policy_updated_at\", { withTimezone: true }),\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n providerKind: text(\"provider_kind\").$type<\"vercel_gateway\" | \"openrouter\">().notNull(),\n status: text(\"status\").$type<\"active\" | \"revoked\">().notNull().default(\"active\"),\n credentialEncrypted: text(\"credential_encrypted\").notNull(),\n version: integer(\"version\").notNull().default(1),\n operationId: uuid(\"operation_id\").notNull(),\n requestHash: text(\"request_hash\").notNull(),\n updatedBySubjectId: text(\"updated_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountProvider: uniqueIndex(\"organization_model_provider_connections_account_provider_uq\").on(\n table.accountId,\n table.providerKind,\n ),\n operation: uniqueIndex(\"organization_model_provider_connections_operation_uq\").on(\n table.accountId,\n table.providerKind,\n table.operationId,\n ),\n providerKindCheck: check(\n \"organization_model_provider_connections_provider_kind_chk\",\n sql`${table.providerKind} in ('vercel_gateway', 'openrouter')`,\n ),\n statusCheck: check(\n \"organization_model_provider_connections_status_chk\",\n sql`${table.status} in ('active', 'revoked')`,\n ),\n versionCheck: check(\n \"organization_model_provider_connections_version_chk\",\n sql`${table.version} > 0`,\n ),\n requestHashCheck: check(\n \"organization_model_provider_connections_request_hash_chk\",\n sql`${table.requestHash} ~ '^[a-f0-9]{64}$'`,\n ),\n actorCheck: check(\n \"organization_model_provider_connections_actor_chk\",\n sql`octet_length(${table.updatedBySubjectId}) between 1 and 1024`,\n ),\n }),\n);\n\nexport const organizationModelProviderConnectionOperations = pgTable(\n \"organization_model_provider_connection_operations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n providerKind: text(\"provider_kind\").$type<\"vercel_gateway\" | \"openrouter\">().notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n requestHash: text(\"request_hash\").notNull(),\n resultStatus: text(\"result_status\").$type<\"active\" | \"revoked\">().notNull(),\n resultVersion: integer(\"result_version\").notNull(),\n resultCreatedAt: timestamp(\"result_created_at\", {\n withTimezone: true,\n }).notNull(),\n resultUpdatedAt: timestamp(\"result_updated_at\", {\n withTimezone: true,\n }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operation: uniqueIndex(\"organization_model_provider_connection_operations_operation_uq\").on(\n table.accountId,\n table.providerKind,\n table.operationId,\n ),\n providerKindCheck: check(\n \"organization_model_provider_connection_operations_provider_kind_chk\",\n sql`${table.providerKind} in ('vercel_gateway', 'openrouter')`,\n ),\n resultStatusCheck: check(\n \"organization_model_provider_connection_operations_result_status_chk\",\n sql`${table.resultStatus} in ('active', 'revoked')`,\n ),\n resultVersionCheck: check(\n \"organization_model_provider_connection_operations_result_version_chk\",\n sql`${table.resultVersion} > 0`,\n ),\n requestHashCheck: check(\n \"organization_model_provider_connection_operations_request_hash_chk\",\n sql`${table.requestHash} ~ '^[a-f0-9]{64}$'`,\n ),\n }),\n);\n\nexport const organizationModelProviderCustomModels = pgTable(\n \"organization_model_provider_custom_models\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\")\n .notNull()\n .references(() => managedAccounts.id, { onDelete: \"cascade\" }),\n providerKind: text(\"provider_kind\").$type<\"vercel_gateway\" | \"openrouter\">().notNull(),\n upstreamModelId: text(\"upstream_model_id\").notNull(),\n label: text(\"label\"),\n version: integer(\"version\").notNull().default(1),\n createOperationId: uuid(\"create_operation_id\").notNull(),\n createRequestHash: text(\"create_request_hash\").notNull(),\n deleteOperationId: uuid(\"delete_operation_id\"),\n deleteRequestHash: text(\"delete_request_hash\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n retiredAt: timestamp(\"retired_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountUpstream: uniqueIndex(\"organization_model_provider_custom_models_active_uq\")\n .on(table.accountId, table.providerKind, table.upstreamModelId)\n .where(sql`${table.retiredAt} is null`),\n createOperation: uniqueIndex(\n \"organization_model_provider_custom_models_create_operation_uq\",\n ).on(table.accountId, table.providerKind, table.createOperationId),\n deleteOperation: uniqueIndex(\"organization_model_provider_custom_models_delete_operation_uq\")\n .on(table.accountId, table.providerKind, table.deleteOperationId)\n .where(sql`${table.deleteOperationId} is not null`),\n providerKindCheck: check(\n \"organization_model_provider_custom_models_provider_kind_chk\",\n sql`${table.providerKind} in ('vercel_gateway', 'openrouter')`,\n ),\n upstreamCheck: check(\n \"organization_model_provider_custom_models_upstream_chk\",\n sql`octet_length(${table.upstreamModelId}) between 1 and 238 and ${table.upstreamModelId} ~ '^[!-~]+$' and ${table.upstreamModelId} !~ '[|]'`,\n ),\n labelCheck: check(\n \"organization_model_provider_custom_models_label_chk\",\n sql`${table.label} is null or (octet_length(${table.label}) between 1 and 128 and ${table.label} !~ '[\\r\\n|]')`,\n ),\n versionCheck: check(\n \"organization_model_provider_custom_models_version_chk\",\n sql`${table.version} > 0`,\n ),\n actorCheck: check(\n \"organization_model_provider_custom_models_actor_chk\",\n sql`octet_length(${table.createdBySubjectId}) between 1 and 1024`,\n ),\n createHashCheck: check(\n \"organization_model_provider_custom_models_create_hash_chk\",\n sql`${table.createRequestHash} ~ '^[a-f0-9]{64}$'`,\n ),\n deleteReceiptCheck: check(\n \"organization_model_provider_custom_models_delete_receipt_chk\",\n sql`(${table.deleteOperationId} is null and ${table.deleteRequestHash} is null) or (${table.deleteOperationId} is not null and ${table.deleteRequestHash} ~ '^[a-f0-9]{64}$' and ${table.retiredAt} is not null)`,\n ),\n }),\n);\n\nexport * from \"./workspace-instruction-policies-schema\";\nexport * from \"./company-profile-schema\";\nexport * from \"./workspace-learning-policy-schema\";\nexport * from \"./slack-task-policy-schema\";\nexport * from \"./preference-registry-schema\";\nexport * from \"./skills-schema\";\nexport * from \"./memory-governance-schema\";\nexport * from \"./scoped-knowledge-schema\";\nexport * from \"./task-notes-schema\";\nexport * from \"./work-claims-schema\";\nexport * from \"./company-brain-context-selection-schema\";\nexport * from \"./governed-learning-evaluator-schema\";\nexport * from \"./governed-learning-activation-schema\";\nexport * from \"./knowledge-source-sync-schema\";\nexport * from \"./transcription-recordings-schema\";\nexport * from \"./interaction-schema\";\n\n/** Immutable feedback, scoped to its submitting principal and optional session. */\nexport const feedbackSubmissions = pgTable(\n \"feedback_submissions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n principalKind: text(\"principal_kind\"),\n idempotencyKey: uuid(\"idempotency_key\").notNull(),\n sessionId: uuid(\"session_id\"),\n turnId: uuid(\"turn_id\"),\n sentiment: text(\"sentiment\"),\n comment: losslessText(\"comment\"),\n commentCodecVersion: losslessCodecVersion(\"comment_codec_version\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspace: foreignKey({\n columns: [table.workspaceId, table.accountId],\n foreignColumns: [workspaces.id, workspaces.accountId],\n }).onDelete(\"cascade\"),\n session: foreignKey({\n columns: [table.workspaceId, table.sessionId],\n foreignColumns: [sessions.workspaceId, sessions.id],\n }).onDelete(\"cascade\"),\n turn: foreignKey({\n columns: [table.workspaceId, table.turnId],\n foreignColumns: [sessionTurns.workspaceId, sessionTurns.id],\n }).onDelete(\"cascade\"),\n request: uniqueIndex(\"feedback_submissions_request_idx\").on(\n table.workspaceId,\n table.subjectId,\n table.idempotencyKey,\n ),\n author: index(\"feedback_submissions_author_idx\").on(\n table.workspaceId,\n table.subjectId,\n table.createdAt,\n table.id,\n ),\n sessionTime: index(\"feedback_submissions_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n","import { customType, integer } from \"drizzle-orm/pg-core\";\nimport { toPostgresLosslessJson, toPostgresLosslessText } from \"./lossless-json\";\n\n/**\n * Codec truth is explicit and out-of-band. This column intentionally has no\n * database or application default: a caller may set version 1 only in the same\n * statement that writes the corresponding value through the lossless codec.\n */\nexport function losslessCodecVersion<TName extends string>(name: TName) {\n return integer(name);\n}\n\nexport const losslessJsonb = customType<{ data: unknown; driverData: string }>({\n dataType() {\n return \"jsonb\";\n },\n toDriver(value) {\n return JSON.stringify(toPostgresLosslessJson(value));\n },\n fromDriver(value) {\n return typeof value === \"string\" ? JSON.parse(value) : value;\n },\n});\n\nexport const losslessText = customType<{ data: string; driverData: string }>({\n dataType() {\n return \"text\";\n },\n toDriver(value) {\n return toPostgresLosslessText(value);\n },\n fromDriver(value) {\n return value;\n },\n});\n\n/** Ordered model history: JSON decoding preserves insertion order without repair. */\nexport const losslessOrderedJson = customType<{ data: unknown; driverData: string }>({\n dataType() {\n return \"json\";\n },\n toDriver(value) {\n return JSON.stringify(toPostgresLosslessJson(value));\n },\n fromDriver(value) {\n return typeof value === \"string\" ? JSON.parse(value) : value;\n },\n});\n","const JSON_STRING_PREFIX = \"opengeni_lossless_json_string_v2_81f06e15:\";\nconst JSON_KEY_PREFIX = \"opengeni_lossless_json_key_v2_7ca6071d:\";\nconst TEXT_PREFIX = \"opengeni_lossless_text_v2_c4100a62:\";\nconst MAX_JSON_DEPTH = 512;\n\n/**\n * Explicit out-of-band truth for values written by the lossless PostgreSQL\n * compatibility codec. Historical rows have NULL in their companion version\n * column and must never be decoded based on content shape alone.\n */\nexport const LOSSLESS_CONTENT_CODEC_VERSION = 1 as const;\nexport const LOSSLESS_CONTENT_WRITER_APPLICATION_NAME =\n \"opengeni-lossless-v1-session-variable-sets-v1\";\n\nexport function withLosslessContentWriteVersion<\n const ContentKey extends string,\n const VersionKey extends string,\n const Value extends object,\n>(\n value: Value & Record<ContentKey, unknown>,\n contentKey: ContentKey,\n versionKey: VersionKey,\n): Value & Record<VersionKey, typeof LOSSLESS_CONTENT_CODEC_VERSION>;\nexport function withLosslessContentWriteVersion<\n const ContentKey extends string,\n const VersionKey extends string,\n const Value extends object,\n>(\n value: readonly (Value & Record<ContentKey, unknown>)[],\n contentKey: ContentKey,\n versionKey: VersionKey,\n): Array<Value & Record<VersionKey, typeof LOSSLESS_CONTENT_CODEC_VERSION>>;\nexport function withLosslessContentWriteVersion(\n value: Record<string, unknown> | readonly Record<string, unknown>[],\n contentKey: string,\n versionKey: string,\n): Record<string, unknown> | Record<string, unknown>[] {\n const stamp = (entry: Record<string, unknown>) => {\n if (!Object.hasOwn(entry, contentKey)) {\n throw new Error(`Lossless content write omitted ${contentKey}`);\n }\n return { ...entry, [versionKey]: LOSSLESS_CONTENT_CODEC_VERSION };\n };\n return Array.isArray(value) ? value.map(stamp) : stamp(value as Record<string, unknown>);\n}\n\nexport const LEGACY_LOSSLESS_JSON_ENVELOPE_KEY =\n \"$opengeniCanonicalV8_6d9b6f48_2a3e_4d8a_9e33_7611d9d08985\";\nexport const LEGACY_LOSSLESS_TEXT_PREFIX = \"opengeni-canonical-text-v1:\";\nexport const LOSSLESS_JSON_STRING_PREFIX = JSON_STRING_PREFIX;\nexport const LOSSLESS_TEXT_PREFIX = TEXT_PREFIX;\n\nexport class UnsupportedCanonicalValueError extends TypeError {\n override readonly name = \"UnsupportedCanonicalValueError\";\n}\n\ntype TransformResult = { value: unknown; changed: boolean };\n\n/**\n * Preserve JSON structure and SQL-queryable control keys. Only strings that\n * PostgreSQL cannot represent (or that collide with this unshipped v2 tag) are\n * encoded. Non-JSON graph values are rejected instead of silently rewritten.\n */\nexport function toPostgresLosslessJson(value: unknown): unknown {\n return encodeJsonValue(value, new Set<object>(), 0).value;\n}\n\n/**\n * Restore an explicitly versioned JSON value after a PostgreSQL read. A NULL\n * version denotes literal legacy/old-writer data, including strings that happen\n * to be valid active-marker encodings.\n */\nexport function fromPostgresLosslessJson<T>(value: T, codecVersion: number | null | undefined): T {\n return codecVersion === LOSSLESS_CONTENT_CODEC_VERSION\n ? (decodeJsonValue(value, 0).value as T)\n : value;\n}\n\n/**\n * Lossless text-column boundary for NUL, lone UTF-16, and v2-prefix text.\n * Only the unrepresentable code unit is tagged, with SQL-visible spaces around\n * the tag, so ordinary surrounding words retain their full-text-search shape.\n */\nexport function toPostgresLosslessText(value: string): string {\n if (isPostgresSafeString(value) && !value.includes(TEXT_PREFIX)) return value;\n let stored = \"\";\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n if (value.startsWith(TEXT_PREFIX, index)) {\n stored += encodeTextCodeUnit(code);\n continue;\n }\n if (code === 0 || (code >= 0xdc00 && code <= 0xdfff)) {\n stored += encodeTextCodeUnit(code);\n continue;\n }\n if (code >= 0xd800 && code <= 0xdbff) {\n const next = index + 1 < value.length ? value.charCodeAt(index + 1) : 0;\n if (next < 0xdc00 || next > 0xdfff) {\n stored += encodeTextCodeUnit(code);\n continue;\n }\n stored += value.slice(index, index + 2);\n index += 1;\n continue;\n }\n stored += value[index];\n }\n return stored;\n}\n\n/**\n * Decode only an explicitly versioned value introduced by this migration. The\n * nullable companion column, not the producer string, is the codec truth.\n */\nexport function fromPostgresLosslessText(\n value: string,\n codecVersion: number | null | undefined,\n): string {\n return codecVersion === LOSSLESS_CONTENT_CODEC_VERSION\n ? value.replaceAll(\n new RegExp(` ${TEXT_PREFIX}([0-9a-f]{4}); `, \"g\"),\n (_match, encoded: string) => String.fromCharCode(Number.parseInt(encoded, 16)),\n )\n : value;\n}\n\nfunction encodeTextCodeUnit(code: number): string {\n return ` ${TEXT_PREFIX}${code.toString(16).padStart(4, \"0\")}; `;\n}\n\nfunction encodeJsonValue(value: unknown, ancestors: Set<object>, depth: number): TransformResult {\n if (depth > MAX_JSON_DEPTH) {\n throw new UnsupportedCanonicalValueError(\n `Canonical JSON exceeds the maximum supported depth of ${MAX_JSON_DEPTH}`,\n );\n }\n if (value === null || typeof value === \"boolean\") return { value, changed: false };\n if (typeof value === \"string\") {\n if (isPostgresSafeString(value) && !value.startsWith(JSON_STRING_PREFIX)) {\n return { value, changed: false };\n }\n return { value: `${JSON_STRING_PREFIX}${encodeUtf16(value)}`, changed: true };\n }\n if (typeof value === \"number\") {\n if (!Number.isFinite(value) || Object.is(value, -0)) {\n throw new UnsupportedCanonicalValueError(\n \"Canonical JSON requires finite non-negative-zero numbers\",\n );\n }\n return { value, changed: false };\n }\n if (\n typeof value === \"undefined\" ||\n typeof value === \"bigint\" ||\n typeof value === \"function\" ||\n typeof value === \"symbol\"\n ) {\n throw new UnsupportedCanonicalValueError(`Canonical JSON cannot contain ${typeof value}`);\n }\n if (!isPlainObject(value) && !Array.isArray(value)) {\n throw new UnsupportedCanonicalValueError(\"Canonical JSON requires arrays and plain objects\");\n }\n if (ancestors.has(value)) {\n throw new UnsupportedCanonicalValueError(\"Canonical JSON cannot contain cyclic references\");\n }\n if (Object.getOwnPropertySymbols(value).length > 0) {\n throw new UnsupportedCanonicalValueError(\"Canonical JSON cannot contain symbol keys\");\n }\n ancestors.add(value);\n try {\n if (Array.isArray(value)) {\n const descriptors = Object.getOwnPropertyDescriptors(value);\n const propertyNames = Object.getOwnPropertyNames(descriptors);\n const indexNames = propertyNames.filter((name) => name !== \"length\");\n if (\n indexNames.length !== value.length ||\n indexNames.some((name) => {\n const index = Number(name);\n return (\n !Number.isInteger(index) || index < 0 || index >= value.length || String(index) !== name\n );\n })\n ) {\n throw new UnsupportedCanonicalValueError(\n \"Canonical JSON arrays cannot contain non-index properties or holes\",\n );\n }\n const output: unknown[] = [];\n let changed = false;\n for (let index = 0; index < value.length; index += 1) {\n const descriptor = descriptors[String(index)];\n if (!descriptor || !descriptor.enumerable || !(\"value\" in descriptor)) {\n throw new UnsupportedCanonicalValueError(\n \"Canonical JSON arrays cannot contain holes, accessors, or hidden elements\",\n );\n }\n const encoded = encodeJsonValue(descriptor.value, ancestors, depth + 1);\n output.push(encoded.value);\n changed ||= encoded.changed;\n }\n return changed ? { value: output, changed: true } : { value, changed: false };\n }\n\n const descriptors = Object.getOwnPropertyDescriptors(value);\n const output: Record<string, unknown> = {};\n let changed = false;\n for (const [key, descriptor] of Object.entries(descriptors)) {\n if (!descriptor.enumerable || !(\"value\" in descriptor)) {\n throw new UnsupportedCanonicalValueError(\n \"Canonical JSON objects cannot contain accessors or hidden properties\",\n );\n }\n const encodedKey =\n isPostgresSafeString(key) && !key.startsWith(JSON_KEY_PREFIX)\n ? key\n : `${JSON_KEY_PREFIX}${encodeUtf16(key)}`;\n if (Object.prototype.hasOwnProperty.call(output, encodedKey)) {\n throw new UnsupportedCanonicalValueError(\"Canonical JSON key encoding collided\");\n }\n const encodedValue = encodeJsonValue(descriptor.value, ancestors, depth + 1);\n defineJsonDataProperty(output, encodedKey, encodedValue.value);\n changed ||= encodedKey !== key || encodedValue.changed;\n }\n return changed ? { value: output, changed: true } : { value, changed: false };\n } finally {\n ancestors.delete(value);\n }\n}\n\nfunction decodeJsonValue(value: unknown, depth: number): TransformResult {\n if (depth > MAX_JSON_DEPTH) return { value, changed: false };\n if (typeof value === \"string\") {\n const decoded = decodeTaggedString(value, JSON_STRING_PREFIX);\n return decoded === null ? { value, changed: false } : { value: decoded, changed: true };\n }\n if (!value || typeof value !== \"object\") return { value, changed: false };\n if (Array.isArray(value)) {\n const output: unknown[] = [];\n let changed = false;\n for (const entry of value) {\n const decoded = decodeJsonValue(entry, depth + 1);\n output.push(decoded.value);\n changed ||= decoded.changed;\n }\n return changed ? { value: output, changed: true } : { value, changed: false };\n }\n if (!isPlainObject(value)) return { value, changed: false };\n\n const output: Record<string, unknown> = {};\n let changed = false;\n for (const [key, entry] of Object.entries(value)) {\n const decodedKey = decodeTaggedString(key, JSON_KEY_PREFIX) ?? key;\n if (Object.prototype.hasOwnProperty.call(output, decodedKey)) {\n return { value, changed: false };\n }\n const decodedValue = decodeJsonValue(entry, depth + 1);\n defineJsonDataProperty(output, decodedKey, decodedValue.value);\n changed ||= decodedKey !== key || decodedValue.changed;\n }\n return changed ? { value: output, changed: true } : { value, changed: false };\n}\n\n/**\n * JSON permits own keys such as `__proto__`. Assignment into an ordinary `{}`\n * would invoke the inherited legacy setter and silently replace the object's\n * prototype instead of creating data. Define every transformed key explicitly\n * so encode/decode preserve hostile-but-valid JSON keys and property order.\n */\nfunction defineJsonDataProperty(\n target: Record<string, unknown>,\n key: string,\n value: unknown,\n): void {\n Object.defineProperty(target, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n}\n\nfunction encodeUtf16(value: string): string {\n const bytes = Buffer.allocUnsafe(value.length * 2);\n for (let index = 0; index < value.length; index += 1) {\n bytes.writeUInt16LE(value.charCodeAt(index), index * 2);\n }\n return bytes.toString(\"base64\");\n}\n\nfunction decodeTaggedString(value: string, prefix: string): string | null {\n if (!value.startsWith(prefix)) return null;\n const encoded = value.slice(prefix.length);\n if (encoded.length === 0 || !/^[A-Za-z0-9+/]+={0,2}$/.test(encoded)) return null;\n const bytes = Buffer.from(encoded, \"base64\");\n if (bytes.byteLength % 2 !== 0 || bytes.toString(\"base64\") !== encoded) return null;\n let decoded = \"\";\n for (let offset = 0; offset < bytes.byteLength; offset += 2) {\n decoded += String.fromCharCode(bytes.readUInt16LE(offset));\n }\n return decoded;\n}\n\nfunction isPostgresSafeString(value: string): boolean {\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n if (code === 0) return false;\n if (code >= 0xd800 && code <= 0xdbff) {\n const next = index + 1 < value.length ? value.charCodeAt(index + 1) : 0;\n if (next < 0xdc00 || next > 0xdfff) return false;\n index += 1;\n continue;\n }\n if (code >= 0xdc00 && code <= 0xdfff) return false;\n }\n return true;\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n","import { sql } from \"drizzle-orm\";\nimport {\n bigint,\n boolean,\n check,\n customType,\n index,\n integer,\n jsonb,\n pgTable,\n primaryKey,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\n// Tenant/workspace and cross-table foreign keys, FORCE-RLS policies, immutable\n// history guards, and deferred sequence/causal validation live in migration\n// 0184. This leaf intentionally does not import schema.ts, avoiding a cycle.\n\nconst bytea = customType<{ data: Uint8Array; driverData: Uint8Array }>({\n dataType: () => \"bytea\",\n});\n\nexport type EditableArtifactCausalFrontierRow = Array<{\n replicaId: string;\n counter: number;\n}>;\n\nexport type EditableArtifactOutboxEventRow = Record<string, unknown>;\nexport type EditableArtifactIdempotencyResultRow = Record<string, unknown>;\n\nfunction scopeColumns() {\n return {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n };\n}\n\nconst stableIdSql = (column: unknown) => sql`${column} ~ '^[0-9a-f]{32}$' and ${column} !~ '^0+$'`;\nconst replicaIdSql = (column: unknown) => sql`${column} ~ '^[0-9a-f]{16}$' and ${column} !~ '^0+$'`;\nconst sha256Sql = (column: unknown) => sql`${column} ~ '^sha256:[0-9a-f]{64}$'`;\n\n/** Local monotonic fence for workspace-scoped artifact creation policy. */\nexport const editableArtifactScopeAuthorizationHeads = pgTable(\n \"editable_artifact_scope_authorization_heads\",\n {\n ...scopeColumns(),\n createRevision: bigint(\"create_revision\", { mode: \"number\" }).notNull().default(1),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_scope_authorization_heads_pk\",\n columns: [table.accountId, table.workspaceId],\n }),\n revisionValid: check(\n \"editable_artifact_scope_authorization_heads_revision_chk\",\n sql`${table.createRevision} between 1 and 9007199254740991`,\n ),\n }),\n);\n\n/**\n * One-use live admission capabilities. The bearer token is never persisted;\n * only its digest is stored, and production access is through owner-defined\n * atomic routines rather than direct table grants.\n */\nexport const editableArtifactLiveTickets = pgTable(\n \"editable_artifact_live_tickets\",\n {\n tokenDigest: text(\"token_digest\").primaryKey(),\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n modality: text(\"modality\", {\n enum: [\"spreadsheet\", \"presentation\", \"document\"],\n }).notNull(),\n actorKind: text(\"actor_kind\", { enum: [\"human\", \"agent\", \"service\"] }).notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n replicaId: text(\"replica_id\").notNull(),\n agentSessionId: text(\"agent_session_id\"),\n agentTurnId: text(\"agent_turn_id\"),\n agentAttemptId: text(\"agent_attempt_id\"),\n agentGeneration: integer(\"agent_generation\"),\n serviceName: text(\"service_name\"),\n allowEdit: boolean(\"allow_edit\").notNull(),\n protocolVersion: integer(\"protocol_version\").notNull(),\n issuedAt: timestamp(\"issued_at\", { withTimezone: true }).notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n },\n (table) => ({\n expiry: index(\"editable_artifact_live_tickets_expiry_idx\").on(\n table.expiresAt,\n table.tokenDigest,\n ),\n digestValid: check(\"editable_artifact_live_tickets_digest_chk\", sha256Sql(table.tokenDigest)),\n identityValid: check(\n \"editable_artifact_live_tickets_identity_chk\",\n sql`${stableIdSql(table.artifactId)} and ${replicaIdSql(table.replicaId)}`,\n ),\n }),\n);\n\nexport const editableArtifacts = pgTable(\n \"editable_artifacts\",\n {\n ...scopeColumns(),\n id: text(\"id\").notNull(),\n modality: text(\"modality\", {\n enum: [\"spreadsheet\", \"presentation\", \"document\"],\n }).notNull(),\n title: text(\"title\").notNull(),\n lifecycleState: text(\"lifecycle_state\", { enum: [\"active\", \"archived\"] })\n .notNull()\n .default(\"active\"),\n authorizationRevision: bigint(\"authorization_revision\", { mode: \"number\" }).notNull(),\n headSequence: bigint(\"head_sequence\", { mode: \"number\" }).notNull().default(0),\n causalFrontier: jsonb(\"causal_frontier\").$type<EditableArtifactCausalFrontierRow>(),\n stateHash: text(\"state_hash\").notNull(),\n currentSnapshotId: text(\"current_snapshot_id\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifacts_pk\",\n columns: [table.accountId, table.workspaceId, table.id],\n }),\n workspaceTimeline: index(\"editable_artifacts_workspace_timeline_idx\").on(\n table.workspaceId,\n table.lifecycleState,\n table.updatedAt.desc(),\n table.id,\n ),\n identityValid: check(\"editable_artifacts_identity_chk\", stableIdSql(table.id)),\n authorizationRevisionValid: check(\n \"editable_artifacts_authorization_revision_chk\",\n sql`${table.authorizationRevision} between 1 and 9007199254740991`,\n ),\n headValid: check(\n \"editable_artifacts_head_chk\",\n sql`${table.headSequence} between 0 and 9007199254740991`,\n ),\n stateHashValid: check(\"editable_artifacts_state_hash_chk\", sha256Sql(table.stateHash)),\n modalityStateValid: check(\n \"editable_artifacts_modality_state_chk\",\n sql`(${table.modality} = 'spreadsheet' and jsonb_typeof(${table.causalFrontier}) = 'array')\n or (${table.modality} in ('document', 'presentation') and ${table.causalFrontier} is null)`,\n ),\n }),\n);\n\nexport const editableArtifactTransactions = pgTable(\n \"editable_artifact_transactions\",\n {\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n modality: text(\"modality\", {\n enum: [\"spreadsheet\", \"presentation\", \"document\"],\n }).notNull(),\n id: text(\"id\").notNull(),\n clientTransactionId: text(\"client_transaction_id\").notNull(),\n previousLocalTransactionId: text(\"previous_local_transaction_id\"),\n requestHash: text(\"request_hash\").notNull(),\n intentHash: text(\"intent_hash\").notNull(),\n intentEnvelopeVersion: integer(\"intent_envelope_version\").notNull(),\n intentProtocolVersion: integer(\"intent_protocol_version\").notNull(),\n commandProtocolVersion: integer(\"command_protocol_version\").notNull(),\n intentByteSize: integer(\"intent_byte_size\").notNull(),\n intentBytes: bytea(\"intent_bytes\").notNull(),\n parentHeadSequence: bigint(\"parent_head_sequence\", { mode: \"number\" }).notNull(),\n sequenceStart: bigint(\"sequence_start\", { mode: \"number\" }).notNull(),\n sequenceEnd: bigint(\"sequence_end\", { mode: \"number\" }).notNull(),\n priorStateHash: text(\"prior_state_hash\").notNull(),\n causalBase: jsonb(\"causal_base\").$type<EditableArtifactCausalFrontierRow>(),\n resolvedCausalBase: jsonb(\"resolved_causal_base\").$type<EditableArtifactCausalFrontierRow>(),\n resultingCausalFrontier: jsonb(\n \"resulting_causal_frontier\",\n ).$type<EditableArtifactCausalFrontierRow>(),\n selectiveUndoTargets: jsonb(\"selective_undo_targets\").$type<string[]>(),\n stateHash: text(\"state_hash\").notNull(),\n operationCount: integer(\"operation_count\"),\n operationIds: jsonb(\"operation_ids\").$type<string[]>(),\n actorKind: text(\"actor_kind\", { enum: [\"human\", \"agent\", \"service\"] }).notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n actorKey: text(\"actor_key\").notNull(),\n actorKeyDigest: bytea(\"actor_key_digest\").generatedAlwaysAs(\n sql`opengeni_private.editable_artifact_text_sha256(actor_key)`,\n ),\n replicaId: text(\"replica_id\").notNull(),\n replicaCounter: bigint(\"replica_counter\", { mode: \"number\" }).notNull(),\n agentSessionId: text(\"agent_session_id\"),\n agentTurnId: text(\"agent_turn_id\"),\n agentAttemptId: text(\"agent_attempt_id\"),\n agentGeneration: integer(\"agent_generation\"),\n serviceName: text(\"service_name\"),\n kernelVersion: text(\"kernel_version\").notNull(),\n modelSchemaVersion: integer(\"model_schema_version\").notNull(),\n operationProtocolVersion: integer(\"operation_protocol_version\"),\n commitProtocolVersion: integer(\"commit_protocol_version\"),\n priorNativeRevision: bigint(\"prior_native_revision\", { mode: \"number\" }),\n nativeRevision: bigint(\"native_revision\", { mode: \"number\" }),\n commandCount: integer(\"command_count\"),\n nativeReceiptByteSize: integer(\"native_receipt_byte_size\"),\n nativeReceiptHash: text(\"native_receipt_hash\"),\n nativeReceiptBytes: bytea(\"native_receipt_bytes\"),\n committedTransactionByteSize: integer(\"committed_transaction_byte_size\").notNull(),\n committedTransactionHash: text(\"committed_transaction_hash\").notNull(),\n committedTransactionBytes: bytea(\"committed_transaction_bytes\").notNull(),\n committedAt: timestamp(\"committed_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_transactions_pk\",\n columns: [table.accountId, table.workspaceId, table.artifactId, table.id],\n }),\n actorClientTransaction: uniqueIndex(\"editable_artifact_transactions_actor_client_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.actorKeyDigest,\n table.clientTransactionId,\n ),\n predecessorIdentity: uniqueIndex(\"editable_artifact_transactions_predecessor_identity_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.actorKeyDigest,\n table.replicaId,\n table.clientTransactionId,\n ),\n exactReceiptAuthority: uniqueIndex(\n \"editable_artifact_transactions_exact_receipt_authority_uq\",\n ).on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.id,\n table.actorKeyDigest,\n table.clientTransactionId,\n table.requestHash,\n ),\n replicaCounter: uniqueIndex(\"editable_artifact_transactions_replica_counter_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.replicaId,\n table.replicaCounter,\n ),\n sequence: uniqueIndex(\"editable_artifact_transactions_sequence_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.sequenceStart,\n table.sequenceEnd,\n ),\n replay: index(\"editable_artifact_transactions_replay_idx\").on(\n table.workspaceId,\n table.artifactId,\n table.sequenceStart,\n ),\n idValid: check(\"editable_artifact_transactions_id_chk\", stableIdSql(table.id)),\n replicaValid: check(\n \"editable_artifact_transactions_replica_chk\",\n replicaIdSql(table.replicaId),\n ),\n hashValid: check(\n \"editable_artifact_transactions_hash_chk\",\n sql`${sha256Sql(table.requestHash)} and ${sha256Sql(table.intentHash)}\n and ${table.intentHash} = ${table.requestHash}\n and ${table.intentEnvelopeVersion} = 1\n and ${table.intentProtocolVersion} = 1\n and ${table.intentByteSize} between 8 and 5242880\n and octet_length(${table.intentBytes}) = ${table.intentByteSize}\n and substring(${table.intentBytes} from 1 for 8) = convert_to('OGATX001', 'UTF8')\n and ${table.intentHash} = 'sha256:' || encode(sha256(${table.intentBytes}), 'hex')\n and ${sha256Sql(table.priorStateHash)}\n and ${sha256Sql(table.stateHash)}\n and ${sha256Sql(table.committedTransactionHash)}\n and ${table.parentHeadSequence} between 0 and 9007199254740991\n and ${table.sequenceStart} = ${table.parentHeadSequence} + 1\n and ${table.committedTransactionByteSize} between 1 and 8388608\n and octet_length(${table.committedTransactionBytes}) = ${table.committedTransactionByteSize}\n and ${table.committedTransactionHash} =\n 'sha256:' || encode(sha256(${table.committedTransactionBytes}), 'hex')\n and (\n (${table.modality} = 'spreadsheet'\n and ${table.modelSchemaVersion} = 2\n and ${table.commandProtocolVersion} = 2\n and ${table.operationCount} between 1 and 4096\n and ${table.sequenceEnd} = ${table.sequenceStart} + ${table.operationCount} - 1\n and jsonb_typeof(${table.causalBase}) = 'array'\n and jsonb_typeof(${table.resolvedCausalBase}) = 'array'\n and jsonb_typeof(${table.resultingCausalFrontier}) = 'array'\n and jsonb_typeof(${table.selectiveUndoTargets}) = 'array'\n and jsonb_typeof(${table.operationIds}) = 'array'\n and jsonb_array_length(${table.operationIds}) = ${table.operationCount}\n and ${table.operationProtocolVersion} = 2\n and ${table.commitProtocolVersion} is null\n and ${table.priorNativeRevision} is null\n and ${table.nativeRevision} is null\n and ${table.commandCount} is null\n and ${table.nativeReceiptByteSize} is null\n and ${table.nativeReceiptHash} is null\n and ${table.nativeReceiptBytes} is null\n and substring(${table.committedTransactionBytes} from 1 for 8) = convert_to('OGACO002', 'UTF8'))\n or\n (${table.modality} in ('document', 'presentation')\n and ${table.modelSchemaVersion} = 1\n and ${table.commandProtocolVersion} = 1\n and ${table.sequenceEnd} = ${table.sequenceStart}\n and ${table.causalBase} is null\n and ${table.resolvedCausalBase} is null\n and ${table.resultingCausalFrontier} is null\n and ${table.selectiveUndoTargets} is null\n and ${table.operationCount} is null\n and ${table.operationIds} is null\n and ${table.operationProtocolVersion} is null\n and ${table.commitProtocolVersion} = 1\n and ${table.priorNativeRevision} between 0 and 9007199254740991\n and ((${table.modality} = 'document' and (\n (${table.nativeRevision} = ${table.priorNativeRevision}\n and ${table.stateHash} = ${table.priorStateHash})\n or (${table.nativeRevision} = ${table.priorNativeRevision} + 1\n and ${table.stateHash} <> ${table.priorStateHash})\n )) or (${table.modality} = 'presentation'\n and ${table.nativeRevision} = ${table.priorNativeRevision} + 1\n and ${table.stateHash} <> ${table.priorStateHash}))\n and ${table.commandCount} between 1 and 4096\n and ${table.nativeReceiptByteSize} between 1 and 524288\n and octet_length(${table.nativeReceiptBytes}) = ${table.nativeReceiptByteSize}\n and ${sha256Sql(table.nativeReceiptHash)}\n and ${table.nativeReceiptHash} = 'sha256:' || encode(sha256(${table.nativeReceiptBytes}), 'hex')\n and substring(${table.committedTransactionBytes} from 1 for 8) = convert_to('OGAST001', 'UTF8')\n and get_byte(${table.committedTransactionBytes}, 12) =\n case ${table.modality} when 'document' then 1 else 2 end\n and get_byte(${table.committedTransactionBytes}, 13) = 0\n and get_byte(${table.committedTransactionBytes}, 14) = 0\n and get_byte(${table.committedTransactionBytes}, 15) = 0\n and substring(${table.nativeReceiptBytes} from 1 for 8) = convert_to(\n case ${table.modality} when 'document' then 'OGADR001' else 'OGAPR001' end,\n 'UTF8'\n ))\n )`,\n ),\n }),\n);\n\nexport const editableArtifactOperations = pgTable(\n \"editable_artifact_operations\",\n {\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n transactionId: text(\"transaction_id\").notNull(),\n operationId: text(\"operation_id\").notNull(),\n operationIndex: integer(\"operation_index\").notNull(),\n sequence: bigint(\"sequence\", { mode: \"number\" }).notNull(),\n dotReplicaId: text(\"dot_replica_id\").notNull(),\n dotCounter: bigint(\"dot_counter\", { mode: \"number\" }).notNull(),\n actorKey: text(\"actor_key\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_operations_pk\",\n columns: [\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.transactionId,\n table.operationIndex,\n ],\n }),\n operationLookup: uniqueIndex(\"editable_artifact_operations_operation_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.operationId,\n ),\n replay: uniqueIndex(\"editable_artifact_operations_sequence_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.sequence,\n ),\n dotOperation: uniqueIndex(\"editable_artifact_operations_dot_operation_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.dotReplicaId,\n table.dotCounter,\n table.operationIndex,\n ),\n idsValid: check(\n \"editable_artifact_operations_ids_chk\",\n sql`${stableIdSql(table.transactionId)} and ${stableIdSql(table.operationId)}`,\n ),\n dotValid: check(\n \"editable_artifact_operations_dot_chk\",\n sql`${replicaIdSql(table.dotReplicaId)} and ${table.dotCounter} > 0`,\n ),\n positionValid: check(\n \"editable_artifact_operations_position_chk\",\n sql`${table.operationIndex} between 0 and 4095\n and ${table.sequence} between 1 and 9007199254740991`,\n ),\n }),\n);\n\nexport const editableArtifactIdempotencyReceipts = pgTable(\n \"editable_artifact_idempotency_receipts\",\n {\n ...scopeColumns(),\n id: text(\"id\").notNull(),\n artifactId: text(\"artifact_id\").notNull(),\n operationKind: text(\"operation_kind\", {\n enum: [\"create\", \"import\", \"edit\", \"snapshot\", \"version\", \"materialize\"],\n }).notNull(),\n authorityKey: text(\"authority_key\").notNull(),\n authorityKeyDigest: bytea(\"authority_key_digest\").generatedAlwaysAs(\n sql`opengeni_private.editable_artifact_text_sha256(authority_key)`,\n ),\n idempotencyKey: text(\"idempotency_key\").notNull(),\n requestHash: text(\"request_hash\").notNull(),\n resourceType: text(\"resource_type\", {\n enum: [\"artifact\", \"transaction\", \"snapshot\", \"artifact_version\", \"materialization_job\"],\n }).notNull(),\n resourceId: text(\"resource_id\").notNull(),\n serverTransactionId: text(\"server_transaction_id\"),\n result: jsonb(\"result\").$type<EditableArtifactIdempotencyResultRow>().notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_idempotency_receipts_pk\",\n columns: [table.accountId, table.workspaceId, table.id],\n }),\n creationRequest: uniqueIndex(\"editable_artifact_idempotency_receipts_creation_request_uq\")\n .on(\n table.accountId,\n table.workspaceId,\n table.operationKind,\n table.authorityKeyDigest,\n table.idempotencyKey,\n )\n .where(sql`${table.operationKind} in ('create', 'import')`),\n artifactRequest: uniqueIndex(\"editable_artifact_idempotency_receipts_artifact_request_uq\")\n .on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.operationKind,\n table.authorityKeyDigest,\n table.idempotencyKey,\n )\n .where(sql`${table.operationKind} in ('edit', 'snapshot', 'version', 'materialize')`),\n origin: uniqueIndex(\"editable_artifact_idempotency_receipts_origin_uq\")\n .on(table.accountId, table.workspaceId, table.artifactId)\n .where(\n sql`${table.operationKind} in ('create', 'import') and ${table.resourceType} = 'artifact'`,\n ),\n artifactTransaction: index(\"editable_artifact_idempotency_receipts_transaction_idx\").on(\n table.workspaceId,\n table.artifactId,\n table.serverTransactionId,\n ),\n valid: check(\n \"editable_artifact_idempotency_receipts_valid_chk\",\n sql`${stableIdSql(table.id)} and ${sha256Sql(table.requestHash)}`,\n ),\n }),\n);\n\nexport const editableArtifactUndoClaims = pgTable(\n \"editable_artifact_undo_claims\",\n {\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n targetOperationId: text(\"target_operation_id\").notNull(),\n claimingTransactionId: text(\"claiming_transaction_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_undo_claims_pk\",\n columns: [table.accountId, table.workspaceId, table.artifactId, table.targetOperationId],\n }),\n transaction: index(\"editable_artifact_undo_claims_transaction_idx\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.claimingTransactionId,\n table.targetOperationId,\n ),\n valid: check(\n \"editable_artifact_undo_claims_ids_chk\",\n sql`${stableIdSql(table.targetOperationId)} and ${stableIdSql(table.claimingTransactionId)}`,\n ),\n }),\n);\n\nexport const editableArtifactSequenceCheckpoints = pgTable(\n \"editable_artifact_sequence_checkpoints\",\n {\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n modality: text(\"modality\", {\n enum: [\"spreadsheet\", \"presentation\", \"document\"],\n }).notNull(),\n headSequence: bigint(\"head_sequence\", { mode: \"number\" }).notNull(),\n transactionId: text(\"transaction_id\"),\n causalFrontier: jsonb(\"causal_frontier\").$type<EditableArtifactCausalFrontierRow>(),\n nativeRevision: bigint(\"native_revision\", { mode: \"number\" }),\n stateHash: text(\"state_hash\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_sequence_checkpoints_pk\",\n columns: [table.accountId, table.workspaceId, table.artifactId, table.headSequence],\n }),\n transaction: uniqueIndex(\"editable_artifact_sequence_checkpoints_transaction_uq\")\n .on(table.accountId, table.workspaceId, table.artifactId, table.transactionId)\n .where(sql`${table.transactionId} is not null`),\n hashValid: check(\n \"editable_artifact_sequence_checkpoints_hash_chk\",\n sql`${sha256Sql(table.stateHash)} and (\n (${table.modality} = 'spreadsheet' and jsonb_typeof(${table.causalFrontier}) = 'array'\n and ${table.nativeRevision} is null)\n or (${table.modality} in ('document', 'presentation') and ${table.causalFrontier} is null\n and ${table.nativeRevision} between 0 and 9007199254740991)\n )`,\n ),\n }),\n);\n\nexport const editableArtifactBlobRefs = pgTable(\n \"editable_artifact_blob_refs\",\n {\n ...scopeColumns(),\n id: text(\"id\").notNull(),\n artifactId: text(\"artifact_id\").notNull(),\n kind: text(\"kind\", {\n enum: [\"snapshot\", \"original_import\", \"media\", \"loss_envelope\", \"materialization\"],\n }).notNull(),\n objectReference: text(\"object_reference\").notNull(),\n byteSize: bigint(\"byte_size\", { mode: \"number\" }).notNull(),\n contentHash: text(\"content_hash\").notNull(),\n mimeType: text(\"mime_type\").notNull(),\n sourceFileId: uuid(\"source_file_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_blob_refs_pk\",\n columns: [table.accountId, table.workspaceId, table.artifactId, table.id],\n }),\n content: uniqueIndex(\"editable_artifact_blob_refs_content_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.kind,\n table.contentHash,\n ),\n exactFacts: uniqueIndex(\"editable_artifact_blob_refs_exact_facts_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.id,\n table.byteSize,\n table.contentHash,\n table.mimeType,\n ),\n hashValid: check(\"editable_artifact_blob_refs_hash_chk\", sha256Sql(table.contentHash)),\n sourceKindValid: check(\n \"editable_artifact_blob_refs_source_kind_chk\",\n sql`(${table.kind} = 'original_import') = (${table.sourceFileId} is not null)`,\n ),\n }),\n);\n\nexport const editableArtifactSnapshots = pgTable(\n \"editable_artifact_snapshots\",\n {\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n modality: text(\"modality\", {\n enum: [\"spreadsheet\", \"presentation\", \"document\"],\n }).notNull(),\n id: text(\"id\").notNull(),\n blobRefId: text(\"blob_ref_id\").notNull(),\n byteSize: bigint(\"byte_size\", { mode: \"number\" }).notNull(),\n contentHash: text(\"content_hash\").notNull(),\n mimeType: text(\"mime_type\")\n .notNull()\n .default(\"application/vnd.opengeni.editable-artifact-snapshot\"),\n coveredHeadSequence: bigint(\"covered_head_sequence\", { mode: \"number\" }).notNull(),\n coveredCausalFrontier:\n jsonb(\"covered_causal_frontier\").$type<EditableArtifactCausalFrontierRow>(),\n stateHash: text(\"state_hash\").notNull(),\n modelSchemaVersion: integer(\"model_schema_version\").notNull(),\n operationProtocolVersion: integer(\"operation_protocol_version\"),\n kernelVersion: text(\"kernel_version\").notNull(),\n crdtStateVersion: integer(\"crdt_state_version\"),\n nativeRevision: bigint(\"native_revision\", { mode: \"number\" }),\n verifiedAt: timestamp(\"verified_at\", { withTimezone: true }).notNull(),\n publishedAt: timestamp(\"published_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_snapshots_pk\",\n columns: [table.accountId, table.workspaceId, table.artifactId, table.id],\n }),\n content: uniqueIndex(\"editable_artifact_snapshots_content_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.contentHash,\n table.coveredHeadSequence,\n ),\n sourceManifest: uniqueIndex(\"editable_artifact_snapshots_source_manifest_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.id,\n table.coveredHeadSequence,\n table.stateHash,\n ),\n coverage: index(\"editable_artifact_snapshots_coverage_idx\").on(\n table.workspaceId,\n table.artifactId,\n table.coveredHeadSequence.desc(),\n ),\n valid: check(\n \"editable_artifact_snapshots_valid_chk\",\n sql`${stableIdSql(table.id)} and ${sha256Sql(table.contentHash)} and ${sha256Sql(table.stateHash)}\n and (\n (${table.modality} = 'spreadsheet'\n and ${table.modelSchemaVersion} = 2\n and jsonb_typeof(${table.coveredCausalFrontier}) = 'array'\n and ${table.operationProtocolVersion} = 2\n and ${table.crdtStateVersion} = 2\n and ${table.nativeRevision} is null)\n or (${table.modality} in ('document', 'presentation')\n and ${table.modelSchemaVersion} = 1\n and ${table.coveredCausalFrontier} is null\n and ${table.operationProtocolVersion} is null\n and ${table.crdtStateVersion} is null\n and ${table.nativeRevision} between 0 and 9007199254740991)\n )`,\n ),\n }),\n);\n\nexport const editableArtifactVersions = pgTable(\n \"editable_artifact_versions\",\n {\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n id: text(\"id\").notNull(),\n snapshotId: text(\"snapshot_id\"),\n headSequence: bigint(\"head_sequence\", { mode: \"number\" }).notNull(),\n causalFrontier: jsonb(\"causal_frontier\").$type<EditableArtifactCausalFrontierRow>(),\n nativeRevision: bigint(\"native_revision\", { mode: \"number\" }),\n stateHash: text(\"state_hash\").notNull(),\n name: text(\"name\").notNull(),\n pinned: boolean(\"pinned\").notNull().default(true),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_versions_pk\",\n columns: [table.accountId, table.workspaceId, table.artifactId, table.id],\n }),\n timeline: index(\"editable_artifact_versions_timeline_idx\").on(\n table.workspaceId,\n table.artifactId,\n table.createdAt.desc(),\n table.id,\n ),\n valid: check(\n \"editable_artifact_versions_valid_chk\",\n sql`${stableIdSql(table.id)} and ${sha256Sql(table.stateHash)}\n and ((${table.causalFrontier} is not null and ${table.nativeRevision} is null)\n or (${table.causalFrontier} is null\n and ${table.nativeRevision} between 0 and 9007199254740991))`,\n ),\n }),\n);\n\nexport const editableArtifactMaterializationJobs = pgTable(\n \"editable_artifact_materialization_jobs\",\n {\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n id: text(\"id\").notNull(),\n versionId: text(\"version_id\"),\n inputSnapshotId: text(\"input_snapshot_id\").notNull(),\n targetHeadSequence: bigint(\"target_head_sequence\", { mode: \"number\" }).notNull(),\n stateHash: text(\"state_hash\").notNull(),\n format: text(\"format\", { enum: [\"xlsx\", \"pptx\", \"docx\", \"pdf\", \"png\", \"webp\"] }).notNull(),\n normalizedOptions: text(\"normalized_options\").notNull(),\n optionsHash: text(\"options_hash\").generatedAlwaysAs(\n sql`'sha256:' || encode(\n opengeni_private.editable_artifact_text_sha256(normalized_options), 'hex'\n )`,\n ),\n codecId: text(\"codec_id\").notNull(),\n codecVersion: text(\"codec_version\").notNull(),\n kernelVersion: text(\"kernel_version\").notNull(),\n fontRegistryHash: text(\"font_registry_hash\").notNull(),\n policyHash: text(\"policy_hash\").notNull(),\n state: text(\"state\", { enum: [\"pending\", \"running\", \"succeeded\", \"failed\"] })\n .notNull()\n .default(\"pending\"),\n attemptCount: integer(\"attempt_count\").notNull().default(0),\n leaseOwner: text(\"lease_owner\"),\n leaseExpiresAt: timestamp(\"lease_expires_at\", { withTimezone: true }),\n settledByOwner: text(\"settled_by_owner\"),\n errorCode: text(\"error_code\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n startedAt: timestamp(\"started_at\", { withTimezone: true }),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_materialization_jobs_pk\",\n columns: [table.accountId, table.workspaceId, table.artifactId, table.id],\n }),\n cache: uniqueIndex(\"editable_artifact_materialization_jobs_cache_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.inputSnapshotId,\n table.stateHash,\n table.format,\n table.optionsHash,\n table.codecId,\n table.codecVersion,\n table.kernelVersion,\n table.fontRegistryHash,\n table.policyHash,\n ),\n claim: index(\"editable_artifact_materialization_jobs_claim_idx\")\n .on(\n sql`coalesce(${table.leaseExpiresAt}, ${table.createdAt})`,\n table.createdAt,\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.id,\n )\n .where(sql`${table.state} in ('pending', 'running')`),\n valid: check(\n \"editable_artifact_materialization_jobs_valid_chk\",\n sql`${stableIdSql(table.id)} and ${sha256Sql(table.stateHash)}\n and ${sha256Sql(table.optionsHash)} and ${sha256Sql(table.fontRegistryHash)}\n and ${sha256Sql(table.policyHash)} and ${stableIdSql(table.inputSnapshotId)}`,\n ),\n }),\n);\n\nexport const editableArtifactMaterializationResults = pgTable(\n \"editable_artifact_materialization_results\",\n {\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n id: text(\"id\").notNull(),\n jobId: text(\"job_id\").notNull(),\n blobRefId: text(\"blob_ref_id\").notNull(),\n byteSize: bigint(\"byte_size\", { mode: \"number\" }).notNull(),\n contentHash: text(\"content_hash\").notNull(),\n mimeType: text(\"mime_type\").notNull(),\n verifiedAt: timestamp(\"verified_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_materialization_results_pk\",\n columns: [table.accountId, table.workspaceId, table.artifactId, table.id],\n }),\n job: uniqueIndex(\"editable_artifact_materialization_results_job_uq\").on(\n table.accountId,\n table.workspaceId,\n table.artifactId,\n table.jobId,\n ),\n valid: check(\n \"editable_artifact_materialization_results_valid_chk\",\n sql`${stableIdSql(table.id)} and ${sha256Sql(table.contentHash)}`,\n ),\n }),\n);\n\nexport const editableArtifactLiveOutbox = pgTable(\n \"editable_artifact_live_outbox\",\n {\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n id: text(\"id\").notNull(),\n transactionId: text(\"transaction_id\"),\n snapshotId: text(\"snapshot_id\"),\n eventKind: text(\"event_kind\", {\n enum: [\"transaction_committed\", \"snapshot_published\"],\n }).notNull(),\n event: jsonb(\"event\").$type<EditableArtifactOutboxEventRow>().notNull(),\n state: text(\"state\", {\n enum: [\"pending\", \"publishing\", \"published\", \"dead_lettered\"],\n })\n .notNull()\n .default(\"pending\"),\n attemptCount: integer(\"attempt_count\").notNull().default(0),\n leaseOwner: text(\"lease_owner\"),\n leaseExpiresAt: timestamp(\"lease_expires_at\", { withTimezone: true }),\n nextAttemptAt: timestamp(\"next_attempt_at\", { withTimezone: true }).notNull().defaultNow(),\n lastErrorCode: text(\"last_error_code\"),\n publishedAt: timestamp(\"published_at\", { withTimezone: true }),\n deadLetteredAt: timestamp(\"dead_lettered_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_live_outbox_pk\",\n columns: [table.accountId, table.workspaceId, table.artifactId, table.id],\n }),\n globalId: uniqueIndex(\"editable_artifact_live_outbox_id_uq\").on(table.id),\n transaction: uniqueIndex(\"editable_artifact_live_outbox_transaction_uq\")\n .on(table.accountId, table.workspaceId, table.artifactId, table.transactionId)\n .where(sql`${table.eventKind} = 'transaction_committed'`),\n snapshot: uniqueIndex(\"editable_artifact_live_outbox_snapshot_uq\")\n .on(table.accountId, table.workspaceId, table.artifactId, table.snapshotId)\n .where(sql`${table.eventKind} = 'snapshot_published'`),\n pendingClaim: index(\"editable_artifact_live_outbox_pending_claim_idx\")\n .on(table.nextAttemptAt, table.createdAt, table.id)\n .where(sql`${table.state} = 'pending'`),\n publishingClaim: index(\"editable_artifact_live_outbox_publishing_claim_idx\")\n .on(table.leaseExpiresAt, table.createdAt, table.id)\n .where(sql`${table.state} = 'publishing'`),\n valid: check(\"editable_artifact_live_outbox_id_chk\", stableIdSql(table.id)),\n }),\n);\n\nexport const editableArtifactReplicaLeases = pgTable(\n \"editable_artifact_replica_leases\",\n {\n ...scopeColumns(),\n artifactId: text(\"artifact_id\").notNull(),\n modality: text(\"modality\", {\n enum: [\"spreadsheet\", \"presentation\", \"document\"],\n }).notNull(),\n replicaId: text(\"replica_id\").notNull(),\n actorKey: text(\"actor_key\").notNull(),\n appliedHeadSequence: bigint(\"applied_head_sequence\", { mode: \"number\" }).notNull(),\n causalFrontier: jsonb(\"causal_frontier\").$type<EditableArtifactCausalFrontierRow>(),\n nativeRevision: bigint(\"native_revision\", { mode: \"number\" }),\n leaseExpiresAt: timestamp(\"lease_expires_at\", { withTimezone: true }).notNull(),\n lastSeenAt: timestamp(\"last_seen_at\", { withTimezone: true }).notNull().defaultNow(),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"editable_artifact_replica_leases_pk\",\n columns: [table.accountId, table.workspaceId, table.artifactId, table.replicaId],\n }),\n expiry: index(\"editable_artifact_replica_leases_expiry_idx\")\n .on(table.leaseExpiresAt, table.replicaId)\n .where(sql`${table.revokedAt} is null`),\n replicaValid: check(\n \"editable_artifact_replica_leases_replica_chk\",\n sql`${replicaIdSql(table.replicaId)} and (\n (${table.modality} = 'spreadsheet'\n and jsonb_typeof(${table.causalFrontier}) = 'array'\n and ${table.nativeRevision} is null)\n or (${table.modality} in ('document', 'presentation')\n and ${table.causalFrontier} is null\n and ${table.nativeRevision} between 0 and 9007199254740991)\n )`,\n ),\n }),\n);\n","import {\n bigint,\n index,\n integer,\n jsonb,\n pgTable,\n primaryKey,\n text,\n timestamp,\n unique,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\nimport { sql } from \"drizzle-orm\";\n\nexport const managedAuthBrowserInstallations = pgTable(\"managed_auth_browser_installations\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n authorityHash: text(\"authority_hash\").notNull().unique(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n lastSeenAt: timestamp(\"last_seen_at\", { withTimezone: true }).notNull().defaultNow(),\n idleExpiresAt: timestamp(\"idle_expires_at\", { withTimezone: true }).notNull(),\n absoluteExpiresAt: timestamp(\"absolute_expires_at\", { withTimezone: true }).notNull(),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n});\n\nexport const managedAuthSessionSets = pgTable(\"managed_auth_session_sets\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n installationId: uuid(\"installation_id\").notNull().unique(),\n authorityHash: text(\"authority_hash\").notNull().unique(),\n csrfHash: text(\"csrf_hash\").notNull(),\n generation: bigint(\"generation\", { mode: \"number\" }).notNull().default(1),\n actorEpoch: bigint(\"actor_epoch\", { mode: \"number\" }).notNull().default(1),\n selectedSlotId: uuid(\"selected_slot_id\"),\n state: text(\"state\").notNull().default(\"ready\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n idleExpiresAt: timestamp(\"idle_expires_at\", { withTimezone: true }).notNull(),\n absoluteExpiresAt: timestamp(\"absolute_expires_at\", { withTimezone: true }).notNull(),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n});\n\nexport const managedAuthLoginSlots = pgTable(\n \"managed_auth_login_slots\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n sessionSetId: uuid(\"session_set_id\").notNull(),\n authSessionId: text(\"auth_session_id\"),\n authUserId: text(\"auth_user_id\").notNull(),\n identityId: uuid(\"identity_id\").notNull(),\n loginBindingId: uuid(\"login_binding_id\").notNull(),\n identityRevision: bigint(\"identity_revision\", { mode: \"number\" }).notNull(),\n authRevision: bigint(\"auth_revision\", { mode: \"number\" }).notNull(),\n loginBindingRevision: bigint(\"login_binding_revision\", { mode: \"number\" }).notNull(),\n displayName: text(\"display_name\").notNull(),\n verifiedEmail: text(\"verified_email\").notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n revokedAt: timestamp(\"revoked_at\", { withTimezone: true }),\n },\n (table) => ({\n idSet: unique(\"managed_auth_login_slots_id_set_unique\").on(table.id, table.sessionSetId),\n liveBinding: uniqueIndex(\"managed_auth_login_slots_live_binding_idx\")\n .on(table.sessionSetId, table.loginBindingId)\n .where(sql`${table.status} <> 'revoked'`),\n liveSession: uniqueIndex(\"managed_auth_login_slots_live_session_idx\")\n .on(table.authSessionId)\n .where(sql`${table.authSessionId} is not null and ${table.status} <> 'revoked'`),\n setStatus: index(\"managed_auth_login_slots_set_status_idx\").on(\n table.sessionSetId,\n table.status,\n table.createdAt,\n table.id,\n ),\n }),\n);\n\nexport const managedAuthLoginReturnIntents = pgTable(\"managed_auth_login_return_intents\", {\n id: uuid(\"id\").primaryKey(),\n sessionSetId: uuid(\"session_set_id\").notNull(),\n path: text(\"path\").notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n consumedAt: timestamp(\"consumed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n});\n\nexport const managedAuthLoginTransactions = pgTable(\n \"managed_auth_login_transactions\",\n {\n id: uuid(\"id\").primaryKey(),\n sessionSetId: uuid(\"session_set_id\").notNull(),\n secretHash: text(\"secret_hash\").notNull(),\n kind: text(\"kind\").notNull(),\n targetSlotId: uuid(\"target_slot_id\"),\n expectedIdentityId: uuid(\"expected_identity_id\"),\n expectedLoginBindingId: uuid(\"expected_login_binding_id\"),\n expectedIdentityRevision: bigint(\"expected_identity_revision\", { mode: \"number\" }),\n expectedAuthRevision: bigint(\"expected_auth_revision\", { mode: \"number\" }),\n expectedLoginBindingRevision: bigint(\"expected_login_binding_revision\", { mode: \"number\" }),\n expectedGeneration: bigint(\"expected_generation\", { mode: \"number\" }).notNull(),\n returnIntentId: uuid(\"return_intent_id\"),\n status: text(\"status\").notNull().default(\"pending\"),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n consumedAt: timestamp(\"consumed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n setStatus: index(\"managed_auth_login_transactions_set_status_idx\").on(\n table.sessionSetId,\n table.status,\n table.expiresAt,\n ),\n }),\n);\n\nexport const managedAuthSessionSetOperations = pgTable(\n \"managed_auth_session_set_operations\",\n {\n operationId: uuid(\"operation_id\").primaryKey(),\n sessionSetId: uuid(\"session_set_id\").notNull(),\n operationType: text(\"operation_type\").notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n expectedGeneration: bigint(\"expected_generation\", { mode: \"number\" }).notNull(),\n resultGeneration: bigint(\"result_generation\", { mode: \"number\" }).notNull(),\n resultActorEpoch: bigint(\"result_actor_epoch\", { mode: \"number\" }).notNull(),\n targetSlotId: uuid(\"target_slot_id\"),\n replacementSlotId: uuid(\"replacement_slot_id\"),\n outcome: text(\"outcome\").notNull(),\n result: jsonb(\"result\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n setCreated: index(\"managed_auth_session_set_operations_set_created_idx\").on(\n table.sessionSetId,\n table.createdAt,\n table.operationId,\n ),\n }),\n);\n\nexport const managedAuthActorMutationLeases = pgTable(\n \"managed_auth_actor_mutation_leases\",\n {\n sessionSetId: uuid(\"session_set_id\").notNull(),\n requestId: uuid(\"request_id\").notNull(),\n actorEpoch: bigint(\"actor_epoch\", { mode: \"number\" }).notNull(),\n acquiredAt: timestamp(\"acquired_at\", { withTimezone: true }).notNull().defaultNow(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n },\n (table) => ({\n primaryKey: primaryKey({ columns: [table.sessionSetId, table.requestId] }),\n expiry: index(\"managed_auth_actor_mutation_leases_expiry_idx\").on(\n table.expiresAt,\n table.sessionSetId,\n ),\n }),\n);\n\nexport const managedAuthLoginTransactionRateLimits = pgTable(\n \"managed_auth_login_transaction_rate_limits\",\n {\n scopeKind: text(\"scope_kind\").notNull(),\n scopeHash: text(\"scope_hash\").notNull(),\n windowStartedAt: timestamp(\"window_started_at\", { withTimezone: true }).notNull(),\n attemptCount: integer(\"attempt_count\").notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n },\n (table) => ({\n primaryKey: primaryKey({ columns: [table.scopeKind, table.scopeHash] }),\n expiry: index(\"managed_auth_login_transaction_rate_limits_expiry_idx\").on(\n table.expiresAt,\n table.scopeKind,\n table.scopeHash,\n ),\n }),\n);\n","import {\n bigint,\n boolean,\n index,\n integer,\n jsonb,\n pgTable,\n primaryKey,\n text,\n timestamp,\n unique,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\nimport { sql } from \"drizzle-orm\";\n\nexport const organizationRecoveryPolicies = pgTable(\n \"organization_recovery_policies\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull(),\n configuredByMembershipId: uuid(\"configured_by_membership_id\").notNull(),\n configuredByIdentityId: uuid(\"configured_by_identity_id\").notNull(),\n configuredAt: timestamp(\"configured_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n idAccount: unique(\"organization_recovery_policies_id_account_unique\").on(\n table.id,\n table.accountId,\n ),\n accountRevision: unique(\"organization_recovery_policies_account_revision_unique\").on(\n table.accountId,\n table.revision,\n ),\n }),\n);\n\nexport const organizationRecoveryPolicyHeads = pgTable(\"organization_recovery_policy_heads\", {\n accountId: uuid(\"account_id\").primaryKey(),\n currentPolicyId: uuid(\"current_policy_id\").notNull().unique(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull(),\n enabled: boolean(\"enabled\").notNull().default(true),\n activatedAt: timestamp(\"activated_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n});\n\nexport const organizationRecoveryCustodians = pgTable(\n \"organization_recovery_custodians\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n policyId: uuid(\"policy_id\").notNull(),\n ordinal: integer(\"ordinal\").notNull(),\n membershipId: uuid(\"membership_id\").notNull(),\n canonicalIdentityId: uuid(\"canonical_identity_id\").notNull(),\n enrolledAt: timestamp(\"enrolled_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n policyOrdinal: unique(\"organization_recovery_custodians_policy_ordinal_unique\").on(\n table.policyId,\n table.ordinal,\n ),\n policyMembership: unique(\"organization_recovery_custodians_policy_membership_unique\").on(\n table.policyId,\n table.membershipId,\n ),\n policyIdentity: unique(\"organization_recovery_custodians_policy_identity_unique\").on(\n table.policyId,\n table.canonicalIdentityId,\n ),\n accountPolicy: index(\"organization_recovery_custodians_account_policy_idx\").on(\n table.accountId,\n table.policyId,\n table.ordinal,\n ),\n }),\n);\n\nexport const organizationRecoveryCustodianAcceptances = pgTable(\n \"organization_recovery_custodian_acceptances\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n policyId: uuid(\"policy_id\").notNull(),\n custodianId: uuid(\"custodian_id\").notNull(),\n membershipId: uuid(\"membership_id\").notNull(),\n canonicalIdentityId: uuid(\"canonical_identity_id\").notNull(),\n authUserId: text(\"auth_user_id\").notNull(),\n loginBindingId: uuid(\"login_binding_id\").notNull(),\n membershipAuthorizationRevision: bigint(\"membership_authorization_revision\", {\n mode: \"number\",\n }).notNull(),\n identityRevision: bigint(\"identity_revision\", { mode: \"number\" }).notNull(),\n authRevision: bigint(\"auth_revision\", { mode: \"number\" }).notNull(),\n subjectRevision: bigint(\"subject_revision\", { mode: \"number\" }).notNull(),\n loginBindingRevision: bigint(\"login_binding_revision\", { mode: \"number\" }).notNull(),\n reauthOperationId: uuid(\"reauth_operation_id\").notNull(),\n acceptedAt: timestamp(\"accepted_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n current: index(\"organization_recovery_acceptances_current_idx\").on(\n table.policyId,\n table.canonicalIdentityId,\n table.acceptedAt,\n table.id,\n ),\n }),\n);\n\nexport const organizationRecoveryOperations = pgTable(\n \"organization_recovery_operations\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n policyId: uuid(\"policy_id\").notNull(),\n policyRevision: bigint(\"policy_revision\", { mode: \"number\" }).notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull().default(1),\n state: text(\"state\").notNull().default(\"collecting\"),\n targetMembershipId: uuid(\"target_membership_id\").notNull(),\n targetIdentityId: uuid(\"target_identity_id\").notNull(),\n targetAuthUserId: text(\"target_auth_user_id\").notNull(),\n targetMembershipAuthorizationRevision: bigint(\"target_membership_authorization_revision\", {\n mode: \"number\",\n }).notNull(),\n targetIdentityRevision: bigint(\"target_identity_revision\", { mode: \"number\" }).notNull(),\n targetAuthRevision: bigint(\"target_auth_revision\", { mode: \"number\" }).notNull(),\n targetSubjectRevision: bigint(\"target_subject_revision\", { mode: \"number\" }).notNull(),\n startedByCustodianId: uuid(\"started_by_custodian_id\").notNull(),\n startedByIdentityId: uuid(\"started_by_identity_id\").notNull(),\n quorumAt: timestamp(\"quorum_at\", { withTimezone: true }),\n executableAt: timestamp(\"executable_at\", { withTimezone: true }),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n notificationBatchId: uuid(\"notification_batch_id\"),\n notificationCount: integer(\"notification_count\"),\n notificationDigest: text(\"notification_digest\"),\n executedAt: timestamp(\"executed_at\", { withTimezone: true }),\n cancelledAt: timestamp(\"cancelled_at\", { withTimezone: true }),\n supersededAt: timestamp(\"superseded_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n oneLive: uniqueIndex(\"organization_recovery_operations_one_live_idx\")\n .on(table.accountId)\n .where(sql`${table.state} in ('collecting', 'cooling')`),\n accountCreated: index(\"organization_recovery_operations_account_created_idx\").on(\n table.accountId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n\nexport const organizationRecoveryApprovals = pgTable(\n \"organization_recovery_approvals\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n operationRevision: bigint(\"operation_revision\", { mode: \"number\" }).notNull(),\n policyId: uuid(\"policy_id\").notNull(),\n custodianId: uuid(\"custodian_id\").notNull(),\n membershipId: uuid(\"membership_id\").notNull(),\n canonicalIdentityId: uuid(\"canonical_identity_id\").notNull(),\n authUserId: text(\"auth_user_id\").notNull(),\n loginBindingId: uuid(\"login_binding_id\").notNull(),\n membershipAuthorizationRevision: bigint(\"membership_authorization_revision\", {\n mode: \"number\",\n }).notNull(),\n identityRevision: bigint(\"identity_revision\", { mode: \"number\" }).notNull(),\n authRevision: bigint(\"auth_revision\", { mode: \"number\" }).notNull(),\n subjectRevision: bigint(\"subject_revision\", { mode: \"number\" }).notNull(),\n loginBindingRevision: bigint(\"login_binding_revision\", { mode: \"number\" }).notNull(),\n custodianAcceptanceId: uuid(\"custodian_acceptance_id\").notNull(),\n reauthOperationId: uuid(\"reauth_operation_id\").notNull(),\n approvedAt: timestamp(\"approved_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n current: index(\"organization_recovery_approvals_current_idx\").on(\n table.operationId,\n table.canonicalIdentityId,\n table.approvedAt,\n table.id,\n ),\n }),\n);\n\nexport const organizationRecoveryCommandReceipts = pgTable(\n \"organization_recovery_command_receipts\",\n {\n accountId: uuid(\"account_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n action: text(\"action\").notNull(),\n actorMembershipId: uuid(\"actor_membership_id\").notNull(),\n actorIdentityId: uuid(\"actor_identity_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n result: jsonb(\"result\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n primaryKey: primaryKey({ columns: [table.accountId, table.operationId] }),\n }),\n);\n\nexport const organizationRecoveryEvents = pgTable(\n \"organization_recovery_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n policyId: uuid(\"policy_id\"),\n operationId: uuid(\"operation_id\"),\n commandOperationId: uuid(\"command_operation_id\"),\n eventType: text(\"event_type\").notNull(),\n actorMembershipId: uuid(\"actor_membership_id\"),\n actorIdentityId: uuid(\"actor_identity_id\"),\n eventRevision: bigint(\"event_revision\", { mode: \"number\" }).notNull(),\n evidence: jsonb(\"evidence\").notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n commandType: uniqueIndex(\"organization_recovery_events_command_type_unique\")\n .on(table.accountId, table.commandOperationId, table.eventType)\n .where(sql`${table.commandOperationId} is not null`),\n }),\n);\n\nexport const organizationRecoveryNotificationOutbox = pgTable(\n \"organization_recovery_notification_outbox\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n policyId: uuid(\"policy_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n batchId: uuid(\"batch_id\").notNull(),\n recipientMembershipId: uuid(\"recipient_membership_id\").notNull(),\n recipientIdentityId: uuid(\"recipient_identity_id\").notNull(),\n audience: text(\"audience\").notNull(),\n notificationType: text(\"notification_type\").notNull(),\n idempotencyKey: text(\"idempotency_key\").notNull().unique(),\n payloadDigest: text(\"payload_digest\").notNull(),\n payload: jsonb(\"payload\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n batch: index(\"organization_recovery_outbox_batch_idx\").on(\n table.operationId,\n table.batchId,\n table.id,\n ),\n }),\n);\n\nexport const organizationRecoveryNotificationAttempts = pgTable(\n \"organization_recovery_notification_attempts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n outboxId: uuid(\"outbox_id\").notNull(),\n deliveryId: uuid(\"delivery_id\").notNull(),\n provider: text(\"provider\").notNull(),\n claimOwner: text(\"claim_owner\").notNull(),\n attemptNumber: integer(\"attempt_number\").notNull(),\n leaseExpiresAt: timestamp(\"lease_expires_at\", { withTimezone: true }).notNull(),\n phase: text(\"phase\").notNull(),\n providerMessageId: text(\"provider_message_id\"),\n errorClass: text(\"error_class\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n deliveryPhase: unique(\"organization_recovery_attempts_delivery_phase_unique\").on(\n table.outboxId,\n table.deliveryId,\n table.phase,\n ),\n }),\n);\n","import { sql } from \"drizzle-orm\";\nimport type { WorkspaceInstructionPolicySnapshotEntry } from \"@opengeni/contracts\";\nimport {\n bigint,\n check,\n index,\n integer,\n jsonb,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\n// Foreign keys and the cross-row revision/head integrity triggers live in the\n// SQL migration. Keeping this additive schema leaf independent avoids a cycle\n// back into schema.ts while retaining one canonical Drizzle namespace export.\n\nexport const workspaceInstructionPolicyRevisions = pgTable(\n \"workspace_instruction_policy_revisions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\"),\n requestFingerprint: text(\"request_fingerprint\"),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" })\n .notNull()\n .default(sql`nextval('workspace_instruction_policy_revision_seq')`),\n kind: text(\"kind\").notNull(),\n scope: text(\"scope\").notNull(),\n roleKey: text(\"role_key\"),\n content: text(\"content\").notNull(),\n contentHash: text(\"content_hash\").notNull(),\n provenanceSource: text(\"provenance_source\").notNull(),\n provenanceSourceId: text(\"provenance_source_id\"),\n supersedesRevisionId: uuid(\"supersedes_revision_id\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"workspace_instruction_policy_revisions_workspace_operation_uq\")\n .on(table.workspaceId, table.operationId)\n .where(sql`${table.operationId} is not null`),\n operationReceipt: check(\n \"workspace_instruction_policy_revisions_operation_receipt_chk\",\n sql`(\n (${table.operationId} is null and ${table.requestFingerprint} is null)\n or (\n ${table.operationId} is not null\n and ${table.requestFingerprint} ~ '^[0-9a-f]{64}$'\n )\n )`,\n ),\n workspaceRevision: uniqueIndex(\n \"workspace_instruction_policy_revisions_workspace_revision_uq\",\n ).on(table.workspaceId, table.revision),\n workspaceHistory: index(\"workspace_instruction_policy_revisions_workspace_history_idx\").on(\n table.workspaceId,\n table.kind,\n table.scope,\n table.roleKey,\n table.revision,\n ),\n target: check(\n \"workspace_instruction_policy_revisions_target_chk\",\n sql`(\n (${table.kind} = 'charter' and ${table.scope} = 'global' and ${table.roleKey} is null)\n or (${table.kind} = 'policy' and ${table.scope} = 'global' and ${table.roleKey} is null)\n or (${table.kind} = 'policy' and ${table.scope} = 'role' and ${table.roleKey} is not null)\n )`,\n ),\n }),\n);\n\nexport const workspaceInstructionPolicyHeads = pgTable(\n \"workspace_instruction_policy_heads\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n kind: text(\"kind\").notNull(),\n scope: text(\"scope\").notNull(),\n roleKey: text(\"role_key\"),\n revisionId: uuid(\"revision_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull(),\n contentHash: text(\"content_hash\").notNull(),\n activationVersion: bigint(\"activation_version\", { mode: \"number\" }).notNull(),\n activatedAt: timestamp(\"activated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n charter: uniqueIndex(\"workspace_instruction_policy_heads_charter_uq\")\n .on(table.workspaceId)\n .where(sql`${table.kind} = 'charter'`),\n globalPolicy: uniqueIndex(\"workspace_instruction_policy_heads_global_policy_uq\")\n .on(table.workspaceId)\n .where(sql`${table.kind} = 'policy' and ${table.scope} = 'global'`),\n rolePolicy: uniqueIndex(\"workspace_instruction_policy_heads_role_policy_uq\")\n .on(table.workspaceId, table.roleKey)\n .where(sql`${table.kind} = 'policy' and ${table.scope} = 'role'`),\n target: check(\n \"workspace_instruction_policy_heads_target_chk\",\n sql`(\n (${table.kind} = 'charter' and ${table.scope} = 'global' and ${table.roleKey} is null)\n or (${table.kind} = 'policy' and ${table.scope} = 'global' and ${table.roleKey} is null)\n or (${table.kind} = 'policy' and ${table.scope} = 'role' and ${table.roleKey} is not null)\n )`,\n ),\n }),\n);\n\nexport const workspaceInstructionPolicyActivationEvents = pgTable(\n \"workspace_instruction_policy_activation_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\"),\n requestFingerprint: text(\"request_fingerprint\"),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n kind: text(\"kind\").notNull(),\n scope: text(\"scope\").notNull(),\n roleKey: text(\"role_key\"),\n type: text(\"type\").notNull(),\n activationVersion: bigint(\"activation_version\", { mode: \"number\" }).notNull(),\n oldRevisionId: uuid(\"old_revision_id\"),\n oldRevision: bigint(\"old_revision\", { mode: \"number\" }),\n oldContentHash: text(\"old_content_hash\"),\n newRevisionId: uuid(\"new_revision_id\").notNull(),\n newRevision: bigint(\"new_revision\", { mode: \"number\" }).notNull(),\n newContentHash: text(\"new_content_hash\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n reason: text(\"reason\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"workspace_instruction_policy_events_workspace_operation_uq\")\n .on(table.workspaceId, table.operationId)\n .where(sql`${table.operationId} is not null`),\n operationReceipt: check(\n \"workspace_instruction_policy_events_operation_receipt_chk\",\n sql`(\n (${table.operationId} is null and ${table.requestFingerprint} is null)\n or (\n ${table.operationId} is not null\n and ${table.requestFingerprint} ~ '^[0-9a-f]{64}$'\n )\n )`,\n ),\n workspaceActivationVersion: uniqueIndex(\n \"workspace_instruction_policy_events_target_version_uq\",\n ).on(\n table.workspaceId,\n table.kind,\n table.scope,\n sql`coalesce(${table.roleKey}, '')`,\n table.activationVersion,\n ),\n workspaceTimeline: index(\"workspace_instruction_policy_events_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n target: check(\n \"workspace_instruction_policy_activation_events_target_chk\",\n sql`(\n (${table.kind} = 'charter' and ${table.scope} = 'global' and ${table.roleKey} is null)\n or (${table.kind} = 'policy' and ${table.scope} = 'global' and ${table.roleKey} is null)\n or (${table.kind} = 'policy' and ${table.scope} = 'role' and ${table.roleKey} is not null)\n )`,\n ),\n }),\n);\n\nexport const workspaceInstructionPolicyDeactivationEvents = pgTable(\n \"workspace_instruction_policy_deactivation_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n requestFingerprint: text(\"request_fingerprint\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n kind: text(\"kind\").notNull(),\n scope: text(\"scope\").notNull(),\n roleKey: text(\"role_key\"),\n type: text(\"type\").notNull(),\n activationVersion: bigint(\"activation_version\", { mode: \"number\" }).notNull(),\n oldRevisionId: uuid(\"old_revision_id\").notNull(),\n oldRevision: bigint(\"old_revision\", { mode: \"number\" }).notNull(),\n oldContentHash: text(\"old_content_hash\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n reason: text(\"reason\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\n \"workspace_instruction_policy_deactivate_workspace_operation_uq\",\n ).on(table.workspaceId, table.operationId),\n workspaceActivationVersion: uniqueIndex(\n \"workspace_instruction_policy_deactivations_target_version_uq\",\n ).on(\n table.workspaceId,\n table.kind,\n table.scope,\n sql`coalesce(${table.roleKey}, '')`,\n table.activationVersion,\n ),\n workspaceTimeline: index(\"workspace_instruction_policy_deactivations_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n target: check(\n \"workspace_instruction_policy_deactivations_target_chk\",\n sql`(\n (${table.kind} = 'charter' and ${table.scope} = 'global' and ${table.roleKey} is null)\n or (${table.kind} = 'policy' and ${table.scope} = 'global' and ${table.roleKey} is null)\n or (${table.kind} = 'policy' and ${table.scope} = 'role' and ${table.roleKey} is not null)\n )`,\n ),\n }),\n);\n\nexport const workspaceInstructionPolicyOnboardingProposals = pgTable(\n \"workspace_instruction_policy_onboarding_proposals\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n requestFingerprint: text(\"request_fingerprint\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n kind: text(\"kind\").notNull(),\n scope: text(\"scope\").notNull(),\n roleKey: text(\"role_key\"),\n sourceId: text(\"source_id\").notNull(),\n sourceVersion: text(\"source_version\").notNull(),\n confidenceBps: integer(\"confidence_bps\").notNull(),\n baselineRevisionId: uuid(\"baseline_revision_id\"),\n baselineRevision: bigint(\"baseline_revision\", { mode: \"number\" }),\n baselineContentHash: text(\"baseline_content_hash\"),\n baselineActivationVersion: bigint(\"baseline_activation_version\", { mode: \"number\" }).notNull(),\n baselineActivatedAt: timestamp(\"baseline_activated_at\", { withTimezone: true }),\n draftRevisionId: uuid(\"draft_revision_id\").notNull(),\n draftRevision: bigint(\"draft_revision\", { mode: \"number\" }).notNull(),\n draftContentHash: text(\"draft_content_hash\").notNull(),\n status: text(\"status\").notNull().default(\"proposed\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\n \"workspace_instruction_policy_onboarding_proposals_workspace_operation_uq\",\n ).on(table.workspaceId, table.operationId),\n sourceVersionTarget: uniqueIndex(\n \"workspace_instruction_policy_onboarding_proposals_source_version_target_uq\",\n ).on(\n table.workspaceId,\n table.kind,\n table.scope,\n sql`coalesce(${table.roleKey}, '')`,\n table.sourceId,\n table.sourceVersion,\n // One proposal per source per baseline: a rebaselined successor is\n // admissible, a duplicate against the same baseline is not.\n table.baselineActivationVersion,\n ),\n workspaceTimeline: index(\n \"workspace_instruction_policy_onboarding_proposals_workspace_time_idx\",\n ).on(table.workspaceId, table.createdAt, table.id),\n operationReceipt: check(\n \"workspace_instruction_policy_onboarding_proposals_operation_receipt_chk\",\n sql`${table.requestFingerprint} ~ '^[0-9a-f]{64}$'`,\n ),\n target: check(\n \"workspace_instruction_policy_onboarding_proposals_target_chk\",\n sql`(\n (${table.kind} = 'charter' and ${table.scope} = 'global' and ${table.roleKey} is null)\n or (${table.kind} = 'policy' and ${table.scope} = 'global' and ${table.roleKey} is null)\n or (${table.kind} = 'policy' and ${table.scope} = 'role' and ${table.roleKey} is not null)\n )`,\n ),\n source: check(\n \"workspace_instruction_policy_onboarding_proposals_source_chk\",\n sql`length(btrim(${table.sourceId})) between 1 and 512\n and length(btrim(${table.sourceVersion})) between 1 and 256\n and ${table.confidenceBps} between 0 and 10000`,\n ),\n baseline: check(\n \"workspace_instruction_policy_onboarding_proposals_baseline_chk\",\n sql`(\n ${table.baselineRevisionId} is null\n and ${table.baselineRevision} is null\n and ${table.baselineContentHash} is null\n and ${table.baselineActivationVersion} >= 0\n and ${table.baselineActivatedAt} is null\n ) or (\n ${table.baselineRevisionId} is not null\n and ${table.baselineRevision} > 0\n and ${table.baselineContentHash} ~ '^[0-9a-f]{64}$'\n and ${table.baselineActivationVersion} > 0\n and ${table.baselineActivatedAt} is not null\n )`,\n ),\n draft: check(\n \"workspace_instruction_policy_onboarding_proposals_draft_chk\",\n sql`${table.draftRevision} > 0\n and ${table.draftContentHash} ~ '^[0-9a-f]{64}$'\n and ${table.status} = 'proposed'`,\n ),\n }),\n);\n\nexport const workspaceInstructionPolicySnapshots = pgTable(\n \"workspace_instruction_policy_snapshots\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n attemptId: uuid(\"attempt_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n policyRole: text(\"policy_role\"),\n roleSource: text(\"role_source\").notNull(),\n entries: jsonb(\"entries\").$type<WorkspaceInstructionPolicySnapshotEntry[]>().notNull(),\n entryHash: text(\"entry_hash\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n attempt: uniqueIndex(\"workspace_instruction_policy_snapshots_attempt_uq\").on(\n table.accountId,\n table.workspaceId,\n table.attemptId,\n ),\n workspaceTimeline: index(\"workspace_instruction_policy_snapshots_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n entriesShape: check(\n \"workspace_instruction_policy_snapshots_entries_chk\",\n sql`jsonb_typeof(${table.entries}) = 'array' and jsonb_array_length(${table.entries}) <= 3`,\n ),\n roleSourceValid: check(\n \"workspace_instruction_policy_snapshots_role_source_chk\",\n sql`${table.roleSource} in ('session_binding', 'metadata_fallback', 'none', 'invalid_metadata_fallback')`,\n ),\n }),\n);\n","import { sql } from \"drizzle-orm\";\nimport type {\n CompanyProfileAgentHumanInputPrompt,\n CompanyProfileAgentPolicyMode,\n CompanyProfileSnapshotEntry,\n} from \"@opengeni/contracts\";\nimport {\n bigint,\n boolean,\n check,\n index,\n integer,\n jsonb,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\nexport const companyProfileRevisions = pgTable(\n \"company_profile_revisions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n requestFingerprint: text(\"request_fingerprint\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" })\n .notNull()\n .default(sql`nextval('company_profile_revision_seq')`),\n intent: text(\"intent\").notNull(),\n contentJson: text(\"content_json\").notNull(),\n contentHash: text(\"content_hash\").notNull(),\n provenanceSource: text(\"provenance_source\").notNull(),\n provenanceSourceId: text(\"provenance_source_id\"),\n supersedesRevisionId: uuid(\"supersedes_revision_id\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountOperation: uniqueIndex(\"company_profile_revisions_account_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n idAccount: uniqueIndex(\"company_profile_revisions_id_account_uq\").on(table.id, table.accountId),\n accountRevision: uniqueIndex(\"company_profile_revisions_account_revision_uq\").on(\n table.accountId,\n table.revision,\n ),\n accountHistory: index(\"company_profile_revisions_account_history_idx\").on(\n table.accountId,\n table.revision,\n ),\n receipt: check(\n \"company_profile_revisions_receipt_chk\",\n sql`${table.requestFingerprint} ~ '^[0-9a-f]{64}$'`,\n ),\n intent: check(\n \"company_profile_revisions_intent_chk\",\n sql`${table.intent} in ('active', 'proposal')`,\n ),\n }),\n);\n\nexport const companyProfileHeads = pgTable(\"company_profile_heads\", {\n accountId: uuid(\"account_id\").primaryKey(),\n revisionId: uuid(\"revision_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull(),\n contentHash: text(\"content_hash\").notNull(),\n activationVersion: bigint(\"activation_version\", { mode: \"number\" }).notNull(),\n activatedAt: timestamp(\"activated_at\", { withTimezone: true }).notNull().defaultNow(),\n});\n\nexport const companyProfileActivationEvents = pgTable(\n \"company_profile_activation_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n requestFingerprint: text(\"request_fingerprint\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n type: text(\"type\").notNull(),\n activationVersion: bigint(\"activation_version\", { mode: \"number\" }).notNull(),\n oldRevisionId: uuid(\"old_revision_id\"),\n oldRevision: bigint(\"old_revision\", { mode: \"number\" }),\n oldContentHash: text(\"old_content_hash\"),\n newRevisionId: uuid(\"new_revision_id\"),\n newRevision: bigint(\"new_revision\", { mode: \"number\" }),\n newContentHash: text(\"new_content_hash\"),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n reason: text(\"reason\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountOperation: uniqueIndex(\"company_profile_events_account_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n idAccount: uniqueIndex(\"company_profile_events_id_account_uq\").on(table.id, table.accountId),\n accountActivationVersion: uniqueIndex(\"company_profile_events_account_version_uq\").on(\n table.accountId,\n table.activationVersion,\n ),\n accountTimeline: index(\"company_profile_events_account_time_idx\").on(\n table.accountId,\n table.createdAt,\n table.id,\n ),\n receipt: check(\n \"company_profile_events_receipt_chk\",\n sql`${table.requestFingerprint} ~ '^[0-9a-f]{64}$'`,\n ),\n type: check(\"company_profile_events_type_chk\", sql`${table.type} in ('activate', 'rollback')`),\n }),\n);\n\nexport const organizationCompanyProfileAgentPolicies = pgTable(\n \"organization_company_profile_agent_policies\",\n {\n accountId: uuid(\"account_id\").primaryKey(),\n mode: text(\"mode\").$type<CompanyProfileAgentPolicyMode>().notNull().default(\"suggest\"),\n version: bigint(\"version\", { mode: \"number\" }).notNull().default(0),\n updatedByMembershipId: uuid(\"updated_by_membership_id\"),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n mode: check(\n \"organization_company_profile_agent_policies_mode_check\",\n sql`${table.mode} in ('off', 'suggest', 'automatic')`,\n ),\n version: check(\n \"organization_company_profile_agent_policies_version_check\",\n sql`${table.version} >= 0`,\n ),\n }),\n);\n\nexport const organizationCompanyProfileAgentPolicyEvents = pgTable(\n \"organization_company_profile_agent_policy_events\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n actorMembershipId: uuid(\"actor_membership_id\").notNull(),\n requestedMode: text(\"requested_mode\").$type<CompanyProfileAgentPolicyMode>().notNull(),\n expectedVersion: bigint(\"expected_version\", { mode: \"number\" }).notNull(),\n resultMode: text(\"result_mode\").$type<CompanyProfileAgentPolicyMode>().notNull(),\n resultVersion: bigint(\"result_version\", { mode: \"number\" }).notNull(),\n resultUpdatedAt: timestamp(\"result_updated_at\", { withTimezone: true }).notNull(),\n changed: boolean(\"changed\").notNull(),\n },\n (table) => ({\n accountTimeline: index(\"organization_company_profile_agent_policy_events_account_idx\").on(\n table.accountId,\n table.resultVersion,\n ),\n modes: check(\n \"organization_company_profile_agent_policy_events_mode_check\",\n sql`${table.requestedMode} in ('off', 'suggest', 'automatic')\n and ${table.resultMode} in ('off', 'suggest', 'automatic')`,\n ),\n versions: check(\n \"organization_company_profile_agent_policy_events_version_check\",\n sql`${table.expectedVersion} >= 0 and ${table.resultVersion} > 0`,\n ),\n }),\n);\n\nexport const companyProfileSnapshots = pgTable(\n \"company_profile_snapshots\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n attemptId: uuid(\"attempt_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n profile: jsonb(\"profile\").$type<CompanyProfileSnapshotEntry | null>(),\n snapshotHash: text(\"snapshot_hash\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n attempt: uniqueIndex(\"company_profile_snapshots_attempt_uq\").on(\n table.accountId,\n table.workspaceId,\n table.attemptId,\n ),\n workspaceTimeline: index(\"company_profile_snapshots_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n generation: check(\n \"company_profile_snapshots_generation_chk\",\n sql`${table.executionGeneration} > 0`,\n ),\n hash: check(\n \"company_profile_snapshots_hash_chk\",\n sql`${table.snapshotHash} ~ '^[0-9a-f]{64}$'`,\n ),\n }),\n);\n\nexport const companyProfileAgentProposalReceipts = pgTable(\n \"company_profile_agent_proposal_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n creationAttemptId: uuid(\"creation_attempt_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\").notNull(),\n initiatingMembershipId: uuid(\"initiating_membership_id\").notNull(),\n revisionId: uuid(\"revision_id\").notNull(),\n expectedCurrentRevisionId: uuid(\"expected_current_revision_id\"),\n expectedActivationVersion: bigint(\"expected_activation_version\", { mode: \"number\" }).notNull(),\n policyMode: text(\"policy_mode\").$type<CompanyProfileAgentPolicyMode>().notNull(),\n policyVersion: bigint(\"policy_version\", { mode: \"number\" }).notNull(),\n reason: text(\"reason\").notNull(),\n humanInput: jsonb(\"human_input\").$type<CompanyProfileAgentHumanInputPrompt>().notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountOperation: uniqueIndex(\"company_profile_agent_proposals_account_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n accountRevision: uniqueIndex(\"company_profile_agent_proposals_account_revision_uq\").on(\n table.accountId,\n table.revisionId,\n ),\n idAccount: uniqueIndex(\"company_profile_agent_proposals_id_account_uq\").on(\n table.id,\n table.accountId,\n ),\n turn: index(\"company_profile_agent_proposals_turn_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.executionGeneration,\n ),\n hash: check(\n \"company_profile_agent_proposals_input_hash_check\",\n sql`${table.inputHash} ~ '^[0-9a-f]{64}$'`,\n ),\n generation: check(\n \"company_profile_agent_proposals_generation_check\",\n sql`${table.executionGeneration} > 0\n and ${table.expectedActivationVersion} >= 0\n and ${table.policyVersion} >= 0`,\n ),\n subject: check(\n \"company_profile_agent_proposals_subject_check\",\n sql`octet_length(btrim(${table.initiatingHumanSubjectId})) between 1 and 1024`,\n ),\n reason: check(\n \"company_profile_agent_proposals_reason_check\",\n sql`char_length(btrim(${table.reason})) between 1 and 4096\n and octet_length(convert_to(btrim(${table.reason}), 'UTF8')) <= 16384`,\n ),\n policyMode: check(\n \"company_profile_agent_proposals_policy_mode_check\",\n sql`${table.policyMode} in ('suggest', 'automatic')`,\n ),\n humanInputShape: check(\n \"company_profile_agent_proposals_human_input_check\",\n sql`jsonb_typeof(${table.humanInput}) = 'object'\n and jsonb_array_length(${table.humanInput}->'questions') = 1\n and ${table.humanInput}->>'allowSkip' = 'false'\n and octet_length(${table.humanInput}::text) <= 49152`,\n ),\n }),\n);\n\nexport const companyProfileAgentConfirmationReceipts = pgTable(\n \"company_profile_agent_confirmation_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n confirmationAttemptId: uuid(\"confirmation_attempt_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n proposalReceiptId: uuid(\"proposal_receipt_id\").notNull(),\n proposalRevisionId: uuid(\"proposal_revision_id\").notNull(),\n humanInputRequestId: uuid(\"human_input_request_id\").notNull(),\n approverSubjectId: text(\"approver_subject_id\").notNull(),\n approverMembershipId: uuid(\"approver_membership_id\").notNull(),\n activationEventId: uuid(\"activation_event_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountOperation: uniqueIndex(\"company_profile_agent_confirmations_account_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n proposal: uniqueIndex(\"company_profile_agent_confirmations_proposal_uq\").on(\n table.accountId,\n table.proposalReceiptId,\n ),\n activationEvent: uniqueIndex(\"company_profile_agent_confirmations_event_uq\").on(\n table.accountId,\n table.activationEventId,\n ),\n hash: check(\n \"company_profile_agent_confirmations_input_hash_check\",\n sql`${table.inputHash} ~ '^[0-9a-f]{64}$'`,\n ),\n generation: check(\n \"company_profile_agent_confirmations_generation_check\",\n sql`${table.executionGeneration} > 0`,\n ),\n subject: check(\n \"company_profile_agent_confirmations_subject_check\",\n sql`octet_length(btrim(${table.approverSubjectId})) between 1 and 1024`,\n ),\n }),\n);\n\nexport const companyProfileAgentAutomaticActivationReceipts = pgTable(\n \"company_profile_agent_automatic_activation_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n activationAttemptId: uuid(\"activation_attempt_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n proposalReceiptId: uuid(\"proposal_receipt_id\").notNull(),\n proposalRevisionId: uuid(\"proposal_revision_id\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\").notNull(),\n initiatingMembershipId: uuid(\"initiating_membership_id\").notNull(),\n policyVersion: bigint(\"policy_version\", { mode: \"number\" }).notNull(),\n activationEventId: uuid(\"activation_event_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n accountOperation: uniqueIndex(\n \"company_profile_agent_automatic_activations_account_operation_uq\",\n ).on(table.accountId, table.operationId),\n proposal: uniqueIndex(\"company_profile_agent_automatic_activations_proposal_uq\").on(\n table.accountId,\n table.proposalReceiptId,\n ),\n activationEvent: uniqueIndex(\"company_profile_agent_automatic_activations_event_uq\").on(\n table.accountId,\n table.activationEventId,\n ),\n turn: index(\"company_profile_agent_automatic_activations_turn_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.turnId,\n table.executionGeneration,\n ),\n hash: check(\n \"company_profile_agent_automatic_activations_input_hash_check\",\n sql`${table.inputHash} ~ '^[0-9a-f]{64}$'`,\n ),\n generation: check(\n \"company_profile_agent_automatic_activations_generation_check\",\n sql`${table.executionGeneration} > 0 and ${table.policyVersion} >= 0`,\n ),\n subject: check(\n \"company_profile_agent_automatic_activations_subject_check\",\n sql`octet_length(btrim(${table.initiatingHumanSubjectId})) between 1 and 1024`,\n ),\n }),\n);\n","import type { WorkspaceLearningSourceOverride } from \"@opengeni/contracts\";\nimport { sql } from \"drizzle-orm\";\nimport {\n bigint,\n check,\n index,\n integer,\n jsonb,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\nexport const workspaceLearningPolicyRevisions = pgTable(\n \"workspace_learning_policy_revisions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n requestFingerprint: text(\"request_fingerprint\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" })\n .notNull()\n .default(sql`nextval('workspace_learning_policy_revision_seq')`),\n workspaceMode: text(\"workspace_mode\").notNull(),\n sourceOverrides: jsonb(\"source_overrides\").$type<WorkspaceLearningSourceOverride[]>().notNull(),\n policyHash: text(\"policy_hash\").notNull(),\n supersedesRevisionId: uuid(\"supersedes_revision_id\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\n \"workspace_learning_policy_revisions_workspace_operation_uq\",\n ).on(table.workspaceId, table.operationId),\n workspaceRevision: uniqueIndex(\"workspace_learning_policy_revisions_workspace_revision_uq\").on(\n table.workspaceId,\n table.revision,\n ),\n workspaceHistory: index(\"workspace_learning_policy_revisions_workspace_history_idx\").on(\n table.workspaceId,\n table.revision,\n ),\n mode: check(\n \"workspace_learning_policy_revisions_mode_chk\",\n sql`${table.workspaceMode} in ('off', 'suggest', 'automatic')`,\n ),\n }),\n);\n\nexport const workspaceLearningPolicyHeads = pgTable(\n \"workspace_learning_policy_heads\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n revisionId: uuid(\"revision_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull(),\n policyHash: text(\"policy_hash\").notNull(),\n activationVersion: bigint(\"activation_version\", { mode: \"number\" }).notNull(),\n activatedAt: timestamp(\"activated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspace: uniqueIndex(\"workspace_learning_policy_heads_workspace_uq\").on(table.workspaceId),\n }),\n);\n\nexport const workspaceLearningPolicyActivationEvents = pgTable(\n \"workspace_learning_policy_activation_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n requestFingerprint: text(\"request_fingerprint\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n type: text(\"type\").notNull(),\n activationVersion: bigint(\"activation_version\", { mode: \"number\" }).notNull(),\n oldRevisionId: uuid(\"old_revision_id\"),\n oldRevision: bigint(\"old_revision\", { mode: \"number\" }),\n oldPolicyHash: text(\"old_policy_hash\"),\n newRevisionId: uuid(\"new_revision_id\").notNull(),\n newRevision: bigint(\"new_revision\", { mode: \"number\" }).notNull(),\n newPolicyHash: text(\"new_policy_hash\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n reason: text(\"reason\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"workspace_learning_policy_events_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n workspaceVersion: uniqueIndex(\"workspace_learning_policy_events_workspace_version_uq\").on(\n table.workspaceId,\n table.activationVersion,\n ),\n workspaceTimeline: index(\"workspace_learning_policy_events_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n\nexport const workspaceLearningPolicySnapshots = pgTable(\n \"workspace_learning_policy_snapshots\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n attemptId: uuid(\"attempt_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n revisionId: uuid(\"revision_id\"),\n revision: bigint(\"revision\", { mode: \"number\" }),\n policyHash: text(\"policy_hash\"),\n activationVersion: bigint(\"activation_version\", { mode: \"number\" }).notNull(),\n activatedAt: timestamp(\"activated_at\", { withTimezone: true }),\n workspaceMode: text(\"workspace_mode\").notNull(),\n sourceOverrides: jsonb(\"source_overrides\").$type<WorkspaceLearningSourceOverride[]>().notNull(),\n snapshotHash: text(\"snapshot_hash\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n attempt: uniqueIndex(\"workspace_learning_policy_snapshots_attempt_uq\").on(\n table.accountId,\n table.workspaceId,\n table.attemptId,\n ),\n workspaceTimeline: index(\"workspace_learning_policy_snapshots_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n","import type { SlackTaskPolicyContent } from \"@opengeni/contracts\";\nimport { sql } from \"drizzle-orm\";\nimport {\n bigint,\n check,\n index,\n jsonb,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\nexport const slackTaskPolicyRevisions = pgTable(\n \"slack_task_policy_revisions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n requestFingerprint: text(\"request_fingerprint\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" })\n .notNull()\n .default(sql`nextval('slack_task_policy_revision_seq')`),\n policy: jsonb(\"policy\").$type<SlackTaskPolicyContent>().notNull(),\n policyHash: text(\"policy_hash\").notNull(),\n supersedesRevisionId: uuid(\"supersedes_revision_id\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"slack_task_policy_revisions_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n workspaceRevision: uniqueIndex(\"slack_task_policy_revisions_workspace_revision_uq\").on(\n table.workspaceId,\n table.revision,\n ),\n workspaceHistory: index(\"slack_task_policy_revisions_workspace_history_idx\").on(\n table.workspaceId,\n table.revision,\n ),\n receipt: check(\n \"slack_task_policy_revisions_receipt_chk\",\n sql`${table.requestFingerprint} ~ '^[0-9a-f]{64}$' and ${table.policyHash} ~ '^[0-9a-f]{64}$'`,\n ),\n }),\n);\n\nexport const slackTaskPolicyHeads = pgTable(\n \"slack_task_policy_heads\",\n {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").primaryKey(),\n revisionId: uuid(\"revision_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull(),\n policyHash: text(\"policy_hash\").notNull(),\n activationVersion: bigint(\"activation_version\", { mode: \"number\" }).notNull(),\n activatedAt: timestamp(\"activated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n account: index(\"slack_task_policy_heads_account_idx\").on(table.accountId),\n }),\n);\n\nexport const slackTaskPolicyActivationEvents = pgTable(\n \"slack_task_policy_activation_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n operationId: uuid(\"operation_id\").notNull(),\n requestFingerprint: text(\"request_fingerprint\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n activationVersion: bigint(\"activation_version\", { mode: \"number\" }).notNull(),\n oldRevisionId: uuid(\"old_revision_id\"),\n oldRevision: bigint(\"old_revision\", { mode: \"number\" }),\n oldPolicyHash: text(\"old_policy_hash\"),\n newRevisionId: uuid(\"new_revision_id\").notNull(),\n newRevision: bigint(\"new_revision\", { mode: \"number\" }).notNull(),\n newPolicyHash: text(\"new_policy_hash\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n reason: text(\"reason\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"slack_task_policy_events_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n workspaceVersion: uniqueIndex(\"slack_task_policy_events_workspace_version_uq\").on(\n table.workspaceId,\n table.activationVersion,\n ),\n workspaceTimeline: index(\"slack_task_policy_events_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n\nexport const slackSharedTaskOrigins = pgTable(\n \"slack_shared_task_origins\",\n {\n interactionId: uuid(\"interaction_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n connectionId: uuid(\"connection_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n slackTeamId: text(\"slack_team_id\").notNull(),\n sourceChannelId: text(\"source_channel_id\").notNull(),\n sourceThreadTs: text(\"source_thread_ts\").notNull(),\n initiatingSlackUserId: text(\"initiating_slack_user_id\").notNull(),\n policyRevisionId: uuid(\"policy_revision_id\").notNull(),\n // The Slack task policy is a home fact and the interaction is a routed one,\n // so the frozen revision carries its own tenancy pair. Null on rows written\n // before Slack workspace routing, where the two were always equal.\n policyAccountId: uuid(\"policy_account_id\"),\n policyWorkspaceId: uuid(\"policy_workspace_id\"),\n policyHash: text(\"policy_hash\").notNull(),\n policyActivationVersion: bigint(\"policy_activation_version\", { mode: \"number\" }).notNull(),\n publicationMode: text(\"publication_mode\")\n .$type<\"never\" | \"approval_required\" | \"allow\">()\n .notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceSession: uniqueIndex(\"slack_shared_task_origins_workspace_session_uq\").on(\n table.workspaceId,\n table.sessionId,\n ),\n }),\n);\n","import { sql } from \"drizzle-orm\";\nimport {\n bigint,\n boolean,\n check,\n index,\n integer,\n jsonb,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\nimport type { PreferenceRegistryDescriptor } from \"@opengeni/contracts\";\n\n// Foreign keys and cross-row integrity triggers are migration-owned. This leaf\n// stays cycle-free so schema.ts can expose the registry as one additive domain.\nexport const preferenceRegistryPreferences = pgTable(\n \"preference_registry_preferences\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n stableKey: text(\"stable_key\").notNull(),\n scope: text(\"scope\").notNull(),\n scopeWorkspaceId: uuid(\"scope_workspace_id\"),\n scopeSubjectId: text(\"scope_subject_id\"),\n status: text(\"status\").notNull().default(\"proposed\"),\n scopeVersion: integer(\"scope_version\").notNull().default(1),\n activationVersion: integer(\"activation_version\").notNull().default(0),\n activeRevisionId: uuid(\"active_revision_id\"),\n activeRevision: bigint(\"active_revision\", { mode: \"number\" }),\n activeContentHash: text(\"active_content_hash\"),\n supersededByPreferenceId: uuid(\"superseded_by_preference_id\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n organizationStableKey: uniqueIndex(\"preference_registry_preferences_organization_key_uq\")\n .on(table.accountId, table.stableKey)\n .where(sql`${table.scope} = 'organization'`),\n workspaceStableKey: uniqueIndex(\"preference_registry_preferences_workspace_key_uq\")\n .on(table.accountId, table.scopeWorkspaceId, table.stableKey)\n .where(sql`${table.scope} = 'workspace'`),\n userStableKey: uniqueIndex(\"preference_registry_preferences_user_key_uq\")\n .on(table.accountId, table.scopeSubjectId, table.stableKey)\n .where(sql`${table.scope} = 'user'`),\n applicable: index(\"preference_registry_preferences_applicable_idx\").on(\n table.accountId,\n table.scope,\n table.scopeWorkspaceId,\n table.scopeSubjectId,\n table.status,\n table.stableKey,\n ),\n scopeShape: check(\n \"preference_registry_preferences_scope_shape_chk\",\n sql`(\n (${table.scope} = 'organization' and ${table.scopeWorkspaceId} is null and ${table.scopeSubjectId} is null)\n or (${table.scope} = 'workspace' and ${table.scopeWorkspaceId} is not null and ${table.scopeSubjectId} is null)\n or (${table.scope} = 'user' and ${table.scopeWorkspaceId} is null and ${table.scopeSubjectId} is not null)\n )`,\n ),\n }),\n);\n\nexport const preferenceRegistryRevisions = pgTable(\n \"preference_registry_revisions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n preferenceId: uuid(\"preference_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" })\n .notNull()\n .default(sql`nextval('preference_registry_revision_seq')`),\n title: text(\"title\").notNull(),\n description: text(\"description\").notNull(),\n content: text(\"content\").notNull(),\n contentHash: text(\"content_hash\").notNull(),\n skillFiles: jsonb(\"skill_files\").$type<Array<{ path: string; content: string }> | null>(),\n skillActivationMode: text(\"skill_activation_mode\"),\n precedenceRank: integer(\"precedence_rank\").notNull().default(0),\n conflictStrategy: text(\"conflict_strategy\").notNull(),\n conflictsWith: jsonb(\"conflicts_with\").$type<string[]>().notNull().default([]),\n provenanceSource: text(\"provenance_source\").notNull(),\n provenanceSourceId: text(\"provenance_source_id\"),\n trust: text(\"trust\").notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }),\n correctsRevisionId: uuid(\"corrects_revision_id\"),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n preferenceRevision: uniqueIndex(\"preference_registry_revisions_preference_revision_uq\").on(\n table.preferenceId,\n table.revision,\n ),\n history: index(\"preference_registry_revisions_history_idx\").on(\n table.preferenceId,\n table.revision,\n ),\n }),\n);\n\nexport const preferenceRegistryEvents = pgTable(\n \"preference_registry_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n preferenceId: uuid(\"preference_id\").notNull(),\n type: text(\"type\").notNull(),\n version: integer(\"version\").notNull(),\n oldRevisionId: uuid(\"old_revision_id\"),\n newRevisionId: uuid(\"new_revision_id\"),\n oldScope: text(\"old_scope\"),\n oldWorkspaceId: uuid(\"old_workspace_id\"),\n oldSubjectId: text(\"old_subject_id\"),\n newScope: text(\"new_scope\"),\n newWorkspaceId: uuid(\"new_workspace_id\"),\n newSubjectId: text(\"new_subject_id\"),\n relatedPreferenceId: uuid(\"related_preference_id\"),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n reason: text(\"reason\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n preferenceVersion: uniqueIndex(\"preference_registry_events_preference_version_uq\").on(\n table.preferenceId,\n table.version,\n ),\n timeline: index(\"preference_registry_events_timeline_idx\").on(\n table.preferenceId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n\nexport const preferenceRegistrySnapshots = pgTable(\n \"preference_registry_snapshots\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n attemptId: uuid(\"attempt_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\").notNull(),\n descriptors: jsonb(\"descriptors\").$type<PreferenceRegistryDescriptor[]>().notNull(),\n descriptorHash: text(\"descriptor_hash\").notNull(),\n truncated: boolean(\"truncated\").notNull().default(false),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n attempt: uniqueIndex(\"preference_registry_snapshots_attempt_uq\").on(\n table.accountId,\n table.workspaceId,\n table.attemptId,\n ),\n humanTimeline: index(\"preference_registry_snapshots_human_timeline_idx\").on(\n table.workspaceId,\n table.initiatingHumanSubjectId,\n table.createdAt,\n ),\n descriptorBytes: check(\n \"preference_registry_snapshots_descriptor_bytes_chk\",\n sql`octet_length(convert_to(${table.descriptors}::text, 'UTF8')) <= 16384`,\n ),\n }),\n);\n","import {\n jsonb,\n pgTable,\n primaryKey,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\n/** Source identity, not another mutable Skill head. Portable ownership stays upstream. */\nexport const skillSourceBindings = pgTable(\n \"skill_source_bindings\",\n {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n pluginId: uuid(\"plugin_id\").notNull(),\n facetKey: text(\"facet_key\").notNull(),\n preferenceId: uuid(\"preference_id\").notNull(),\n skillFacetId: uuid(\"skill_facet_id\").notNull(),\n },\n (table) => [\n primaryKey({ columns: [table.workspaceId, table.pluginId, table.facetKey] }),\n uniqueIndex(\"skill_source_bindings_preference_id_key\").on(table.preferenceId),\n ],\n);\n\nexport const skillWriteReceipts = pgTable(\n \"skill_write_receipts\",\n {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n fingerprint: text(\"fingerprint\").notNull(),\n actor: jsonb(\"actor\").notNull(),\n receipt: jsonb(\"receipt\").notNull(),\n activationEventId: uuid(\"activation_event_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => [primaryKey({ columns: [table.workspaceId, table.operationId] })],\n);\n\n/** Immutable maintenance evidence; never an execution configuration head. */\nexport const skillConfigConversionReceipts = pgTable(\n \"skill_config_conversion_receipts\",\n {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sourceKind: text(\"source_kind\").notNull(),\n sourceId: uuid(\"source_id\").notNull(),\n conversionVersion: text(\"conversion_version\").notNull().default(\"0426-v1\"),\n actor: text(\"actor\").notNull().default(\"service:skill-migration:0433\"),\n originalConfiguration: jsonb(\"original_configuration\").notNull(),\n originalHash: text(\"original_hash\").notNull(),\n replacementHash: text(\"replacement_hash\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => [\n primaryKey({\n columns: [table.workspaceId, table.sourceKind, table.sourceId, table.conversionVersion],\n }),\n ],\n);\n","import { sql } from \"drizzle-orm\";\nimport {\n check,\n index,\n integer,\n jsonb,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\n// Foreign keys, immutable-history triggers, and lifecycle-only mutation guards\n// live in migration 0152. Keeping this leaf cycle-free lets schema.ts expose the\n// additive memory governance tables without importing knowledgeMemories here.\nexport const knowledgeMemoryRelationships = pgTable(\n \"knowledge_memory_relationships\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sourceMemoryId: uuid(\"source_memory_id\").notNull(),\n targetMemoryId: uuid(\"target_memory_id\").notNull(),\n relationshipType: text(\"relationship_type\").notNull(),\n version: integer(\"version\").notNull().default(1),\n createdByEventId: uuid(\"created_by_event_id\").notNull(),\n removedByEventId: uuid(\"removed_by_event_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n removedAt: timestamp(\"removed_at\", { withTimezone: true }),\n },\n (table) => ({\n activeDirectedEdge: uniqueIndex(\"knowledge_memory_relationships_active_edge_uq\")\n .on(table.workspaceId, table.sourceMemoryId, table.targetMemoryId, table.relationshipType)\n .where(sql`${table.removedByEventId} is null`),\n activeSymmetricEdge: uniqueIndex(\"knowledge_memory_relationships_active_symmetric_edge_uq\")\n .on(\n table.workspaceId,\n table.relationshipType,\n sql`least(${table.sourceMemoryId}, ${table.targetMemoryId})`,\n sql`greatest(${table.sourceMemoryId}, ${table.targetMemoryId})`,\n )\n .where(\n sql`${table.removedByEventId} is null and ${table.relationshipType} in ('conflicts_with', 'related_to')`,\n ),\n source: index(\"knowledge_memory_relationships_source_idx\").on(\n table.workspaceId,\n table.sourceMemoryId,\n table.createdAt.desc(),\n table.id,\n ),\n target: index(\"knowledge_memory_relationships_target_idx\").on(\n table.workspaceId,\n table.targetMemoryId,\n table.createdAt.desc(),\n table.id,\n ),\n typeValid: check(\n \"knowledge_memory_relationships_type_chk\",\n sql`${table.relationshipType} in ('derived_from', 'supersedes', 'corrects', 'conflicts_with', 'related_to', 'depends_on', 'applies_to')`,\n ),\n distinctEndpoints: check(\n \"knowledge_memory_relationships_distinct_chk\",\n sql`${table.sourceMemoryId} <> ${table.targetMemoryId}`,\n ),\n versionPositive: check(\"knowledge_memory_relationships_version_chk\", sql`${table.version} > 0`),\n removedShape: check(\n \"knowledge_memory_relationships_removed_shape_chk\",\n sql`(${table.removedByEventId} is null and ${table.removedAt} is null) or (${table.removedByEventId} is not null and ${table.removedAt} is not null)`,\n ),\n workspaceIdentity: uniqueIndex(\"knowledge_memory_relationships_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n }),\n);\n\nexport const knowledgeMemoryLifecycleEvents = pgTable(\n \"knowledge_memory_lifecycle_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n action: text(\"action\").notNull(),\n operationType: text(\"operation_type\").notNull(),\n targetMemoryId: uuid(\"target_memory_id\").notNull(),\n relatedMemoryId: uuid(\"related_memory_id\"),\n relationshipId: uuid(\"relationship_id\"),\n relationshipType: text(\"relationship_type\"),\n actorKind: text(\"actor_kind\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n actorSessionId: uuid(\"actor_session_id\"),\n actorTurnId: uuid(\"actor_turn_id\"),\n actorAttemptId: uuid(\"actor_attempt_id\"),\n actorExecutionGeneration: integer(\"actor_execution_generation\"),\n planHash: text(\"plan_hash\").notNull(),\n beforeState: jsonb(\"before_state\").$type<Record<string, unknown>>().notNull(),\n afterState: jsonb(\"after_state\").$type<Record<string, unknown>>().notNull(),\n revertsEventId: uuid(\"reverts_event_id\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operationAction: uniqueIndex(\"knowledge_memory_lifecycle_events_operation_action_uq\").on(\n table.workspaceId,\n table.operationId,\n table.action,\n ),\n oneRevert: uniqueIndex(\"knowledge_memory_lifecycle_events_one_revert_uq\")\n .on(table.revertsEventId)\n .where(sql`${table.revertsEventId} is not null`),\n targetTimeline: index(\"knowledge_memory_lifecycle_events_target_timeline_idx\").on(\n table.workspaceId,\n table.targetMemoryId,\n table.createdAt.desc(),\n table.id,\n ),\n actorTimeline: index(\"knowledge_memory_lifecycle_events_actor_timeline_idx\").on(\n table.workspaceId,\n table.actorKind,\n table.actorSubjectId,\n table.createdAt.desc(),\n table.id,\n ),\n actionValid: check(\n \"knowledge_memory_lifecycle_events_action_chk\",\n sql`${table.action} in ('apply', 'revert')`,\n ),\n operationValid: check(\n \"knowledge_memory_lifecycle_events_operation_chk\",\n sql`${table.operationType} in ('reclassify', 'archive', 'relationship_add', 'relationship_remove', 'supersede', 'correct')`,\n ),\n relationshipShape: check(\n \"knowledge_memory_lifecycle_events_relationship_chk\",\n sql`(${table.operationType} in ('relationship_add', 'relationship_remove', 'supersede', 'correct') and ${table.relatedMemoryId} is not null and ${table.relationshipId} is not null and ${table.relationshipType} is not null) or (${table.operationType} in ('reclassify', 'archive') and ${table.relatedMemoryId} is null and ${table.relationshipId} is null and ${table.relationshipType} is null)`,\n ),\n actorValid: check(\n \"knowledge_memory_lifecycle_events_actor_chk\",\n sql`${table.actorKind} in ('subject', 'service') and length(btrim(${table.actorSubjectId})) between 1 and 1024`,\n ),\n attemptShape: check(\n \"knowledge_memory_lifecycle_events_attempt_shape_chk\",\n sql`(${table.actorSessionId} is null and ${table.actorTurnId} is null and ${table.actorAttemptId} is null and ${table.actorExecutionGeneration} is null) or (${table.actorSessionId} is not null and ${table.actorTurnId} is not null and ${table.actorAttemptId} is not null and ${table.actorExecutionGeneration} > 0)`,\n ),\n planHashShape: check(\n \"knowledge_memory_lifecycle_events_plan_hash_chk\",\n sql`${table.planHash} ~ '^[a-f0-9]{64}$'`,\n ),\n stateShape: check(\n \"knowledge_memory_lifecycle_events_state_chk\",\n sql`jsonb_typeof(${table.beforeState}) = 'object' and jsonb_typeof(${table.afterState}) = 'object' and not (${table.beforeState} ?| array['text', 'sourceRefs', 'source_refs', 'metadata', 'embedding']) and not (${table.afterState} ?| array['text', 'sourceRefs', 'source_refs', 'metadata', 'embedding'])`,\n ),\n revertShape: check(\n \"knowledge_memory_lifecycle_events_revert_shape_chk\",\n sql`(${table.action} = 'apply' and ${table.revertsEventId} is null) or (${table.action} = 'revert' and ${table.revertsEventId} is not null)`,\n ),\n workspaceIdentity: uniqueIndex(\"knowledge_memory_lifecycle_events_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n }),\n);\n","import { sql } from \"drizzle-orm\";\nimport {\n bigint,\n boolean,\n index,\n integer,\n jsonb,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\n// Cross-row/composite foreign keys, immutable-history triggers, lifecycle\n// functions, and FORCE-RLS policies live in migration 0154. This schema leaf is\n// deliberately cycle-free so the repository module can use typed table names\n// without making the main schema declaration harder to navigate.\n\nfunction tenantScopeColumns() {\n return {\n accountId: uuid(\"account_id\").notNull(),\n scopeKind: text(\"scope_kind\").notNull(),\n scopeWorkspaceId: uuid(\"scope_workspace_id\"),\n scopeSubjectId: text(\"scope_subject_id\"),\n scopeKey: text(\"scope_key\").notNull(),\n };\n}\n\nfunction actorColumns() {\n return {\n actorKind: text(\"actor_kind\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\"),\n };\n}\n\nexport const knowledgeOperationReceipts = pgTable(\n \"knowledge_operation_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n operationKind: text(\"operation_kind\").notNull(),\n operationNamespace: text(\"operation_namespace\").notNull(),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n resultId: uuid(\"result_id\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operation: uniqueIndex(\"knowledge_operation_receipts_operation_uq\").on(\n table.accountId,\n table.operationKind,\n table.operationNamespace,\n table.operationId,\n ),\n result: index(\"knowledge_operation_receipts_result_idx\").on(\n table.operationKind,\n table.resultId,\n ),\n }),\n);\n\nexport const knowledgeProviders = pgTable(\n \"knowledge_providers\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n providerKey: text(\"provider_key\").notNull(),\n externalTenantId: text(\"external_tenant_id\").notNull(),\n lifecycleState: text(\"lifecycle_state\").notNull().default(\"active\"),\n lifecycleGeneration: bigint(\"lifecycle_generation\", { mode: \"number\" }).notNull().default(1),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n externalIdentity: uniqueIndex(\"knowledge_providers_external_identity_uq\").on(\n table.accountId,\n table.providerKey,\n table.externalTenantId,\n ),\n operation: uniqueIndex(\"knowledge_providers_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n scopeIdentity: uniqueIndex(\"knowledge_providers_scope_identity_uq\").on(\n table.accountId,\n table.id,\n table.scopeKey,\n ),\n scopeLifecycle: index(\"knowledge_providers_scope_lifecycle_idx\").on(\n table.accountId,\n table.scopeKey,\n table.lifecycleState,\n ),\n }),\n);\n\nexport const knowledgeSources = pgTable(\n \"knowledge_sources\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n providerId: uuid(\"provider_id\").notNull(),\n externalSourceId: text(\"external_source_id\").notNull(),\n sourceKind: text(\"source_kind\").notNull(),\n sourceUri: text(\"source_uri\"),\n currentAclGeneration: bigint(\"current_acl_generation\", { mode: \"number\" }),\n syncGeneration: bigint(\"sync_generation\", { mode: \"number\" }).notNull().default(0),\n syncCursor: text(\"sync_cursor\"),\n lifecycleState: text(\"lifecycle_state\").notNull().default(\"active\"),\n lifecycleGeneration: bigint(\"lifecycle_generation\", { mode: \"number\" }).notNull().default(1),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n externalIdentity: uniqueIndex(\"knowledge_sources_external_identity_uq\").on(\n table.providerId,\n table.externalSourceId,\n ),\n operation: uniqueIndex(\"knowledge_sources_operation_uq\").on(table.accountId, table.operationId),\n scopeIdentity: uniqueIndex(\"knowledge_sources_scope_identity_uq\").on(\n table.accountId,\n table.id,\n table.scopeKey,\n ),\n currentAcl: uniqueIndex(\"knowledge_sources_current_acl_identity_uq\").on(\n table.accountId,\n table.id,\n table.currentAclGeneration,\n ),\n provider: index(\"knowledge_sources_provider_idx\").on(table.providerId, table.externalSourceId),\n }),\n);\n\nexport const knowledgeSourceAclVersions = pgTable(\n \"knowledge_source_acl_versions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n sourceId: uuid(\"source_id\").notNull(),\n sourceScopeKey: text(\"source_scope_key\").notNull(),\n generation: bigint(\"generation\", { mode: \"number\" }).notNull(),\n aclVersion: text(\"acl_version\"),\n aclHash: text(\"acl_hash\").notNull(),\n agentAccess: boolean(\"agent_access\").notNull().default(true),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n sourceGeneration: uniqueIndex(\"knowledge_source_acl_versions_source_generation_uq\").on(\n table.accountId,\n table.sourceId,\n table.generation,\n ),\n sourceOperation: uniqueIndex(\"knowledge_source_acl_versions_source_operation_uq\").on(\n table.sourceId,\n table.operationId,\n ),\n sourceTimeline: index(\"knowledge_source_acl_versions_source_timeline_idx\").on(\n table.sourceId,\n table.generation,\n ),\n }),\n);\n\nexport const knowledgeSyncRuns = pgTable(\n \"knowledge_sync_runs\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n sourceId: uuid(\"source_id\").notNull(),\n inputSyncGeneration: bigint(\"input_sync_generation\", { mode: \"number\" }).notNull(),\n inputLifecycleGeneration: bigint(\"input_lifecycle_generation\", { mode: \"number\" }).notNull(),\n inputCursor: text(\"input_cursor\"),\n inputHash: text(\"input_hash\").notNull(),\n operationId: text(\"operation_id\").notNull(),\n state: text(\"state\").notNull().default(\"started\"),\n outputCursor: text(\"output_cursor\"),\n watermark: timestamp(\"watermark\", { withTimezone: true }),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n errorCode: text(\"error_code\"),\n completionHash: text(\"completion_hash\"),\n ...actorColumns(),\n startedAt: timestamp(\"started_at\", { withTimezone: true }).notNull().defaultNow(),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n },\n (table) => ({\n sourceOperation: uniqueIndex(\"knowledge_sync_runs_source_operation_uq\").on(\n table.sourceId,\n table.operationId,\n ),\n sourceState: index(\"knowledge_sync_runs_source_state_idx\").on(\n table.sourceId,\n table.state,\n table.startedAt,\n ),\n }),\n);\n\nexport const knowledgeSourceObjects = pgTable(\n \"knowledge_source_objects\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n sourceId: uuid(\"source_id\").notNull(),\n externalObjectId: text(\"external_object_id\").notNull(),\n documentId: uuid(\"document_id\"),\n lifecycleState: text(\"lifecycle_state\").notNull().default(\"active\"),\n lifecycleGeneration: bigint(\"lifecycle_generation\", { mode: \"number\" }).notNull().default(1),\n versionGeneration: bigint(\"version_generation\", { mode: \"number\" }).notNull().default(0),\n currentVersionId: uuid(\"current_version_id\"),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n externalIdentity: uniqueIndex(\"knowledge_source_objects_external_identity_uq\").on(\n table.sourceId,\n table.externalObjectId,\n ),\n sourceOperation: uniqueIndex(\"knowledge_source_objects_source_operation_uq\").on(\n table.sourceId,\n table.operationId,\n ),\n scopeIdentity: uniqueIndex(\"knowledge_source_objects_scope_identity_uq\").on(\n table.accountId,\n table.id,\n table.scopeKey,\n ),\n sourceIdentity: uniqueIndex(\"knowledge_source_objects_source_identity_uq\").on(\n table.accountId,\n table.id,\n table.sourceId,\n table.scopeKey,\n ),\n currentVersion: uniqueIndex(\"knowledge_source_objects_current_version_identity_uq\").on(\n table.accountId,\n table.id,\n table.currentVersionId,\n ),\n }),\n);\n\nexport const knowledgeDocumentVersions = pgTable(\n \"knowledge_document_versions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n sourceId: uuid(\"source_id\").notNull(),\n objectId: uuid(\"object_id\").notNull(),\n versionGeneration: bigint(\"version_generation\", { mode: \"number\" }).notNull(),\n externalVersionId: text(\"external_version_id\").notNull(),\n contentSha256: text(\"content_sha256\").notNull(),\n ingestionKey: text(\"ingestion_key\").notNull(),\n sourceCursor: text(\"source_cursor\"),\n sourceMetadata: jsonb(\"source_metadata\").$type<Record<string, unknown>>().notNull().default({}),\n sourceCreatedAt: timestamp(\"source_created_at\", { withTimezone: true }),\n sourceUpdatedAt: timestamp(\"source_updated_at\", { withTimezone: true }),\n observedAt: timestamp(\"observed_at\", { withTimezone: true }).notNull().defaultNow(),\n aclVersionId: uuid(\"acl_version_id\").notNull(),\n aclGeneration: bigint(\"acl_generation\", { mode: \"number\" }).notNull(),\n documentId: uuid(\"document_id\"),\n fileId: uuid(\"file_id\"),\n locationMetadata: jsonb(\"location_metadata\")\n .$type<Record<string, unknown>>()\n .notNull()\n .default({}),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n objectGeneration: uniqueIndex(\"knowledge_document_versions_object_generation_uq\").on(\n table.accountId,\n table.objectId,\n table.versionGeneration,\n ),\n objectExternalVersion: index(\"knowledge_document_versions_object_external_version_idx\").on(\n table.objectId,\n table.externalVersionId,\n ),\n objectIngestion: uniqueIndex(\"knowledge_document_versions_object_ingestion_uq\").on(\n table.objectId,\n table.ingestionKey,\n ),\n objectOperation: uniqueIndex(\"knowledge_document_versions_object_operation_uq\").on(\n table.objectId,\n table.operationId,\n ),\n objectIdentity: uniqueIndex(\"knowledge_document_versions_object_identity_uq\").on(\n table.accountId,\n table.objectId,\n table.id,\n ),\n scopeIdentity: uniqueIndex(\"knowledge_document_versions_scope_identity_uq\").on(\n table.accountId,\n table.id,\n table.scopeKey,\n ),\n }),\n);\n\nexport const knowledgeLifecycleEvents = pgTable(\n \"knowledge_lifecycle_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n targetKind: text(\"target_kind\").notNull(),\n providerId: uuid(\"provider_id\"),\n sourceId: uuid(\"source_id\"),\n objectId: uuid(\"object_id\"),\n eventType: text(\"event_type\").notNull(),\n oldState: text(\"old_state\").notNull(),\n newState: text(\"new_state\").notNull(),\n oldGeneration: bigint(\"old_generation\", { mode: \"number\" }).notNull(),\n newGeneration: bigint(\"new_generation\", { mode: \"number\" }).notNull(),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n reasonCode: text(\"reason_code\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n targetTimeline: index(\"knowledge_lifecycle_events_target_timeline_idx\").on(\n table.targetKind,\n table.providerId,\n table.sourceId,\n table.objectId,\n table.createdAt,\n ),\n }),\n);\n\nexport const knowledgeEntities = pgTable(\n \"knowledge_entities\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n entityType: text(\"entity_type\").notNull(),\n normalizedKey: text(\"normalized_key\").notNull(),\n displayName: text(\"display_name\").notNull(),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n naturalIdentity: uniqueIndex(\"knowledge_entities_natural_identity_uq\").on(\n table.accountId,\n table.scopeKey,\n table.entityType,\n table.normalizedKey,\n ),\n operation: uniqueIndex(\"knowledge_entities_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n scopeIdentity: uniqueIndex(\"knowledge_entities_scope_identity_uq\").on(\n table.accountId,\n table.id,\n table.scopeKey,\n ),\n }),\n);\n\nexport const knowledgeEntityAliases = pgTable(\n \"knowledge_entity_aliases\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n entityId: uuid(\"entity_id\").notNull(),\n entityType: text(\"entity_type\").notNull(),\n alias: text(\"alias\").notNull(),\n normalizedAlias: text(\"normalized_alias\").notNull(),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n naturalIdentity: uniqueIndex(\"knowledge_entity_aliases_natural_identity_uq\").on(\n table.accountId,\n table.scopeKey,\n table.entityType,\n table.normalizedAlias,\n ),\n operation: uniqueIndex(\"knowledge_entity_aliases_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n entity: index(\"knowledge_entity_aliases_entity_idx\").on(table.entityId, table.createdAt),\n }),\n);\n\nexport const knowledgeFacts = pgTable(\n \"knowledge_facts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n subjectEntityId: uuid(\"subject_entity_id\").notNull(),\n predicateKey: text(\"predicate_key\").notNull(),\n objectKind: text(\"object_kind\").notNull(),\n objectEntityId: uuid(\"object_entity_id\"),\n objectValue: jsonb(\"object_value\").$type<unknown>(),\n objectHash: text(\"object_hash\").notNull(),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n naturalIdentity: uniqueIndex(\"knowledge_facts_natural_identity_uq\").on(\n table.accountId,\n table.scopeKey,\n table.subjectEntityId,\n table.predicateKey,\n table.objectHash,\n ),\n operation: uniqueIndex(\"knowledge_facts_operation_uq\").on(table.accountId, table.operationId),\n scopeIdentity: uniqueIndex(\"knowledge_facts_scope_identity_uq\").on(\n table.accountId,\n table.id,\n table.scopeKey,\n ),\n }),\n);\n\nexport const knowledgeClaims = pgTable(\n \"knowledge_claims\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n factId: uuid(\"fact_id\").notNull(),\n origin: text(\"origin\").notNull(),\n confidenceBps: integer(\"confidence_bps\").notNull(),\n effectiveAt: timestamp(\"effective_at\", { withTimezone: true }).notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }),\n extractionMethod: text(\"extraction_method\").notNull(),\n extractionMetadata: jsonb(\"extraction_metadata\")\n .$type<Record<string, unknown>>()\n .notNull()\n .default({}),\n modelProvider: text(\"model_provider\"),\n modelName: text(\"model_name\"),\n modelVersion: text(\"model_version\"),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operation: uniqueIndex(\"knowledge_claims_operation_uq\").on(table.accountId, table.operationId),\n scopeIdentity: uniqueIndex(\"knowledge_claims_scope_identity_uq\").on(\n table.accountId,\n table.id,\n table.scopeKey,\n ),\n factTimeline: index(\"knowledge_claims_fact_timeline_idx\").on(\n table.factId,\n table.effectiveAt,\n table.createdAt,\n ),\n }),\n);\n\nexport const knowledgeClaimRelations = pgTable(\n \"knowledge_claim_relations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n relationType: text(\"relation_type\").notNull(),\n fromClaimId: uuid(\"from_claim_id\").notNull(),\n toClaimId: uuid(\"to_claim_id\").notNull(),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n naturalIdentity: uniqueIndex(\"knowledge_claim_relations_natural_identity_uq\").on(\n table.relationType,\n table.fromClaimId,\n table.toClaimId,\n ),\n operation: uniqueIndex(\"knowledge_claim_relations_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n }),\n);\n\nexport const knowledgeClaimEvidence = pgTable(\n \"knowledge_claim_evidence\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n claimId: uuid(\"claim_id\").notNull(),\n documentVersionId: uuid(\"document_version_id\"),\n taskNoteId: uuid(\"task_note_id\"),\n taskNoteRootSessionId: uuid(\"task_note_root_session_id\"),\n taskNoteVersion: integer(\"task_note_version\"),\n polarity: text(\"polarity\").notNull(),\n documentChunkId: uuid(\"document_chunk_id\"),\n chunkIndex: integer(\"chunk_index\"),\n locator: text(\"locator\"),\n quoteHash: text(\"quote_hash\"),\n contentHash: text(\"content_hash\").notNull(),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n documentNaturalIdentity: uniqueIndex(\"knowledge_claim_evidence_document_natural_identity_uq\")\n .on(\n table.claimId,\n table.documentVersionId,\n table.polarity,\n sql`coalesce(${table.documentChunkId}::text, '')`,\n sql`coalesce(${table.locator}, '')`,\n )\n .where(sql`${table.documentVersionId} is not null`),\n taskNoteNaturalIdentity: uniqueIndex(\"knowledge_claim_evidence_task_note_natural_identity_uq\")\n .on(table.claimId, table.taskNoteId, table.polarity)\n .where(sql`${table.taskNoteId} is not null`),\n operation: uniqueIndex(\"knowledge_claim_evidence_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n claimPolarity: index(\"knowledge_claim_evidence_claim_polarity_idx\").on(\n table.claimId,\n table.polarity,\n table.createdAt,\n ),\n }),\n);\n\nexport const knowledgeClaimReviews = pgTable(\n \"knowledge_claim_reviews\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n claimId: uuid(\"claim_id\").notNull(),\n reviewRevision: bigint(\"review_revision\", { mode: \"number\" })\n .notNull()\n .default(sql`nextval('knowledge_claim_review_revision_seq')`),\n state: text(\"state\").notNull(),\n reason: text(\"reason\").notNull(),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n claimRevision: uniqueIndex(\"knowledge_claim_reviews_claim_revision_uq\").on(\n table.claimId,\n table.reviewRevision,\n ),\n operation: uniqueIndex(\"knowledge_claim_reviews_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n claimTimeline: index(\"knowledge_claim_reviews_claim_timeline_idx\").on(\n table.claimId,\n table.reviewRevision,\n ),\n }),\n);\n\nexport const knowledgeChangeProposals = pgTable(\n \"knowledge_change_proposals\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n ...tenantScopeColumns(),\n targetKind: text(\"target_kind\").notNull(),\n targetScope: text(\"target_scope\").notNull(),\n targetKey: text(\"target_key\"),\n content: text(\"content\").notNull(),\n contentHash: text(\"content_hash\").notNull(),\n claimId: uuid(\"claim_id\").notNull(),\n evidenceId: uuid(\"evidence_id\").notNull(),\n status: text(\"status\").notNull().default(\"proposed\"),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n ...actorColumns(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operation: uniqueIndex(\"knowledge_change_proposals_operation_uq\").on(\n table.accountId,\n table.operationId,\n ),\n claimTimeline: index(\"knowledge_change_proposals_claim_timeline_idx\").on(\n table.claimId,\n table.createdAt,\n ),\n }),\n);\n","import {\n customType,\n index,\n integer,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\nimport { sql } from \"drizzle-orm\";\n\nconst xid8 = customType<{ data: string; driverData: string }>({\n dataType: () => \"xid8\",\n});\n\n// Cross-row validation, lifecycle-only mutation, exact-attempt authority,\n// restrictive session-visibility RLS, and grants are owned by migration 0239.\nexport const taskNotes = pgTable(\n \"task_notes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n rootSessionId: uuid(\"root_session_id\").notNull(),\n kind: text(\"kind\").notNull(),\n text: text(\"text\").notNull(),\n textHash: text(\"text_hash\").notNull(),\n status: text(\"status\").notNull().default(\"active\"),\n version: integer(\"version\").notNull().default(1),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createOperationId: uuid(\"create_operation_id\").notNull(),\n createInputHash: text(\"create_input_hash\").notNull(),\n createdByActorKind: text(\"created_by_actor_kind\").notNull(),\n createdByActorSubjectId: text(\"created_by_actor_subject_id\").notNull(),\n createdByInitiatingHumanSubjectId: text(\"created_by_initiating_human_subject_id\"),\n createdBySessionId: uuid(\"created_by_session_id\").notNull(),\n createdByTurnId: uuid(\"created_by_turn_id\").notNull(),\n createdByAttemptId: uuid(\"created_by_attempt_id\").notNull(),\n createdByExecutionGeneration: integer(\"created_by_execution_generation\").notNull(),\n archiveOperationId: uuid(\"archive_operation_id\"),\n archiveInputHash: text(\"archive_input_hash\"),\n archivedByActorKind: text(\"archived_by_actor_kind\"),\n archivedByActorSubjectId: text(\"archived_by_actor_subject_id\"),\n archivedByInitiatingHumanSubjectId: text(\"archived_by_initiating_human_subject_id\"),\n archivedBySessionId: uuid(\"archived_by_session_id\"),\n archivedByTurnId: uuid(\"archived_by_turn_id\"),\n archivedByAttemptId: uuid(\"archived_by_attempt_id\"),\n archivedByExecutionGeneration: integer(\"archived_by_execution_generation\"),\n archivedAt: timestamp(\"archived_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"task_notes_workspace_id_uq\").on(table.workspaceId, table.id),\n workspaceRootIdentity: uniqueIndex(\"task_notes_workspace_root_id_uq\").on(\n table.workspaceId,\n table.rootSessionId,\n table.id,\n ),\n createOperation: uniqueIndex(\"task_notes_workspace_create_operation_uq\").on(\n table.workspaceId,\n table.createOperationId,\n ),\n archiveOperation: uniqueIndex(\"task_notes_workspace_archive_operation_uq\")\n .on(table.workspaceId, table.archiveOperationId)\n .where(sql`${table.archiveOperationId} is not null`),\n rootActive: index(\"task_notes_root_active_idx\").on(\n table.workspaceId,\n table.rootSessionId,\n table.status,\n table.expiresAt,\n table.updatedAt,\n table.id,\n ),\n }),\n);\n\nexport const taskNoteEvents = pgTable(\n \"task_note_events\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n rootSessionId: uuid(\"root_session_id\").notNull(),\n noteId: uuid(\"note_id\").notNull(),\n eventType: text(\"event_type\").notNull(),\n noteVersion: integer(\"note_version\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n textHash: text(\"text_hash\").notNull(),\n reason: text(\"reason\"),\n actorKind: text(\"actor_kind\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\"),\n actorSessionId: uuid(\"actor_session_id\").notNull(),\n actorTurnId: uuid(\"actor_turn_id\").notNull(),\n actorAttemptId: uuid(\"actor_attempt_id\").notNull(),\n actorExecutionGeneration: integer(\"actor_execution_generation\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operation: uniqueIndex(\"task_note_events_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n noteVersion: uniqueIndex(\"task_note_events_note_version_uq\").on(\n table.workspaceId,\n table.noteId,\n table.noteVersion,\n ),\n rootTimeline: index(\"task_note_events_root_timeline_idx\").on(\n table.workspaceId,\n table.rootSessionId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n\nexport const taskNoteWriteCapabilities = pgTable(\n \"task_note_write_capabilities\",\n {\n backendPid: integer(\"backend_pid\").notNull(),\n transactionId: xid8(\"transaction_id\").notNull(),\n capabilityId: uuid(\"capability_id\").notNull(),\n },\n (table) => ({\n identity: uniqueIndex(\"task_note_write_capabilities_identity_uq\").on(\n table.backendPid,\n table.transactionId,\n table.capabilityId,\n ),\n }),\n);\n\n// Transaction-local, owner-only admission for the single Task-note evidence\n// insert materialized by a governed promotion. Migration 0260 owns its RLS,\n// one-shot trigger consumption, and runtime-role revocation.\nexport const taskNoteKnowledgePromotionCapabilities = pgTable(\n \"task_note_knowledge_promotion_capabilities\",\n {\n backendPid: integer(\"backend_pid\").notNull(),\n transactionId: xid8(\"transaction_id\").notNull(),\n capabilityId: uuid(\"capability_id\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n noteId: uuid(\"note_id\").notNull(),\n rootSessionId: uuid(\"root_session_id\").notNull(),\n noteVersion: integer(\"note_version\").notNull(),\n noteTextHash: text(\"note_text_hash\").notNull(),\n evidenceOperationId: text(\"evidence_operation_id\").notNull(),\n claimOperationId: text(\"claim_operation_id\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\").notNull(),\n learningPolicySnapshotId: uuid(\"learning_policy_snapshot_id\").notNull(),\n },\n (table) => ({\n identity: uniqueIndex(\"task_note_knowledge_promotion_capabilities_identity_uq\").on(\n table.backendPid,\n table.transactionId,\n table.capabilityId,\n ),\n }),\n);\n\n// Immutable, content-free lineage for one atomic archive + replacement create.\n// Migration 0260 owns exact constraints, FORCE RLS, and lifecycle-only writes.\nexport const taskNoteReplacementReceipts = pgTable(\n \"task_note_replacement_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n rootSessionId: uuid(\"root_session_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n replacedNoteId: uuid(\"replaced_note_id\").notNull(),\n replacedNoteVersion: integer(\"replaced_note_version\").notNull(),\n replacementNoteId: uuid(\"replacement_note_id\").notNull(),\n replacementNoteVersion: integer(\"replacement_note_version\").notNull(),\n archiveOperationId: uuid(\"archive_operation_id\").notNull(),\n createOperationId: uuid(\"create_operation_id\").notNull(),\n actorKind: text(\"actor_kind\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\"),\n actorSessionId: uuid(\"actor_session_id\").notNull(),\n actorTurnId: uuid(\"actor_turn_id\").notNull(),\n actorAttemptId: uuid(\"actor_attempt_id\").notNull(),\n actorExecutionGeneration: integer(\"actor_execution_generation\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"task_note_replacement_receipts_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n workspaceReplacement: uniqueIndex(\"task_note_replacement_receipts_workspace_replacement_uq\").on(\n table.workspaceId,\n table.replacementNoteId,\n ),\n rootTimeline: index(\"task_note_replacement_receipts_root_timeline_idx\").on(\n table.workspaceId,\n table.rootSessionId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n","import { sql } from \"drizzle-orm\";\nimport {\n customType,\n index,\n integer,\n pgTable,\n primaryKey,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\nconst xid8 = customType<{ data: string; driverData: string }>({\n dataType: () => \"xid8\",\n});\n\n// Exact lifecycle-only mutation, immutable revisions, FORCE RLS, and runtime\n// grants are owned by the work-claim migration. The application role receives\n// SELECT on the compact head plus EXECUTE on exact-attempt mutation routines,\n// never direct DML authority.\nexport const sessionWorkClaims = pgTable(\n \"session_work_claims\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n rootSessionId: uuid(\"root_session_id\").notNull(),\n subjectNamespace: text(\"subject_namespace\").notNull(),\n subjectType: text(\"subject_type\").notNull(),\n canonicalKey: text(\"canonical_key\").notNull(),\n subjectDigest: text(\"subject_digest\").notNull(),\n displayLabel: text(\"display_label\"),\n role: text(\"role\").notNull(),\n state: text(\"state\").notNull().default(\"active\"),\n revision: integer(\"revision\").notNull().default(1),\n provenance: text(\"provenance\").notNull(),\n versionKind: text(\"version_kind\"),\n versionValue: text(\"version_value\"),\n observedAt: timestamp(\"observed_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n settledAt: timestamp(\"settled_at\", { withTimezone: true }),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"session_work_claims_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n activeIdentity: uniqueIndex(\"session_work_claims_active_identity_uq\")\n .on(\n table.workspaceId,\n table.sessionId,\n table.subjectNamespace,\n table.subjectType,\n table.subjectDigest,\n table.role,\n )\n .where(sql`${table.state} = 'active'`),\n sessionState: index(\"session_work_claims_session_state_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.state,\n table.updatedAt,\n table.id,\n ),\n subjectState: index(\"session_work_claims_subject_state_idx\").on(\n table.workspaceId,\n table.subjectNamespace,\n table.subjectType,\n table.subjectDigest,\n table.state,\n table.updatedAt,\n table.id,\n ),\n }),\n);\n\nexport const sessionWorkClaimRevisions = pgTable(\n \"session_work_claim_revisions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n claimId: uuid(\"claim_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n rootSessionId: uuid(\"root_session_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n mutationKind: text(\"mutation_kind\").notNull(),\n priorRevision: integer(\"prior_revision\"),\n resultingRevision: integer(\"resulting_revision\").notNull(),\n subjectNamespace: text(\"subject_namespace\").notNull(),\n subjectType: text(\"subject_type\").notNull(),\n canonicalKey: text(\"canonical_key\").notNull(),\n subjectDigest: text(\"subject_digest\").notNull(),\n displayLabel: text(\"display_label\"),\n role: text(\"role\").notNull(),\n state: text(\"state\").notNull(),\n provenance: text(\"provenance\").notNull(),\n versionKind: text(\"version_kind\"),\n versionValue: text(\"version_value\"),\n observedAt: timestamp(\"observed_at\", { withTimezone: true }).notNull(),\n claimCreatedAt: timestamp(\"claim_created_at\", { withTimezone: true }).notNull(),\n claimUpdatedAt: timestamp(\"claim_updated_at\", { withTimezone: true }).notNull(),\n settledAt: timestamp(\"settled_at\", { withTimezone: true }),\n actorKind: text(\"actor_kind\").notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n actorSessionId: uuid(\"actor_session_id\"),\n actorTurnId: uuid(\"actor_turn_id\"),\n actorAttemptId: uuid(\"actor_attempt_id\"),\n actorExecutionGeneration: integer(\"actor_execution_generation\"),\n reason: text(\"reason\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operation: uniqueIndex(\"session_work_claim_revisions_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n claimRevision: uniqueIndex(\"session_work_claim_revisions_claim_revision_uq\").on(\n table.workspaceId,\n table.claimId,\n table.resultingRevision,\n ),\n sessionTimeline: index(\"session_work_claim_revisions_session_timeline_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n\nexport const sessionWorkClaimWriteCapabilities = pgTable(\n \"session_work_claim_write_capabilities\",\n {\n backendPid: integer(\"backend_pid\").notNull(),\n transactionId: xid8(\"transaction_id\").notNull(),\n capabilityId: uuid(\"capability_id\").notNull(),\n },\n (table) => ({\n identity: primaryKey({\n columns: [table.backendPid, table.transactionId, table.capabilityId],\n }),\n }),\n);\n","import {\n boolean,\n index,\n integer,\n jsonb,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\nimport type { CompanyBrainMemorySelectionReference } from \"./company-brain-context-selection\";\n\n/**\n * Content-free accepted-logical-turn selection receipt. Migration 0259 owns\n * the exact-attempt writer, immutable trigger, FORCE-RLS policy, and grants.\n */\nexport const companyBrainContextSelectionReceipts = pgTable(\n \"company_brain_context_selection_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n rootSessionId: uuid(\"root_session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n createdByAttemptId: uuid(\"created_by_attempt_id\").notNull(),\n createdByExecutionGeneration: integer(\"created_by_execution_generation\").notNull(),\n acceptedAt: timestamp(\"accepted_at\", { withTimezone: true }).notNull(),\n sessionRole: text(\"session_role\").notNull(),\n memoryEnabled: boolean(\"memory_enabled\").notNull(),\n memoryPromptMode: text(\"memory_prompt_mode\").notNull(),\n companyProfileIncluded: boolean(\"company_profile_included\").notNull(),\n instructionPolicyEntryHash: text(\"instruction_policy_entry_hash\").notNull(),\n preferenceDescriptorHash: text(\"preference_descriptor_hash\"),\n companyProfileSnapshotHash: text(\"company_profile_snapshot_hash\").notNull(),\n turnContextSnapshotId: uuid(\"turn_context_snapshot_id\").notNull(),\n turnContextSnapshotHash: text(\"turn_context_snapshot_hash\").notNull(),\n turnContextSnapshotSource: text(\"turn_context_snapshot_source\").notNull(),\n memorySelections: jsonb(\"memory_selections\")\n .$type<readonly CompanyBrainMemorySelectionReference[]>()\n .notNull(),\n renderedMemorySelections: jsonb(\"rendered_memory_selections\")\n .$type<readonly CompanyBrainMemorySelectionReference[]>()\n .notNull(),\n selectionHash: text(\"selection_hash\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n logicalTurn: uniqueIndex(\"company_brain_context_selection_turn_uq\").on(\n table.workspaceId,\n table.turnId,\n ),\n workspaceTimeline: index(\"company_brain_context_selection_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n\n/**\n * Exact bounded accepted-turn authority that may contain the legacy workspace\n * instruction fallback. It is deliberately separate from the content-free\n * selection receipt and has no direct runtime table privileges.\n */\nexport const companyBrainTurnContextSnapshots = pgTable(\n \"company_brain_turn_context_snapshots\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n rootSessionId: uuid(\"root_session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n acceptedAt: timestamp(\"accepted_at\", { withTimezone: true }).notNull(),\n memoryEnabled: boolean(\"memory_enabled\").notNull(),\n memoryPromptMode: text(\"memory_prompt_mode\").notNull(),\n legacyWorkspaceInstructions: text(\"legacy_workspace_instructions\"),\n legacyWorkspaceInstructionsOriginalUtf8Bytes: integer(\n \"legacy_workspace_instructions_original_utf8_bytes\",\n ),\n legacyWorkspaceInstructionsTruncated: boolean(\n \"legacy_workspace_instructions_truncated\",\n ).notNull(),\n snapshotSource: text(\"snapshot_source\").notNull(),\n snapshotHash: text(\"snapshot_hash\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n logicalTurn: uniqueIndex(\"company_brain_turn_context_snapshot_turn_uq\").on(\n table.workspaceId,\n table.turnId,\n ),\n workspaceIdentity: uniqueIndex(\"company_brain_turn_context_snapshot_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n }),\n);\n","import type { GovernedLearningDecisionReason } from \"@opengeni/contracts\";\nimport {\n bigint,\n boolean,\n index,\n integer,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\n/**\n * Immutable, content-free evaluator evidence. Migration 0268 owns the exact\n * foreign keys, checks, FORCE-RLS policies, trigger, and runtime privileges.\n */\nexport const governedLearningDecisionReceipts = pgTable(\n \"governed_learning_decision_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\").notNull(),\n attemptId: uuid(\"attempt_id\").notNull(),\n executionGeneration: integer(\"execution_generation\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\").notNull(),\n policySnapshotId: uuid(\"policy_snapshot_id\").notNull(),\n policySnapshotHash: text(\"policy_snapshot_hash\").notNull(),\n policyRevisionId: uuid(\"policy_revision_id\"),\n policyActivationVersion: bigint(\"policy_activation_version\", { mode: \"number\" }).notNull(),\n sourceKind: text(\"source_kind\").notNull(),\n sourceId: uuid(\"source_id\").notNull(),\n proposalId: uuid(\"proposal_id\").notNull(),\n proposalInputHash: text(\"proposal_input_hash\").notNull(),\n proposalContentHash: text(\"proposal_content_hash\").notNull(),\n claimId: uuid(\"claim_id\").notNull(),\n claimInputHash: text(\"claim_input_hash\").notNull(),\n evidenceId: uuid(\"evidence_id\").notNull(),\n evidenceInputHash: text(\"evidence_input_hash\").notNull(),\n evidenceContentHash: text(\"evidence_content_hash\").notNull(),\n evidenceAuthorityHash: text(\"evidence_authority_hash\").notNull(),\n reviewRevision: bigint(\"review_revision\", { mode: \"number\" }).notNull(),\n reviewState: text(\"review_state\").notNull(),\n effectiveMode: text(\"effective_mode\").notNull(),\n confidenceBps: integer(\"confidence_bps\").notNull(),\n conflictCount: integer(\"conflict_count\").notNull(),\n outcome: text(\"outcome\").notNull(),\n reasonCodes: text(\"reason_codes\").array().$type<GovernedLearningDecisionReason[]>().notNull(),\n automaticEligible: boolean(\"automatic_eligible\").notNull(),\n confidenceFloorBps: integer(\"confidence_floor_bps\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"governed_learning_decision_receipts_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n snapshotProposal: uniqueIndex(\"governed_learning_decision_receipts_snapshot_proposal_uq\").on(\n table.policySnapshotId,\n table.proposalId,\n ),\n workspaceTimeline: index(\"governed_learning_decision_receipts_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n","import {\n bigint,\n check,\n index,\n pgTable,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\nimport { sql } from \"drizzle-orm\";\n\n/** Migration 0269 owns exact foreign keys, RLS, immutability and lifecycle checks. */\nexport const governedLearningActivationReceipts = pgTable(\n \"governed_learning_activation_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n decisionReceiptId: uuid(\"decision_receipt_id\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\").notNull(),\n serviceActorSubjectId: text(\"service_actor_subject_id\").notNull(),\n policyRevisionId: uuid(\"policy_revision_id\").notNull(),\n policyHash: text(\"policy_hash\").notNull(),\n policyActivationVersion: bigint(\"policy_activation_version\", { mode: \"number\" }).notNull(),\n sourceKind: text(\"source_kind\").notNull(),\n sourceId: uuid(\"source_id\").notNull(),\n sourceAuthorityHash: text(\"source_authority_hash\").notNull(),\n proposalId: uuid(\"proposal_id\").notNull(),\n claimId: uuid(\"claim_id\").notNull(),\n evidenceId: uuid(\"evidence_id\").notNull(),\n knowledgePreviousReviewId: uuid(\"knowledge_previous_review_id\").notNull(),\n knowledgePreviousReviewRevision: bigint(\"knowledge_previous_review_revision\", {\n mode: \"number\",\n }).notNull(),\n knowledgeApprovalReviewId: uuid(\"knowledge_approval_review_id\").notNull(),\n knowledgeApprovalReviewRevision: bigint(\"knowledge_approval_review_revision\", {\n mode: \"number\",\n }).notNull(),\n knowledgeApprovalInputHash: text(\"knowledge_approval_input_hash\").notNull(),\n destination: text(\"destination\").notNull(),\n destinationProposalId: uuid(\"destination_proposal_id\").notNull(),\n destinationRevisionId: uuid(\"destination_revision_id\").notNull(),\n destinationOldRevisionId: uuid(\"destination_old_revision_id\"),\n destinationOldContentHash: text(\"destination_old_content_hash\"),\n destinationOldVersion: bigint(\"destination_old_version\", { mode: \"number\" }).notNull(),\n destinationNewContentHash: text(\"destination_new_content_hash\").notNull(),\n destinationNewVersion: bigint(\"destination_new_version\", { mode: \"number\" }).notNull(),\n destinationEventId: uuid(\"destination_event_id\").notNull(),\n // Added by migration 0272 alongside human-confirmed activation; the schema\n // file had not caught up.\n authorityKind: text(\"authority_kind\").notNull().default(\"automatic\"),\n humanInputRequestId: uuid(\"human_input_request_id\"),\n effectiveAt: timestamp(\"effective_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operation: uniqueIndex(\"governed_learning_activation_receipts_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n decision: uniqueIndex(\"governed_learning_activation_receipts_decision_uq\").on(\n table.decisionReceiptId,\n ),\n timeline: index(\"governed_learning_activation_receipts_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n hash: check(\n \"governed_learning_activation_receipts_hash_chk\",\n sql`${table.inputHash} ~ '^[0-9a-f]{64}$'`,\n ),\n }),\n);\n\nexport const governedLearningActivationUndoReceipts = pgTable(\n \"governed_learning_activation_undo_receipts\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n activationReceiptId: uuid(\"activation_receipt_id\").notNull(),\n initiatingHumanSubjectId: text(\"initiating_human_subject_id\").notNull(),\n serviceActorSubjectId: text(\"service_actor_subject_id\").notNull(),\n destination: text(\"destination\").notNull(),\n knowledgeApprovalReviewId: uuid(\"knowledge_approval_review_id\").notNull(),\n knowledgeRevocationReviewId: uuid(\"knowledge_revocation_review_id\").notNull(),\n knowledgeRevocationReviewRevision: bigint(\"knowledge_revocation_review_revision\", {\n mode: \"number\",\n }).notNull(),\n knowledgeRevocationInputHash: text(\"knowledge_revocation_input_hash\").notNull(),\n destinationActivatedRevisionId: uuid(\"destination_activated_revision_id\").notNull(),\n destinationRestoredRevisionId: uuid(\"destination_restored_revision_id\"),\n destinationActivatedContentHash: text(\"destination_activated_content_hash\").notNull(),\n destinationRestoredContentHash: text(\"destination_restored_content_hash\"),\n destinationOldVersion: bigint(\"destination_old_version\", { mode: \"number\" }).notNull(),\n destinationNewVersion: bigint(\"destination_new_version\", { mode: \"number\" }).notNull(),\n destinationEventId: uuid(\"destination_event_id\").notNull(),\n effectiveAt: timestamp(\"effective_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n operation: uniqueIndex(\"governed_learning_activation_undo_receipts_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n activation: uniqueIndex(\"governed_learning_activation_undo_receipts_activation_uq\").on(\n table.activationReceiptId,\n ),\n timeline: index(\"governed_learning_activation_undo_receipts_workspace_time_idx\").on(\n table.workspaceId,\n table.createdAt,\n table.id,\n ),\n }),\n);\n","import {\n bigint,\n boolean,\n index,\n integer,\n jsonb,\n pgTable,\n primaryKey,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\nexport const knowledgeSourceSyncStates = pgTable(\n \"knowledge_source_sync_states\",\n {\n sourceId: uuid(\"source_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n scheduledTaskId: uuid(\"scheduled_task_id\").notNull(),\n sourceSyncGeneration: bigint(\"source_sync_generation\", { mode: \"number\" }).notNull(),\n sourceLifecycleGeneration: bigint(\"source_lifecycle_generation\", { mode: \"number\" }).notNull(),\n sourceConfigGeneration: bigint(\"source_config_generation\", { mode: \"number\" }).notNull(),\n controlWorkspaceId: uuid(\"control_workspace_id\").notNull(),\n providerCoordinationKey: text(\"provider_coordination_key\").notNull(),\n connectionId: uuid(\"connection_id\").notNull(),\n connectionVersion: bigint(\"connection_version\", { mode: \"number\" }).notNull(),\n connectionProviderDomain: text(\"connection_provider_domain\").notNull(),\n connectionKind: text(\"connection_kind\").notNull(),\n connectionOwnerSubjectId: text(\"connection_owner_subject_id\").notNull(),\n initiatingSubjectId: text(\"initiating_subject_id\").notNull(),\n destination: jsonb(\"destination\").$type<Record<string, unknown>>().notNull(),\n executionCheckpoint: jsonb(\"execution_checkpoint\").$type<Record<string, unknown>>(),\n executionCheckpointGeneration: bigint(\"execution_checkpoint_generation\", {\n mode: \"number\",\n })\n .notNull()\n .default(0),\n activeScanGeneration: bigint(\"active_scan_generation\", { mode: \"number\" }).notNull().default(0),\n providerCursor: jsonb(\"provider_cursor\").$type<Record<string, unknown>>(),\n wakeRevision: bigint(\"wake_revision\", { mode: \"number\" }).notNull().default(0),\n pendingWakeCount: integer(\"pending_wake_count\").notNull().default(0),\n leaseId: uuid(\"lease_id\"),\n leaseUntil: timestamp(\"lease_until\", { withTimezone: true }),\n bufferedWake: boolean(\"buffered_wake\").notNull().default(false),\n bufferedScheduledTaskRunId: uuid(\"buffered_scheduled_task_run_id\"),\n reconnectRequired: boolean(\"reconnect_required\").notNull().default(false),\n lastSuccessAt: timestamp(\"last_success_at\", { withTimezone: true }),\n lastCompletedAt: timestamp(\"last_completed_at\", { withTimezone: true }),\n lastSummary: jsonb(\"last_summary\").$type<Record<string, unknown>>(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n task: uniqueIndex(\"knowledge_source_sync_states_task_uq\").on(table.scheduledTaskId),\n due: index(\"knowledge_source_sync_states_due_idx\").on(\n table.workspaceId,\n table.bufferedWake,\n table.leaseUntil,\n table.updatedAt,\n ),\n }),\n);\n\nexport const knowledgeSourceSyncObjectObservations = pgTable(\n \"knowledge_source_sync_object_observations\",\n {\n sourceId: uuid(\"source_id\").notNull(),\n externalObjectId: text(\"external_object_id\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n scheduledTaskRunId: uuid(\"scheduled_task_run_id\"),\n scanGeneration: bigint(\"scan_generation\", { mode: \"number\" }).notNull(),\n providerRevision: text(\"provider_revision\"),\n metadataHash: text(\"metadata_hash\"),\n observedAt: timestamp(\"observed_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: uniqueIndex(\"knowledge_source_sync_object_observations_identity_uq\").on(\n table.sourceId,\n table.externalObjectId,\n ),\n scan: index(\"knowledge_source_sync_object_observations_scan_idx\").on(\n table.workspaceId,\n table.sourceId,\n table.scanGeneration,\n ),\n }),\n);\n\nexport const knowledgeSourceSyncItemOutcomes = pgTable(\n \"knowledge_source_sync_item_outcomes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n scheduledTaskRunId: uuid(\"scheduled_task_run_id\").notNull(),\n knowledgeSyncRunId: uuid(\"knowledge_sync_run_id\"),\n sourceId: uuid(\"source_id\").notNull(),\n sourceConfigGeneration: bigint(\"source_config_generation\", { mode: \"number\" }).notNull(),\n sourceLifecycleGeneration: bigint(\"source_lifecycle_generation\", { mode: \"number\" }).notNull(),\n externalObjectId: text(\"external_object_id\").notNull(),\n providerRevision: text(\"provider_revision\"),\n metadataHash: text(\"metadata_hash\"),\n aclEligibility: text(\"acl_eligibility\").notNull().default(\"pending\"),\n aclEvidence: jsonb(\"acl_evidence\").$type<Record<string, unknown>>(),\n indexObligationId: uuid(\"index_obligation_id\"),\n outcome: text(\"outcome\").notNull(),\n reasonCode: text(\"reason_code\"),\n detail: text(\"detail\"),\n contentSha256: text(\"content_sha256\"),\n sizeBytes: bigint(\"size_bytes\", { mode: \"number\" }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: uniqueIndex(\"knowledge_source_sync_item_outcomes_identity_uq\").on(\n table.scheduledTaskRunId,\n table.externalObjectId,\n ),\n run: index(\"knowledge_source_sync_item_outcomes_run_idx\").on(\n table.workspaceId,\n table.scheduledTaskRunId,\n table.createdAt,\n ),\n }),\n);\n\nexport const knowledgeSourceSyncWakes = pgTable(\n \"knowledge_source_sync_wakes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sourceId: uuid(\"source_id\").notNull(),\n scheduledTaskId: uuid(\"scheduled_task_id\").notNull(),\n scheduledTaskRunId: uuid(\"scheduled_task_run_id\").notNull(),\n cause: text(\"cause\").notNull(),\n producerKey: text(\"producer_key\").notNull(),\n sourceConfigGeneration: bigint(\"source_config_generation\", { mode: \"number\" }).notNull(),\n sourceLifecycleGeneration: bigint(\"source_lifecycle_generation\", { mode: \"number\" }).notNull(),\n coalesced: boolean(\"coalesced\").notNull().default(false),\n claimedAt: timestamp(\"claimed_at\", { withTimezone: true }),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n run: uniqueIndex(\"knowledge_source_sync_wakes_run_uq\").on(table.scheduledTaskRunId),\n pending: index(\"knowledge_source_sync_wakes_pending_idx\").on(\n table.workspaceId,\n table.sourceId,\n table.completedAt,\n table.createdAt,\n ),\n }),\n);\n\nexport const knowledgeSourceSyncIndexObligations = pgTable(\n \"knowledge_source_sync_index_obligations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n scheduledTaskRunId: uuid(\"scheduled_task_run_id\"),\n sourceId: uuid(\"source_id\").notNull(),\n sourceSyncGeneration: bigint(\"source_sync_generation\", { mode: \"number\" }).notNull(),\n initiatingSubjectId: text(\"initiating_subject_id\").notNull(),\n externalObjectId: text(\"external_object_id\").notNull(),\n knowledgeSourceObjectId: uuid(\"knowledge_source_object_id\").notNull(),\n knowledgeDocumentVersionId: uuid(\"knowledge_document_version_id\").notNull(),\n documentId: uuid(\"document_id\").notNull(),\n sourceConfigGeneration: bigint(\"source_config_generation\", { mode: \"number\" }).notNull(),\n sourceLifecycleGeneration: bigint(\"source_lifecycle_generation\", { mode: \"number\" }).notNull(),\n objectLifecycleGeneration: bigint(\"object_lifecycle_generation\", { mode: \"number\" }).notNull(),\n objectVersionGeneration: bigint(\"object_version_generation\", { mode: \"number\" }).notNull(),\n citationLocator: jsonb(\"citation_locator\").$type<Record<string, unknown>>().notNull(),\n googleDriveAclEvidenceId: uuid(\"google_drive_acl_evidence_id\"),\n aclEligibility: text(\"acl_eligibility\").notNull().default(\"pending\"),\n status: text(\"status\").notNull().default(\"pending\"),\n failureCode: text(\"failure_code\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n version: uniqueIndex(\"knowledge_source_sync_index_obligations_version_uq\").on(\n table.knowledgeDocumentVersionId,\n ),\n pending: index(\"knowledge_source_sync_index_obligations_pending_idx\").on(\n table.workspaceId,\n table.status,\n table.createdAt,\n ),\n }),\n);\n\nexport const googleDriveObjectAclEvidence = pgTable(\n \"google_drive_object_acl_evidence\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sourceId: uuid(\"source_id\").notNull(),\n knowledgeSourceObjectId: uuid(\"knowledge_source_object_id\").notNull(),\n knowledgeDocumentVersionId: uuid(\"knowledge_document_version_id\").notNull(),\n documentId: uuid(\"document_id\").notNull(),\n fileId: uuid(\"file_id\").notNull(),\n indexObligationId: uuid(\"index_obligation_id\").notNull(),\n connectionId: uuid(\"connection_id\").notNull(),\n connectionVersion: bigint(\"connection_version\", { mode: \"number\" }).notNull(),\n sourcePrincipalHash: text(\"source_principal_hash\").notNull(),\n sourceSyncGeneration: bigint(\"source_sync_generation\", { mode: \"number\" }).notNull(),\n sourceConfigGeneration: bigint(\"source_config_generation\", { mode: \"number\" }).notNull(),\n sourceLifecycleGeneration: bigint(\"source_lifecycle_generation\", { mode: \"number\" }).notNull(),\n objectLifecycleGeneration: bigint(\"object_lifecycle_generation\", {\n mode: \"number\",\n }).notNull(),\n objectVersionGeneration: bigint(\"object_version_generation\", { mode: \"number\" }).notNull(),\n providerRevision: text(\"provider_revision\"),\n driveId: text(\"drive_id\"),\n aclRevision: text(\"acl_revision\").notNull(),\n aclHash: text(\"acl_hash\").notNull(),\n eligibility: text(\"eligibility\").notNull(),\n observedAt: timestamp(\"observed_at\", { withTimezone: true }).notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n citationLocator: jsonb(\"citation_locator\").$type<Record<string, unknown>>().notNull(),\n operationId: text(\"operation_id\").notNull(),\n inputHash: text(\"input_hash\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n obligationOperation: uniqueIndex(\"google_drive_object_acl_evidence_obligation_uq\").on(\n table.indexObligationId,\n table.operationId,\n ),\n version: index(\"google_drive_object_acl_evidence_version_idx\").on(\n table.knowledgeDocumentVersionId,\n table.expiresAt,\n table.createdAt,\n ),\n file: index(\"google_drive_object_acl_evidence_file_idx\").on(\n table.accountId,\n table.fileId,\n table.expiresAt,\n ),\n }),\n);\n\nexport const googleDriveObjectAclPrincipals = pgTable(\n \"google_drive_object_acl_principals\",\n {\n evidenceId: uuid(\"evidence_id\").notNull(),\n ordinal: integer(\"ordinal\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n principalType: text(\"principal_type\").notNull(),\n permissionIdHash: text(\"permission_id_hash\"),\n emailHash: text(\"email_hash\"),\n domainHash: text(\"domain_hash\"),\n role: text(\"role\").notNull(),\n inherited: boolean(\"inherited\").notNull().default(false),\n allowFileDiscovery: boolean(\"allow_file_discovery\"),\n expirationTime: timestamp(\"expiration_time\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({ columns: [table.evidenceId, table.ordinal] }),\n match: index(\"google_drive_object_acl_principals_match_idx\").on(\n table.evidenceId,\n table.principalType,\n table.permissionIdHash,\n table.emailHash,\n table.domainHash,\n ),\n }),\n);\n","import { sql } from \"drizzle-orm\";\nimport { losslessCodecVersion, losslessText } from \"./lossless-columns\";\nimport {\n boolean,\n check,\n index,\n integer,\n jsonb,\n pgTable,\n primaryKey,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\nexport const transcriptionRecordingStateValues = [\n \"uploading\",\n \"segmenting\",\n \"ready\",\n \"transcribing\",\n \"complete\",\n \"failed\",\n \"discarded\",\n] as const;\n\nexport const transcriptionRecordingChunkStateValues = [\"uploading\", \"complete\"] as const;\nexport const transcriptionRecordingObjectKindValues = [\"chunk\", \"segment\"] as const;\n\nexport const transcriptionRecordingSegmentStateValues = [\n \"preparing\",\n \"pending\",\n \"transcribing\",\n \"complete\",\n \"failed\",\n] as const;\n\nexport const transcriptionRecordings = pgTable(\n \"transcription_recordings\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n mimeType: text(\"mime_type\").notNull(),\n state: text(\"state\", { enum: transcriptionRecordingStateValues })\n .notNull()\n .default(\"uploading\"),\n nextChunkNumber: integer(\"next_chunk_number\").notNull().default(0),\n chunkCount: integer(\"chunk_count\").notNull().default(0),\n totalBytes: integer(\"total_bytes\").notNull().default(0),\n totalDurationMilliseconds: integer(\"total_duration_milliseconds\").notNull().default(0),\n segmentCount: integer(\"segment_count\").notNull().default(0),\n completedSegmentCount: integer(\"completed_segment_count\").notNull().default(0),\n transcriptText: losslessText(\"transcript_text\"),\n transcriptTextCodecVersion: losslessCodecVersion(\"transcript_text_codec_version\"),\n languages: jsonb(\"languages\").$type<string[]>().notNull().default([]),\n errorCode: text(\"error_code\"),\n retryable: boolean(\"retryable\").notNull().default(false),\n providerId: text(\"provider_id\"),\n processingGeneration: integer(\"processing_generation\").notNull().default(0),\n processingOwner: uuid(\"processing_owner\"),\n processingStartedAt: timestamp(\"processing_started_at\", { withTimezone: true }),\n objectsCleanedAt: timestamp(\"objects_cleaned_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n },\n (table) => ({\n exactAuthority: uniqueIndex(\"transcription_recordings_exact_authority_uq\").on(\n table.accountId,\n table.workspaceId,\n table.subjectId,\n table.id,\n ),\n subjectCreated: index(\"transcription_recordings_subject_created_idx\").on(\n table.workspaceId,\n table.subjectId,\n table.createdAt,\n ),\n expiry: index(\"transcription_recordings_expiry_idx\").on(table.expiresAt, table.id),\n valuesValid: check(\n \"transcription_recordings_values_check\",\n sql`${table.nextChunkNumber} >= 0\n and ${table.chunkCount} >= 0\n and ${table.totalBytes} >= 0\n and ${table.totalDurationMilliseconds} >= 0\n and ${table.segmentCount} >= 0\n and ${table.completedSegmentCount} >= 0\n and ${table.completedSegmentCount} <= ${table.segmentCount}\n and octet_length(${table.subjectId}) between 1 and 1024\n and octet_length(${table.mimeType}) between 1 and 128\n and (\n ${table.providerId} is null\n or octet_length(${table.providerId}) between 1 and 128\n )`,\n ),\n processingValid: check(\n \"transcription_recordings_processing_check\",\n sql`(\n ${table.processingOwner} is null\n and ${table.processingStartedAt} is null\n ) or (\n ${table.processingOwner} is not null\n and ${table.processingStartedAt} is not null\n )`,\n ),\n }),\n);\n\nexport const transcriptionRecordingObjects = pgTable(\n \"transcription_recording_objects\",\n {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n recordingId: uuid(\"recording_id\").notNull(),\n objectKey: text(\"object_key\").primaryKey(),\n kind: text(\"kind\", { enum: transcriptionRecordingObjectKindValues }).notNull(),\n cleanupAfter: timestamp(\"cleanup_after\", { withTimezone: true }).notNull(),\n cleanupClaimId: uuid(\"cleanup_claim_id\"),\n cleanupClaimedAt: timestamp(\"cleanup_claimed_at\", { withTimezone: true }),\n cleanedAt: timestamp(\"cleaned_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n dueCleanup: index(\"transcription_recording_objects_due_cleanup_idx\")\n .on(table.cleanupAfter, table.objectKey)\n .where(sql`${table.cleanedAt} is null`),\n claimRecovery: index(\"transcription_recording_objects_claim_recovery_idx\")\n .on(table.cleanupClaimedAt, table.objectKey)\n .where(sql`${table.cleanedAt} is null and ${table.cleanupClaimId} is not null`),\n valuesValid: check(\n \"transcription_recording_objects_values_check\",\n sql`octet_length(${table.objectKey}) between 1 and 1024\n and (\n (${table.cleanupClaimId} is null and ${table.cleanupClaimedAt} is null)\n or (${table.cleanupClaimId} is not null and ${table.cleanupClaimedAt} is not null)\n )\n and (\n ${table.cleanedAt} is null\n or (${table.cleanupClaimId} is null and ${table.cleanupClaimedAt} is null)\n )`,\n ),\n }),\n);\n\nexport const transcriptionRecordingChunks = pgTable(\n \"transcription_recording_chunks\",\n {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n recordingId: uuid(\"recording_id\").notNull(),\n chunkNumber: integer(\"chunk_number\").notNull(),\n state: text(\"state\", { enum: transcriptionRecordingChunkStateValues })\n .notNull()\n .default(\"uploading\"),\n byteLength: integer(\"byte_length\").notNull(),\n sha256: text(\"sha256\").notNull(),\n startMilliseconds: integer(\"start_milliseconds\").notNull(),\n durationMilliseconds: integer(\"duration_milliseconds\").notNull(),\n objectKey: text(\"object_key\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n completedAt: timestamp(\"completed_at\", { withTimezone: true }),\n },\n (table) => ({\n pk: primaryKey({\n name: \"transcription_recording_chunks_pk\",\n columns: [table.recordingId, table.chunkNumber],\n }),\n recordingOrder: index(\"transcription_recording_chunks_order_idx\").on(\n table.workspaceId,\n table.recordingId,\n table.chunkNumber,\n ),\n objectKey: uniqueIndex(\"transcription_recording_chunks_object_key_uq\").on(table.objectKey),\n valuesValid: check(\n \"transcription_recording_chunks_values_check\",\n sql`${table.chunkNumber} >= 0\n and ${table.byteLength} > 0\n and ${table.startMilliseconds} >= 0\n and ${table.durationMilliseconds} >= 0\n and ${table.sha256} ~ '^[0-9a-f]{64}$'\n and octet_length(${table.objectKey}) between 1 and 1024\n and (\n (${table.state} = 'uploading' and ${table.completedAt} is null)\n or (${table.state} = 'complete' and ${table.completedAt} is not null)\n )`,\n ),\n }),\n);\n\nexport const transcriptionRecordingSegments = pgTable(\n \"transcription_recording_segments\",\n {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n subjectId: text(\"subject_id\").notNull(),\n recordingId: uuid(\"recording_id\").notNull(),\n segmentNumber: integer(\"segment_number\").notNull(),\n generation: integer(\"generation\").notNull(),\n state: text(\"state\", { enum: transcriptionRecordingSegmentStateValues })\n .notNull()\n .default(\"preparing\"),\n byteLength: integer(\"byte_length\").notNull(),\n sha256: text(\"sha256\").notNull(),\n startMilliseconds: integer(\"start_milliseconds\").notNull(),\n durationMilliseconds: integer(\"duration_milliseconds\").notNull(),\n objectKey: text(\"object_key\").notNull(),\n attemptId: uuid(\"attempt_id\"),\n attemptStartedAt: timestamp(\"attempt_started_at\", { withTimezone: true }),\n attemptDeadlineAt: timestamp(\"attempt_deadline_at\", { withTimezone: true }),\n transcriptText: losslessText(\"transcript_text\"),\n transcriptTextCodecVersion: losslessCodecVersion(\"transcript_text_codec_version\"),\n languages: jsonb(\"languages\").$type<string[]>().notNull().default([]),\n providerId: text(\"provider_id\"),\n errorCode: text(\"error_code\"),\n retryable: boolean(\"retryable\").notNull().default(false),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n pk: primaryKey({\n name: \"transcription_recording_segments_pk\",\n columns: [table.recordingId, table.segmentNumber],\n }),\n recordingOrder: index(\"transcription_recording_segments_order_idx\").on(\n table.workspaceId,\n table.recordingId,\n table.segmentNumber,\n ),\n objectKey: uniqueIndex(\"transcription_recording_segments_object_key_uq\").on(table.objectKey),\n valuesValid: check(\n \"transcription_recording_segments_values_check\",\n sql`${table.segmentNumber} >= 0\n and ${table.generation} > 0\n and ${table.byteLength} > 0\n and ${table.startMilliseconds} >= 0\n and ${table.durationMilliseconds} > 0\n and ${table.sha256} ~ '^[0-9a-f]{64}$'\n and octet_length(${table.objectKey}) between 1 and 1024\n and (\n (${table.attemptId} is null\n and ${table.attemptStartedAt} is null\n and ${table.attemptDeadlineAt} is null)\n or (${table.attemptId} is not null\n and ${table.attemptStartedAt} is not null\n and ${table.attemptDeadlineAt} is not null)\n )`,\n ),\n }),\n);\n","import type {\n AttachedBrowserDeviceCapabilities,\n AuthRunChoice,\n AuthRunExternalAction,\n AuthRunPendingField,\n BrowserRevisionMaterialization,\n BrowserSessionCapabilities,\n ComputerSessionCapabilities,\n InteractionPlacement,\n NetworkRouteConfiguration,\n NetworkRouteConsistency,\n SiteAuthAuthority,\n SiteAuthHealthPolicy,\n SiteAuthMethod,\n} from \"@opengeni/contracts\";\nimport { sql } from \"drizzle-orm\";\nimport {\n bigint,\n boolean,\n check,\n index,\n integer,\n jsonb,\n pgTable,\n primaryKey,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n} from \"drizzle-orm/pg-core\";\n\n// Foreign keys into the older workspace/session/sandbox tables live in the SQL\n// migration. Keeping this schema leaf independent avoids a cycle into schema.ts.\n\nexport const interactionLifecycleValues = [\n \"starting\",\n \"active\",\n \"suspending\",\n \"suspended\",\n \"restoring\",\n \"repair_required\",\n \"lost\",\n \"ending\",\n \"ended\",\n \"failed\",\n] as const;\n\nexport const interactionOperationStateValues = [\n \"prepared\",\n \"dispatched\",\n \"completed\",\n \"failed\",\n \"outcome_unknown\",\n] as const;\n\nexport const interactionOperationKindValues = [\n \"create\",\n \"resume\",\n \"suspend\",\n \"end\",\n \"publish\",\n] as const;\n\nexport const workspaceInteractionRevisions = pgTable(\n \"workspace_interaction_revisions\",\n {\n workspaceId: uuid(\"workspace_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull().default(0),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n revisionValid: check(\n \"workspace_interaction_revisions_revision_check\",\n sql`${table.revision} >= 0`,\n ),\n }),\n);\n\nexport const browserIdentities = pgTable(\n \"browser_identities\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n name: text(\"name\").notNull(),\n status: text(\"status\", { enum: [\"active\", \"archived\"] })\n .notNull()\n .default(\"active\"),\n version: bigint(\"version\", { mode: \"number\" }).notNull().default(1),\n defaultRevisionId: uuid(\"default_revision_id\"),\n headGeneration: bigint(\"head_generation\", { mode: \"number\" }).notNull().default(0),\n revisionCount: bigint(\"revision_count\", { mode: \"number\" }).notNull().default(0),\n createOperationId: uuid(\"create_operation_id\").notNull(),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"browser_identities_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n createOperation: uniqueIndex(\"browser_identities_workspace_create_operation_uq\").on(\n table.workspaceId,\n table.createOperationId,\n ),\n activeName: uniqueIndex(\"browser_identities_workspace_active_name_uq\")\n .on(table.workspaceId, sql`lower(${table.name})`)\n .where(sql`${table.status} = 'active'`),\n discovery: index(\"browser_identities_workspace_status_updated_idx\").on(\n table.workspaceId,\n table.status,\n table.updatedAt,\n table.id,\n ),\n valuesValid: check(\n \"browser_identities_values_check\",\n sql`octet_length(${table.name}) between 1 and 200\n and ${table.name} = btrim(${table.name})\n and octet_length(${table.createdBySubjectId}) between 1 and 1024\n and ${table.version} > 0\n and ${table.headGeneration} >= 0\n and ${table.revisionCount} >= 0\n and (\n (${table.headGeneration} = 0 and ${table.defaultRevisionId} is null)\n or (${table.headGeneration} > 0 and ${table.defaultRevisionId} is not null)\n )`,\n ),\n }),\n);\n\nexport const browserRevisions = pgTable(\n \"browser_revisions\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n identityId: uuid(\"identity_id\").notNull(),\n parentRevisionId: uuid(\"parent_revision_id\"),\n ordinal: bigint(\"ordinal\", { mode: \"number\" }).notNull(),\n sourceBrowserSessionId: uuid(\"source_browser_session_id\").notNull(),\n publicationOperationId: uuid(\"publication_operation_id\").notNull(),\n expectedHeadGeneration: bigint(\"expected_head_generation\", {\n mode: \"number\",\n }).notNull(),\n advanceDefaultRequested: boolean(\"advance_default_requested\").notNull(),\n defaultAdvanced: boolean(\"default_advanced\").notNull(),\n resultHeadGeneration: bigint(\"result_head_generation\", {\n mode: \"number\",\n }).notNull(),\n manifestDigest: text(\"manifest_digest\").notNull(),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceRevision: uniqueIndex(\"browser_revisions_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n identityRevision: uniqueIndex(\"browser_revisions_identity_id_uq\").on(\n table.identityId,\n table.id,\n ),\n workspaceIdentityRevision: uniqueIndex(\"browser_revisions_workspace_identity_id_uq\").on(\n table.workspaceId,\n table.identityId,\n table.id,\n ),\n identityOrdinal: uniqueIndex(\"browser_revisions_identity_ordinal_uq\").on(\n table.identityId,\n table.ordinal,\n ),\n publicationOperation: uniqueIndex(\"browser_revisions_workspace_publication_operation_uq\").on(\n table.workspaceId,\n table.publicationOperationId,\n ),\n identityHistory: index(\"browser_revisions_identity_history_idx\").on(\n table.workspaceId,\n table.identityId,\n table.ordinal,\n ),\n valuesValid: check(\n \"browser_revisions_values_check\",\n sql`${table.ordinal} > 0\n and ${table.expectedHeadGeneration} >= 0\n and ${table.resultHeadGeneration} >= 0\n and (not ${table.defaultAdvanced} or ${table.advanceDefaultRequested})\n and (\n not ${table.defaultAdvanced}\n or ${table.resultHeadGeneration} = ${table.expectedHeadGeneration} + 1\n )\n and ${table.manifestDigest} ~ '^[0-9a-f]{64}$'\n and octet_length(${table.createdBySubjectId}) between 1 and 1024\n and ${table.parentRevisionId} is distinct from ${table.id}`,\n ),\n }),\n);\n\n/** Internal encrypted object metadata. Public mappers expose only bounded\n * integrity/compatibility fields through BrowserRevisionComponent. */\nexport const browserStateArtifacts = pgTable(\n \"browser_state_artifacts\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n sourceBrowserSessionId: uuid(\"source_browser_session_id\").notNull(),\n purpose: text(\"purpose\", {\n enum: [\"revision_component\", \"private_checkpoint\"],\n }).notNull(),\n kind: text(\"kind\", {\n enum: [\"chromium_profile\", \"normalized_web_state\", \"provider_snapshot\"],\n }).notNull(),\n format: text(\"format\").notNull(),\n artifactDigest: text(\"artifact_digest\").notNull(),\n contentDigest: text(\"content_digest\").notNull(),\n manifestDigest: text(\"manifest_digest\").notNull(),\n objectKey: text(\"object_key\").notNull(),\n encryptedDataKey: text(\"encrypted_data_key\"),\n sizeBytes: bigint(\"size_bytes\", { mode: \"number\" }).notNull(),\n materialization: jsonb(\"materialization\").$type<BrowserRevisionMaterialization>().notNull(),\n state: text(\"state\", {\n enum: [\"available\", \"delete_pending\", \"deleting\", \"deleted\"],\n })\n .notNull()\n .default(\"available\"),\n retainedUntil: timestamp(\"retained_until\", { withTimezone: true }),\n deleteClaimId: uuid(\"delete_claim_id\"),\n deleteClaimedAt: timestamp(\"delete_claimed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n deletedAt: timestamp(\"deleted_at\", { withTimezone: true }),\n },\n (table) => ({\n workspaceArtifact: uniqueIndex(\"browser_state_artifacts_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n commitAuthority: uniqueIndex(\"browser_state_artifacts_commit_authority_uq\").on(\n table.workspaceId,\n table.id,\n table.purpose,\n table.sourceBrowserSessionId,\n ),\n objectKey: uniqueIndex(\"browser_state_artifacts_object_key_uq\").on(table.objectKey),\n source: index(\"browser_state_artifacts_source_idx\").on(\n table.workspaceId,\n table.sourceBrowserSessionId,\n table.createdAt,\n ),\n gc: index(\"browser_state_artifacts_gc_idx\").on(\n table.state,\n table.retainedUntil,\n table.deleteClaimedAt,\n table.createdAt,\n ),\n valuesValid: check(\n \"browser_state_artifacts_values_check\",\n sql`octet_length(${table.format}) between 1 and 512\n and ${table.format} = btrim(${table.format})\n and ${table.artifactDigest} ~ '^[0-9a-f]{64}$'\n and ${table.contentDigest} ~ '^[0-9a-f]{64}$'\n and ${table.manifestDigest} ~ '^[0-9a-f]{64}$'\n and octet_length(${table.objectKey}) between 1 and 2048\n and ${table.objectKey} ~ ('^workspaces/' || ${table.workspaceId}::text || '/browser-state/[A-Za-z0-9._=-]+(/[A-Za-z0-9._=-]+)*$')\n and (\n ${table.encryptedDataKey} is null\n or octet_length(${table.encryptedDataKey}) between 16 and 8192\n )\n and ${table.sizeBytes} > 0\n and jsonb_typeof(${table.materialization}) = 'object'\n and octet_length(${table.materialization}::text) between 2 and 65536\n and (\n ${table.purpose} <> 'revision_component'\n or (\n ${table.state} = 'available'\n and ${table.retainedUntil} is null\n and ${table.deletedAt} is null\n and ${table.deleteClaimId} is null\n and ${table.deleteClaimedAt} is null\n and ${table.encryptedDataKey} is not null\n )\n )`,\n ),\n lifecycleValid: check(\n \"browser_state_artifacts_lifecycle_check\",\n sql`(\n ${table.state} = 'available'\n and ${table.retainedUntil} is null\n and ${table.deleteClaimId} is null\n and ${table.deleteClaimedAt} is null\n and ${table.deletedAt} is null\n and ${table.encryptedDataKey} is not null\n ) or (\n ${table.state} = 'delete_pending'\n and ${table.retainedUntil} is not null\n and ${table.deleteClaimId} is null\n and ${table.deleteClaimedAt} is null\n and ${table.deletedAt} is null\n and ${table.encryptedDataKey} is not null\n ) or (\n ${table.state} = 'deleting'\n and ${table.retainedUntil} is not null\n and ${table.deleteClaimId} is not null\n and ${table.deleteClaimedAt} is not null\n and ${table.deletedAt} is null\n and ${table.encryptedDataKey} is not null\n ) or (\n ${table.state} = 'deleted'\n and ${table.retainedUntil} is not null\n and ${table.deleteClaimId} is null\n and ${table.deleteClaimedAt} is null\n and ${table.deletedAt} is not null\n and ${table.encryptedDataKey} is null\n )`,\n ),\n }),\n);\n\n/** Pre-publication object authority. This row exists before a controller can\n * upload bytes, then becomes either a committed artifact root or reclaimable\n * cleanup authority. It never carries encryption keys or signed URLs. */\nexport const browserStateUploads = pgTable(\n \"browser_state_uploads\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n operationId: uuid(\"operation_id\").notNull(),\n sourceBrowserSessionId: uuid(\"source_browser_session_id\").notNull(),\n purpose: text(\"purpose\", {\n enum: [\"revision_component\", \"private_checkpoint\"],\n }).notNull(),\n objectKey: text(\"object_key\").notNull(),\n state: text(\"state\", {\n enum: [\"prepared\", \"delete_pending\", \"deleting\", \"committed\", \"deleted\"],\n })\n .notNull()\n .default(\"prepared\"),\n cleanupAfter: timestamp(\"cleanup_after\", { withTimezone: true }),\n committedArtifactId: uuid(\"committed_artifact_id\"),\n deleteClaimId: uuid(\"delete_claim_id\"),\n deleteClaimedAt: timestamp(\"delete_claimed_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n deletedAt: timestamp(\"deleted_at\", { withTimezone: true }),\n },\n (table) => ({\n workspaceUpload: uniqueIndex(\"browser_state_uploads_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n operationObject: uniqueIndex(\"browser_state_uploads_operation_object_uq\").on(\n table.workspaceId,\n table.operationId,\n table.objectKey,\n ),\n objectKey: uniqueIndex(\"browser_state_uploads_object_key_uq\").on(table.objectKey),\n gc: index(\"browser_state_uploads_gc_idx\").on(\n table.state,\n table.cleanupAfter,\n table.deleteClaimedAt,\n table.createdAt,\n ),\n valuesValid: check(\n \"browser_state_uploads_values_check\",\n sql`octet_length(${table.objectKey}) between 1 and 2048\n and ${table.objectKey} ~ ('^workspaces/' || ${table.workspaceId}::text || '/browser-state/[A-Za-z0-9._=-]+(/[A-Za-z0-9._=-]+)*$')\n and ${table.updatedAt} >= ${table.createdAt}`,\n ),\n lifecycleValid: check(\n \"browser_state_uploads_lifecycle_check\",\n sql`(\n ${table.state} = 'prepared'\n and ${table.cleanupAfter} is not null\n and ${table.committedArtifactId} is null\n and ${table.deleteClaimId} is null\n and ${table.deleteClaimedAt} is null\n and ${table.deletedAt} is null\n ) or (\n ${table.state} = 'delete_pending'\n and ${table.cleanupAfter} is not null\n and ${table.committedArtifactId} is null\n and ${table.deleteClaimId} is null\n and ${table.deleteClaimedAt} is null\n and ${table.deletedAt} is null\n ) or (\n ${table.state} = 'deleting'\n and ${table.cleanupAfter} is not null\n and ${table.committedArtifactId} is null\n and ${table.deleteClaimId} is not null\n and ${table.deleteClaimedAt} is not null\n and ${table.deletedAt} is null\n ) or (\n ${table.state} = 'committed'\n and ${table.cleanupAfter} is null\n and ${table.committedArtifactId} is not null\n and ${table.deleteClaimId} is null\n and ${table.deleteClaimedAt} is null\n and ${table.deletedAt} is null\n ) or (\n ${table.state} = 'deleted'\n and ${table.cleanupAfter} is not null\n and ${table.committedArtifactId} is null\n and ${table.deleteClaimId} is null\n and ${table.deleteClaimedAt} is null\n and ${table.deletedAt} is not null\n )`,\n ),\n }),\n);\n\nexport const browserRevisionComponents = pgTable(\n \"browser_revision_components\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n identityId: uuid(\"identity_id\").notNull(),\n revisionId: uuid(\"revision_id\").notNull(),\n artifactId: uuid(\"artifact_id\").notNull(),\n sourceBrowserSessionId: uuid(\"source_browser_session_id\").notNull(),\n artifactPurpose: text(\"artifact_purpose\", { enum: [\"revision_component\"] })\n .notNull()\n .default(\"revision_component\"),\n kind: text(\"kind\", {\n enum: [\"chromium_profile\", \"normalized_web_state\", \"provider_snapshot\"],\n }).notNull(),\n position: integer(\"position\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceComponent: uniqueIndex(\"browser_revision_components_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n revisionPosition: uniqueIndex(\"browser_revision_components_revision_position_uq\").on(\n table.revisionId,\n table.position,\n ),\n artifact: uniqueIndex(\"browser_revision_components_artifact_uq\").on(table.artifactId),\n revisionKind: uniqueIndex(\"browser_revision_components_revision_kind_uq\").on(\n table.revisionId,\n table.kind,\n ),\n revision: index(\"browser_revision_components_revision_idx\").on(\n table.workspaceId,\n table.revisionId,\n table.position,\n ),\n valuesValid: check(\n \"browser_revision_components_values_check\",\n sql`${table.position} between 0 and 15\n and ${table.artifactPurpose} = 'revision_component'`,\n ),\n }),\n);\n\nexport const attachedBrowserDevices = pgTable(\n \"attached_browser_devices\",\n {\n id: uuid(\"id\").notNull(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n enrollmentId: uuid(\"enrollment_id\").notNull(),\n name: text(\"name\").notNull(),\n profileLabel: text(\"profile_label\"),\n browserName: text(\"browser_name\").notNull(),\n browserVersion: text(\"browser_version\").notNull(),\n extensionVersion: text(\"extension_version\").notNull(),\n platform: text(\"platform\", {\n enum: [\"linux\", \"macos\", \"windows\"],\n }).notNull(),\n architecture: text(\"architecture\", { enum: [\"x64\", \"arm64\"] }).notNull(),\n connectionGeneration: text(\"connection_generation\").notNull(),\n inventoryRevision: bigint(\"inventory_revision\", {\n mode: \"number\",\n }).notNull(),\n tabCount: integer(\"tab_count\").notNull(),\n capabilities: jsonb(\"capabilities\").$type<AttachedBrowserDeviceCapabilities>().notNull(),\n lastSeenAt: timestamp(\"last_seen_at\", { withTimezone: true }).notNull(),\n disconnectedAt: timestamp(\"disconnected_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({\n name: \"attached_browser_devices_workspace_id_pk\",\n columns: [table.workspaceId, table.id],\n }),\n enrollment: index(\"attached_browser_devices_enrollment_idx\").on(\n table.workspaceId,\n table.enrollmentId,\n table.disconnectedAt,\n table.updatedAt,\n ),\n discovery: index(\"attached_browser_devices_discovery_idx\").on(\n table.workspaceId,\n table.disconnectedAt,\n table.updatedAt,\n table.id,\n ),\n valuesValid: check(\n \"attached_browser_devices_values_check\",\n sql`octet_length(${table.name}) between 1 and 200\n and ${table.name} = btrim(${table.name})\n and (${table.profileLabel} is null or (\n octet_length(${table.profileLabel}) between 1 and 200\n and ${table.profileLabel} = btrim(${table.profileLabel})\n ))\n and octet_length(${table.browserName}) between 1 and 100\n and ${table.browserName} = btrim(${table.browserName})\n and octet_length(${table.browserVersion}) between 1 and 256\n and ${table.browserVersion} = btrim(${table.browserVersion})\n and octet_length(${table.extensionVersion}) between 1 and 256\n and ${table.extensionVersion} = btrim(${table.extensionVersion})\n and octet_length(${table.connectionGeneration}) between 1 and 256\n and ${table.connectionGeneration} ~ '^[A-Za-z0-9][A-Za-z0-9._:-]*$'\n and ${table.inventoryRevision} >= 0\n and ${table.tabCount} between 0 and 100000\n and jsonb_typeof(${table.capabilities}) = 'object'\n and octet_length(${table.capabilities}::text) between 2 and 65536`,\n ),\n }),\n);\n\n/** Accepted full-snapshot cursor for one connected agent's local browser bridge.\n * This lets heartbeat replay refresh liveness without allowing an older\n * inventory to disconnect a newly announced profile. */\nexport const attachedBrowserInventories = pgTable(\n \"attached_browser_inventories\",\n {\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n enrollmentId: uuid(\"enrollment_id\").notNull(),\n bridgeGeneration: text(\"bridge_generation\").notNull(),\n revision: bigint(\"revision\", { mode: \"number\" }).notNull(),\n observedAt: timestamp(\"observed_at\", { withTimezone: true }).notNull(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n identity: primaryKey({\n name: \"attached_browser_inventories_workspace_enrollment_pk\",\n columns: [table.workspaceId, table.enrollmentId],\n }),\n valuesValid: check(\n \"attached_browser_inventories_values_check\",\n sql`octet_length(${table.bridgeGeneration}) between 1 and 256\n and ${table.bridgeGeneration} ~ '^[A-Za-z0-9][A-Za-z0-9._:-]*$'\n and ${table.revision} >= 0`,\n ),\n }),\n);\n\nexport const browserSessions = pgTable(\n \"browser_sessions\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n name: text(\"name\").notNull(),\n lifecycle: text(\"lifecycle\", { enum: interactionLifecycleValues })\n .notNull()\n .default(\"starting\"),\n placementKind: text(\"placement_kind\", {\n enum: [\"sandbox_group\", \"connected_machine\", \"attached_device\", \"external_provider\"],\n }).notNull(),\n sandboxGroupId: uuid(\"sandbox_group_id\"),\n connectedSandboxId: uuid(\"connected_sandbox_id\"),\n deviceId: uuid(\"device_id\"),\n externalProviderId: text(\"external_provider_id\"),\n externalPlacementId: text(\"external_placement_id\"),\n /** Sandbox group hosting browserd when the logical browser itself lives\n * on a remote provider. This is deliberately separate from placement. */\n controllerHostSandboxGroupId: uuid(\"controller_host_sandbox_group_id\"),\n controllerId: text(\"controller_id\"),\n controllerGeneration: text(\"controller_generation\"),\n placementInstanceId: text(\"placement_instance_id\"),\n tokenGeneration: integer(\"token_generation\").notNull().default(1),\n driverId: text(\"driver_id\").notNull(),\n engine: text(\"engine\", {\n enum: [\"chromium\", \"chrome\", \"firefox\", \"webkit\", \"lightpanda\", \"external\"],\n }).notNull(),\n engineVersion: text(\"engine_version\"),\n headless: boolean(\"headless\").notNull(),\n identityId: uuid(\"identity_id\"),\n baseRevisionId: uuid(\"base_revision_id\"),\n linkedComputerSessionId: uuid(\"linked_computer_session_id\"),\n networkRouteId: uuid(\"network_route_id\"),\n networkRouteVersion: bigint(\"network_route_version\", { mode: \"number\" }),\n networkRouteConfiguration: jsonb(\"network_route_configuration\"),\n networkRouteConsistency: jsonb(\"network_route_consistency\"),\n networkRouteCredentialVersion: bigint(\"network_route_credential_version\", {\n mode: \"number\",\n }),\n networkRouteAuthorityDigest: text(\"network_route_authority_digest\"),\n privateCheckpointArtifactId: uuid(\"private_checkpoint_artifact_id\"),\n capabilities: jsonb(\"capabilities\").$type<BrowserSessionCapabilities>().notNull(),\n createOperationId: uuid(\"create_operation_id\").notNull(),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n failureCode: text(\"failure_code\"),\n controllerHeartbeatAt: timestamp(\"controller_heartbeat_at\", {\n withTimezone: true,\n }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n lastUsedAt: timestamp(\"last_used_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"browser_sessions_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n createOperation: uniqueIndex(\"browser_sessions_workspace_create_operation_uq\").on(\n table.workspaceId,\n table.createOperationId,\n ),\n workspaceLifecycle: index(\"browser_sessions_workspace_lifecycle_idx\").on(\n table.workspaceId,\n table.lifecycle,\n table.lastUsedAt,\n table.id,\n ),\n sandboxGroup: index(\"browser_sessions_sandbox_group_idx\").on(\n table.workspaceId,\n table.sandboxGroupId,\n table.lifecycle,\n ),\n controllerHostSandboxGroup: index(\"browser_sessions_controller_host_sandbox_group_idx\").on(\n table.workspaceId,\n table.controllerHostSandboxGroupId,\n table.lifecycle,\n ),\n networkRoute: index(\"browser_sessions_workspace_network_route_idx\").on(\n table.workspaceId,\n table.networkRouteId,\n table.lifecycle,\n ),\n valuesValid: check(\n \"browser_sessions_values_check\",\n sql`octet_length(${table.name}) between 1 and 200\n and octet_length(${table.driverId}) between 1 and 512\n and octet_length(${table.createdBySubjectId}) between 1 and 1024\n and ${table.tokenGeneration} > 0\n and octet_length(${table.capabilities}::text) between 2 and 65536\n and (\n (${table.networkRouteId} is null\n and ${table.networkRouteVersion} is null\n and ${table.networkRouteConfiguration} is null\n and ${table.networkRouteConsistency} is null\n and ${table.networkRouteCredentialVersion} is null\n and ${table.networkRouteAuthorityDigest} is null)\n or\n (${table.networkRouteId} is not null\n and ${table.networkRouteVersion} > 0\n and jsonb_typeof(${table.networkRouteConfiguration}) = 'object'\n and octet_length(${table.networkRouteConfiguration}::text) between 2 and 65536\n and jsonb_typeof(${table.networkRouteConsistency}) = 'object'\n and octet_length(${table.networkRouteConsistency}::text) between 2 and 65536\n and (${table.networkRouteCredentialVersion} is null or ${table.networkRouteCredentialVersion} > 0)\n and (${table.networkRouteAuthorityDigest} is not null or ${table.networkRouteCredentialVersion} is null)\n and (${table.networkRouteAuthorityDigest} is null or (\n octet_length(${table.networkRouteAuthorityDigest}) between 16 and 256\n and ${table.networkRouteAuthorityDigest} ~ '^[A-Za-z0-9._~-]+$'\n )))\n )\n and (${table.engineVersion} is null or octet_length(${table.engineVersion}) between 1 and 256)\n and (${table.failureCode} is null or octet_length(${table.failureCode}) between 1 and 512)`,\n ),\n placementValid: check(\n \"browser_sessions_placement_check\",\n sql`(\n ${table.placementKind} = 'sandbox_group'\n and ${table.sandboxGroupId} is not null\n and ${table.connectedSandboxId} is null\n and ${table.deviceId} is null\n and ${table.externalProviderId} is null\n and ${table.externalPlacementId} is null\n ) or (\n ${table.placementKind} = 'connected_machine'\n and ${table.sandboxGroupId} is null\n and ${table.connectedSandboxId} is not null\n and ${table.deviceId} is null\n and ${table.externalProviderId} is null\n and ${table.externalPlacementId} is null\n ) or (\n ${table.placementKind} = 'attached_device'\n and ${table.sandboxGroupId} is null\n and ${table.connectedSandboxId} is null\n and ${table.deviceId} is not null\n and ${table.externalProviderId} is null\n and ${table.externalPlacementId} is null\n ) or (\n ${table.placementKind} = 'external_provider'\n and ${table.sandboxGroupId} is null\n and ${table.connectedSandboxId} is null\n and ${table.deviceId} is null\n and ${table.externalProviderId} is not null\n and ${table.externalPlacementId} is not null\n and octet_length(${table.externalProviderId}) between 1 and 512\n and octet_length(${table.externalPlacementId}) between 1 and 512\n )`,\n ),\n controllerValid: check(\n \"browser_sessions_controller_check\",\n sql`(\n ${table.controllerId} is null\n and ${table.controllerGeneration} is null\n and ${table.placementInstanceId} is null\n and ${table.controllerHeartbeatAt} is null\n ) or (\n ${table.controllerId} is not null\n and octet_length(${table.controllerId}) between 1 and 512\n and ${table.controllerGeneration} is not null\n and octet_length(${table.controllerGeneration}) between 1 and 256\n and ${table.placementInstanceId} is not null\n and octet_length(${table.placementInstanceId}) between 1 and 512\n and ${table.controllerHeartbeatAt} is not null\n )`,\n ),\n controllerHostValid: check(\n \"browser_sessions_controller_host_check\",\n sql`(\n ${table.placementKind} = 'sandbox_group'\n and ${table.controllerHostSandboxGroupId} = ${table.sandboxGroupId}\n ) or (\n ${table.placementKind} = 'external_provider'\n and ${table.controllerHostSandboxGroupId} is not null\n ) or (\n ${table.placementKind} in ('connected_machine', 'attached_device')\n and ${table.controllerHostSandboxGroupId} is null\n )`,\n ),\n identityRevisionValid: check(\n \"browser_sessions_identity_revision_check\",\n sql`${table.baseRevisionId} is null or ${table.identityId} is not null`,\n ),\n failureValid: check(\n \"browser_sessions_failure_check\",\n sql`(\n ${table.lifecycle} in ('repair_required', 'lost', 'failed')\n and ${table.failureCode} is not null\n ) or (\n ${table.lifecycle} not in ('repair_required', 'lost', 'failed')\n and ${table.failureCode} is null\n )`,\n ),\n }),\n);\n\nexport const browserSessionAssociations = pgTable(\n \"browser_session_associations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n browserSessionId: uuid(\"browser_session_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\"),\n attemptId: uuid(\"attempt_id\"),\n relationship: text(\"relationship\", {\n enum: [\"created\", \"using\", \"observing\", \"related\"],\n }).notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n lastUsedAt: timestamp(\"last_used_at\", { withTimezone: true }).notNull().defaultNow(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n resourceSessionRelationship: uniqueIndex(\n \"browser_session_associations_resource_session_relationship_uq\",\n ).on(table.browserSessionId, table.sessionId, table.relationship),\n workspaceSession: index(\"browser_session_associations_workspace_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.lastUsedAt,\n ),\n resource: index(\"browser_session_associations_resource_idx\").on(\n table.workspaceId,\n table.browserSessionId,\n table.lastUsedAt,\n ),\n valuesValid: check(\n \"browser_session_associations_values_check\",\n sql`octet_length(${table.actorSubjectId}) between 1 and 1024\n and (${table.attemptId} is null or ${table.turnId} is not null)`,\n ),\n }),\n);\n\nexport const computerSessions = pgTable(\n \"computer_sessions\",\n {\n id: uuid(\"id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n name: text(\"name\").notNull(),\n lifecycle: text(\"lifecycle\", { enum: interactionLifecycleValues })\n .notNull()\n .default(\"starting\"),\n placementKind: text(\"placement_kind\", {\n enum: [\"sandbox_group\", \"connected_machine\", \"attached_device\", \"external_provider\"],\n }).notNull(),\n sandboxGroupId: uuid(\"sandbox_group_id\"),\n connectedSandboxId: uuid(\"connected_sandbox_id\"),\n deviceId: uuid(\"device_id\"),\n externalProviderId: text(\"external_provider_id\"),\n externalPlacementId: text(\"external_placement_id\"),\n controllerId: text(\"controller_id\"),\n controllerGeneration: text(\"controller_generation\"),\n placementInstanceId: text(\"placement_instance_id\"),\n tokenGeneration: integer(\"token_generation\").notNull().default(1),\n platform: text(\"platform\", { enum: [\"linux\", \"macos\", \"windows\"] }),\n adapter: text(\"adapter\"),\n seatId: text(\"seat_id\"),\n displayId: text(\"display_id\"),\n capabilities: jsonb(\"capabilities\").$type<ComputerSessionCapabilities>(),\n createOperationId: uuid(\"create_operation_id\").notNull(),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n failureCode: text(\"failure_code\"),\n controllerHeartbeatAt: timestamp(\"controller_heartbeat_at\", {\n withTimezone: true,\n }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n lastUsedAt: timestamp(\"last_used_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"computer_sessions_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n createOperation: uniqueIndex(\"computer_sessions_workspace_create_operation_uq\").on(\n table.workspaceId,\n table.createOperationId,\n ),\n workspaceLifecycle: index(\"computer_sessions_workspace_lifecycle_idx\").on(\n table.workspaceId,\n table.lifecycle,\n table.lastUsedAt,\n table.id,\n ),\n sandboxGroup: index(\"computer_sessions_sandbox_group_idx\").on(\n table.workspaceId,\n table.sandboxGroupId,\n table.lifecycle,\n ),\n valuesValid: check(\n \"computer_sessions_values_check\",\n sql`octet_length(${table.name}) between 1 and 200\n and ${table.name} = btrim(${table.name})\n and octet_length(${table.createdBySubjectId}) between 1 and 1024\n and ${table.tokenGeneration} > 0\n and (${table.adapter} is null or octet_length(${table.adapter}) between 1 and 512)\n and (${table.seatId} is null or octet_length(${table.seatId}) between 1 and 512)\n and (${table.displayId} is null or octet_length(${table.displayId}) between 1 and 512)\n and (${table.capabilities} is null or (\n jsonb_typeof(${table.capabilities}) = 'object'\n and octet_length(${table.capabilities}::text) between 2 and 65536\n ))\n and (${table.failureCode} is null or octet_length(${table.failureCode}) between 1 and 512)`,\n ),\n placementValid: check(\n \"computer_sessions_placement_check\",\n sql`(\n ${table.placementKind} = 'sandbox_group'\n and ${table.sandboxGroupId} is not null\n and ${table.connectedSandboxId} is null\n and ${table.deviceId} is null\n and ${table.externalProviderId} is null\n and ${table.externalPlacementId} is null\n ) or (\n ${table.placementKind} = 'connected_machine'\n and ${table.sandboxGroupId} is null\n and ${table.connectedSandboxId} is not null\n and ${table.deviceId} is null\n and ${table.externalProviderId} is null\n and ${table.externalPlacementId} is null\n ) or (\n ${table.placementKind} = 'attached_device'\n and ${table.sandboxGroupId} is null\n and ${table.connectedSandboxId} is null\n and ${table.deviceId} is not null\n and ${table.externalProviderId} is null\n and ${table.externalPlacementId} is null\n ) or (\n ${table.placementKind} = 'external_provider'\n and ${table.sandboxGroupId} is null\n and ${table.connectedSandboxId} is null\n and ${table.deviceId} is null\n and ${table.externalProviderId} is not null\n and ${table.externalPlacementId} is not null\n and octet_length(${table.externalProviderId}) between 1 and 512\n and octet_length(${table.externalPlacementId}) between 1 and 512\n )`,\n ),\n controllerValid: check(\n \"computer_sessions_controller_check\",\n sql`(\n ${table.controllerId} is null\n and ${table.controllerGeneration} is null\n and ${table.placementInstanceId} is null\n and ${table.controllerHeartbeatAt} is null\n ) or (\n ${table.controllerId} is not null\n and octet_length(${table.controllerId}) between 1 and 512\n and ${table.controllerGeneration} is not null\n and octet_length(${table.controllerGeneration}) between 1 and 256\n and ${table.placementInstanceId} is not null\n and octet_length(${table.placementInstanceId}) between 1 and 512\n and ${table.controllerHeartbeatAt} is not null\n )`,\n ),\n nativeBindingValid: check(\n \"computer_sessions_native_binding_check\",\n sql`(\n ${table.platform} is null\n and ${table.adapter} is null\n and ${table.seatId} is null\n and ${table.displayId} is null\n and ${table.capabilities} is null\n ) or (\n ${table.platform} is not null\n and ${table.adapter} is not null\n and ${table.seatId} is not null\n and ${table.displayId} is not null\n and ${table.capabilities} is not null\n )`,\n ),\n activeValid: check(\n \"computer_sessions_active_binding_check\",\n sql`${table.lifecycle} <> 'active' or (\n ${table.controllerId} is not null\n and ${table.platform} is not null\n and ${table.capabilities} is not null\n )`,\n ),\n failureValid: check(\n \"computer_sessions_failure_check\",\n sql`(\n ${table.lifecycle} in ('repair_required', 'lost', 'failed')\n and ${table.failureCode} is not null\n ) or (\n ${table.lifecycle} not in ('repair_required', 'lost', 'failed')\n and ${table.failureCode} is null\n )`,\n ),\n }),\n);\n\nexport const computerSessionAssociations = pgTable(\n \"computer_session_associations\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n computerSessionId: uuid(\"computer_session_id\").notNull(),\n sessionId: uuid(\"session_id\").notNull(),\n turnId: uuid(\"turn_id\"),\n attemptId: uuid(\"attempt_id\"),\n relationship: text(\"relationship\", {\n enum: [\"created\", \"using\", \"observing\", \"related\"],\n }).notNull(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n lastUsedAt: timestamp(\"last_used_at\", { withTimezone: true }).notNull().defaultNow(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n resourceSessionRelationship: uniqueIndex(\n \"computer_session_associations_resource_session_relationship_uq\",\n ).on(table.computerSessionId, table.sessionId, table.relationship),\n workspaceSession: index(\"computer_session_associations_workspace_session_idx\").on(\n table.workspaceId,\n table.sessionId,\n table.lastUsedAt,\n ),\n resource: index(\"computer_session_associations_resource_idx\").on(\n table.workspaceId,\n table.computerSessionId,\n table.lastUsedAt,\n ),\n valuesValid: check(\n \"computer_session_associations_values_check\",\n sql`octet_length(${table.actorSubjectId}) between 1 and 1024\n and (${table.attemptId} is null or ${table.turnId} is not null)`,\n ),\n }),\n);\n\nexport const networkRoutes = pgTable(\n \"network_routes\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n name: text(\"name\").notNull(),\n status: text(\"status\", { enum: [\"active\", \"archived\"] })\n .notNull()\n .default(\"active\"),\n configuration: jsonb(\"configuration\").$type<NetworkRouteConfiguration>().notNull(),\n consistency: jsonb(\"consistency\").$type<NetworkRouteConsistency>().notNull(),\n version: bigint(\"version\", { mode: \"number\" }).notNull().default(1),\n createOperationId: uuid(\"create_operation_id\").notNull(),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n updatedBySubjectId: text(\"updated_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"network_routes_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n createOperation: uniqueIndex(\"network_routes_workspace_create_operation_uq\").on(\n table.workspaceId,\n table.createOperationId,\n ),\n activeName: uniqueIndex(\"network_routes_workspace_active_name_uq\")\n .on(table.workspaceId, sql`lower(${table.name})`)\n .where(sql`${table.status} = 'active'`),\n discovery: index(\"network_routes_workspace_status_updated_idx\").on(\n table.workspaceId,\n table.status,\n table.updatedAt,\n table.id,\n ),\n valuesValid: check(\n \"network_routes_values_check\",\n sql`octet_length(${table.name}) between 1 and 200\n and ${table.name} = btrim(${table.name})\n and jsonb_typeof(${table.configuration}) = 'object'\n and octet_length(${table.configuration}::text) between 2 and 65536\n and jsonb_typeof(${table.consistency}) = 'object'\n and octet_length(${table.consistency}::text) between 2 and 65536\n and ${table.version} > 0\n and octet_length(${table.createdBySubjectId}) between 1 and 1024\n and octet_length(${table.updatedBySubjectId}) between 1 and 1024`,\n ),\n }),\n);\n\nexport const siteAuthConnections = pgTable(\n \"site_auth_connections\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n name: text(\"name\").notNull(),\n accountLabel: text(\"account_label\").notNull(),\n status: text(\"status\", { enum: [\"active\", \"archived\"] })\n .notNull()\n .default(\"active\"),\n origins: jsonb(\"origins\").$type<string[]>().notNull(),\n loginUrl: text(\"login_url\"),\n verificationUrlPrefixes: jsonb(\"verification_url_prefixes\").$type<string[]>().notNull(),\n authorities: jsonb(\"authorities\").$type<SiteAuthAuthority[]>().notNull(),\n methods: jsonb(\"methods\").$type<SiteAuthMethod[]>().notNull(),\n preferredIdentityId: uuid(\"preferred_identity_id\"),\n preferredPlacement: jsonb(\"preferred_placement\").$type<InteractionPlacement>(),\n preferredNetworkRouteId: uuid(\"preferred_network_route_id\"),\n healthPolicy: jsonb(\"health_policy\").$type<SiteAuthHealthPolicy>().notNull(),\n verificationState: text(\"verification_state\", {\n enum: [\"unknown\", \"verified\", \"needs_repair\", \"failed\"],\n })\n .notNull()\n .default(\"unknown\"),\n lastVerifiedAt: timestamp(\"last_verified_at\", { withTimezone: true }),\n lastVerifiedUrl: text(\"last_verified_url\"),\n lastCheckedAt: timestamp(\"last_checked_at\", { withTimezone: true }),\n nextCheckAt: timestamp(\"next_check_at\", { withTimezone: true }),\n maintenanceOperationId: uuid(\"maintenance_operation_id\"),\n maintenanceAction: text(\"maintenance_action\", { enum: [\"health_check\", \"repair\"] }),\n maintenanceDueAt: timestamp(\"maintenance_due_at\", { withTimezone: true }),\n maintenanceClaimedAt: timestamp(\"maintenance_claimed_at\", { withTimezone: true }),\n maintenanceSessionId: uuid(\"maintenance_session_id\"),\n maintenanceStartedAt: timestamp(\"maintenance_started_at\", { withTimezone: true }),\n healthSequence: bigint(\"health_sequence\", { mode: \"number\" }).notNull().default(0),\n repairCode: text(\"repair_code\"),\n version: bigint(\"version\", { mode: \"number\" }).notNull().default(1),\n createOperationId: uuid(\"create_operation_id\").notNull(),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n updatedBySubjectId: text(\"updated_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"site_auth_connections_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n createOperation: uniqueIndex(\"site_auth_connections_workspace_create_operation_uq\").on(\n table.workspaceId,\n table.createOperationId,\n ),\n activeName: uniqueIndex(\"site_auth_connections_workspace_active_name_uq\")\n .on(table.workspaceId, sql`lower(${table.name})`)\n .where(sql`${table.status} = 'active'`),\n discovery: index(\"site_auth_connections_workspace_status_updated_idx\").on(\n table.workspaceId,\n table.status,\n table.updatedAt,\n table.id,\n ),\n maintenance: index(\"site_auth_connections_health_maintenance_idx\").on(\n table.nextCheckAt,\n table.maintenanceClaimedAt,\n table.id,\n ),\n valuesValid: check(\n \"site_auth_connections_values_check\",\n sql`octet_length(${table.name}) between 1 and 200\n and ${table.name} = btrim(${table.name})\n and octet_length(${table.accountLabel}) between 1 and 200\n and ${table.accountLabel} = btrim(${table.accountLabel})\n and jsonb_typeof(${table.origins}) = 'array'\n and octet_length(${table.origins}::text) between 3 and 65536\n and (${table.loginUrl} is null or octet_length(${table.loginUrl}) between 1 and 16384)\n and jsonb_typeof(${table.verificationUrlPrefixes}) = 'array'\n and octet_length(${table.verificationUrlPrefixes}::text) between 2 and 65536\n and jsonb_typeof(${table.authorities}) = 'array'\n and octet_length(${table.authorities}::text) between 3 and 65536\n and jsonb_typeof(${table.methods}) = 'array'\n and octet_length(${table.methods}::text) between 3 and 65536\n and (${table.preferredPlacement} is null or (\n jsonb_typeof(${table.preferredPlacement}) = 'object'\n and octet_length(${table.preferredPlacement}::text) between 2 and 65536\n ))\n and jsonb_typeof(${table.healthPolicy}) = 'object'\n and octet_length(${table.healthPolicy}::text) between 2 and 65536\n and (${table.lastVerifiedUrl} is null or octet_length(${table.lastVerifiedUrl}) between 1 and 16384)\n and (${table.repairCode} is null or octet_length(${table.repairCode}) between 1 and 512)\n and ${table.version} > 0\n and octet_length(${table.createdBySubjectId}) between 1 and 1024\n and octet_length(${table.updatedBySubjectId}) between 1 and 1024`,\n ),\n verificationValid: check(\n \"site_auth_connections_verification_check\",\n sql`(\n ${table.verificationState} = 'verified'\n and ${table.lastVerifiedAt} is not null\n and ${table.lastVerifiedUrl} is not null\n and ${table.repairCode} is null\n ) or (\n ${table.verificationState} = 'unknown'\n and ${table.lastVerifiedAt} is null\n and ${table.lastVerifiedUrl} is null\n and ${table.repairCode} is null\n ) or (\n ${table.verificationState} in ('needs_repair', 'failed')\n and ${table.repairCode} is not null\n )`,\n ),\n healthValid: check(\n \"site_auth_connections_health_check\",\n sql`(\n (\n ${table.healthSequence} = 0\n and ${table.lastCheckedAt} is null\n ) or (\n ${table.healthSequence} > 0\n and ${table.lastCheckedAt} is not null\n )\n ) and (\n (\n ${table.status} = 'active'\n and ${table.healthPolicy}->>'mode' = 'maintained'\n and ${table.nextCheckAt} is not null\n ) or (\n not (${table.status} = 'active' and ${table.healthPolicy}->>'mode' = 'maintained')\n and ${table.nextCheckAt} is null\n )\n )`,\n ),\n maintenanceValid: check(\n \"site_auth_connections_maintenance_check\",\n sql`(\n ${table.maintenanceOperationId} is null\n and ${table.maintenanceAction} is null\n and ${table.maintenanceDueAt} is null\n and ${table.maintenanceClaimedAt} is null\n and ${table.maintenanceSessionId} is null\n and ${table.maintenanceStartedAt} is null\n ) or (\n ${table.status} = 'active'\n and ${table.healthPolicy}->>'mode' = 'maintained'\n and ${table.maintenanceOperationId} is not null\n and ${table.maintenanceAction} in ('health_check', 'repair')\n and ${table.maintenanceDueAt} is not null\n and ${table.maintenanceClaimedAt} is not null\n and ${table.maintenanceSessionId} is not null\n and (\n ${table.maintenanceStartedAt} is null\n or ${table.maintenanceStartedAt} >= ${table.maintenanceDueAt}\n )\n )`,\n ),\n }),\n);\n\nexport const authRuns = pgTable(\n \"auth_runs\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n siteAuthConnectionId: uuid(\"site_auth_connection_id\").notNull(),\n browserSessionId: uuid(\"browser_session_id\").notNull(),\n targetId: text(\"target_id\").notNull(),\n controllerGeneration: text(\"controller_generation\").notNull(),\n targetGeneration: text(\"target_generation\").notNull(),\n documentGeneration: text(\"document_generation\"),\n purpose: text(\"purpose\", { enum: [\"authenticate\", \"health_check\", \"repair\"] })\n .notNull()\n .default(\"authenticate\"),\n healthSequence: bigint(\"health_sequence\", { mode: \"number\" })\n .notNull()\n .default(sql`nextval('auth_runs_health_sequence_seq'::regclass)`),\n maintenanceOperationId: uuid(\"maintenance_operation_id\"),\n methodId: text(\"method_id\"),\n authorityId: text(\"authority_id\"),\n state: text(\"state\", {\n enum: [\n \"discovering\",\n \"awaiting_choice\",\n \"awaiting_secret\",\n \"awaiting_external_action\",\n \"working\",\n \"verified\",\n \"failed\",\n \"cancelled\",\n ],\n })\n .notNull()\n .default(\"discovering\"),\n choices: jsonb(\"choices\").$type<AuthRunChoice[]>().notNull().default([]),\n pendingFields: jsonb(\"pending_fields\").$type<AuthRunPendingField[]>().notNull().default([]),\n externalAction: jsonb(\"external_action\").$type<AuthRunExternalAction>(),\n interventionId: uuid(\"intervention_id\"),\n verifiedUrl: text(\"verified_url\"),\n failureCode: text(\"failure_code\"),\n version: bigint(\"version\", { mode: \"number\" }).notNull().default(1),\n operationId: uuid(\"operation_id\").notNull(),\n createdBySubjectId: text(\"created_by_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n settledAt: timestamp(\"settled_at\", { withTimezone: true }),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"auth_runs_workspace_id_uq\").on(table.workspaceId, table.id),\n operation: uniqueIndex(\"auth_runs_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n activeTarget: uniqueIndex(\"auth_runs_active_browser_target_uq\")\n .on(table.workspaceId, table.browserSessionId, table.targetId)\n .where(sql`${table.settledAt} is null`),\n browserHistory: index(\"auth_runs_browser_history_idx\").on(\n table.workspaceId,\n table.browserSessionId,\n table.createdAt,\n ),\n siteHistory: index(\"auth_runs_site_history_idx\").on(\n table.workspaceId,\n table.siteAuthConnectionId,\n table.createdAt,\n ),\n maintenanceOperation: uniqueIndex(\"auth_runs_workspace_maintenance_operation_uq\")\n .on(table.workspaceId, table.maintenanceOperationId)\n .where(sql`${table.maintenanceOperationId} is not null`),\n valuesValid: check(\n \"auth_runs_values_check\",\n sql`octet_length(${table.targetId}) between 1 and 512\n and octet_length(${table.controllerGeneration}) between 1 and 256\n and octet_length(${table.targetGeneration}) between 1 and 256\n and (${table.documentGeneration} is null or octet_length(${table.documentGeneration}) between 1 and 256)\n and (${table.methodId} is null or octet_length(${table.methodId}) between 1 and 512)\n and (${table.authorityId} is null or octet_length(${table.authorityId}) between 1 and 512)\n and jsonb_typeof(${table.choices}) = 'array'\n and octet_length(${table.choices}::text) between 2 and 65536\n and jsonb_typeof(${table.pendingFields}) = 'array'\n and octet_length(${table.pendingFields}::text) between 2 and 65536\n and (${table.externalAction} is null or (\n jsonb_typeof(${table.externalAction}) = 'object'\n and octet_length(${table.externalAction}::text) between 2 and 65536\n ))\n and (${table.verifiedUrl} is null or octet_length(${table.verifiedUrl}) between 1 and 16384)\n and (${table.failureCode} is null or octet_length(${table.failureCode}) between 1 and 512)\n and ${table.version} > 0\n and octet_length(${table.createdBySubjectId}) between 1 and 1024`,\n ),\n healthEvidenceValid: check(\n \"auth_runs_health_evidence_check\",\n sql`${table.purpose} in ('authenticate', 'health_check', 'repair')\n and ${table.healthSequence} > 0`,\n ),\n maintenanceValid: check(\n \"auth_runs_maintenance_check\",\n sql`${table.maintenanceOperationId} is null\n or ${table.purpose} in ('health_check', 'repair')`,\n ),\n lifecycleValid: check(\n \"auth_runs_lifecycle_check\",\n sql`(\n ${table.state} = 'verified'\n and ${table.verifiedUrl} is not null\n and ${table.failureCode} is null\n and ${table.settledAt} is not null\n ) or (\n ${table.state} = 'failed'\n and ${table.verifiedUrl} is null\n and ${table.failureCode} is not null\n and ${table.settledAt} is not null\n ) or (\n ${table.state} = 'cancelled'\n and ${table.verifiedUrl} is null\n and ${table.settledAt} is not null\n ) or (\n ${table.state} not in ('verified', 'failed', 'cancelled')\n and ${table.verifiedUrl} is null\n and ${table.failureCode} is null\n and ${table.settledAt} is null\n )`,\n ),\n projectionValid: check(\n \"auth_runs_projection_check\",\n sql`(${table.state} = 'awaiting_choice') = (jsonb_array_length(${table.choices}) > 0)\n and (${table.state} = 'awaiting_secret') = (jsonb_array_length(${table.pendingFields}) > 0)\n and (${table.state} = 'awaiting_external_action') = (${table.externalAction} is not null)\n and (${table.state} = 'failed') = (${table.failureCode} is not null)`,\n ),\n }),\n);\n\nexport const interactionInterventions = pgTable(\n \"interaction_interventions\",\n {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n resourceKind: text(\"resource_kind\", {\n enum: [\"browser_session\", \"computer_session\"],\n }).notNull(),\n resourceId: uuid(\"resource_id\").notNull(),\n targetId: text(\"target_id\").notNull(),\n controllerGeneration: text(\"controller_generation\").notNull(),\n targetGeneration: text(\"target_generation\").notNull(),\n documentGeneration: text(\"document_generation\"),\n kind: text(\"kind\", {\n enum: [\"manual_login\", \"mfa\", \"external_action\", \"confirmation\", \"other\"],\n }).notNull(),\n reason: text(\"reason\").notNull(),\n status: text(\"status\", {\n enum: [\"open\", \"completed\", \"dismissed\", \"expired\", \"cancelled\"],\n })\n .notNull()\n .default(\"open\"),\n authRunId: uuid(\"auth_run_id\"),\n originatingSessionId: uuid(\"originating_session_id\").notNull(),\n originatingTurnId: uuid(\"originating_turn_id\"),\n originatingAttemptId: uuid(\"originating_attempt_id\"),\n originatingToolOperationId: uuid(\"originating_tool_operation_id\"),\n originatingToolCallId: text(\"originating_tool_call_id\"),\n responseActorSubjectId: text(\"response_actor_subject_id\"),\n version: bigint(\"version\", { mode: \"number\" }).notNull().default(1),\n operationId: uuid(\"operation_id\").notNull(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n settledAt: timestamp(\"settled_at\", { withTimezone: true }),\n },\n (table) => ({\n workspaceIdentity: uniqueIndex(\"interaction_interventions_workspace_id_uq\").on(\n table.workspaceId,\n table.id,\n ),\n operation: uniqueIndex(\"interaction_interventions_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n originatingToolCall: uniqueIndex(\"interaction_interventions_originating_tool_call_uq\")\n .on(\n table.workspaceId,\n table.originatingSessionId,\n table.originatingTurnId,\n table.originatingToolCallId,\n )\n .where(sql`${table.originatingToolCallId} is not null`),\n openResource: index(\"interaction_interventions_open_resource_idx\").on(\n table.workspaceId,\n table.resourceKind,\n table.resourceId,\n table.status,\n table.createdAt,\n ),\n openTargetKind: uniqueIndex(\"interaction_interventions_open_target_kind_uq\")\n .on(table.workspaceId, table.resourceKind, table.resourceId, table.targetId, table.kind)\n .where(sql`${table.status} = 'open'`),\n openAuthRun: uniqueIndex(\"interaction_interventions_open_auth_run_uq\")\n .on(table.workspaceId, table.authRunId)\n .where(sql`${table.status} = 'open' and ${table.authRunId} is not null`),\n valuesValid: check(\n \"interaction_interventions_values_check\",\n sql`octet_length(${table.targetId}) between 1 and 512\n and octet_length(${table.controllerGeneration}) between 1 and 256\n and octet_length(${table.targetGeneration}) between 1 and 256\n and (${table.documentGeneration} is null or octet_length(${table.documentGeneration}) between 1 and 256)\n and octet_length(${table.reason}) between 1 and 2048\n and ${table.reason} = btrim(${table.reason})\n and (${table.originatingAttemptId} is null or ${table.originatingTurnId} is not null)\n and (${table.originatingToolOperationId} is null or ${table.originatingAttemptId} is not null)\n and (${table.originatingToolCallId} is null or (\n ${table.originatingAttemptId} is not null\n and octet_length(${table.originatingToolCallId}) between 1 and 1024\n ))\n and (${table.responseActorSubjectId} is null or octet_length(${table.responseActorSubjectId}) between 1 and 1024)\n and ${table.version} > 0`,\n ),\n lifecycleValid: check(\n \"interaction_interventions_lifecycle_check\",\n sql`(\n ${table.status} = 'open'\n and ${table.responseActorSubjectId} is null\n and ${table.settledAt} is null\n ) or (\n ${table.status} <> 'open'\n and ${table.settledAt} is not null\n )`,\n ),\n }),\n);\n\nexport const interactionResourceOperations = pgTable(\n \"interaction_resource_operations\",\n {\n operationId: uuid(\"operation_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n resourceKind: text(\"resource_kind\", {\n enum: [\n \"browser_identity\",\n \"network_route\",\n \"site_auth_connection\",\n \"auth_run\",\n \"intervention\",\n \"browser_download\",\n ],\n }).notNull(),\n resourceId: uuid(\"resource_id\").notNull(),\n kind: text(\"kind\", {\n enum: [\n \"create\",\n \"update\",\n \"start\",\n \"report\",\n \"protected_fill\",\n \"external_auth\",\n \"verify\",\n \"resolve\",\n \"save\",\n ],\n }).notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n metadata: jsonb(\"metadata\").$type<Record<string, unknown>>().notNull().default({}),\n state: text(\"state\", {\n enum: [\"prepared\", \"dispatched\", \"completed\", \"failed\", \"outcome_unknown\"],\n })\n .notNull()\n .default(\"completed\"),\n resultVersion: bigint(\"result_version\", { mode: \"number\" }),\n result: jsonb(\"result\").$type<Record<string, unknown>>(),\n errorCode: text(\"error_code\"),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n settledAt: timestamp(\"settled_at\", { withTimezone: true }),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"interaction_resource_operations_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n resourceHistory: index(\"interaction_resource_operations_resource_history_idx\").on(\n table.workspaceId,\n table.resourceKind,\n table.resourceId,\n table.createdAt,\n ),\n valuesValid: check(\n \"interaction_resource_operations_values_check\",\n sql`${table.requestDigest} ~ '^[0-9a-f]{64}$'\n and jsonb_typeof(${table.metadata}) = 'object'\n and octet_length(${table.metadata}::text) between 2 and 65536\n and (${table.resultVersion} is null or ${table.resultVersion} > 0)\n and (${table.result} is null or (\n jsonb_typeof(${table.result}) = 'object'\n and octet_length(${table.result}::text) between 2 and 262144\n ))\n and (${table.errorCode} is null or octet_length(${table.errorCode}) between 1 and 512)\n and octet_length(${table.actorSubjectId}) between 1 and 1024`,\n ),\n lifecycleValid: check(\n \"interaction_resource_operations_lifecycle_check\",\n sql`(\n ${table.state} = 'completed'\n and ${table.resultVersion} is not null\n and ${table.result} is not null\n and ${table.errorCode} is null\n and ${table.settledAt} is not null\n ) or (\n ${table.state} in ('failed', 'outcome_unknown')\n and ${table.resultVersion} is null\n and ${table.result} is null\n and ${table.errorCode} is not null\n and ${table.settledAt} is not null\n ) or (\n ${table.state} in ('prepared', 'dispatched')\n and ${table.resultVersion} is null\n and ${table.result} is null\n and ${table.errorCode} is null\n and ${table.settledAt} is null\n )`,\n ),\n }),\n);\n\nexport const interactionOperations = pgTable(\n \"interaction_operations\",\n {\n operationId: uuid(\"operation_id\").primaryKey(),\n accountId: uuid(\"account_id\").notNull(),\n workspaceId: uuid(\"workspace_id\").notNull(),\n resourceKind: text(\"resource_kind\", {\n enum: [\"browser_session\", \"computer_session\"],\n }).notNull(),\n resourceId: uuid(\"resource_id\").notNull(),\n kind: text(\"kind\", { enum: interactionOperationKindValues }).notNull(),\n requestDigest: text(\"request_digest\").notNull(),\n state: text(\"state\", { enum: interactionOperationStateValues }).notNull().default(\"prepared\"),\n controllerGeneration: text(\"controller_generation\"),\n errorCode: text(\"error_code\"),\n errorMessage: text(\"error_message\"),\n errorRetryable: boolean(\"error_retryable\"),\n errorDetails: jsonb(\"error_details\").$type<Record<string, unknown>>(),\n actorSubjectId: text(\"actor_subject_id\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n dispatchedAt: timestamp(\"dispatched_at\", { withTimezone: true }),\n settledAt: timestamp(\"settled_at\", { withTimezone: true }),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n },\n (table) => ({\n workspaceOperation: uniqueIndex(\"interaction_operations_workspace_operation_uq\").on(\n table.workspaceId,\n table.operationId,\n ),\n resourceHistory: index(\"interaction_operations_resource_history_idx\").on(\n table.workspaceId,\n table.resourceKind,\n table.resourceId,\n table.createdAt,\n ),\n activeResource: uniqueIndex(\"interaction_operations_active_resource_uq\")\n .on(table.workspaceId, table.resourceKind, table.resourceId)\n .where(sql`${table.state} in ('prepared', 'dispatched')`),\n valuesValid: check(\n \"interaction_operations_values_check\",\n sql`${table.requestDigest} ~ '^[0-9a-f]{64}$'\n and octet_length(${table.actorSubjectId}) between 1 and 1024\n and (${table.controllerGeneration} is null or octet_length(${table.controllerGeneration}) between 1 and 256)\n and (${table.errorCode} is null or octet_length(${table.errorCode}) between 1 and 512)\n and (${table.errorMessage} is null or octet_length(${table.errorMessage}) between 1 and 8192)\n and (${table.errorDetails} is null or octet_length(${table.errorDetails}::text) between 2 and 65536)`,\n ),\n lifecycleValid: check(\n \"interaction_operations_lifecycle_check\",\n sql`(\n ${table.state} = 'prepared'\n and ${table.dispatchedAt} is null\n and ${table.settledAt} is null\n and ${table.errorCode} is null\n and ${table.errorMessage} is null\n and ${table.errorRetryable} is null\n and ${table.errorDetails} is null\n ) or (\n ${table.state} = 'dispatched'\n and ${table.dispatchedAt} is not null\n and ${table.settledAt} is null\n and ${table.errorCode} is null\n and ${table.errorMessage} is null\n and ${table.errorRetryable} is null\n and ${table.errorDetails} is null\n ) or (\n ${table.state} = 'completed'\n and ${table.dispatchedAt} is not null\n and ${table.settledAt} is not null\n and ${table.errorCode} is null\n and ${table.errorMessage} is null\n and ${table.errorRetryable} is null\n and ${table.errorDetails} is null\n ) or (\n ${table.state} in ('failed', 'outcome_unknown')\n and ${table.settledAt} is not null\n and ${table.errorCode} is not null\n and ${table.errorMessage} is not null\n and ${table.errorRetryable} is not null\n )`,\n ),\n }),\n);\n"],"mappings":";;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","names":["sql","bigint","boolean","check","customType","index","integer","jsonb","pgTable","primaryKey","text","timestamp","unique","uniqueIndex","uuid","index","descriptors","output","changed","customType","integer","bigint","index","integer","jsonb","pgTable","primaryKey","text","timestamp","uniqueIndex","uuid","sql","bigint","boolean","index","integer","jsonb","pgTable","primaryKey","text","timestamp","unique","uniqueIndex","uuid","sql","sql","bigint","check","index","integer","jsonb","pgTable","text","timestamp","uniqueIndex","uuid","sql","bigint","boolean","check","index","integer","jsonb","pgTable","text","timestamp","uniqueIndex","uuid","sql","bigint","check","index","integer","jsonb","pgTable","text","timestamp","uniqueIndex","uuid","sql","bigint","check","index","jsonb","pgTable","text","timestamp","uniqueIndex","uuid","sql","bigint","boolean","check","index","integer","jsonb","pgTable","text","timestamp","uniqueIndex","uuid","jsonb","pgTable","primaryKey","text","timestamp","uniqueIndex","uuid","sql","check","index","integer","jsonb","pgTable","text","timestamp","uniqueIndex","uuid","sql","bigint","boolean","index","integer","jsonb","pgTable","text","timestamp","uniqueIndex","uuid","customType","index","integer","pgTable","text","timestamp","uniqueIndex","uuid","sql","sql","customType","index","integer","pgTable","primaryKey","text","timestamp","uniqueIndex","uuid","xid8","boolean","index","integer","jsonb","pgTable","text","timestamp","uniqueIndex","uuid","bigint","boolean","index","integer","pgTable","text","timestamp","uniqueIndex","uuid","bigint","check","index","pgTable","text","timestamp","uniqueIndex","uuid","sql","bigint","boolean","index","integer","jsonb","pgTable","primaryKey","text","timestamp","uniqueIndex","uuid","sql","boolean","check","index","integer","jsonb","pgTable","primaryKey","text","timestamp","uniqueIndex","uuid","sql","sql","bigint","boolean","check","index","integer","jsonb","pgTable","primaryKey","text","timestamp","uniqueIndex","uuid","customType","bytea","pgTable","uuid","text","timestamp","uniqueIndex","jsonb","index","sql","check","integer","bigint","boolean","primaryKey","unique"]}
|