@cohesivesystems/relations 0.1.0-alpha.4 → 0.1.0-alpha.5

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.
@@ -1,34 +1,1050 @@
1
1
  /* <auto-generated/> */
2
2
 
3
- export interface GraphId {
4
- Value: string;
3
+ export type GraphId = string;
4
+
5
+ export type ShapeId = string;
6
+
7
+ export type RelationQueryExplainStage = {
8
+ readonly $stage: 'staticCompilation';
9
+ } & RelationQueryStaticCompilationExplainStage | {
10
+ readonly $stage: 'profileFeasibility';
11
+ } & RelationQueryProfileFeasibilityExplainStage | {
12
+ readonly $stage: 'sourcePlacement';
13
+ } & RelationQuerySourcePlacementExplainStage | {
14
+ readonly $stage: 'boundRealization';
15
+ } & RelationQueryBoundRealizationExplainStage | {
16
+ readonly $stage: 'physicalPlanning';
17
+ } & RelationQueryPhysicalPlanningExplainStage | {
18
+ readonly $stage: 'nativeCompilation';
19
+ } & RelationQueryNativeCompilationExplainStage | {
20
+ readonly $stage: 'evaluation';
21
+ } & RelationQueryEvaluationExplainStage;
22
+
23
+ export interface RelationQueryStaticCompilationExplainStage {
24
+ status: RelationQueryExplainStageStatus;
25
+ request: RelationQueryCompilationRequestReference;
26
+ plan?: RelationQueryStaticPlanExplanation | null;
27
+ diagnostics: DocumentValidationDiagnostic[];
5
28
  }
6
29
 
7
- export interface ShapeId {
8
- Value: string;
30
+ export interface RelationQueryProfileFeasibilityExplainStage {
31
+ status: RelationQueryExplainStageStatus;
32
+ report: RelationQueryRealizationReport;
9
33
  }
10
34
 
11
- export interface RelationId {
12
- Value: string;
35
+ export interface RelationQuerySourcePlacementExplainStage {
36
+ status: RelationQueryExplainStageStatus;
37
+ placement: RelationQuerySourcePlacement;
13
38
  }
14
39
 
15
- export interface RelationName {
16
- Value: string;
40
+ export interface RelationQueryBoundRealizationExplainStage {
41
+ report: RelationQueryBoundRealizationReport;
42
+ status: RelationQueryExplainStageStatus;
17
43
  }
18
44
 
19
- export interface RelationSource {
20
- Alias: SourceAlias;
21
- ShapeId: ShapeId;
22
- Cardinality: SourceCardinality;
45
+ export interface RelationQueryPhysicalPlanningExplainStage {
46
+ status: RelationQueryExplainStageStatus;
47
+ plan: RelationQueryCompiledPlanReference;
48
+ realization: RelationQueryRealizationFingerprint;
49
+ placement: RelationQuerySourcePlacementFingerprint;
50
+ policy?: RelationQueryPhysicalPlanningPolicy | null;
51
+ result: RelationQueryPhysicalPlanningResult;
23
52
  }
24
53
 
25
- export interface JoinDefinition {
26
- Left: SourceAlias;
27
- Right: SourceAlias;
28
- Kind: JoinKind;
29
- On: Expr;
54
+ export interface RelationQueryNativeCompilationExplainStage {
55
+ status: RelationQueryExplainStageStatus;
56
+ attempt: RelationQueryNativeCompilationAttemptReference;
57
+ compilation: RelationQueryNativeCompilationExplanation;
30
58
  }
31
59
 
60
+ export interface RelationQueryEvaluationExplainStage {
61
+ evaluation: RelationQueryEvaluationExplanation;
62
+ status: RelationQueryExplainStageStatus;
63
+ }
64
+
65
+ export interface RelationQueryCapabilitySummary {
66
+ target: RelationQueryTargetId;
67
+ targetProfile: RelationQueryTargetProfileId;
68
+ policy?: RelationQueryRealizationPolicyId | null;
69
+ profileFeasibility?: RelationQueryRealizationFingerprint | null;
70
+ boundRealization?: RelationQueryBoundRealizationFingerprint | null;
71
+ operatingBoundaries: RelationQueryOperatingBoundaryId[];
72
+ entries: RelationQueryCapabilitySummaryEntry[];
73
+ }
74
+
75
+ export interface RelationQueryExplainDiagnostic {
76
+ stage: string;
77
+ code: string;
78
+ severity: DiagnosticSeverity;
79
+ message: string;
80
+ location?: string | null;
81
+ branch?: RelationQueryNativeResultBranchId | null;
82
+ requirement?: RelationQueryRealizationRequirementId | null;
83
+ node?: QueryNodeId | null;
84
+ input?: RelationQueryInputId | null;
85
+ output?: RelationQueryOutputId | null;
86
+ placementBinding?: RelationQuerySourcePlacementBindingId | null;
87
+ physicalStage?: RelationQueryPhysicalStageId | null;
88
+ source?: RelationQuerySourceInstanceId | null;
89
+ capabilityEvidence?: RelationQueryTargetCapabilityEvidenceId | null;
90
+ operatingBoundary?: RelationQueryOperatingBoundaryId | null;
91
+ contextEvidence?: RelationQueryContextEvidenceId | null;
92
+ semanticSite?: string | null;
93
+ compositionRule?: RelationQueryCompositionRuleId | null;
94
+ override?: RelationQueryRealizationOverrideId | null;
95
+ field?: FieldPath | null;
96
+ bindingSetting?: string | null;
97
+ resolution?: string | null;
98
+ configurationOrigin?: RelationQueryConfigurationValueOrigin | null;
99
+ configurationAuthority?: string | null;
100
+ adapterDecisionCode?: RelationQueryAdapterDecisionCode | null;
101
+ }
102
+
103
+ export interface RelationQueryExplainFingerprint {
104
+ algorithm: string;
105
+ canonicalization: string;
106
+ value: string;
107
+ }
108
+
109
+ export interface RelationQueryCompiledPlanReference {
110
+ compilerProfile: string;
111
+ definitionSchemaVersion: string;
112
+ definitionFingerprint: RelationQueryDefinitionFingerprint;
113
+ shapeSnapshotsFingerprint: RelationQueryPlanComponentFingerprint;
114
+ relationshipCatalogFingerprint?: RelationshipCatalogFingerprint | null;
115
+ demandFingerprint: RelationQueryPlanComponentFingerprint;
116
+ inputs: RelationQueryInputId[];
117
+ }
118
+
119
+ export interface RelationQueryRealizationFingerprint {
120
+ algorithm: string;
121
+ canonicalization: string;
122
+ value: string;
123
+ }
124
+
125
+ export interface RelationQueryPhysicalPlanningPolicy {
126
+ id: RelationQueryPhysicalPlanningPolicyId;
127
+ conventionSetVersion: string;
128
+ maximumBatchSize: string;
129
+ maximumBufferedRows: string;
130
+ maximumLocalRows: string;
131
+ maximumFanOut: string;
132
+ maximumReferenceKeysPerObservation: string;
133
+ maximumConcurrency: string;
134
+ loweringSelections: RelationQueryPhysicalLoweringSelection[];
135
+ }
136
+
137
+ export interface RelationQueryPhysicalStage {
138
+ id: RelationQueryPhysicalStageId;
139
+ kind: RelationQueryPhysicalStageKind;
140
+ dependencies: RelationQueryPhysicalStageId[];
141
+ placementBinding?: RelationQuerySourcePlacementBindingId | null;
142
+ semanticInputs: RelationQueryInputId[];
143
+ requestedFields: RelationQueryInputId[];
144
+ batchSize?: string | null;
145
+ provenance: RelationQueryPhysicalStageProvenance;
146
+ }
147
+
148
+ export type RelationQueryPhysicalStageId = string;
149
+
150
+ export interface RelationQueryPhysicalPlanningDiagnostic {
151
+ code: string;
152
+ severity: DiagnosticSeverity;
153
+ message: string;
154
+ input?: RelationQueryInputId | null;
155
+ stage?: RelationQueryPhysicalStageId | null;
156
+ placementBinding?: RelationQuerySourcePlacementBindingId | null;
157
+ requirement?: RelationQueryRealizationRequirementId | null;
158
+ }
159
+
160
+ export interface RelationQueryPhysicalPlanFingerprint {
161
+ algorithm: string;
162
+ canonicalization: string;
163
+ value: string;
164
+ }
165
+
166
+ export interface RelationQuerySourceInstance {
167
+ id: RelationQuerySourceInstanceId;
168
+ executionDomain: RelationQueryExecutionDomainId;
169
+ targetProfile: RelationQueryTargetCapabilityProfile;
170
+ limits: RelationQuerySourcePlacementLimits;
171
+ }
172
+
173
+ export interface RelationQuerySourcePlacementBinding {
174
+ id: RelationQuerySourcePlacementBindingId;
175
+ input: RelationQueryInputId;
176
+ node: QueryNodeId;
177
+ binding: ValueBindingId;
178
+ shape: QualifiedShapeId;
179
+ source: RelationQuerySourceInstanceId;
180
+ kind: RelationQuerySourcePlacementBindingKind;
181
+ acquisition: RelationQuerySourceAcquisitionKind;
182
+ origin: RelationQuerySourcePlacementOrigin;
183
+ identity?: RelationQuerySourceIdentityBinding | null;
184
+ fields: RelationQuerySourceFieldBinding[];
185
+ relationshipKeys: RelationQueryRelationshipKeyBinding[];
186
+ partition?: RelationQueryPartitionBinding | null;
187
+ }
188
+
189
+ export interface RelationQueryConfigurationDecision {
190
+ setting: string;
191
+ origin: RelationQueryConfigurationValueOrigin;
192
+ authority: string;
193
+ }
194
+
195
+ export interface RelationQuerySourcePlacementFingerprint {
196
+ algorithm: string;
197
+ canonicalization: string;
198
+ value: string;
199
+ }
200
+
201
+ export type RelationQueryNativeResultBranchId = string;
202
+
203
+ export interface RelationQueryContextualEvidenceProjection {
204
+ binding: RelationQueryAdapterBindingReference;
205
+ assessments: RelationQueryBoundRequirementAssessment[];
206
+ }
207
+
208
+ export interface RelationQueryRealizationDiagnostic {
209
+ code: string;
210
+ severity: DiagnosticSeverity;
211
+ message: string;
212
+ requirement?: RelationQueryRealizationRequirementId | null;
213
+ capabilityEvidence?: RelationQueryTargetCapabilityEvidenceId | null;
214
+ compositionRule?: RelationQueryCompositionRuleId | null;
215
+ operatingBoundary?: RelationQueryOperatingBoundaryId | null;
216
+ override?: RelationQueryRealizationOverrideId | null;
217
+ node?: QueryNodeId | null;
218
+ semanticSite?: string | null;
219
+ contextEvidence?: RelationQueryContextEvidenceId | null;
220
+ branch?: RelationQueryNativeResultBranchId | null;
221
+ input?: RelationQueryInputId | null;
222
+ field?: FieldPath | null;
223
+ placementBinding?: RelationQuerySourcePlacementBindingId | null;
224
+ bindingSetting?: string | null;
225
+ resolution?: string | null;
226
+ configurationOrigin?: RelationQueryConfigurationValueOrigin | null;
227
+ configurationAuthority?: string | null;
228
+ adapterDecisionCode?: RelationQueryAdapterDecisionCode | null;
229
+ }
230
+
231
+ export type RelationQueryRealizationStatus = 'Realizable' | 'NotRealizable' | 'Invalid';
232
+
233
+ export const relationQueryRealizationStatuses = {
234
+ realizable: 'Realizable',
235
+ notRealizable: 'NotRealizable',
236
+ invalid: 'Invalid',
237
+ } as const satisfies Record<string, RelationQueryRealizationStatus>;
238
+
239
+ export const relationQueryRealizationStatusLabels: Record<RelationQueryRealizationStatus, string> = {
240
+ Realizable: 'Realizable',
241
+ NotRealizable: 'NotRealizable',
242
+ Invalid: 'Invalid',
243
+ };
244
+
245
+ export interface RelationQueryBoundRealizationFingerprint {
246
+ algorithm: string;
247
+ canonicalization: string;
248
+ value: string;
249
+ }
250
+
251
+ export interface RelationQueryRealizationPolicy {
252
+ id: RelationQueryRealizationPolicyId;
253
+ conventionSetVersion: string;
254
+ preference: RelationQueryRealizationPreference;
255
+ constrainedRealizations: RelationQueryConstrainedRealizationPolicy;
256
+ compositionRules: RelationQueryCompositionRule[];
257
+ compositionRuleSelections: RelationQueryCompositionRuleSelection[];
258
+ overrides: RelationQueryRealizationOverride[];
259
+ diagnosticSeverityOverrides: RelationQueryRealizationDiagnosticSeverityOverride[];
260
+ }
261
+
262
+ export interface RelationQueryResultObservability {
263
+ occurrenceProvenance: RelationQueryOccurrenceProvenanceMode;
264
+ }
265
+
266
+ export interface RelationQueryRealizationRequirement {
267
+ id: RelationQueryRealizationRequirementId;
268
+ capability: RelationQueryCapability;
269
+ origin?: RelationQueryRealizationRequirementOrigin | null;
270
+ uses: RelationQueryRealizationRequirementUse[];
271
+ requiredGuarantees: RelationQueryGuaranteeCapabilityKind[];
272
+ staticFacts: RelationQueryRealizationStaticFact[];
273
+ }
274
+
275
+ export type RelationQueryRealizationDecision = {
276
+ readonly $decision: 'native';
277
+ } & NativeRelationQueryRealizationDecision | {
278
+ readonly $decision: 'composed';
279
+ } & ComposedRelationQueryRealizationDecision | {
280
+ readonly $decision: 'constrained';
281
+ } & ConstrainedRelationQueryRealizationDecision | {
282
+ readonly $decision: 'override';
283
+ } & OverrideRelationQueryRealizationDecision | {
284
+ readonly $decision: 'unavailable';
285
+ } & UnavailableRelationQueryRealizationDecision;
286
+
287
+ export interface NativeRelationQueryRealizationDecision {
288
+ capabilityEvidence: RelationQueryTargetCapabilityEvidenceId[];
289
+ preservedGuarantees: RelationQueryGuaranteeCapabilityKind[];
290
+ requirement: RelationQueryRealizationRequirementId;
291
+ }
292
+
293
+ export interface ComposedRelationQueryRealizationDecision {
294
+ compositionRules: RelationQueryCompositionRuleId[];
295
+ capabilityEvidence: RelationQueryTargetCapabilityEvidenceId[];
296
+ preservedGuarantees: RelationQueryGuaranteeCapabilityKind[];
297
+ requirement: RelationQueryRealizationRequirementId;
298
+ }
299
+
300
+ export interface ConstrainedRelationQueryRealizationDecision {
301
+ capabilityEvidence: RelationQueryTargetCapabilityEvidenceId[];
302
+ boundaryValidations: RelationQueryOperatingBoundaryValidation[];
303
+ compositionRules: RelationQueryCompositionRuleId[];
304
+ preservedGuarantees: RelationQueryGuaranteeCapabilityKind[];
305
+ requirement: RelationQueryRealizationRequirementId;
306
+ }
307
+
308
+ export interface OverrideRelationQueryRealizationDecision {
309
+ override: RelationQueryRealizationOverrideId;
310
+ capabilityEvidence: RelationQueryTargetCapabilityEvidenceId[];
311
+ boundaryValidations: RelationQueryOperatingBoundaryValidation[];
312
+ preservedGuarantees: RelationQueryGuaranteeCapabilityKind[];
313
+ requirement: RelationQueryRealizationRequirementId;
314
+ }
315
+
316
+ export interface UnavailableRelationQueryRealizationDecision {
317
+ requirement: RelationQueryRealizationRequirementId;
318
+ reason: RelationQueryUnavailableReason;
319
+ missingCapabilities: RelationQueryCapability[];
320
+ }
321
+
322
+ export type RelationQueryTargetId = string;
323
+
324
+ export type RelationQueryTargetProfileId = string;
325
+
326
+ export interface RelationQueryTargetCapabilityEvidence {
327
+ id: RelationQueryTargetCapabilityEvidenceId;
328
+ capability: RelationQueryCapability;
329
+ operatingBoundaries: RelationQueryOperatingBoundaryId[];
330
+ description?: string | null;
331
+ }
332
+
333
+ export interface RelationQueryOperatingBoundary {
334
+ id: RelationQueryOperatingBoundaryId;
335
+ kind: RelationQueryOperatingBoundaryKind | number;
336
+ limit?: string | null;
337
+ description?: string | null;
338
+ }
339
+
340
+ export interface RelationDraft {
341
+ id: RelationDraftId;
342
+ relationId: RelationId;
343
+ name: RelationName;
344
+ input: LogicalQueryDefinition;
345
+ rootBinding: ValueBindingId;
346
+ projection: RelationDraftProjection;
347
+ outputMode: RelationOutputMode;
348
+ outputKey?: Expr | null;
349
+ invariants: InvariantDefinition[];
350
+ }
351
+
352
+ export interface RelationDraftFingerprint {
353
+ algorithm: string;
354
+ canonicalization: string;
355
+ value: string;
356
+ }
357
+
358
+ export interface RelationDraftDocumentMetadata {
359
+ origin: DocumentOrigin;
360
+ name?: string | null;
361
+ description?: string | null;
362
+ sourceUri?: string | null;
363
+ producer?: string | null;
364
+ producerVersion?: string | null;
365
+ createdAtUtc?: string | null;
366
+ updatedAtUtc?: string | null;
367
+ annotations: Record<string, AnnotationValue>;
368
+ producerArtifacts: RelationDraftProducerArtifactReference[];
369
+ conventionDecisions: RelationDraftConventionDecision[];
370
+ }
371
+
372
+ export type RelationQueryDefinition = {
373
+ readonly $definition: 'relation';
374
+ } & RelationDefinition | {
375
+ readonly $definition: 'query';
376
+ } & QueryDefinition;
377
+
378
+ export interface RelationDefinition {
379
+ id: RelationId;
380
+ name: RelationName;
381
+ rootBinding: ValueBindingId;
382
+ output: RelationOutputDefinition;
383
+ invariants: InvariantDefinition[];
384
+ body: LogicalQueryDefinition;
385
+ }
386
+
387
+ export interface QueryDefinition {
388
+ id: QueryId;
389
+ name: QueryName;
390
+ results: QueryResultDefinition[];
391
+ body: LogicalQueryDefinition;
392
+ }
393
+
394
+ export interface RelationQueryDefinitionFingerprint {
395
+ algorithm: string;
396
+ canonicalization: string;
397
+ value: string;
398
+ }
399
+
400
+ export interface RelationQueryDocumentMetadata {
401
+ origin: DocumentOrigin;
402
+ name?: string | null;
403
+ description?: string | null;
404
+ sourceUri?: string | null;
405
+ producer?: string | null;
406
+ producerVersion?: string | null;
407
+ createdAtUtc?: string | null;
408
+ updatedAtUtc?: string | null;
409
+ annotations: Record<string, AnnotationValue>;
410
+ }
411
+
412
+ export interface RelationshipCatalog {
413
+ relationships: RelationshipDefinition[];
414
+ }
415
+
416
+ export interface RelationshipCatalogFingerprint {
417
+ algorithm: string;
418
+ canonicalization: string;
419
+ value: string;
420
+ }
421
+
422
+ export interface RelationshipCatalogDocumentMetadata {
423
+ origin: DocumentOrigin;
424
+ name?: string | null;
425
+ description?: string | null;
426
+ sourceUri?: string | null;
427
+ producer?: string | null;
428
+ producerVersion?: string | null;
429
+ createdAtUtc?: string | null;
430
+ updatedAtUtc?: string | null;
431
+ annotations: Record<string, AnnotationValue>;
432
+ }
433
+
434
+ export type RelationQueryExplainStageStatus = 'Complete' | 'Unavailable' | 'Invalid' | 'Incomplete' | 'Failed';
435
+
436
+ export const relationQueryExplainStageStatuses = {
437
+ complete: 'Complete',
438
+ unavailable: 'Unavailable',
439
+ invalid: 'Invalid',
440
+ incomplete: 'Incomplete',
441
+ failed: 'Failed',
442
+ } as const satisfies Record<string, RelationQueryExplainStageStatus>;
443
+
444
+ export const relationQueryExplainStageStatusLabels: Record<RelationQueryExplainStageStatus, string> = {
445
+ Complete: 'Complete',
446
+ Unavailable: 'Unavailable',
447
+ Invalid: 'Invalid',
448
+ Incomplete: 'Incomplete',
449
+ Failed: 'Failed',
450
+ };
451
+
452
+ export interface RelationQueryCompilationRequestReference {
453
+ compilerProfile: string;
454
+ definitionSchemaVersion: string;
455
+ definitionFingerprint: RelationQueryDefinitionFingerprint;
456
+ shapeSnapshotsFingerprint: RelationQueryPlanComponentFingerprint;
457
+ relationshipCatalogFingerprint?: RelationshipCatalogFingerprint | null;
458
+ demandFingerprint: RelationQueryPlanComponentFingerprint;
459
+ }
460
+
461
+ export interface RelationQueryStaticPlanExplanation {
462
+ reference: RelationQueryCompiledPlanReference;
463
+ logicalPlan: RelationQueryLogicalPlan;
464
+ requirementGraph: RelationQueryExplainRequirementGraph;
465
+ branches: RelationQueryNativeResultBranch[];
466
+ observability: RelationQueryResultObservability;
467
+ realizationRequirements: RelationQueryRealizationRequirement[];
468
+ realizationRequirementsFingerprint: RelationQueryPlanComponentFingerprint;
469
+ }
470
+
471
+ export interface DocumentValidationDiagnostic {
472
+ code: string;
473
+ severity: DiagnosticSeverity;
474
+ message: string;
475
+ location?: string | null;
476
+ schemaLocation?: string | null;
477
+ }
478
+
479
+ export interface RelationQueryPhysicalPlanningResult {
480
+ status: RelationQueryPhysicalPlanningStatus;
481
+ plan?: CompiledRelationQueryPhysicalPlan | null;
482
+ diagnostics: RelationQueryPhysicalPlanningDiagnostic[];
483
+ }
484
+
485
+ export interface RelationQueryNativeCompilationAttemptReference {
486
+ plan: RelationQueryCompiledPlanReference;
487
+ profileFeasibility: RelationQueryRealizationFingerprint;
488
+ boundRealization: RelationQueryBoundRealizationFingerprint;
489
+ placement: RelationQuerySourcePlacementFingerprint;
490
+ adapterBinding: RelationQueryAdapterBindingReference;
491
+ branches: RelationQueryNativeResultBranchId[];
492
+ }
493
+
494
+ export interface RelationQueryNativeCompilationExplanation {
495
+ status: RelationQueryNativeCompilationStatus;
496
+ artifacts: RelationQueryNativeArtifactReference[];
497
+ diagnostics: RelationQueryNativeCompilationDiagnostic[];
498
+ }
499
+
500
+ export interface RelationQueryEvaluationExplanation {
501
+ evaluation: RelationQueryEvaluationFingerprint;
502
+ plan?: RelationQueryCompiledPlanReference | null;
503
+ status: RelationQueryExecutionStatus;
504
+ results: RelationQueryExplainResultSummary[];
505
+ requirementGaps: RelationQueryExplainRequirementGapSummary[];
506
+ diagnostics: RelationQueryExplainDiagnostic[];
507
+ observationFingerprint: RelationQueryEvaluationObservationFingerprint;
508
+ }
509
+
510
+ export type RelationQueryRealizationPolicyId = string;
511
+
512
+ export type RelationQueryOperatingBoundaryId = string;
513
+
514
+ export interface RelationQueryCapabilitySummaryEntry {
515
+ capability: RelationQueryCapability;
516
+ requirements: RelationQueryRealizationRequirementId[];
517
+ missingForRequirements: RelationQueryRealizationRequirementId[];
518
+ capabilityEvidence: RelationQueryTargetCapabilityEvidenceId[];
519
+ operatingBoundaries: RelationQueryOperatingBoundaryId[];
520
+ contextEvidence: RelationQueryContextEvidenceId[];
521
+ }
522
+
523
+ export type DiagnosticSeverity = 'Info' | 'Warning' | 'Error';
524
+
525
+ export const diagnosticSeverities = {
526
+ info: 'Info',
527
+ warning: 'Warning',
528
+ error: 'Error',
529
+ } as const satisfies Record<string, DiagnosticSeverity>;
530
+
531
+ export const diagnosticSeverityLabels: Record<DiagnosticSeverity, string> = {
532
+ Info: 'Info',
533
+ Warning: 'Warning',
534
+ Error: 'Error',
535
+ };
536
+
537
+ export type RelationQueryRealizationRequirementId = string;
538
+
539
+ export type QueryNodeId = string;
540
+
541
+ export type RelationQueryInputId = string;
542
+
543
+ export type RelationQueryOutputId = string;
544
+
545
+ export type RelationQuerySourcePlacementBindingId = string;
546
+
547
+ export type RelationQuerySourceInstanceId = string;
548
+
549
+ export type RelationQueryTargetCapabilityEvidenceId = string;
550
+
551
+ export type RelationQueryContextEvidenceId = string;
552
+
553
+ export type RelationQueryCompositionRuleId = string;
554
+
555
+ export type RelationQueryRealizationOverrideId = string;
556
+
557
+ export interface FieldPath {
558
+ segments: FieldPathSegment[];
559
+ }
560
+
561
+ export type RelationQueryConfigurationValueOrigin = 'Explicit' | 'ScopedProfile' | 'AdapterConvention' | 'FrameworkDefault';
562
+
563
+ export const relationQueryConfigurationValueOrigins = {
564
+ explicit: 'Explicit',
565
+ scopedProfile: 'ScopedProfile',
566
+ adapterConvention: 'AdapterConvention',
567
+ frameworkDefault: 'FrameworkDefault',
568
+ } as const satisfies Record<string, RelationQueryConfigurationValueOrigin>;
569
+
570
+ export const relationQueryConfigurationValueOriginLabels: Record<RelationQueryConfigurationValueOrigin, string> = {
571
+ Explicit: 'Explicit',
572
+ ScopedProfile: 'ScopedProfile',
573
+ AdapterConvention: 'AdapterConvention',
574
+ FrameworkDefault: 'FrameworkDefault',
575
+ };
576
+
577
+ export type RelationQueryAdapterDecisionCode = string;
578
+
579
+ export interface RelationQueryPlanComponentFingerprint {
580
+ algorithm: string;
581
+ canonicalization: string;
582
+ value: string;
583
+ }
584
+
585
+ export type RelationQueryPhysicalPlanningPolicyId = string;
586
+
587
+ export interface RelationQueryPhysicalLoweringSelection {
588
+ compositionRule: RelationQueryCompositionRuleId;
589
+ physicalLowering: RelationQueryPhysicalLoweringRuleId;
590
+ }
591
+
592
+ export type RelationQueryPhysicalStageKind = 'SuppliedInput' | 'SourceRead' | 'ExactFieldProjection' | 'RelationshipKeyExtraction' | 'KeyDeduplication' | 'BatchedIdentityLookup' | 'BatchedPredicateLookup' | 'LocalCorrelation' | 'RuntimeEvidenceAssembly' | 'ReferenceInterpreterTerminal';
593
+
594
+ export const relationQueryPhysicalStageKinds = {
595
+ suppliedInput: 'SuppliedInput',
596
+ sourceRead: 'SourceRead',
597
+ exactFieldProjection: 'ExactFieldProjection',
598
+ relationshipKeyExtraction: 'RelationshipKeyExtraction',
599
+ keyDeduplication: 'KeyDeduplication',
600
+ batchedIdentityLookup: 'BatchedIdentityLookup',
601
+ batchedPredicateLookup: 'BatchedPredicateLookup',
602
+ localCorrelation: 'LocalCorrelation',
603
+ runtimeEvidenceAssembly: 'RuntimeEvidenceAssembly',
604
+ referenceInterpreterTerminal: 'ReferenceInterpreterTerminal',
605
+ } as const satisfies Record<string, RelationQueryPhysicalStageKind>;
606
+
607
+ export const relationQueryPhysicalStageKindLabels: Record<RelationQueryPhysicalStageKind, string> = {
608
+ SuppliedInput: 'SuppliedInput',
609
+ SourceRead: 'SourceRead',
610
+ ExactFieldProjection: 'ExactFieldProjection',
611
+ RelationshipKeyExtraction: 'RelationshipKeyExtraction',
612
+ KeyDeduplication: 'KeyDeduplication',
613
+ BatchedIdentityLookup: 'BatchedIdentityLookup',
614
+ BatchedPredicateLookup: 'BatchedPredicateLookup',
615
+ LocalCorrelation: 'LocalCorrelation',
616
+ RuntimeEvidenceAssembly: 'RuntimeEvidenceAssembly',
617
+ ReferenceInterpreterTerminal: 'ReferenceInterpreterTerminal',
618
+ };
619
+
620
+ export interface RelationQueryPhysicalStageProvenance {
621
+ nodes: QueryNodeId[];
622
+ inputs: RelationQueryInputId[];
623
+ requirements: RelationQueryRealizationRequirementId[];
624
+ capabilityEvidence: RelationQueryPhysicalCapabilityEvidenceReference[];
625
+ compositionRules: RelationQueryCompositionRuleId[];
626
+ operatingBoundaries: RelationQueryOperatingBoundaryId[];
627
+ placementBindings: RelationQuerySourcePlacementBindingId[];
628
+ loweringRule?: RelationQueryPhysicalLoweringRuleId | null;
629
+ policyDecisions: RelationQueryPhysicalPlanningDecisionId[];
630
+ }
631
+
632
+ export type RelationQueryExecutionDomainId = string;
633
+
634
+ export interface RelationQuerySourcePlacementLimits {
635
+ maximumBatchSize: string;
636
+ maximumBufferedRows: string;
637
+ maximumFanOut: string;
638
+ maximumConcurrency: string;
639
+ }
640
+
641
+ export type ValueBindingId = string;
642
+
643
+ export type RelationQuerySourcePlacementBindingKind = 'SourceSet' | 'RelationshipTraversal';
644
+
645
+ export const relationQuerySourcePlacementBindingKinds = {
646
+ sourceSet: 'SourceSet',
647
+ relationshipTraversal: 'RelationshipTraversal',
648
+ } as const satisfies Record<string, RelationQuerySourcePlacementBindingKind>;
649
+
650
+ export const relationQuerySourcePlacementBindingKindLabels: Record<RelationQuerySourcePlacementBindingKind, string> = {
651
+ SourceSet: 'SourceSet',
652
+ RelationshipTraversal: 'RelationshipTraversal',
653
+ };
654
+
655
+ export type RelationQuerySourceAcquisitionKind = 'Supplied' | 'BoundedEnumeration' | 'BoundedLookup';
656
+
657
+ export const relationQuerySourceAcquisitionKinds = {
658
+ supplied: 'Supplied',
659
+ boundedEnumeration: 'BoundedEnumeration',
660
+ boundedLookup: 'BoundedLookup',
661
+ } as const satisfies Record<string, RelationQuerySourceAcquisitionKind>;
662
+
663
+ export const relationQuerySourceAcquisitionKindLabels: Record<RelationQuerySourceAcquisitionKind, string> = {
664
+ Supplied: 'Supplied',
665
+ BoundedEnumeration: 'BoundedEnumeration',
666
+ BoundedLookup: 'BoundedLookup',
667
+ };
668
+
669
+ export type RelationQuerySourcePlacementOrigin = 'Explicit' | 'Convention';
670
+
671
+ export const relationQuerySourcePlacementOrigins = {
672
+ explicit: 'Explicit',
673
+ convention: 'Convention',
674
+ } as const satisfies Record<string, RelationQuerySourcePlacementOrigin>;
675
+
676
+ export const relationQuerySourcePlacementOriginLabels: Record<RelationQuerySourcePlacementOrigin, string> = {
677
+ Explicit: 'Explicit',
678
+ Convention: 'Convention',
679
+ };
680
+
681
+ export interface RelationQuerySourceIdentityBinding {
682
+ shape: QualifiedShapeId;
683
+ sourceSelector: string;
684
+ }
685
+
686
+ export interface RelationQuerySourceFieldBinding {
687
+ input: RelationQueryInputId;
688
+ semanticPath: FieldPath;
689
+ sourceSelector: string;
690
+ }
691
+
692
+ export interface RelationQueryRelationshipKeyBinding {
693
+ input: RelationQueryInputId;
694
+ semanticPath: FieldPath;
695
+ sourceSelector: string;
696
+ }
697
+
698
+ export interface RelationQueryPartitionBinding {
699
+ sourceSelector: string;
700
+ }
701
+
702
+ export interface RelationQueryAdapterBindingReference {
703
+ schemaVersion: string;
704
+ bindingId: string;
705
+ target: RelationQueryTargetId;
706
+ targetProfile: RelationQueryTargetProfileId;
707
+ fingerprint: RelationQueryAdapterBindingFingerprint;
708
+ compiledPlanFingerprint?: RelationQueryPlanComponentFingerprint | null;
709
+ placementFingerprint?: RelationQuerySourcePlacementFingerprint | null;
710
+ sources: RelationQuerySourceInstanceId[];
711
+ placementBindings: RelationQuerySourcePlacementBindingId[];
712
+ configurationDecisions: RelationQueryConfigurationDecision[];
713
+ }
714
+
715
+ export interface RelationQueryBoundRequirementAssessment {
716
+ id: RelationQueryContextEvidenceId;
717
+ branch: RelationQueryNativeResultBranchId;
718
+ requirement: RelationQueryRealizationRequirementId;
719
+ status: RelationQueryBoundAssessmentStatus;
720
+ origin: RelationQueryConfigurationValueOrigin;
721
+ authority: string;
722
+ capabilityEvidence: RelationQueryTargetCapabilityEvidenceId[];
723
+ operatingBoundaries: RelationQueryOperatingBoundaryId[];
724
+ preservedGuarantees: RelationQueryGuaranteeCapabilityKind[];
725
+ unavailableReason?: RelationQueryUnavailableReason | null;
726
+ node?: QueryNodeId | null;
727
+ input?: RelationQueryInputId | null;
728
+ field?: FieldPath | null;
729
+ placementBinding?: RelationQuerySourcePlacementBindingId | null;
730
+ configurationSetting?: string | null;
731
+ message: string;
732
+ resolution?: string | null;
733
+ adapterDecisionCode?: RelationQueryAdapterDecisionCode | null;
734
+ missingCapabilityEvidence: RelationQueryTargetCapabilityEvidenceId[];
735
+ failedOperatingBoundary?: RelationQueryOperatingBoundaryId | null;
736
+ failedConfigurationSetting?: string | null;
737
+ blockedBy?: RelationQueryContextEvidenceId | null;
738
+ }
739
+
740
+ export type RelationQueryRealizationPreference = 'PreferNative' | 'PreferComposed';
741
+
742
+ export const relationQueryRealizationPreferences = {
743
+ preferNative: 'PreferNative',
744
+ preferComposed: 'PreferComposed',
745
+ } as const satisfies Record<string, RelationQueryRealizationPreference>;
746
+
747
+ export const relationQueryRealizationPreferenceLabels: Record<RelationQueryRealizationPreference, string> = {
748
+ PreferNative: 'PreferNative',
749
+ PreferComposed: 'PreferComposed',
750
+ };
751
+
752
+ export type RelationQueryConstrainedRealizationPolicy = 'Reject' | 'AllowValidated';
753
+
754
+ export const relationQueryConstrainedRealizationPolicies = {
755
+ reject: 'Reject',
756
+ allowValidated: 'AllowValidated',
757
+ } as const satisfies Record<string, RelationQueryConstrainedRealizationPolicy>;
758
+
759
+ export const relationQueryConstrainedRealizationPolicyLabels: Record<RelationQueryConstrainedRealizationPolicy, string> = {
760
+ Reject: 'Reject',
761
+ AllowValidated: 'AllowValidated',
762
+ };
763
+
764
+ export interface RelationQueryCompositionRule {
765
+ id: RelationQueryCompositionRuleId;
766
+ providedCapability: RelationQueryCapability;
767
+ requiredCapabilities: RelationQueryCapability[];
768
+ requiredOperatingBoundaries: RelationQueryOperatingBoundaryId[];
769
+ preservedGuarantees: RelationQueryGuaranteeCapabilityKind[];
770
+ description?: string | null;
771
+ }
772
+
773
+ export interface RelationQueryCompositionRuleSelection {
774
+ capability: RelationQueryCapability;
775
+ rule: RelationQueryCompositionRuleId;
776
+ }
777
+
778
+ export interface RelationQueryRealizationOverride {
779
+ id: RelationQueryRealizationOverrideId;
780
+ requirement: RelationQueryRealizationRequirementId;
781
+ expectedCapability: RelationQueryCapability;
782
+ capabilityEvidence: RelationQueryTargetCapabilityEvidenceId[];
783
+ operatingBoundaries: RelationQueryOperatingBoundaryId[];
784
+ preservedGuarantees: RelationQueryGuaranteeCapabilityKind[];
785
+ justification: string;
786
+ }
787
+
788
+ export interface RelationQueryRealizationDiagnosticSeverityOverride {
789
+ code: string;
790
+ severity: DiagnosticSeverity;
791
+ }
792
+
793
+ export type RelationQueryOccurrenceProvenanceMode = 'ExactContributors' | 'NotRequested';
794
+
795
+ export const relationQueryOccurrenceProvenanceModes = {
796
+ exactContributors: 'ExactContributors',
797
+ notRequested: 'NotRequested',
798
+ } as const satisfies Record<string, RelationQueryOccurrenceProvenanceMode>;
799
+
800
+ export const relationQueryOccurrenceProvenanceModeLabels: Record<RelationQueryOccurrenceProvenanceMode, string> = {
801
+ ExactContributors: 'ExactContributors',
802
+ NotRequested: 'NotRequested',
803
+ };
804
+
805
+ export type RelationQueryCapability = {
806
+ readonly $capability: 'logical';
807
+ } & LogicalRelationQueryCapability | {
808
+ readonly $capability: 'expression';
809
+ } & ExpressionRelationQueryCapability | {
810
+ readonly $capability: 'temporal';
811
+ } & TemporalRelationQueryCapability | {
812
+ readonly $capability: 'structural';
813
+ } & StructuralRelationQueryCapability | {
814
+ readonly $capability: 'guarantee';
815
+ } & GuaranteeRelationQueryCapability | {
816
+ readonly $capability: 'operatingBoundaryValidation';
817
+ } & OperatingBoundaryValidationRelationQueryCapability | {
818
+ readonly $capability: 'primitive';
819
+ } & PrimitiveRelationQueryCapability;
820
+
821
+ export interface LogicalRelationQueryCapability {
822
+ kind: RelationQueryLogicalCapabilityKind | number;
823
+ }
824
+
825
+ export interface ExpressionRelationQueryCapability {
826
+ capability: ExprCapabilityId;
827
+ requirementKind: ExprCapabilityRequirementKind | number;
828
+ }
829
+
830
+ export interface TemporalRelationQueryCapability {
831
+ capability: RelationQueryTemporalExecutionCapability | number;
832
+ }
833
+
834
+ export interface StructuralRelationQueryCapability {
835
+ role: RelationQueryStructuralCapabilityRole | number;
836
+ pathKind: RelationQueryStructuralPathKind | number;
837
+ }
838
+
839
+ export interface GuaranteeRelationQueryCapability {
840
+ kind: RelationQueryGuaranteeCapabilityKind | number;
841
+ }
842
+
843
+ export interface OperatingBoundaryValidationRelationQueryCapability {
844
+ boundary: RelationQueryOperatingBoundaryId;
845
+ }
846
+
847
+ export interface PrimitiveRelationQueryCapability {
848
+ kind: RelationQueryPrimitiveCapabilityKind | number;
849
+ }
850
+
851
+ export interface RelationQueryRealizationRequirementOrigin {
852
+ input?: RelationQueryInputId | null;
853
+ node?: QueryNodeId | null;
854
+ semanticSite?: string | null;
855
+ expressionPath?: string | null;
856
+ fieldPath?: FieldPath | null;
857
+ binding?: ValueBindingId | null;
858
+ }
859
+
860
+ export interface RelationQueryRealizationRequirementUse {
861
+ output: RelationQueryRealizationOutputReference;
862
+ effect: RelationQueryRequirementEffect;
863
+ requirement: QueryInputRequirement;
864
+ traces: RelationQueryRealizationTrace[];
865
+ }
866
+
867
+ export type RelationQueryGuaranteeCapabilityKind = 'MissingNullDistinction' | 'AbsenceAvailabilityFailureDistinction' | 'JoinMembership' | 'Cardinality' | 'RelationshipDirection' | 'RelationshipMultiplicity' | 'TemporalDomain' | 'TemporalBoundary' | 'UnboundedTemporalBoundary' | 'Ordering' | 'NullPlacement' | 'StablePaging' | 'Grouping' | 'Aggregation' | 'DuplicateHandling' | 'OutputIdentity' | 'OutputMode' | 'InvariantEnforcement' | 'DeterministicResult' | 'OccurrenceProvenance' | 'EvidenceCompleteness' | 'InconclusiveEvidence' | 'ConsistentSnapshot' | 'CollectionElementCorrelation' | 'RelationRootCorrelation';
868
+
869
+ export const relationQueryGuaranteeCapabilityKinds = {
870
+ missingNullDistinction: 'MissingNullDistinction',
871
+ absenceAvailabilityFailureDistinction: 'AbsenceAvailabilityFailureDistinction',
872
+ joinMembership: 'JoinMembership',
873
+ cardinality: 'Cardinality',
874
+ relationshipDirection: 'RelationshipDirection',
875
+ relationshipMultiplicity: 'RelationshipMultiplicity',
876
+ temporalDomain: 'TemporalDomain',
877
+ temporalBoundary: 'TemporalBoundary',
878
+ unboundedTemporalBoundary: 'UnboundedTemporalBoundary',
879
+ ordering: 'Ordering',
880
+ nullPlacement: 'NullPlacement',
881
+ stablePaging: 'StablePaging',
882
+ grouping: 'Grouping',
883
+ aggregation: 'Aggregation',
884
+ duplicateHandling: 'DuplicateHandling',
885
+ outputIdentity: 'OutputIdentity',
886
+ outputMode: 'OutputMode',
887
+ invariantEnforcement: 'InvariantEnforcement',
888
+ deterministicResult: 'DeterministicResult',
889
+ occurrenceProvenance: 'OccurrenceProvenance',
890
+ evidenceCompleteness: 'EvidenceCompleteness',
891
+ inconclusiveEvidence: 'InconclusiveEvidence',
892
+ consistentSnapshot: 'ConsistentSnapshot',
893
+ collectionElementCorrelation: 'CollectionElementCorrelation',
894
+ relationRootCorrelation: 'RelationRootCorrelation',
895
+ } as const satisfies Record<string, RelationQueryGuaranteeCapabilityKind>;
896
+
897
+ export const relationQueryGuaranteeCapabilityKindLabels: Record<RelationQueryGuaranteeCapabilityKind, string> = {
898
+ MissingNullDistinction: 'MissingNullDistinction',
899
+ AbsenceAvailabilityFailureDistinction: 'AbsenceAvailabilityFailureDistinction',
900
+ JoinMembership: 'JoinMembership',
901
+ Cardinality: 'Cardinality',
902
+ RelationshipDirection: 'RelationshipDirection',
903
+ RelationshipMultiplicity: 'RelationshipMultiplicity',
904
+ TemporalDomain: 'TemporalDomain',
905
+ TemporalBoundary: 'TemporalBoundary',
906
+ UnboundedTemporalBoundary: 'UnboundedTemporalBoundary',
907
+ Ordering: 'Ordering',
908
+ NullPlacement: 'NullPlacement',
909
+ StablePaging: 'StablePaging',
910
+ Grouping: 'Grouping',
911
+ Aggregation: 'Aggregation',
912
+ DuplicateHandling: 'DuplicateHandling',
913
+ OutputIdentity: 'OutputIdentity',
914
+ OutputMode: 'OutputMode',
915
+ InvariantEnforcement: 'InvariantEnforcement',
916
+ DeterministicResult: 'DeterministicResult',
917
+ OccurrenceProvenance: 'OccurrenceProvenance',
918
+ EvidenceCompleteness: 'EvidenceCompleteness',
919
+ InconclusiveEvidence: 'InconclusiveEvidence',
920
+ ConsistentSnapshot: 'ConsistentSnapshot',
921
+ CollectionElementCorrelation: 'CollectionElementCorrelation',
922
+ RelationRootCorrelation: 'RelationRootCorrelation',
923
+ };
924
+
925
+ export interface RelationQueryRealizationStaticFact {
926
+ kind: RelationQueryRealizationStaticFactKind;
927
+ value: string;
928
+ }
929
+
930
+ export interface RelationQueryOperatingBoundaryValidation {
931
+ boundary: RelationQueryOperatingBoundaryId;
932
+ kind: RelationQueryOperatingBoundaryValidationKind;
933
+ capabilityEvidence?: RelationQueryTargetCapabilityEvidenceId | null;
934
+ measuredValue?: string | null;
935
+ }
936
+
937
+ export type RelationQueryUnavailableReason = 'CapabilityNotAdvertised' | 'ProfileVersionUnsupported' | 'OperatingBoundaryMissing' | 'OperatingBoundaryInvalid' | 'CompositionUnavailable' | 'AmbiguousStrategy' | 'CapabilityEvidenceInvalid' | 'OverrideInvalid' | 'PolicyRejected' | 'PrerequisiteBlocked';
938
+
939
+ export const relationQueryUnavailableReasons = {
940
+ capabilityNotAdvertised: 'CapabilityNotAdvertised',
941
+ profileVersionUnsupported: 'ProfileVersionUnsupported',
942
+ operatingBoundaryMissing: 'OperatingBoundaryMissing',
943
+ operatingBoundaryInvalid: 'OperatingBoundaryInvalid',
944
+ compositionUnavailable: 'CompositionUnavailable',
945
+ ambiguousStrategy: 'AmbiguousStrategy',
946
+ capabilityEvidenceInvalid: 'CapabilityEvidenceInvalid',
947
+ overrideInvalid: 'OverrideInvalid',
948
+ policyRejected: 'PolicyRejected',
949
+ prerequisiteBlocked: 'PrerequisiteBlocked',
950
+ } as const satisfies Record<string, RelationQueryUnavailableReason>;
951
+
952
+ export const relationQueryUnavailableReasonLabels: Record<RelationQueryUnavailableReason, string> = {
953
+ CapabilityNotAdvertised: 'CapabilityNotAdvertised',
954
+ ProfileVersionUnsupported: 'ProfileVersionUnsupported',
955
+ OperatingBoundaryMissing: 'OperatingBoundaryMissing',
956
+ OperatingBoundaryInvalid: 'OperatingBoundaryInvalid',
957
+ CompositionUnavailable: 'CompositionUnavailable',
958
+ AmbiguousStrategy: 'AmbiguousStrategy',
959
+ CapabilityEvidenceInvalid: 'CapabilityEvidenceInvalid',
960
+ OverrideInvalid: 'OverrideInvalid',
961
+ PolicyRejected: 'PolicyRejected',
962
+ PrerequisiteBlocked: 'PrerequisiteBlocked',
963
+ };
964
+
965
+ export type RelationQueryOperatingBoundaryKind = 'MaximumInputRows' | 'MaximumOutputRows' | 'MaximumFanOut' | 'MaximumPageSize' | 'MaximumFieldPathDepth' | 'MaximumExpressionDepth' | 'MaximumBatchSize' | 'SingleSource' | 'SinglePartition' | 'MaterializedInputs' | 'CompleteInputEvidence' | 'NonNullOperands' | 'ScalarOperands' | 'HomogeneousTemporalDomain' | 'FiniteTemporalBounds' | 'StableUniqueOrdering' | 'DeterministicProvider' | 'ExactNumericAggregateDomain' | 'ExactTemporalDomain' | 'SuppliedRelationRoot';
966
+
967
+ export const relationQueryOperatingBoundaryKinds = {
968
+ maximumInputRows: 'MaximumInputRows',
969
+ maximumOutputRows: 'MaximumOutputRows',
970
+ maximumFanOut: 'MaximumFanOut',
971
+ maximumPageSize: 'MaximumPageSize',
972
+ maximumFieldPathDepth: 'MaximumFieldPathDepth',
973
+ maximumExpressionDepth: 'MaximumExpressionDepth',
974
+ maximumBatchSize: 'MaximumBatchSize',
975
+ singleSource: 'SingleSource',
976
+ singlePartition: 'SinglePartition',
977
+ materializedInputs: 'MaterializedInputs',
978
+ completeInputEvidence: 'CompleteInputEvidence',
979
+ nonNullOperands: 'NonNullOperands',
980
+ scalarOperands: 'ScalarOperands',
981
+ homogeneousTemporalDomain: 'HomogeneousTemporalDomain',
982
+ finiteTemporalBounds: 'FiniteTemporalBounds',
983
+ stableUniqueOrdering: 'StableUniqueOrdering',
984
+ deterministicProvider: 'DeterministicProvider',
985
+ exactNumericAggregateDomain: 'ExactNumericAggregateDomain',
986
+ exactTemporalDomain: 'ExactTemporalDomain',
987
+ suppliedRelationRoot: 'SuppliedRelationRoot',
988
+ } as const satisfies Record<string, RelationQueryOperatingBoundaryKind>;
989
+
990
+ export const relationQueryOperatingBoundaryKindLabels: Record<RelationQueryOperatingBoundaryKind, string> = {
991
+ MaximumInputRows: 'MaximumInputRows',
992
+ MaximumOutputRows: 'MaximumOutputRows',
993
+ MaximumFanOut: 'MaximumFanOut',
994
+ MaximumPageSize: 'MaximumPageSize',
995
+ MaximumFieldPathDepth: 'MaximumFieldPathDepth',
996
+ MaximumExpressionDepth: 'MaximumExpressionDepth',
997
+ MaximumBatchSize: 'MaximumBatchSize',
998
+ SingleSource: 'SingleSource',
999
+ SinglePartition: 'SinglePartition',
1000
+ MaterializedInputs: 'MaterializedInputs',
1001
+ CompleteInputEvidence: 'CompleteInputEvidence',
1002
+ NonNullOperands: 'NonNullOperands',
1003
+ ScalarOperands: 'ScalarOperands',
1004
+ HomogeneousTemporalDomain: 'HomogeneousTemporalDomain',
1005
+ FiniteTemporalBounds: 'FiniteTemporalBounds',
1006
+ StableUniqueOrdering: 'StableUniqueOrdering',
1007
+ DeterministicProvider: 'DeterministicProvider',
1008
+ ExactNumericAggregateDomain: 'ExactNumericAggregateDomain',
1009
+ ExactTemporalDomain: 'ExactTemporalDomain',
1010
+ SuppliedRelationRoot: 'SuppliedRelationRoot',
1011
+ };
1012
+
1013
+ export type RelationDraftId = string;
1014
+
1015
+ export type RelationId = string;
1016
+
1017
+ export type RelationName = string;
1018
+
1019
+ export interface LogicalQueryDefinition {
1020
+ nodes: LogicalQueryNode[];
1021
+ parameters: QueryParameterDefinition[];
1022
+ }
1023
+
1024
+ export interface RelationDraftProjection {
1025
+ id: QueryNodeId;
1026
+ input: QueryNodeId;
1027
+ resultBinding: ValueBindingId;
1028
+ resultShape: QualifiedShapeId;
1029
+ assignments: RelationDraftAssignmentSlot[];
1030
+ }
1031
+
1032
+ export type RelationOutputMode = 'OnePerRoot' | 'ZeroOrOnePerRoot' | 'ManyPerRoot' | 'Set';
1033
+
1034
+ export const relationOutputModes = {
1035
+ onePerRoot: 'OnePerRoot',
1036
+ zeroOrOnePerRoot: 'ZeroOrOnePerRoot',
1037
+ manyPerRoot: 'ManyPerRoot',
1038
+ set: 'Set',
1039
+ } as const satisfies Record<string, RelationOutputMode>;
1040
+
1041
+ export const relationOutputModeLabels: Record<RelationOutputMode, string> = {
1042
+ OnePerRoot: 'OnePerRoot',
1043
+ ZeroOrOnePerRoot: 'ZeroOrOnePerRoot',
1044
+ ManyPerRoot: 'ManyPerRoot',
1045
+ Set: 'Set',
1046
+ };
1047
+
32
1048
  export type Expr = {
33
1049
  readonly $expr: 'field';
34
1050
  } & FieldExpr | {
@@ -54,176 +1070,805 @@ export type Expr = {
54
1070
  } & AggregateExpr;
55
1071
 
56
1072
  export interface FieldExpr {
57
- Path: FieldPath;
1073
+ path: FieldPath;
1074
+ binding?: ValueBindingId | null;
58
1075
  }
59
1076
 
60
1077
  export type CurrentItemExpr = Record<never, never>;
61
1078
 
62
1079
  export interface ParameterExpr {
63
- Parameter: string;
1080
+ parameter: string;
64
1081
  }
65
1082
 
66
1083
  export interface ConstantExpr {
67
- Value: unknown;
1084
+ value: unknown;
68
1085
  }
69
1086
 
70
1087
  export interface UnaryExpr {
71
- Operator: UnaryOperator;
72
- Operand: Expr;
1088
+ operator: UnaryOperator;
1089
+ operand: Expr;
73
1090
  }
74
1091
 
75
1092
  export interface BinaryExpr {
76
- Operator: BinaryOperator;
77
- Left: Expr;
78
- Right: Expr;
1093
+ operator: BinaryOperator;
1094
+ left: Expr;
1095
+ right: Expr;
79
1096
  }
80
1097
 
81
1098
  export interface ConditionalExpr {
82
- Test: Expr;
83
- IfTrue: Expr;
84
- IfFalse: Expr;
85
- ReturnType: TypeRef;
1099
+ test: Expr;
1100
+ ifTrue: Expr;
1101
+ ifFalse: Expr;
1102
+ returnType: TypeRef;
86
1103
  }
87
1104
 
88
1105
  export interface CallExpr {
89
- Function: string;
90
- Arguments: Expr[];
91
- ReturnType: TypeRef;
1106
+ function: string;
1107
+ arguments: Expr[];
1108
+ returnType: TypeRef;
92
1109
  }
93
1110
 
94
1111
  export interface FieldRefExpr {
95
- Path: FieldPath;
96
- Type: TypeRef;
1112
+ path: FieldPath;
1113
+ type: TypeRef;
97
1114
  }
98
1115
 
99
1116
  export interface LiteralExpr {
100
- Type: TypeRef;
101
- Value: unknown;
1117
+ type: TypeRef;
1118
+ value: unknown;
102
1119
  }
103
1120
 
104
1121
  export interface AggregateExpr {
105
- Operator: AggregateOperator;
106
- Source: Expr;
107
- GroupBy: Expr[];
108
- ReturnType: TypeRef;
109
- }
110
-
111
- export interface MappingDefinition {
112
- Id: MappingId;
113
- Name: MappingName;
114
- Kind: MappingKind;
115
- SourceShapeId?: ShapeId | null;
116
- TargetShapeId: ShapeId;
117
- Assignments: FieldAssignment[];
118
- Predicate?: Expr | null;
119
- ForEach?: Expr | null;
120
- Key?: Expr | null;
121
- Entity?: Expr | null;
122
- Scope: MappingScope;
123
- Direction: MappingDirection;
124
- NestedMappings: NestedMapping[];
125
- CollectionMappings: CollectionMapping[];
126
- Metadata: MappingMetadata;
127
- }
128
-
129
- export interface MaterializationSpec {
130
- IsEnabled: boolean;
131
- Strategy: MaterializationStrategy;
132
- Freshness: FreshnessPolicy;
133
- AllowCodegen: boolean;
134
- }
135
-
136
- export interface RelationMetadata {
137
- AllowCodegen: boolean;
138
- Deterministic: boolean;
139
- Hints: ({
140
- Key: string;
141
- Value: string;
142
- })[];
1122
+ operator: AggregateOperator;
1123
+ source: Expr;
1124
+ groupBy: Expr[];
1125
+ returnType: TypeRef;
143
1126
  }
144
1127
 
145
1128
  export interface InvariantDefinition {
146
- Name: string;
147
- Expression: Expr;
148
- Message?: string | null;
1129
+ name: string;
1130
+ entity?: EntityId | null;
1131
+ expression: Expr;
1132
+ message?: string | null;
1133
+ }
1134
+
1135
+ export type DocumentOrigin = 'Unknown' | 'User' | 'System' | 'Imported' | 'Generated' | 'Compiled' | 'Extracted';
1136
+
1137
+ export const documentOrigins = {
1138
+ unknown: 'Unknown',
1139
+ user: 'User',
1140
+ system: 'System',
1141
+ imported: 'Imported',
1142
+ generated: 'Generated',
1143
+ compiled: 'Compiled',
1144
+ extracted: 'Extracted',
1145
+ } as const satisfies Record<string, DocumentOrigin>;
1146
+
1147
+ export const documentOriginLabels: Record<DocumentOrigin, string> = {
1148
+ Unknown: 'Unknown',
1149
+ User: 'User',
1150
+ System: 'System',
1151
+ Imported: 'Imported',
1152
+ Generated: 'Generated',
1153
+ Compiled: 'Compiled',
1154
+ Extracted: 'Extracted',
1155
+ };
1156
+
1157
+ export type AnnotationKey = string;
1158
+
1159
+ export type AnnotationValue = unknown;
1160
+
1161
+ export interface RelationDraftProducerArtifactReference {
1162
+ kind: string;
1163
+ value: string;
1164
+ }
1165
+
1166
+ export interface RelationDraftConventionDecision {
1167
+ ruleId: string;
1168
+ slotId: QueryAssignmentId;
1169
+ candidateId?: RelationDraftCandidateId | null;
1170
+ sourceBinding: ValueBindingId;
1171
+ source?: FieldPath | null;
1172
+ target: FieldPath;
149
1173
  }
150
1174
 
151
- export interface SourceAlias {
152
- Value: string;
1175
+ export interface RelationOutputDefinition {
1176
+ node: QueryNodeId;
1177
+ shape: QualifiedShapeId;
1178
+ mode: RelationOutputMode;
1179
+ key?: Expr | null;
153
1180
  }
154
1181
 
155
- export type SourceCardinality = 0 | 1;
1182
+ export type QueryId = string;
156
1183
 
157
- export const sourceCardinalities = {
158
- single: 0,
159
- many: 1,
160
- } as const satisfies Record<string, SourceCardinality>;
1184
+ export type QueryName = string;
1185
+
1186
+ export type QueryResultDefinition = {
1187
+ readonly $result: 'rows';
1188
+ } & RowsQueryResultDefinition | {
1189
+ readonly $result: 'aggregation';
1190
+ } & AggregationQueryResultDefinition;
1191
+
1192
+ export interface RowsQueryResultDefinition {
1193
+ id: QueryResultId;
1194
+ input: QueryNodeId;
1195
+ }
161
1196
 
162
- export const sourceCardinalityLabels: Record<SourceCardinality, string> = {
163
- 0: 'Single',
164
- 1: 'Many',
1197
+ export interface AggregationQueryResultDefinition {
1198
+ id: QueryResultId;
1199
+ input: QueryNodeId;
1200
+ }
1201
+
1202
+ export interface RelationshipDefinition {
1203
+ id: RelationshipId;
1204
+ sourceShape: QualifiedShapeId;
1205
+ sourceReference: FieldPath;
1206
+ targetShape: QualifiedShapeId;
1207
+ targetKey: RelationshipTargetKey;
1208
+ sourceReferenceUniqueness: SourceReferenceUniqueness;
1209
+ }
1210
+
1211
+ export interface RelationQueryLogicalPlan {
1212
+ nodes: RelationQueryLogicalPlanNode[];
1213
+ retainedNodes: QueryNodeId[];
1214
+ evaluationOrder: QueryNodeId[];
1215
+ }
1216
+
1217
+ export interface RelationQueryExplainRequirementGraph {
1218
+ inputs: RelationQueryExplainRequirementInput[];
1219
+ outputs: RelationQueryOutputReference[];
1220
+ edges: RelationQueryExplainRequirementEdge[];
1221
+ }
1222
+
1223
+ export interface RelationQueryNativeResultBranch {
1224
+ id: RelationQueryNativeResultBranchId;
1225
+ kind: RelationQueryNativeResultKind;
1226
+ node: QueryNodeId;
1227
+ binding: ValueBindingId;
1228
+ shape: QualifiedShapeId;
1229
+ relation?: RelationId | null;
1230
+ queryResult?: QueryResultId | null;
1231
+ outputs: RelationQueryOutputReference[];
1232
+ fields: RelationQueryFieldReference[];
1233
+ }
1234
+
1235
+ export type RelationQueryPhysicalPlanningStatus = 'Planned' | 'Unavailable' | 'Invalid';
1236
+
1237
+ export const relationQueryPhysicalPlanningStatuses = {
1238
+ planned: 'Planned',
1239
+ unavailable: 'Unavailable',
1240
+ invalid: 'Invalid',
1241
+ } as const satisfies Record<string, RelationQueryPhysicalPlanningStatus>;
1242
+
1243
+ export const relationQueryPhysicalPlanningStatusLabels: Record<RelationQueryPhysicalPlanningStatus, string> = {
1244
+ Planned: 'Planned',
1245
+ Unavailable: 'Unavailable',
1246
+ Invalid: 'Invalid',
165
1247
  };
166
1248
 
167
- export type JoinKind = 0 | 1 | 2 | 3;
1249
+ export type RelationQueryNativeCompilationStatus = 'Exact' | 'Unsupported' | 'Invalid';
168
1250
 
169
- export const joinKinds = {
170
- inner: 0,
171
- left: 1,
172
- right: 2,
173
- full: 3,
174
- } as const satisfies Record<string, JoinKind>;
1251
+ export const relationQueryNativeCompilationStatuses = {
1252
+ exact: 'Exact',
1253
+ unsupported: 'Unsupported',
1254
+ invalid: 'Invalid',
1255
+ } as const satisfies Record<string, RelationQueryNativeCompilationStatus>;
175
1256
 
176
- export const joinKindLabels: Record<JoinKind, string> = {
177
- 0: 'Inner',
178
- 1: 'Left',
179
- 2: 'Right',
180
- 3: 'Full',
1257
+ export const relationQueryNativeCompilationStatusLabels: Record<RelationQueryNativeCompilationStatus, string> = {
1258
+ Exact: 'Exact',
1259
+ Unsupported: 'Unsupported',
1260
+ Invalid: 'Invalid',
181
1261
  };
182
1262
 
183
- export interface FieldPath {
184
- Segments: FieldPathSegment[];
1263
+ export interface RelationQueryNativeArtifactReference {
1264
+ branch: RelationQueryNativeResultBranchId;
1265
+ artifactSchemaVersion?: string | null;
1266
+ fingerprint: RelationQueryNativeArtifactFingerprintReference;
1267
+ provenance: RelationQueryNativeCompilationProvenance;
1268
+ }
1269
+
1270
+ export interface RelationQueryNativeCompilationDiagnostic {
1271
+ code: string;
1272
+ severity: DiagnosticSeverity;
1273
+ message: string;
1274
+ branch?: RelationQueryNativeResultBranchId | null;
1275
+ node?: QueryNodeId | null;
1276
+ input?: RelationQueryInputId | null;
1277
+ requirement?: RelationQueryRealizationRequirementId | null;
1278
+ capabilityEvidence?: RelationQueryTargetCapabilityEvidenceId | null;
1279
+ operatingBoundary?: RelationQueryOperatingBoundaryId | null;
1280
+ override?: RelationQueryRealizationOverrideId | null;
1281
+ semanticSite?: string | null;
1282
+ contextEvidence?: RelationQueryContextEvidenceId | null;
1283
+ field?: FieldPath | null;
1284
+ placementBinding?: RelationQuerySourcePlacementBindingId | null;
1285
+ bindingSetting?: string | null;
1286
+ resolution?: string | null;
1287
+ configurationOrigin?: RelationQueryConfigurationValueOrigin | null;
1288
+ configurationAuthority?: string | null;
1289
+ adapterDecisionCode?: RelationQueryAdapterDecisionCode | null;
1290
+ }
1291
+
1292
+ export interface RelationQueryEvaluationFingerprint {
1293
+ algorithm: string;
1294
+ canonicalization: string;
1295
+ value: string;
1296
+ }
1297
+
1298
+ export type RelationQueryExecutionStatus = 'Succeeded' | 'Incomplete' | 'Failed';
1299
+
1300
+ export const relationQueryExecutionStatuses = {
1301
+ succeeded: 'Succeeded',
1302
+ incomplete: 'Incomplete',
1303
+ failed: 'Failed',
1304
+ } as const satisfies Record<string, RelationQueryExecutionStatus>;
1305
+
1306
+ export const relationQueryExecutionStatusLabels: Record<RelationQueryExecutionStatus, string> = {
1307
+ Succeeded: 'Succeeded',
1308
+ Incomplete: 'Incomplete',
1309
+ Failed: 'Failed',
1310
+ };
1311
+
1312
+ export interface RelationQueryExplainResultSummary {
1313
+ branch: RelationQueryNativeResultBranchId;
1314
+ kind: RelationQueryExecutionResultKind;
1315
+ shape: QualifiedShapeId;
1316
+ state: RelationQueryExecutionOutputState;
1317
+ rowCount: number;
1318
+ }
1319
+
1320
+ export interface RelationQueryExplainRequirementGapSummary {
1321
+ cause: RelationRequirementGapCause;
1322
+ input: RelationQueryInputId;
1323
+ affectedOutputs: RelationQueryOutputId[];
1324
+ occurrenceCount: number;
1325
+ suggestedResolutions: RelationRequirementGapResolutionKind[];
1326
+ }
1327
+
1328
+ export interface RelationQueryEvaluationObservationFingerprint {
1329
+ algorithm: string;
1330
+ canonicalization: string;
1331
+ value: string;
1332
+ }
1333
+
1334
+ export interface FieldPathSegment {
1335
+ kind: SegmentKind;
1336
+ segment?: string | null;
1337
+ }
1338
+
1339
+ export type RelationQueryPhysicalLoweringRuleId = string;
1340
+
1341
+ export interface RelationQueryPhysicalCapabilityEvidenceReference {
1342
+ source: RelationQuerySourceInstanceId;
1343
+ target: RelationQueryTargetId;
1344
+ profile: RelationQueryTargetProfileId;
1345
+ evidence: RelationQueryTargetCapabilityEvidenceId;
1346
+ }
1347
+
1348
+ export type RelationQueryPhysicalPlanningDecisionId = string;
1349
+
1350
+ export interface RelationQueryAdapterBindingFingerprint {
1351
+ algorithm: string;
1352
+ canonicalization: string;
1353
+ value: string;
1354
+ }
1355
+
1356
+ export type RelationQueryBoundAssessmentStatus = 'Available' | 'Unavailable' | 'Invalid' | 'Blocked';
1357
+
1358
+ export const relationQueryBoundAssessmentStatuses = {
1359
+ available: 'Available',
1360
+ unavailable: 'Unavailable',
1361
+ invalid: 'Invalid',
1362
+ blocked: 'Blocked',
1363
+ } as const satisfies Record<string, RelationQueryBoundAssessmentStatus>;
1364
+
1365
+ export const relationQueryBoundAssessmentStatusLabels: Record<RelationQueryBoundAssessmentStatus, string> = {
1366
+ Available: 'Available',
1367
+ Unavailable: 'Unavailable',
1368
+ Invalid: 'Invalid',
1369
+ Blocked: 'Blocked',
1370
+ };
1371
+
1372
+ export type RelationQueryLogicalCapabilityKind = 'Source' | 'Filter' | 'RelationshipTraversal' | 'ForwardRelationshipTraversal' | 'InverseRelationshipTraversal' | 'AtMostOneRelationshipTraversal' | 'ManyRelationshipTraversal' | 'RequiredRelationshipTraversal' | 'OptionalRelationshipTraversal' | 'Join' | 'InnerJoin' | 'LeftOuterJoin' | 'RightOuterJoin' | 'FullOuterJoin' | 'TemporalJoin' | 'ExpandCollection' | 'Projection' | 'ProjectionAssignment' | 'DistinctRows' | 'DistinctKeys' | 'Aggregation' | 'AggregateGrouping' | 'AggregateFilter' | 'CountAggregate' | 'SumAggregate' | 'MinimumAggregate' | 'MaximumAggregate' | 'AnyAggregate' | 'AllAggregate' | 'Ordering' | 'AscendingOrdering' | 'DescendingOrdering' | 'NullsFirst' | 'NullsLast' | 'StableTieOrdering' | 'OffsetPaging' | 'KeysetPaging' | 'OnePerRootRelationOutput' | 'ZeroOrOnePerRootRelationOutput' | 'ManyPerRootRelationOutput' | 'SetRelationOutput' | 'RelationOutputIdentity' | 'RelationInvariant' | 'QueryRowsResult' | 'QueryAggregationResult' | 'AlwaysPresentBinding' | 'MayBeAbsentBinding' | 'AverageAggregate';
1373
+
1374
+ export const relationQueryLogicalCapabilityKinds = {
1375
+ source: 'Source',
1376
+ filter: 'Filter',
1377
+ relationshipTraversal: 'RelationshipTraversal',
1378
+ forwardRelationshipTraversal: 'ForwardRelationshipTraversal',
1379
+ inverseRelationshipTraversal: 'InverseRelationshipTraversal',
1380
+ atMostOneRelationshipTraversal: 'AtMostOneRelationshipTraversal',
1381
+ manyRelationshipTraversal: 'ManyRelationshipTraversal',
1382
+ requiredRelationshipTraversal: 'RequiredRelationshipTraversal',
1383
+ optionalRelationshipTraversal: 'OptionalRelationshipTraversal',
1384
+ join: 'Join',
1385
+ innerJoin: 'InnerJoin',
1386
+ leftOuterJoin: 'LeftOuterJoin',
1387
+ rightOuterJoin: 'RightOuterJoin',
1388
+ fullOuterJoin: 'FullOuterJoin',
1389
+ temporalJoin: 'TemporalJoin',
1390
+ expandCollection: 'ExpandCollection',
1391
+ projection: 'Projection',
1392
+ projectionAssignment: 'ProjectionAssignment',
1393
+ distinctRows: 'DistinctRows',
1394
+ distinctKeys: 'DistinctKeys',
1395
+ aggregation: 'Aggregation',
1396
+ aggregateGrouping: 'AggregateGrouping',
1397
+ aggregateFilter: 'AggregateFilter',
1398
+ countAggregate: 'CountAggregate',
1399
+ sumAggregate: 'SumAggregate',
1400
+ minimumAggregate: 'MinimumAggregate',
1401
+ maximumAggregate: 'MaximumAggregate',
1402
+ anyAggregate: 'AnyAggregate',
1403
+ allAggregate: 'AllAggregate',
1404
+ ordering: 'Ordering',
1405
+ ascendingOrdering: 'AscendingOrdering',
1406
+ descendingOrdering: 'DescendingOrdering',
1407
+ nullsFirst: 'NullsFirst',
1408
+ nullsLast: 'NullsLast',
1409
+ stableTieOrdering: 'StableTieOrdering',
1410
+ offsetPaging: 'OffsetPaging',
1411
+ keysetPaging: 'KeysetPaging',
1412
+ onePerRootRelationOutput: 'OnePerRootRelationOutput',
1413
+ zeroOrOnePerRootRelationOutput: 'ZeroOrOnePerRootRelationOutput',
1414
+ manyPerRootRelationOutput: 'ManyPerRootRelationOutput',
1415
+ setRelationOutput: 'SetRelationOutput',
1416
+ relationOutputIdentity: 'RelationOutputIdentity',
1417
+ relationInvariant: 'RelationInvariant',
1418
+ queryRowsResult: 'QueryRowsResult',
1419
+ queryAggregationResult: 'QueryAggregationResult',
1420
+ alwaysPresentBinding: 'AlwaysPresentBinding',
1421
+ mayBeAbsentBinding: 'MayBeAbsentBinding',
1422
+ averageAggregate: 'AverageAggregate',
1423
+ } as const satisfies Record<string, RelationQueryLogicalCapabilityKind>;
1424
+
1425
+ export const relationQueryLogicalCapabilityKindLabels: Record<RelationQueryLogicalCapabilityKind, string> = {
1426
+ Source: 'Source',
1427
+ Filter: 'Filter',
1428
+ RelationshipTraversal: 'RelationshipTraversal',
1429
+ ForwardRelationshipTraversal: 'ForwardRelationshipTraversal',
1430
+ InverseRelationshipTraversal: 'InverseRelationshipTraversal',
1431
+ AtMostOneRelationshipTraversal: 'AtMostOneRelationshipTraversal',
1432
+ ManyRelationshipTraversal: 'ManyRelationshipTraversal',
1433
+ RequiredRelationshipTraversal: 'RequiredRelationshipTraversal',
1434
+ OptionalRelationshipTraversal: 'OptionalRelationshipTraversal',
1435
+ Join: 'Join',
1436
+ InnerJoin: 'InnerJoin',
1437
+ LeftOuterJoin: 'LeftOuterJoin',
1438
+ RightOuterJoin: 'RightOuterJoin',
1439
+ FullOuterJoin: 'FullOuterJoin',
1440
+ TemporalJoin: 'TemporalJoin',
1441
+ ExpandCollection: 'ExpandCollection',
1442
+ Projection: 'Projection',
1443
+ ProjectionAssignment: 'ProjectionAssignment',
1444
+ DistinctRows: 'DistinctRows',
1445
+ DistinctKeys: 'DistinctKeys',
1446
+ Aggregation: 'Aggregation',
1447
+ AggregateGrouping: 'AggregateGrouping',
1448
+ AggregateFilter: 'AggregateFilter',
1449
+ CountAggregate: 'CountAggregate',
1450
+ SumAggregate: 'SumAggregate',
1451
+ MinimumAggregate: 'MinimumAggregate',
1452
+ MaximumAggregate: 'MaximumAggregate',
1453
+ AnyAggregate: 'AnyAggregate',
1454
+ AllAggregate: 'AllAggregate',
1455
+ Ordering: 'Ordering',
1456
+ AscendingOrdering: 'AscendingOrdering',
1457
+ DescendingOrdering: 'DescendingOrdering',
1458
+ NullsFirst: 'NullsFirst',
1459
+ NullsLast: 'NullsLast',
1460
+ StableTieOrdering: 'StableTieOrdering',
1461
+ OffsetPaging: 'OffsetPaging',
1462
+ KeysetPaging: 'KeysetPaging',
1463
+ OnePerRootRelationOutput: 'OnePerRootRelationOutput',
1464
+ ZeroOrOnePerRootRelationOutput: 'ZeroOrOnePerRootRelationOutput',
1465
+ ManyPerRootRelationOutput: 'ManyPerRootRelationOutput',
1466
+ SetRelationOutput: 'SetRelationOutput',
1467
+ RelationOutputIdentity: 'RelationOutputIdentity',
1468
+ RelationInvariant: 'RelationInvariant',
1469
+ QueryRowsResult: 'QueryRowsResult',
1470
+ QueryAggregationResult: 'QueryAggregationResult',
1471
+ AlwaysPresentBinding: 'AlwaysPresentBinding',
1472
+ MayBeAbsentBinding: 'MayBeAbsentBinding',
1473
+ AverageAggregate: 'AverageAggregate',
1474
+ };
1475
+
1476
+ export interface ExprCapabilityId {
1477
+ value: string;
1478
+ }
1479
+
1480
+ export type ExprCapabilityRequirementKind = 'Operation' | 'Ambient';
1481
+
1482
+ export const exprCapabilityRequirementKinds = {
1483
+ operation: 'Operation',
1484
+ ambient: 'Ambient',
1485
+ } as const satisfies Record<string, ExprCapabilityRequirementKind>;
1486
+
1487
+ export const exprCapabilityRequirementKindLabels: Record<ExprCapabilityRequirementKind, string> = {
1488
+ Operation: 'Operation',
1489
+ Ambient: 'Ambient',
1490
+ };
1491
+
1492
+ export type RelationQueryTemporalExecutionCapability = 'PointInInterval' | 'IntervalOverlap' | 'InclusiveBoundary' | 'ExclusiveBoundary' | 'UnboundedBoundary' | 'NullAsUnbounded' | 'DateDomain' | 'DateTimeDomain' | 'InstantDomain' | 'PreserveAllMatches' | 'InnerJoin' | 'LeftOuterJoin' | 'RightOuterJoin' | 'FullOuterJoin' | 'ValidateIntervals' | 'InconclusiveEvidence';
1493
+
1494
+ export const relationQueryTemporalExecutionCapabilities = {
1495
+ pointInInterval: 'PointInInterval',
1496
+ intervalOverlap: 'IntervalOverlap',
1497
+ inclusiveBoundary: 'InclusiveBoundary',
1498
+ exclusiveBoundary: 'ExclusiveBoundary',
1499
+ unboundedBoundary: 'UnboundedBoundary',
1500
+ nullAsUnbounded: 'NullAsUnbounded',
1501
+ dateDomain: 'DateDomain',
1502
+ dateTimeDomain: 'DateTimeDomain',
1503
+ instantDomain: 'InstantDomain',
1504
+ preserveAllMatches: 'PreserveAllMatches',
1505
+ innerJoin: 'InnerJoin',
1506
+ leftOuterJoin: 'LeftOuterJoin',
1507
+ rightOuterJoin: 'RightOuterJoin',
1508
+ fullOuterJoin: 'FullOuterJoin',
1509
+ validateIntervals: 'ValidateIntervals',
1510
+ inconclusiveEvidence: 'InconclusiveEvidence',
1511
+ } as const satisfies Record<string, RelationQueryTemporalExecutionCapability>;
1512
+
1513
+ export const relationQueryTemporalExecutionCapabilityLabels: Record<RelationQueryTemporalExecutionCapability, string> = {
1514
+ PointInInterval: 'PointInInterval',
1515
+ IntervalOverlap: 'IntervalOverlap',
1516
+ InclusiveBoundary: 'InclusiveBoundary',
1517
+ ExclusiveBoundary: 'ExclusiveBoundary',
1518
+ UnboundedBoundary: 'UnboundedBoundary',
1519
+ NullAsUnbounded: 'NullAsUnbounded',
1520
+ DateDomain: 'DateDomain',
1521
+ DateTimeDomain: 'DateTimeDomain',
1522
+ InstantDomain: 'InstantDomain',
1523
+ PreserveAllMatches: 'PreserveAllMatches',
1524
+ InnerJoin: 'InnerJoin',
1525
+ LeftOuterJoin: 'LeftOuterJoin',
1526
+ RightOuterJoin: 'RightOuterJoin',
1527
+ FullOuterJoin: 'FullOuterJoin',
1528
+ ValidateIntervals: 'ValidateIntervals',
1529
+ InconclusiveEvidence: 'InconclusiveEvidence',
1530
+ };
1531
+
1532
+ export type RelationQueryStructuralCapabilityRole = 'BindingRead' | 'CurrentItemRead' | 'OccurrenceEvidenceReconstruction' | 'ProjectionTarget' | 'GroupingTarget' | 'AggregateTarget' | 'OutputSelection' | 'CompleteValue';
1533
+
1534
+ export const relationQueryStructuralCapabilityRoles = {
1535
+ bindingRead: 'BindingRead',
1536
+ currentItemRead: 'CurrentItemRead',
1537
+ occurrenceEvidenceReconstruction: 'OccurrenceEvidenceReconstruction',
1538
+ projectionTarget: 'ProjectionTarget',
1539
+ groupingTarget: 'GroupingTarget',
1540
+ aggregateTarget: 'AggregateTarget',
1541
+ outputSelection: 'OutputSelection',
1542
+ completeValue: 'CompleteValue',
1543
+ } as const satisfies Record<string, RelationQueryStructuralCapabilityRole>;
1544
+
1545
+ export const relationQueryStructuralCapabilityRoleLabels: Record<RelationQueryStructuralCapabilityRole, string> = {
1546
+ BindingRead: 'BindingRead',
1547
+ CurrentItemRead: 'CurrentItemRead',
1548
+ OccurrenceEvidenceReconstruction: 'OccurrenceEvidenceReconstruction',
1549
+ ProjectionTarget: 'ProjectionTarget',
1550
+ GroupingTarget: 'GroupingTarget',
1551
+ AggregateTarget: 'AggregateTarget',
1552
+ OutputSelection: 'OutputSelection',
1553
+ CompleteValue: 'CompleteValue',
1554
+ };
1555
+
1556
+ export type RelationQueryStructuralPathKind = 'RootValue' | 'TopLevelField' | 'NestedField' | 'CollectionElement' | 'NestedCollectionElement';
1557
+
1558
+ export const relationQueryStructuralPathKinds = {
1559
+ rootValue: 'RootValue',
1560
+ topLevelField: 'TopLevelField',
1561
+ nestedField: 'NestedField',
1562
+ collectionElement: 'CollectionElement',
1563
+ nestedCollectionElement: 'NestedCollectionElement',
1564
+ } as const satisfies Record<string, RelationQueryStructuralPathKind>;
1565
+
1566
+ export const relationQueryStructuralPathKindLabels: Record<RelationQueryStructuralPathKind, string> = {
1567
+ RootValue: 'RootValue',
1568
+ TopLevelField: 'TopLevelField',
1569
+ NestedField: 'NestedField',
1570
+ CollectionElement: 'CollectionElement',
1571
+ NestedCollectionElement: 'NestedCollectionElement',
1572
+ };
1573
+
1574
+ export type RelationQueryPrimitiveCapabilityKind = 'KeyExtraction' | 'BatchedKeyLookup' | 'PredicateRead' | 'CompleteSetEnumeration' | 'LocalCorrelation' | 'HashJoin' | 'StableSort' | 'LocalAggregation' | 'FieldProjection' | 'NullAwareComparison' | 'TemporalComparison' | 'IntervalPredicate' | 'ObservationIdentityRead' | 'RelationshipReferenceRead' | 'ParameterBinding' | 'AmbientCapabilityBinding' | 'OutputObjectConstruction' | 'ProvenanceTracking' | 'BatchedPredicateLookup' | 'InvariantEvaluation' | 'OffsetPaging' | 'KeysetSeek';
1575
+
1576
+ export const relationQueryPrimitiveCapabilityKinds = {
1577
+ keyExtraction: 'KeyExtraction',
1578
+ batchedKeyLookup: 'BatchedKeyLookup',
1579
+ predicateRead: 'PredicateRead',
1580
+ completeSetEnumeration: 'CompleteSetEnumeration',
1581
+ localCorrelation: 'LocalCorrelation',
1582
+ hashJoin: 'HashJoin',
1583
+ stableSort: 'StableSort',
1584
+ localAggregation: 'LocalAggregation',
1585
+ fieldProjection: 'FieldProjection',
1586
+ nullAwareComparison: 'NullAwareComparison',
1587
+ temporalComparison: 'TemporalComparison',
1588
+ intervalPredicate: 'IntervalPredicate',
1589
+ observationIdentityRead: 'ObservationIdentityRead',
1590
+ relationshipReferenceRead: 'RelationshipReferenceRead',
1591
+ parameterBinding: 'ParameterBinding',
1592
+ ambientCapabilityBinding: 'AmbientCapabilityBinding',
1593
+ outputObjectConstruction: 'OutputObjectConstruction',
1594
+ provenanceTracking: 'ProvenanceTracking',
1595
+ batchedPredicateLookup: 'BatchedPredicateLookup',
1596
+ invariantEvaluation: 'InvariantEvaluation',
1597
+ offsetPaging: 'OffsetPaging',
1598
+ keysetSeek: 'KeysetSeek',
1599
+ } as const satisfies Record<string, RelationQueryPrimitiveCapabilityKind>;
1600
+
1601
+ export const relationQueryPrimitiveCapabilityKindLabels: Record<RelationQueryPrimitiveCapabilityKind, string> = {
1602
+ KeyExtraction: 'KeyExtraction',
1603
+ BatchedKeyLookup: 'BatchedKeyLookup',
1604
+ PredicateRead: 'PredicateRead',
1605
+ CompleteSetEnumeration: 'CompleteSetEnumeration',
1606
+ LocalCorrelation: 'LocalCorrelation',
1607
+ HashJoin: 'HashJoin',
1608
+ StableSort: 'StableSort',
1609
+ LocalAggregation: 'LocalAggregation',
1610
+ FieldProjection: 'FieldProjection',
1611
+ NullAwareComparison: 'NullAwareComparison',
1612
+ TemporalComparison: 'TemporalComparison',
1613
+ IntervalPredicate: 'IntervalPredicate',
1614
+ ObservationIdentityRead: 'ObservationIdentityRead',
1615
+ RelationshipReferenceRead: 'RelationshipReferenceRead',
1616
+ ParameterBinding: 'ParameterBinding',
1617
+ AmbientCapabilityBinding: 'AmbientCapabilityBinding',
1618
+ OutputObjectConstruction: 'OutputObjectConstruction',
1619
+ ProvenanceTracking: 'ProvenanceTracking',
1620
+ BatchedPredicateLookup: 'BatchedPredicateLookup',
1621
+ InvariantEvaluation: 'InvariantEvaluation',
1622
+ OffsetPaging: 'OffsetPaging',
1623
+ KeysetSeek: 'KeysetSeek',
1624
+ };
1625
+
1626
+ export interface RelationQueryRealizationOutputReference {
1627
+ id: RelationQueryOutputId;
1628
+ kind: RelationQueryOutputReferenceKind;
1629
+ node: QueryNodeId;
1630
+ shape: QualifiedShapeId;
1631
+ relation?: RelationId | null;
1632
+ queryResult?: QueryResultId | null;
1633
+ field?: RelationQueryFieldReference | null;
1634
+ }
1635
+
1636
+ export type RelationQueryRequirementEffect = 'Value' | 'Identity' | 'Membership' | 'Correlation' | 'Acquisition' | 'Cardinality' | 'Ordering' | 'Grouping' | 'Aggregation' | 'Pagination' | 'Validation' | 'Evaluation';
1637
+
1638
+ export const relationQueryRequirementEffects = {
1639
+ value: 'Value',
1640
+ identity: 'Identity',
1641
+ membership: 'Membership',
1642
+ correlation: 'Correlation',
1643
+ acquisition: 'Acquisition',
1644
+ cardinality: 'Cardinality',
1645
+ ordering: 'Ordering',
1646
+ grouping: 'Grouping',
1647
+ aggregation: 'Aggregation',
1648
+ pagination: 'Pagination',
1649
+ validation: 'Validation',
1650
+ evaluation: 'Evaluation',
1651
+ } as const satisfies Record<string, RelationQueryRequirementEffect>;
1652
+
1653
+ export const relationQueryRequirementEffectLabels: Record<RelationQueryRequirementEffect, string> = {
1654
+ Value: 'Value',
1655
+ Identity: 'Identity',
1656
+ Membership: 'Membership',
1657
+ Correlation: 'Correlation',
1658
+ Acquisition: 'Acquisition',
1659
+ Cardinality: 'Cardinality',
1660
+ Ordering: 'Ordering',
1661
+ Grouping: 'Grouping',
1662
+ Aggregation: 'Aggregation',
1663
+ Pagination: 'Pagination',
1664
+ Validation: 'Validation',
1665
+ Evaluation: 'Evaluation',
1666
+ };
1667
+
1668
+ export type QueryInputRequirement = 'Optional' | 'Required';
1669
+
1670
+ export const queryInputRequirements = {
1671
+ optional: 'Optional',
1672
+ required: 'Required',
1673
+ } as const satisfies Record<string, QueryInputRequirement>;
1674
+
1675
+ export const queryInputRequirementLabels: Record<QueryInputRequirement, string> = {
1676
+ Optional: 'Optional',
1677
+ Required: 'Required',
1678
+ };
1679
+
1680
+ export interface RelationQueryRealizationTrace {
1681
+ steps: RelationQueryRealizationTraceStep[];
1682
+ }
1683
+
1684
+ export type RelationQueryRealizationStaticFactKind = 'FieldPathDepth' | 'ExpressionDepth' | 'PageSize';
1685
+
1686
+ export const relationQueryRealizationStaticFactKinds = {
1687
+ fieldPathDepth: 'FieldPathDepth',
1688
+ expressionDepth: 'ExpressionDepth',
1689
+ pageSize: 'PageSize',
1690
+ } as const satisfies Record<string, RelationQueryRealizationStaticFactKind>;
1691
+
1692
+ export const relationQueryRealizationStaticFactKindLabels: Record<RelationQueryRealizationStaticFactKind, string> = {
1693
+ FieldPathDepth: 'FieldPathDepth',
1694
+ ExpressionDepth: 'ExpressionDepth',
1695
+ PageSize: 'PageSize',
1696
+ };
1697
+
1698
+ export type RelationQueryOperatingBoundaryValidationKind = 'StaticPlanFact' | 'TargetEnforced';
1699
+
1700
+ export const relationQueryOperatingBoundaryValidationKinds = {
1701
+ staticPlanFact: 'StaticPlanFact',
1702
+ targetEnforced: 'TargetEnforced',
1703
+ } as const satisfies Record<string, RelationQueryOperatingBoundaryValidationKind>;
1704
+
1705
+ export const relationQueryOperatingBoundaryValidationKindLabels: Record<RelationQueryOperatingBoundaryValidationKind, string> = {
1706
+ StaticPlanFact: 'StaticPlanFact',
1707
+ TargetEnforced: 'TargetEnforced',
1708
+ };
1709
+
1710
+ export type LogicalQueryNode = {
1711
+ readonly $node: 'source';
1712
+ } & SourceQueryNode | {
1713
+ readonly $node: 'filter';
1714
+ } & FilterQueryNode | {
1715
+ readonly $node: 'traverseRelationship';
1716
+ } & TraverseRelationshipQueryNode | {
1717
+ readonly $node: 'join';
1718
+ } & JoinQueryNode | {
1719
+ readonly $node: 'temporalJoin';
1720
+ } & TemporalJoinQueryNode | {
1721
+ readonly $node: 'expandCollection';
1722
+ } & ExpandCollectionQueryNode | {
1723
+ readonly $node: 'project';
1724
+ } & ProjectQueryNode | {
1725
+ readonly $node: 'distinct';
1726
+ } & DistinctQueryNode | {
1727
+ readonly $node: 'aggregate';
1728
+ } & AggregateQueryNode | {
1729
+ readonly $node: 'order';
1730
+ } & OrderQueryNode | {
1731
+ readonly $node: 'page';
1732
+ } & PageQueryNode;
1733
+
1734
+ export interface SourceQueryNode {
1735
+ id: QueryNodeId;
1736
+ binding: ValueBindingId;
1737
+ shape: QualifiedShapeId;
1738
+ }
1739
+
1740
+ export interface FilterQueryNode {
1741
+ input: QueryNodeId;
1742
+ predicate: Expr;
1743
+ id: QueryNodeId;
1744
+ }
1745
+
1746
+ export interface TraverseRelationshipQueryNode {
1747
+ id: QueryNodeId;
1748
+ input: QueryNodeId;
1749
+ from: ValueBindingId;
1750
+ relationship: RelationshipId;
1751
+ direction: RelationshipTraversalDirection;
1752
+ result: ValueBindingId;
1753
+ joinKind: JoinKind;
1754
+ requirement: QueryInputRequirement;
1755
+ }
1756
+
1757
+ export interface JoinQueryNode {
1758
+ left: QueryNodeId;
1759
+ right: QueryNodeId;
1760
+ kind: JoinKind;
1761
+ predicate: Expr;
1762
+ id: QueryNodeId;
1763
+ }
1764
+
1765
+ export interface TemporalJoinQueryNode {
1766
+ id: QueryNodeId;
1767
+ left: QueryNodeId;
1768
+ right: QueryNodeId;
1769
+ kind: JoinKind;
1770
+ correlation: Expr;
1771
+ match: TemporalJoinMatch;
185
1772
  }
186
1773
 
187
- export type UnaryOperator = 0;
1774
+ export interface ExpandCollectionQueryNode {
1775
+ input: QueryNodeId;
1776
+ collection: Expr;
1777
+ itemBinding: ValueBindingId;
1778
+ itemType: TypeRef;
1779
+ id: QueryNodeId;
1780
+ }
1781
+
1782
+ export interface ProjectQueryNode {
1783
+ id: QueryNodeId;
1784
+ input: QueryNodeId;
1785
+ resultBinding: ValueBindingId;
1786
+ resultShape: QualifiedShapeId;
1787
+ assignments: ProjectionAssignment[];
1788
+ }
1789
+
1790
+ export interface DistinctQueryNode {
1791
+ input: QueryNodeId;
1792
+ keys: Expr[];
1793
+ id: QueryNodeId;
1794
+ }
1795
+
1796
+ export interface AggregateQueryNode {
1797
+ input: QueryNodeId;
1798
+ resultBinding: ValueBindingId;
1799
+ resultShape: QualifiedShapeId;
1800
+ groupings: QueryGrouping[];
1801
+ aggregates: QueryAggregateAssignment[];
1802
+ id: QueryNodeId;
1803
+ }
1804
+
1805
+ export interface OrderQueryNode {
1806
+ id: QueryNodeId;
1807
+ input: QueryNodeId;
1808
+ orderings: QueryOrdering[];
1809
+ }
1810
+
1811
+ export interface PageQueryNode {
1812
+ id: QueryNodeId;
1813
+ input: QueryNodeId;
1814
+ page: QueryPageDefinition;
1815
+ }
1816
+
1817
+ export interface QueryParameterDefinition {
1818
+ id: QueryParameterId;
1819
+ type: TypeRef;
1820
+ presence: FieldPresence;
1821
+ defaultKind: QueryParameterDefaultKind;
1822
+ defaultValue?: unknown | null;
1823
+ }
1824
+
1825
+ export interface RelationDraftAssignmentSlot {
1826
+ id: QueryAssignmentId;
1827
+ target: FieldPath;
1828
+ candidates: RelationDraftCandidate[];
1829
+ resolution: RelationDraftAssignmentResolution;
1830
+ }
1831
+
1832
+ export type UnaryOperator = 'Not';
188
1833
 
189
1834
  export const unaryOperators = {
190
- not: 0,
1835
+ not: 'Not',
191
1836
  } as const satisfies Record<string, UnaryOperator>;
192
1837
 
193
1838
  export const unaryOperatorLabels: Record<UnaryOperator, string> = {
194
- 0: 'Not',
1839
+ Not: 'Not',
195
1840
  };
196
1841
 
197
- export type BinaryOperator = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;
1842
+ export type BinaryOperator = 'Eq' | 'Ne' | 'Gt' | 'Ge' | 'Lt' | 'Le' | 'And' | 'Or' | 'Add' | 'Sub' | 'Mul' | 'Div';
198
1843
 
199
1844
  export const binaryOperators = {
200
- eq: 0,
201
- ne: 1,
202
- gt: 2,
203
- ge: 3,
204
- lt: 4,
205
- le: 5,
206
- and: 6,
207
- or: 7,
208
- add: 8,
209
- sub: 9,
210
- mul: 10,
211
- div: 11,
1845
+ eq: 'Eq',
1846
+ ne: 'Ne',
1847
+ gt: 'Gt',
1848
+ ge: 'Ge',
1849
+ lt: 'Lt',
1850
+ le: 'Le',
1851
+ and: 'And',
1852
+ or: 'Or',
1853
+ add: 'Add',
1854
+ sub: 'Sub',
1855
+ mul: 'Mul',
1856
+ div: 'Div',
212
1857
  } as const satisfies Record<string, BinaryOperator>;
213
1858
 
214
1859
  export const binaryOperatorLabels: Record<BinaryOperator, string> = {
215
- 0: 'Eq',
216
- 1: 'Ne',
217
- 2: 'Gt',
218
- 3: 'Ge',
219
- 4: 'Lt',
220
- 5: 'Le',
221
- 6: 'And',
222
- 7: 'Or',
223
- 8: 'Add',
224
- 9: 'Sub',
225
- 10: 'Mul',
226
- 11: 'Div',
1860
+ Eq: 'Eq',
1861
+ Ne: 'Ne',
1862
+ Gt: 'Gt',
1863
+ Ge: 'Ge',
1864
+ Lt: 'Lt',
1865
+ Le: 'Le',
1866
+ And: 'And',
1867
+ Or: 'Or',
1868
+ Add: 'Add',
1869
+ Sub: 'Sub',
1870
+ Mul: 'Mul',
1871
+ Div: 'Div',
227
1872
  };
228
1873
 
229
1874
  export type TypeRef = {
@@ -247,328 +1892,853 @@ export type TypeRef = {
247
1892
  } & JsonTypeRef;
248
1893
 
249
1894
  export interface NamedTypeRef {
250
- TypeId: TypeId;
1895
+ typeId: TypeId;
251
1896
  }
252
1897
 
253
1898
  export interface OpaqueRuntimeTypeRef {
254
- RuntimeType: string;
1899
+ runtimeType: string;
1900
+ inferenceDiagnostic?: TypeInferenceDiagnostic | null;
255
1901
  }
256
1902
 
257
1903
  export interface ScalarTypeRef {
258
- Kind: ScalarTypeKind;
259
- Format: PrimitiveFormat;
1904
+ kind: ScalarTypeKind;
1905
+ format: PrimitiveFormat;
260
1906
  }
261
1907
 
262
1908
  export interface EnumTypeRef {
263
- Name: string;
264
- Members: string[];
1909
+ name: string;
1910
+ members: string[];
265
1911
  }
266
1912
 
267
1913
  export interface EntityReferenceTypeRef {
268
- Entity: EntityTypeName;
1914
+ entity: EntityTypeName;
269
1915
  }
270
1916
 
271
1917
  export interface ArrayTypeRef {
272
- ElementType: TypeRef;
1918
+ elementType: TypeRef;
273
1919
  }
274
1920
 
275
1921
  export interface ObjectTypeRef {
276
- Fields: ObjectFieldTypeDef[];
1922
+ fields: ObjectFieldTypeDef[];
277
1923
  }
278
1924
 
279
1925
  export interface QuantityTypeRef {
280
- Quantity: string;
281
- BaseKind: ScalarTypeKind;
1926
+ quantity: string;
1927
+ baseKind: ScalarTypeKind;
282
1928
  }
283
1929
 
284
1930
  export interface JsonTypeRef {
285
- Kind: JsonTypeKind;
1931
+ kind: JsonTypeKind;
286
1932
  }
287
1933
 
288
- export type AggregateOperator = 0 | 1 | 2 | 3 | 4 | 5;
1934
+ export type AggregateOperator = 'Count' | 'Sum' | 'Min' | 'Max' | 'Any' | 'All' | 'Average';
289
1935
 
290
1936
  export const aggregateOperators = {
291
- count: 0,
292
- sum: 1,
293
- min: 2,
294
- max: 3,
295
- any: 4,
296
- all: 5,
1937
+ count: 'Count',
1938
+ sum: 'Sum',
1939
+ min: 'Min',
1940
+ max: 'Max',
1941
+ any: 'Any',
1942
+ all: 'All',
1943
+ average: 'Average',
297
1944
  } as const satisfies Record<string, AggregateOperator>;
298
1945
 
299
1946
  export const aggregateOperatorLabels: Record<AggregateOperator, string> = {
300
- 0: 'Count',
301
- 1: 'Sum',
302
- 2: 'Min',
303
- 3: 'Max',
304
- 4: 'Any',
305
- 5: 'All',
1947
+ Count: 'Count',
1948
+ Sum: 'Sum',
1949
+ Min: 'Min',
1950
+ Max: 'Max',
1951
+ Any: 'Any',
1952
+ All: 'All',
1953
+ Average: 'Average',
1954
+ };
1955
+
1956
+ export type EntityId = string;
1957
+
1958
+ export type QueryAssignmentId = string;
1959
+
1960
+ export type RelationDraftCandidateId = string;
1961
+
1962
+ export type QueryResultId = string;
1963
+
1964
+ export type RelationshipId = string;
1965
+
1966
+ export type RelationshipTargetKey = {
1967
+ readonly $targetKey: 'observationIdentity';
1968
+ } & ObservationIdentityRelationshipTargetKey;
1969
+
1970
+ export type ObservationIdentityRelationshipTargetKey = Record<never, never>;
1971
+
1972
+ export type SourceReferenceUniqueness = 'NotGuaranteed' | 'GloballyUnique';
1973
+
1974
+ export const sourceReferenceUniquenesses = {
1975
+ notGuaranteed: 'NotGuaranteed',
1976
+ globallyUnique: 'GloballyUnique',
1977
+ } as const satisfies Record<string, SourceReferenceUniqueness>;
1978
+
1979
+ export const sourceReferenceUniquenessLabels: Record<SourceReferenceUniqueness, string> = {
1980
+ NotGuaranteed: 'NotGuaranteed',
1981
+ GloballyUnique: 'GloballyUnique',
1982
+ };
1983
+
1984
+ export interface RelationQueryLogicalPlanNode {
1985
+ node: QueryNodeId;
1986
+ inputs: RelationQueryLogicalPlanInput[];
1987
+ effectiveInputs: QueryNodeId[];
1988
+ }
1989
+
1990
+ export interface RelationQueryExplainRequirementInput {
1991
+ id: RelationQueryInputId;
1992
+ kind: RelationQueryExplainRequirementInputKind;
1993
+ }
1994
+
1995
+ export interface RelationQueryOutputReference {
1996
+ id: RelationQueryOutputId;
1997
+ kind: RelationQueryOutputReferenceKind;
1998
+ node: QueryNodeId;
1999
+ shape: QualifiedShapeId;
2000
+ relation?: RelationId | null;
2001
+ queryResult?: QueryResultId | null;
2002
+ field?: RelationQueryFieldReference | null;
2003
+ }
2004
+
2005
+ export interface RelationQueryExplainRequirementEdge {
2006
+ input: RelationQueryInputId;
2007
+ output: RelationQueryOutputId;
2008
+ effect: RelationQueryRequirementEffect;
2009
+ requirement: QueryInputRequirement;
2010
+ }
2011
+
2012
+ export type RelationQueryNativeResultKind = 'RelationRows' | 'QueryRows' | 'QueryAggregation';
2013
+
2014
+ export const relationQueryNativeResultKinds = {
2015
+ relationRows: 'RelationRows',
2016
+ queryRows: 'QueryRows',
2017
+ queryAggregation: 'QueryAggregation',
2018
+ } as const satisfies Record<string, RelationQueryNativeResultKind>;
2019
+
2020
+ export const relationQueryNativeResultKindLabels: Record<RelationQueryNativeResultKind, string> = {
2021
+ RelationRows: 'RelationRows',
2022
+ QueryRows: 'QueryRows',
2023
+ QueryAggregation: 'QueryAggregation',
306
2024
  };
307
2025
 
308
- export interface MappingId {
309
- Value: string;
2026
+ export interface RelationQueryFieldReference {
2027
+ shape: QualifiedShapeId;
2028
+ path: FieldPath;
2029
+ }
2030
+
2031
+ export interface RelationQueryNativeArtifactFingerprintReference {
2032
+ algorithm: string;
2033
+ canonicalization: string;
2034
+ value: string;
310
2035
  }
311
2036
 
312
- export interface MappingName {
313
- Value: string;
2037
+ export interface RelationQueryNativeCompilationProvenance {
2038
+ plan: RelationQueryCompiledPlanReference;
2039
+ branch: RelationQueryNativeResultBranchId;
2040
+ target: RelationQueryTargetId;
2041
+ targetProfile: RelationQueryTargetProfileId;
2042
+ realization: RelationQueryRealizationFingerprint;
2043
+ boundRealization: RelationQueryBoundRealizationFingerprint;
2044
+ placement: RelationQuerySourcePlacementFingerprint;
2045
+ adapterBinding: RelationQueryAdapterBindingReference;
2046
+ contextEvidence: RelationQueryContextEvidenceId[];
2047
+ compilerProfile: string;
2048
+ conventionSetVersion: string;
2049
+ coveredNodes: QueryNodeId[];
2050
+ coveredAssignments: QueryAssignmentId[];
2051
+ inputFields: RelationQueryInputId[];
2052
+ realizationDecisions: RelationQueryNativeCompilationDecisionReference[];
2053
+ capabilityEvidence: RelationQueryTargetCapabilityEvidenceId[];
2054
+ operatingBoundaries: RelationQueryOperatingBoundaryId[];
314
2055
  }
315
2056
 
316
- export type MappingKind = 0 | 1;
2057
+ export type RelationQueryExecutionResultKind = 'Rows' | 'Aggregation';
2058
+
2059
+ export const relationQueryExecutionResultKinds = {
2060
+ rows: 'Rows',
2061
+ aggregation: 'Aggregation',
2062
+ } as const satisfies Record<string, RelationQueryExecutionResultKind>;
2063
+
2064
+ export const relationQueryExecutionResultKindLabels: Record<RelationQueryExecutionResultKind, string> = {
2065
+ Rows: 'Rows',
2066
+ Aggregation: 'Aggregation',
2067
+ };
2068
+
2069
+ export type RelationQueryExecutionOutputState = 'Complete' | 'Suppressed' | 'Incomplete';
2070
+
2071
+ export const relationQueryExecutionOutputStates = {
2072
+ complete: 'Complete',
2073
+ suppressed: 'Suppressed',
2074
+ incomplete: 'Incomplete',
2075
+ } as const satisfies Record<string, RelationQueryExecutionOutputState>;
2076
+
2077
+ export const relationQueryExecutionOutputStateLabels: Record<RelationQueryExecutionOutputState, string> = {
2078
+ Complete: 'Complete',
2079
+ Suppressed: 'Suppressed',
2080
+ Incomplete: 'Incomplete',
2081
+ };
2082
+
2083
+ export type RelationRequirementGapCause = 'InputNotProvided' | 'InputAcquisitionFailed' | 'ObservationIdentityMissing' | 'ReferenceFieldNotLoaded' | 'ReferenceValueMissing' | 'ReferenceValueNull' | 'ResolutionNotAttempted' | 'ResolutionFailed' | 'RelatedObservationNotFound' | 'RelatedObservationRejected' | 'RequiredFieldNotLoaded' | 'RequiredValueMissing' | 'RequiredValueNull' | 'CapabilityUnavailable' | 'CardinalityViolation' | 'ConversionFailure' | 'InputAcquisitionInconclusive';
2084
+
2085
+ export const relationRequirementGapCauses = {
2086
+ inputNotProvided: 'InputNotProvided',
2087
+ inputAcquisitionFailed: 'InputAcquisitionFailed',
2088
+ observationIdentityMissing: 'ObservationIdentityMissing',
2089
+ referenceFieldNotLoaded: 'ReferenceFieldNotLoaded',
2090
+ referenceValueMissing: 'ReferenceValueMissing',
2091
+ referenceValueNull: 'ReferenceValueNull',
2092
+ resolutionNotAttempted: 'ResolutionNotAttempted',
2093
+ resolutionFailed: 'ResolutionFailed',
2094
+ relatedObservationNotFound: 'RelatedObservationNotFound',
2095
+ relatedObservationRejected: 'RelatedObservationRejected',
2096
+ requiredFieldNotLoaded: 'RequiredFieldNotLoaded',
2097
+ requiredValueMissing: 'RequiredValueMissing',
2098
+ requiredValueNull: 'RequiredValueNull',
2099
+ capabilityUnavailable: 'CapabilityUnavailable',
2100
+ cardinalityViolation: 'CardinalityViolation',
2101
+ conversionFailure: 'ConversionFailure',
2102
+ inputAcquisitionInconclusive: 'InputAcquisitionInconclusive',
2103
+ } as const satisfies Record<string, RelationRequirementGapCause>;
2104
+
2105
+ export const relationRequirementGapCauseLabels: Record<RelationRequirementGapCause, string> = {
2106
+ InputNotProvided: 'InputNotProvided',
2107
+ InputAcquisitionFailed: 'InputAcquisitionFailed',
2108
+ ObservationIdentityMissing: 'ObservationIdentityMissing',
2109
+ ReferenceFieldNotLoaded: 'ReferenceFieldNotLoaded',
2110
+ ReferenceValueMissing: 'ReferenceValueMissing',
2111
+ ReferenceValueNull: 'ReferenceValueNull',
2112
+ ResolutionNotAttempted: 'ResolutionNotAttempted',
2113
+ ResolutionFailed: 'ResolutionFailed',
2114
+ RelatedObservationNotFound: 'RelatedObservationNotFound',
2115
+ RelatedObservationRejected: 'RelatedObservationRejected',
2116
+ RequiredFieldNotLoaded: 'RequiredFieldNotLoaded',
2117
+ RequiredValueMissing: 'RequiredValueMissing',
2118
+ RequiredValueNull: 'RequiredValueNull',
2119
+ CapabilityUnavailable: 'CapabilityUnavailable',
2120
+ CardinalityViolation: 'CardinalityViolation',
2121
+ ConversionFailure: 'ConversionFailure',
2122
+ InputAcquisitionInconclusive: 'InputAcquisitionInconclusive',
2123
+ };
2124
+
2125
+ export type RelationRequirementGapResolutionKind = 'ProvideInput' | 'LoadField' | 'ProvideReferenceValue' | 'ResolveRelationship' | 'RetryAcquisition' | 'ProvideRelatedObservation' | 'CorrectCardinality' | 'ProvideValue' | 'ProvideCapability' | 'CorrectConversion';
2126
+
2127
+ export const relationRequirementGapResolutionKinds = {
2128
+ provideInput: 'ProvideInput',
2129
+ loadField: 'LoadField',
2130
+ provideReferenceValue: 'ProvideReferenceValue',
2131
+ resolveRelationship: 'ResolveRelationship',
2132
+ retryAcquisition: 'RetryAcquisition',
2133
+ provideRelatedObservation: 'ProvideRelatedObservation',
2134
+ correctCardinality: 'CorrectCardinality',
2135
+ provideValue: 'ProvideValue',
2136
+ provideCapability: 'ProvideCapability',
2137
+ correctConversion: 'CorrectConversion',
2138
+ } as const satisfies Record<string, RelationRequirementGapResolutionKind>;
2139
+
2140
+ export const relationRequirementGapResolutionKindLabels: Record<RelationRequirementGapResolutionKind, string> = {
2141
+ ProvideInput: 'ProvideInput',
2142
+ LoadField: 'LoadField',
2143
+ ProvideReferenceValue: 'ProvideReferenceValue',
2144
+ ResolveRelationship: 'ResolveRelationship',
2145
+ RetryAcquisition: 'RetryAcquisition',
2146
+ ProvideRelatedObservation: 'ProvideRelatedObservation',
2147
+ CorrectCardinality: 'CorrectCardinality',
2148
+ ProvideValue: 'ProvideValue',
2149
+ ProvideCapability: 'ProvideCapability',
2150
+ CorrectConversion: 'CorrectConversion',
2151
+ };
2152
+
2153
+ export type SegmentKind = 'Field' | 'Element';
2154
+
2155
+ export const segmentKinds = {
2156
+ field: 'Field',
2157
+ element: 'Element',
2158
+ } as const satisfies Record<string, SegmentKind>;
2159
+
2160
+ export const segmentKindLabels: Record<SegmentKind, string> = {
2161
+ Field: 'Field',
2162
+ Element: 'Element',
2163
+ };
2164
+
2165
+ export type RelationQueryOutputReferenceKind = 'Relation' | 'QueryResult';
317
2166
 
318
- export const mappingKinds = {
319
- relation: 0,
320
- object: 1,
321
- } as const satisfies Record<string, MappingKind>;
2167
+ export const relationQueryOutputReferenceKinds = {
2168
+ relation: 'Relation',
2169
+ queryResult: 'QueryResult',
2170
+ } as const satisfies Record<string, RelationQueryOutputReferenceKind>;
322
2171
 
323
- export const mappingKindLabels: Record<MappingKind, string> = {
324
- 0: 'Relation',
325
- 1: 'Object',
2172
+ export const relationQueryOutputReferenceKindLabels: Record<RelationQueryOutputReferenceKind, string> = {
2173
+ Relation: 'Relation',
2174
+ QueryResult: 'QueryResult',
326
2175
  };
327
2176
 
328
- export interface FieldAssignment {
329
- Id?: string | null;
330
- TargetField: string;
331
- Expr: Expr;
2177
+ export interface RelationQueryRealizationTraceStep {
2178
+ kind: RelationQueryRealizationTraceStepKind;
2179
+ node: QueryNodeId;
2180
+ siteKind?: RelationQueryExpressionSiteKind | null;
2181
+ expressionSite?: ExprSiteId | null;
2182
+ assignment?: QueryAssignmentId | null;
2183
+ ordinal?: number | null;
2184
+ invariantName?: string | null;
332
2185
  }
333
2186
 
334
- export type MappingScope = 0 | 1;
2187
+ export type RelationshipTraversalDirection = 'Forward' | 'Inverse';
335
2188
 
336
- export const mappingScopes = {
337
- rooted: 0,
338
- set: 1,
339
- } as const satisfies Record<string, MappingScope>;
2189
+ export const relationshipTraversalDirections = {
2190
+ forward: 'Forward',
2191
+ inverse: 'Inverse',
2192
+ } as const satisfies Record<string, RelationshipTraversalDirection>;
340
2193
 
341
- export const mappingScopeLabels: Record<MappingScope, string> = {
342
- 0: 'Rooted',
343
- 1: 'Set',
2194
+ export const relationshipTraversalDirectionLabels: Record<RelationshipTraversalDirection, string> = {
2195
+ Forward: 'Forward',
2196
+ Inverse: 'Inverse',
344
2197
  };
345
2198
 
346
- export type MappingDirection = 0 | 1 | 2;
2199
+ export type JoinKind = 'Inner' | 'Left' | 'Right' | 'Full';
347
2200
 
348
- export const mappingDirections = {
349
- sourceToTarget: 0,
350
- targetToSource: 1,
351
- bidirectional: 2,
352
- } as const satisfies Record<string, MappingDirection>;
2201
+ export const joinKinds = {
2202
+ inner: 'Inner',
2203
+ left: 'Left',
2204
+ right: 'Right',
2205
+ full: 'Full',
2206
+ } as const satisfies Record<string, JoinKind>;
353
2207
 
354
- export const mappingDirectionLabels: Record<MappingDirection, string> = {
355
- 0: 'SourceToTarget',
356
- 1: 'TargetToSource',
357
- 2: 'Bidirectional',
2208
+ export const joinKindLabels: Record<JoinKind, string> = {
2209
+ Inner: 'Inner',
2210
+ Left: 'Left',
2211
+ Right: 'Right',
2212
+ Full: 'Full',
358
2213
  };
359
2214
 
360
- export interface NestedMapping {
361
- Source: FieldPath;
362
- Target: FieldPath;
363
- NestedMappingId: MappingId;
2215
+ export type TemporalJoinMatch = {
2216
+ readonly $temporalMatch: 'pointInInterval';
2217
+ } & TemporalPointInIntervalMatch | {
2218
+ readonly $temporalMatch: 'intervalOverlap';
2219
+ } & TemporalIntervalOverlapMatch;
2220
+
2221
+ export interface TemporalPointInIntervalMatch {
2222
+ point: Expr;
2223
+ interval: TemporalInterval;
364
2224
  }
365
2225
 
366
- export interface CollectionMapping {
367
- SourceCollection: FieldPath;
368
- TargetCollection: FieldPath;
369
- ItemMappingId: MappingId;
2226
+ export interface TemporalIntervalOverlapMatch {
2227
+ left: TemporalInterval;
2228
+ right: TemporalInterval;
370
2229
  }
371
2230
 
372
- export interface MappingMetadata {
373
- AllowCodegen: boolean;
374
- Deterministic: boolean;
375
- TransportMapping: boolean;
376
- ExecutionPreference: MappingExecutionPreference;
377
- Hints: ({
378
- Key: string;
379
- Value: string;
380
- })[];
2231
+ export interface ProjectionAssignment {
2232
+ id: QueryAssignmentId;
2233
+ target: FieldPath;
2234
+ value: Expr;
381
2235
  }
382
2236
 
383
- export type MaterializationStrategy = 0 | 1 | 2 | 3;
2237
+ export interface QueryGrouping {
2238
+ id: QueryAssignmentId;
2239
+ target: FieldPath;
2240
+ key: Expr;
2241
+ }
384
2242
 
385
- export const materializationStrategies = {
386
- onDemand: 0,
387
- asyncIndex: 1,
388
- changeFeed: 2,
389
- snapshot: 3,
390
- } as const satisfies Record<string, MaterializationStrategy>;
2243
+ export interface QueryAggregateAssignment {
2244
+ id: QueryAssignmentId;
2245
+ target: FieldPath;
2246
+ operation: AggregateOperator;
2247
+ value?: Expr | null;
2248
+ filter?: Expr | null;
2249
+ }
2250
+
2251
+ export interface QueryOrdering {
2252
+ key: Expr;
2253
+ direction: QuerySortDirection;
2254
+ nullPlacement: QueryNullPlacement;
2255
+ }
2256
+
2257
+ export type QueryPageDefinition = {
2258
+ readonly $page: 'offset';
2259
+ } & OffsetPageDefinition | {
2260
+ readonly $page: 'keyset';
2261
+ } & KeysetPageDefinition;
2262
+
2263
+ export interface OffsetPageDefinition {
2264
+ offset: number;
2265
+ limit: number;
2266
+ }
2267
+
2268
+ export interface KeysetPageDefinition {
2269
+ after: Expr[];
2270
+ limit: number;
2271
+ }
391
2272
 
392
- export const materializationStrategyLabels: Record<MaterializationStrategy, string> = {
393
- 0: 'OnDemand',
394
- 1: 'AsyncIndex',
395
- 2: 'ChangeFeed',
396
- 3: 'Snapshot',
2273
+ export type QueryParameterId = string;
2274
+
2275
+ export type FieldPresence = 'Required' | 'Optional';
2276
+
2277
+ export const fieldPresences = {
2278
+ required: 'Required',
2279
+ optional: 'Optional',
2280
+ } as const satisfies Record<string, FieldPresence>;
2281
+
2282
+ export const fieldPresenceLabels: Record<FieldPresence, string> = {
2283
+ Required: 'Required',
2284
+ Optional: 'Optional',
397
2285
  };
398
2286
 
399
- export type FreshnessPolicy = 0 | 1 | 2;
2287
+ export type QueryParameterDefaultKind = 'None' | 'Value';
400
2288
 
401
- export const freshnessPolicies = {
402
- strong: 0,
403
- eventual: 1,
404
- boundedStaleness: 2,
405
- } as const satisfies Record<string, FreshnessPolicy>;
2289
+ export const queryParameterDefaultKinds = {
2290
+ none: 'None',
2291
+ value: 'Value',
2292
+ } as const satisfies Record<string, QueryParameterDefaultKind>;
406
2293
 
407
- export const freshnessPolicyLabels: Record<FreshnessPolicy, string> = {
408
- 0: 'Strong',
409
- 1: 'Eventual',
410
- 2: 'BoundedStaleness',
2294
+ export const queryParameterDefaultKindLabels: Record<QueryParameterDefaultKind, string> = {
2295
+ None: 'None',
2296
+ Value: 'Value',
411
2297
  };
412
2298
 
413
- export interface FieldPathSegment {
414
- Kind: SegmentKind;
415
- Segment?: string | null;
2299
+ export interface RelationDraftCandidate {
2300
+ id: RelationDraftCandidateId;
2301
+ value: Expr;
2302
+ }
2303
+
2304
+ export type RelationDraftAssignmentResolution = {
2305
+ readonly $resolution: 'selected';
2306
+ } & SelectedRelationDraftAssignmentResolution | {
2307
+ readonly $resolution: 'omitted';
2308
+ } & OmittedRelationDraftAssignmentResolution | {
2309
+ readonly $resolution: 'unresolved';
2310
+ } & UnresolvedRelationDraftAssignmentResolution | {
2311
+ readonly $resolution: 'ambiguous';
2312
+ } & AmbiguousRelationDraftAssignmentResolution;
2313
+
2314
+ export interface SelectedRelationDraftAssignmentResolution {
2315
+ candidateId: RelationDraftCandidateId;
2316
+ }
2317
+
2318
+ export type OmittedRelationDraftAssignmentResolution = Record<never, never>;
2319
+
2320
+ export interface UnresolvedRelationDraftAssignmentResolution {
2321
+ reasons: RelationDraftUnresolvedReason[];
2322
+ }
2323
+
2324
+ export interface AmbiguousRelationDraftAssignmentResolution {
2325
+ candidateIds: RelationDraftCandidateId[];
416
2326
  }
417
2327
 
418
- export interface TypeId {
419
- Value: string;
2328
+ export type TypeId = string;
2329
+
2330
+ export interface TypeInferenceDiagnostic {
2331
+ reason: string;
2332
+ message?: string | null;
420
2333
  }
421
2334
 
422
- export type ScalarTypeKind = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
2335
+ export type ScalarTypeKind = 'Bool' | 'Int32' | 'Int64' | 'Decimal' | 'String' | 'Guid' | 'Date' | 'DateTime' | 'Instant' | 'Bytes';
423
2336
 
424
2337
  export const scalarTypeKinds = {
425
- bool: 0,
426
- int32: 1,
427
- int64: 2,
428
- decimal: 3,
429
- string: 4,
430
- guid: 5,
431
- date: 6,
432
- dateTime: 7,
433
- instant: 8,
434
- bytes: 9,
2338
+ bool: 'Bool',
2339
+ int32: 'Int32',
2340
+ int64: 'Int64',
2341
+ decimal: 'Decimal',
2342
+ string: 'String',
2343
+ guid: 'Guid',
2344
+ date: 'Date',
2345
+ dateTime: 'DateTime',
2346
+ instant: 'Instant',
2347
+ bytes: 'Bytes',
435
2348
  } as const satisfies Record<string, ScalarTypeKind>;
436
2349
 
437
2350
  export const scalarTypeKindLabels: Record<ScalarTypeKind, string> = {
438
- 0: 'Bool',
439
- 1: 'Int32',
440
- 2: 'Int64',
441
- 3: 'Decimal',
442
- 4: 'String',
443
- 5: 'Guid',
444
- 6: 'Date',
445
- 7: 'DateTime',
446
- 8: 'Instant',
447
- 9: 'Bytes',
2351
+ Bool: 'Bool',
2352
+ Int32: 'Int32',
2353
+ Int64: 'Int64',
2354
+ Decimal: 'Decimal',
2355
+ String: 'String',
2356
+ Guid: 'Guid',
2357
+ Date: 'Date',
2358
+ DateTime: 'DateTime',
2359
+ Instant: 'Instant',
2360
+ Bytes: 'Bytes',
448
2361
  };
449
2362
 
450
- export type PrimitiveFormat = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
2363
+ export type PrimitiveFormat = 'None' | 'Uuid' | 'IsoDate' | 'IsoDateTime' | 'IsoInstant' | 'CurrencyCode' | 'CountryCode' | 'Email' | 'Uri' | 'Base64';
451
2364
 
452
2365
  export const primitiveFormats = {
453
- none: 0,
454
- uuid: 1,
455
- isoDate: 2,
456
- isoDateTime: 3,
457
- isoInstant: 4,
458
- currencyCode: 5,
459
- countryCode: 6,
460
- email: 7,
461
- uri: 8,
462
- base64: 9,
2366
+ none: 'None',
2367
+ uuid: 'Uuid',
2368
+ isoDate: 'IsoDate',
2369
+ isoDateTime: 'IsoDateTime',
2370
+ isoInstant: 'IsoInstant',
2371
+ currencyCode: 'CurrencyCode',
2372
+ countryCode: 'CountryCode',
2373
+ email: 'Email',
2374
+ uri: 'Uri',
2375
+ base64: 'Base64',
463
2376
  } as const satisfies Record<string, PrimitiveFormat>;
464
2377
 
465
2378
  export const primitiveFormatLabels: Record<PrimitiveFormat, string> = {
466
- 0: 'None',
467
- 1: 'Uuid',
468
- 2: 'IsoDate',
469
- 3: 'IsoDateTime',
470
- 4: 'IsoInstant',
471
- 5: 'CurrencyCode',
472
- 6: 'CountryCode',
473
- 7: 'Email',
474
- 8: 'Uri',
475
- 9: 'Base64',
2379
+ None: 'None',
2380
+ Uuid: 'Uuid',
2381
+ IsoDate: 'IsoDate',
2382
+ IsoDateTime: 'IsoDateTime',
2383
+ IsoInstant: 'IsoInstant',
2384
+ CurrencyCode: 'CurrencyCode',
2385
+ CountryCode: 'CountryCode',
2386
+ Email: 'Email',
2387
+ Uri: 'Uri',
2388
+ Base64: 'Base64',
476
2389
  };
477
2390
 
478
- export interface EntityTypeName {
479
- Value: string;
480
- }
2391
+ export type EntityTypeName = string;
481
2392
 
482
2393
  export interface ObjectFieldTypeDef {
483
- Name: string;
484
- Type: TypeRef;
485
- Presence: FieldPresence;
486
- Annotations: ({
487
- Key: AnnotationKey;
488
- Value: AnnotationValue;
489
- })[];
2394
+ name: string;
2395
+ type: TypeRef;
2396
+ presence: FieldPresence;
2397
+ annotations: Record<string, AnnotationValue>;
490
2398
  }
491
2399
 
492
- export type JsonTypeKind = 0 | 1 | 2 | 3 | 4 | 5;
2400
+ export type JsonTypeKind = 'Any' | 'Object' | 'Array' | 'String' | 'Number' | 'Boolean';
493
2401
 
494
2402
  export const jsonTypeKinds = {
495
- any: 0,
496
- object: 1,
497
- array: 2,
498
- string: 3,
499
- number: 4,
500
- boolean: 5,
2403
+ any: 'Any',
2404
+ object: 'Object',
2405
+ array: 'Array',
2406
+ string: 'String',
2407
+ number: 'Number',
2408
+ boolean: 'Boolean',
501
2409
  } as const satisfies Record<string, JsonTypeKind>;
502
2410
 
503
2411
  export const jsonTypeKindLabels: Record<JsonTypeKind, string> = {
504
- 0: 'Any',
505
- 1: 'Object',
506
- 2: 'Array',
507
- 3: 'String',
508
- 4: 'Number',
509
- 5: 'Boolean',
2412
+ Any: 'Any',
2413
+ Object: 'Object',
2414
+ Array: 'Array',
2415
+ String: 'String',
2416
+ Number: 'Number',
2417
+ Boolean: 'Boolean',
2418
+ };
2419
+
2420
+ export interface RelationQueryLogicalPlanInput {
2421
+ canonicalInput: QueryNodeId;
2422
+ effectiveInput: QueryNodeId;
2423
+ bypasses: RelationQueryLogicalBypass[];
2424
+ }
2425
+
2426
+ export type RelationQueryExplainRequirementInputKind = 'Field' | 'ObservationIdentity' | 'SourceSet' | 'Relationship' | 'Parameter' | 'Capability';
2427
+
2428
+ export const relationQueryExplainRequirementInputKinds = {
2429
+ field: 'Field',
2430
+ observationIdentity: 'ObservationIdentity',
2431
+ sourceSet: 'SourceSet',
2432
+ relationship: 'Relationship',
2433
+ parameter: 'Parameter',
2434
+ capability: 'Capability',
2435
+ } as const satisfies Record<string, RelationQueryExplainRequirementInputKind>;
2436
+
2437
+ export const relationQueryExplainRequirementInputKindLabels: Record<RelationQueryExplainRequirementInputKind, string> = {
2438
+ Field: 'Field',
2439
+ ObservationIdentity: 'ObservationIdentity',
2440
+ SourceSet: 'SourceSet',
2441
+ Relationship: 'Relationship',
2442
+ Parameter: 'Parameter',
2443
+ Capability: 'Capability',
510
2444
  };
511
2445
 
512
- export type MappingExecutionPreference = 0 | 1 | 2;
2446
+ export interface RelationQueryNativeCompilationDecisionReference {
2447
+ requirement: RelationQueryRealizationRequirementId;
2448
+ kind: RelationQueryRealizationDecisionKind;
2449
+ capabilityEvidence: RelationQueryTargetCapabilityEvidenceId[];
2450
+ compositionRules: RelationQueryCompositionRuleId[];
2451
+ override?: RelationQueryRealizationOverrideId | null;
2452
+ operatingBoundaries: RelationQueryOperatingBoundaryId[];
2453
+ preservedGuarantees: RelationQueryGuaranteeCapabilityKind[];
2454
+ }
2455
+
2456
+ export type RelationQueryRealizationTraceStepKind = 'Structural' | 'ExpressionSite' | 'AggregateOperation' | 'Terminal';
513
2457
 
514
- export const mappingExecutionPreferences = {
515
- inMemory: 0,
516
- materialized: 1,
517
- codeGenerated: 2,
518
- } as const satisfies Record<string, MappingExecutionPreference>;
2458
+ export const relationQueryRealizationTraceStepKinds = {
2459
+ structural: 'Structural',
2460
+ expressionSite: 'ExpressionSite',
2461
+ aggregateOperation: 'AggregateOperation',
2462
+ terminal: 'Terminal',
2463
+ } as const satisfies Record<string, RelationQueryRealizationTraceStepKind>;
519
2464
 
520
- export const mappingExecutionPreferenceLabels: Record<MappingExecutionPreference, string> = {
521
- 0: 'InMemory',
522
- 1: 'Materialized',
523
- 2: 'CodeGenerated',
2465
+ export const relationQueryRealizationTraceStepKindLabels: Record<RelationQueryRealizationTraceStepKind, string> = {
2466
+ Structural: 'Structural',
2467
+ ExpressionSite: 'ExpressionSite',
2468
+ AggregateOperation: 'AggregateOperation',
2469
+ Terminal: 'Terminal',
524
2470
  };
525
2471
 
526
- export type SegmentKind = 0 | 2;
2472
+ export type RelationQueryExpressionSiteKind = 'FilterPredicate' | 'JoinPredicate' | 'ExpandCollection' | 'ProjectionAssignmentValue' | 'DistinctKey' | 'AggregateGroupingKey' | 'AggregateAssignmentValue' | 'AggregateAssignmentFilter' | 'OrderKey' | 'KeysetBoundary' | 'RelationOutputKey' | 'RelationInvariant' | 'TemporalJoinCorrelation' | 'TemporalJoinPoint' | 'TemporalJoinIntervalLowerBound' | 'TemporalJoinIntervalUpperBound';
2473
+
2474
+ export const relationQueryExpressionSiteKinds = {
2475
+ filterPredicate: 'FilterPredicate',
2476
+ joinPredicate: 'JoinPredicate',
2477
+ expandCollection: 'ExpandCollection',
2478
+ projectionAssignmentValue: 'ProjectionAssignmentValue',
2479
+ distinctKey: 'DistinctKey',
2480
+ aggregateGroupingKey: 'AggregateGroupingKey',
2481
+ aggregateAssignmentValue: 'AggregateAssignmentValue',
2482
+ aggregateAssignmentFilter: 'AggregateAssignmentFilter',
2483
+ orderKey: 'OrderKey',
2484
+ keysetBoundary: 'KeysetBoundary',
2485
+ relationOutputKey: 'RelationOutputKey',
2486
+ relationInvariant: 'RelationInvariant',
2487
+ temporalJoinCorrelation: 'TemporalJoinCorrelation',
2488
+ temporalJoinPoint: 'TemporalJoinPoint',
2489
+ temporalJoinIntervalLowerBound: 'TemporalJoinIntervalLowerBound',
2490
+ temporalJoinIntervalUpperBound: 'TemporalJoinIntervalUpperBound',
2491
+ } as const satisfies Record<string, RelationQueryExpressionSiteKind>;
2492
+
2493
+ export const relationQueryExpressionSiteKindLabels: Record<RelationQueryExpressionSiteKind, string> = {
2494
+ FilterPredicate: 'FilterPredicate',
2495
+ JoinPredicate: 'JoinPredicate',
2496
+ ExpandCollection: 'ExpandCollection',
2497
+ ProjectionAssignmentValue: 'ProjectionAssignmentValue',
2498
+ DistinctKey: 'DistinctKey',
2499
+ AggregateGroupingKey: 'AggregateGroupingKey',
2500
+ AggregateAssignmentValue: 'AggregateAssignmentValue',
2501
+ AggregateAssignmentFilter: 'AggregateAssignmentFilter',
2502
+ OrderKey: 'OrderKey',
2503
+ KeysetBoundary: 'KeysetBoundary',
2504
+ RelationOutputKey: 'RelationOutputKey',
2505
+ RelationInvariant: 'RelationInvariant',
2506
+ TemporalJoinCorrelation: 'TemporalJoinCorrelation',
2507
+ TemporalJoinPoint: 'TemporalJoinPoint',
2508
+ TemporalJoinIntervalLowerBound: 'TemporalJoinIntervalLowerBound',
2509
+ TemporalJoinIntervalUpperBound: 'TemporalJoinIntervalUpperBound',
2510
+ };
527
2511
 
528
- export const segmentKinds = {
529
- field: 0,
530
- element: 2,
531
- } as const satisfies Record<string, SegmentKind>;
2512
+ export type ExprSiteId = string;
532
2513
 
533
- export const segmentKindLabels: Record<SegmentKind, string> = {
534
- 0: 'Field',
535
- 2: 'Element',
2514
+ export interface TemporalInterval {
2515
+ lower: TemporalIntervalBound;
2516
+ upper: TemporalIntervalBound;
2517
+ }
2518
+
2519
+ export type QuerySortDirection = 'Ascending' | 'Descending';
2520
+
2521
+ export const querySortDirections = {
2522
+ ascending: 'Ascending',
2523
+ descending: 'Descending',
2524
+ } as const satisfies Record<string, QuerySortDirection>;
2525
+
2526
+ export const querySortDirectionLabels: Record<QuerySortDirection, string> = {
2527
+ Ascending: 'Ascending',
2528
+ Descending: 'Descending',
536
2529
  };
537
2530
 
538
- export type FieldPresence = 0 | 1;
2531
+ export type QueryNullPlacement = 'First' | 'Last';
539
2532
 
540
- export const fieldPresences = {
541
- required: 0,
542
- optional: 1,
543
- } as const satisfies Record<string, FieldPresence>;
2533
+ export const queryNullPlacements = {
2534
+ first: 'First',
2535
+ last: 'Last',
2536
+ } as const satisfies Record<string, QueryNullPlacement>;
544
2537
 
545
- export const fieldPresenceLabels: Record<FieldPresence, string> = {
546
- 0: 'Required',
547
- 1: 'Optional',
2538
+ export const queryNullPlacementLabels: Record<QueryNullPlacement, string> = {
2539
+ First: 'First',
2540
+ Last: 'Last',
548
2541
  };
549
2542
 
550
- export interface AnnotationKey {
551
- Value: string;
2543
+ export type RelationDraftUnresolvedReason = 'NoCandidate' | 'IncompatibleType' | 'UnsafeCardinality' | 'UnsafePresence' | 'UnsafeNullability' | 'ConversionRequired' | 'UnsupportedStructure' | 'UnsupportedTransformation' | 'MultipleCandidates';
2544
+
2545
+ export const relationDraftUnresolvedReasons = {
2546
+ noCandidate: 'NoCandidate',
2547
+ incompatibleType: 'IncompatibleType',
2548
+ unsafeCardinality: 'UnsafeCardinality',
2549
+ unsafePresence: 'UnsafePresence',
2550
+ unsafeNullability: 'UnsafeNullability',
2551
+ conversionRequired: 'ConversionRequired',
2552
+ unsupportedStructure: 'UnsupportedStructure',
2553
+ unsupportedTransformation: 'UnsupportedTransformation',
2554
+ multipleCandidates: 'MultipleCandidates',
2555
+ } as const satisfies Record<string, RelationDraftUnresolvedReason>;
2556
+
2557
+ export const relationDraftUnresolvedReasonLabels: Record<RelationDraftUnresolvedReason, string> = {
2558
+ NoCandidate: 'NoCandidate',
2559
+ IncompatibleType: 'IncompatibleType',
2560
+ UnsafeCardinality: 'UnsafeCardinality',
2561
+ UnsafePresence: 'UnsafePresence',
2562
+ UnsafeNullability: 'UnsafeNullability',
2563
+ ConversionRequired: 'ConversionRequired',
2564
+ UnsupportedStructure: 'UnsupportedStructure',
2565
+ UnsupportedTransformation: 'UnsupportedTransformation',
2566
+ MultipleCandidates: 'MultipleCandidates',
2567
+ };
2568
+
2569
+ export interface RelationQueryLogicalBypass {
2570
+ kind: RelationQueryLogicalBypassKind;
2571
+ node: QueryNodeId;
2572
+ relationship: RelationshipDefinition;
2573
+ direction: RelationshipTraversalDirection;
2574
+ cardinality: RelationshipTraversalCardinality;
2575
+ from: ValueBindingId;
2576
+ result: ValueBindingId;
552
2577
  }
553
2578
 
554
- export interface AnnotationValue {
555
- Value?: unknown | null;
2579
+ export type RelationQueryRealizationDecisionKind = 'Native' | 'Composed' | 'Constrained' | 'Override' | 'Unavailable';
2580
+
2581
+ export const relationQueryRealizationDecisionKinds = {
2582
+ native: 'Native',
2583
+ composed: 'Composed',
2584
+ constrained: 'Constrained',
2585
+ override: 'Override',
2586
+ unavailable: 'Unavailable',
2587
+ } as const satisfies Record<string, RelationQueryRealizationDecisionKind>;
2588
+
2589
+ export const relationQueryRealizationDecisionKindLabels: Record<RelationQueryRealizationDecisionKind, string> = {
2590
+ Native: 'Native',
2591
+ Composed: 'Composed',
2592
+ Constrained: 'Constrained',
2593
+ Override: 'Override',
2594
+ Unavailable: 'Unavailable',
2595
+ };
2596
+
2597
+ export type TemporalIntervalBound = {
2598
+ readonly $temporalBound: 'unbounded';
2599
+ } & UnboundedTemporalIntervalBound | {
2600
+ readonly $temporalBound: 'expression';
2601
+ } & ExpressionTemporalIntervalBound;
2602
+
2603
+ export type UnboundedTemporalIntervalBound = Record<never, never>;
2604
+
2605
+ export interface ExpressionTemporalIntervalBound {
2606
+ value: Expr;
2607
+ inclusion: TemporalBoundaryInclusion;
2608
+ nullBehavior: TemporalNullBoundBehavior;
556
2609
  }
557
2610
 
2611
+ export type RelationQueryLogicalBypassKind = 'OptionalAtMostOneLeftRelationshipTraversal';
2612
+
2613
+ export const relationQueryLogicalBypassKinds = {
2614
+ optionalAtMostOneLeftRelationshipTraversal: 'OptionalAtMostOneLeftRelationshipTraversal',
2615
+ } as const satisfies Record<string, RelationQueryLogicalBypassKind>;
2616
+
2617
+ export const relationQueryLogicalBypassKindLabels: Record<RelationQueryLogicalBypassKind, string> = {
2618
+ OptionalAtMostOneLeftRelationshipTraversal: 'OptionalAtMostOneLeftRelationshipTraversal',
2619
+ };
2620
+
2621
+ export type RelationshipTraversalCardinality = 'AtMostOne' | 'Many';
2622
+
2623
+ export const relationshipTraversalCardinalities = {
2624
+ atMostOne: 'AtMostOne',
2625
+ many: 'Many',
2626
+ } as const satisfies Record<string, RelationshipTraversalCardinality>;
2627
+
2628
+ export const relationshipTraversalCardinalityLabels: Record<RelationshipTraversalCardinality, string> = {
2629
+ AtMostOne: 'AtMostOne',
2630
+ Many: 'Many',
2631
+ };
2632
+
2633
+ export type TemporalBoundaryInclusion = 'Inclusive' | 'Exclusive';
2634
+
2635
+ export const temporalBoundaryInclusions = {
2636
+ inclusive: 'Inclusive',
2637
+ exclusive: 'Exclusive',
2638
+ } as const satisfies Record<string, TemporalBoundaryInclusion>;
2639
+
2640
+ export const temporalBoundaryInclusionLabels: Record<TemporalBoundaryInclusion, string> = {
2641
+ Inclusive: 'Inclusive',
2642
+ Exclusive: 'Exclusive',
2643
+ };
2644
+
2645
+ export type TemporalNullBoundBehavior = 'Invalid' | 'Unbounded';
2646
+
2647
+ export const temporalNullBoundBehaviors = {
2648
+ invalid: 'Invalid',
2649
+ unbounded: 'Unbounded',
2650
+ } as const satisfies Record<string, TemporalNullBoundBehavior>;
2651
+
2652
+ export const temporalNullBoundBehaviorLabels: Record<TemporalNullBoundBehavior, string> = {
2653
+ Invalid: 'Invalid',
2654
+ Unbounded: 'Unbounded',
2655
+ };
2656
+
558
2657
  export interface QualifiedShapeId {
559
- GraphId: GraphId;
560
- ShapeId: ShapeId;
2658
+ graphId: GraphId;
2659
+ shapeId: ShapeId;
561
2660
  }
562
2661
 
563
- export interface RelationDefinition {
564
- Id: RelationId;
565
- Name: RelationName;
566
- Sources: RelationSource[];
567
- Joins: JoinDefinition[];
568
- Filter?: Expr | null;
569
- BaseRowShapeId?: ShapeId | null;
570
- Mappings: MappingDefinition[];
571
- Materialization?: MaterializationSpec | null;
572
- Metadata: RelationMetadata;
573
- Invariants: InvariantDefinition[];
2662
+ export interface RelationQueryExplainArtifact {
2663
+ schemaVersion: string;
2664
+ stages: RelationQueryExplainStage[];
2665
+ capabilitySummary?: RelationQueryCapabilitySummary | null;
2666
+ diagnostics: RelationQueryExplainDiagnostic[];
2667
+ fingerprint: RelationQueryExplainFingerprint;
2668
+ }
2669
+
2670
+ export interface CompiledRelationQueryPhysicalPlan {
2671
+ schemaVersion: string;
2672
+ plan: RelationQueryCompiledPlanReference;
2673
+ realization: RelationQueryRealizationFingerprint;
2674
+ placement: RelationQuerySourcePlacement;
2675
+ policy: RelationQueryPhysicalPlanningPolicy;
2676
+ stages: RelationQueryPhysicalStage[];
2677
+ evaluationOrder: RelationQueryPhysicalStageId[];
2678
+ terminal: RelationQueryPhysicalStageId;
2679
+ diagnostics: RelationQueryPhysicalPlanningDiagnostic[];
2680
+ fingerprint: RelationQueryPhysicalPlanFingerprint;
2681
+ }
2682
+
2683
+ export interface RelationQuerySourcePlacement {
2684
+ schemaVersion: string;
2685
+ plan: RelationQueryCompiledPlanReference;
2686
+ conventionSetVersion: string;
2687
+ sourceInstances: RelationQuerySourceInstance[];
2688
+ bindings: RelationQuerySourcePlacementBinding[];
2689
+ configurationDecisions: RelationQueryConfigurationDecision[];
2690
+ fingerprint: RelationQuerySourcePlacementFingerprint;
2691
+ }
2692
+
2693
+ export interface RelationQueryBoundRealizationReport {
2694
+ profileFeasibility: RelationQueryRealizationReport;
2695
+ placement: RelationQuerySourcePlacementFingerprint;
2696
+ branches: RelationQueryNativeResultBranchId[];
2697
+ evidence: RelationQueryContextualEvidenceProjection;
2698
+ diagnostics: RelationQueryRealizationDiagnostic[];
2699
+ status: RelationQueryRealizationStatus;
2700
+ fingerprint: RelationQueryBoundRealizationFingerprint;
2701
+ }
2702
+
2703
+ export interface RelationQueryRealizationReport {
2704
+ plan: RelationQueryCompiledPlanReference;
2705
+ targetProfile: RelationQueryTargetCapabilityProfile;
2706
+ policy: RelationQueryRealizationPolicy;
2707
+ observability: RelationQueryResultObservability;
2708
+ requirements: RelationQueryRealizationRequirement[];
2709
+ decisions: RelationQueryRealizationDecision[];
2710
+ diagnostics: RelationQueryRealizationDiagnostic[];
2711
+ status: RelationQueryRealizationStatus;
2712
+ fingerprint: RelationQueryRealizationFingerprint;
2713
+ }
2714
+
2715
+ export interface RelationQueryTargetCapabilityProfile {
2716
+ target: RelationQueryTargetId;
2717
+ id: RelationQueryTargetProfileId;
2718
+ supportedDefinitionSchemaVersions: string[];
2719
+ supportedCompilerProfiles: string[];
2720
+ capabilities: RelationQueryTargetCapabilityEvidence[];
2721
+ operatingBoundaries: RelationQueryOperatingBoundary[];
2722
+ description?: string | null;
2723
+ }
2724
+
2725
+ export interface RelationDraftDocument {
2726
+ schemaVersion: string;
2727
+ draft: RelationDraft;
2728
+ draftFingerprint: RelationDraftFingerprint;
2729
+ metadata: RelationDraftDocumentMetadata;
2730
+ }
2731
+
2732
+ export interface RelationQueryDocument {
2733
+ schemaVersion: string;
2734
+ definition: RelationQueryDefinition;
2735
+ definitionFingerprint: RelationQueryDefinitionFingerprint;
2736
+ metadata: RelationQueryDocumentMetadata;
2737
+ }
2738
+
2739
+ export interface RelationshipCatalogDocument {
2740
+ schemaVersion: string;
2741
+ catalog: RelationshipCatalog;
2742
+ catalogFingerprint: RelationshipCatalogFingerprint;
2743
+ metadata: RelationshipCatalogDocumentMetadata;
574
2744
  }