@shapeshift-labs/frontier-lang-compiler 0.2.100 → 0.2.102
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/import-adapter-core.d.ts +6 -0
- package/dist/declarations/native-project-admission.d.ts +43 -22
- package/dist/declarations/semantic-edit-replay-diagnostics.d.ts +24 -0
- package/dist/declarations/semantic-edit-script.d.ts +20 -15
- package/dist/declarations/semantic-lineage.d.ts +3 -21
- package/dist/declarations/semantic-merge-candidates.d.ts +39 -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/createLightweightNativeImport.js +9 -1
- 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/importNativeSource.js +14 -14
- package/dist/internal/index-impl/nativeChangeProjectionEndpoint.js +56 -16
- package/dist/internal/index-impl/nativeImportSemanticIndex.js +33 -0
- 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 +39 -13
- package/dist/internal/index-impl/replaySemanticEditProjection.js +65 -23
- 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 +94 -15
- package/dist/internal/index-impl/semanticHistoryLineageResolution.js +21 -2
- package/dist/internal/index-impl/semanticLineageHashEvidence.js +97 -0
- package/dist/internal/index-impl/semanticLineageInferenceMatching.js +8 -0
- package/dist/internal/index-impl/semanticLineageResolutionRecords.js +18 -1
- package/dist/internal/index-impl/semanticMergeCandidateRecords.js +22 -2
- package/dist/internal/index-impl/semanticMergeCandidateScoreFacets.js +221 -0
- package/dist/internal/index-impl/semanticPatchBundleOverlaps.js +23 -1
- package/dist/internal/index-impl/sourcePreservationFromProjectionContext.js +9 -2
- package/dist/native-import-language-profiles.js +10 -2
- package/dist/native-region-scanner-js-helpers.js +8 -2
- package/dist/native-region-scanner-js-imports.js +7 -0
- package/dist/native-region-scanner-js.js +4 -4
- package/dist/native-region-scanner.js +2 -1
- package/dist/semantic-import-regions.js +18 -5
- 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
|
@@ -3,12 +3,10 @@ import type { NativeImportLossSummary } from './native-import-losses.js';
|
|
|
3
3
|
import type { NativeImportResultContract } from './native-import-contracts.js';
|
|
4
4
|
import type { NativeProjectImportResult } from './native-project.js';
|
|
5
5
|
import type { SemanticMergeCandidateAdmissionRecord, SemanticMergeCandidateOverlapRecord, SemanticMergeCandidateProjectionRisk } from './semantic-merge-candidates.js';
|
|
6
|
-
|
|
7
6
|
export type NativeProjectImportAdmissionAction = 'admit' | 'prioritize' | 'reject';
|
|
8
7
|
export type NativeProjectImportAdmissionPriority = 'low' | 'normal' | 'high' | 'critical' | 'blocker';
|
|
9
8
|
export type NativeProjectImportAdmissionRisk = 'low' | 'medium' | 'high' | 'unknown';
|
|
10
9
|
export type NativeProjectSourcePreservationQuality = 'exact' | 'lossy' | 'missing' | 'stale' | 'empty';
|
|
11
|
-
|
|
12
10
|
export interface NativeProjectAdmissionParserEvidence {
|
|
13
11
|
readonly parser?: string;
|
|
14
12
|
readonly astFormat?: string;
|
|
@@ -24,7 +22,6 @@ export interface NativeProjectAdmissionParserEvidence {
|
|
|
24
22
|
readonly evidenceRecords: number;
|
|
25
23
|
readonly missing: boolean;
|
|
26
24
|
}
|
|
27
|
-
|
|
28
25
|
export interface NativeProjectAdmissionParserEvidenceSummary {
|
|
29
26
|
readonly parsers: readonly string[];
|
|
30
27
|
readonly byParser: Readonly<Record<string, number>>;
|
|
@@ -39,7 +36,6 @@ export interface NativeProjectAdmissionParserEvidenceSummary {
|
|
|
39
36
|
readonly missingParserSources: number;
|
|
40
37
|
readonly evidenceRecords: number;
|
|
41
38
|
}
|
|
42
|
-
|
|
43
39
|
export interface NativeProjectAdmissionSemanticMergeScoreSummary {
|
|
44
40
|
readonly sourceCount: number;
|
|
45
41
|
readonly min: number;
|
|
@@ -48,7 +44,6 @@ export interface NativeProjectAdmissionSemanticMergeScoreSummary {
|
|
|
48
44
|
readonly sortKey: number;
|
|
49
45
|
readonly lowestSourcePaths: readonly string[];
|
|
50
46
|
}
|
|
51
|
-
|
|
52
47
|
export interface NativeProjectAdmissionMissingEvidenceHint {
|
|
53
48
|
readonly evidenceKey?: string;
|
|
54
49
|
readonly task: string;
|
|
@@ -60,7 +55,6 @@ export interface NativeProjectAdmissionMissingEvidenceHint {
|
|
|
60
55
|
readonly lossClasses: readonly string[];
|
|
61
56
|
readonly readiness: SemanticMergeReadiness;
|
|
62
57
|
}
|
|
63
|
-
|
|
64
58
|
export interface NativeProjectAdmissionTaskHint {
|
|
65
59
|
readonly id?: string;
|
|
66
60
|
readonly task: string;
|
|
@@ -73,7 +67,6 @@ export interface NativeProjectAdmissionTaskHint {
|
|
|
73
67
|
readonly lossClasses: readonly string[];
|
|
74
68
|
readonly evidenceKeys: readonly string[];
|
|
75
69
|
}
|
|
76
|
-
|
|
77
70
|
export interface NativeProjectAdmissionSourceSummary {
|
|
78
71
|
readonly id?: string;
|
|
79
72
|
readonly language: FrontierSourceLanguage | string;
|
|
@@ -97,7 +90,6 @@ export interface NativeProjectAdmissionSourceSummary {
|
|
|
97
90
|
readonly nextMissingTask?: NativeProjectAdmissionTaskHint;
|
|
98
91
|
readonly nextMissingTasks: readonly NativeProjectAdmissionTaskHint[];
|
|
99
92
|
}
|
|
100
|
-
|
|
101
93
|
export interface NativeProjectAdmissionLanguageReadinessSummary {
|
|
102
94
|
readonly language: FrontierSourceLanguage | string;
|
|
103
95
|
readonly readiness: SemanticMergeReadiness;
|
|
@@ -109,7 +101,6 @@ export interface NativeProjectAdmissionLanguageReadinessSummary {
|
|
|
109
101
|
readonly topMissingEvidence: readonly NativeProjectAdmissionMissingEvidenceHint[];
|
|
110
102
|
readonly nextMissingTasks: readonly NativeProjectAdmissionTaskHint[];
|
|
111
103
|
}
|
|
112
|
-
|
|
113
104
|
export interface NativeProjectAdmissionLanguageSummary {
|
|
114
105
|
readonly language: FrontierSourceLanguage | string;
|
|
115
106
|
readonly sourceCount: number;
|
|
@@ -128,7 +119,6 @@ export interface NativeProjectAdmissionLanguageSummary {
|
|
|
128
119
|
readonly topMissingEvidence: readonly NativeProjectAdmissionMissingEvidenceHint[];
|
|
129
120
|
readonly nextMissingTasks: readonly NativeProjectAdmissionTaskHint[];
|
|
130
121
|
}
|
|
131
|
-
|
|
132
122
|
export interface NativeProjectAdmissionLanguages {
|
|
133
123
|
readonly total: number;
|
|
134
124
|
readonly byReadiness: Readonly<Record<string, number>>;
|
|
@@ -143,7 +133,6 @@ export interface NativeProjectAdmissionLanguages {
|
|
|
143
133
|
readonly readinessRows: readonly NativeProjectAdmissionLanguageReadinessSummary[];
|
|
144
134
|
readonly rows: readonly NativeProjectAdmissionLanguageSummary[];
|
|
145
135
|
}
|
|
146
|
-
|
|
147
136
|
export interface NativeProjectAdmissionSemanticEvidence {
|
|
148
137
|
readonly empty: boolean;
|
|
149
138
|
readonly emptySourceCount: number;
|
|
@@ -154,7 +143,42 @@ export interface NativeProjectAdmissionSemanticEvidence {
|
|
|
154
143
|
readonly facts: number;
|
|
155
144
|
readonly evidenceRecords: number;
|
|
156
145
|
}
|
|
157
|
-
|
|
146
|
+
export type NativeProjectAdmissionSourceStalenessReason =
|
|
147
|
+
| 'source-hash-mismatch'
|
|
148
|
+
| 'content-hash-mismatch'
|
|
149
|
+
| 'source-preservation-hash-mismatch'
|
|
150
|
+
| 'source-hash-unverified'
|
|
151
|
+
| 'base-hash-mismatch'
|
|
152
|
+
| 'dirty-workspace';
|
|
153
|
+
export interface NativeProjectAdmissionSourceStalenessRecord {
|
|
154
|
+
readonly sourcePath?: string;
|
|
155
|
+
readonly sourceHash?: string;
|
|
156
|
+
readonly declaredSourceHash?: string;
|
|
157
|
+
readonly contentHash?: string;
|
|
158
|
+
readonly declaredContentHash?: string;
|
|
159
|
+
readonly baseHash?: string;
|
|
160
|
+
readonly expectedBaseHash?: string;
|
|
161
|
+
readonly currentBaseHash?: string;
|
|
162
|
+
readonly staleByContentHash: boolean;
|
|
163
|
+
readonly staleByBaseHash: boolean;
|
|
164
|
+
readonly dirtyWorkspace: boolean;
|
|
165
|
+
readonly unverifiedSourceHash: boolean;
|
|
166
|
+
readonly reasonCodes: readonly NativeProjectAdmissionSourceStalenessReason[];
|
|
167
|
+
}
|
|
168
|
+
export interface NativeProjectAdmissionSourceStaleness {
|
|
169
|
+
readonly total: number;
|
|
170
|
+
readonly stale: number;
|
|
171
|
+
readonly contentHashStale: number;
|
|
172
|
+
readonly baseHashStale: number;
|
|
173
|
+
readonly dirtyWorkspace: number;
|
|
174
|
+
readonly unverified: number;
|
|
175
|
+
readonly staleSourcePaths: readonly string[];
|
|
176
|
+
readonly contentHashStaleSourcePaths: readonly string[];
|
|
177
|
+
readonly baseHashStaleSourcePaths: readonly string[];
|
|
178
|
+
readonly dirtyWorkspaceSourcePaths: readonly string[];
|
|
179
|
+
readonly unverifiedSourcePaths: readonly string[];
|
|
180
|
+
readonly records: readonly NativeProjectAdmissionSourceStalenessRecord[];
|
|
181
|
+
}
|
|
158
182
|
export interface NativeProjectAdmissionSourcePreservation {
|
|
159
183
|
readonly quality: NativeProjectSourcePreservationQuality;
|
|
160
184
|
readonly total: number;
|
|
@@ -168,11 +192,16 @@ export interface NativeProjectAdmissionSourcePreservation {
|
|
|
168
192
|
readonly stale: number;
|
|
169
193
|
readonly missing: number;
|
|
170
194
|
readonly lossy: number;
|
|
195
|
+
readonly contentHashStale: number;
|
|
196
|
+
readonly baseHashStale: number;
|
|
197
|
+
readonly dirtyWorkspace: number;
|
|
171
198
|
readonly staleSourcePaths: readonly string[];
|
|
199
|
+
readonly contentHashStaleSourcePaths: readonly string[];
|
|
200
|
+
readonly baseHashStaleSourcePaths: readonly string[];
|
|
201
|
+
readonly dirtyWorkspaceSourcePaths: readonly string[];
|
|
172
202
|
readonly lossySourcePaths: readonly string[];
|
|
173
203
|
readonly byQuality: Readonly<Record<string, number>>;
|
|
174
204
|
}
|
|
175
|
-
|
|
176
205
|
export interface NativeProjectAdmissionOwnership {
|
|
177
206
|
readonly total: number;
|
|
178
207
|
readonly changed: number;
|
|
@@ -187,7 +216,6 @@ export interface NativeProjectAdmissionOwnership {
|
|
|
187
216
|
readonly byPrecision: Readonly<Record<string, number>>;
|
|
188
217
|
readonly byLanguage: Readonly<Record<string, number>>;
|
|
189
218
|
}
|
|
190
|
-
|
|
191
219
|
export interface NativeProjectAdmissionMergeCandidates {
|
|
192
220
|
readonly total: number;
|
|
193
221
|
readonly readiness: SemanticMergeReadiness;
|
|
@@ -217,7 +245,6 @@ export interface NativeProjectAdmissionMergeCandidates {
|
|
|
217
245
|
readonly projectionRisk?: SemanticMergeCandidateProjectionRisk;
|
|
218
246
|
readonly patchRisk?: NativeProjectImportAdmissionRisk;
|
|
219
247
|
}
|
|
220
|
-
|
|
221
248
|
export type NativeProjectAdmissionScoreComponentKey =
|
|
222
249
|
| 'semanticEvidence'
|
|
223
250
|
| 'sourcePreservation'
|
|
@@ -225,9 +252,7 @@ export type NativeProjectAdmissionScoreComponentKey =
|
|
|
225
252
|
| 'ownershipChange'
|
|
226
253
|
| 'proofReadiness'
|
|
227
254
|
| 'targetProjectionCoverage';
|
|
228
|
-
|
|
229
255
|
export type NativeProjectAdmissionScoreComponentStatus = 'strong' | 'partial' | 'weak' | 'blocked';
|
|
230
|
-
|
|
231
256
|
export interface NativeProjectAdmissionScoreComponent {
|
|
232
257
|
readonly key: NativeProjectAdmissionScoreComponentKey;
|
|
233
258
|
readonly score: number;
|
|
@@ -237,7 +262,6 @@ export interface NativeProjectAdmissionScoreComponent {
|
|
|
237
262
|
readonly reasons: readonly string[];
|
|
238
263
|
readonly signals: Record<string, unknown>;
|
|
239
264
|
}
|
|
240
|
-
|
|
241
265
|
export interface NativeProjectAdmissionMergeScoreComponents {
|
|
242
266
|
readonly semanticEvidence: NativeProjectAdmissionScoreComponent;
|
|
243
267
|
readonly sourcePreservation: NativeProjectAdmissionScoreComponent;
|
|
@@ -246,7 +270,6 @@ export interface NativeProjectAdmissionMergeScoreComponents {
|
|
|
246
270
|
readonly proofReadiness: NativeProjectAdmissionScoreComponent;
|
|
247
271
|
readonly targetProjectionCoverage: NativeProjectAdmissionScoreComponent;
|
|
248
272
|
}
|
|
249
|
-
|
|
250
273
|
export interface NativeProjectAdmissionMergeScore {
|
|
251
274
|
readonly schema: 'frontier.lang.semanticMergeScore.v1';
|
|
252
275
|
readonly version: 1;
|
|
@@ -261,7 +284,6 @@ export interface NativeProjectAdmissionMergeScore {
|
|
|
261
284
|
readonly components: NativeProjectAdmissionMergeScoreComponents;
|
|
262
285
|
readonly penalties: readonly string[];
|
|
263
286
|
}
|
|
264
|
-
|
|
265
287
|
export interface NativeProjectImportAdmission {
|
|
266
288
|
readonly kind: 'frontier.lang.projectImportAdmission';
|
|
267
289
|
readonly version: 1;
|
|
@@ -274,6 +296,7 @@ export interface NativeProjectImportAdmission {
|
|
|
274
296
|
readonly sourceCount: number;
|
|
275
297
|
readonly languages: NativeProjectAdmissionLanguages;
|
|
276
298
|
readonly semanticEvidence: NativeProjectAdmissionSemanticEvidence;
|
|
299
|
+
readonly sourceStaleness: NativeProjectAdmissionSourceStaleness;
|
|
277
300
|
readonly sourcePreservation: NativeProjectAdmissionSourcePreservation;
|
|
278
301
|
readonly ownership: NativeProjectAdmissionOwnership;
|
|
279
302
|
readonly mergeCandidates: NativeProjectAdmissionMergeCandidates;
|
|
@@ -281,12 +304,10 @@ export interface NativeProjectImportAdmission {
|
|
|
281
304
|
readonly reasons: readonly string[];
|
|
282
305
|
readonly metadata: Record<string, unknown>;
|
|
283
306
|
}
|
|
284
|
-
|
|
285
307
|
export interface CreateProjectImportAdmissionRecordOptions {
|
|
286
308
|
readonly importResultContract?: NativeImportResultContract;
|
|
287
309
|
readonly lossSummary?: NativeImportLossSummary;
|
|
288
310
|
}
|
|
289
|
-
|
|
290
311
|
export declare function createProjectImportAdmissionRecord(
|
|
291
312
|
projectResult: NativeProjectImportResult,
|
|
292
313
|
options?: CreateProjectImportAdmissionRecordOptions
|
|
@@ -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,9 +1,21 @@
|
|
|
1
1
|
import type { EvidenceRecord, FrontierSourceLanguage, SemanticMergeReadiness, SourceSpan } from '@shapeshift-labs/frontier-lang-kernel';
|
|
2
2
|
import type { ImportNativeSourceOptions, NativeSourceImportResult } from './import-adapter-core.js';
|
|
3
|
-
|
|
3
|
+
import type { SemanticEditReplayDiagnostic } from './semantic-edit-replay-diagnostics.js';
|
|
4
|
+
export type * from './semantic-edit-replay-diagnostics.js';
|
|
4
5
|
export type SemanticEditScriptOperationStatus = 'candidate' | 'portable' | 'already-applied' | 'covered' | 'needs-port' | 'conflict' | 'stale' | 'blocked';
|
|
5
6
|
export type SemanticEditScriptAdmissionStatus = 'auto-merge-candidate' | 'needs-port' | 'conflict' | 'stale' | 'blocked' | 'evidence-only';
|
|
6
|
-
|
|
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
|
+
}
|
|
7
19
|
export interface SemanticEditScriptOperation {
|
|
8
20
|
readonly id: string;
|
|
9
21
|
readonly kind: string;
|
|
@@ -19,6 +31,7 @@ export interface SemanticEditScriptOperation {
|
|
|
19
31
|
readonly mode?: 'before' | 'after' | 'file-start' | 'file-end' | string;
|
|
20
32
|
readonly anchorKey?: string; readonly anchorSymbolId?: string; readonly anchorSymbolName?: string; readonly anchorSymbolKind?: string;
|
|
21
33
|
readonly baseSpan?: SourceSpan; readonly workerAnchorSpan?: SourceSpan; readonly headSpan?: SourceSpan; readonly sourcePath?: string;
|
|
34
|
+
readonly anchorCandidates?: readonly SemanticEditInsertionAnchorCandidate[];
|
|
22
35
|
readonly insertedSymbolId?: string; readonly insertedSymbolName?: string; readonly insertedSymbolKind?: string;
|
|
23
36
|
readonly insertedSourceSpan?: SourceSpan; readonly insertedSourcePath?: string;
|
|
24
37
|
readonly reasonCodes?: readonly string[];
|
|
@@ -52,7 +65,6 @@ export interface SemanticEditScriptOperation {
|
|
|
52
65
|
readonly evidenceIds?: readonly string[];
|
|
53
66
|
readonly metadata?: Record<string, unknown>;
|
|
54
67
|
}
|
|
55
|
-
|
|
56
68
|
export interface SemanticEditScriptSummary {
|
|
57
69
|
readonly operations: number;
|
|
58
70
|
readonly byStatus: Readonly<Record<string, number>>;
|
|
@@ -71,7 +83,6 @@ export interface SemanticEditScriptSummary {
|
|
|
71
83
|
readonly sourceIdentityHashes?: readonly string[];
|
|
72
84
|
readonly operationContentHashes?: readonly string[];
|
|
73
85
|
}
|
|
74
|
-
|
|
75
86
|
export interface SemanticEditScriptAdmission {
|
|
76
87
|
readonly status: SemanticEditScriptAdmissionStatus;
|
|
77
88
|
readonly action: 'run-gates-and-apply' | 'reanchor-or-human-port' | 'record-evidence' | 'block' | string;
|
|
@@ -83,7 +94,6 @@ export interface SemanticEditScriptAdmission {
|
|
|
83
94
|
readonly conflictKeys: readonly string[];
|
|
84
95
|
readonly evidenceIds: readonly string[];
|
|
85
96
|
}
|
|
86
|
-
|
|
87
97
|
export interface SemanticEditScript {
|
|
88
98
|
readonly kind: 'frontier.lang.semanticEditScript';
|
|
89
99
|
readonly version: 1;
|
|
@@ -105,7 +115,6 @@ export interface SemanticEditScript {
|
|
|
105
115
|
readonly evidence: readonly EvidenceRecord[];
|
|
106
116
|
readonly metadata?: Record<string, unknown>;
|
|
107
117
|
}
|
|
108
|
-
|
|
109
118
|
export interface SemanticEditProjectionEdit {
|
|
110
119
|
readonly operationId?: string;
|
|
111
120
|
readonly status: 'applied' | 'already-applied';
|
|
@@ -143,9 +152,9 @@ export interface SemanticEditProjectionEdit {
|
|
|
143
152
|
readonly insertionAnchorKey?: string;
|
|
144
153
|
readonly insertionAnchorSymbolName?: string;
|
|
145
154
|
readonly insertionAnchorSymbolKind?: string;
|
|
155
|
+
readonly insertionAnchorCandidates?: readonly SemanticEditInsertionAnchorCandidate[];
|
|
146
156
|
readonly replacementText?: string;
|
|
147
157
|
}
|
|
148
|
-
|
|
149
158
|
export interface SemanticEditProjection {
|
|
150
159
|
readonly kind: 'frontier.lang.semanticEditProjection';
|
|
151
160
|
readonly version: 1;
|
|
@@ -171,9 +180,7 @@ export interface SemanticEditProjection {
|
|
|
171
180
|
};
|
|
172
181
|
readonly metadata?: Record<string, unknown>;
|
|
173
182
|
}
|
|
174
|
-
|
|
175
183
|
export type SemanticEditReplayStatus = 'accepted-clean' | 'already-applied' | 'conflict' | 'stale' | 'blocked' | 'needs-port' | 'evidence-only';
|
|
176
|
-
|
|
177
184
|
export interface SemanticEditReplayEdit {
|
|
178
185
|
readonly operationId?: string;
|
|
179
186
|
readonly semanticKey?: string;
|
|
@@ -181,6 +188,8 @@ export interface SemanticEditReplayEdit {
|
|
|
181
188
|
readonly sourceIdentityHash?: string;
|
|
182
189
|
readonly editContentHash?: string;
|
|
183
190
|
readonly editKind?: 'replace' | 'insert' | 'delete' | string;
|
|
191
|
+
readonly editOrder?: number;
|
|
192
|
+
readonly sourceRangeKind?: string;
|
|
184
193
|
readonly sourcePath?: string;
|
|
185
194
|
readonly symbolName?: string;
|
|
186
195
|
readonly symbolKind?: string;
|
|
@@ -190,8 +199,8 @@ export interface SemanticEditReplayEdit {
|
|
|
190
199
|
readonly replacementBytes?: number;
|
|
191
200
|
readonly replacementText?: string;
|
|
192
201
|
readonly reasonCodes: readonly string[];
|
|
202
|
+
readonly diagnostics?: readonly SemanticEditReplayDiagnostic[];
|
|
193
203
|
}
|
|
194
|
-
|
|
195
204
|
export interface SemanticEditReplay {
|
|
196
205
|
readonly kind: 'frontier.lang.semanticEditReplay';
|
|
197
206
|
readonly version: 1;
|
|
@@ -209,6 +218,7 @@ export interface SemanticEditReplay {
|
|
|
209
218
|
readonly edits: readonly SemanticEditReplayEdit[];
|
|
210
219
|
readonly appliedOperations: readonly string[];
|
|
211
220
|
readonly skippedOperations: readonly string[];
|
|
221
|
+
readonly diagnostics?: readonly SemanticEditReplayDiagnostic[];
|
|
212
222
|
readonly admission: {
|
|
213
223
|
readonly status: SemanticEditReplayStatus;
|
|
214
224
|
readonly action: 'apply' | 'skip' | 'rerun-semantic-import' | 'human-review' | 'block' | string;
|
|
@@ -230,7 +240,6 @@ export interface SemanticEditReplay {
|
|
|
230
240
|
};
|
|
231
241
|
readonly metadata?: Record<string, unknown>;
|
|
232
242
|
}
|
|
233
|
-
|
|
234
243
|
export interface ProjectSemanticEditScriptToSourceOptions {
|
|
235
244
|
readonly id?: string;
|
|
236
245
|
readonly script: SemanticEditScript;
|
|
@@ -239,7 +248,6 @@ export interface ProjectSemanticEditScriptToSourceOptions {
|
|
|
239
248
|
readonly headSourcePath?: string;
|
|
240
249
|
readonly metadata?: Record<string, unknown>;
|
|
241
250
|
}
|
|
242
|
-
|
|
243
251
|
export interface ReplaySemanticEditProjectionOptions {
|
|
244
252
|
readonly id?: string;
|
|
245
253
|
readonly projection?: SemanticEditProjection;
|
|
@@ -253,7 +261,6 @@ export interface ReplaySemanticEditProjectionOptions {
|
|
|
253
261
|
readonly parser?: string;
|
|
254
262
|
readonly metadata?: Record<string, unknown>;
|
|
255
263
|
}
|
|
256
|
-
|
|
257
264
|
export interface CreateSemanticEditScriptOptions {
|
|
258
265
|
readonly id?: string;
|
|
259
266
|
readonly language?: FrontierSourceLanguage | string;
|
|
@@ -296,11 +303,9 @@ export interface CreateSemanticEditScriptOptions {
|
|
|
296
303
|
readonly evidenceId?: string;
|
|
297
304
|
readonly metadata?: Record<string, unknown>;
|
|
298
305
|
}
|
|
299
|
-
|
|
300
306
|
export interface CreateSemanticEditScriptRuntimeOptions {
|
|
301
307
|
readonly metadata?: Record<string, unknown>;
|
|
302
308
|
}
|
|
303
|
-
|
|
304
309
|
export declare const SemanticEditScriptAdmissionStatuses: readonly SemanticEditScriptAdmissionStatus[];
|
|
305
310
|
export declare function createSemanticEditScript(input?: CreateSemanticEditScriptOptions, options?: CreateSemanticEditScriptRuntimeOptions): SemanticEditScript;
|
|
306
311
|
export declare function projectSemanticEditScriptToSource(input: ProjectSemanticEditScriptToSourceOptions): SemanticEditProjection;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import type { EvidenceRecord, FrontierSourceLanguage, SemanticMergeReadiness, SourceSpan } from '@shapeshift-labs/frontier-lang-kernel';
|
|
2
2
|
import type { ImportNativeSourceOptions, NativeSourceImportResult } from './import-adapter-core.js';
|
|
3
|
-
|
|
4
3
|
export type SemanticLineageEventKind = 'unchanged' | 'moved' | 'renamed' | 'split' | 'merged' | 'deleted' | 'recreated' | 'unknown' | string;
|
|
5
4
|
export type SemanticLineageResolutionStatus = 'unchanged' | 'resolved' | 'ambiguous' | 'deleted' | 'recreated' | 'cycle' | 'max-depth' | 'not-found' | string;
|
|
6
|
-
|
|
7
5
|
export interface SemanticAnchor {
|
|
8
6
|
readonly id?: string; readonly key?: string; readonly kind?: string;
|
|
9
7
|
readonly language?: FrontierSourceLanguage | string; readonly sourcePath?: string; readonly sourceHash?: string;
|
|
@@ -17,7 +15,6 @@ export interface SemanticAnchor {
|
|
|
17
15
|
readonly lineageEventKinds?: readonly SemanticLineageEventKind[]; readonly lineageReasonCodes?: readonly string[];
|
|
18
16
|
readonly metadata?: Record<string, unknown>;
|
|
19
17
|
}
|
|
20
|
-
|
|
21
18
|
export interface CreateSemanticAnchorInput extends SemanticAnchor {
|
|
22
19
|
readonly ownershipKey?: string;
|
|
23
20
|
readonly conflictKey?: string;
|
|
@@ -30,7 +27,6 @@ export interface CreateSemanticAnchorInput extends SemanticAnchor {
|
|
|
30
27
|
readonly hash?: string;
|
|
31
28
|
readonly span?: SourceSpan;
|
|
32
29
|
}
|
|
33
|
-
|
|
34
30
|
export interface SemanticLineageCrdtClock {
|
|
35
31
|
readonly operationId?: string;
|
|
36
32
|
readonly actor?: string;
|
|
@@ -40,7 +36,6 @@ export interface SemanticLineageCrdtClock {
|
|
|
40
36
|
readonly stateVector?: Record<string, number>;
|
|
41
37
|
readonly versionFrame?: Record<string, unknown>;
|
|
42
38
|
}
|
|
43
|
-
|
|
44
39
|
export interface SemanticLineageCrdtClockInput {
|
|
45
40
|
readonly operationId?: string;
|
|
46
41
|
readonly id?: string;
|
|
@@ -53,7 +48,6 @@ export interface SemanticLineageCrdtClockInput {
|
|
|
53
48
|
readonly versionFrame?: Record<string, unknown>;
|
|
54
49
|
readonly frame?: Record<string, unknown>;
|
|
55
50
|
}
|
|
56
|
-
|
|
57
51
|
export interface SemanticLineageEvidence {
|
|
58
52
|
readonly pathMatch?: boolean;
|
|
59
53
|
readonly signatureHashMatch?: boolean;
|
|
@@ -63,11 +57,9 @@ export interface SemanticLineageEvidence {
|
|
|
63
57
|
readonly confidence?: number;
|
|
64
58
|
readonly command?: string;
|
|
65
59
|
}
|
|
66
|
-
|
|
67
60
|
export interface SemanticLineageEvidenceInput extends SemanticLineageEvidence {
|
|
68
61
|
readonly id?: string;
|
|
69
62
|
}
|
|
70
|
-
|
|
71
63
|
export interface SemanticLineageActor {
|
|
72
64
|
readonly id?: string;
|
|
73
65
|
readonly role?: string;
|
|
@@ -76,11 +68,9 @@ export interface SemanticLineageActor {
|
|
|
76
68
|
readonly runId?: string;
|
|
77
69
|
readonly metadata?: Record<string, unknown>;
|
|
78
70
|
}
|
|
79
|
-
|
|
80
71
|
export interface SemanticLineageActorInput extends SemanticLineageActor {
|
|
81
72
|
readonly actorId?: string;
|
|
82
73
|
}
|
|
83
|
-
|
|
84
74
|
export interface SemanticLineageEvent {
|
|
85
75
|
readonly kind: 'frontier.lang.semanticLineageEvent';
|
|
86
76
|
readonly version: 1;
|
|
@@ -100,7 +90,6 @@ export interface SemanticLineageEvent {
|
|
|
100
90
|
readonly conflictKeys: readonly string[];
|
|
101
91
|
readonly metadata?: Record<string, unknown>;
|
|
102
92
|
}
|
|
103
|
-
|
|
104
93
|
export interface CreateSemanticLineageEventInput {
|
|
105
94
|
readonly id?: string; readonly hash?: string; readonly createdAt?: number | string;
|
|
106
95
|
readonly eventKind?: SemanticLineageEventKind; readonly event?: SemanticLineageEventKind; readonly kind?: SemanticLineageEventKind;
|
|
@@ -136,7 +125,6 @@ export interface CreateSemanticLineageEventInput {
|
|
|
136
125
|
readonly conflictKeys?: readonly string[] | string;
|
|
137
126
|
readonly metadata?: Record<string, unknown>;
|
|
138
127
|
}
|
|
139
|
-
|
|
140
128
|
export interface SemanticLineageMap {
|
|
141
129
|
readonly kind: 'frontier.lang.semanticLineageMap';
|
|
142
130
|
readonly version: 1;
|
|
@@ -154,7 +142,6 @@ export interface SemanticLineageMap {
|
|
|
154
142
|
readonly eventKinds: readonly string[];
|
|
155
143
|
};
|
|
156
144
|
}
|
|
157
|
-
|
|
158
145
|
export interface SemanticLineageResolutionQuery {
|
|
159
146
|
readonly id?: string;
|
|
160
147
|
readonly anchor?: SemanticAnchor | string;
|
|
@@ -168,7 +155,6 @@ export interface SemanticLineageResolutionQuery {
|
|
|
168
155
|
readonly generatedAt?: number | string;
|
|
169
156
|
readonly metadata?: Record<string, unknown>;
|
|
170
157
|
}
|
|
171
|
-
|
|
172
158
|
export interface SemanticLineageResolution {
|
|
173
159
|
readonly kind: 'frontier.lang.semanticLineageResolution';
|
|
174
160
|
readonly version: 1;
|
|
@@ -199,7 +185,6 @@ export interface SemanticLineageResolution {
|
|
|
199
185
|
readonly reasonCodes: readonly string[];
|
|
200
186
|
readonly metadata?: Record<string, unknown>;
|
|
201
187
|
}
|
|
202
|
-
|
|
203
188
|
export interface SemanticLineageQuery {
|
|
204
189
|
readonly eventKind?: SemanticLineageEventKind | readonly string[];
|
|
205
190
|
readonly anchorKey?: string | readonly string[];
|
|
@@ -211,7 +196,6 @@ export interface SemanticLineageQuery {
|
|
|
211
196
|
readonly conflictKey?: string | readonly string[];
|
|
212
197
|
readonly evidenceId?: string | readonly string[];
|
|
213
198
|
}
|
|
214
|
-
|
|
215
199
|
export interface SemanticLineageInferredAnchorSummary {
|
|
216
200
|
readonly key?: string;
|
|
217
201
|
readonly id?: string;
|
|
@@ -220,24 +204,24 @@ export interface SemanticLineageInferredAnchorSummary {
|
|
|
220
204
|
readonly language?: FrontierSourceLanguage | string;
|
|
221
205
|
readonly sourcePath?: string;
|
|
222
206
|
readonly sourceHash?: string;
|
|
207
|
+
readonly identityHash?: string;
|
|
208
|
+
readonly semanticIdentityHash?: string;
|
|
209
|
+
readonly sourceIdentityHash?: string;
|
|
223
210
|
readonly sourceSpan?: SourceSpan;
|
|
224
211
|
readonly signatureHash?: string;
|
|
225
212
|
readonly bodyHash?: string;
|
|
226
213
|
readonly ownershipRegionKind?: string;
|
|
227
214
|
}
|
|
228
|
-
|
|
229
215
|
export interface SemanticLineageAmbiguousCandidate {
|
|
230
216
|
readonly after: SemanticLineageInferredAnchorSummary;
|
|
231
217
|
readonly confidence: number;
|
|
232
218
|
readonly reasons: readonly string[];
|
|
233
219
|
}
|
|
234
|
-
|
|
235
220
|
export interface SemanticLineageAmbiguousMatch {
|
|
236
221
|
readonly before: SemanticLineageInferredAnchorSummary;
|
|
237
222
|
readonly candidates: readonly SemanticLineageAmbiguousCandidate[];
|
|
238
223
|
readonly reasonCodes: readonly string[];
|
|
239
224
|
}
|
|
240
|
-
|
|
241
225
|
export interface SemanticLineageInferenceResult {
|
|
242
226
|
readonly kind: 'frontier.lang.semanticLineageInference';
|
|
243
227
|
readonly version: 1;
|
|
@@ -280,7 +264,6 @@ export interface SemanticLineageInferenceResult {
|
|
|
280
264
|
readonly [key: string]: unknown;
|
|
281
265
|
};
|
|
282
266
|
}
|
|
283
|
-
|
|
284
267
|
export interface InferSemanticLineageEventsOptions {
|
|
285
268
|
readonly id?: string;
|
|
286
269
|
readonly before?: NativeSourceImportResult | ImportNativeSourceOptions;
|
|
@@ -306,7 +289,6 @@ export interface InferSemanticLineageEventsOptions {
|
|
|
306
289
|
readonly stateVector?: Record<string, number>;
|
|
307
290
|
readonly metadata?: Record<string, unknown>;
|
|
308
291
|
}
|
|
309
|
-
|
|
310
292
|
export declare const SemanticLineageEventKinds: readonly SemanticLineageEventKind[];
|
|
311
293
|
export declare const SemanticLineageResolutionStatuses: readonly SemanticLineageResolutionStatus[];
|
|
312
294
|
export declare function createSemanticAnchor(input?: CreateSemanticAnchorInput | string, defaults?: Partial<SemanticAnchor>): SemanticAnchor | undefined;
|
|
@@ -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
|
|
|
@@ -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;
|