@dbsp/types 3.4.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { bV as RecursiveTraversal, e as AdjacencyTraversal, c_ as WindowFunction, l as AggregateWindowFunction, bb as OffsetWindowFunction, ak as ExpressionIntent, F as CoalesceExpressionIntent, G as ColumnAliasIntent, a0 as CustomTraversal, bB as QueryIntent, bP as RecursiveIntent, aW as MutationIntent, a7 as DeleteIntent, ag as EdgeTableTraversal, aB as InsertIntent, bF as RankingWindowFunction, bI as RawExpressionIntent, bX as RelationColumnIntent, c8 as SelectIntent, c5 as SelectAggregateIntent, c6 as SelectAllIntent, c7 as SelectFieldsIntent, c9 as SelectWithExpressionsIntent, cm as SubqueryRefIntent, cz as UpdateIntent, cD as UpsertIntent, cN as WhereIntent, cF as WhereAndIntent, cG as WhereAnyIntent, cH as WhereComparisonIntent, cI as WhereExistsIntent, cK as WhereInIntent, cQ as WhereLikeIntent, cU as WhereOrIntent, cS as WhereNotIntent, cR as WhereNotExistsIntent, cT as WhereNullIntent, cV as WhereRangeIntent, cY as WhereRelationFilterIntent, cZ as WhereSubqueryIntent, c$ as WindowIntent, J as ColumnJsReadType, cp as TableIR, aV as ModelIR, K as ColumnListInput, bY as RelationIR, aq as ForeignKeyIR, cb as SemanticArtifactRef, cv as TrustRoot, be as OperationKindRef } from './adapter-CjwnHeg4.js';
2
- export { A as Adapter, b as AdapterCapabilities, c as AdapterLogger, d as AdapterStreamOptions, f as AggOrderByArg, g as AggregateCountIntent, h as AggregateExpressionIntent, i as AggregateFieldIntent, j as AggregateFunction, k as AggregateIntent, m as AggregateWindowIntent, n as AliasIncludedColumnsMode, o as AlterColumnOptions, p as AmbiguityCheckResult, q as ArithmeticExpressionIntent, r as ArrayExpressionIntent, s as ArrayOperator, t as AuthorAttestedNativeDefault, u as AuthorAttester, B as BaseAdapter, v as BatchUpdateIntent, w as BatchValuesJoinPayload, x as CTEDefinition, y as Cardinality, z as CaseExpressionIntent, D as CastExpressionIntent, E as CheckConstraintIR, H as ColumnExpressionIntent, I as ColumnIR, L as ColumnType, M as CommonColumnType, O as ComparisonExpressionIntent, Q as ComparisonOperator, R as CompileOnlyAdapter, S as CompileOptions, T as CompileOptionsBase, U as CompileResultWithIncludes, a as CompiledColumnMetadata, V as CompiledNqlQuery, C as CompiledQuery, W as CompilingAdapter, X as ConnectionAvailability, Y as CreateIndexOptions, Z as CteQueryIntent, _ as CustomFnExpressionIntent, $ as CustomOpExpressionIntent, a1 as DDLFeature, a2 as DDLFeatureElementMap, a3 as DDLFeatureVersionRange, a4 as DDLGeneratingAdapter, a5 as DbCasing, a6 as DecisionType, a8 as DialectCapabilities, a9 as DialectName, aa as DiffSummary, ab as DropIndexOptions, ac as DuckDBColumnType, ad as Dump, ae as DumpMeta, af as DumpSequenceStep, ah as EmitJoinClause, ai as EnumIR, aj as ExecutingAdapter, al as FeatureBehaviorConfig, am as FeatureTranslator, an as FeatureWarning, ao as FieldRef, ap as FilterStrategy, ar as FunctionExpressionIntent, as as HierarchyIR, at as IncludeIntent, au as IncludeRecursiveOptions, av as IncludeStrategy, aw as IndexColumnDef, ax as IndexIR, ay as IndexInfo, az as IndexMethod, aA as InsertFromIntent, aC as IntrospectingAdapter, aD as IntrospectionOptions, aE as IntrospectionResult, aF as IsTypeSupported, aG as JoinDefault, aH as JoinIntent, aI as JsonAggOrderByEntry, aJ as JsonContainsIntent, aK as JsonExistsIntent, aL as JsonExtractIntent, aM as JsonPathExtractIntent, aN as LiteralExpressionIntent, aO as LockIntent, aP as LockStrength, aQ as LockWaitPolicy, aR as LogicalIdentity, aS as LogicalIdentityCarrier, aT as LogicalOperator, aU as MSSQLColumnType, aX as MutationReturningItem, aY as MySQLColumnType, aZ as NamedArgExpressionIntent, a_ as NestedOutputReadHandling, a$ as NqlBindingColumnLineage, b0 as NqlBindingColumnTypeInfo, b1 as NqlBindingColumnUntypeableReason, b2 as NqlBindingOutputSchema, b3 as NqlBindingRelationFilterMetadata, N as NqlBindingRelationType, b4 as NqlBindingVirtualRelation, b5 as NqlBindingVirtualRelationHop, b6 as NqlBindingVirtualRelationRecursive, b7 as NqlProgramSequenceStep, b8 as NqlRuntimeBinding, b9 as NullOperator, ba as NullsPosition, bc as OffsetWindowIntent, bd as OnDeleteAction, bf as Optionality, bg as OrderByExpressionIntent, bh as OrderByFieldIntent, bi as OrderByIntent, bj as OutputDescriptor, bk as OutputReadHandling, bl as OutputSource, bm as OutputValueShape, bn as ParamExpressionIntent, bo as ParamIntent, bp as PartitionIR, bq as PinnedConnectionOptions, br as PlanDecision, bs as PlanOptions, P as PlanReport, bt as PlanWarning, bu as PlanWarningCode, bv as PolicyIR, bw as PostgresColumnType, bx as PostgresOnlyColumnType, by as PseudoColumnExpressionIntent, bz as PseudoColumnMetadata, bA as PseudoColumnTraversal, bC as RangeOperand, bD as RangeOperator, bE as RangeValue, bG as RankingWindowIntent, bH as RawCteIntent, bJ as RawSqlAdapter, bK as RecursiveAdvancedOptions, bL as RecursiveDedupe, bM as RecursiveDirection, bN as RecursiveEmitOptions, bO as RecursiveExistsOptions, bQ as RecursiveMetadata, bR as RecursiveNodeIdExpr, bS as RecursivePlanOptions, bT as RecursivePlanReport, bU as RecursiveTrackOptions, bW as RefExpressionIntent, bZ as RelationKind, b_ as RelationOperator, b$ as RelationType, c0 as RequiredEnumLabelIR, c1 as ResolvedIncludeStrategy, c2 as SQLiteColumnType, c3 as SchemaChange, c4 as SchemaDiff, ca as SemanticArtifactId, cc as SequenceIR, cd as SetOperationIntent, ce as SetOperationType, cf as SimpleCteIntent, cg as SortDirection, ch as StarExpressionIntent, ci as StreamingAdapter, cj as StringOperator, ck as SubqueryExpressionIntent, cl as SubqueryIncludeInfo, cn as SupportedColumnTypes, co as TableDDLGeneratorAdapter, cq as TransactionBeginOptions, cr as TransactionOptions, cs as TransactionalAdapter, ct as TranslationContext, cu as TruncateOptions, cw as UnaryExpressionIntent, cx as UnnestCteIntent, cy as UnsupportedFeatureBehavior, cA as UpsertConflictAction, cB as UpsertConflictTarget, cC as UpsertFromIntent, cE as VacuumOptions, cJ as WhereExpressionIntent, cL as WhereInSubqueryIntent, cM as WhereInValueIntent, cO as WhereJsonContainsIntent, cP as WhereJsonExistsIntent, cW as WhereRawExistsIntent, cX as WhereRawNotExistsIntent, d0 as WindowOrderBy, d1 as getNodeIdAlias, d2 as isFieldRef, d3 as isParamIntent, d4 as resolveOutputReadHandling, d5 as toColumnList } from './adapter-CjwnHeg4.js';
1
+ import { bW as RecursiveTraversal, e as AdjacencyTraversal, d2 as WindowFunction, l as AggregateWindowFunction, bb as OffsetWindowFunction, ak as ExpressionIntent, F as CoalesceExpressionIntent, G as ColumnAliasIntent, a0 as CustomTraversal, bC as QueryIntent, bQ as RecursiveIntent, aW as MutationIntent, a7 as DeleteIntent, ag as EdgeTableTraversal, aB as InsertIntent, bG as RankingWindowFunction, bJ as RawExpressionIntent, bY as RelationColumnIntent, c9 as SelectIntent, c6 as SelectAggregateIntent, c7 as SelectAllIntent, c8 as SelectFieldsIntent, ca as SelectWithExpressionsIntent, co as SubqueryRefIntent, cD as UpdateIntent, cH as UpsertIntent, cR as WhereIntent, cJ as WhereAndIntent, cK as WhereAnyIntent, cL as WhereComparisonIntent, cM as WhereExistsIntent, cO as WhereInIntent, cU as WhereLikeIntent, cY as WhereOrIntent, cW as WhereNotIntent, cV as WhereNotExistsIntent, cX as WhereNullIntent, cZ as WhereRangeIntent, d0 as WhereRelationFilterIntent, d1 as WhereSubqueryIntent, d3 as WindowIntent, J as ColumnJsReadType, cr as TableIR, aV as ModelIR, K as ColumnListInput, bZ as RelationIR, aq as ForeignKeyIR, cc as SemanticArtifactRef, cz as TrustRoot, be as OperationKindRef, ct as TableReaddressDeclaration } from './adapter-B057_WKR.js';
2
+ export { A as Adapter, b as AdapterCapabilities, c as AdapterLogger, d as AdapterStreamOptions, f as AggOrderByArg, g as AggregateCountIntent, h as AggregateExpressionIntent, i as AggregateFieldIntent, j as AggregateFunction, k as AggregateIntent, m as AggregateWindowIntent, n as AliasIncludedColumnsMode, o as AlterColumnOptions, p as AmbiguityCheckResult, q as ArithmeticExpressionIntent, r as ArrayExpressionIntent, s as ArrayOperator, t as AuthorAttestedNativeDefault, u as AuthorAttester, B as BaseAdapter, v as BatchUpdateIntent, w as BatchValuesJoinPayload, x as CTEDefinition, y as Cardinality, z as CaseExpressionIntent, D as CastExpressionIntent, E as CheckConstraintIR, H as ColumnExpressionIntent, I as ColumnIR, L as ColumnType, M as CommonColumnType, O as ComparisonExpressionIntent, Q as ComparisonOperator, R as CompileOnlyAdapter, S as CompileOptions, T as CompileOptionsBase, U as CompileResultWithIncludes, a as CompiledColumnMetadata, V as CompiledNqlQuery, C as CompiledQuery, W as CompilingAdapter, X as ConnectionAvailability, Y as CreateIndexOptions, Z as CteQueryIntent, _ as CustomFnExpressionIntent, $ as CustomOpExpressionIntent, a1 as DDLFeature, a2 as DDLFeatureElementMap, a3 as DDLFeatureVersionRange, a4 as DDLGeneratingAdapter, a5 as DbCasing, a6 as DecisionType, a8 as DialectCapabilities, a9 as DialectName, aa as DiffSummary, ab as DropIndexOptions, ac as DuckDBColumnType, ad as Dump, ae as DumpMeta, af as DumpSequenceStep, ah as EmitJoinClause, ai as EnumIR, aj as ExecutingAdapter, al as FeatureBehaviorConfig, am as FeatureTranslator, an as FeatureWarning, ao as FieldRef, ap as FilterStrategy, ar as FunctionExpressionIntent, as as HierarchyIR, at as IncludeIntent, au as IncludeRecursiveOptions, av as IncludeStrategy, aw as IndexColumnDef, ax as IndexIR, ay as IndexInfo, az as IndexMethod, aA as InsertFromIntent, aC as IntrospectingAdapter, aD as IntrospectionOptions, aE as IntrospectionResult, aF as IsTypeSupported, aG as JoinDefault, aH as JoinIntent, aI as JsonAggOrderByEntry, aJ as JsonContainsIntent, aK as JsonExistsIntent, aL as JsonExtractIntent, aM as JsonPathExtractIntent, aN as LiteralExpressionIntent, aO as LockIntent, aP as LockStrength, aQ as LockWaitPolicy, aR as LogicalIdentity, aS as LogicalIdentityCarrier, aT as LogicalOperator, aU as MSSQLColumnType, aX as MutationReturningItem, aY as MySQLColumnType, aZ as NamedArgExpressionIntent, a_ as NestedOutputReadHandling, a$ as NqlBindingColumnLineage, b0 as NqlBindingColumnTypeInfo, b1 as NqlBindingColumnUntypeableReason, b2 as NqlBindingOutputSchema, b3 as NqlBindingRelationFilterMetadata, N as NqlBindingRelationType, b4 as NqlBindingVirtualRelation, b5 as NqlBindingVirtualRelationHop, b6 as NqlBindingVirtualRelationRecursive, b7 as NqlProgramSequenceStep, b8 as NqlRuntimeBinding, b9 as NullOperator, ba as NullsPosition, bc as OffsetWindowIntent, bd as OnDeleteAction, bf as Optionality, bg as OrderByExpressionIntent, bh as OrderByFieldIntent, bi as OrderByIntent, bj as OutputDescriptor, bk as OutputReadHandling, bl as OutputSource, bm as OutputValueShape, bn as ParamExpressionIntent, bo as ParamIntent, bp as PartitionIR, bq as PinnedConnectionOptions, br as PlanDecision, bs as PlanOptions, P as PlanReport, bt as PlanWarning, bu as PlanWarningCode, bv as PolicyIR, bw as PostgresColumnType, bx as PostgresOnlyColumnType, by as PredicateOperator, bz as PseudoColumnExpressionIntent, bA as PseudoColumnMetadata, bB as PseudoColumnTraversal, bD as RangeOperand, bE as RangeOperator, bF as RangeValue, bH as RankingWindowIntent, bI as RawCteIntent, bK as RawSqlAdapter, bL as RecursiveAdvancedOptions, bM as RecursiveDedupe, bN as RecursiveDirection, bO as RecursiveEmitOptions, bP as RecursiveExistsOptions, bR as RecursiveMetadata, bS as RecursiveNodeIdExpr, bT as RecursivePlanOptions, bU as RecursivePlanReport, bV as RecursiveTrackOptions, bX as RefExpressionIntent, b_ as RelationKind, b$ as RelationOperator, c0 as RelationType, c1 as RequiredEnumLabelIR, c2 as ResolvedIncludeStrategy, c3 as SQLiteColumnType, c4 as SchemaChange, c5 as SchemaDiff, cb as SemanticArtifactId, cd as SequenceIR, ce as SetOperationIntent, cf as SetOperationType, cg as SimpleCteIntent, ch as SortDirection, ci as StandaloneWhereExpressionIntent, cj as StarExpressionIntent, ck as StreamingAdapter, cl as StringOperator, cm as SubqueryExpressionIntent, cn as SubqueryIncludeInfo, cp as SupportedColumnTypes, cq as TableDDLGeneratorAdapter, cs as TableReaddressAddress, cu as TransactionBeginOptions, cv as TransactionOptions, cw as TransactionalAdapter, cx as TranslationContext, cy as TruncateOptions, cA as UnaryExpressionIntent, cB as UnnestCteIntent, cC as UnsupportedFeatureBehavior, cE as UpsertConflictAction, cF as UpsertConflictTarget, cG as UpsertFromIntent, cI as VacuumOptions, cN as WhereExpressionIntent, cP as WhereInSubqueryIntent, cQ as WhereInValueIntent, cS as WhereJsonContainsIntent, cT as WhereJsonExistsIntent, c_ as WhereRawExistsIntent, c$ as WhereRawNotExistsIntent, d4 as WindowOrderBy, d5 as getNodeIdAlias, d6 as isFieldRef, d7 as isParamIntent, d8 as resolveOutputReadHandling, d9 as toColumnList } from './adapter-B057_WKR.js';
3
3
 
