@shapeshift-labs/frontier-lang-compiler 0.2.99 → 0.2.101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/declarations/bidirectional-target-change-evidence.d.ts +299 -0
- package/dist/declarations/bidirectional-target-change.d.ts +19 -120
- package/dist/declarations/native-project-admission.d.ts +43 -22
- package/dist/declarations/semantic-edit-bundle.d.ts +13 -1
- package/dist/declarations/semantic-edit-replay-diagnostics.d.ts +24 -0
- package/dist/declarations/semantic-edit-script.d.ts +53 -51
- package/dist/declarations/semantic-lineage.d.ts +62 -51
- package/dist/declarations/semantic-merge-candidates.d.ts +39 -0
- package/dist/declarations/semantic-patch-bundle.d.ts +13 -0
- package/dist/declarations/semantic-sidecar-admission.d.ts +14 -0
- package/dist/declarations/semantic-sidecar.d.ts +12 -14
- package/dist/internal/index-impl/bidirectionalTargetRoundtripEvidence.js +200 -0
- package/dist/internal/index-impl/createBidirectionalTargetChangeRecord.js +62 -17
- package/dist/internal/index-impl/createNativeSourcePreservation.js +16 -1
- package/dist/internal/index-impl/createProjectImportAdmissionRecord.js +151 -1
- package/dist/internal/index-impl/createSemanticImportSidecar.js +5 -0
- package/dist/internal/index-impl/createSemanticImportSidecarAdmission.js +29 -11
- package/dist/internal/index-impl/declarationRecord.js +2 -2
- package/dist/internal/index-impl/inferSemanticLineageEvents.js +8 -0
- package/dist/internal/index-impl/nativeChangeProjectionEndpoint.js +56 -16
- package/dist/internal/index-impl/projectImportAdmissionMergeScore.js +26 -74
- package/dist/internal/index-impl/projectImportAdmissionProjectionCoverage.js +74 -0
- package/dist/internal/index-impl/projectSemanticEditScriptToSource.js +92 -74
- package/dist/internal/index-impl/replaySemanticEditProjection.js +114 -40
- package/dist/internal/index-impl/semanticEditBundleAdmission.js +95 -12
- package/dist/internal/index-impl/semanticEditBundleIndex.js +16 -10
- package/dist/internal/index-impl/semanticEditInsertionAnchors.js +8 -5
- package/dist/internal/index-impl/semanticEditReplayDiagnostics.js +167 -0
- package/dist/internal/index-impl/semanticEditSourceRanges.js +283 -0
- package/dist/internal/index-impl/semanticHistoryLineageResolution.js +56 -3
- package/dist/internal/index-impl/semanticIndexFromNativeDeclarations.js +2 -2
- package/dist/internal/index-impl/semanticLineageHashEvidence.js +97 -0
- package/dist/internal/index-impl/semanticLineageInferenceMatching.js +158 -13
- package/dist/internal/index-impl/semanticLineageResolutionRecords.js +46 -2
- package/dist/internal/index-impl/semanticMergeCandidateRecords.js +22 -2
- package/dist/internal/index-impl/semanticMergeCandidateScoreFacets.js +221 -0
- package/dist/internal/index-impl/semanticPatchBundleAdmission.js +122 -20
- package/dist/internal/index-impl/semanticPatchBundleLineageLinks.js +199 -0
- package/dist/internal/index-impl/semanticPatchBundleOverlaps.js +29 -3
- package/dist/internal/index-impl/semanticPatchBundleRecords.js +28 -104
- package/dist/internal/index-impl/semanticPatchBundleSourceRecords.js +127 -0
- package/dist/internal/index-impl/sourcePreservationFromProjectionContext.js +9 -2
- package/dist/internal/index-impl/sourceTextForSpan.js +4 -9
- package/dist/lightweight-dependency-relations.js +113 -7
- package/dist/native-import-language-profiles.js +10 -2
- package/dist/native-import-utils.js +15 -1
- package/dist/native-region-scanner-js-helpers.js +68 -18
- package/dist/native-region-scanner-js-imports.js +7 -0
- package/dist/native-region-scanner-js.js +16 -8
- package/dist/native-region-scanner.js +2 -1
- package/dist/semantic-import-regions.js +8 -6
- package/dist/semantic-import-sidecar-admission-types.d.ts +14 -0
- package/dist/semantic-import-sidecar-entry.js +151 -7
- package/dist/semantic-import-sidecar-types.d.ts +18 -13
- package/dist/semantic-import-source-preservation-utils.js +55 -0
- package/dist/semantic-import-source-preservation.js +98 -3
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SemanticMergeReadiness } from '@shapeshift-labs/frontier-lang-kernel';
|
|
1
|
+
import type { EvidenceRecord, SemanticMergeReadiness } from '@shapeshift-labs/frontier-lang-kernel';
|
|
2
2
|
import type { SemanticEditProjection, SemanticEditReplay, SemanticEditScript } from './semantic-edit-script.js';
|
|
3
3
|
|
|
4
4
|
export type SemanticEditBundleAdmissionStatus =
|
|
@@ -16,6 +16,8 @@ export interface SemanticEditBundleAdmissionSummary {
|
|
|
16
16
|
readonly projections: number;
|
|
17
17
|
readonly replays: number;
|
|
18
18
|
readonly files: number;
|
|
19
|
+
readonly portableScripts: number;
|
|
20
|
+
readonly portableProjections: number;
|
|
19
21
|
readonly acceptedClean: number;
|
|
20
22
|
readonly alreadyApplied: number;
|
|
21
23
|
readonly conflicts: number;
|
|
@@ -32,6 +34,11 @@ export interface SemanticEditBundleAdmissionSummary {
|
|
|
32
34
|
readonly scriptIds: readonly string[];
|
|
33
35
|
readonly projectionIds: readonly string[];
|
|
34
36
|
readonly replayIds: readonly string[];
|
|
37
|
+
readonly evidenceIds: readonly string[];
|
|
38
|
+
readonly passedTestEvidence: number;
|
|
39
|
+
readonly failedTestEvidence: number;
|
|
40
|
+
readonly conflictEvidence: number;
|
|
41
|
+
readonly staleEvidence: number;
|
|
35
42
|
readonly reasonCodes: readonly string[];
|
|
36
43
|
}
|
|
37
44
|
|
|
@@ -68,6 +75,11 @@ export interface CreateSemanticEditBundleAdmissionInput {
|
|
|
68
75
|
readonly semanticEditReplay?: SemanticEditReplay;
|
|
69
76
|
readonly semanticEditReplays?: readonly SemanticEditReplay[] | SemanticEditReplay;
|
|
70
77
|
readonly replays?: readonly SemanticEditReplay[] | SemanticEditReplay;
|
|
78
|
+
readonly evidence?: readonly EvidenceRecord[] | EvidenceRecord;
|
|
79
|
+
readonly testEvidence?: readonly EvidenceRecord[] | EvidenceRecord;
|
|
80
|
+
readonly testResults?: readonly EvidenceRecord[] | EvidenceRecord;
|
|
81
|
+
readonly gateEvidence?: readonly EvidenceRecord[] | EvidenceRecord;
|
|
82
|
+
readonly proofEvidence?: readonly EvidenceRecord[] | EvidenceRecord;
|
|
71
83
|
readonly metadata?: Record<string, unknown>;
|
|
72
84
|
}
|
|
73
85
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SemanticEditReplayStatus } from './semantic-edit-script.js';
|
|
2
|
+
|
|
3
|
+
export type SemanticEditReplayDiagnosticCategory = 'stale-anchor' | 'overlap' | 'missing-source' | 'projection-mismatch' | 'matched-source' | 'reanchored' | 'replay' | string;
|
|
4
|
+
export type SemanticEditReplayDiagnosticSeverity = 'info' | 'warning' | 'error' | string;
|
|
5
|
+
export type SemanticEditReplayDiagnosticScope = 'replay' | 'edit' | string;
|
|
6
|
+
|
|
7
|
+
export interface SemanticEditReplayDiagnostic {
|
|
8
|
+
readonly code: string;
|
|
9
|
+
readonly category: SemanticEditReplayDiagnosticCategory;
|
|
10
|
+
readonly severity: SemanticEditReplayDiagnosticSeverity;
|
|
11
|
+
readonly scope: SemanticEditReplayDiagnosticScope;
|
|
12
|
+
readonly status?: SemanticEditReplayStatus | string;
|
|
13
|
+
readonly operationId?: string;
|
|
14
|
+
readonly sourcePath?: string;
|
|
15
|
+
readonly symbolName?: string;
|
|
16
|
+
readonly symbolKind?: string;
|
|
17
|
+
readonly editKind?: 'replace' | 'insert' | 'delete' | string;
|
|
18
|
+
readonly start?: number;
|
|
19
|
+
readonly end?: number;
|
|
20
|
+
readonly expectedHash?: string;
|
|
21
|
+
readonly actualHash?: string;
|
|
22
|
+
readonly replacementHash?: string;
|
|
23
|
+
readonly overlapOperationIds?: readonly string[];
|
|
24
|
+
}
|
|
@@ -1,29 +1,21 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
EvidenceRecord,
|
|
3
|
-
FrontierSourceLanguage,
|
|
4
|
-
SemanticMergeReadiness,
|
|
5
|
-
SourceSpan
|
|
6
|
-
} from '@shapeshift-labs/frontier-lang-kernel';
|
|
1
|
+
import type { EvidenceRecord, FrontierSourceLanguage, SemanticMergeReadiness, SourceSpan } from '@shapeshift-labs/frontier-lang-kernel';
|
|
7
2
|
import type { ImportNativeSourceOptions, NativeSourceImportResult } from './import-adapter-core.js';
|
|
8
|
-
|
|
9
|
-
export type
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
| '
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
| 'blocked'
|
|
25
|
-
| 'evidence-only';
|
|
26
|
-
|
|
3
|
+
import type { SemanticEditReplayDiagnostic } from './semantic-edit-replay-diagnostics.js';
|
|
4
|
+
export type * from './semantic-edit-replay-diagnostics.js';
|
|
5
|
+
export type SemanticEditScriptOperationStatus = 'candidate' | 'portable' | 'already-applied' | 'covered' | 'needs-port' | 'conflict' | 'stale' | 'blocked';
|
|
6
|
+
export type SemanticEditScriptAdmissionStatus = 'auto-merge-candidate' | 'needs-port' | 'conflict' | 'stale' | 'blocked' | 'evidence-only';
|
|
7
|
+
export interface SemanticEditInsertionAnchorCandidate {
|
|
8
|
+
readonly mode?: 'before' | 'after' | 'file-start' | 'file-end' | string;
|
|
9
|
+
readonly anchorKey?: string;
|
|
10
|
+
readonly anchorSymbolId?: string;
|
|
11
|
+
readonly anchorSymbolName?: string;
|
|
12
|
+
readonly anchorSymbolKind?: string;
|
|
13
|
+
readonly baseSpan?: SourceSpan;
|
|
14
|
+
readonly workerAnchorSpan?: SourceSpan;
|
|
15
|
+
readonly headSpan?: SourceSpan;
|
|
16
|
+
readonly sourcePath?: string;
|
|
17
|
+
readonly reasonCodes?: readonly string[];
|
|
18
|
+
}
|
|
27
19
|
export interface SemanticEditScriptOperation {
|
|
28
20
|
readonly id: string;
|
|
29
21
|
readonly kind: string;
|
|
@@ -39,6 +31,7 @@ export interface SemanticEditScriptOperation {
|
|
|
39
31
|
readonly mode?: 'before' | 'after' | 'file-start' | 'file-end' | string;
|
|
40
32
|
readonly anchorKey?: string; readonly anchorSymbolId?: string; readonly anchorSymbolName?: string; readonly anchorSymbolKind?: string;
|
|
41
33
|
readonly baseSpan?: SourceSpan; readonly workerAnchorSpan?: SourceSpan; readonly headSpan?: SourceSpan; readonly sourcePath?: string;
|
|
34
|
+
readonly anchorCandidates?: readonly SemanticEditInsertionAnchorCandidate[];
|
|
42
35
|
readonly insertedSymbolId?: string; readonly insertedSymbolName?: string; readonly insertedSymbolKind?: string;
|
|
43
36
|
readonly insertedSourceSpan?: SourceSpan; readonly insertedSourcePath?: string;
|
|
44
37
|
readonly reasonCodes?: readonly string[];
|
|
@@ -72,7 +65,6 @@ export interface SemanticEditScriptOperation {
|
|
|
72
65
|
readonly evidenceIds?: readonly string[];
|
|
73
66
|
readonly metadata?: Record<string, unknown>;
|
|
74
67
|
}
|
|
75
|
-
|
|
76
68
|
export interface SemanticEditScriptSummary {
|
|
77
69
|
readonly operations: number;
|
|
78
70
|
readonly byStatus: Readonly<Record<string, number>>;
|
|
@@ -91,7 +83,6 @@ export interface SemanticEditScriptSummary {
|
|
|
91
83
|
readonly sourceIdentityHashes?: readonly string[];
|
|
92
84
|
readonly operationContentHashes?: readonly string[];
|
|
93
85
|
}
|
|
94
|
-
|
|
95
86
|
export interface SemanticEditScriptAdmission {
|
|
96
87
|
readonly status: SemanticEditScriptAdmissionStatus;
|
|
97
88
|
readonly action: 'run-gates-and-apply' | 'reanchor-or-human-port' | 'record-evidence' | 'block' | string;
|
|
@@ -103,7 +94,6 @@ export interface SemanticEditScriptAdmission {
|
|
|
103
94
|
readonly conflictKeys: readonly string[];
|
|
104
95
|
readonly evidenceIds: readonly string[];
|
|
105
96
|
}
|
|
106
|
-
|
|
107
97
|
export interface SemanticEditScript {
|
|
108
98
|
readonly kind: 'frontier.lang.semanticEditScript';
|
|
109
99
|
readonly version: 1;
|
|
@@ -125,12 +115,11 @@ export interface SemanticEditScript {
|
|
|
125
115
|
readonly evidence: readonly EvidenceRecord[];
|
|
126
116
|
readonly metadata?: Record<string, unknown>;
|
|
127
117
|
}
|
|
128
|
-
|
|
129
118
|
export interface SemanticEditProjectionEdit {
|
|
130
119
|
readonly operationId?: string;
|
|
131
120
|
readonly status: 'applied' | 'already-applied';
|
|
132
121
|
readonly kind?: string;
|
|
133
|
-
readonly editKind?: 'replace' | 'insert' | string;
|
|
122
|
+
readonly editKind?: 'replace' | 'insert' | 'delete' | string;
|
|
134
123
|
readonly changeKind?: string;
|
|
135
124
|
readonly anchorKey?: string;
|
|
136
125
|
readonly conflictKey?: string;
|
|
@@ -163,9 +152,9 @@ export interface SemanticEditProjectionEdit {
|
|
|
163
152
|
readonly insertionAnchorKey?: string;
|
|
164
153
|
readonly insertionAnchorSymbolName?: string;
|
|
165
154
|
readonly insertionAnchorSymbolKind?: string;
|
|
155
|
+
readonly insertionAnchorCandidates?: readonly SemanticEditInsertionAnchorCandidate[];
|
|
166
156
|
readonly replacementText?: string;
|
|
167
157
|
}
|
|
168
|
-
|
|
169
158
|
export interface SemanticEditProjection {
|
|
170
159
|
readonly kind: 'frontier.lang.semanticEditProjection';
|
|
171
160
|
readonly version: 1;
|
|
@@ -191,23 +180,16 @@ export interface SemanticEditProjection {
|
|
|
191
180
|
};
|
|
192
181
|
readonly metadata?: Record<string, unknown>;
|
|
193
182
|
}
|
|
194
|
-
|
|
195
|
-
export type SemanticEditReplayStatus =
|
|
196
|
-
| 'accepted-clean'
|
|
197
|
-
| 'already-applied'
|
|
198
|
-
| 'conflict'
|
|
199
|
-
| 'stale'
|
|
200
|
-
| 'blocked'
|
|
201
|
-
| 'needs-port'
|
|
202
|
-
| 'evidence-only';
|
|
203
|
-
|
|
183
|
+
export type SemanticEditReplayStatus = 'accepted-clean' | 'already-applied' | 'conflict' | 'stale' | 'blocked' | 'needs-port' | 'evidence-only';
|
|
204
184
|
export interface SemanticEditReplayEdit {
|
|
205
185
|
readonly operationId?: string;
|
|
206
186
|
readonly semanticKey?: string;
|
|
207
187
|
readonly semanticIdentityHash?: string;
|
|
208
188
|
readonly sourceIdentityHash?: string;
|
|
209
189
|
readonly editContentHash?: string;
|
|
210
|
-
readonly editKind?: 'replace' | 'insert' | string;
|
|
190
|
+
readonly editKind?: 'replace' | 'insert' | 'delete' | string;
|
|
191
|
+
readonly editOrder?: number;
|
|
192
|
+
readonly sourceRangeKind?: string;
|
|
211
193
|
readonly sourcePath?: string;
|
|
212
194
|
readonly symbolName?: string;
|
|
213
195
|
readonly symbolKind?: string;
|
|
@@ -217,8 +199,8 @@ export interface SemanticEditReplayEdit {
|
|
|
217
199
|
readonly replacementBytes?: number;
|
|
218
200
|
readonly replacementText?: string;
|
|
219
201
|
readonly reasonCodes: readonly string[];
|
|
202
|
+
readonly diagnostics?: readonly SemanticEditReplayDiagnostic[];
|
|
220
203
|
}
|
|
221
|
-
|
|
222
204
|
export interface SemanticEditReplay {
|
|
223
205
|
readonly kind: 'frontier.lang.semanticEditReplay';
|
|
224
206
|
readonly version: 1;
|
|
@@ -236,6 +218,7 @@ export interface SemanticEditReplay {
|
|
|
236
218
|
readonly edits: readonly SemanticEditReplayEdit[];
|
|
237
219
|
readonly appliedOperations: readonly string[];
|
|
238
220
|
readonly skippedOperations: readonly string[];
|
|
221
|
+
readonly diagnostics?: readonly SemanticEditReplayDiagnostic[];
|
|
239
222
|
readonly admission: {
|
|
240
223
|
readonly status: SemanticEditReplayStatus;
|
|
241
224
|
readonly action: 'apply' | 'skip' | 'rerun-semantic-import' | 'human-review' | 'block' | string;
|
|
@@ -257,7 +240,6 @@ export interface SemanticEditReplay {
|
|
|
257
240
|
};
|
|
258
241
|
readonly metadata?: Record<string, unknown>;
|
|
259
242
|
}
|
|
260
|
-
|
|
261
243
|
export interface ProjectSemanticEditScriptToSourceOptions {
|
|
262
244
|
readonly id?: string;
|
|
263
245
|
readonly script: SemanticEditScript;
|
|
@@ -266,18 +248,19 @@ export interface ProjectSemanticEditScriptToSourceOptions {
|
|
|
266
248
|
readonly headSourcePath?: string;
|
|
267
249
|
readonly metadata?: Record<string, unknown>;
|
|
268
250
|
}
|
|
269
|
-
|
|
270
251
|
export interface ReplaySemanticEditProjectionOptions {
|
|
271
252
|
readonly id?: string;
|
|
272
|
-
readonly projection
|
|
273
|
-
readonly
|
|
253
|
+
readonly projection?: SemanticEditProjection;
|
|
254
|
+
readonly semanticEditProjection?: SemanticEditProjection;
|
|
255
|
+
readonly currentSourceText?: string;
|
|
256
|
+
readonly headSourceText?: string;
|
|
274
257
|
readonly currentSourcePath?: string;
|
|
258
|
+
readonly headSourcePath?: string;
|
|
275
259
|
readonly currentSourceHash?: string;
|
|
276
260
|
readonly language?: FrontierSourceLanguage | string;
|
|
277
261
|
readonly parser?: string;
|
|
278
262
|
readonly metadata?: Record<string, unknown>;
|
|
279
263
|
}
|
|
280
|
-
|
|
281
264
|
export interface CreateSemanticEditScriptOptions {
|
|
282
265
|
readonly id?: string;
|
|
283
266
|
readonly language?: FrontierSourceLanguage | string;
|
|
@@ -294,17 +277,36 @@ export interface CreateSemanticEditScriptOptions {
|
|
|
294
277
|
readonly workerSourceText?: string;
|
|
295
278
|
readonly afterSourceText?: string;
|
|
296
279
|
readonly headSourceText?: string;
|
|
280
|
+
readonly baseSourcePath?: string;
|
|
281
|
+
readonly beforeSourcePath?: string;
|
|
282
|
+
readonly workerSourcePath?: string;
|
|
283
|
+
readonly afterSourcePath?: string;
|
|
297
284
|
readonly headSourcePath?: string;
|
|
298
285
|
readonly currentSourceText?: string;
|
|
286
|
+
readonly currentSourcePath?: string;
|
|
299
287
|
readonly baseSourceHash?: string;
|
|
288
|
+
readonly beforeSourceHash?: string;
|
|
300
289
|
readonly workerSourceHash?: string;
|
|
290
|
+
readonly afterSourceHash?: string;
|
|
301
291
|
readonly headSourceHash?: string;
|
|
302
|
-
readonly
|
|
292
|
+
readonly currentSourceHash?: string;
|
|
293
|
+
readonly baseMetadata?: Record<string, unknown>;
|
|
294
|
+
readonly beforeMetadata?: Record<string, unknown>;
|
|
295
|
+
readonly workerMetadata?: Record<string, unknown>;
|
|
296
|
+
readonly afterMetadata?: Record<string, unknown>;
|
|
297
|
+
readonly headMetadata?: Record<string, unknown>;
|
|
298
|
+
readonly currentMetadata?: Record<string, unknown>;
|
|
299
|
+
readonly workerChangeSetId?: string;
|
|
300
|
+
readonly headChangeSetId?: string;
|
|
301
|
+
readonly lineageInferenceId?: string;
|
|
302
|
+
readonly generatedAt?: number | string;
|
|
303
303
|
readonly evidenceId?: string;
|
|
304
304
|
readonly metadata?: Record<string, unknown>;
|
|
305
305
|
}
|
|
306
|
-
|
|
306
|
+
export interface CreateSemanticEditScriptRuntimeOptions {
|
|
307
|
+
readonly metadata?: Record<string, unknown>;
|
|
308
|
+
}
|
|
307
309
|
export declare const SemanticEditScriptAdmissionStatuses: readonly SemanticEditScriptAdmissionStatus[];
|
|
308
|
-
export declare function createSemanticEditScript(input?: CreateSemanticEditScriptOptions): SemanticEditScript;
|
|
310
|
+
export declare function createSemanticEditScript(input?: CreateSemanticEditScriptOptions, options?: CreateSemanticEditScriptRuntimeOptions): SemanticEditScript;
|
|
309
311
|
export declare function projectSemanticEditScriptToSource(input: ProjectSemanticEditScriptToSourceOptions): SemanticEditProjection;
|
|
310
312
|
export declare function replaySemanticEditProjection(input: ReplaySemanticEditProjectionOptions): SemanticEditReplay;
|
|
@@ -1,26 +1,32 @@
|
|
|
1
|
-
import type { FrontierSourceLanguage, SourceSpan } from '@shapeshift-labs/frontier-lang-kernel';
|
|
2
|
-
import type { EvidenceRecord, SemanticMergeReadiness } from '@shapeshift-labs/frontier-lang-kernel';
|
|
1
|
+
import type { EvidenceRecord, FrontierSourceLanguage, SemanticMergeReadiness, SourceSpan } from '@shapeshift-labs/frontier-lang-kernel';
|
|
3
2
|
import type { ImportNativeSourceOptions, NativeSourceImportResult } from './import-adapter-core.js';
|
|
4
|
-
|
|
5
3
|
export type SemanticLineageEventKind = 'unchanged' | 'moved' | 'renamed' | 'split' | 'merged' | 'deleted' | 'recreated' | 'unknown' | string;
|
|
6
4
|
export type SemanticLineageResolutionStatus = 'unchanged' | 'resolved' | 'ambiguous' | 'deleted' | 'recreated' | 'cycle' | 'max-depth' | 'not-found' | string;
|
|
7
|
-
|
|
8
5
|
export interface SemanticAnchor {
|
|
9
|
-
readonly id?: string;
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
readonly language?: FrontierSourceLanguage | string;
|
|
13
|
-
readonly sourcePath?: string;
|
|
14
|
-
readonly sourceHash?: string;
|
|
15
|
-
readonly symbolId?: string;
|
|
16
|
-
readonly symbolName?: string;
|
|
6
|
+
readonly id?: string; readonly key?: string; readonly kind?: string;
|
|
7
|
+
readonly language?: FrontierSourceLanguage | string; readonly sourcePath?: string; readonly sourceHash?: string;
|
|
8
|
+
readonly symbolId?: string; readonly symbolName?: string;
|
|
17
9
|
readonly semanticPath?: readonly string[];
|
|
18
|
-
readonly signatureHash?: string;
|
|
19
|
-
readonly bodyHash?: string;
|
|
10
|
+
readonly signatureHash?: string; readonly bodyHash?: string;
|
|
20
11
|
readonly sourceSpan?: SourceSpan;
|
|
12
|
+
readonly lineageEventIds?: readonly string[]; readonly terminalLineageEventIds?: readonly string[];
|
|
13
|
+
readonly lineageSourcePaths?: readonly string[]; readonly evidenceIds?: readonly string[];
|
|
14
|
+
readonly proofIds?: readonly string[]; readonly crdtOperationIds?: readonly string[]; readonly crdtHeads?: readonly string[];
|
|
15
|
+
readonly lineageEventKinds?: readonly SemanticLineageEventKind[]; readonly lineageReasonCodes?: readonly string[];
|
|
21
16
|
readonly metadata?: Record<string, unknown>;
|
|
22
17
|
}
|
|
23
|
-
|
|
18
|
+
export interface CreateSemanticAnchorInput extends SemanticAnchor {
|
|
19
|
+
readonly ownershipKey?: string;
|
|
20
|
+
readonly conflictKey?: string;
|
|
21
|
+
readonly semanticKey?: string;
|
|
22
|
+
readonly anchorKind?: string;
|
|
23
|
+
readonly regionKind?: string;
|
|
24
|
+
readonly symbolKind?: string;
|
|
25
|
+
readonly pathSegments?: readonly string[];
|
|
26
|
+
readonly name?: string;
|
|
27
|
+
readonly hash?: string;
|
|
28
|
+
readonly span?: SourceSpan;
|
|
29
|
+
}
|
|
24
30
|
export interface SemanticLineageCrdtClock {
|
|
25
31
|
readonly operationId?: string;
|
|
26
32
|
readonly actor?: string;
|
|
@@ -30,7 +36,18 @@ export interface SemanticLineageCrdtClock {
|
|
|
30
36
|
readonly stateVector?: Record<string, number>;
|
|
31
37
|
readonly versionFrame?: Record<string, unknown>;
|
|
32
38
|
}
|
|
33
|
-
|
|
39
|
+
export interface SemanticLineageCrdtClockInput {
|
|
40
|
+
readonly operationId?: string;
|
|
41
|
+
readonly id?: string;
|
|
42
|
+
readonly actor?: string;
|
|
43
|
+
readonly actorId?: string;
|
|
44
|
+
readonly seq?: number;
|
|
45
|
+
readonly deps?: readonly string[] | string;
|
|
46
|
+
readonly heads?: readonly string[] | string;
|
|
47
|
+
readonly stateVector?: Record<string, number>;
|
|
48
|
+
readonly versionFrame?: Record<string, unknown>;
|
|
49
|
+
readonly frame?: Record<string, unknown>;
|
|
50
|
+
}
|
|
34
51
|
export interface SemanticLineageEvidence {
|
|
35
52
|
readonly pathMatch?: boolean;
|
|
36
53
|
readonly signatureHashMatch?: boolean;
|
|
@@ -40,7 +57,9 @@ export interface SemanticLineageEvidence {
|
|
|
40
57
|
readonly confidence?: number;
|
|
41
58
|
readonly command?: string;
|
|
42
59
|
}
|
|
43
|
-
|
|
60
|
+
export interface SemanticLineageEvidenceInput extends SemanticLineageEvidence {
|
|
61
|
+
readonly id?: string;
|
|
62
|
+
}
|
|
44
63
|
export interface SemanticLineageActor {
|
|
45
64
|
readonly id?: string;
|
|
46
65
|
readonly role?: string;
|
|
@@ -49,7 +68,9 @@ export interface SemanticLineageActor {
|
|
|
49
68
|
readonly runId?: string;
|
|
50
69
|
readonly metadata?: Record<string, unknown>;
|
|
51
70
|
}
|
|
52
|
-
|
|
71
|
+
export interface SemanticLineageActorInput extends SemanticLineageActor {
|
|
72
|
+
readonly actorId?: string;
|
|
73
|
+
}
|
|
53
74
|
export interface SemanticLineageEvent {
|
|
54
75
|
readonly kind: 'frontier.lang.semanticLineageEvent';
|
|
55
76
|
readonly version: 1;
|
|
@@ -69,34 +90,28 @@ export interface SemanticLineageEvent {
|
|
|
69
90
|
readonly conflictKeys: readonly string[];
|
|
70
91
|
readonly metadata?: Record<string, unknown>;
|
|
71
92
|
}
|
|
72
|
-
|
|
73
93
|
export interface CreateSemanticLineageEventInput {
|
|
74
|
-
readonly id?: string;
|
|
75
|
-
readonly
|
|
76
|
-
readonly
|
|
77
|
-
readonly
|
|
78
|
-
readonly
|
|
79
|
-
readonly
|
|
80
|
-
readonly
|
|
81
|
-
readonly
|
|
82
|
-
readonly
|
|
83
|
-
readonly
|
|
84
|
-
readonly
|
|
85
|
-
readonly
|
|
86
|
-
readonly
|
|
87
|
-
readonly actor?: SemanticLineageActor | string;
|
|
88
|
-
readonly actorId?: string;
|
|
89
|
-
readonly actorRole?: string;
|
|
90
|
-
readonly crdt?: SemanticLineageCrdtClock;
|
|
91
|
-
readonly clock?: SemanticLineageCrdtClock;
|
|
92
|
-
readonly operation?: SemanticLineageCrdtClock;
|
|
94
|
+
readonly id?: string; readonly hash?: string; readonly createdAt?: number | string;
|
|
95
|
+
readonly eventKind?: SemanticLineageEventKind; readonly event?: SemanticLineageEventKind; readonly kind?: SemanticLineageEventKind;
|
|
96
|
+
readonly from?: CreateSemanticAnchorInput | string;
|
|
97
|
+
readonly fromAnchor?: CreateSemanticAnchorInput | string;
|
|
98
|
+
readonly before?: CreateSemanticAnchorInput | string;
|
|
99
|
+
readonly to?: readonly (CreateSemanticAnchorInput | string)[] | CreateSemanticAnchorInput | string;
|
|
100
|
+
readonly toAnchors?: readonly (CreateSemanticAnchorInput | string)[] | CreateSemanticAnchorInput | string;
|
|
101
|
+
readonly after?: readonly (CreateSemanticAnchorInput | string)[] | CreateSemanticAnchorInput | string;
|
|
102
|
+
readonly confidence?: number; readonly actor?: SemanticLineageActorInput | string;
|
|
103
|
+
readonly actorId?: string; readonly actorRole?: string;
|
|
104
|
+
readonly crdt?: SemanticLineageCrdtClockInput;
|
|
105
|
+
readonly clock?: SemanticLineageCrdtClockInput;
|
|
106
|
+
readonly operation?: SemanticLineageCrdtClockInput;
|
|
93
107
|
readonly operationId?: string;
|
|
94
108
|
readonly seq?: number;
|
|
95
109
|
readonly deps?: readonly string[] | string;
|
|
96
110
|
readonly heads?: readonly string[] | string;
|
|
97
111
|
readonly stateVector?: Record<string, number>;
|
|
98
112
|
readonly versionFrame?: Record<string, unknown>;
|
|
99
|
-
readonly
|
|
113
|
+
readonly frame?: Record<string, unknown>;
|
|
114
|
+
readonly evidence?: SemanticLineageEvidenceInput | readonly SemanticLineageEvidenceInput[];
|
|
100
115
|
readonly pathMatch?: boolean;
|
|
101
116
|
readonly signatureHashMatch?: boolean;
|
|
102
117
|
readonly bodyHashMatch?: boolean;
|
|
@@ -110,7 +125,6 @@ export interface CreateSemanticLineageEventInput {
|
|
|
110
125
|
readonly conflictKeys?: readonly string[] | string;
|
|
111
126
|
readonly metadata?: Record<string, unknown>;
|
|
112
127
|
}
|
|
113
|
-
|
|
114
128
|
export interface SemanticLineageMap {
|
|
115
129
|
readonly kind: 'frontier.lang.semanticLineageMap';
|
|
116
130
|
readonly version: 1;
|
|
@@ -128,7 +142,6 @@ export interface SemanticLineageMap {
|
|
|
128
142
|
readonly eventKinds: readonly string[];
|
|
129
143
|
};
|
|
130
144
|
}
|
|
131
|
-
|
|
132
145
|
export interface SemanticLineageResolutionQuery {
|
|
133
146
|
readonly id?: string;
|
|
134
147
|
readonly anchor?: SemanticAnchor | string;
|
|
@@ -142,7 +155,6 @@ export interface SemanticLineageResolutionQuery {
|
|
|
142
155
|
readonly generatedAt?: number | string;
|
|
143
156
|
readonly metadata?: Record<string, unknown>;
|
|
144
157
|
}
|
|
145
|
-
|
|
146
158
|
export interface SemanticLineageResolution {
|
|
147
159
|
readonly kind: 'frontier.lang.semanticLineageResolution';
|
|
148
160
|
readonly version: 1;
|
|
@@ -161,6 +173,7 @@ export interface SemanticLineageResolution {
|
|
|
161
173
|
readonly currentAnchors: readonly SemanticAnchor[];
|
|
162
174
|
readonly traversedEventIds: readonly string[];
|
|
163
175
|
readonly terminalEventIds: readonly string[];
|
|
176
|
+
readonly sourcePaths: readonly string[];
|
|
164
177
|
readonly status: SemanticLineageResolutionStatus;
|
|
165
178
|
readonly confidence?: number;
|
|
166
179
|
readonly conflictKeys: readonly string[];
|
|
@@ -172,7 +185,6 @@ export interface SemanticLineageResolution {
|
|
|
172
185
|
readonly reasonCodes: readonly string[];
|
|
173
186
|
readonly metadata?: Record<string, unknown>;
|
|
174
187
|
}
|
|
175
|
-
|
|
176
188
|
export interface SemanticLineageQuery {
|
|
177
189
|
readonly eventKind?: SemanticLineageEventKind | readonly string[];
|
|
178
190
|
readonly anchorKey?: string | readonly string[];
|
|
@@ -184,7 +196,6 @@ export interface SemanticLineageQuery {
|
|
|
184
196
|
readonly conflictKey?: string | readonly string[];
|
|
185
197
|
readonly evidenceId?: string | readonly string[];
|
|
186
198
|
}
|
|
187
|
-
|
|
188
199
|
export interface SemanticLineageInferredAnchorSummary {
|
|
189
200
|
readonly key?: string;
|
|
190
201
|
readonly id?: string;
|
|
@@ -193,24 +204,24 @@ export interface SemanticLineageInferredAnchorSummary {
|
|
|
193
204
|
readonly language?: FrontierSourceLanguage | string;
|
|
194
205
|
readonly sourcePath?: string;
|
|
195
206
|
readonly sourceHash?: string;
|
|
207
|
+
readonly identityHash?: string;
|
|
208
|
+
readonly semanticIdentityHash?: string;
|
|
209
|
+
readonly sourceIdentityHash?: string;
|
|
196
210
|
readonly sourceSpan?: SourceSpan;
|
|
197
211
|
readonly signatureHash?: string;
|
|
198
212
|
readonly bodyHash?: string;
|
|
199
213
|
readonly ownershipRegionKind?: string;
|
|
200
214
|
}
|
|
201
|
-
|
|
202
215
|
export interface SemanticLineageAmbiguousCandidate {
|
|
203
216
|
readonly after: SemanticLineageInferredAnchorSummary;
|
|
204
217
|
readonly confidence: number;
|
|
205
218
|
readonly reasons: readonly string[];
|
|
206
219
|
}
|
|
207
|
-
|
|
208
220
|
export interface SemanticLineageAmbiguousMatch {
|
|
209
221
|
readonly before: SemanticLineageInferredAnchorSummary;
|
|
210
222
|
readonly candidates: readonly SemanticLineageAmbiguousCandidate[];
|
|
211
223
|
readonly reasonCodes: readonly string[];
|
|
212
224
|
}
|
|
213
|
-
|
|
214
225
|
export interface SemanticLineageInferenceResult {
|
|
215
226
|
readonly kind: 'frontier.lang.semanticLineageInference';
|
|
216
227
|
readonly version: 1;
|
|
@@ -236,6 +247,8 @@ export interface SemanticLineageInferenceResult {
|
|
|
236
247
|
readonly inferredEvents: number;
|
|
237
248
|
readonly moved: number;
|
|
238
249
|
readonly renamed: number;
|
|
250
|
+
readonly split: number;
|
|
251
|
+
readonly recreated: number;
|
|
239
252
|
readonly deleted: number;
|
|
240
253
|
readonly ambiguous: number;
|
|
241
254
|
readonly unmatchedAdded: number;
|
|
@@ -251,7 +264,6 @@ export interface SemanticLineageInferenceResult {
|
|
|
251
264
|
readonly [key: string]: unknown;
|
|
252
265
|
};
|
|
253
266
|
}
|
|
254
|
-
|
|
255
267
|
export interface InferSemanticLineageEventsOptions {
|
|
256
268
|
readonly id?: string;
|
|
257
269
|
readonly before?: NativeSourceImportResult | ImportNativeSourceOptions;
|
|
@@ -277,11 +289,10 @@ export interface InferSemanticLineageEventsOptions {
|
|
|
277
289
|
readonly stateVector?: Record<string, number>;
|
|
278
290
|
readonly metadata?: Record<string, unknown>;
|
|
279
291
|
}
|
|
280
|
-
|
|
281
292
|
export declare const SemanticLineageEventKinds: readonly SemanticLineageEventKind[];
|
|
282
293
|
export declare const SemanticLineageResolutionStatuses: readonly SemanticLineageResolutionStatus[];
|
|
283
|
-
export declare function createSemanticAnchor(input?:
|
|
284
|
-
export declare function createSemanticLineageEvent(input?: CreateSemanticLineageEventInput, options?: { readonly id?: string; readonly createdAt?: number | string; readonly actor?:
|
|
294
|
+
export declare function createSemanticAnchor(input?: CreateSemanticAnchorInput | string, defaults?: Partial<SemanticAnchor>): SemanticAnchor | undefined;
|
|
295
|
+
export declare function createSemanticLineageEvent(input?: CreateSemanticLineageEventInput, options?: { readonly id?: string; readonly createdAt?: number | string; readonly actor?: SemanticLineageActorInput | string; readonly actorId?: string; readonly actorRole?: string }): SemanticLineageEvent;
|
|
285
296
|
export declare function createSemanticLineageMap(events?: readonly (SemanticLineageEvent | CreateSemanticLineageEventInput)[], options?: { readonly id?: string; readonly generatedAt?: number | string }): SemanticLineageMap;
|
|
286
297
|
export declare function inferSemanticLineageEvents(input?: InferSemanticLineageEventsOptions, options?: { readonly metadata?: Record<string, unknown>; readonly deletedConfidence?: number }): SemanticLineageInferenceResult;
|
|
287
298
|
export declare function querySemanticLineageEvents(events: SemanticLineageEvent | readonly SemanticLineageEvent[], query?: SemanticLineageQuery): readonly SemanticLineageEvent[];
|
|
@@ -9,6 +9,41 @@ import type { NativeSourceChangeKind, NativeSourceChangeSet } from './native-dif
|
|
|
9
9
|
import type { SemanticMergeConflictSummary } from './semantic-merge-conflicts.js';
|
|
10
10
|
|
|
11
11
|
export type SemanticMergeCandidateProjectionRisk = 'low' | 'medium' | 'high' | 'unknown';
|
|
12
|
+
export type SemanticMergeCandidateScoreFacetKey =
|
|
13
|
+
| 'ownership'
|
|
14
|
+
| 'staleStatus'
|
|
15
|
+
| 'testEvidence'
|
|
16
|
+
| 'overlap'
|
|
17
|
+
| 'size'
|
|
18
|
+
| 'semanticSidecarQuality';
|
|
19
|
+
export type SemanticMergeCandidateScoreFacetStatus = 'strong' | 'partial' | 'weak' | 'blocked';
|
|
20
|
+
|
|
21
|
+
export interface SemanticMergeCandidateScoreFacet {
|
|
22
|
+
readonly key: SemanticMergeCandidateScoreFacetKey;
|
|
23
|
+
readonly score: number;
|
|
24
|
+
readonly weight: number;
|
|
25
|
+
readonly weightedScore: number;
|
|
26
|
+
readonly status: SemanticMergeCandidateScoreFacetStatus;
|
|
27
|
+
readonly reasonCodes: readonly string[];
|
|
28
|
+
readonly signals: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface SemanticMergeCandidateScoreFacets {
|
|
32
|
+
readonly schema: 'frontier.lang.semanticMergeCandidateScoreFacets.v1';
|
|
33
|
+
readonly version: 1;
|
|
34
|
+
readonly higherIsBetter: true;
|
|
35
|
+
readonly value: number;
|
|
36
|
+
readonly risk: 'low' | 'medium' | 'high';
|
|
37
|
+
readonly components: Record<SemanticMergeCandidateScoreFacetKey, SemanticMergeCandidateScoreFacet>;
|
|
38
|
+
readonly summary: {
|
|
39
|
+
readonly value: number;
|
|
40
|
+
readonly risk: 'low' | 'medium' | 'high';
|
|
41
|
+
readonly lowestScore: number;
|
|
42
|
+
readonly weakFacets: readonly SemanticMergeCandidateScoreFacetKey[];
|
|
43
|
+
readonly blockedFacets: readonly SemanticMergeCandidateScoreFacetKey[];
|
|
44
|
+
readonly availableFacets: readonly SemanticMergeCandidateScoreFacetKey[];
|
|
45
|
+
};
|
|
46
|
+
}
|
|
12
47
|
|
|
13
48
|
export interface SemanticMergeCandidateChangedRegion {
|
|
14
49
|
readonly id?: string;
|
|
@@ -88,11 +123,13 @@ export interface SemanticMergeCandidateAdmissionRecord {
|
|
|
88
123
|
readonly conflictKeys: readonly string[];
|
|
89
124
|
readonly pairs: readonly SemanticMergeCandidateOverlapRecord[];
|
|
90
125
|
};
|
|
126
|
+
readonly scoreFacets: SemanticMergeCandidateScoreFacets;
|
|
91
127
|
readonly admission: {
|
|
92
128
|
readonly readiness: SemanticMergeReadiness | string;
|
|
93
129
|
readonly reviewRequired: boolean;
|
|
94
130
|
readonly action: 'admit' | 'prioritize-review' | 'block' | string;
|
|
95
131
|
readonly sortKey: number;
|
|
132
|
+
readonly scoreFacets: SemanticMergeCandidateScoreFacets;
|
|
96
133
|
readonly reasonCodes: readonly string[];
|
|
97
134
|
readonly conflictKeys: readonly string[];
|
|
98
135
|
};
|
|
@@ -122,6 +159,7 @@ export interface SemanticMergeCandidateAdmissionRecord {
|
|
|
122
159
|
readonly readiness: SemanticMergeReadiness | string;
|
|
123
160
|
readonly projectionRisk: SemanticMergeCandidateProjectionRisk;
|
|
124
161
|
readonly reviewRequired: boolean;
|
|
162
|
+
readonly scoreFacets: SemanticMergeCandidateScoreFacets['summary'];
|
|
125
163
|
};
|
|
126
164
|
readonly metadata?: Record<string, unknown> & {
|
|
127
165
|
readonly conflictSummary?: SemanticMergeConflictSummary;
|
|
@@ -166,6 +204,7 @@ export type SemanticMergeCandidateWithAdmission = SemanticMergeCandidateRecord &
|
|
|
166
204
|
readonly proofIds?: readonly string[];
|
|
167
205
|
readonly projectionRisk?: SemanticMergeCandidateProjectionRisk;
|
|
168
206
|
readonly readinessSortKey?: number;
|
|
207
|
+
readonly scoreFacets?: SemanticMergeCandidateScoreFacets;
|
|
169
208
|
readonly mergeAdmission?: SemanticMergeCandidateAdmissionRecord;
|
|
170
209
|
};
|
|
171
210
|
|
|
@@ -90,6 +90,7 @@ export interface SemanticPatchBundleAdmission {
|
|
|
90
90
|
readonly autoApplyCandidate?: boolean;
|
|
91
91
|
readonly transformAdmission?: SemanticPatchBundleTransformAdmission;
|
|
92
92
|
readonly semanticEditAdmission?: SemanticEditBundleAdmission;
|
|
93
|
+
readonly evidenceAdmission?: SemanticPatchBundleEvidenceAdmission;
|
|
93
94
|
readonly reasonCodes?: readonly string[];
|
|
94
95
|
readonly conflictKeys?: readonly string[];
|
|
95
96
|
readonly admittedAt?: number | string;
|
|
@@ -98,6 +99,18 @@ export interface SemanticPatchBundleAdmission {
|
|
|
98
99
|
readonly metadata?: Record<string, unknown>;
|
|
99
100
|
}
|
|
100
101
|
|
|
102
|
+
export interface SemanticPatchBundleEvidenceAdmission {
|
|
103
|
+
readonly status: 'none' | 'ready' | 'needs-review' | 'stale' | 'blocked' | string;
|
|
104
|
+
readonly action: 'none' | 'admit' | 'review' | 'rerun-semantic-import' | 'block' | string;
|
|
105
|
+
readonly readiness: SemanticMergeReadiness | string;
|
|
106
|
+
readonly reasonCodes?: readonly string[];
|
|
107
|
+
readonly evidenceIds?: readonly string[];
|
|
108
|
+
readonly passed?: number;
|
|
109
|
+
readonly failed?: number;
|
|
110
|
+
readonly conflict?: number;
|
|
111
|
+
readonly stale?: number;
|
|
112
|
+
}
|
|
113
|
+
|
|
101
114
|
export interface SemanticPatchBundleTransformAdmission {
|
|
102
115
|
readonly status: 'none' | 'ready' | 'needs-review' | 'blocked' | string;
|
|
103
116
|
readonly action: 'none' | 'admit' | 'review' | 'block' | string;
|
|
@@ -8,6 +8,16 @@ export interface SemanticImportSidecarQualityWarning {
|
|
|
8
8
|
readonly sourcePaths: readonly string[];
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
export type SemanticImportSidecarRecordClassification = 'useful' | 'expected-empty' | 'unexpectedly-empty' | 'missing' | string;
|
|
12
|
+
|
|
13
|
+
export interface SemanticImportSidecarQualityRecord {
|
|
14
|
+
readonly classification: SemanticImportSidecarRecordClassification;
|
|
15
|
+
readonly reasonCode: string;
|
|
16
|
+
readonly message: string;
|
|
17
|
+
readonly action: string;
|
|
18
|
+
readonly sourcePaths: readonly string[];
|
|
19
|
+
}
|
|
20
|
+
|
|
11
21
|
export interface SemanticImportSidecarProofAdmissionSummary {
|
|
12
22
|
readonly total: number;
|
|
13
23
|
readonly obligations: number;
|
|
@@ -26,12 +36,14 @@ export interface SemanticImportSidecarProofAdmissionSummary {
|
|
|
26
36
|
export interface SemanticImportSidecarQuality {
|
|
27
37
|
readonly schema: 'frontier.lang.semanticSidecarQuality.v1';
|
|
28
38
|
readonly expected: boolean;
|
|
39
|
+
readonly expectedEmpty: boolean;
|
|
29
40
|
readonly expectedSatisfied: boolean;
|
|
30
41
|
readonly expectedMissingReasonCodes: readonly string[];
|
|
31
42
|
readonly selected: boolean;
|
|
32
43
|
readonly eligible: boolean;
|
|
33
44
|
readonly imported: boolean;
|
|
34
45
|
readonly importCount: number;
|
|
46
|
+
readonly record: SemanticImportSidecarQualityRecord;
|
|
35
47
|
readonly symbolCount: number;
|
|
36
48
|
readonly ownershipRegionCount: number;
|
|
37
49
|
readonly patchHintCount: number;
|
|
@@ -45,6 +57,7 @@ export interface SemanticImportSidecarQuality {
|
|
|
45
57
|
export interface SemanticImportSidecarAdmission {
|
|
46
58
|
readonly schema: 'frontier.lang.semanticSidecarAdmission.v1';
|
|
47
59
|
readonly expected: boolean;
|
|
60
|
+
readonly expectedEmpty: boolean;
|
|
48
61
|
readonly expectedSatisfied: boolean;
|
|
49
62
|
readonly expectedMissingReasonCodes: readonly string[];
|
|
50
63
|
readonly selected: boolean;
|
|
@@ -53,6 +66,7 @@ export interface SemanticImportSidecarAdmission {
|
|
|
53
66
|
readonly importCount: number;
|
|
54
67
|
readonly readiness: SemanticMergeReadiness;
|
|
55
68
|
readonly action: string;
|
|
69
|
+
readonly record: SemanticImportSidecarQualityRecord;
|
|
56
70
|
readonly counts: {
|
|
57
71
|
readonly symbols: number;
|
|
58
72
|
readonly ownershipRegions: number;
|