@tiangong-lca/cli 0.0.26 → 0.0.27

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.
@@ -32,10 +32,13 @@ export const PROTECTED_EXECUTION_COUNTS = {
32
32
  const SHA256 = /^[a-f0-9]{64}$/u;
33
33
  const UUID = /^[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/iu;
34
34
  const VERSION = /^[0-9]{2}\.[0-9]{2}\.[0-9]{3}$/u;
35
- function fail(message) {
35
+ const PROTECTED_PREFLIGHT_MAX_WINDOW_MS = 180_000;
36
+ const PROTECTED_SERVER_CLOCK_SKEW_TOLERANCE_MS = 5_000;
37
+ function fail(message, details) {
36
38
  throw new CliError(message, {
37
39
  code: 'DATASET_MAINTENANCE_PROTECTED_CONTRACT_INVALID',
38
40
  exitCode: 2,
41
+ details,
39
42
  });
40
43
  }
41
44
  function token(value, label) {
@@ -489,8 +492,27 @@ export function parseProtectedPreflightProof(value, identity, now = new Date())
489
492
  }
490
493
  const issued = Date.parse(proof.completed_at);
491
494
  const expires = Date.parse(proof.expires_at);
492
- if (issued > now.getTime() || expires <= now.getTime() || expires - issued > 180_000) {
493
- fail('Preflight token is stale, future-issued, or exceeds the 180-second admission window.');
495
+ const nowMs = now.getTime();
496
+ const windowMs = expires - issued;
497
+ const timingDetails = {
498
+ completed_at: proof.completed_at,
499
+ expires_at: proof.expires_at,
500
+ observed_at: now.toISOString(),
501
+ window_ms: windowMs,
502
+ future_skew_ms: issued - nowMs,
503
+ allowed_future_skew_ms: PROTECTED_SERVER_CLOCK_SKEW_TOLERANCE_MS,
504
+ };
505
+ if (windowMs <= 0) {
506
+ fail('Preflight token expiry must be later than its completion time.', timingDetails);
507
+ }
508
+ if (windowMs > PROTECTED_PREFLIGHT_MAX_WINDOW_MS) {
509
+ fail('Preflight token exceeds the 180-second admission window.', timingDetails);
510
+ }
511
+ if (issued - nowMs > PROTECTED_SERVER_CLOCK_SKEW_TOLERANCE_MS) {
512
+ fail('Preflight token is future-issued beyond the 5-second clock-skew allowance.', timingDetails);
513
+ }
514
+ if (expires <= nowMs) {
515
+ fail('Preflight token is stale.', timingDetails);
494
516
  }
495
517
  return proof;
496
518
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dataset-maintenance-protected-contract.js","sourceRoot":"","sources":["../../../src/lib/dataset-maintenance-protected-contract.ts"],"names":[],"mappings":"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","sourcesContent":["import { CliError } from './errors.js';\nimport {\n isJsonObject,\n sha256Json,\n sha256Text,\n type DatasetMaintenancePlan,\n type JsonObject,\n} from './dataset-maintenance-contract.js';\n\nexport const PROTECTED_EXECUTION_CONTRACT = {\n freeze_schema: 'dataset-alias-execution-freeze.v1',\n approval_schema: 'dataset-alias-execution-approval.v1',\n preflight_request_schema: 'dataset-alias-execution-preflight.v1',\n preflight_response_schema: 'dataset-alias-execution-preflight-proof.v1',\n gate_response_schema: 'dataset-alias-execution-gate-receipt.v1',\n admit_request_schema: 'dataset-alias-execution-admit.v1',\n admit_response_schema: 'dataset-alias-execution-admit.v1',\n status_response_schema: 'dataset-alias-execution-status.v1',\n terminal_proof_schema: 'dataset-alias-execution-terminal-proof.v1',\n marker_schema: 'dataset-alias-execution-attempt.v1',\n report_schema: 'dataset-alias-execution-report.v1',\n preflight_command: 'cmd_dataset_alias_execution_preflight_guarded',\n gate_command: 'cmd_dataset_alias_execution_gate_guarded',\n admit_command: 'cmd_dataset_alias_execution_admit_guarded',\n read_command: 'cmd_dataset_alias_execution_read',\n} as const;\n\nexport const PROTECTED_EXECUTION_COUNTS = {\n action_count: 52,\n batch_count: 2,\n exchange_count: 59,\n amount_field_count: 118,\n unrelated_exchange_count: 309,\n audit_count: 55,\n flowproperty_count: 2,\n flow_count: 23,\n process_count: 27,\n derivative_target_count: 50,\n} as const;\n\nconst SHA256 = /^[a-f0-9]{64}$/u;\nconst UUID = /^[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/iu;\nconst VERSION = /^[0-9]{2}\\.[0-9]{2}\\.[0-9]{3}$/u;\n\nexport type ProtectedExecutionStatus =\n | 'not_admitted'\n | 'dispatching'\n | 'dispatched'\n | 'running'\n | 'derivatives_pending'\n | 'completed'\n | 'failed'\n | 'indeterminate';\n\nexport type ProtectedReportStatus = 'pending' | 'passed' | 'failed' | 'indeterminate';\n\nexport type ProtectedDerivativeTargetTable = 'flows' | 'processes';\n\nexport type ProtectedDerivativeTarget = {\n table: ProtectedDerivativeTargetTable;\n id: string;\n version: string;\n user_id: string;\n state_code: 0;\n baseline_snapshot_sha256: string;\n};\n\nexport type ProtectedDerivativeSnapshot = {\n schema_version: 'dataset-derivative-snapshot.v1';\n table: ProtectedDerivativeTargetTable;\n id: string;\n version: string;\n user_id: string;\n state_code: 0;\n modified_at: string;\n json_sha256: string;\n json_ordered_sha256: string;\n extracted_text_sha256: string;\n extracted_md_sha256: string | null;\n embedding_ft_sha256: string | null;\n embedding_ft_at: string | null;\n snapshot_sha256: string;\n};\n\nexport type ProtectedExecutionBindings = {\n plan_file_sha256: string;\n freeze_file_sha256: string;\n freeze_sha256: string;\n approval_file_sha256: string;\n approval_identity_sha256: string;\n approval_text_sha256: string;\n alias_plan_request_sha256: string;\n before_hash_set_sha256: string;\n desired_hash_set_sha256: string;\n exchange_rewrite_set_sha256: string;\n support_snapshot_set_sha256: string;\n derivative_baseline_set_sha256: string;\n derivative_target_set_sha256: string;\n toolchain_evidence_sha256: string;\n};\n\nexport type ProtectedGateExpectations = {\n primary_support_plan_sha256: string;\n execution_unused_sha256: string;\n derivative_quiescence_sha256: string;\n};\n\nexport type DatasetMaintenanceProtectedFreeze = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.freeze_schema;\n environment: 'production';\n project_ref: string;\n account: { user_id: string; email: string };\n target_visibility: 'owner_draft';\n plan: {\n plan_file_sha256: string;\n plan_sha256: string;\n operation_id: string;\n };\n sets: Omit<\n ProtectedExecutionBindings,\n | 'plan_file_sha256'\n | 'freeze_file_sha256'\n | 'freeze_sha256'\n | 'approval_file_sha256'\n | 'approval_identity_sha256'\n | 'approval_text_sha256'\n >;\n expected: typeof PROTECTED_EXECUTION_COUNTS;\n derivative_targets: ProtectedDerivativeTarget[];\n policy: {\n state_code_changes: 0;\n save_draft: 0;\n deletes: 0;\n rebuild_derivatives: 0;\n unitgroup_actions: 0;\n person_distance_actions: 0;\n max_admit_posts: 1;\n automatic_retry: false;\n };\n freeze_sha256: string;\n};\n\nexport type DatasetMaintenanceProtectedApproval = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.approval_schema;\n approved_at_utc: string;\n environment: 'production';\n project_ref: string;\n account: { user_id: string; email: string };\n target_visibility: 'owner_draft';\n plan_sha256: string;\n operation_id: string;\n plan_file_sha256: string;\n freeze_file_sha256: string;\n freeze_sha256: string;\n approval_text_sha256: string;\n max_admit_posts: 1;\n automatic_retry: false;\n approval_identity_sha256: string;\n};\n\nexport type ProtectedExecutionIdentity = {\n request_id: string;\n identity_sha256: string;\n environment: 'production';\n project_ref: string;\n actor: { user_id: string; email: string };\n target_visibility: 'owner_draft';\n plan_sha256: string;\n operation_id: string;\n bindings: ProtectedExecutionBindings;\n expected: typeof PROTECTED_EXECUTION_COUNTS;\n derivative_targets: ProtectedDerivativeTarget[];\n};\n\nexport type ProtectedPreflightProof = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.preflight_response_schema;\n command: typeof PROTECTED_EXECUTION_CONTRACT.preflight_command;\n request_id: string;\n actor_user_id: string;\n environment: 'production';\n project_ref: string;\n server_context_sha256: string;\n plan_sha256: string;\n operation_id: string;\n alias_plan_request_sha256: string;\n freeze_sha256: string;\n approval_identity_sha256: string;\n plan_request_sha256: string;\n bindings_sha256: string;\n expected_sha256: string;\n derivative_targets_sha256: string;\n gate_expectations: ProtectedGateExpectations;\n gate_expectations_sha256: string;\n failure_baseline_sha256: string;\n preflight_request_sha256: string;\n preflight_token: string;\n preflight_proof_sha256: string;\n completed_at: string;\n expires_at: string;\n simulation: {\n plan_rows: 52;\n plan_exchanges: 59;\n alias_audits: 55;\n derivative_targets: 50;\n rolled_back: true;\n };\n};\n\nexport type ProtectedGateResult = {\n expected_sha256: string;\n observed_sha256: string;\n status: 'passed';\n captured_at: string;\n};\n\nexport type ProtectedGateProof = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.gate_response_schema;\n command: typeof PROTECTED_EXECUTION_CONTRACT.gate_command;\n request_id: string;\n actor_user_id: string;\n preflight_proof_sha256: string;\n gate: 'primary_support_plan' | 'execution_unused' | 'derivative_quiescence';\n result: ProtectedGateResult;\n receipt_sha256: string;\n};\n\nexport type ProtectedAdmissionProof = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.admit_response_schema;\n command: typeof PROTECTED_EXECUTION_CONTRACT.admit_command;\n request_id: string;\n plan_sha256: string;\n operation_id: string;\n plan_request_sha256: string;\n preflight_proof_sha256: string;\n admission_request_sha256: string;\n gate_results_sha256: string;\n status: 'dispatched';\n attempt_count: 1;\n dispatch_count: 1;\n net_request_id: string;\n attempt_consumed: true;\n retry_allowed: false;\n};\n\nexport type ProtectedTerminalTargetProof = {\n ordinal: number;\n request_id: string;\n table: ProtectedDerivativeTargetTable;\n id: string;\n version: string;\n status: string;\n phase: string;\n source_baseline_snapshot_sha256: string;\n expected_snapshot_sha256: string;\n completed_snapshot_sha256: string | null;\n primary_matches: boolean;\n terminal_snapshot_matches: boolean;\n proposals_committed: boolean;\n derivative_fresh: boolean;\n lifecycle_complete: boolean;\n terminal_audit_present: boolean;\n residue: {\n http_requests: number;\n embedding_jobs: number;\n pending_jobs: number;\n failure_rows: number;\n other_active_fences: number;\n };\n causal_terminal_proof: boolean;\n};\n\nexport type ProtectedStatusTargetProof = {\n ordinal: number;\n request_id: string;\n table: ProtectedDerivativeTargetTable;\n id: string;\n version: string;\n status: string;\n phase: string;\n error: JsonObject | null;\n causal_terminal_proof: false;\n};\n\ntype ProtectedDerivativeReadbackCommon = {\n schema_version: 'dataset-derivative-rebuild-batch-status.v1';\n batch_id: string;\n code: string | null;\n causal_terminal_proof: boolean;\n target_count: number;\n flow_count: number;\n process_count: number;\n completed_count: number;\n nonterminal_count: number;\n failed_count: number;\n};\n\nexport type ProtectedDerivativeReadback = ProtectedDerivativeReadbackCommon &\n (\n | {\n status: 'not_started';\n proof_level: 'none';\n proof_deferred: false;\n invalid_proof_count: null;\n targets: [];\n }\n | {\n status: 'pending' | 'failed';\n proof_level: 'status_only';\n proof_deferred: boolean;\n invalid_proof_count: null;\n targets: ProtectedStatusTargetProof[];\n }\n | {\n status: 'completed' | 'failed';\n proof_level: 'causal_terminal';\n proof_deferred: false;\n invalid_proof_count: number;\n targets: ProtectedTerminalTargetProof[];\n }\n );\n\nexport type ProtectedExecutionStatusProof = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.status_response_schema;\n command: typeof PROTECTED_EXECUTION_CONTRACT.read_command;\n request_id: string;\n status: ProtectedReportStatus;\n execution_status: ProtectedExecutionStatus;\n retry_allowed: false;\n actor_user_id: string;\n environment: 'production';\n project_ref: string;\n target_visibility: 'owner_draft' | null;\n plan_sha256: string;\n operation_id: string;\n plan_request_sha256: string;\n freeze_sha256: string | null;\n approval_identity_sha256: string | null;\n approval_text_sha256: string | null;\n derivative_target_set_sha256: string | null;\n preflight_proof_sha256: string;\n admission_request_sha256: string | null;\n gate_results_sha256: string | null;\n attempt_count: number;\n dispatch_count: number;\n gate_count: number;\n gates: Array<ProtectedGateResult & { gate: ProtectedGateProof['gate']; receipt_sha256: string }>;\n primary_readback: {\n row_count: number | null;\n exchange_count: number | null;\n alias_audit_count: number;\n live_closure_proof: boolean;\n closure: JsonObject;\n } | null;\n derivative_readback: ProtectedDerivativeReadback;\n failure: JsonObject | null;\n};\n\nfunction fail(message: string): never {\n throw new CliError(message, {\n code: 'DATASET_MAINTENANCE_PROTECTED_CONTRACT_INVALID',\n exitCode: 2,\n });\n}\n\nfunction token(value: unknown, label: string): string {\n if (typeof value !== 'string' || !value.trim()) fail(`${label} must be a non-empty string.`);\n return value.trim();\n}\n\nfunction hash(value: unknown, label: string): string {\n const result = token(value, label);\n if (!SHA256.test(result)) fail(`${label} must be a lowercase SHA-256 digest.`);\n return result;\n}\n\nfunction timestamp(value: unknown, label: string): string {\n const result = token(value, label);\n if (!Number.isFinite(Date.parse(result))) fail(`${label} must be an ISO timestamp.`);\n return result;\n}\n\nfunction nullableHash(value: unknown, label: string): string | null {\n return value === null ? null : hash(value, label);\n}\n\nfunction nullableTimestamp(value: unknown, label: string): string | null {\n return value === null ? null : timestamp(value, label);\n}\n\nfunction parseAccount(value: unknown, label: string): { user_id: string; email: string } {\n if (!isJsonObject(value)) fail(`${label} must be an object.`);\n return {\n user_id: token(value.user_id, `${label}.user_id`),\n email: token(value.email, `${label}.email`),\n };\n}\n\nfunction parseExpected(value: unknown): typeof PROTECTED_EXECUTION_COUNTS {\n if (!isJsonObject(value)) fail('expected must be an object.');\n for (const [key, expected] of Object.entries(PROTECTED_EXECUTION_COUNTS)) {\n if (value[key] !== expected) fail(`expected.${key} must equal ${expected}.`);\n }\n return PROTECTED_EXECUTION_COUNTS;\n}\n\nfunction parseGateExpectations(value: unknown): ProtectedGateExpectations {\n if (!isJsonObject(value)) fail('gate_expectations must be an object.');\n return {\n primary_support_plan_sha256: hash(\n value.primary_support_plan_sha256,\n 'gate_expectations.primary_support_plan_sha256',\n ),\n execution_unused_sha256: hash(\n value.execution_unused_sha256,\n 'gate_expectations.execution_unused_sha256',\n ),\n derivative_quiescence_sha256: hash(\n value.derivative_quiescence_sha256,\n 'gate_expectations.derivative_quiescence_sha256',\n ),\n };\n}\n\nfunction parseDerivativeTarget(value: unknown, index: number): ProtectedDerivativeTarget {\n const label = `derivative_targets[${index}]`;\n if (!isJsonObject(value)) fail(`${label} must be an object.`);\n if (value.table !== 'flows' && value.table !== 'processes') {\n fail(`${label}.table must be flows or processes.`);\n }\n if (value.state_code !== 0) fail(`${label}.state_code must equal 0.`);\n const id = token(value.id, `${label}.id`);\n const version = token(value.version, `${label}.version`);\n if (!UUID.test(id) || !VERSION.test(version)) {\n fail(`${label} must contain a UUID id and canonical version.`);\n }\n return {\n table: value.table,\n id,\n version,\n user_id: token(value.user_id, `${label}.user_id`),\n state_code: 0 as const,\n baseline_snapshot_sha256: hash(\n value.baseline_snapshot_sha256,\n `${label}.baseline_snapshot_sha256`,\n ),\n };\n}\n\nfunction parseDerivativeTargets(value: unknown): ProtectedDerivativeTarget[] {\n if (!Array.isArray(value)) fail('derivative_targets must be an array.');\n const targets = value.map(parseDerivativeTarget);\n const keys = targets.map((target) => `${target.table}\\u0000${target.id}\\u0000${target.version}`);\n if (\n targets.length !== PROTECTED_EXECUTION_COUNTS.derivative_target_count ||\n new Set(keys).size !== targets.length ||\n targets.filter((target) => target.table === 'flows').length !==\n PROTECTED_EXECUTION_COUNTS.flow_count ||\n targets.filter((target) => target.table === 'processes').length !==\n PROTECTED_EXECUTION_COUNTS.process_count\n ) {\n fail('derivative_targets must contain exactly 23 flows and 27 processes with no duplicates.');\n }\n const sorted = [...targets].sort((left, right) =>\n `${left.table}\\u0000${left.id}\\u0000${left.version}`.localeCompare(\n `${right.table}\\u0000${right.id}\\u0000${right.version}`,\n ),\n );\n if (sorted.some((target, index) => target !== targets[index])) {\n fail('derivative_targets must use stable table/id/version order.');\n }\n return targets;\n}\n\nexport function parseProtectedDerivativeSnapshot(\n value: unknown,\n expected: {\n table: ProtectedDerivativeTargetTable;\n id: string;\n version: string;\n userId: string;\n },\n): ProtectedDerivativeSnapshot {\n if (\n !isJsonObject(value) ||\n value.ok !== true ||\n value.command !== 'cmd_dataset_derivative_rebuild_snapshot' ||\n value.schema_version !== 'dataset-derivative-snapshot.v1' ||\n value.table !== expected.table ||\n value.id !== expected.id ||\n value.version !== expected.version ||\n value.user_id !== expected.userId ||\n value.state_code !== 0\n ) {\n fail('Derivative snapshot RPC returned a foreign or unsupported snapshot.');\n }\n const snapshot: ProtectedDerivativeSnapshot = {\n schema_version: 'dataset-derivative-snapshot.v1',\n table: expected.table,\n id: expected.id,\n version: expected.version,\n user_id: expected.userId,\n state_code: 0,\n modified_at: timestamp(value.modified_at, 'derivative_snapshot.modified_at'),\n json_sha256: hash(value.json_sha256, 'derivative_snapshot.json_sha256'),\n json_ordered_sha256: hash(value.json_ordered_sha256, 'derivative_snapshot.json_ordered_sha256'),\n extracted_text_sha256: hash(\n value.extracted_text_sha256,\n 'derivative_snapshot.extracted_text_sha256',\n ),\n extracted_md_sha256: nullableHash(\n value.extracted_md_sha256,\n 'derivative_snapshot.extracted_md_sha256',\n ),\n embedding_ft_sha256: nullableHash(\n value.embedding_ft_sha256,\n 'derivative_snapshot.embedding_ft_sha256',\n ),\n embedding_ft_at: nullableTimestamp(\n value.embedding_ft_at,\n 'derivative_snapshot.embedding_ft_at',\n ),\n snapshot_sha256: hash(value.snapshot_sha256, 'derivative_snapshot.snapshot_sha256'),\n };\n if (snapshot.json_sha256 !== snapshot.json_ordered_sha256) {\n fail('Derivative snapshot json and json_ordered hashes are inconsistent.');\n }\n return snapshot;\n}\n\nfunction parseFreezeSets(value: unknown): DatasetMaintenanceProtectedFreeze['sets'] {\n if (!isJsonObject(value)) fail('sets must be an object.');\n return {\n alias_plan_request_sha256: hash(\n value.alias_plan_request_sha256,\n 'sets.alias_plan_request_sha256',\n ),\n before_hash_set_sha256: hash(value.before_hash_set_sha256, 'sets.before_hash_set_sha256'),\n desired_hash_set_sha256: hash(value.desired_hash_set_sha256, 'sets.desired_hash_set_sha256'),\n exchange_rewrite_set_sha256: hash(\n value.exchange_rewrite_set_sha256,\n 'sets.exchange_rewrite_set_sha256',\n ),\n support_snapshot_set_sha256: hash(\n value.support_snapshot_set_sha256,\n 'sets.support_snapshot_set_sha256',\n ),\n derivative_baseline_set_sha256: hash(\n value.derivative_baseline_set_sha256,\n 'sets.derivative_baseline_set_sha256',\n ),\n derivative_target_set_sha256: hash(\n value.derivative_target_set_sha256,\n 'sets.derivative_target_set_sha256',\n ),\n toolchain_evidence_sha256: hash(\n value.toolchain_evidence_sha256,\n 'sets.toolchain_evidence_sha256',\n ),\n };\n}\n\nexport function computeProtectedFreezeSha256(freeze: DatasetMaintenanceProtectedFreeze): string {\n return sha256Json({ ...freeze, freeze_sha256: '' });\n}\n\nexport function parseProtectedFreeze(value: unknown): DatasetMaintenanceProtectedFreeze {\n if (\n !isJsonObject(value) ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.freeze_schema ||\n value.environment !== 'production' ||\n value.target_visibility !== 'owner_draft' ||\n !isJsonObject(value.plan) ||\n !isJsonObject(value.policy)\n ) {\n fail(\n `Freeze must use ${PROTECTED_EXECUTION_CONTRACT.freeze_schema} for production owner_draft.`,\n );\n }\n const targets = parseDerivativeTargets(value.derivative_targets);\n const account = parseAccount(value.account, 'account');\n if (targets.some((target) => target.user_id !== account.user_id)) {\n fail('Every derivative target must belong to the frozen account.');\n }\n const freeze: DatasetMaintenanceProtectedFreeze = {\n schema_version: PROTECTED_EXECUTION_CONTRACT.freeze_schema,\n environment: 'production',\n project_ref: token(value.project_ref, 'project_ref'),\n account,\n target_visibility: 'owner_draft',\n plan: {\n plan_file_sha256: hash(value.plan.plan_file_sha256, 'plan.plan_file_sha256'),\n plan_sha256: hash(value.plan.plan_sha256, 'plan.plan_sha256'),\n operation_id: token(value.plan.operation_id, 'plan.operation_id'),\n },\n sets: parseFreezeSets(value.sets),\n expected: parseExpected(value.expected),\n derivative_targets: targets,\n policy: {\n state_code_changes: value.policy.state_code_changes as 0,\n save_draft: value.policy.save_draft as 0,\n deletes: value.policy.deletes as 0,\n rebuild_derivatives: value.policy.rebuild_derivatives as 0,\n unitgroup_actions: value.policy.unitgroup_actions as 0,\n person_distance_actions: value.policy.person_distance_actions as 0,\n max_admit_posts: value.policy.max_admit_posts as 1,\n automatic_retry: value.policy.automatic_retry as false,\n },\n freeze_sha256: hash(value.freeze_sha256, 'freeze_sha256'),\n };\n if (\n freeze.policy.state_code_changes !== 0 ||\n freeze.policy.save_draft !== 0 ||\n freeze.policy.deletes !== 0 ||\n freeze.policy.rebuild_derivatives !== 0 ||\n freeze.policy.unitgroup_actions !== 0 ||\n freeze.policy.person_distance_actions !== 0 ||\n freeze.policy.max_admit_posts !== 1 ||\n freeze.policy.automatic_retry !== false\n ) {\n fail('Freeze policy permits an operation outside the one-shot owner-draft alias execution.');\n }\n if (computeProtectedFreezeSha256(freeze) !== freeze.freeze_sha256) {\n fail('freeze_sha256 does not match the canonical freeze contents.');\n }\n return freeze;\n}\n\nexport function computeProtectedApprovalIdentitySha256(\n approval: DatasetMaintenanceProtectedApproval,\n): string {\n return sha256Json({ ...approval, approval_identity_sha256: '' });\n}\n\nexport function parseProtectedApproval(value: unknown): DatasetMaintenanceProtectedApproval {\n if (\n !isJsonObject(value) ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.approval_schema ||\n value.environment !== 'production' ||\n value.target_visibility !== 'owner_draft'\n ) {\n fail(\n `Approval must use ${PROTECTED_EXECUTION_CONTRACT.approval_schema} for production owner_draft.`,\n );\n }\n const approval: DatasetMaintenanceProtectedApproval = {\n schema_version: PROTECTED_EXECUTION_CONTRACT.approval_schema,\n approved_at_utc: timestamp(value.approved_at_utc, 'approved_at_utc'),\n environment: 'production',\n project_ref: token(value.project_ref, 'project_ref'),\n account: parseAccount(value.account, 'account'),\n target_visibility: 'owner_draft',\n plan_sha256: hash(value.plan_sha256, 'plan_sha256'),\n operation_id: token(value.operation_id, 'operation_id'),\n plan_file_sha256: hash(value.plan_file_sha256, 'plan_file_sha256'),\n freeze_file_sha256: hash(value.freeze_file_sha256, 'freeze_file_sha256'),\n freeze_sha256: hash(value.freeze_sha256, 'freeze_sha256'),\n approval_text_sha256: hash(value.approval_text_sha256, 'approval_text_sha256'),\n max_admit_posts: value.max_admit_posts as 1,\n automatic_retry: value.automatic_retry as false,\n approval_identity_sha256: hash(value.approval_identity_sha256, 'approval_identity_sha256'),\n };\n if (approval.max_admit_posts !== 1 || approval.automatic_retry !== false) {\n fail('Approval must authorize exactly one admit POST with no automatic retry.');\n }\n if (computeProtectedApprovalIdentitySha256(approval) !== approval.approval_identity_sha256) {\n fail('approval_identity_sha256 does not match the canonical approval contents.');\n }\n return approval;\n}\n\nexport function protectedPlanSetHashes(plan: DatasetMaintenancePlan): {\n before_hash_set_sha256: string;\n desired_hash_set_sha256: string;\n exchange_rewrite_set_sha256: string;\n support_snapshot_set_sha256: string;\n derivative_target_set_sha256: string;\n} {\n const orderedActions = [...plan.actions].sort((left, right) =>\n left.action_id.localeCompare(right.action_id),\n );\n const derivativeTargets = plan.actions\n .filter((action) => action.table === 'flows' || action.table === 'processes')\n .sort(\n (left, right) =>\n left.table.localeCompare(right.table) ||\n left.id.localeCompare(right.id) ||\n left.version.localeCompare(right.version),\n )\n .map((action) => ({\n table: action.table,\n id: action.id,\n version: action.version,\n user_id: action.expected_user_id,\n state_code: action.expected_state_code,\n }));\n return {\n before_hash_set_sha256: sha256Json(\n orderedActions.map((action) => ({\n action_id: action.action_id,\n table: action.table,\n id: action.id,\n version: action.version,\n row_sha256: action.before?.row_sha256 ?? null,\n })),\n ),\n desired_hash_set_sha256: sha256Json(\n orderedActions.map((action) => ({\n action_id: action.action_id,\n table: action.table,\n id: action.id,\n version: action.version,\n payload_sha256: action.desired_payload?.sha256 ?? null,\n })),\n ),\n exchange_rewrite_set_sha256: sha256Json(\n (plan.alias_batches ?? []).flatMap((batch) => batch.exchange_rewrites),\n ),\n support_snapshot_set_sha256: sha256Json(\n (plan.alias_batches ?? []).map((batch) => ({\n batch_id: batch.batch_id,\n target_snapshots: batch.target_snapshots,\n })),\n ),\n derivative_target_set_sha256: sha256Json(derivativeTargets),\n };\n}\n\nexport function protectedDerivativeBaselineSetSha256(targets: ProtectedDerivativeTarget[]): string {\n return sha256Json(\n targets.map((target) => ({\n table: target.table,\n id: target.id,\n version: target.version,\n baseline_snapshot_sha256: target.baseline_snapshot_sha256,\n })),\n );\n}\n\nexport function assertProtectedFreezeMatchesPlan(options: {\n plan: DatasetMaintenancePlan;\n planFileSha256: string;\n aliasPlanRequestSha256: string;\n freeze: DatasetMaintenanceProtectedFreeze;\n}): void {\n const { plan, planFileSha256, freeze } = options;\n if (\n plan.operation !== 'merge-support-aliases' ||\n plan.status !== 'ready' ||\n plan.target_mode !== 'owner_draft' ||\n plan.blockers.length !== 0 ||\n plan.account.user_id !== freeze.account.user_id ||\n plan.account.email !== freeze.account.email ||\n plan.plan_sha256 !== freeze.plan.plan_sha256 ||\n plan.operation_id !== freeze.plan.operation_id ||\n planFileSha256 !== freeze.plan.plan_file_sha256\n ) {\n fail('Protected freeze does not bind the ready owner-draft alias plan and account exactly.');\n }\n const actionCounts = {\n flowproperties: plan.actions.filter((action) => action.table === 'flowproperties').length,\n flows: plan.actions.filter((action) => action.table === 'flows').length,\n processes: plan.actions.filter((action) => action.table === 'processes').length,\n };\n if (\n plan.actions.length !== PROTECTED_EXECUTION_COUNTS.action_count ||\n plan.alias_batches?.length !== PROTECTED_EXECUTION_COUNTS.batch_count ||\n actionCounts.flowproperties !== PROTECTED_EXECUTION_COUNTS.flowproperty_count ||\n actionCounts.flows !== PROTECTED_EXECUTION_COUNTS.flow_count ||\n actionCounts.processes !== PROTECTED_EXECUTION_COUNTS.process_count ||\n (plan.summary.scaled_exchanges ?? 0) !== PROTECTED_EXECUTION_COUNTS.exchange_count ||\n (plan.summary.scaled_amount_fields ?? 0) !== PROTECTED_EXECUTION_COUNTS.amount_field_count ||\n (plan.summary.unrelated_exchanges_preserved ?? 0) !==\n PROTECTED_EXECUTION_COUNTS.unrelated_exchange_count\n ) {\n fail('Protected plan counts do not match the Step 2 execution contract.');\n }\n const sets = protectedPlanSetHashes(plan);\n for (const [key, actual] of Object.entries(sets)) {\n if (freeze.sets[key as keyof typeof sets] !== actual) fail(`Freeze set hash mismatch: ${key}.`);\n }\n if (freeze.sets.alias_plan_request_sha256 !== options.aliasPlanRequestSha256) {\n fail('Freeze alias request hash does not match the exact serialized database plan.');\n }\n if (\n freeze.sets.derivative_baseline_set_sha256 !==\n protectedDerivativeBaselineSetSha256(freeze.derivative_targets)\n ) {\n fail('Freeze derivative baseline set hash does not match the 50 targets.');\n }\n const targetByKey = new Map(\n freeze.derivative_targets.map((target) => [\n `${target.table}\\u0000${target.id}\\u0000${target.version}`,\n target,\n ]),\n );\n for (const action of plan.actions.filter(\n (entry) => entry.table === 'flows' || entry.table === 'processes',\n )) {\n const target = targetByKey.get(`${action.table}\\u0000${action.id}\\u0000${action.version}`);\n if (!target || target.user_id !== action.expected_user_id) {\n fail(`Derivative baseline does not bind action ${action.action_id}.`);\n }\n }\n}\n\nexport function assertProtectedApprovalBindings(options: {\n approval: DatasetMaintenanceProtectedApproval;\n freeze: DatasetMaintenanceProtectedFreeze;\n freezeFileSha256: string;\n approvalFileSha256: string;\n approveExecution?: string;\n}): void {\n const { approval, freeze } = options;\n if (\n approval.environment !== freeze.environment ||\n approval.project_ref !== freeze.project_ref ||\n approval.account.user_id !== freeze.account.user_id ||\n approval.account.email !== freeze.account.email ||\n approval.plan_sha256 !== freeze.plan.plan_sha256 ||\n approval.operation_id !== freeze.plan.operation_id ||\n approval.plan_file_sha256 !== freeze.plan.plan_file_sha256 ||\n approval.freeze_file_sha256 !== options.freezeFileSha256 ||\n approval.freeze_sha256 !== freeze.freeze_sha256 ||\n approval.approval_identity_sha256 !== options.approveExecution\n ) {\n fail('Approval does not bind this exact production freeze, plan, actor, and CLI confirmation.');\n }\n hash(options.approvalFileSha256, 'approval_file_sha256');\n}\n\nfunction deterministicUuidFromSha256(digest: string): string {\n const chars = digest.slice(0, 32).split('');\n chars[12] = '5';\n chars[16] = ((Number.parseInt(chars[16]!, 16) & 0x3) | 0x8).toString(16);\n const hex = chars.join('');\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n}\n\nexport function buildProtectedExecutionIdentity(options: {\n freeze: DatasetMaintenanceProtectedFreeze;\n approval: DatasetMaintenanceProtectedApproval;\n freezeFileSha256: string;\n approvalFileSha256: string;\n}): ProtectedExecutionIdentity {\n const bindings: ProtectedExecutionBindings = {\n plan_file_sha256: options.freeze.plan.plan_file_sha256,\n freeze_file_sha256: options.freezeFileSha256,\n freeze_sha256: options.freeze.freeze_sha256,\n approval_file_sha256: options.approvalFileSha256,\n approval_identity_sha256: options.approval.approval_identity_sha256,\n approval_text_sha256: options.approval.approval_text_sha256,\n ...options.freeze.sets,\n };\n const body = {\n environment: 'production' as const,\n project_ref: options.freeze.project_ref,\n actor: options.freeze.account,\n target_visibility: 'owner_draft' as const,\n plan_sha256: options.freeze.plan.plan_sha256,\n operation_id: options.freeze.plan.operation_id,\n bindings,\n expected: PROTECTED_EXECUTION_COUNTS,\n derivative_targets: options.freeze.derivative_targets,\n };\n const identitySha256 = sha256Json(body);\n const requestId = deterministicUuidFromSha256(\n sha256Text(`dataset-alias-protected-request.v1\\u0000${identitySha256}`),\n );\n return { request_id: requestId, identity_sha256: identitySha256, ...body };\n}\n\nexport function buildProtectedPreflightRequest(options: {\n identity: ProtectedExecutionIdentity;\n plan: JsonObject;\n freeze: DatasetMaintenanceProtectedFreeze;\n approval: DatasetMaintenanceProtectedApproval;\n}): JsonObject {\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.preflight_request_schema,\n request_id: options.identity.request_id,\n environment: options.identity.environment,\n project_ref: options.identity.project_ref,\n actor: options.identity.actor,\n target_visibility: options.identity.target_visibility,\n plan: options.plan,\n freeze: options.freeze,\n approval: options.approval,\n bindings: options.identity.bindings,\n expected: options.identity.expected,\n derivative_targets: options.identity.derivative_targets,\n };\n}\n\nexport function parseProtectedPreflightProof(\n value: unknown,\n identity: ProtectedExecutionIdentity,\n now = new Date(),\n): ProtectedPreflightProof {\n if (\n !isJsonObject(value) ||\n value.ok !== true ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.preflight_response_schema ||\n value.command !== PROTECTED_EXECUTION_CONTRACT.preflight_command ||\n value.request_id !== identity.request_id ||\n value.actor_user_id !== identity.actor.user_id ||\n value.environment !== identity.environment ||\n value.project_ref !== identity.project_ref ||\n value.plan_sha256 !== identity.plan_sha256 ||\n value.operation_id !== identity.operation_id ||\n !isJsonObject(value.simulation)\n ) {\n fail('Preflight RPC returned a foreign or unsupported proof envelope.');\n }\n const proof: ProtectedPreflightProof = {\n schema_version: PROTECTED_EXECUTION_CONTRACT.preflight_response_schema,\n command: PROTECTED_EXECUTION_CONTRACT.preflight_command,\n request_id: identity.request_id,\n actor_user_id: identity.actor.user_id,\n environment: 'production',\n project_ref: identity.project_ref,\n server_context_sha256: hash(value.server_context_sha256, 'server_context_sha256'),\n plan_sha256: identity.plan_sha256,\n operation_id: identity.operation_id,\n alias_plan_request_sha256: hash(value.alias_plan_request_sha256, 'alias_plan_request_sha256'),\n freeze_sha256: hash(value.freeze_sha256, 'freeze_sha256'),\n approval_identity_sha256: hash(value.approval_identity_sha256, 'approval_identity_sha256'),\n plan_request_sha256: hash(value.plan_request_sha256, 'plan_request_sha256'),\n bindings_sha256: hash(value.bindings_sha256, 'bindings_sha256'),\n expected_sha256: hash(value.expected_sha256, 'expected_sha256'),\n derivative_targets_sha256: hash(value.derivative_targets_sha256, 'derivative_targets_sha256'),\n gate_expectations: parseGateExpectations(value.gate_expectations),\n gate_expectations_sha256: hash(value.gate_expectations_sha256, 'gate_expectations_sha256'),\n failure_baseline_sha256: hash(value.failure_baseline_sha256, 'failure_baseline_sha256'),\n preflight_request_sha256: hash(value.preflight_request_sha256, 'preflight_request_sha256'),\n preflight_token: token(value.preflight_token, 'preflight_token'),\n preflight_proof_sha256: hash(value.preflight_proof_sha256, 'preflight_proof_sha256'),\n completed_at: timestamp(value.completed_at, 'completed_at'),\n expires_at: timestamp(value.expires_at, 'expires_at'),\n simulation: {\n plan_rows: value.simulation.plan_rows as 52,\n plan_exchanges: value.simulation.plan_exchanges as 59,\n alias_audits: value.simulation.alias_audits as 55,\n derivative_targets: value.simulation.derivative_targets as 50,\n rolled_back: value.simulation.rolled_back as true,\n },\n };\n if (\n proof.alias_plan_request_sha256 !== identity.bindings.alias_plan_request_sha256 ||\n proof.freeze_sha256 !== identity.bindings.freeze_sha256 ||\n proof.approval_identity_sha256 !== identity.bindings.approval_identity_sha256 ||\n proof.simulation.plan_rows !== PROTECTED_EXECUTION_COUNTS.action_count ||\n proof.simulation.plan_exchanges !== PROTECTED_EXECUTION_COUNTS.exchange_count ||\n proof.simulation.alias_audits !== PROTECTED_EXECUTION_COUNTS.audit_count ||\n proof.simulation.derivative_targets !== PROTECTED_EXECUTION_COUNTS.derivative_target_count ||\n proof.simulation.rolled_back !== true\n ) {\n fail('Preflight simulation did not prove the exact protected profile and rollback.');\n }\n const issued = Date.parse(proof.completed_at);\n const expires = Date.parse(proof.expires_at);\n if (issued > now.getTime() || expires <= now.getTime() || expires - issued > 180_000) {\n fail('Preflight token is stale, future-issued, or exceeds the 180-second admission window.');\n }\n return proof;\n}\n\nexport function parseProtectedGateProof(\n value: unknown,\n options: {\n identity: ProtectedExecutionIdentity;\n preflight: ProtectedPreflightProof;\n gate: ProtectedGateProof['gate'];\n },\n): ProtectedGateProof {\n if (\n !isJsonObject(value) ||\n value.ok !== true ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.gate_response_schema ||\n value.command !== PROTECTED_EXECUTION_CONTRACT.gate_command ||\n value.request_id !== options.identity.request_id ||\n value.actor_user_id !== options.identity.actor.user_id ||\n value.preflight_proof_sha256 !== options.preflight.preflight_proof_sha256 ||\n value.gate !== options.gate ||\n value.status !== 'passed'\n ) {\n fail('Gate RPC returned a foreign, failed, or unsupported receipt.');\n }\n const expectedName = `${options.gate}_sha256` as keyof ProtectedGateExpectations;\n const expectedSha256 = hash(value.expected_sha256, 'gate.expected_sha256');\n const observedSha256 = hash(value.observed_sha256, 'gate.observed_sha256');\n const capturedAt = timestamp(value.captured_at, 'gate.captured_at');\n if (\n expectedSha256 !== options.preflight.gate_expectations[expectedName] ||\n observedSha256 !== expectedSha256 ||\n Date.parse(capturedAt) < Date.parse(options.preflight.completed_at) ||\n Date.parse(capturedAt) > Date.parse(options.preflight.expires_at)\n ) {\n fail('Gate receipt does not match the frozen digest or server preflight window.');\n }\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.gate_response_schema,\n command: PROTECTED_EXECUTION_CONTRACT.gate_command,\n request_id: options.identity.request_id,\n actor_user_id: options.identity.actor.user_id,\n preflight_proof_sha256: options.preflight.preflight_proof_sha256,\n gate: options.gate,\n result: {\n expected_sha256: expectedSha256,\n observed_sha256: observedSha256,\n status: 'passed',\n captured_at: capturedAt,\n },\n receipt_sha256: hash(value.receipt_sha256, 'gate.receipt_sha256'),\n };\n}\n\nexport function buildProtectedAdmitRequest(options: {\n preflight: ProtectedPreflightProof;\n gateResults: {\n primary_support_plan: ProtectedGateResult;\n execution_unused: ProtectedGateResult;\n derivative_quiescence: ProtectedGateResult;\n };\n}): JsonObject {\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.admit_request_schema,\n request_id: options.preflight.request_id,\n preflight_token: options.preflight.preflight_token,\n preflight_proof_sha256: options.preflight.preflight_proof_sha256,\n gate_results: options.gateResults,\n };\n}\n\nexport function parseProtectedAdmissionProof(\n value: unknown,\n identity: ProtectedExecutionIdentity,\n preflight: ProtectedPreflightProof,\n): ProtectedAdmissionProof {\n if (\n !isJsonObject(value) ||\n value.ok !== true ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.admit_response_schema ||\n value.command !== PROTECTED_EXECUTION_CONTRACT.admit_command ||\n value.request_id !== identity.request_id ||\n value.plan_sha256 !== identity.plan_sha256 ||\n value.operation_id !== identity.operation_id ||\n value.plan_request_sha256 !== preflight.plan_request_sha256 ||\n value.preflight_proof_sha256 !== preflight.preflight_proof_sha256 ||\n value.status !== 'dispatched' ||\n value.attempt_count !== 1 ||\n value.dispatch_count !== 1 ||\n value.attempt_consumed !== true ||\n value.retry_allowed !== false\n ) {\n fail('Admission RPC returned a foreign, duplicate, or unsupported proof envelope.');\n }\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.admit_response_schema,\n command: PROTECTED_EXECUTION_CONTRACT.admit_command,\n request_id: identity.request_id,\n plan_sha256: identity.plan_sha256,\n operation_id: identity.operation_id,\n plan_request_sha256: preflight.plan_request_sha256,\n preflight_proof_sha256: preflight.preflight_proof_sha256,\n admission_request_sha256: hash(value.admission_request_sha256, 'admission_request_sha256'),\n gate_results_sha256: hash(value.gate_results_sha256, 'gate_results_sha256'),\n status: 'dispatched',\n attempt_count: 1,\n dispatch_count: 1,\n net_request_id: token(value.net_request_id, 'net_request_id'),\n attempt_consumed: true,\n retry_allowed: false,\n };\n}\n\nfunction parseBindings(value: unknown): ProtectedExecutionBindings {\n if (!isJsonObject(value)) fail('bindings must be an object.');\n return Object.fromEntries(\n [\n 'plan_file_sha256',\n 'freeze_file_sha256',\n 'freeze_sha256',\n 'approval_file_sha256',\n 'approval_identity_sha256',\n 'approval_text_sha256',\n 'alias_plan_request_sha256',\n 'before_hash_set_sha256',\n 'desired_hash_set_sha256',\n 'exchange_rewrite_set_sha256',\n 'support_snapshot_set_sha256',\n 'derivative_baseline_set_sha256',\n 'derivative_target_set_sha256',\n 'toolchain_evidence_sha256',\n ].map((key) => [key, hash(value[key], `bindings.${key}`)]),\n ) as ProtectedExecutionBindings;\n}\n\nfunction nonNegativeInteger(value: unknown, label: string): number {\n if (!Number.isInteger(value) || Number(value) < 0)\n fail(`${label} must be a non-negative integer.`);\n return Number(value);\n}\n\nfunction requiredBoolean(value: unknown, label: string): boolean {\n return typeof value === 'boolean' ? value : fail(`${label} must be boolean.`);\n}\n\nfunction parseTerminalTarget(value: unknown, index: number): ProtectedTerminalTargetProof {\n const label = `derivative_readback.targets[${index}]`;\n if (!isJsonObject(value) || !isJsonObject(value.residue)) {\n fail(`${label} must be an object with residue counts.`);\n }\n if (value.table !== 'flows' && value.table !== 'processes') {\n fail(`${label}.table must be flows or processes.`);\n }\n const ordinal = nonNegativeInteger(value.ordinal, `${label}.ordinal`);\n if (ordinal < 1 || ordinal > PROTECTED_EXECUTION_COUNTS.derivative_target_count) {\n fail(`${label}.ordinal is outside the exact 50-target range.`);\n }\n return {\n ordinal,\n request_id: token(value.request_id, `${label}.request_id`),\n table: value.table,\n id: token(value.id, `${label}.id`),\n version: token(value.version, `${label}.version`),\n status: token(value.status, `${label}.status`),\n phase: token(value.phase, `${label}.phase`),\n source_baseline_snapshot_sha256: hash(\n value.source_baseline_snapshot_sha256,\n `${label}.source_baseline_snapshot_sha256`,\n ),\n expected_snapshot_sha256: hash(\n value.expected_snapshot_sha256,\n `${label}.expected_snapshot_sha256`,\n ),\n completed_snapshot_sha256: nullableHash(\n value.completed_snapshot_sha256,\n `${label}.completed_snapshot_sha256`,\n ),\n primary_matches: requiredBoolean(value.primary_matches, `${label}.primary_matches`),\n terminal_snapshot_matches: requiredBoolean(\n value.terminal_snapshot_matches,\n `${label}.terminal_snapshot_matches`,\n ),\n proposals_committed: requiredBoolean(value.proposals_committed, `${label}.proposals_committed`),\n derivative_fresh: requiredBoolean(value.derivative_fresh, `${label}.derivative_fresh`),\n lifecycle_complete: requiredBoolean(value.lifecycle_complete, `${label}.lifecycle_complete`),\n terminal_audit_present: requiredBoolean(\n value.terminal_audit_present,\n `${label}.terminal_audit_present`,\n ),\n residue: {\n http_requests: nonNegativeInteger(\n value.residue.http_requests,\n `${label}.residue.http_requests`,\n ),\n embedding_jobs: nonNegativeInteger(\n value.residue.embedding_jobs,\n `${label}.residue.embedding_jobs`,\n ),\n pending_jobs: nonNegativeInteger(value.residue.pending_jobs, `${label}.residue.pending_jobs`),\n failure_rows: nonNegativeInteger(value.residue.failure_rows, `${label}.residue.failure_rows`),\n other_active_fences: nonNegativeInteger(\n value.residue.other_active_fences,\n `${label}.residue.other_active_fences`,\n ),\n },\n causal_terminal_proof: requiredBoolean(\n value.causal_terminal_proof,\n `${label}.causal_terminal_proof`,\n ),\n };\n}\n\nfunction parseStatusTarget(value: unknown, index: number): ProtectedStatusTargetProof {\n const label = `derivative_readback.targets[${index}]`;\n if (!isJsonObject(value) || (value.table !== 'flows' && value.table !== 'processes')) {\n fail(`${label} must be a lightweight flow/process status proof.`);\n }\n const ordinal = nonNegativeInteger(value.ordinal, `${label}.ordinal`);\n if (ordinal < 1 || ordinal > PROTECTED_EXECUTION_COUNTS.derivative_target_count) {\n fail(`${label}.ordinal is outside the exact 50-target range.`);\n }\n if (value.causal_terminal_proof !== false) {\n fail(`${label}.causal_terminal_proof must be false while proof is deferred.`);\n }\n return {\n ordinal,\n request_id: token(value.request_id, `${label}.request_id`),\n table: value.table,\n id: token(value.id, `${label}.id`),\n version: token(value.version, `${label}.version`),\n status: token(value.status, `${label}.status`),\n phase: token(value.phase, `${label}.phase`),\n error:\n value.error === null\n ? null\n : isJsonObject(value.error)\n ? value.error\n : fail(`${label}.error must be an object or null.`),\n causal_terminal_proof: false,\n };\n}\n\nfunction parseReadGates(value: unknown): ProtectedExecutionStatusProof['gates'] {\n if (!Array.isArray(value)) fail('gates must be an array.');\n return value.map((entry, index) => {\n if (\n !isJsonObject(entry) ||\n !['primary_support_plan', 'execution_unused', 'derivative_quiescence'].includes(\n String(entry.gate),\n ) ||\n entry.status !== 'passed'\n ) {\n fail(`gates[${index}] is invalid.`);\n }\n return {\n gate: entry.gate as ProtectedGateProof['gate'],\n expected_sha256: hash(entry.expected_sha256, `gates[${index}].expected_sha256`),\n observed_sha256: hash(entry.observed_sha256, `gates[${index}].observed_sha256`),\n status: 'passed' as const,\n captured_at: timestamp(entry.captured_at, `gates[${index}].captured_at`),\n receipt_sha256: hash(entry.receipt_sha256, `gates[${index}].receipt_sha256`),\n };\n });\n}\n\nfunction parseDerivativeReadback(\n value: unknown,\n requestId: string,\n): ProtectedExecutionStatusProof['derivative_readback'] {\n if (\n !isJsonObject(value) ||\n value.schema_version !== 'dataset-derivative-rebuild-batch-status.v1' ||\n value.batch_id !== requestId ||\n !['not_started', 'pending', 'completed', 'failed'].includes(String(value.status))\n ) {\n fail('derivative_readback is invalid.');\n }\n const notStarted = value.status === 'not_started';\n const common = {\n schema_version: 'dataset-derivative-rebuild-batch-status.v1',\n batch_id: requestId,\n code:\n value.code === undefined || value.code === null\n ? null\n : token(value.code, 'derivative_readback.code'),\n causal_terminal_proof: requiredBoolean(\n value.causal_terminal_proof,\n 'derivative_readback.causal_terminal_proof',\n ),\n target_count: nonNegativeInteger(value.target_count, 'derivative_readback.target_count'),\n flow_count: nonNegativeInteger(value.flow_count, 'derivative_readback.flow_count'),\n process_count: nonNegativeInteger(value.process_count, 'derivative_readback.process_count'),\n completed_count: nonNegativeInteger(\n value.completed_count,\n 'derivative_readback.completed_count',\n ),\n nonterminal_count: nonNegativeInteger(\n value.nonterminal_count,\n 'derivative_readback.nonterminal_count',\n ),\n failed_count: nonNegativeInteger(value.failed_count, 'derivative_readback.failed_count'),\n } as const;\n if (notStarted) {\n if (\n value.code !== 'DERIVATIVE_BATCH_NOT_STARTED' ||\n value.proof_level !== 'none' ||\n value.proof_deferred !== false ||\n value.invalid_proof_count !== null ||\n !Array.isArray(value.targets) ||\n value.targets.length !== 0 ||\n common.causal_terminal_proof !== false ||\n common.target_count !== 0 ||\n common.flow_count !== 0 ||\n common.process_count !== 0 ||\n common.completed_count !== 0 ||\n common.nonterminal_count !== 0 ||\n common.failed_count !== 0\n ) {\n fail('Not-started derivative readback must carry the exact zero-count proof envelope.');\n }\n return {\n ...common,\n status: 'not_started',\n proof_level: 'none',\n proof_deferred: false,\n invalid_proof_count: null,\n targets: [],\n };\n }\n if (!Array.isArray(value.targets)) {\n fail('derivative_readback.targets must be an array.');\n }\n if (value.proof_level === 'status_only') {\n if (\n (value.status !== 'pending' && value.status !== 'failed') ||\n typeof value.proof_deferred !== 'boolean' ||\n value.invalid_proof_count !== null ||\n common.causal_terminal_proof !== false\n ) {\n fail('Status-only derivative readback has inconsistent proof metadata.');\n }\n return {\n ...common,\n status: value.status,\n proof_level: 'status_only',\n proof_deferred: value.proof_deferred,\n invalid_proof_count: null,\n targets: value.targets.map(parseStatusTarget),\n };\n }\n if (\n value.proof_level !== 'causal_terminal' ||\n value.proof_deferred !== false ||\n (value.status !== 'completed' && value.status !== 'failed')\n ) {\n fail('Terminal derivative readback must carry a causal proof envelope.');\n }\n return {\n ...common,\n status: value.status,\n proof_level: 'causal_terminal',\n proof_deferred: false,\n invalid_proof_count: nonNegativeInteger(\n value.invalid_proof_count,\n 'derivative_readback.invalid_proof_count',\n ),\n targets: value.targets.map(parseTerminalTarget),\n };\n}\n\nexport function parseProtectedStatusProof(\n value: unknown,\n identity: ProtectedExecutionIdentity,\n): ProtectedExecutionStatusProof {\n if (\n !isJsonObject(value) ||\n value.ok !== true ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.status_response_schema ||\n value.command !== PROTECTED_EXECUTION_CONTRACT.read_command ||\n value.request_id !== identity.request_id ||\n !['pending', 'passed', 'failed', 'indeterminate'].includes(String(value.status)) ||\n ![\n 'not_admitted',\n 'dispatching',\n 'dispatched',\n 'running',\n 'derivatives_pending',\n 'completed',\n 'failed',\n 'indeterminate',\n ].includes(String(value.execution_status)) ||\n value.retry_allowed !== false ||\n value.actor_user_id !== identity.actor.user_id ||\n value.environment !== identity.environment ||\n value.project_ref !== identity.project_ref ||\n value.plan_sha256 !== identity.plan_sha256 ||\n value.operation_id !== identity.operation_id\n ) {\n fail('Read RPC returned a foreign or unsupported status envelope.');\n }\n const executionStatus = value.execution_status as ProtectedExecutionStatus;\n const gates = parseReadGates(value.gates);\n if (executionStatus === 'not_admitted') {\n if (value.status !== 'indeterminate' || gates.length > 3) {\n fail('A not-admitted read must be indeterminate and contain at most three gate receipts.');\n }\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.status_response_schema,\n command: PROTECTED_EXECUTION_CONTRACT.read_command,\n request_id: identity.request_id,\n status: 'indeterminate',\n execution_status: 'not_admitted',\n retry_allowed: false,\n actor_user_id: identity.actor.user_id,\n environment: 'production',\n project_ref: identity.project_ref,\n target_visibility: null,\n plan_sha256: identity.plan_sha256,\n operation_id: identity.operation_id,\n plan_request_sha256: hash(value.plan_request_sha256, 'plan_request_sha256'),\n freeze_sha256: null,\n approval_identity_sha256: null,\n approval_text_sha256: null,\n derivative_target_set_sha256: null,\n preflight_proof_sha256: hash(value.preflight_proof_sha256, 'preflight_proof_sha256'),\n admission_request_sha256: null,\n gate_results_sha256: null,\n attempt_count: 0,\n dispatch_count: 0,\n gate_count: nonNegativeInteger(value.gate_count, 'gate_count'),\n gates,\n primary_readback: null,\n derivative_readback: {\n schema_version: 'dataset-derivative-rebuild-batch-status.v1',\n batch_id: identity.request_id,\n status: 'not_started',\n proof_level: 'none',\n proof_deferred: false,\n code: 'ALIAS_EXECUTION_NOT_ADMITTED',\n causal_terminal_proof: false,\n target_count: 0,\n flow_count: 0,\n process_count: 0,\n completed_count: 0,\n nonterminal_count: 0,\n failed_count: 0,\n invalid_proof_count: null,\n targets: [],\n },\n failure: null,\n };\n }\n if (\n value.target_visibility !== 'owner_draft' ||\n value.freeze_sha256 !== identity.bindings.freeze_sha256 ||\n value.approval_identity_sha256 !== identity.bindings.approval_identity_sha256 ||\n value.approval_text_sha256 !== identity.bindings.approval_text_sha256 ||\n value.derivative_target_set_sha256 !== identity.bindings.derivative_target_set_sha256 ||\n !isJsonObject(value.primary_readback)\n ) {\n fail('Read RPC did not round-trip the sealed owner-draft execution bindings.');\n }\n const derivativeReadback = parseDerivativeReadback(\n value.derivative_readback,\n identity.request_id,\n );\n if (\n derivativeReadback.status === 'not_started' &&\n !['dispatching', 'dispatched', 'running', 'failed', 'indeterminate'].includes(executionStatus)\n ) {\n fail(\n 'A not-started derivative readback is only valid before derivative dispatch or after a zero-child terminal failure.',\n );\n }\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.status_response_schema,\n command: PROTECTED_EXECUTION_CONTRACT.read_command,\n request_id: identity.request_id,\n status: value.status as ProtectedReportStatus,\n execution_status: executionStatus,\n retry_allowed: false,\n actor_user_id: identity.actor.user_id,\n environment: 'production',\n project_ref: identity.project_ref,\n target_visibility: 'owner_draft',\n plan_sha256: identity.plan_sha256,\n operation_id: identity.operation_id,\n plan_request_sha256: hash(value.plan_request_sha256, 'plan_request_sha256'),\n freeze_sha256: identity.bindings.freeze_sha256,\n approval_identity_sha256: identity.bindings.approval_identity_sha256,\n approval_text_sha256: identity.bindings.approval_text_sha256,\n derivative_target_set_sha256: identity.bindings.derivative_target_set_sha256,\n preflight_proof_sha256: hash(value.preflight_proof_sha256, 'preflight_proof_sha256'),\n admission_request_sha256: hash(value.admission_request_sha256, 'admission_request_sha256'),\n gate_results_sha256: hash(value.gate_results_sha256, 'gate_results_sha256'),\n attempt_count: nonNegativeInteger(value.attempt_count, 'attempt_count'),\n dispatch_count: nonNegativeInteger(value.dispatch_count, 'dispatch_count'),\n gate_count: nonNegativeInteger(value.gate_count, 'gate_count'),\n gates,\n primary_readback: {\n row_count:\n value.primary_readback.row_count === null\n ? null\n : nonNegativeInteger(value.primary_readback.row_count, 'primary_readback.row_count'),\n exchange_count:\n value.primary_readback.exchange_count === null\n ? null\n : nonNegativeInteger(\n value.primary_readback.exchange_count,\n 'primary_readback.exchange_count',\n ),\n alias_audit_count: nonNegativeInteger(\n value.primary_readback.alias_audit_count,\n 'primary_readback.alias_audit_count',\n ),\n live_closure_proof: requiredBoolean(\n value.primary_readback.live_closure_proof,\n 'primary_readback.live_closure_proof',\n ),\n closure: isJsonObject(value.primary_readback.closure)\n ? value.primary_readback.closure\n : fail('primary_readback.closure must be an object.'),\n },\n derivative_readback: derivativeReadback,\n failure:\n value.error === null\n ? null\n : isJsonObject(value.error)\n ? value.error\n : fail('error must be an object or null.'),\n };\n}\n\nexport function isUuid(value: string): boolean {\n return UUID.test(value);\n}\n\nexport const __testInternals = {\n deterministicUuidFromSha256,\n parseBindings,\n parseDerivativeTarget,\n parseExpected,\n};\n"]}
1
+ {"version":3,"file":"dataset-maintenance-protected-contract.js","sourceRoot":"","sources":["../../../src/lib/dataset-maintenance-protected-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,UAAU,GAGX,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,aAAa,EAAE,mCAAmC;IAClD,eAAe,EAAE,qCAAqC;IACtD,wBAAwB,EAAE,sCAAsC;IAChE,yBAAyB,EAAE,4CAA4C;IACvE,oBAAoB,EAAE,yCAAyC;IAC/D,oBAAoB,EAAE,kCAAkC;IACxD,qBAAqB,EAAE,kCAAkC;IACzD,sBAAsB,EAAE,mCAAmC;IAC3D,qBAAqB,EAAE,2CAA2C;IAClE,aAAa,EAAE,oCAAoC;IACnD,aAAa,EAAE,mCAAmC;IAClD,iBAAiB,EAAE,+CAA+C;IAClE,YAAY,EAAE,0CAA0C;IACxD,aAAa,EAAE,2CAA2C;IAC1D,YAAY,EAAE,kCAAkC;CACxC,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,EAAE;IAClB,kBAAkB,EAAE,GAAG;IACvB,wBAAwB,EAAE,GAAG;IAC7B,WAAW,EAAE,EAAE;IACf,kBAAkB,EAAE,CAAC;IACrB,UAAU,EAAE,EAAE;IACd,aAAa,EAAE,EAAE;IACjB,uBAAuB,EAAE,EAAE;CACnB,CAAC;AAEX,MAAM,MAAM,GAAG,iBAAiB,CAAC;AACjC,MAAM,IAAI,GAAG,6EAA6E,CAAC;AAC3F,MAAM,OAAO,GAAG,iCAAiC,CAAC;AAClD,MAAM,iCAAiC,GAAG,OAAO,CAAC;AAClD,MAAM,wCAAwC,GAAG,KAAK,CAAC;AA2TvD,SAAS,IAAI,CAAC,OAAe,EAAE,OAAiB;IAC9C,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,gDAAgD;QACtD,QAAQ,EAAE,CAAC;QACX,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,SAAS,KAAK,CAAC,KAAc,EAAE,KAAa;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC7F,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,KAAa;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,KAAa;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAE,IAAI,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,KAAa;IACjD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,KAAa;IACtD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,KAAa;IACjD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAC9D,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QACjD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACzE,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ;YAAE,IAAI,CAAC,YAAY,GAAG,eAAe,QAAQ,GAAG,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,0BAA0B,CAAC;AACpC,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACvE,OAAO;QACL,2BAA2B,EAAE,IAAI,CAC/B,KAAK,CAAC,2BAA2B,EACjC,+CAA+C,CAChD;QACD,uBAAuB,EAAE,IAAI,CAC3B,KAAK,CAAC,uBAAuB,EAC7B,2CAA2C,CAC5C;QACD,4BAA4B,EAAE,IAAI,CAChC,KAAK,CAAC,4BAA4B,EAClC,gDAAgD,CACjD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,KAAa;IAC1D,MAAM,KAAK,GAAG,sBAAsB,KAAK,GAAG,CAAC;IAC7C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,KAAK,oCAAoC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC;QAAE,IAAI,CAAC,GAAG,KAAK,2BAA2B,CAAC,CAAC;IACtE,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,GAAG,KAAK,gDAAgD,CAAC,CAAC;IACjE,CAAC;IACD,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,EAAE;QACF,OAAO;QACP,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QACjD,UAAU,EAAE,CAAU;QACtB,wBAAwB,EAAE,IAAI,CAC5B,KAAK,CAAC,wBAAwB,EAC9B,GAAG,KAAK,2BAA2B,CACpC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACjG,IACE,OAAO,CAAC,MAAM,KAAK,0BAA0B,CAAC,uBAAuB;QACrE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM;QACrC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;YACzD,0BAA0B,CAAC,UAAU;QACvC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,MAAM;YAC7D,0BAA0B,CAAC,aAAa,EAC1C,CAAC;QACD,IAAI,CAAC,uFAAuF,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC/C,GAAG,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,EAAE,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAChE,GAAG,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,EAAE,SAAS,KAAK,CAAC,OAAO,EAAE,CACxD,CACF,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,4DAA4D,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,KAAc,EACd,QAKC;IAED,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,IAAI;QACjB,KAAK,CAAC,OAAO,KAAK,yCAAyC;QAC3D,KAAK,CAAC,cAAc,KAAK,gCAAgC;QACzD,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;QAC9B,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE;QACxB,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO;QAClC,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,MAAM;QACjC,KAAK,CAAC,UAAU,KAAK,CAAC,EACtB,CAAC;QACD,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,GAAgC;QAC5C,cAAc,EAAE,gCAAgC;QAChD,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,OAAO,EAAE,QAAQ,CAAC,MAAM;QACxB,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,iCAAiC,CAAC;QAC5E,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,iCAAiC,CAAC;QACvE,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;QAC/F,qBAAqB,EAAE,IAAI,CACzB,KAAK,CAAC,qBAAqB,EAC3B,2CAA2C,CAC5C;QACD,mBAAmB,EAAE,YAAY,CAC/B,KAAK,CAAC,mBAAmB,EACzB,yCAAyC,CAC1C;QACD,mBAAmB,EAAE,YAAY,CAC/B,KAAK,CAAC,mBAAmB,EACzB,yCAAyC,CAC1C;QACD,eAAe,EAAE,iBAAiB,CAChC,KAAK,CAAC,eAAe,EACrB,qCAAqC,CACtC;QACD,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,qCAAqC,CAAC;KACpF,CAAC;IACF,IAAI,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAC1D,IAAI,CAAC,oEAAoE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC1D,OAAO;QACL,yBAAyB,EAAE,IAAI,CAC7B,KAAK,CAAC,yBAAyB,EAC/B,gCAAgC,CACjC;QACD,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;QACzF,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;QAC5F,2BAA2B,EAAE,IAAI,CAC/B,KAAK,CAAC,2BAA2B,EACjC,kCAAkC,CACnC;QACD,2BAA2B,EAAE,IAAI,CAC/B,KAAK,CAAC,2BAA2B,EACjC,kCAAkC,CACnC;QACD,8BAA8B,EAAE,IAAI,CAClC,KAAK,CAAC,8BAA8B,EACpC,qCAAqC,CACtC;QACD,4BAA4B,EAAE,IAAI,CAChC,KAAK,CAAC,4BAA4B,EAClC,mCAAmC,CACpC;QACD,yBAAyB,EAAE,IAAI,CAC7B,KAAK,CAAC,yBAAyB,EAC/B,gCAAgC,CACjC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAyC;IACpF,OAAO,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,cAAc,KAAK,4BAA4B,CAAC,aAAa;QACnE,KAAK,CAAC,WAAW,KAAK,YAAY;QAClC,KAAK,CAAC,iBAAiB,KAAK,aAAa;QACzC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QACzB,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EAC3B,CAAC;QACD,IAAI,CACF,mBAAmB,4BAA4B,CAAC,aAAa,8BAA8B,CAC5F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,4DAA4D,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,MAAM,GAAsC;QAChD,cAAc,EAAE,4BAA4B,CAAC,aAAa;QAC1D,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC;QACpD,OAAO;QACP,iBAAiB,EAAE,aAAa;QAChC,IAAI,EAAE;YACJ,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;YAC5E,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;YAC7D,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC;SAClE;QACD,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;QACvC,kBAAkB,EAAE,OAAO;QAC3B,MAAM,EAAE;YACN,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,kBAAuB;YACxD,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAe;YACxC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAY;YAClC,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,mBAAwB;YAC1D,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,iBAAsB;YACtD,uBAAuB,EAAE,KAAK,CAAC,MAAM,CAAC,uBAA4B;YAClE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAoB;YAClD,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAwB;SACvD;QACD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC;KAC1D,CAAC;IACF,IACE,MAAM,CAAC,MAAM,CAAC,kBAAkB,KAAK,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,mBAAmB,KAAK,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,iBAAiB,KAAK,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,uBAAuB,KAAK,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,KAAK,EACvC,CAAC;QACD,IAAI,CAAC,sFAAsF,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,4BAA4B,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,aAAa,EAAE,CAAC;QAClE,IAAI,CAAC,6DAA6D,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,QAA6C;IAE7C,OAAO,UAAU,CAAC,EAAE,GAAG,QAAQ,EAAE,wBAAwB,EAAE,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,cAAc,KAAK,4BAA4B,CAAC,eAAe;QACrE,KAAK,CAAC,WAAW,KAAK,YAAY;QAClC,KAAK,CAAC,iBAAiB,KAAK,aAAa,EACzC,CAAC;QACD,IAAI,CACF,qBAAqB,4BAA4B,CAAC,eAAe,8BAA8B,CAChG,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAwC;QACpD,cAAc,EAAE,4BAA4B,CAAC,eAAe;QAC5D,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC;QACpE,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC;QACpD,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC;QAC/C,iBAAiB,EAAE,aAAa;QAChC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC;QACnD,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC;QACvD,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;QAClE,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;QACxE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC;QACzD,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;QAC9E,eAAe,EAAE,KAAK,CAAC,eAAoB;QAC3C,eAAe,EAAE,KAAK,CAAC,eAAwB;QAC/C,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;KAC3F,CAAC;IACF,IAAI,QAAQ,CAAC,eAAe,KAAK,CAAC,IAAI,QAAQ,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;QACzE,IAAI,CAAC,yEAAyE,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,sCAAsC,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QAC3F,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA4B;IAOjE,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC5D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAC9C,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO;SACnC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC;SAC5E,IAAI,CACH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAC5C;SACA,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,gBAAgB;QAChC,UAAU,EAAE,MAAM,CAAC,mBAAmB;KACvC,CAAC,CAAC,CAAC;IACN,OAAO;QACL,sBAAsB,EAAE,UAAU,CAChC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,IAAI,IAAI;SAC9C,CAAC,CAAC,CACJ;QACD,uBAAuB,EAAE,UAAU,CACjC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,IAAI,IAAI;SACvD,CAAC,CAAC,CACJ;QACD,2BAA2B,EAAE,UAAU,CACrC,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CACvE;QACD,2BAA2B,EAAE,UAAU,CACrC,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC,CAAC,CACJ;QACD,4BAA4B,EAAE,UAAU,CAAC,iBAAiB,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,OAAoC;IACvF,OAAO,UAAU,CACf,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;KAC1D,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,OAKhD;IACC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACjD,IACE,IAAI,CAAC,SAAS,KAAK,uBAAuB;QAC1C,IAAI,CAAC,MAAM,KAAK,OAAO;QACvB,IAAI,CAAC,WAAW,KAAK,aAAa;QAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,OAAO;QAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK;QAC3C,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW;QAC5C,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY;QAC9C,cAAc,KAAK,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAC/C,CAAC;QACD,IAAI,CAAC,sFAAsF,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,YAAY,GAAG;QACnB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAC,MAAM;QACzF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;QACvE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,MAAM;KAChF,CAAC;IACF,IACE,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,0BAA0B,CAAC,YAAY;QAC/D,IAAI,CAAC,aAAa,EAAE,MAAM,KAAK,0BAA0B,CAAC,WAAW;QACrE,YAAY,CAAC,cAAc,KAAK,0BAA0B,CAAC,kBAAkB;QAC7E,YAAY,CAAC,KAAK,KAAK,0BAA0B,CAAC,UAAU;QAC5D,YAAY,CAAC,SAAS,KAAK,0BAA0B,CAAC,aAAa;QACnE,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAK,0BAA0B,CAAC,cAAc;QAClF,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAC,KAAK,0BAA0B,CAAC,kBAAkB;QAC1F,CAAC,IAAI,CAAC,OAAO,CAAC,6BAA6B,IAAI,CAAC,CAAC;YAC/C,0BAA0B,CAAC,wBAAwB,EACrD,CAAC;QACD,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAwB,CAAC,KAAK,MAAM;YAAE,IAAI,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAC7E,IAAI,CAAC,8EAA8E,CAAC,CAAC;IACvF,CAAC;IACD,IACE,MAAM,CAAC,IAAI,CAAC,8BAA8B;QAC1C,oCAAoC,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAC/D,CAAC;QACD,IAAI,CAAC,oEAAoE,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,GAAG,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE;QAC1D,MAAM;KACP,CAAC,CACH,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CACtC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,CAClE,EAAE,CAAC;QACF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1D,IAAI,CAAC,4CAA4C,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAM/C;IACC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACrC,IACE,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;QAC3C,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;QAC3C,QAAQ,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,OAAO;QACnD,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK;QAC/C,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW;QAChD,QAAQ,CAAC,YAAY,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY;QAClD,QAAQ,CAAC,gBAAgB,KAAK,MAAM,CAAC,IAAI,CAAC,gBAAgB;QAC1D,QAAQ,CAAC,kBAAkB,KAAK,OAAO,CAAC,gBAAgB;QACxD,QAAQ,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa;QAC/C,QAAQ,CAAC,wBAAwB,KAAK,OAAO,CAAC,gBAAgB,EAC9D,CAAC;QACD,IAAI,CAAC,yFAAyF,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAc;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAK/C;IACC,MAAM,QAAQ,GAA+B;QAC3C,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB;QACtD,kBAAkB,EAAE,OAAO,CAAC,gBAAgB;QAC5C,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa;QAC3C,oBAAoB,EAAE,OAAO,CAAC,kBAAkB;QAChD,wBAAwB,EAAE,OAAO,CAAC,QAAQ,CAAC,wBAAwB;QACnE,oBAAoB,EAAE,OAAO,CAAC,QAAQ,CAAC,oBAAoB;QAC3D,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI;KACvB,CAAC;IACF,MAAM,IAAI,GAAG;QACX,WAAW,EAAE,YAAqB;QAClC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW;QACvC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;QAC7B,iBAAiB,EAAE,aAAsB;QACzC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW;QAC5C,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY;QAC9C,QAAQ;QACR,QAAQ,EAAE,0BAA0B;QACpC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB;KACtD,CAAC;IACF,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,2BAA2B,CAC3C,UAAU,CAAC,2CAA2C,cAAc,EAAE,CAAC,CACxE,CAAC;IACF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAK9C;IACC,OAAO;QACL,cAAc,EAAE,4BAA4B,CAAC,wBAAwB;QACrE,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU;QACvC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;QACzC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;QACzC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;QAC7B,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,iBAAiB;QACrD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;QACnC,kBAAkB,EAAE,OAAO,CAAC,QAAQ,CAAC,kBAAkB;KACxD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAc,EACd,QAAoC,EACpC,GAAG,GAAG,IAAI,IAAI,EAAE;IAEhB,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,IAAI;QACjB,KAAK,CAAC,cAAc,KAAK,4BAA4B,CAAC,yBAAyB;QAC/E,KAAK,CAAC,OAAO,KAAK,4BAA4B,CAAC,iBAAiB;QAChE,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;QACxC,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,KAAK,CAAC,OAAO;QAC9C,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QAC1C,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QAC1C,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QAC1C,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY;QAC5C,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,EAC/B,CAAC;QACD,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,KAAK,GAA4B;QACrC,cAAc,EAAE,4BAA4B,CAAC,yBAAyB;QACtE,OAAO,EAAE,4BAA4B,CAAC,iBAAiB;QACvD,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;QACrC,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;QACjF,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;QAC7F,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC;QACzD,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;QAC1F,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;QAC3E,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC;QAC/D,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC;QAC/D,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;QAC7F,iBAAiB,EAAE,qBAAqB,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACjE,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;QAC1F,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;QACvF,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;QAC1F,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC;QAChE,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;QACpF,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC;QAC3D,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;QACrD,UAAU,EAAE;YACV,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAe;YAC3C,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,cAAoB;YACrD,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,YAAkB;YACjD,kBAAkB,EAAE,KAAK,CAAC,UAAU,CAAC,kBAAwB;YAC7D,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,WAAmB;SAClD;KACF,CAAC;IACF,IACE,KAAK,CAAC,yBAAyB,KAAK,QAAQ,CAAC,QAAQ,CAAC,yBAAyB;QAC/E,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,QAAQ,CAAC,aAAa;QACvD,KAAK,CAAC,wBAAwB,KAAK,QAAQ,CAAC,QAAQ,CAAC,wBAAwB;QAC7E,KAAK,CAAC,UAAU,CAAC,SAAS,KAAK,0BAA0B,CAAC,YAAY;QACtE,KAAK,CAAC,UAAU,CAAC,cAAc,KAAK,0BAA0B,CAAC,cAAc;QAC7E,KAAK,CAAC,UAAU,CAAC,YAAY,KAAK,0BAA0B,CAAC,WAAW;QACxE,KAAK,CAAC,UAAU,CAAC,kBAAkB,KAAK,0BAA0B,CAAC,uBAAuB;QAC1F,KAAK,CAAC,UAAU,CAAC,WAAW,KAAK,IAAI,EACrC,CAAC;QACD,IAAI,CAAC,8EAA8E,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,MAAM,aAAa,GAAG;QACpB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE;QAC9B,SAAS,EAAE,QAAQ;QACnB,cAAc,EAAE,MAAM,GAAG,KAAK;QAC9B,sBAAsB,EAAE,wCAAwC;KACjE,CAAC;IACF,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,gEAAgE,EAAE,aAAa,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,QAAQ,GAAG,iCAAiC,EAAE,CAAC;QACjD,IAAI,CAAC,0DAA0D,EAAE,aAAa,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,MAAM,GAAG,KAAK,GAAG,wCAAwC,EAAE,CAAC;QAC9D,IAAI,CACF,4EAA4E,EAC5E,aAAa,CACd,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,2BAA2B,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,OAIC;IAED,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,IAAI;QACjB,KAAK,CAAC,cAAc,KAAK,4BAA4B,CAAC,oBAAoB;QAC1E,KAAK,CAAC,OAAO,KAAK,4BAA4B,CAAC,YAAY;QAC3D,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU;QAChD,KAAK,CAAC,aAAa,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;QACtD,KAAK,CAAC,sBAAsB,KAAK,OAAO,CAAC,SAAS,CAAC,sBAAsB;QACzE,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;QAC3B,KAAK,CAAC,MAAM,KAAK,QAAQ,EACzB,CAAC;QACD,IAAI,CAAC,8DAA8D,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,YAAY,GAAG,GAAG,OAAO,CAAC,IAAI,SAA4C,CAAC;IACjF,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACpE,IACE,cAAc,KAAK,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC;QACpE,cAAc,KAAK,cAAc;QACjC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EACjE,CAAC;QACD,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACpF,CAAC;IACD,OAAO;QACL,cAAc,EAAE,4BAA4B,CAAC,oBAAoB;QACjE,OAAO,EAAE,4BAA4B,CAAC,YAAY;QAClD,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU;QACvC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;QAC7C,sBAAsB,EAAE,OAAO,CAAC,SAAS,CAAC,sBAAsB;QAChE,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE;YACN,eAAe,EAAE,cAAc;YAC/B,eAAe,EAAE,cAAc;YAC/B,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,UAAU;SACxB;QACD,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,qBAAqB,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAO1C;IACC,OAAO;QACL,cAAc,EAAE,4BAA4B,CAAC,oBAAoB;QACjE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU;QACxC,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC,eAAe;QAClD,sBAAsB,EAAE,OAAO,CAAC,SAAS,CAAC,sBAAsB;QAChE,YAAY,EAAE,OAAO,CAAC,WAAW;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAc,EACd,QAAoC,EACpC,SAAkC;IAElC,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,IAAI;QACjB,KAAK,CAAC,cAAc,KAAK,4BAA4B,CAAC,qBAAqB;QAC3E,KAAK,CAAC,OAAO,KAAK,4BAA4B,CAAC,aAAa;QAC5D,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;QACxC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QAC1C,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY;QAC5C,KAAK,CAAC,mBAAmB,KAAK,SAAS,CAAC,mBAAmB;QAC3D,KAAK,CAAC,sBAAsB,KAAK,SAAS,CAAC,sBAAsB;QACjE,KAAK,CAAC,MAAM,KAAK,YAAY;QAC7B,KAAK,CAAC,aAAa,KAAK,CAAC;QACzB,KAAK,CAAC,cAAc,KAAK,CAAC;QAC1B,KAAK,CAAC,gBAAgB,KAAK,IAAI;QAC/B,KAAK,CAAC,aAAa,KAAK,KAAK,EAC7B,CAAC;QACD,IAAI,CAAC,6EAA6E,CAAC,CAAC;IACtF,CAAC;IACD,OAAO;QACL,cAAc,EAAE,4BAA4B,CAAC,qBAAqB;QAClE,OAAO,EAAE,4BAA4B,CAAC,aAAa;QACnD,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;QAClD,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;QACxD,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;QAC1F,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;QAC3E,MAAM,EAAE,YAAY;QACpB,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC;QAC7D,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,KAAK;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC,WAAW,CACvB;QACE,kBAAkB;QAClB,oBAAoB;QACpB,eAAe;QACf,sBAAsB;QACtB,0BAA0B;QAC1B,sBAAsB;QACtB,2BAA2B;QAC3B,wBAAwB;QACxB,yBAAyB;QACzB,6BAA6B;QAC7B,6BAA6B;QAC7B,gCAAgC;QAChC,8BAA8B;QAC9B,2BAA2B;KAC5B,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,CAC7B,CAAC;AAClC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,KAAa;IACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QAC/C,IAAI,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,KAAa;IACpD,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,KAAa;IACxD,MAAM,KAAK,GAAG,+BAA+B,KAAK,GAAG,CAAC;IACtD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,GAAG,KAAK,yCAAyC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,KAAK,oCAAoC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;IACtE,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,0BAA0B,CAAC,uBAAuB,EAAE,CAAC;QAChF,IAAI,CAAC,GAAG,KAAK,gDAAgD,CAAC,CAAC;IACjE,CAAC;IACD,OAAO;QACL,OAAO;QACP,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC;QAC1D,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC;QAClC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QACjD,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC;QAC9C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC;QAC3C,+BAA+B,EAAE,IAAI,CACnC,KAAK,CAAC,+BAA+B,EACrC,GAAG,KAAK,kCAAkC,CAC3C;QACD,wBAAwB,EAAE,IAAI,CAC5B,KAAK,CAAC,wBAAwB,EAC9B,GAAG,KAAK,2BAA2B,CACpC;QACD,yBAAyB,EAAE,YAAY,CACrC,KAAK,CAAC,yBAAyB,EAC/B,GAAG,KAAK,4BAA4B,CACrC;QACD,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,KAAK,kBAAkB,CAAC;QACnF,yBAAyB,EAAE,eAAe,CACxC,KAAK,CAAC,yBAAyB,EAC/B,GAAG,KAAK,4BAA4B,CACrC;QACD,mBAAmB,EAAE,eAAe,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,KAAK,sBAAsB,CAAC;QAC/F,gBAAgB,EAAE,eAAe,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,KAAK,mBAAmB,CAAC;QACtF,kBAAkB,EAAE,eAAe,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,KAAK,qBAAqB,CAAC;QAC5F,sBAAsB,EAAE,eAAe,CACrC,KAAK,CAAC,sBAAsB,EAC5B,GAAG,KAAK,yBAAyB,CAClC;QACD,OAAO,EAAE;YACP,aAAa,EAAE,kBAAkB,CAC/B,KAAK,CAAC,OAAO,CAAC,aAAa,EAC3B,GAAG,KAAK,wBAAwB,CACjC;YACD,cAAc,EAAE,kBAAkB,CAChC,KAAK,CAAC,OAAO,CAAC,cAAc,EAC5B,GAAG,KAAK,yBAAyB,CAClC;YACD,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,KAAK,uBAAuB,CAAC;YAC7F,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,KAAK,uBAAuB,CAAC;YAC7F,mBAAmB,EAAE,kBAAkB,CACrC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EACjC,GAAG,KAAK,8BAA8B,CACvC;SACF;QACD,qBAAqB,EAAE,eAAe,CACpC,KAAK,CAAC,qBAAqB,EAC3B,GAAG,KAAK,wBAAwB,CACjC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,KAAa;IACtD,MAAM,KAAK,GAAG,+BAA+B,KAAK,GAAG,CAAC;IACtD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,EAAE,CAAC;QACrF,IAAI,CAAC,GAAG,KAAK,mDAAmD,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;IACtE,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,0BAA0B,CAAC,uBAAuB,EAAE,CAAC;QAChF,IAAI,CAAC,GAAG,KAAK,gDAAgD,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,qBAAqB,KAAK,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,KAAK,+DAA+D,CAAC,CAAC;IAChF,CAAC;IACD,OAAO;QACL,OAAO;QACP,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC;QAC1D,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC;QAClC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC;QACjD,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC;QAC9C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC;QAC3C,KAAK,EACH,KAAK,CAAC,KAAK,KAAK,IAAI;YAClB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;gBACzB,CAAC,CAAC,KAAK,CAAC,KAAK;gBACb,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,mCAAmC,CAAC;QACzD,qBAAqB,EAAE,KAAK;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAChC,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAC7E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CACnB;YACD,KAAK,CAAC,MAAM,KAAK,QAAQ,EACzB,CAAC;YACD,IAAI,CAAC,SAAS,KAAK,eAAe,CAAC,CAAC;QACtC,CAAC;QACD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAkC;YAC9C,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,SAAS,KAAK,mBAAmB,CAAC;YAC/E,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,SAAS,KAAK,mBAAmB,CAAC;YAC/E,MAAM,EAAE,QAAiB;YACzB,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,KAAK,eAAe,CAAC;YACxE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,KAAK,kBAAkB,CAAC;SAC7E,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAc,EACd,SAAiB;IAEjB,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,cAAc,KAAK,4CAA4C;QACrE,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC5B,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EACjF,CAAC;QACD,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC;IAClD,MAAM,MAAM,GAAG;QACb,cAAc,EAAE,4CAA4C;QAC5D,QAAQ,EAAE,SAAS;QACnB,IAAI,EACF,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YAC7C,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,0BAA0B,CAAC;QACnD,qBAAqB,EAAE,eAAe,CACpC,KAAK,CAAC,qBAAqB,EAC3B,2CAA2C,CAC5C;QACD,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,YAAY,EAAE,kCAAkC,CAAC;QACxF,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,gCAAgC,CAAC;QAClF,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC,aAAa,EAAE,mCAAmC,CAAC;QAC3F,eAAe,EAAE,kBAAkB,CACjC,KAAK,CAAC,eAAe,EACrB,qCAAqC,CACtC;QACD,iBAAiB,EAAE,kBAAkB,CACnC,KAAK,CAAC,iBAAiB,EACvB,uCAAuC,CACxC;QACD,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,YAAY,EAAE,kCAAkC,CAAC;KAChF,CAAC;IACX,IAAI,UAAU,EAAE,CAAC;QACf,IACE,KAAK,CAAC,IAAI,KAAK,8BAA8B;YAC7C,KAAK,CAAC,WAAW,KAAK,MAAM;YAC5B,KAAK,CAAC,cAAc,KAAK,KAAK;YAC9B,KAAK,CAAC,mBAAmB,KAAK,IAAI;YAClC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC7B,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAC1B,MAAM,CAAC,qBAAqB,KAAK,KAAK;YACtC,MAAM,CAAC,YAAY,KAAK,CAAC;YACzB,MAAM,CAAC,UAAU,KAAK,CAAC;YACvB,MAAM,CAAC,aAAa,KAAK,CAAC;YAC1B,MAAM,CAAC,eAAe,KAAK,CAAC;YAC5B,MAAM,CAAC,iBAAiB,KAAK,CAAC;YAC9B,MAAM,CAAC,YAAY,KAAK,CAAC,EACzB,CAAC;YACD,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO;YACL,GAAG,MAAM;YACT,MAAM,EAAE,aAAa;YACrB,WAAW,EAAE,MAAM;YACnB,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;QACxC,IACE,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;YACzD,OAAO,KAAK,CAAC,cAAc,KAAK,SAAS;YACzC,KAAK,CAAC,mBAAmB,KAAK,IAAI;YAClC,MAAM,CAAC,qBAAqB,KAAK,KAAK,EACtC,CAAC;YACD,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO;YACL,GAAG,MAAM;YACT,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,aAAa;YAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;SAC9C,CAAC;IACJ,CAAC;IACD,IACE,KAAK,CAAC,WAAW,KAAK,iBAAiB;QACvC,KAAK,CAAC,cAAc,KAAK,KAAK;QAC9B,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,EAC3D,CAAC;QACD,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,iBAAiB;QAC9B,cAAc,EAAE,KAAK;QACrB,mBAAmB,EAAE,kBAAkB,CACrC,KAAK,CAAC,mBAAmB,EACzB,yCAAyC,CAC1C;QACD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAc,EACd,QAAoC;IAEpC,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,IAAI;QACjB,KAAK,CAAC,cAAc,KAAK,4BAA4B,CAAC,sBAAsB;QAC5E,KAAK,CAAC,OAAO,KAAK,4BAA4B,CAAC,YAAY;QAC3D,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;QACxC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChF,CAAC;YACC,cAAc;YACd,aAAa;YACb,YAAY;YACZ,SAAS;YACT,qBAAqB;YACrB,WAAW;YACX,QAAQ;YACR,eAAe;SAChB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1C,KAAK,CAAC,aAAa,KAAK,KAAK;QAC7B,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,KAAK,CAAC,OAAO;QAC9C,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QAC1C,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QAC1C,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;QAC1C,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,EAC5C,CAAC;QACD,IAAI,CAAC,6DAA6D,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,eAAe,GAAG,KAAK,CAAC,gBAA4C,CAAC;IAC3E,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,eAAe,KAAK,cAAc,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,eAAe,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,oFAAoF,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO;YACL,cAAc,EAAE,4BAA4B,CAAC,sBAAsB;YACnE,OAAO,EAAE,4BAA4B,CAAC,YAAY;YAClD,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM,EAAE,eAAe;YACvB,gBAAgB,EAAE,cAAc;YAChC,aAAa,EAAE,KAAK;YACpB,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;YACrC,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;YAC3E,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,IAAI;YAC9B,oBAAoB,EAAE,IAAI;YAC1B,4BAA4B,EAAE,IAAI;YAClC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;YACpF,wBAAwB,EAAE,IAAI;YAC9B,mBAAmB,EAAE,IAAI;YACzB,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,CAAC;YACjB,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;YAC9D,KAAK;YACL,gBAAgB,EAAE,IAAI;YACtB,mBAAmB,EAAE;gBACnB,cAAc,EAAE,4CAA4C;gBAC5D,QAAQ,EAAE,QAAQ,CAAC,UAAU;gBAC7B,MAAM,EAAE,aAAa;gBACrB,WAAW,EAAE,MAAM;gBACnB,cAAc,EAAE,KAAK;gBACrB,IAAI,EAAE,8BAA8B;gBACpC,qBAAqB,EAAE,KAAK;gBAC5B,YAAY,EAAE,CAAC;gBACf,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,CAAC;gBAChB,eAAe,EAAE,CAAC;gBAClB,iBAAiB,EAAE,CAAC;gBACpB,YAAY,EAAE,CAAC;gBACf,mBAAmB,EAAE,IAAI;gBACzB,OAAO,EAAE,EAAE;aACZ;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,IACE,KAAK,CAAC,iBAAiB,KAAK,aAAa;QACzC,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,QAAQ,CAAC,aAAa;QACvD,KAAK,CAAC,wBAAwB,KAAK,QAAQ,CAAC,QAAQ,CAAC,wBAAwB;QAC7E,KAAK,CAAC,oBAAoB,KAAK,QAAQ,CAAC,QAAQ,CAAC,oBAAoB;QACrE,KAAK,CAAC,4BAA4B,KAAK,QAAQ,CAAC,QAAQ,CAAC,4BAA4B;QACrF,CAAC,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACrC,CAAC;QACD,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,kBAAkB,GAAG,uBAAuB,CAChD,KAAK,CAAC,mBAAmB,EACzB,QAAQ,CAAC,UAAU,CACpB,CAAC;IACF,IACE,kBAAkB,CAAC,MAAM,KAAK,aAAa;QAC3C,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAC9F,CAAC;QACD,IAAI,CACF,oHAAoH,CACrH,CAAC;IACJ,CAAC;IACD,OAAO;QACL,cAAc,EAAE,4BAA4B,CAAC,sBAAsB;QACnE,OAAO,EAAE,4BAA4B,CAAC,YAAY;QAClD,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,MAAM,EAAE,KAAK,CAAC,MAA+B;QAC7C,gBAAgB,EAAE,eAAe;QACjC,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;QACrC,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,iBAAiB,EAAE,aAAa;QAChC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;QAC3E,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa;QAC9C,wBAAwB,EAAE,QAAQ,CAAC,QAAQ,CAAC,wBAAwB;QACpE,oBAAoB,EAAE,QAAQ,CAAC,QAAQ,CAAC,oBAAoB;QAC5D,4BAA4B,EAAE,QAAQ,CAAC,QAAQ,CAAC,4BAA4B;QAC5E,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;QACpF,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;QAC1F,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;QAC3E,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC;QACvE,cAAc,EAAE,kBAAkB,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC;QAC1E,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;QAC9D,KAAK;QACL,gBAAgB,EAAE;YAChB,SAAS,EACP,KAAK,CAAC,gBAAgB,CAAC,SAAS,KAAK,IAAI;gBACvC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,4BAA4B,CAAC;YACxF,cAAc,EACZ,KAAK,CAAC,gBAAgB,CAAC,cAAc,KAAK,IAAI;gBAC5C,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,kBAAkB,CAChB,KAAK,CAAC,gBAAgB,CAAC,cAAc,EACrC,iCAAiC,CAClC;YACP,iBAAiB,EAAE,kBAAkB,CACnC,KAAK,CAAC,gBAAgB,CAAC,iBAAiB,EACxC,oCAAoC,CACrC;YACD,kBAAkB,EAAE,eAAe,CACjC,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EACzC,qCAAqC,CACtC;YACD,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBACnD,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO;gBAChC,CAAC,CAAC,IAAI,CAAC,6CAA6C,CAAC;SACxD;QACD,mBAAmB,EAAE,kBAAkB;QACvC,OAAO,EACL,KAAK,CAAC,KAAK,KAAK,IAAI;YAClB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;gBACzB,CAAC,CAAC,KAAK,CAAC,KAAK;gBACb,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,2BAA2B;IAC3B,aAAa;IACb,qBAAqB;IACrB,aAAa;CACd,CAAC","sourcesContent":["import { CliError } from './errors.js';\nimport {\n isJsonObject,\n sha256Json,\n sha256Text,\n type DatasetMaintenancePlan,\n type JsonObject,\n} from './dataset-maintenance-contract.js';\n\nexport const PROTECTED_EXECUTION_CONTRACT = {\n freeze_schema: 'dataset-alias-execution-freeze.v1',\n approval_schema: 'dataset-alias-execution-approval.v1',\n preflight_request_schema: 'dataset-alias-execution-preflight.v1',\n preflight_response_schema: 'dataset-alias-execution-preflight-proof.v1',\n gate_response_schema: 'dataset-alias-execution-gate-receipt.v1',\n admit_request_schema: 'dataset-alias-execution-admit.v1',\n admit_response_schema: 'dataset-alias-execution-admit.v1',\n status_response_schema: 'dataset-alias-execution-status.v1',\n terminal_proof_schema: 'dataset-alias-execution-terminal-proof.v1',\n marker_schema: 'dataset-alias-execution-attempt.v1',\n report_schema: 'dataset-alias-execution-report.v1',\n preflight_command: 'cmd_dataset_alias_execution_preflight_guarded',\n gate_command: 'cmd_dataset_alias_execution_gate_guarded',\n admit_command: 'cmd_dataset_alias_execution_admit_guarded',\n read_command: 'cmd_dataset_alias_execution_read',\n} as const;\n\nexport const PROTECTED_EXECUTION_COUNTS = {\n action_count: 52,\n batch_count: 2,\n exchange_count: 59,\n amount_field_count: 118,\n unrelated_exchange_count: 309,\n audit_count: 55,\n flowproperty_count: 2,\n flow_count: 23,\n process_count: 27,\n derivative_target_count: 50,\n} as const;\n\nconst SHA256 = /^[a-f0-9]{64}$/u;\nconst UUID = /^[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/iu;\nconst VERSION = /^[0-9]{2}\\.[0-9]{2}\\.[0-9]{3}$/u;\nconst PROTECTED_PREFLIGHT_MAX_WINDOW_MS = 180_000;\nconst PROTECTED_SERVER_CLOCK_SKEW_TOLERANCE_MS = 5_000;\n\nexport type ProtectedExecutionStatus =\n | 'not_admitted'\n | 'dispatching'\n | 'dispatched'\n | 'running'\n | 'derivatives_pending'\n | 'completed'\n | 'failed'\n | 'indeterminate';\n\nexport type ProtectedReportStatus = 'pending' | 'passed' | 'failed' | 'indeterminate';\n\nexport type ProtectedDerivativeTargetTable = 'flows' | 'processes';\n\nexport type ProtectedDerivativeTarget = {\n table: ProtectedDerivativeTargetTable;\n id: string;\n version: string;\n user_id: string;\n state_code: 0;\n baseline_snapshot_sha256: string;\n};\n\nexport type ProtectedDerivativeSnapshot = {\n schema_version: 'dataset-derivative-snapshot.v1';\n table: ProtectedDerivativeTargetTable;\n id: string;\n version: string;\n user_id: string;\n state_code: 0;\n modified_at: string;\n json_sha256: string;\n json_ordered_sha256: string;\n extracted_text_sha256: string;\n extracted_md_sha256: string | null;\n embedding_ft_sha256: string | null;\n embedding_ft_at: string | null;\n snapshot_sha256: string;\n};\n\nexport type ProtectedExecutionBindings = {\n plan_file_sha256: string;\n freeze_file_sha256: string;\n freeze_sha256: string;\n approval_file_sha256: string;\n approval_identity_sha256: string;\n approval_text_sha256: string;\n alias_plan_request_sha256: string;\n before_hash_set_sha256: string;\n desired_hash_set_sha256: string;\n exchange_rewrite_set_sha256: string;\n support_snapshot_set_sha256: string;\n derivative_baseline_set_sha256: string;\n derivative_target_set_sha256: string;\n toolchain_evidence_sha256: string;\n};\n\nexport type ProtectedGateExpectations = {\n primary_support_plan_sha256: string;\n execution_unused_sha256: string;\n derivative_quiescence_sha256: string;\n};\n\nexport type DatasetMaintenanceProtectedFreeze = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.freeze_schema;\n environment: 'production';\n project_ref: string;\n account: { user_id: string; email: string };\n target_visibility: 'owner_draft';\n plan: {\n plan_file_sha256: string;\n plan_sha256: string;\n operation_id: string;\n };\n sets: Omit<\n ProtectedExecutionBindings,\n | 'plan_file_sha256'\n | 'freeze_file_sha256'\n | 'freeze_sha256'\n | 'approval_file_sha256'\n | 'approval_identity_sha256'\n | 'approval_text_sha256'\n >;\n expected: typeof PROTECTED_EXECUTION_COUNTS;\n derivative_targets: ProtectedDerivativeTarget[];\n policy: {\n state_code_changes: 0;\n save_draft: 0;\n deletes: 0;\n rebuild_derivatives: 0;\n unitgroup_actions: 0;\n person_distance_actions: 0;\n max_admit_posts: 1;\n automatic_retry: false;\n };\n freeze_sha256: string;\n};\n\nexport type DatasetMaintenanceProtectedApproval = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.approval_schema;\n approved_at_utc: string;\n environment: 'production';\n project_ref: string;\n account: { user_id: string; email: string };\n target_visibility: 'owner_draft';\n plan_sha256: string;\n operation_id: string;\n plan_file_sha256: string;\n freeze_file_sha256: string;\n freeze_sha256: string;\n approval_text_sha256: string;\n max_admit_posts: 1;\n automatic_retry: false;\n approval_identity_sha256: string;\n};\n\nexport type ProtectedExecutionIdentity = {\n request_id: string;\n identity_sha256: string;\n environment: 'production';\n project_ref: string;\n actor: { user_id: string; email: string };\n target_visibility: 'owner_draft';\n plan_sha256: string;\n operation_id: string;\n bindings: ProtectedExecutionBindings;\n expected: typeof PROTECTED_EXECUTION_COUNTS;\n derivative_targets: ProtectedDerivativeTarget[];\n};\n\nexport type ProtectedPreflightProof = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.preflight_response_schema;\n command: typeof PROTECTED_EXECUTION_CONTRACT.preflight_command;\n request_id: string;\n actor_user_id: string;\n environment: 'production';\n project_ref: string;\n server_context_sha256: string;\n plan_sha256: string;\n operation_id: string;\n alias_plan_request_sha256: string;\n freeze_sha256: string;\n approval_identity_sha256: string;\n plan_request_sha256: string;\n bindings_sha256: string;\n expected_sha256: string;\n derivative_targets_sha256: string;\n gate_expectations: ProtectedGateExpectations;\n gate_expectations_sha256: string;\n failure_baseline_sha256: string;\n preflight_request_sha256: string;\n preflight_token: string;\n preflight_proof_sha256: string;\n completed_at: string;\n expires_at: string;\n simulation: {\n plan_rows: 52;\n plan_exchanges: 59;\n alias_audits: 55;\n derivative_targets: 50;\n rolled_back: true;\n };\n};\n\nexport type ProtectedGateResult = {\n expected_sha256: string;\n observed_sha256: string;\n status: 'passed';\n captured_at: string;\n};\n\nexport type ProtectedGateProof = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.gate_response_schema;\n command: typeof PROTECTED_EXECUTION_CONTRACT.gate_command;\n request_id: string;\n actor_user_id: string;\n preflight_proof_sha256: string;\n gate: 'primary_support_plan' | 'execution_unused' | 'derivative_quiescence';\n result: ProtectedGateResult;\n receipt_sha256: string;\n};\n\nexport type ProtectedAdmissionProof = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.admit_response_schema;\n command: typeof PROTECTED_EXECUTION_CONTRACT.admit_command;\n request_id: string;\n plan_sha256: string;\n operation_id: string;\n plan_request_sha256: string;\n preflight_proof_sha256: string;\n admission_request_sha256: string;\n gate_results_sha256: string;\n status: 'dispatched';\n attempt_count: 1;\n dispatch_count: 1;\n net_request_id: string;\n attempt_consumed: true;\n retry_allowed: false;\n};\n\nexport type ProtectedTerminalTargetProof = {\n ordinal: number;\n request_id: string;\n table: ProtectedDerivativeTargetTable;\n id: string;\n version: string;\n status: string;\n phase: string;\n source_baseline_snapshot_sha256: string;\n expected_snapshot_sha256: string;\n completed_snapshot_sha256: string | null;\n primary_matches: boolean;\n terminal_snapshot_matches: boolean;\n proposals_committed: boolean;\n derivative_fresh: boolean;\n lifecycle_complete: boolean;\n terminal_audit_present: boolean;\n residue: {\n http_requests: number;\n embedding_jobs: number;\n pending_jobs: number;\n failure_rows: number;\n other_active_fences: number;\n };\n causal_terminal_proof: boolean;\n};\n\nexport type ProtectedStatusTargetProof = {\n ordinal: number;\n request_id: string;\n table: ProtectedDerivativeTargetTable;\n id: string;\n version: string;\n status: string;\n phase: string;\n error: JsonObject | null;\n causal_terminal_proof: false;\n};\n\ntype ProtectedDerivativeReadbackCommon = {\n schema_version: 'dataset-derivative-rebuild-batch-status.v1';\n batch_id: string;\n code: string | null;\n causal_terminal_proof: boolean;\n target_count: number;\n flow_count: number;\n process_count: number;\n completed_count: number;\n nonterminal_count: number;\n failed_count: number;\n};\n\nexport type ProtectedDerivativeReadback = ProtectedDerivativeReadbackCommon &\n (\n | {\n status: 'not_started';\n proof_level: 'none';\n proof_deferred: false;\n invalid_proof_count: null;\n targets: [];\n }\n | {\n status: 'pending' | 'failed';\n proof_level: 'status_only';\n proof_deferred: boolean;\n invalid_proof_count: null;\n targets: ProtectedStatusTargetProof[];\n }\n | {\n status: 'completed' | 'failed';\n proof_level: 'causal_terminal';\n proof_deferred: false;\n invalid_proof_count: number;\n targets: ProtectedTerminalTargetProof[];\n }\n );\n\nexport type ProtectedExecutionStatusProof = {\n schema_version: typeof PROTECTED_EXECUTION_CONTRACT.status_response_schema;\n command: typeof PROTECTED_EXECUTION_CONTRACT.read_command;\n request_id: string;\n status: ProtectedReportStatus;\n execution_status: ProtectedExecutionStatus;\n retry_allowed: false;\n actor_user_id: string;\n environment: 'production';\n project_ref: string;\n target_visibility: 'owner_draft' | null;\n plan_sha256: string;\n operation_id: string;\n plan_request_sha256: string;\n freeze_sha256: string | null;\n approval_identity_sha256: string | null;\n approval_text_sha256: string | null;\n derivative_target_set_sha256: string | null;\n preflight_proof_sha256: string;\n admission_request_sha256: string | null;\n gate_results_sha256: string | null;\n attempt_count: number;\n dispatch_count: number;\n gate_count: number;\n gates: Array<ProtectedGateResult & { gate: ProtectedGateProof['gate']; receipt_sha256: string }>;\n primary_readback: {\n row_count: number | null;\n exchange_count: number | null;\n alias_audit_count: number;\n live_closure_proof: boolean;\n closure: JsonObject;\n } | null;\n derivative_readback: ProtectedDerivativeReadback;\n failure: JsonObject | null;\n};\n\nfunction fail(message: string, details?: unknown): never {\n throw new CliError(message, {\n code: 'DATASET_MAINTENANCE_PROTECTED_CONTRACT_INVALID',\n exitCode: 2,\n details,\n });\n}\n\nfunction token(value: unknown, label: string): string {\n if (typeof value !== 'string' || !value.trim()) fail(`${label} must be a non-empty string.`);\n return value.trim();\n}\n\nfunction hash(value: unknown, label: string): string {\n const result = token(value, label);\n if (!SHA256.test(result)) fail(`${label} must be a lowercase SHA-256 digest.`);\n return result;\n}\n\nfunction timestamp(value: unknown, label: string): string {\n const result = token(value, label);\n if (!Number.isFinite(Date.parse(result))) fail(`${label} must be an ISO timestamp.`);\n return result;\n}\n\nfunction nullableHash(value: unknown, label: string): string | null {\n return value === null ? null : hash(value, label);\n}\n\nfunction nullableTimestamp(value: unknown, label: string): string | null {\n return value === null ? null : timestamp(value, label);\n}\n\nfunction parseAccount(value: unknown, label: string): { user_id: string; email: string } {\n if (!isJsonObject(value)) fail(`${label} must be an object.`);\n return {\n user_id: token(value.user_id, `${label}.user_id`),\n email: token(value.email, `${label}.email`),\n };\n}\n\nfunction parseExpected(value: unknown): typeof PROTECTED_EXECUTION_COUNTS {\n if (!isJsonObject(value)) fail('expected must be an object.');\n for (const [key, expected] of Object.entries(PROTECTED_EXECUTION_COUNTS)) {\n if (value[key] !== expected) fail(`expected.${key} must equal ${expected}.`);\n }\n return PROTECTED_EXECUTION_COUNTS;\n}\n\nfunction parseGateExpectations(value: unknown): ProtectedGateExpectations {\n if (!isJsonObject(value)) fail('gate_expectations must be an object.');\n return {\n primary_support_plan_sha256: hash(\n value.primary_support_plan_sha256,\n 'gate_expectations.primary_support_plan_sha256',\n ),\n execution_unused_sha256: hash(\n value.execution_unused_sha256,\n 'gate_expectations.execution_unused_sha256',\n ),\n derivative_quiescence_sha256: hash(\n value.derivative_quiescence_sha256,\n 'gate_expectations.derivative_quiescence_sha256',\n ),\n };\n}\n\nfunction parseDerivativeTarget(value: unknown, index: number): ProtectedDerivativeTarget {\n const label = `derivative_targets[${index}]`;\n if (!isJsonObject(value)) fail(`${label} must be an object.`);\n if (value.table !== 'flows' && value.table !== 'processes') {\n fail(`${label}.table must be flows or processes.`);\n }\n if (value.state_code !== 0) fail(`${label}.state_code must equal 0.`);\n const id = token(value.id, `${label}.id`);\n const version = token(value.version, `${label}.version`);\n if (!UUID.test(id) || !VERSION.test(version)) {\n fail(`${label} must contain a UUID id and canonical version.`);\n }\n return {\n table: value.table,\n id,\n version,\n user_id: token(value.user_id, `${label}.user_id`),\n state_code: 0 as const,\n baseline_snapshot_sha256: hash(\n value.baseline_snapshot_sha256,\n `${label}.baseline_snapshot_sha256`,\n ),\n };\n}\n\nfunction parseDerivativeTargets(value: unknown): ProtectedDerivativeTarget[] {\n if (!Array.isArray(value)) fail('derivative_targets must be an array.');\n const targets = value.map(parseDerivativeTarget);\n const keys = targets.map((target) => `${target.table}\\u0000${target.id}\\u0000${target.version}`);\n if (\n targets.length !== PROTECTED_EXECUTION_COUNTS.derivative_target_count ||\n new Set(keys).size !== targets.length ||\n targets.filter((target) => target.table === 'flows').length !==\n PROTECTED_EXECUTION_COUNTS.flow_count ||\n targets.filter((target) => target.table === 'processes').length !==\n PROTECTED_EXECUTION_COUNTS.process_count\n ) {\n fail('derivative_targets must contain exactly 23 flows and 27 processes with no duplicates.');\n }\n const sorted = [...targets].sort((left, right) =>\n `${left.table}\\u0000${left.id}\\u0000${left.version}`.localeCompare(\n `${right.table}\\u0000${right.id}\\u0000${right.version}`,\n ),\n );\n if (sorted.some((target, index) => target !== targets[index])) {\n fail('derivative_targets must use stable table/id/version order.');\n }\n return targets;\n}\n\nexport function parseProtectedDerivativeSnapshot(\n value: unknown,\n expected: {\n table: ProtectedDerivativeTargetTable;\n id: string;\n version: string;\n userId: string;\n },\n): ProtectedDerivativeSnapshot {\n if (\n !isJsonObject(value) ||\n value.ok !== true ||\n value.command !== 'cmd_dataset_derivative_rebuild_snapshot' ||\n value.schema_version !== 'dataset-derivative-snapshot.v1' ||\n value.table !== expected.table ||\n value.id !== expected.id ||\n value.version !== expected.version ||\n value.user_id !== expected.userId ||\n value.state_code !== 0\n ) {\n fail('Derivative snapshot RPC returned a foreign or unsupported snapshot.');\n }\n const snapshot: ProtectedDerivativeSnapshot = {\n schema_version: 'dataset-derivative-snapshot.v1',\n table: expected.table,\n id: expected.id,\n version: expected.version,\n user_id: expected.userId,\n state_code: 0,\n modified_at: timestamp(value.modified_at, 'derivative_snapshot.modified_at'),\n json_sha256: hash(value.json_sha256, 'derivative_snapshot.json_sha256'),\n json_ordered_sha256: hash(value.json_ordered_sha256, 'derivative_snapshot.json_ordered_sha256'),\n extracted_text_sha256: hash(\n value.extracted_text_sha256,\n 'derivative_snapshot.extracted_text_sha256',\n ),\n extracted_md_sha256: nullableHash(\n value.extracted_md_sha256,\n 'derivative_snapshot.extracted_md_sha256',\n ),\n embedding_ft_sha256: nullableHash(\n value.embedding_ft_sha256,\n 'derivative_snapshot.embedding_ft_sha256',\n ),\n embedding_ft_at: nullableTimestamp(\n value.embedding_ft_at,\n 'derivative_snapshot.embedding_ft_at',\n ),\n snapshot_sha256: hash(value.snapshot_sha256, 'derivative_snapshot.snapshot_sha256'),\n };\n if (snapshot.json_sha256 !== snapshot.json_ordered_sha256) {\n fail('Derivative snapshot json and json_ordered hashes are inconsistent.');\n }\n return snapshot;\n}\n\nfunction parseFreezeSets(value: unknown): DatasetMaintenanceProtectedFreeze['sets'] {\n if (!isJsonObject(value)) fail('sets must be an object.');\n return {\n alias_plan_request_sha256: hash(\n value.alias_plan_request_sha256,\n 'sets.alias_plan_request_sha256',\n ),\n before_hash_set_sha256: hash(value.before_hash_set_sha256, 'sets.before_hash_set_sha256'),\n desired_hash_set_sha256: hash(value.desired_hash_set_sha256, 'sets.desired_hash_set_sha256'),\n exchange_rewrite_set_sha256: hash(\n value.exchange_rewrite_set_sha256,\n 'sets.exchange_rewrite_set_sha256',\n ),\n support_snapshot_set_sha256: hash(\n value.support_snapshot_set_sha256,\n 'sets.support_snapshot_set_sha256',\n ),\n derivative_baseline_set_sha256: hash(\n value.derivative_baseline_set_sha256,\n 'sets.derivative_baseline_set_sha256',\n ),\n derivative_target_set_sha256: hash(\n value.derivative_target_set_sha256,\n 'sets.derivative_target_set_sha256',\n ),\n toolchain_evidence_sha256: hash(\n value.toolchain_evidence_sha256,\n 'sets.toolchain_evidence_sha256',\n ),\n };\n}\n\nexport function computeProtectedFreezeSha256(freeze: DatasetMaintenanceProtectedFreeze): string {\n return sha256Json({ ...freeze, freeze_sha256: '' });\n}\n\nexport function parseProtectedFreeze(value: unknown): DatasetMaintenanceProtectedFreeze {\n if (\n !isJsonObject(value) ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.freeze_schema ||\n value.environment !== 'production' ||\n value.target_visibility !== 'owner_draft' ||\n !isJsonObject(value.plan) ||\n !isJsonObject(value.policy)\n ) {\n fail(\n `Freeze must use ${PROTECTED_EXECUTION_CONTRACT.freeze_schema} for production owner_draft.`,\n );\n }\n const targets = parseDerivativeTargets(value.derivative_targets);\n const account = parseAccount(value.account, 'account');\n if (targets.some((target) => target.user_id !== account.user_id)) {\n fail('Every derivative target must belong to the frozen account.');\n }\n const freeze: DatasetMaintenanceProtectedFreeze = {\n schema_version: PROTECTED_EXECUTION_CONTRACT.freeze_schema,\n environment: 'production',\n project_ref: token(value.project_ref, 'project_ref'),\n account,\n target_visibility: 'owner_draft',\n plan: {\n plan_file_sha256: hash(value.plan.plan_file_sha256, 'plan.plan_file_sha256'),\n plan_sha256: hash(value.plan.plan_sha256, 'plan.plan_sha256'),\n operation_id: token(value.plan.operation_id, 'plan.operation_id'),\n },\n sets: parseFreezeSets(value.sets),\n expected: parseExpected(value.expected),\n derivative_targets: targets,\n policy: {\n state_code_changes: value.policy.state_code_changes as 0,\n save_draft: value.policy.save_draft as 0,\n deletes: value.policy.deletes as 0,\n rebuild_derivatives: value.policy.rebuild_derivatives as 0,\n unitgroup_actions: value.policy.unitgroup_actions as 0,\n person_distance_actions: value.policy.person_distance_actions as 0,\n max_admit_posts: value.policy.max_admit_posts as 1,\n automatic_retry: value.policy.automatic_retry as false,\n },\n freeze_sha256: hash(value.freeze_sha256, 'freeze_sha256'),\n };\n if (\n freeze.policy.state_code_changes !== 0 ||\n freeze.policy.save_draft !== 0 ||\n freeze.policy.deletes !== 0 ||\n freeze.policy.rebuild_derivatives !== 0 ||\n freeze.policy.unitgroup_actions !== 0 ||\n freeze.policy.person_distance_actions !== 0 ||\n freeze.policy.max_admit_posts !== 1 ||\n freeze.policy.automatic_retry !== false\n ) {\n fail('Freeze policy permits an operation outside the one-shot owner-draft alias execution.');\n }\n if (computeProtectedFreezeSha256(freeze) !== freeze.freeze_sha256) {\n fail('freeze_sha256 does not match the canonical freeze contents.');\n }\n return freeze;\n}\n\nexport function computeProtectedApprovalIdentitySha256(\n approval: DatasetMaintenanceProtectedApproval,\n): string {\n return sha256Json({ ...approval, approval_identity_sha256: '' });\n}\n\nexport function parseProtectedApproval(value: unknown): DatasetMaintenanceProtectedApproval {\n if (\n !isJsonObject(value) ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.approval_schema ||\n value.environment !== 'production' ||\n value.target_visibility !== 'owner_draft'\n ) {\n fail(\n `Approval must use ${PROTECTED_EXECUTION_CONTRACT.approval_schema} for production owner_draft.`,\n );\n }\n const approval: DatasetMaintenanceProtectedApproval = {\n schema_version: PROTECTED_EXECUTION_CONTRACT.approval_schema,\n approved_at_utc: timestamp(value.approved_at_utc, 'approved_at_utc'),\n environment: 'production',\n project_ref: token(value.project_ref, 'project_ref'),\n account: parseAccount(value.account, 'account'),\n target_visibility: 'owner_draft',\n plan_sha256: hash(value.plan_sha256, 'plan_sha256'),\n operation_id: token(value.operation_id, 'operation_id'),\n plan_file_sha256: hash(value.plan_file_sha256, 'plan_file_sha256'),\n freeze_file_sha256: hash(value.freeze_file_sha256, 'freeze_file_sha256'),\n freeze_sha256: hash(value.freeze_sha256, 'freeze_sha256'),\n approval_text_sha256: hash(value.approval_text_sha256, 'approval_text_sha256'),\n max_admit_posts: value.max_admit_posts as 1,\n automatic_retry: value.automatic_retry as false,\n approval_identity_sha256: hash(value.approval_identity_sha256, 'approval_identity_sha256'),\n };\n if (approval.max_admit_posts !== 1 || approval.automatic_retry !== false) {\n fail('Approval must authorize exactly one admit POST with no automatic retry.');\n }\n if (computeProtectedApprovalIdentitySha256(approval) !== approval.approval_identity_sha256) {\n fail('approval_identity_sha256 does not match the canonical approval contents.');\n }\n return approval;\n}\n\nexport function protectedPlanSetHashes(plan: DatasetMaintenancePlan): {\n before_hash_set_sha256: string;\n desired_hash_set_sha256: string;\n exchange_rewrite_set_sha256: string;\n support_snapshot_set_sha256: string;\n derivative_target_set_sha256: string;\n} {\n const orderedActions = [...plan.actions].sort((left, right) =>\n left.action_id.localeCompare(right.action_id),\n );\n const derivativeTargets = plan.actions\n .filter((action) => action.table === 'flows' || action.table === 'processes')\n .sort(\n (left, right) =>\n left.table.localeCompare(right.table) ||\n left.id.localeCompare(right.id) ||\n left.version.localeCompare(right.version),\n )\n .map((action) => ({\n table: action.table,\n id: action.id,\n version: action.version,\n user_id: action.expected_user_id,\n state_code: action.expected_state_code,\n }));\n return {\n before_hash_set_sha256: sha256Json(\n orderedActions.map((action) => ({\n action_id: action.action_id,\n table: action.table,\n id: action.id,\n version: action.version,\n row_sha256: action.before?.row_sha256 ?? null,\n })),\n ),\n desired_hash_set_sha256: sha256Json(\n orderedActions.map((action) => ({\n action_id: action.action_id,\n table: action.table,\n id: action.id,\n version: action.version,\n payload_sha256: action.desired_payload?.sha256 ?? null,\n })),\n ),\n exchange_rewrite_set_sha256: sha256Json(\n (plan.alias_batches ?? []).flatMap((batch) => batch.exchange_rewrites),\n ),\n support_snapshot_set_sha256: sha256Json(\n (plan.alias_batches ?? []).map((batch) => ({\n batch_id: batch.batch_id,\n target_snapshots: batch.target_snapshots,\n })),\n ),\n derivative_target_set_sha256: sha256Json(derivativeTargets),\n };\n}\n\nexport function protectedDerivativeBaselineSetSha256(targets: ProtectedDerivativeTarget[]): string {\n return sha256Json(\n targets.map((target) => ({\n table: target.table,\n id: target.id,\n version: target.version,\n baseline_snapshot_sha256: target.baseline_snapshot_sha256,\n })),\n );\n}\n\nexport function assertProtectedFreezeMatchesPlan(options: {\n plan: DatasetMaintenancePlan;\n planFileSha256: string;\n aliasPlanRequestSha256: string;\n freeze: DatasetMaintenanceProtectedFreeze;\n}): void {\n const { plan, planFileSha256, freeze } = options;\n if (\n plan.operation !== 'merge-support-aliases' ||\n plan.status !== 'ready' ||\n plan.target_mode !== 'owner_draft' ||\n plan.blockers.length !== 0 ||\n plan.account.user_id !== freeze.account.user_id ||\n plan.account.email !== freeze.account.email ||\n plan.plan_sha256 !== freeze.plan.plan_sha256 ||\n plan.operation_id !== freeze.plan.operation_id ||\n planFileSha256 !== freeze.plan.plan_file_sha256\n ) {\n fail('Protected freeze does not bind the ready owner-draft alias plan and account exactly.');\n }\n const actionCounts = {\n flowproperties: plan.actions.filter((action) => action.table === 'flowproperties').length,\n flows: plan.actions.filter((action) => action.table === 'flows').length,\n processes: plan.actions.filter((action) => action.table === 'processes').length,\n };\n if (\n plan.actions.length !== PROTECTED_EXECUTION_COUNTS.action_count ||\n plan.alias_batches?.length !== PROTECTED_EXECUTION_COUNTS.batch_count ||\n actionCounts.flowproperties !== PROTECTED_EXECUTION_COUNTS.flowproperty_count ||\n actionCounts.flows !== PROTECTED_EXECUTION_COUNTS.flow_count ||\n actionCounts.processes !== PROTECTED_EXECUTION_COUNTS.process_count ||\n (plan.summary.scaled_exchanges ?? 0) !== PROTECTED_EXECUTION_COUNTS.exchange_count ||\n (plan.summary.scaled_amount_fields ?? 0) !== PROTECTED_EXECUTION_COUNTS.amount_field_count ||\n (plan.summary.unrelated_exchanges_preserved ?? 0) !==\n PROTECTED_EXECUTION_COUNTS.unrelated_exchange_count\n ) {\n fail('Protected plan counts do not match the Step 2 execution contract.');\n }\n const sets = protectedPlanSetHashes(plan);\n for (const [key, actual] of Object.entries(sets)) {\n if (freeze.sets[key as keyof typeof sets] !== actual) fail(`Freeze set hash mismatch: ${key}.`);\n }\n if (freeze.sets.alias_plan_request_sha256 !== options.aliasPlanRequestSha256) {\n fail('Freeze alias request hash does not match the exact serialized database plan.');\n }\n if (\n freeze.sets.derivative_baseline_set_sha256 !==\n protectedDerivativeBaselineSetSha256(freeze.derivative_targets)\n ) {\n fail('Freeze derivative baseline set hash does not match the 50 targets.');\n }\n const targetByKey = new Map(\n freeze.derivative_targets.map((target) => [\n `${target.table}\\u0000${target.id}\\u0000${target.version}`,\n target,\n ]),\n );\n for (const action of plan.actions.filter(\n (entry) => entry.table === 'flows' || entry.table === 'processes',\n )) {\n const target = targetByKey.get(`${action.table}\\u0000${action.id}\\u0000${action.version}`);\n if (!target || target.user_id !== action.expected_user_id) {\n fail(`Derivative baseline does not bind action ${action.action_id}.`);\n }\n }\n}\n\nexport function assertProtectedApprovalBindings(options: {\n approval: DatasetMaintenanceProtectedApproval;\n freeze: DatasetMaintenanceProtectedFreeze;\n freezeFileSha256: string;\n approvalFileSha256: string;\n approveExecution?: string;\n}): void {\n const { approval, freeze } = options;\n if (\n approval.environment !== freeze.environment ||\n approval.project_ref !== freeze.project_ref ||\n approval.account.user_id !== freeze.account.user_id ||\n approval.account.email !== freeze.account.email ||\n approval.plan_sha256 !== freeze.plan.plan_sha256 ||\n approval.operation_id !== freeze.plan.operation_id ||\n approval.plan_file_sha256 !== freeze.plan.plan_file_sha256 ||\n approval.freeze_file_sha256 !== options.freezeFileSha256 ||\n approval.freeze_sha256 !== freeze.freeze_sha256 ||\n approval.approval_identity_sha256 !== options.approveExecution\n ) {\n fail('Approval does not bind this exact production freeze, plan, actor, and CLI confirmation.');\n }\n hash(options.approvalFileSha256, 'approval_file_sha256');\n}\n\nfunction deterministicUuidFromSha256(digest: string): string {\n const chars = digest.slice(0, 32).split('');\n chars[12] = '5';\n chars[16] = ((Number.parseInt(chars[16]!, 16) & 0x3) | 0x8).toString(16);\n const hex = chars.join('');\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n}\n\nexport function buildProtectedExecutionIdentity(options: {\n freeze: DatasetMaintenanceProtectedFreeze;\n approval: DatasetMaintenanceProtectedApproval;\n freezeFileSha256: string;\n approvalFileSha256: string;\n}): ProtectedExecutionIdentity {\n const bindings: ProtectedExecutionBindings = {\n plan_file_sha256: options.freeze.plan.plan_file_sha256,\n freeze_file_sha256: options.freezeFileSha256,\n freeze_sha256: options.freeze.freeze_sha256,\n approval_file_sha256: options.approvalFileSha256,\n approval_identity_sha256: options.approval.approval_identity_sha256,\n approval_text_sha256: options.approval.approval_text_sha256,\n ...options.freeze.sets,\n };\n const body = {\n environment: 'production' as const,\n project_ref: options.freeze.project_ref,\n actor: options.freeze.account,\n target_visibility: 'owner_draft' as const,\n plan_sha256: options.freeze.plan.plan_sha256,\n operation_id: options.freeze.plan.operation_id,\n bindings,\n expected: PROTECTED_EXECUTION_COUNTS,\n derivative_targets: options.freeze.derivative_targets,\n };\n const identitySha256 = sha256Json(body);\n const requestId = deterministicUuidFromSha256(\n sha256Text(`dataset-alias-protected-request.v1\\u0000${identitySha256}`),\n );\n return { request_id: requestId, identity_sha256: identitySha256, ...body };\n}\n\nexport function buildProtectedPreflightRequest(options: {\n identity: ProtectedExecutionIdentity;\n plan: JsonObject;\n freeze: DatasetMaintenanceProtectedFreeze;\n approval: DatasetMaintenanceProtectedApproval;\n}): JsonObject {\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.preflight_request_schema,\n request_id: options.identity.request_id,\n environment: options.identity.environment,\n project_ref: options.identity.project_ref,\n actor: options.identity.actor,\n target_visibility: options.identity.target_visibility,\n plan: options.plan,\n freeze: options.freeze,\n approval: options.approval,\n bindings: options.identity.bindings,\n expected: options.identity.expected,\n derivative_targets: options.identity.derivative_targets,\n };\n}\n\nexport function parseProtectedPreflightProof(\n value: unknown,\n identity: ProtectedExecutionIdentity,\n now = new Date(),\n): ProtectedPreflightProof {\n if (\n !isJsonObject(value) ||\n value.ok !== true ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.preflight_response_schema ||\n value.command !== PROTECTED_EXECUTION_CONTRACT.preflight_command ||\n value.request_id !== identity.request_id ||\n value.actor_user_id !== identity.actor.user_id ||\n value.environment !== identity.environment ||\n value.project_ref !== identity.project_ref ||\n value.plan_sha256 !== identity.plan_sha256 ||\n value.operation_id !== identity.operation_id ||\n !isJsonObject(value.simulation)\n ) {\n fail('Preflight RPC returned a foreign or unsupported proof envelope.');\n }\n const proof: ProtectedPreflightProof = {\n schema_version: PROTECTED_EXECUTION_CONTRACT.preflight_response_schema,\n command: PROTECTED_EXECUTION_CONTRACT.preflight_command,\n request_id: identity.request_id,\n actor_user_id: identity.actor.user_id,\n environment: 'production',\n project_ref: identity.project_ref,\n server_context_sha256: hash(value.server_context_sha256, 'server_context_sha256'),\n plan_sha256: identity.plan_sha256,\n operation_id: identity.operation_id,\n alias_plan_request_sha256: hash(value.alias_plan_request_sha256, 'alias_plan_request_sha256'),\n freeze_sha256: hash(value.freeze_sha256, 'freeze_sha256'),\n approval_identity_sha256: hash(value.approval_identity_sha256, 'approval_identity_sha256'),\n plan_request_sha256: hash(value.plan_request_sha256, 'plan_request_sha256'),\n bindings_sha256: hash(value.bindings_sha256, 'bindings_sha256'),\n expected_sha256: hash(value.expected_sha256, 'expected_sha256'),\n derivative_targets_sha256: hash(value.derivative_targets_sha256, 'derivative_targets_sha256'),\n gate_expectations: parseGateExpectations(value.gate_expectations),\n gate_expectations_sha256: hash(value.gate_expectations_sha256, 'gate_expectations_sha256'),\n failure_baseline_sha256: hash(value.failure_baseline_sha256, 'failure_baseline_sha256'),\n preflight_request_sha256: hash(value.preflight_request_sha256, 'preflight_request_sha256'),\n preflight_token: token(value.preflight_token, 'preflight_token'),\n preflight_proof_sha256: hash(value.preflight_proof_sha256, 'preflight_proof_sha256'),\n completed_at: timestamp(value.completed_at, 'completed_at'),\n expires_at: timestamp(value.expires_at, 'expires_at'),\n simulation: {\n plan_rows: value.simulation.plan_rows as 52,\n plan_exchanges: value.simulation.plan_exchanges as 59,\n alias_audits: value.simulation.alias_audits as 55,\n derivative_targets: value.simulation.derivative_targets as 50,\n rolled_back: value.simulation.rolled_back as true,\n },\n };\n if (\n proof.alias_plan_request_sha256 !== identity.bindings.alias_plan_request_sha256 ||\n proof.freeze_sha256 !== identity.bindings.freeze_sha256 ||\n proof.approval_identity_sha256 !== identity.bindings.approval_identity_sha256 ||\n proof.simulation.plan_rows !== PROTECTED_EXECUTION_COUNTS.action_count ||\n proof.simulation.plan_exchanges !== PROTECTED_EXECUTION_COUNTS.exchange_count ||\n proof.simulation.alias_audits !== PROTECTED_EXECUTION_COUNTS.audit_count ||\n proof.simulation.derivative_targets !== PROTECTED_EXECUTION_COUNTS.derivative_target_count ||\n proof.simulation.rolled_back !== true\n ) {\n fail('Preflight simulation did not prove the exact protected profile and rollback.');\n }\n const issued = Date.parse(proof.completed_at);\n const expires = Date.parse(proof.expires_at);\n const nowMs = now.getTime();\n const windowMs = expires - issued;\n const timingDetails = {\n completed_at: proof.completed_at,\n expires_at: proof.expires_at,\n observed_at: now.toISOString(),\n window_ms: windowMs,\n future_skew_ms: issued - nowMs,\n allowed_future_skew_ms: PROTECTED_SERVER_CLOCK_SKEW_TOLERANCE_MS,\n };\n if (windowMs <= 0) {\n fail('Preflight token expiry must be later than its completion time.', timingDetails);\n }\n if (windowMs > PROTECTED_PREFLIGHT_MAX_WINDOW_MS) {\n fail('Preflight token exceeds the 180-second admission window.', timingDetails);\n }\n if (issued - nowMs > PROTECTED_SERVER_CLOCK_SKEW_TOLERANCE_MS) {\n fail(\n 'Preflight token is future-issued beyond the 5-second clock-skew allowance.',\n timingDetails,\n );\n }\n if (expires <= nowMs) {\n fail('Preflight token is stale.', timingDetails);\n }\n return proof;\n}\n\nexport function parseProtectedGateProof(\n value: unknown,\n options: {\n identity: ProtectedExecutionIdentity;\n preflight: ProtectedPreflightProof;\n gate: ProtectedGateProof['gate'];\n },\n): ProtectedGateProof {\n if (\n !isJsonObject(value) ||\n value.ok !== true ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.gate_response_schema ||\n value.command !== PROTECTED_EXECUTION_CONTRACT.gate_command ||\n value.request_id !== options.identity.request_id ||\n value.actor_user_id !== options.identity.actor.user_id ||\n value.preflight_proof_sha256 !== options.preflight.preflight_proof_sha256 ||\n value.gate !== options.gate ||\n value.status !== 'passed'\n ) {\n fail('Gate RPC returned a foreign, failed, or unsupported receipt.');\n }\n const expectedName = `${options.gate}_sha256` as keyof ProtectedGateExpectations;\n const expectedSha256 = hash(value.expected_sha256, 'gate.expected_sha256');\n const observedSha256 = hash(value.observed_sha256, 'gate.observed_sha256');\n const capturedAt = timestamp(value.captured_at, 'gate.captured_at');\n if (\n expectedSha256 !== options.preflight.gate_expectations[expectedName] ||\n observedSha256 !== expectedSha256 ||\n Date.parse(capturedAt) < Date.parse(options.preflight.completed_at) ||\n Date.parse(capturedAt) > Date.parse(options.preflight.expires_at)\n ) {\n fail('Gate receipt does not match the frozen digest or server preflight window.');\n }\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.gate_response_schema,\n command: PROTECTED_EXECUTION_CONTRACT.gate_command,\n request_id: options.identity.request_id,\n actor_user_id: options.identity.actor.user_id,\n preflight_proof_sha256: options.preflight.preflight_proof_sha256,\n gate: options.gate,\n result: {\n expected_sha256: expectedSha256,\n observed_sha256: observedSha256,\n status: 'passed',\n captured_at: capturedAt,\n },\n receipt_sha256: hash(value.receipt_sha256, 'gate.receipt_sha256'),\n };\n}\n\nexport function buildProtectedAdmitRequest(options: {\n preflight: ProtectedPreflightProof;\n gateResults: {\n primary_support_plan: ProtectedGateResult;\n execution_unused: ProtectedGateResult;\n derivative_quiescence: ProtectedGateResult;\n };\n}): JsonObject {\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.admit_request_schema,\n request_id: options.preflight.request_id,\n preflight_token: options.preflight.preflight_token,\n preflight_proof_sha256: options.preflight.preflight_proof_sha256,\n gate_results: options.gateResults,\n };\n}\n\nexport function parseProtectedAdmissionProof(\n value: unknown,\n identity: ProtectedExecutionIdentity,\n preflight: ProtectedPreflightProof,\n): ProtectedAdmissionProof {\n if (\n !isJsonObject(value) ||\n value.ok !== true ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.admit_response_schema ||\n value.command !== PROTECTED_EXECUTION_CONTRACT.admit_command ||\n value.request_id !== identity.request_id ||\n value.plan_sha256 !== identity.plan_sha256 ||\n value.operation_id !== identity.operation_id ||\n value.plan_request_sha256 !== preflight.plan_request_sha256 ||\n value.preflight_proof_sha256 !== preflight.preflight_proof_sha256 ||\n value.status !== 'dispatched' ||\n value.attempt_count !== 1 ||\n value.dispatch_count !== 1 ||\n value.attempt_consumed !== true ||\n value.retry_allowed !== false\n ) {\n fail('Admission RPC returned a foreign, duplicate, or unsupported proof envelope.');\n }\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.admit_response_schema,\n command: PROTECTED_EXECUTION_CONTRACT.admit_command,\n request_id: identity.request_id,\n plan_sha256: identity.plan_sha256,\n operation_id: identity.operation_id,\n plan_request_sha256: preflight.plan_request_sha256,\n preflight_proof_sha256: preflight.preflight_proof_sha256,\n admission_request_sha256: hash(value.admission_request_sha256, 'admission_request_sha256'),\n gate_results_sha256: hash(value.gate_results_sha256, 'gate_results_sha256'),\n status: 'dispatched',\n attempt_count: 1,\n dispatch_count: 1,\n net_request_id: token(value.net_request_id, 'net_request_id'),\n attempt_consumed: true,\n retry_allowed: false,\n };\n}\n\nfunction parseBindings(value: unknown): ProtectedExecutionBindings {\n if (!isJsonObject(value)) fail('bindings must be an object.');\n return Object.fromEntries(\n [\n 'plan_file_sha256',\n 'freeze_file_sha256',\n 'freeze_sha256',\n 'approval_file_sha256',\n 'approval_identity_sha256',\n 'approval_text_sha256',\n 'alias_plan_request_sha256',\n 'before_hash_set_sha256',\n 'desired_hash_set_sha256',\n 'exchange_rewrite_set_sha256',\n 'support_snapshot_set_sha256',\n 'derivative_baseline_set_sha256',\n 'derivative_target_set_sha256',\n 'toolchain_evidence_sha256',\n ].map((key) => [key, hash(value[key], `bindings.${key}`)]),\n ) as ProtectedExecutionBindings;\n}\n\nfunction nonNegativeInteger(value: unknown, label: string): number {\n if (!Number.isInteger(value) || Number(value) < 0)\n fail(`${label} must be a non-negative integer.`);\n return Number(value);\n}\n\nfunction requiredBoolean(value: unknown, label: string): boolean {\n return typeof value === 'boolean' ? value : fail(`${label} must be boolean.`);\n}\n\nfunction parseTerminalTarget(value: unknown, index: number): ProtectedTerminalTargetProof {\n const label = `derivative_readback.targets[${index}]`;\n if (!isJsonObject(value) || !isJsonObject(value.residue)) {\n fail(`${label} must be an object with residue counts.`);\n }\n if (value.table !== 'flows' && value.table !== 'processes') {\n fail(`${label}.table must be flows or processes.`);\n }\n const ordinal = nonNegativeInteger(value.ordinal, `${label}.ordinal`);\n if (ordinal < 1 || ordinal > PROTECTED_EXECUTION_COUNTS.derivative_target_count) {\n fail(`${label}.ordinal is outside the exact 50-target range.`);\n }\n return {\n ordinal,\n request_id: token(value.request_id, `${label}.request_id`),\n table: value.table,\n id: token(value.id, `${label}.id`),\n version: token(value.version, `${label}.version`),\n status: token(value.status, `${label}.status`),\n phase: token(value.phase, `${label}.phase`),\n source_baseline_snapshot_sha256: hash(\n value.source_baseline_snapshot_sha256,\n `${label}.source_baseline_snapshot_sha256`,\n ),\n expected_snapshot_sha256: hash(\n value.expected_snapshot_sha256,\n `${label}.expected_snapshot_sha256`,\n ),\n completed_snapshot_sha256: nullableHash(\n value.completed_snapshot_sha256,\n `${label}.completed_snapshot_sha256`,\n ),\n primary_matches: requiredBoolean(value.primary_matches, `${label}.primary_matches`),\n terminal_snapshot_matches: requiredBoolean(\n value.terminal_snapshot_matches,\n `${label}.terminal_snapshot_matches`,\n ),\n proposals_committed: requiredBoolean(value.proposals_committed, `${label}.proposals_committed`),\n derivative_fresh: requiredBoolean(value.derivative_fresh, `${label}.derivative_fresh`),\n lifecycle_complete: requiredBoolean(value.lifecycle_complete, `${label}.lifecycle_complete`),\n terminal_audit_present: requiredBoolean(\n value.terminal_audit_present,\n `${label}.terminal_audit_present`,\n ),\n residue: {\n http_requests: nonNegativeInteger(\n value.residue.http_requests,\n `${label}.residue.http_requests`,\n ),\n embedding_jobs: nonNegativeInteger(\n value.residue.embedding_jobs,\n `${label}.residue.embedding_jobs`,\n ),\n pending_jobs: nonNegativeInteger(value.residue.pending_jobs, `${label}.residue.pending_jobs`),\n failure_rows: nonNegativeInteger(value.residue.failure_rows, `${label}.residue.failure_rows`),\n other_active_fences: nonNegativeInteger(\n value.residue.other_active_fences,\n `${label}.residue.other_active_fences`,\n ),\n },\n causal_terminal_proof: requiredBoolean(\n value.causal_terminal_proof,\n `${label}.causal_terminal_proof`,\n ),\n };\n}\n\nfunction parseStatusTarget(value: unknown, index: number): ProtectedStatusTargetProof {\n const label = `derivative_readback.targets[${index}]`;\n if (!isJsonObject(value) || (value.table !== 'flows' && value.table !== 'processes')) {\n fail(`${label} must be a lightweight flow/process status proof.`);\n }\n const ordinal = nonNegativeInteger(value.ordinal, `${label}.ordinal`);\n if (ordinal < 1 || ordinal > PROTECTED_EXECUTION_COUNTS.derivative_target_count) {\n fail(`${label}.ordinal is outside the exact 50-target range.`);\n }\n if (value.causal_terminal_proof !== false) {\n fail(`${label}.causal_terminal_proof must be false while proof is deferred.`);\n }\n return {\n ordinal,\n request_id: token(value.request_id, `${label}.request_id`),\n table: value.table,\n id: token(value.id, `${label}.id`),\n version: token(value.version, `${label}.version`),\n status: token(value.status, `${label}.status`),\n phase: token(value.phase, `${label}.phase`),\n error:\n value.error === null\n ? null\n : isJsonObject(value.error)\n ? value.error\n : fail(`${label}.error must be an object or null.`),\n causal_terminal_proof: false,\n };\n}\n\nfunction parseReadGates(value: unknown): ProtectedExecutionStatusProof['gates'] {\n if (!Array.isArray(value)) fail('gates must be an array.');\n return value.map((entry, index) => {\n if (\n !isJsonObject(entry) ||\n !['primary_support_plan', 'execution_unused', 'derivative_quiescence'].includes(\n String(entry.gate),\n ) ||\n entry.status !== 'passed'\n ) {\n fail(`gates[${index}] is invalid.`);\n }\n return {\n gate: entry.gate as ProtectedGateProof['gate'],\n expected_sha256: hash(entry.expected_sha256, `gates[${index}].expected_sha256`),\n observed_sha256: hash(entry.observed_sha256, `gates[${index}].observed_sha256`),\n status: 'passed' as const,\n captured_at: timestamp(entry.captured_at, `gates[${index}].captured_at`),\n receipt_sha256: hash(entry.receipt_sha256, `gates[${index}].receipt_sha256`),\n };\n });\n}\n\nfunction parseDerivativeReadback(\n value: unknown,\n requestId: string,\n): ProtectedExecutionStatusProof['derivative_readback'] {\n if (\n !isJsonObject(value) ||\n value.schema_version !== 'dataset-derivative-rebuild-batch-status.v1' ||\n value.batch_id !== requestId ||\n !['not_started', 'pending', 'completed', 'failed'].includes(String(value.status))\n ) {\n fail('derivative_readback is invalid.');\n }\n const notStarted = value.status === 'not_started';\n const common = {\n schema_version: 'dataset-derivative-rebuild-batch-status.v1',\n batch_id: requestId,\n code:\n value.code === undefined || value.code === null\n ? null\n : token(value.code, 'derivative_readback.code'),\n causal_terminal_proof: requiredBoolean(\n value.causal_terminal_proof,\n 'derivative_readback.causal_terminal_proof',\n ),\n target_count: nonNegativeInteger(value.target_count, 'derivative_readback.target_count'),\n flow_count: nonNegativeInteger(value.flow_count, 'derivative_readback.flow_count'),\n process_count: nonNegativeInteger(value.process_count, 'derivative_readback.process_count'),\n completed_count: nonNegativeInteger(\n value.completed_count,\n 'derivative_readback.completed_count',\n ),\n nonterminal_count: nonNegativeInteger(\n value.nonterminal_count,\n 'derivative_readback.nonterminal_count',\n ),\n failed_count: nonNegativeInteger(value.failed_count, 'derivative_readback.failed_count'),\n } as const;\n if (notStarted) {\n if (\n value.code !== 'DERIVATIVE_BATCH_NOT_STARTED' ||\n value.proof_level !== 'none' ||\n value.proof_deferred !== false ||\n value.invalid_proof_count !== null ||\n !Array.isArray(value.targets) ||\n value.targets.length !== 0 ||\n common.causal_terminal_proof !== false ||\n common.target_count !== 0 ||\n common.flow_count !== 0 ||\n common.process_count !== 0 ||\n common.completed_count !== 0 ||\n common.nonterminal_count !== 0 ||\n common.failed_count !== 0\n ) {\n fail('Not-started derivative readback must carry the exact zero-count proof envelope.');\n }\n return {\n ...common,\n status: 'not_started',\n proof_level: 'none',\n proof_deferred: false,\n invalid_proof_count: null,\n targets: [],\n };\n }\n if (!Array.isArray(value.targets)) {\n fail('derivative_readback.targets must be an array.');\n }\n if (value.proof_level === 'status_only') {\n if (\n (value.status !== 'pending' && value.status !== 'failed') ||\n typeof value.proof_deferred !== 'boolean' ||\n value.invalid_proof_count !== null ||\n common.causal_terminal_proof !== false\n ) {\n fail('Status-only derivative readback has inconsistent proof metadata.');\n }\n return {\n ...common,\n status: value.status,\n proof_level: 'status_only',\n proof_deferred: value.proof_deferred,\n invalid_proof_count: null,\n targets: value.targets.map(parseStatusTarget),\n };\n }\n if (\n value.proof_level !== 'causal_terminal' ||\n value.proof_deferred !== false ||\n (value.status !== 'completed' && value.status !== 'failed')\n ) {\n fail('Terminal derivative readback must carry a causal proof envelope.');\n }\n return {\n ...common,\n status: value.status,\n proof_level: 'causal_terminal',\n proof_deferred: false,\n invalid_proof_count: nonNegativeInteger(\n value.invalid_proof_count,\n 'derivative_readback.invalid_proof_count',\n ),\n targets: value.targets.map(parseTerminalTarget),\n };\n}\n\nexport function parseProtectedStatusProof(\n value: unknown,\n identity: ProtectedExecutionIdentity,\n): ProtectedExecutionStatusProof {\n if (\n !isJsonObject(value) ||\n value.ok !== true ||\n value.schema_version !== PROTECTED_EXECUTION_CONTRACT.status_response_schema ||\n value.command !== PROTECTED_EXECUTION_CONTRACT.read_command ||\n value.request_id !== identity.request_id ||\n !['pending', 'passed', 'failed', 'indeterminate'].includes(String(value.status)) ||\n ![\n 'not_admitted',\n 'dispatching',\n 'dispatched',\n 'running',\n 'derivatives_pending',\n 'completed',\n 'failed',\n 'indeterminate',\n ].includes(String(value.execution_status)) ||\n value.retry_allowed !== false ||\n value.actor_user_id !== identity.actor.user_id ||\n value.environment !== identity.environment ||\n value.project_ref !== identity.project_ref ||\n value.plan_sha256 !== identity.plan_sha256 ||\n value.operation_id !== identity.operation_id\n ) {\n fail('Read RPC returned a foreign or unsupported status envelope.');\n }\n const executionStatus = value.execution_status as ProtectedExecutionStatus;\n const gates = parseReadGates(value.gates);\n if (executionStatus === 'not_admitted') {\n if (value.status !== 'indeterminate' || gates.length > 3) {\n fail('A not-admitted read must be indeterminate and contain at most three gate receipts.');\n }\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.status_response_schema,\n command: PROTECTED_EXECUTION_CONTRACT.read_command,\n request_id: identity.request_id,\n status: 'indeterminate',\n execution_status: 'not_admitted',\n retry_allowed: false,\n actor_user_id: identity.actor.user_id,\n environment: 'production',\n project_ref: identity.project_ref,\n target_visibility: null,\n plan_sha256: identity.plan_sha256,\n operation_id: identity.operation_id,\n plan_request_sha256: hash(value.plan_request_sha256, 'plan_request_sha256'),\n freeze_sha256: null,\n approval_identity_sha256: null,\n approval_text_sha256: null,\n derivative_target_set_sha256: null,\n preflight_proof_sha256: hash(value.preflight_proof_sha256, 'preflight_proof_sha256'),\n admission_request_sha256: null,\n gate_results_sha256: null,\n attempt_count: 0,\n dispatch_count: 0,\n gate_count: nonNegativeInteger(value.gate_count, 'gate_count'),\n gates,\n primary_readback: null,\n derivative_readback: {\n schema_version: 'dataset-derivative-rebuild-batch-status.v1',\n batch_id: identity.request_id,\n status: 'not_started',\n proof_level: 'none',\n proof_deferred: false,\n code: 'ALIAS_EXECUTION_NOT_ADMITTED',\n causal_terminal_proof: false,\n target_count: 0,\n flow_count: 0,\n process_count: 0,\n completed_count: 0,\n nonterminal_count: 0,\n failed_count: 0,\n invalid_proof_count: null,\n targets: [],\n },\n failure: null,\n };\n }\n if (\n value.target_visibility !== 'owner_draft' ||\n value.freeze_sha256 !== identity.bindings.freeze_sha256 ||\n value.approval_identity_sha256 !== identity.bindings.approval_identity_sha256 ||\n value.approval_text_sha256 !== identity.bindings.approval_text_sha256 ||\n value.derivative_target_set_sha256 !== identity.bindings.derivative_target_set_sha256 ||\n !isJsonObject(value.primary_readback)\n ) {\n fail('Read RPC did not round-trip the sealed owner-draft execution bindings.');\n }\n const derivativeReadback = parseDerivativeReadback(\n value.derivative_readback,\n identity.request_id,\n );\n if (\n derivativeReadback.status === 'not_started' &&\n !['dispatching', 'dispatched', 'running', 'failed', 'indeterminate'].includes(executionStatus)\n ) {\n fail(\n 'A not-started derivative readback is only valid before derivative dispatch or after a zero-child terminal failure.',\n );\n }\n return {\n schema_version: PROTECTED_EXECUTION_CONTRACT.status_response_schema,\n command: PROTECTED_EXECUTION_CONTRACT.read_command,\n request_id: identity.request_id,\n status: value.status as ProtectedReportStatus,\n execution_status: executionStatus,\n retry_allowed: false,\n actor_user_id: identity.actor.user_id,\n environment: 'production',\n project_ref: identity.project_ref,\n target_visibility: 'owner_draft',\n plan_sha256: identity.plan_sha256,\n operation_id: identity.operation_id,\n plan_request_sha256: hash(value.plan_request_sha256, 'plan_request_sha256'),\n freeze_sha256: identity.bindings.freeze_sha256,\n approval_identity_sha256: identity.bindings.approval_identity_sha256,\n approval_text_sha256: identity.bindings.approval_text_sha256,\n derivative_target_set_sha256: identity.bindings.derivative_target_set_sha256,\n preflight_proof_sha256: hash(value.preflight_proof_sha256, 'preflight_proof_sha256'),\n admission_request_sha256: hash(value.admission_request_sha256, 'admission_request_sha256'),\n gate_results_sha256: hash(value.gate_results_sha256, 'gate_results_sha256'),\n attempt_count: nonNegativeInteger(value.attempt_count, 'attempt_count'),\n dispatch_count: nonNegativeInteger(value.dispatch_count, 'dispatch_count'),\n gate_count: nonNegativeInteger(value.gate_count, 'gate_count'),\n gates,\n primary_readback: {\n row_count:\n value.primary_readback.row_count === null\n ? null\n : nonNegativeInteger(value.primary_readback.row_count, 'primary_readback.row_count'),\n exchange_count:\n value.primary_readback.exchange_count === null\n ? null\n : nonNegativeInteger(\n value.primary_readback.exchange_count,\n 'primary_readback.exchange_count',\n ),\n alias_audit_count: nonNegativeInteger(\n value.primary_readback.alias_audit_count,\n 'primary_readback.alias_audit_count',\n ),\n live_closure_proof: requiredBoolean(\n value.primary_readback.live_closure_proof,\n 'primary_readback.live_closure_proof',\n ),\n closure: isJsonObject(value.primary_readback.closure)\n ? value.primary_readback.closure\n : fail('primary_readback.closure must be an object.'),\n },\n derivative_readback: derivativeReadback,\n failure:\n value.error === null\n ? null\n : isJsonObject(value.error)\n ? value.error\n : fail('error must be an object or null.'),\n };\n}\n\nexport function isUuid(value: string): boolean {\n return UUID.test(value);\n}\n\nexport const __testInternals = {\n deterministicUuidFromSha256,\n parseBindings,\n parseDerivativeTarget,\n parseExpected,\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiangong-lca/cli",
3
- "version": "0.0.26",
3
+ "version": "0.0.27",
4
4
  "description": "Unified TianGong LCA CLI with direct REST adapters and low-entropy command surface.",
5
5
  "repository": {
6
6
  "type": "git",