4
4
  /**
5
5
  * NQL-origin SELECT function allowlist.
@@ -203,6 +203,10 @@ declare function resolveJsonAggOrderKey(table: TableIR): JsonAggOrderKey;
203
203
  */
204
204
  interface LoadedSchema {
205
205
  readonly definition: Record<string, unknown>;
206
+ /** Retained schema() inputs used when per-object declarations are sliced. */
207
+ readonly constraints?: unknown;
208
+ readonly extras?: unknown;
209
+ readonly options?: unknown;
206
210
  readonly model: ModelIR;
207
211
  readonly tableNames: readonly string[];
208
212
  }
@@ -252,18 +256,46 @@ interface FingerprintManifest {
252
256
  readonly digest: string;
253
257
  }
254
258
 
255
- type JsonValue = null | boolean | number | string | readonly JsonValue[] | {
259
+ type JsonObject = {
256
260
  readonly [k: string]: JsonValue;
257
261
  };
262
+ type JsonValue = null | boolean | number | string | readonly JsonValue[] | JsonObject;
258
263
 
264
+ /** The managed catalogue kinds. This union is intentionally closed. */
265
+ type DeclarableKind = 'table' | 'column' | 'index' | 'constraint' | 'enum' | 'sequence' | 'extension';
266
+ /** Adapter-owned, versioned durable catalogue identity. */
267
+ interface CatalogueIdentity {
268
+ readonly engine: string;
269
+ readonly format: number;
270
+ readonly value: JsonObject;
271
+ }
272
+ /**
273
+ * The durable PostgreSQL role identity which controls a managed ledger entry.
274
+ * A role name alone is reusable after DROP/CREATE; the OID binds the record to
275
+ * the role that was actually present when the event was written.
276
+ */
277
+ interface ControllerIdentity {
278
+ readonly name: string;
279
+ readonly oid: string;
280
+ }
281
+ /** Compare the complete durable controller identity in one place. */
282
+ declare function sameControllerIdentity(recorded: ControllerIdentity, current: ControllerIdentity): boolean;
259
283
  interface ResourceAddress {
260
284
  readonly engine: string;
261
285
  readonly database: string;
262
286
  readonly schema?: string;
287
+ /** The containing object, for example an index or column's table. */
288
+ readonly parent?: ResourceAddress;
263
289
  readonly kind: string;
264
290
  readonly name: string;
291
+ /** Recorded catalogue identity. It is absent only for legacy/non-managed scope. */
292
+ readonly catalogueIdentity?: CatalogueIdentity;
265
293
  readonly qualifiedBy?: readonly string[];
266
294
  }
295
+ /** A managed declaration cannot spell a kind outside the declarable set. */
296
+ type DeclarableResourceAddress<K extends DeclarableKind = DeclarableKind> = Omit<ResourceAddress, 'kind'> & {
297
+ readonly kind: K;
298
+ };
267
299
  interface ResourceSelector {
268
300
  readonly kind?: string;
269
301
  readonly schema?: string;
@@ -369,7 +401,7 @@ interface ProofObligation {
369
401
  }
370
402
  interface Assumption {
371
403
  readonly id: AssumptionId;
372
- readonly class: 'rule-effect-declaration' | 'user-blast-radius' | 'external-ddl-exclusion' | 'operation-pack-semantics' | 'baseline-identity-attachment' | (string & {});
404
+ readonly class: 'rule-effect-declaration' | 'user-blast-radius' | 'external-ddl-exclusion' | 'operation-pack-semantics' | 'baseline-identity-attachment' | 'non-transactional-segment' | (string & {});
373
405
  readonly asserter: TrustRoot;
374
406
  readonly statement: string;
375
407
  readonly scope: readonly ResourceAddress[];
@@ -491,6 +523,13 @@ interface ExternalEffectCoverage {
491
523
  }
492
524
  type OperationExecutionOutcome = {
493
525
  readonly kind: 'completed';
526
+ } | {
527
+ readonly kind: 'recovery-required';
528
+ readonly claimId: string;
529
+ readonly detail: string;
530
+ } | {
531
+ readonly kind: 'transport-ambiguous';
532
+ readonly detail: string;
494
533
  } | {
495
534
  readonly kind: 'guard-failed';
496
535
  readonly guard: ApplyGuard;
@@ -655,6 +694,43 @@ type InapplicableAssessment = PlanAssessment & {
655
694
  readonly decision: 'inapplicable';
656
695
  };
657
696
 
697
+ interface AssumptionAcceptance {
698
+ readonly class: string;
699
+ readonly fromTrustRoot?: TrustRoot;
700
+ readonly withinScope?: readonly ResourceSelector[];
701
+ }
702
+ interface ApplyPolicy {
703
+ readonly accepts: readonly AssumptionAcceptance[];
704
+ }
705
+ /**
706
+ * The scoped approvals carried into admitted execution. This distinct input
707
+ * prevents execution boundaries from silently degrading reviewed scope to a
708
+ * bare list of approval-class strings.
709
+ */
710
+ interface ScopedApprovalSet {
711
+ readonly approvals: readonly AssumptionAcceptance[];
712
+ /** The authority root declared for this admitted policy evaluation. */
713
+ readonly declaredTrustRoot?: TrustRoot;
714
+ }
715
+
716
+ /**
717
+ * The closed set of durable declarative fragments. Consumers receive this
718
+ * type rather than a stringly kind so an undeclarable surface is impossible to
719
+ * express without extending the one union above.
720
+ */
721
+ interface ManagedDeclaration<K extends DeclarableKind = DeclarableKind> {
722
+ readonly address: DeclarableResourceAddress<K>;
723
+ readonly fragment: JsonValue;
724
+ /** SHA-256 of the canonical parsed fragment, never of storage bytes. */
725
+ readonly digest: string;
726
+ }
727
+ interface DeclarationSet {
728
+ readonly version: 1;
729
+ readonly declarations: readonly ManagedDeclaration[];
730
+ /** SHA-256 of the canonical parsed declaration set. */
731
+ readonly digest: string;
732
+ }
733
+
658
734
  /**
659
735
  * Durable, reviewed conditions for executing a serialized transition plan.
660
736
  *
@@ -704,24 +780,566 @@ interface ExecutionContract {
704
780
  readonly requirements: readonly ExecutionRequirement[];
705
781
  }
706
782
 
783
+ /** The unit-9/SC-64 vocabulary is the one source for durable refusal prose. */
784
+ declare const REFUSAL_VOCABULARY: {
785
+ readonly 'ERR-01': {
786
+ readonly cause: "unaccepted non-transactional segment";
787
+ readonly withheldAuthority: "non-transactional execution authority";
788
+ readonly resolvingCommand: "dbsp apply";
789
+ };
790
+ readonly 'ERR-02': {
791
+ readonly cause: "pre-existing object has no admitted adoption";
792
+ readonly withheldAuthority: "creation authority over an occupied address";
793
+ readonly resolvingCommand: "dbsp apply";
794
+ };
795
+ readonly 'ERR-03': {
796
+ readonly cause: "managed-ledger preflight is not current";
797
+ readonly withheldAuthority: "managed-ledger mutation authority";
798
+ readonly resolvingCommand: "dbsp preflight --reinitialize";
799
+ };
800
+ readonly 'ERR-04': {
801
+ readonly cause: "removal containment cannot be proven";
802
+ readonly withheldAuthority: "destructive removal authority";
803
+ readonly resolvingCommand: "dbsp apply";
804
+ };
805
+ readonly 'ERR-05': {
806
+ readonly cause: "recorded identity differs from the live object";
807
+ readonly withheldAuthority: "managed mutation authority";
808
+ readonly resolvingCommand: "dbsp apply";
809
+ };
810
+ readonly 'ERR-06': {
811
+ readonly cause: "managed-ledger lineage does not match this target";
812
+ readonly withheldAuthority: "managed-ledger mutation authority";
813
+ readonly resolvingCommand: "dbsp preflight --reinitialize";
814
+ };
815
+ readonly 'ERR-07': {
816
+ readonly cause: "target database is read-only";
817
+ readonly withheldAuthority: "database write authority";
818
+ readonly resolvingCommand: "dbsp apply";
819
+ };
820
+ readonly 'ERR-08': {
821
+ readonly cause: "ledger chain is malformed";
822
+ readonly withheldAuthority: "managed mutation authority";
823
+ readonly resolvingCommand: "dbsp inspect";
824
+ };
825
+ readonly 'ERR-09': {
826
+ readonly cause: "catalogue read is unavailable";
827
+ readonly withheldAuthority: "outcome classification authority";
828
+ readonly resolvingCommand: "dbsp reconcile";
829
+ };
830
+ readonly 'ERR-10': {
831
+ readonly cause: "recorded-plan path cannot execute a removal";
832
+ readonly withheldAuthority: "recorded-plan removal execution";
833
+ readonly resolvingCommand: "dbsp apply";
834
+ };
835
+ readonly 'ERR-11': {
836
+ readonly cause: "recovery proved the interrupted operation had no effect";
837
+ readonly withheldAuthority: "recovery execution authority";
838
+ readonly resolvingCommand: "dbsp reconcile";
839
+ };
840
+ };
841
+ type RefusalCode = keyof typeof REFUSAL_VOCABULARY;
842
+ /** Bind a catalogue entry to the address state that existed at refusal time. */
843
+ declare function refusalFor(code: RefusalCode, input: Pick<LedgerRefusal, 'state'> & {
844
+ readonly address?: LedgerAddress;
845
+ }): LedgerRefusal;
846
+
847
+ /** The outcome protocol is closed at the fourteen ADR 0006 event kinds. */
848
+ declare const LEDGER_EVENT_KINDS: readonly ["adopt-intent", "adopt", "intent", "retire-intent", "readdress-intent", "refused", "executing", "observed", "absent", "indeterminate", "resolved", "readdressed-to", "readdressed-from", "released"];
849
+ type LedgerEventKind = (typeof LEDGER_EVENT_KINDS)[number];
850
+ type LedgerClaimKind = Extract<LedgerEventKind, 'adopt-intent' | 'intent' | 'retire-intent' | 'readdress-intent'>;
707
851
  /**
708
- * ProvenPlanShape is the serializable audit/dump shape of a plan the prover can
709
- * derive. It is not an apply credential: runtime safety comes from @dbsp/core
710
- * apply() accepting only an InProcessProvenPlan minted by this module instance's
711
- * prove() through a module-private WeakSet identity capability plus deep-freeze.
712
- *
713
- * A serialized, cloned, or hand-forged shape is not authorized for apply(). A
714
- * separate future adoptSerializedPlan(serialized, observationContext) API
715
- * (stage: identity & adoption) will re-derive an in-process plan from fresh
716
- * observations; apply() must not be overloaded to accept serialized data.
852
+ * A canonical address is recorded as columns by PostgreSQL and as this shape at
853
+ * the adapter boundary. `scope` selects exactly one physical ledger.
854
+ */
855
+ interface LedgerAddress extends ResourceAddress {
856
+ readonly scope: 'schema' | 'database';
857
+ }
858
+ /**
859
+ * Construct the one parent shape used by ledger-bearing child addresses.
717
860
  *
718
- * The derived plan shape is expected to satisfy these relational invariants,
719
- * which are beyond structural typing:
720
- * - Every ApplyGuard.appliesTo and ProofObligation.appliesTo matches exactly one PhysicalOperation.ref in the same step/fragment (no dangling or duplicate ref).
721
- * - Every external-ddl-exclusion binding's AssumptionId is present in the step's restsOnAssumptions closure and in GuardedPlan.assumptions.
722
- * - Journal record stepIds are consistent with intent.stepId; ApplyResult.observations is a superset of every ObservedOutcomeRecord.observations.
861
+ * A parent identifies containment only. Ledger scope belongs to the child
862
+ * address, while a catalogue identity is an observed, non-address fact. Keep
863
+ * both out of this recursive serialization so every producer names a physical
864
+ * child the same way.
865
+ */
866
+ declare function canonicalResourceParent(address: ResourceAddress): ResourceAddress;
867
+ /**
868
+ * The sole structural equality for a ledger address. Parent absence is
869
+ * canonicalized so `undefined` and `null` mean the same root address.
870
+ */
871
+ declare function sameLedgerAddress(left: LedgerAddress, right: LedgerAddress): boolean;
872
+ /** A canonical map key with the same key-order-insensitive parent semantics. */
873
+ declare function ledgerAddressKey(address: LedgerAddress): string;
874
+ /**
875
+ * Canonical parent representation for PostgreSQL's `address_parent` column.
876
+ * Catalogue observations never create another physical ledger address.
877
+ */
878
+ declare function ledgerAddressParentJson(address: LedgerAddress): string;
879
+ interface LedgerPayload {
880
+ readonly value: JsonValue;
881
+ readonly digest: string;
882
+ }
883
+ /**
884
+ * The durable, operator-facing explanation attached to a `refused` terminal.
885
+ * The address itself remains in the event's canonical address columns; these
886
+ * values preserve the other facts needed to explain a historic refusal.
887
+ */
888
+ interface LedgerRefusal {
889
+ /** Closed durable vocabulary; stored strings are validated at the reader. */
890
+ readonly code: RefusalCode;
891
+ readonly cause: string;
892
+ readonly state: 'unknown' | 'managed' | 'absent';
893
+ readonly withheldAuthority: string;
894
+ readonly resolvingCommand: string;
895
+ }
896
+ interface LedgerChainMember {
897
+ readonly eventId: string;
898
+ readonly executionId?: string;
899
+ readonly plannedClaimKey?: string;
900
+ readonly claimGroupId?: string;
901
+ readonly rootClaimId?: string;
902
+ readonly address: LedgerAddress;
903
+ readonly catalogueIdentity?: CatalogueIdentity;
904
+ readonly eventKind: LedgerEventKind;
905
+ readonly predecessor?: string;
906
+ readonly pairId?: string;
907
+ readonly declared?: LedgerPayload;
908
+ readonly observed?: LedgerPayload;
909
+ /** Present exactly on a durable `refused` terminal. */
910
+ readonly refusal?: LedgerRefusal;
911
+ readonly controller: string;
912
+ /** The durable OID paired with `controller` when the event was recorded. */
913
+ readonly controllerOid?: string;
914
+ readonly recordedAt?: string;
915
+ }
916
+ /** A durable effects-closure reservation, anchored in its root claim's ledger. */
917
+ interface LedgerReservationRow {
918
+ readonly address: LedgerAddress;
919
+ readonly claimKind: LedgerClaimKind;
920
+ readonly executionId: string;
921
+ readonly pairId?: string;
922
+ readonly rootClaimId: string;
923
+ readonly homeLedger: LedgerHome;
924
+ }
925
+ interface LedgerHome {
926
+ readonly scope: 'schema' | 'database';
927
+ /** Present exactly for a schema ledger. */
928
+ readonly schema?: string;
929
+ }
930
+ /** The lineage facts stored beside every ledger; their admission rules ship later. */
931
+ interface LedgerIdentity {
932
+ readonly clusterSystemIdentifier: string;
933
+ readonly databaseOid: string;
934
+ readonly namespaceOid?: string;
935
+ }
936
+ interface LedgerShapeMarker {
937
+ readonly version: number;
938
+ }
939
+ /**
940
+ * The only marker vocabulary understood by the reinitialize-preflight path.
941
+ * `absent` is deliberately distinct from a malformed or old marker: a
942
+ * missing marker is how a new scope enters the cutover.
943
+ */
944
+ type LedgerMarkerState = {
945
+ readonly kind: 'current';
946
+ } | {
947
+ readonly kind: 'absent';
948
+ } | {
949
+ readonly kind: 'older';
950
+ readonly version: number;
951
+ } | {
952
+ readonly kind: 'future';
953
+ readonly version: number;
954
+ } | {
955
+ readonly kind: 'mixed';
956
+ readonly versions: readonly number[];
957
+ } | {
958
+ readonly kind: 'unreadable';
959
+ readonly reason: string;
960
+ };
961
+ /** The closed result set for one explicit reinitialize-preflight scope. */
962
+ type ReinitializePreflightScopeOutcome = 'current' | 'unchanged' | 'failed' | 'not-attempted';
963
+ type ReinitializePreflightRefusalCode = 'database-read-only' | 'reinitialize-preflight-marker-not-current' | 'reinitialize-preflight-advisory-lock' | 'reinitialize-preflight-ownership' | 'reinitialize-preflight-grants' | 'reinitialize-preflight-lineage' | 'reinitialize-preflight-failed';
964
+ /** The exact operation that produced a reported preflight failure. */
965
+ type ReinitializePreflightFailureStep = 'advisory-lock' | 'marker' | 'identity' | 'ownership-grants' | 'archive' | 'create' | 'record-identity' | 'creation-grants' | 'write-marker' | 'output';
966
+ /** PostgreSQL's unmodified message, paired with the engine step that failed. */
967
+ interface ReinitializePreflightFailureReason {
968
+ readonly step: ReinitializePreflightFailureStep;
969
+ readonly message: string;
970
+ }
971
+ interface ReinitializePreflightScopeReportBase {
972
+ readonly ledger: LedgerHome;
973
+ readonly marker: LedgerMarkerState;
974
+ readonly refusal?: {
975
+ readonly code: ReinitializePreflightRefusalCode;
976
+ readonly detail: string;
977
+ };
978
+ }
979
+ /** A failed scope is structurally required to retain its diagnostic. */
980
+ type ReinitializePreflightScopeReport = (ReinitializePreflightScopeReportBase & {
981
+ readonly outcome: 'failed';
982
+ readonly reason: ReinitializePreflightFailureReason;
983
+ }) | (ReinitializePreflightScopeReportBase & {
984
+ readonly outcome: Exclude<ReinitializePreflightScopeOutcome, 'failed'>;
985
+ readonly reason?: never;
986
+ });
987
+ /** A current DSL declaration for which no chain exists in its home ledger. */
988
+ interface ReinitializePreflightAdoptionCandidate {
989
+ readonly address: LedgerAddress;
990
+ readonly declaration: LedgerPayload;
991
+ }
992
+ interface ReinitializePreflightReport {
993
+ readonly scopes: readonly ReinitializePreflightScopeReport[];
994
+ readonly adoptionCandidates: readonly ReinitializePreflightAdoptionCandidate[];
995
+ }
996
+
997
+ /** The only durable management states an address can have. */
998
+ type LedgerStableState = 'unknown' | 'managed' | 'absent';
999
+ /** A claim is open until its own grammar column closes it. */
1000
+ interface LedgerOpenClaim {
1001
+ readonly event: LedgerChainMember;
1002
+ readonly kind: LedgerClaimKind;
1003
+ readonly stableStateBeforeClaim: LedgerStableState;
1004
+ readonly phase: 'claimed' | 'executing' | 'indeterminate';
1005
+ }
1006
+ /** What readers present: stable state plus any still-open claim. */
1007
+ type LedgerReportedState = {
1008
+ readonly kind: LedgerStableState;
1009
+ } | {
1010
+ readonly kind: 'pending';
1011
+ readonly stableState: LedgerStableState;
1012
+ readonly claim: LedgerOpenClaim;
1013
+ } | {
1014
+ readonly kind: 'blocked';
1015
+ readonly stableState: LedgerStableState;
1016
+ readonly claim: LedgerOpenClaim;
1017
+ };
1018
+ /** The legal lifecycle grammar is deliberately a closed, per-claim matrix. */
1019
+ interface LedgerLifecycleGrammarColumn {
1020
+ readonly claimKind: LedgerClaimKind;
1021
+ readonly opensFrom: readonly LedgerStableState[];
1022
+ readonly resolvesThrough: readonly LedgerEventKind[];
1023
+ }
1024
+ interface ProjectedLedgerChain {
1025
+ readonly kind: 'projected-ledger-chain';
1026
+ readonly ledger: LedgerHome;
1027
+ readonly address: LedgerAddress;
1028
+ readonly events: readonly LedgerChainMember[];
1029
+ readonly stableState: LedgerStableState;
1030
+ readonly openClaim?: LedgerOpenClaim;
1031
+ readonly reportedState: LedgerReportedState;
1032
+ /** The last declaration fact recorded by a claim chain, if any. */
1033
+ readonly declaration?: LedgerPayload;
1034
+ /** The last read-back recorded by a claim chain, if any. */
1035
+ readonly observation?: LedgerPayload;
1036
+ }
1037
+ type UnprojectableChainReason = {
1038
+ readonly code: 'cycle';
1039
+ readonly eventIds: readonly string[];
1040
+ } | {
1041
+ readonly code: 'missing-predecessor';
1042
+ readonly eventId: string;
1043
+ readonly predecessor: string;
1044
+ } | {
1045
+ readonly code: 'fork';
1046
+ readonly predecessor?: string;
1047
+ readonly eventIds: readonly string[];
1048
+ } | {
1049
+ readonly code: 'unknown-event-kind';
1050
+ readonly eventId: string;
1051
+ readonly eventKind: string;
1052
+ } | {
1053
+ readonly code: 'address-mismatch';
1054
+ readonly eventId: string;
1055
+ } | {
1056
+ readonly code: 'duplicate-event-id';
1057
+ readonly eventId: string;
1058
+ } | {
1059
+ readonly code: 'invalid-lifecycle-edge';
1060
+ readonly eventId: string;
1061
+ readonly detail: string;
1062
+ };
1063
+ /**
1064
+ * A degraded read is data, not an exception. Its required reason lets every
1065
+ * mutation fail closed while inspect-like readers can still display the chain.
1066
+ */
1067
+ interface UnprojectableLedgerChain {
1068
+ readonly kind: 'unprojectable-ledger-chain';
1069
+ readonly ledger: LedgerHome;
1070
+ readonly address: LedgerAddress;
1071
+ readonly events: readonly LedgerChainMember[];
1072
+ readonly reason: UnprojectableChainReason;
1073
+ readonly codeVersion: 1;
1074
+ }
1075
+ type LedgerChainProjection = ProjectedLedgerChain | UnprojectableLedgerChain;
1076
+
1077
+ /** A planned managed statement has a stable position inside its claim bundle. */
1078
+ interface ClaimBundleStatement {
1079
+ readonly ordinal: number;
1080
+ readonly sql: string;
1081
+ }
1082
+ /**
1083
+ * The complete ordered set of statements a claim may execute. It is supplied
1084
+ * by planning and never extended by the execution path.
1085
+ */
1086
+ interface ClaimStatementBundle {
1087
+ readonly statements: readonly ClaimBundleStatement[];
1088
+ }
1089
+ /** A cascade-covered claim records a member fact but never executes SQL. */
1090
+ interface EmptyClaimStatementBundle {
1091
+ readonly statements: readonly [];
1092
+ }
1093
+ /**
1094
+ * Opaque capability minted only by the core claim-admission boundary.
1095
+ * Its members are intentionally not public: adapters present it to core rather
1096
+ * than reconstructing a claim identity from data controlled by a caller.
1097
+ */
1098
+ declare const claimTokenBrand: unique symbol;
1099
+ interface ClaimToken {
1100
+ readonly [claimTokenBrand]: 'dbsp-outcome-claim-token';
1101
+ }
1102
+ /**
1103
+ * Opaque execution authority minted only after an adapter has admitted a live
1104
+ * operation. It deliberately has no structural fields a caller can supply.
1105
+ */
1106
+ declare const admittedPermitBrand: unique symbol;
1107
+ interface AdmittedPermit {
1108
+ readonly [admittedPermitBrand]: 'dbsp-admitted-permit';
1109
+ }
1110
+ /** Fields shared by every fixed plan-time outcome claim. */
1111
+ interface OutcomeClaimPlanBase {
1112
+ readonly claimId: string;
1113
+ /** One actual apply attempt; deliberately distinct from the persisted run id. */
1114
+ readonly executionId?: string;
1115
+ /** Digest-covered logical position of this claim in the reviewed plan. */
1116
+ readonly plannedClaimKey?: string;
1117
+ /** The atomic closure identity; a single-address claim uses its root claim id. */
1118
+ readonly claimGroupId?: string;
1119
+ readonly address: LedgerAddress;
1120
+ readonly claimKind: LedgerClaimKind;
1121
+ /**
1122
+ * A creation verifies that its target address remains vacant before DDL.
1123
+ * Absent only on plans written before this material was introduced.
1124
+ */
1125
+ readonly requiresVacancy?: boolean;
1126
+ readonly declared?: LedgerPayload;
1127
+ readonly pairId?: string;
1128
+ }
1129
+ /** A claim that owns a manifest-bound SQL bundle. */
1130
+ interface SqlBearingOutcomeClaimPlan extends OutcomeClaimPlanBase {
1131
+ readonly claimSpecies: 'sql-bearing';
1132
+ readonly rootClaimId?: string;
1133
+ readonly statementBundle: ClaimStatementBundle;
1134
+ }
1135
+ /** Adoption records a present live object but deliberately sends no SQL. */
1136
+ interface AdoptionOutcomeClaimPlan extends OutcomeClaimPlanBase {
1137
+ readonly claimSpecies: 'adoption';
1138
+ readonly rootClaimId?: string;
1139
+ readonly claimKind: 'adopt-intent';
1140
+ readonly statementBundle: EmptyClaimStatementBundle;
1141
+ }
1142
+ /** A closure member whose terminal fact is covered by its root claim's SQL. */
1143
+ interface CascadeCoveredOutcomeClaimPlan extends OutcomeClaimPlanBase {
1144
+ readonly claimSpecies: 'cascade-covered';
1145
+ /** The SQL-bearing destructive root that covers this member. */
1146
+ readonly rootClaimId: string;
1147
+ readonly statementBundle: EmptyClaimStatementBundle;
1148
+ }
1149
+ /** The fixed plan-time material that becomes one ledger claim. */
1150
+ type OutcomeClaimPlan = SqlBearingOutcomeClaimPlan | AdoptionOutcomeClaimPlan | CascadeCoveredOutcomeClaimPlan;
1151
+ /** The only successful result of admission, including its single-use token. */
1152
+ interface AdmittedOutcomeClaim {
1153
+ readonly kind: 'admitted-outcome-claim';
1154
+ readonly plan: OutcomeClaimPlan;
1155
+ readonly stableStateBeforeClaim: LedgerStableState;
1156
+ readonly token: ClaimToken;
1157
+ }
1158
+ /** Every refusal retains the subject's server or admission words. */
1159
+ interface OutcomeProtocolRefusal {
1160
+ readonly kind: 'outcome-protocol-refused';
1161
+ readonly reason: string;
1162
+ }
1163
+ type OutcomeClaimAdmission = AdmittedOutcomeClaim | OutcomeProtocolRefusal;
1164
+ /** A typed live-vacancy result supplied by the catalogue-specific reader. */
1165
+ type OutcomeVacancy = {
1166
+ readonly kind: 'vacant';
1167
+ } | {
1168
+ readonly kind: 'occupied';
1169
+ readonly reason: string;
1170
+ };
1171
+ /** A projected chain is always supplied to core admission as one unit. */
1172
+ interface OutcomeClaimAdmissionInput {
1173
+ readonly plan: OutcomeClaimPlan;
1174
+ readonly projection: LedgerChainProjection;
1175
+ /** Current role read by the adapter on the locked claiming session. */
1176
+ readonly currentController?: ControllerIdentity;
1177
+ /** Fresh locked catalogue identity for an existing managed address. */
1178
+ readonly liveAddress?: LedgerAddress;
1179
+ }
1180
+ /** Typed catalogue evidence used by outcome-protocol recovery. */
1181
+ type OutcomeRecoveryEffect = 'applied' | 'no-effect' | 'unverifiable';
1182
+ type OutcomeRecoveryReadBack = {
1183
+ readonly kind: 'absent';
1184
+ readonly effect?: OutcomeRecoveryEffect;
1185
+ } | {
1186
+ readonly kind: 'present';
1187
+ readonly catalogueIdentity: CatalogueIdentity;
1188
+ /** The canonical shape read from the live catalogue. */
1189
+ readonly observed: LedgerPayload;
1190
+ /** Operation-specific read-back when the catalogue presence is insufficient. */
1191
+ readonly effect?: OutcomeRecoveryEffect;
1192
+ };
1193
+ /** A failed read is evidence of nothing, and therefore permits no append. */
1194
+ interface OutcomeCatalogueUnavailable {
1195
+ readonly kind: 'catalogue-unavailable';
1196
+ readonly reason: string;
1197
+ }
1198
+ type OutcomeRecoveryCatalogueRead = OutcomeRecoveryReadBack | OutcomeCatalogueUnavailable;
1199
+ /** The catalogue boundary is injected so core has no database dependency. */
1200
+ type OutcomeRecoveryCatalogueReader = (address: LedgerAddress) => Promise<OutcomeRecoveryCatalogueRead>;
1201
+ /** A recovery append has one canonical predecessor/payload comparison shape. */
1202
+ interface OutcomeRecoveryResolution {
1203
+ readonly eventKind: 'refused' | 'observed' | 'absent' | 'indeterminate' | 'resolved';
1204
+ readonly predecessor: string;
1205
+ readonly rootClaimId: string;
1206
+ readonly reason: string;
1207
+ readonly readBack: OutcomeRecoveryReadBack;
1208
+ /** Present exactly when recovery closes the open claim as refused. */
1209
+ readonly refusal?: LedgerRefusal;
1210
+ }
1211
+ type OutcomeRecoveryClassification = {
1212
+ readonly kind: 'outcome-recovery-append';
1213
+ readonly address: LedgerAddress;
1214
+ readonly resolution: OutcomeRecoveryResolution;
1215
+ } | {
1216
+ readonly kind: 'outcome-recovery-pending';
1217
+ readonly address: LedgerAddress;
1218
+ readonly reason: string;
1219
+ /** A catalogue failure is a named pre-append refusal, not a retry hint. */
1220
+ readonly reasonCode?: 'catalogue-unavailable';
1221
+ } | {
1222
+ readonly kind: 'outcome-recovery-blocked';
1223
+ readonly address: LedgerAddress;
1224
+ readonly reason: string;
1225
+ } | {
1226
+ readonly kind: 'outcome-recovery-no-open-claim';
1227
+ readonly address: LedgerAddress;
1228
+ } | {
1229
+ readonly kind: 'outcome-recovery-malformed-chain';
1230
+ readonly address: LedgerAddress;
1231
+ readonly reason: string;
1232
+ };
1233
+ /**
1234
+ * Claim-bound evidence required before an interrupted creation or modification
1235
+ * can be attributed to DBSP. The adapter reconstructs these values from the
1236
+ * durable run, admitted operation and scoped authorization while holding its
1237
+ * run and ledger locks; a same-name catalogue object is never this evidence.
723
1238
  */
1239
+ interface OutcomeIndeterminateRecoveryEvidence {
1240
+ readonly runId: string;
1241
+ readonly planDigest: string;
1242
+ readonly executionId: string;
1243
+ readonly claimId: string;
1244
+ readonly plannedClaimKey?: string;
1245
+ /** Digest recorded when the exact admitted statement bundle was minted. */
1246
+ readonly admittedBundleDigest: string;
1247
+ /** Digest re-read from the persisted operation at resolution time. */
1248
+ readonly persistedBundleDigest: string;
1249
+ readonly recordedPreState: 'unknown' | 'managed' | 'absent';
1250
+ readonly externalDdlExclusion: {
1251
+ readonly planDigest: string;
1252
+ readonly address: LedgerAddress;
1253
+ readonly trustRoot: string;
1254
+ };
1255
+ }
1256
+ interface OutcomeRecoveryInput {
1257
+ readonly projection: LedgerChainProjection;
1258
+ readonly catalogue: OutcomeRecoveryCatalogueReader;
1259
+ /** Accepted with the interrupted run, never inferred from a current policy. */
1260
+ readonly acceptedExternalDdlExclusion: boolean;
1261
+ /** Required for resolving an indeterminate creation or modification. */
1262
+ readonly indeterminateEvidence?: OutcomeIndeterminateRecoveryEvidence;
1263
+ /** Only an explicit reconciliation path may close an indeterminate claim. */
1264
+ readonly resolveIndeterminate?: boolean;
1265
+ }
724
1266
 
1267
+ /**
1268
+ * The generator and recorded transition planner share this immutable execution
1269
+ * vocabulary. It intentionally does not reuse GuardedPlanStep: generated DDL
1270
+ * has no transition-operation graph or fingerprint protocol, but it must carry
1271
+ * the complete claim, SQL, selection, and replay contract before it is shown.
1272
+ */
1273
+ type ManagedStepClassification = 'non-destructive' | 'removal' | 'data-destructive' | 'paired-readdress';
1274
+ type ManagedStepReplayPolicy = 'recorded' | 'fresh-live-only';
1275
+ interface ManagedStepClosureMember {
1276
+ readonly plannedClaimKey: string;
1277
+ readonly address: DeclarableResourceAddress & {
1278
+ readonly scope: 'schema' | 'database';
1279
+ };
1280
+ }
1281
+ interface ManagedStepSelectionRequirement {
1282
+ readonly kind: 'replacement' | 'adoption' | 'readdress' | 'optional-action';
1283
+ readonly selector: string;
1284
+ }
1285
+ /**
1286
+ * Reviewed lifecycle material. It lives beside the claim and SQL in the
1287
+ * normalized manifest; generator provenance is never an execution source.
1288
+ */
1289
+ type ManagedStepLifecycle = {
1290
+ readonly kind: 'adoption';
1291
+ readonly shape: TableIR;
1292
+ } | {
1293
+ readonly kind: 'adoption-refused';
1294
+ } | {
1295
+ readonly kind: 'readdress';
1296
+ readonly declaration: TableReaddressDeclaration;
1297
+ };
1298
+ /** A digest-covered, ordered unit of managed DDL. */
1299
+ interface NormalizedManagedStep {
1300
+ readonly stepKey: string;
1301
+ readonly order: number;
1302
+ readonly segmentId: string;
1303
+ readonly dependencyOrder: readonly string[];
1304
+ /** Root address, unless the operation declares a destructive closure root. */
1305
+ readonly address?: DeclarableResourceAddress & {
1306
+ readonly scope: 'schema' | 'database';
1307
+ };
1308
+ readonly closure?: {
1309
+ readonly root: DeclarableResourceAddress & {
1310
+ readonly scope: 'schema' | 'database';
1311
+ };
1312
+ readonly members: readonly ManagedStepClosureMember[];
1313
+ };
1314
+ readonly claimKind: LedgerClaimKind;
1315
+ readonly plannedClaimKeys: readonly string[];
1316
+ readonly statementBundle: ClaimStatementBundle;
1317
+ readonly classification: ManagedStepClassification;
1318
+ readonly requiresVacancy: boolean;
1319
+ readonly expectedDeclaration?: LedgerPayload;
1320
+ readonly expectedCatalogueIdentity?: CatalogueIdentity;
1321
+ readonly selection?: ManagedStepSelectionRequirement;
1322
+ readonly lifecycle?: ManagedStepLifecycle;
1323
+ readonly replayPolicy: ManagedStepReplayPolicy;
1324
+ }
1325
+ /**
1326
+ * Immutable managed-outcome material carried by a plan step. It is produced
1327
+ * while proving, covered by the plan digest, and is the only source an
1328
+ * executor may use for the address or statement bundle of a managed claim.
1329
+ */
1330
+ interface ManagedStepClaimMaterial {
1331
+ /** Legacy plan-local label retained for serialized-plan compatibility; never a ledger event id. */
1332
+ readonly claimId: string;
1333
+ /** Stable only inside this persisted plan; execution mints the claim id. */
1334
+ readonly plannedClaimKey: string;
1335
+ readonly address: DeclarableResourceAddress & {
1336
+ readonly scope: 'schema' | 'database';
1337
+ };
1338
+ readonly claimKind: LedgerClaimKind;
1339
+ readonly statementBundle: ClaimStatementBundle;
1340
+ /** True only when the plan writes an address it did not read. */
1341
+ readonly requiresVacancy: boolean;
1342
+ }
725
1343
  interface ExecutableAssertion {
726
1344
  readonly proposition: Proposition;
727
1345
  readonly scope: readonly ResourceAddress[];
@@ -729,6 +1347,8 @@ interface ExecutableAssertion {
729
1347
  interface DurableIntentRecord {
730
1348
  readonly runId?: string;
731
1349
  readonly run?: TransitionRunMetadata;
1350
+ /** One apply attempt, deliberately distinct from the durable reviewed run. */
1351
+ readonly executionId?: string;
732
1352
  readonly stepId: string;
733
1353
  readonly operation: PhysicalOperation;
734
1354
  readonly recordedAt: string;
@@ -751,6 +1371,8 @@ interface TransitionRunMetadata {
751
1371
  readonly databaseId: string;
752
1372
  readonly coreVersion: string;
753
1373
  readonly startedAt: string;
1374
+ /** Generator removal runs are inspectable but must be freshly re-planned. */
1375
+ readonly replayability?: 'replayable' | 'non-replayable-generator-removal';
754
1376
  }
755
1377
  type TransitionJournalEventName = 'intent' | 'completion' | 'observed';
756
1378
  type TransitionJournalEventRecord = DurableIntentRecord | TransactionalCompletionRecord | StepJournal;
@@ -767,6 +1389,24 @@ interface TransitionJournalEvent {
767
1389
  interface TransitionRunJournal {
768
1390
  readonly run: TransitionRunMetadata;
769
1391
  readonly events: readonly TransitionJournalEvent[];
1392
+ /** Run-level approval records are deliberately not step attempts. */
1393
+ readonly authorizations?: readonly TransitionRunAuthorization[];
1394
+ }
1395
+ /**
1396
+ * The audit record made before a durable plan may begin execution. Keeping it
1397
+ * outside the step event stream means a crash after authorization is retryable:
1398
+ * pristine means no intent, completion, or observed step event.
1399
+ */
1400
+ interface TransitionRunAuthorization {
1401
+ readonly runId: string;
1402
+ readonly policy: readonly AssumptionAcceptance[];
1403
+ readonly grants: readonly {
1404
+ readonly assumptionId: string;
1405
+ readonly grant: number;
1406
+ }[];
1407
+ readonly digest: string;
1408
+ readonly actor: string;
1409
+ readonly authorizedAt: string;
770
1410
  }
771
1411
  type StepOutcome = 'completed' | 'guard-failed' | 'guard-timeout' | 'context-mismatch' | 'operation-failed-not-applied' | 'partially-applied' | 'unknown-step-result';
772
1412
  interface StepJournalBase {
@@ -806,6 +1446,8 @@ interface GuardedPlanStep {
806
1446
  readonly guards: readonly ApplyGuard[];
807
1447
  readonly restsOnAssumptions: readonly AssumptionId[];
808
1448
  readonly selectionRationale: RuleSelectionRationale;
1449
+ /** Present exactly for a managed DDL operation with a fixed plan-time sink. */
1450
+ readonly managedClaim?: ManagedStepClaimMaterial;
809
1451
  }
810
1452
  interface GuardedPlanSegment {
811
1453
  readonly segmentId: string;
@@ -822,7 +1464,11 @@ interface GuardedPlan {
822
1464
  readonly segments: readonly GuardedPlanSegment[];
823
1465
  readonly steps: readonly GuardedPlanStep[];
824
1466
  readonly postconditions: readonly ExecutableAssertion[];
825
- /** Present on plans emitted by current `dbsp plan` and covered by its digest. */
1467
+ /**
1468
+ * Present on plans emitted by current `dbsp plan`. It remains optional in
1469
+ * the TypeScript shape solely so recovery can read historic documents; new
1470
+ * execution rejects an absent contract before taking intent.
1471
+ */
826
1472
  readonly executionContract?: ExecutionContract;
827
1473
  }
828
1474
  type ProvenGuardProtocol = Exclude<GuardProtocol, {
@@ -836,6 +1482,11 @@ interface ProvenPlanStep extends Omit<GuardedPlanStep, 'guards'> {
836
1482
  }
837
1483
  interface ProvenPlanShape extends Omit<GuardedPlan, 'steps'> {
838
1484
  readonly steps: readonly ProvenPlanStep[];
1485
+ /**
1486
+ * Present on newly persisted declarative runs. It is inside the plan document
1487
+ * deliberately: the plan digest therefore covers the declaration set.
1488
+ */
1489
+ readonly declarations?: DeclarationSet;
839
1490
  }
840
1491
  /**
841
1492
  * Plain serializable audit/dump format. A future
@@ -844,6 +1495,10 @@ interface ProvenPlanShape extends Omit<GuardedPlan, 'steps'> {
844
1495
  */
845
1496
  type SerializedProvenPlan = ProvenPlanShape;
846
1497
 
1498
+ /** Stable phase-owned result of a durable apply attempt. */
1499
+ type DurableApplyOutcome = 'completed' | 'operation-failed-not-applied' | 'partially-applied' | 'unknown-step-result' | 'outcome-unknown' | 'guard-failed' | 'guard-timeout' | 'context-mismatch' | 'transactional-only-refusal' | 'digest-mismatch' | 'prior-step-events-refusal' | 'compatibility-refusal' | 'assumption-not-accepted' | 'authorization-write-failed' | 'execution-contract-refused' | 'execution-preflight-failed' | 'execution-failed' | 'operation-unavailable' | 'plan-validation-failed' | 'run-id-mismatch' | 'load-failed' | 'plan-digest-mismatch' | 'database-read-only' | 'recovery-required' | 'transport-ambiguous';
1500
+ /** Stable phase-owned result of recovery classification. */
1501
+ type RecoveryOutcome = 'completed' | 'recovery-resume-required' | 'recovery-partially-applied' | 'recovery-unknown-step-result' | 'recovery-guard-failed' | 'recovery-guard-timeout' | 'recovery-operation-failed-not-applied' | 'recovery-context-mismatch' | 'recovery-read-failed';
847
1502
  interface ApplyResult {
848
1503
  readonly assessment: PlanAssessment;
849
1504
  readonly journals: readonly StepJournal[];
@@ -853,6 +1508,19 @@ interface ApplyResult {
853
1508
  readonly protocol: ProvenGuardProtocol['kind'];
854
1509
  readonly artefact: RecoveryArtefact;
855
1510
  }[];
1511
+ /** Present only on the durable-apply entry point. */
1512
+ readonly durableOutcome?: DurableApplyOutcome;
1513
+ /** Present only on the recovery entry point. */
1514
+ readonly recoveryOutcome?: RecoveryOutcome;
1515
+ /** An admitted managed claim remains unresolved and must not be retried. */
1516
+ readonly unresolvedOutcome?: {
1517
+ readonly kind: 'recovery-required';
1518
+ readonly claimId: string;
1519
+ readonly detail: string;
1520
+ } | {
1521
+ readonly kind: 'transport-ambiguous';
1522
+ readonly detail: string;
1523
+ };
856
1524
  }
857
1525
 
858
1526
  type EvidenceClaimConclusion = 'established' | 'undischarged' | 'refuted' | 'conflicted';
@@ -965,6 +1633,15 @@ interface TransitionSessionClient {
965
1633
  }
966
1634
  interface TransitionQueryClient {
967
1635
  query(sql: string, params?: unknown): Promise<TransitionQueryResult>;
1636
+ /**
1637
+ * Execute a statement contributed by a plan operation.
1638
+ *
1639
+ * This is intentionally a separate, optional channel rather than a SQL
1640
+ * classifier. Core only routes the client it gives to executeOperation()
1641
+ * through it; adapter-owned preflight, journalling, and cleanup continue to
1642
+ * use query().
1643
+ */
1644
+ queryPlanOperation?(sql: string, params?: unknown): Promise<TransitionQueryResult>;
968
1645
  release(error?: unknown): void;
969
1646
  }
970
1647
  declare const transitionLessorTypeBrand: unique symbol;
@@ -982,6 +1659,19 @@ interface TransitionLessor {
982
1659
  */
983
1660
  readonly acquire: () => Promise<TransitionQueryClient>;
984
1661
  }
1662
+ declare const exclusiveTransitionTargetTypeBrand: unique symbol;
1663
+ /**
1664
+ * A callback-scoped target for durable execution.
1665
+ *
1666
+ * Adapters mint this only after they have acquired their exclusive backend
1667
+ * lease. Its representation deliberately has no public members: core is the
1668
+ * only package that can turn it back into a query lease. This is a nominal
1669
+ * accidental-misuse guard, not a security boundary against code which imports
1670
+ * core's public factory deliberately.
1671
+ */
1672
+ interface ExclusiveTransitionTarget {
1673
+ readonly [exclusiveTransitionTargetTypeBrand]: never;
1674
+ }
985
1675
  interface OperationEffectAssessment {
986
1676
  readonly effects: OperationEffects;
987
1677
  readonly restsOn: readonly Assumption[];
@@ -1114,13 +1804,56 @@ interface Comparator {
1114
1804
  compare(desired: ModelIR, current: ModelIR, context?: EquivalenceContext): CompareOutcome;
1115
1805
  }
1116
1806
 
1117
- interface AssumptionAcceptance {
1118
- readonly class: string;
1119
- readonly fromTrustRoot?: TrustRoot;
1120
- readonly withinScope?: readonly ResourceSelector[];
1807
+ /** The two destructive effects defined by the managed-ledger authority table. */
1808
+ type DestructiveAction = {
1809
+ readonly kind: 'removal';
1810
+ readonly address: LedgerAddress;
1811
+ /** Digest of the exact cascade set admitted under the ledger locks. */
1812
+ readonly closureDigest?: string;
1813
+ } | {
1814
+ readonly kind: 'data-destructive';
1815
+ readonly address: LedgerAddress;
1816
+ };
1817
+ type DeclarationDestructiveOutcome = 'requires-removal' | 'requires-lossy-change' | 'replacement-requested-by-plan' | 'requires-neither' | 'absent' | 'uncomputable';
1818
+ type OwnershipDestructiveOutcome = 'managed-by-me' | 'managed-by-other' | 'pending' | 'blocked' | 'unknown' | 'uncomputable';
1819
+ type CatalogueIdentityDestructiveOutcome = 'matches-recorded' | 'differs' | 'object-absent' | 'catalogue-unavailable';
1820
+ type OperatorAcceptanceDestructiveOutcome = 'destructive-plan-accepted' | 'absent';
1821
+ type ContainmentClosureDestructiveOutcome = 'all-contained-or-managed' | 'reaches-unmanaged' | 'undecidable';
1822
+ type LedgerLineageDestructiveOutcome = 'matches-database' | 'differs' | 'unreadable';
1823
+ /** Closed evidence supplied to the sole destructive-decision interpreter. */
1824
+ interface DestructiveAuthorityEvidence {
1825
+ readonly declaration: DeclarationDestructiveOutcome;
1826
+ /** Present only for replacement-requested-by-plan; it limits that permit. */
1827
+ readonly replacementAddress?: LedgerAddress;
1828
+ readonly ownership: OwnershipDestructiveOutcome;
1829
+ readonly catalogueIdentity: CatalogueIdentityDestructiveOutcome;
1830
+ readonly operatorAcceptance: OperatorAcceptanceDestructiveOutcome;
1831
+ /** Required only for removals. */
1832
+ readonly containment?: ContainmentClosureDestructiveOutcome;
1833
+ /** The exact live cascade member that made `reaches-unmanaged` refuse. */
1834
+ readonly containmentUnmanaged?: LedgerAddress;
1835
+ /** The live catalogue error that made containment undecidable. */
1836
+ readonly containmentReason?: string;
1837
+ readonly ledgerLineage: LedgerLineageDestructiveOutcome;
1838
+ }
1839
+ declare const destructiveAuthorityPermitBrand: unique symbol;
1840
+ /**
1841
+ * Opaque positive evidence. It has no constructible fields, so an execution
1842
+ * sink can require it without accepting a caller-assembled set of booleans.
1843
+ */
1844
+ interface DestructiveAuthorityPermit {
1845
+ readonly [destructiveAuthorityPermitBrand]: 'dbsp-destructive-authority-permit';
1121
1846
  }
1122
- interface ApplyPolicy {
1123
- readonly accepts: readonly AssumptionAcceptance[];
1847
+ interface PermittedDestructiveDecision {
1848
+ readonly kind: 'destructive-decision-permitted';
1849
+ readonly action: DestructiveAction;
1850
+ readonly permit: DestructiveAuthorityPermit;
1851
+ }
1852
+ interface RefusedDestructiveDecision {
1853
+ readonly kind: 'destructive-decision-refused';
1854
+ readonly action: DestructiveAction;
1855
+ readonly reasons: readonly string[];
1124
1856
  }
1857
+ type DestructiveDecision = PermittedDestructiveDecision | RefusedDestructiveDecision;
1125
1858
 
1126
- export { AdjacencyTraversal, type AdvisoryObservation, type AdvisoryObservationId, AggregateWindowFunction, type ApplicableAssessment, type ApplicableEvaluation, type ApplyGuard, type ApplyPolicy, type ApplyResult, type Assumption, type AssumptionAcceptance, type AssumptionId, type BigintJsReadConversionContext, type BoundBinding, type CapabilityAvailabilityPredicate, type CapabilityDescriptor, type ClaimConclusion, type ClaimDerivation, type ClaimId, type ClaimSelector, CoalesceExpressionIntent, type CollationRef, ColumnAliasIntent, ColumnJsReadType, ColumnListInput, type Comparator, type CompareOutcome, type CompositionFactSatisfactionOwner, type ContextFact, type ContextMutation, CustomTraversal, DeleteIntent, type DurableIntentRecord, EXECUTION_CONTRACT_VERSION, EdgeTableTraversal, type EquivalenceCapability, type EquivalenceContext, type EquivalenceResult, type EvidenceClaimConclusion, type EvidenceClaimResult, type EvidenceId, type EvidenceObservation, type EvidenceObservationFilters, type EvidenceView, type ExecutableAssertion, type ExecutionContract, type ExecutionRequirement, type ExecutionRequirementMode, type ExpressionEquivalenceCategory, ExpressionIntent, type ExpressionValue, type ExternalEffectCoverage, type FingerprintManifest, ForeignKeyIR, type GuardPredicate, type GuardProtocol, type GuardProtocolKind, type GuardedPlan, type GuardedPlanSegment, type GuardedPlanStep, type InapplicableAssessment, InsertIntent, type IssuedObservation, type JsonAggOrderKey, type JsonValue, type LoadedSchema, type LockRequirement, ModelIR, MutationIntent, NQL_SELECT_AGGREGATE_FUNCTIONS, NQL_SELECT_FUNCTION_ALLOWLIST, NQL_SELECT_JSON_FUNCTIONS, NQL_SELECT_SCALAR_FUNCTIONS, NQL_SELECT_SCALAR_FUNCTION_ALLOWLIST, NQL_SELECT_VALUE_FUNCTIONS, NQL_SELECT_WINDOW_FUNCTIONS, NQL_SELECT_WINDOW_FUNCTION_ALLOWLIST, NQL_SELECT_WINDOW_ONLY_FUNCTIONS, type ObservationBooleanClaim, type ObservationContext, type ObservationIssuer, type ObservationPrivilegeMergeResult, type ObservationRequest, type ObservationResult, type ObservationStability, type ObservedOutcomeRecord, OffsetWindowFunction, type OperationEffectAssessment, type OperationEffects, type OperationExecutionOutcome, type OperationExecutionSemantics, OperationKindRef, type OperationRecoverySemantics, type OperationSemantics, type OutcomeReason, type OutcomeReasonCode, type PhysicalOperation, type PlanAssessment, type PortableExpression, type PostgreSqlAuthorityRequirement, type PostgreSqlEngineRequirement, type PostgreSqlNamespaceIdentity, type PostgreSqlObservationTargetIdentity, type PostgreSqlPhysicalTargetRequirement, type PostgreSqlSessionSettingRequirement, type ProofClaim, type ProofClaimDraft, type ProofEvidenceAccess, type ProofObligation, type Proposition, type ProvenApplyGuard, type ProvenGuardProtocol, type ProvenPlanShape, type ProvenPlanStep, QueryIntent, RankingWindowFunction, RawExpressionIntent, type RecognitionContext, type RecognitionResult, type RecoveryArtefact, RecursiveIntent, RecursiveTraversal, RelationColumnIntent, RelationIR, type RelationKeyBuilderOptions, type RelationKeyDirection, type RelationKeyFields, type RelationKeyForeignKey, type ResourceAddress, type ResourceSelector, type RuleEvaluation, type RulePrecedenceFact, type RuleRef, type RuleSelectionRationale, type RuleSupport, SelectAggregateIntent, SelectAllIntent, SelectFieldsIntent, SelectIntent, SelectWithExpressionsIntent, SemanticArtifactRef, type SerializedProvenPlan, type StepJournal, type StepOutcome, SubqueryRefIntent, TableIR, type TargetBinding, type TransactionalCompletionRecord, type TransitionCandidate, type TransitionCompositionFact, type TransitionFragment, type TransitionFragmentComposition, type TransitionJournalEvent, type TransitionJournalEventName, type TransitionJournalEventRecord, type TransitionLessor, type TransitionQueryClient, type TransitionQueryResult, type TransitionRule, type TransitionRunJournal, type TransitionRunMetadata, type TransitionSessionClient, TrustRoot, type TypeRef, type UnknownCoverage, type UnknownTransitionRecognition, type UnresolvableExpression, type UnsafeNativeFragment, UpdateIntent, UpsertIntent, type VendorValidatedExpression, WhereAndIntent, WhereAnyIntent, WhereComparisonIntent, WhereExistsIntent, WhereInIntent, WhereIntent, WhereLikeIntent, WhereNotExistsIntent, WhereNotIntent, WhereNullIntent, WhereOrIntent, WhereRangeIntent, WhereRelationFilterIntent, WhereSubqueryIntent, WindowFunction, WindowIntent, buildRelationKeyFields, convertBigintJsReadValue, isAdjacencyTraversal, isAggregateWindowFunction, isCoalesceExpression, isColumnAliasExpression, isCustomTraversal, isDeleteIntent, isEdgeTableTraversal, isInsertIntent, isMutationIntent, isNqlSelectFunctionAllowed, isNqlSelectScalarFunctionAllowed, isNqlSelectWindowFunctionAllowed, isRankingWindowFunction, isRawExpression, isRecursiveIntent, isRelationColumnExpression, isSelectAggregate, isSelectAll, isSelectFields, isSelectWithExpressions, isSubqueryRef, isUpdateIntent, isUpsertIntent, isValidSchema, isWhereAnd, isWhereAny, isWhereComparison, isWhereExists, isWhereIn, isWhereLike, isWhereLogical, isWhereNot, isWhereNotExists, isWhereNull, isWhereOr, isWhereRange, isWhereRelationBased, isWhereRelationFilter, isWhereSubquery, isWindowIntent, resolveJsonAggOrderKey };
1859
+ export { AdjacencyTraversal, type AdmittedOutcomeClaim, type AdmittedPermit, type AdoptionOutcomeClaimPlan, type AdvisoryObservation, type AdvisoryObservationId, AggregateWindowFunction, type ApplicableAssessment, type ApplicableEvaluation, type ApplyGuard, type ApplyPolicy, type ApplyResult, type Assumption, type AssumptionAcceptance, type AssumptionId, type BigintJsReadConversionContext, type BoundBinding, type CapabilityAvailabilityPredicate, type CapabilityDescriptor, type CascadeCoveredOutcomeClaimPlan, type CatalogueIdentity, type CatalogueIdentityDestructiveOutcome, type ClaimBundleStatement, type ClaimConclusion, type ClaimDerivation, type ClaimId, type ClaimSelector, type ClaimStatementBundle, type ClaimToken, CoalesceExpressionIntent, type CollationRef, ColumnAliasIntent, ColumnJsReadType, ColumnListInput, type Comparator, type CompareOutcome, type CompositionFactSatisfactionOwner, type ContainmentClosureDestructiveOutcome, type ContextFact, type ContextMutation, type ControllerIdentity, CustomTraversal, type DeclarableKind, type DeclarableResourceAddress, type DeclarationDestructiveOutcome, type DeclarationSet, DeleteIntent, type DestructiveAction, type DestructiveAuthorityEvidence, type DestructiveAuthorityPermit, type DestructiveDecision, type DurableApplyOutcome, type DurableIntentRecord, EXECUTION_CONTRACT_VERSION, EdgeTableTraversal, type EmptyClaimStatementBundle, type EquivalenceCapability, type EquivalenceContext, type EquivalenceResult, type EvidenceClaimConclusion, type EvidenceClaimResult, type EvidenceId, type EvidenceObservation, type EvidenceObservationFilters, type EvidenceView, type ExclusiveTransitionTarget, type ExecutableAssertion, type ExecutionContract, type ExecutionRequirement, type ExecutionRequirementMode, type ExpressionEquivalenceCategory, ExpressionIntent, type ExpressionValue, type ExternalEffectCoverage, type FingerprintManifest, ForeignKeyIR, type GuardPredicate, type GuardProtocol, type GuardProtocolKind, type GuardedPlan, type GuardedPlanSegment, type GuardedPlanStep, type InapplicableAssessment, InsertIntent, type IssuedObservation, type JsonAggOrderKey, type JsonObject, type JsonValue, LEDGER_EVENT_KINDS, type LedgerAddress, type LedgerChainMember, type LedgerChainProjection, type LedgerClaimKind, type LedgerEventKind, type LedgerHome, type LedgerIdentity, type LedgerLifecycleGrammarColumn, type LedgerLineageDestructiveOutcome, type LedgerMarkerState, type LedgerOpenClaim, type LedgerPayload, type LedgerRefusal, type LedgerReportedState, type LedgerReservationRow, type LedgerShapeMarker, type LedgerStableState, type LoadedSchema, type LockRequirement, type ManagedDeclaration, type ManagedStepClaimMaterial, type ManagedStepClassification, type ManagedStepClosureMember, type ManagedStepLifecycle, type ManagedStepReplayPolicy, type ManagedStepSelectionRequirement, ModelIR, MutationIntent, NQL_SELECT_AGGREGATE_FUNCTIONS, NQL_SELECT_FUNCTION_ALLOWLIST, NQL_SELECT_JSON_FUNCTIONS, NQL_SELECT_SCALAR_FUNCTIONS, NQL_SELECT_SCALAR_FUNCTION_ALLOWLIST, NQL_SELECT_VALUE_FUNCTIONS, NQL_SELECT_WINDOW_FUNCTIONS, NQL_SELECT_WINDOW_FUNCTION_ALLOWLIST, NQL_SELECT_WINDOW_ONLY_FUNCTIONS, type NormalizedManagedStep, type ObservationBooleanClaim, type ObservationContext, type ObservationIssuer, type ObservationPrivilegeMergeResult, type ObservationRequest, type ObservationResult, type ObservationStability, type ObservedOutcomeRecord, OffsetWindowFunction, type OperationEffectAssessment, type OperationEffects, type OperationExecutionOutcome, type OperationExecutionSemantics, OperationKindRef, type OperationRecoverySemantics, type OperationSemantics, type OperatorAcceptanceDestructiveOutcome, type OutcomeCatalogueUnavailable, type OutcomeClaimAdmission, type OutcomeClaimAdmissionInput, type OutcomeClaimPlan, type OutcomeIndeterminateRecoveryEvidence, type OutcomeProtocolRefusal, type OutcomeReason, type OutcomeReasonCode, type OutcomeRecoveryCatalogueRead, type OutcomeRecoveryCatalogueReader, type OutcomeRecoveryClassification, type OutcomeRecoveryEffect, type OutcomeRecoveryInput, type OutcomeRecoveryReadBack, type OutcomeRecoveryResolution, type OutcomeVacancy, type OwnershipDestructiveOutcome, type PermittedDestructiveDecision, type PhysicalOperation, type PlanAssessment, type PortableExpression, type PostgreSqlAuthorityRequirement, type PostgreSqlEngineRequirement, type PostgreSqlNamespaceIdentity, type PostgreSqlObservationTargetIdentity, type PostgreSqlPhysicalTargetRequirement, type PostgreSqlSessionSettingRequirement, type ProjectedLedgerChain, type ProofClaim, type ProofClaimDraft, type ProofEvidenceAccess, type ProofObligation, type Proposition, type ProvenApplyGuard, type ProvenGuardProtocol, type ProvenPlanShape, type ProvenPlanStep, QueryIntent, REFUSAL_VOCABULARY, RankingWindowFunction, RawExpressionIntent, type RecognitionContext, type RecognitionResult, type RecoveryArtefact, type RecoveryOutcome, RecursiveIntent, RecursiveTraversal, type RefusalCode, type RefusedDestructiveDecision, type ReinitializePreflightAdoptionCandidate, type ReinitializePreflightFailureReason, type ReinitializePreflightFailureStep, type ReinitializePreflightRefusalCode, type ReinitializePreflightReport, type ReinitializePreflightScopeOutcome, type ReinitializePreflightScopeReport, RelationColumnIntent, RelationIR, type RelationKeyBuilderOptions, type RelationKeyDirection, type RelationKeyFields, type RelationKeyForeignKey, type ResourceAddress, type ResourceSelector, type RuleEvaluation, type RulePrecedenceFact, type RuleRef, type RuleSelectionRationale, type RuleSupport, type ScopedApprovalSet, SelectAggregateIntent, SelectAllIntent, SelectFieldsIntent, SelectIntent, SelectWithExpressionsIntent, SemanticArtifactRef, type SerializedProvenPlan, type SqlBearingOutcomeClaimPlan, type StepJournal, type StepOutcome, SubqueryRefIntent, TableIR, TableReaddressDeclaration, type TargetBinding, type TransactionalCompletionRecord, type TransitionCandidate, type TransitionCompositionFact, type TransitionFragment, type TransitionFragmentComposition, type TransitionJournalEvent, type TransitionJournalEventName, type TransitionJournalEventRecord, type TransitionLessor, type TransitionQueryClient, type TransitionQueryResult, type TransitionRule, type TransitionRunAuthorization, type TransitionRunJournal, type TransitionRunMetadata, type TransitionSessionClient, TrustRoot, type TypeRef, type UnknownCoverage, type UnknownTransitionRecognition, type UnprojectableChainReason, type UnprojectableLedgerChain, type UnresolvableExpression, type UnsafeNativeFragment, UpdateIntent, UpsertIntent, type VendorValidatedExpression, WhereAndIntent, WhereAnyIntent, WhereComparisonIntent, WhereExistsIntent, WhereInIntent, WhereIntent, WhereLikeIntent, WhereNotExistsIntent, WhereNotIntent, WhereNullIntent, WhereOrIntent, WhereRangeIntent, WhereRelationFilterIntent, WhereSubqueryIntent, WindowFunction, WindowIntent, buildRelationKeyFields, canonicalResourceParent, convertBigintJsReadValue, isAdjacencyTraversal, isAggregateWindowFunction, isCoalesceExpression, isColumnAliasExpression, isCustomTraversal, isDeleteIntent, isEdgeTableTraversal, isInsertIntent, isMutationIntent, isNqlSelectFunctionAllowed, isNqlSelectScalarFunctionAllowed, isNqlSelectWindowFunctionAllowed, isRankingWindowFunction, isRawExpression, isRecursiveIntent, isRelationColumnExpression, isSelectAggregate, isSelectAll, isSelectFields, isSelectWithExpressions, isSubqueryRef, isUpdateIntent, isUpsertIntent, isValidSchema, isWhereAnd, isWhereAny, isWhereComparison, isWhereExists, isWhereIn, isWhereLike, isWhereLogical, isWhereNot, isWhereNotExists, isWhereNull, isWhereOr, isWhereRange, isWhereRelationBased, isWhereRelationFilter, isWhereSubquery, isWindowIntent, ledgerAddressKey, ledgerAddressParentJson, refusalFor, resolveJsonAggOrderKey, sameControllerIdentity, sameLedgerAddress };