@shapeshift-labs/frontier-lang-compiler 0.2.103 → 0.2.105

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.
Files changed (125) hide show
  1. package/README.md +14 -0
  2. package/dist/declarations/bidirectional-target-change-source-edit.d.ts +30 -0
  3. package/dist/declarations/bidirectional-target-change.d.ts +10 -0
  4. package/dist/declarations/js-ts-safe-member-merge.d.ts +86 -0
  5. package/dist/declarations/js-ts-safe-merge.d.ts +131 -0
  6. package/dist/declarations/js-ts-semantic-conflict-sidecars.d.ts +235 -0
  7. package/dist/declarations/js-ts-semantic-merge-contracts.d.ts +287 -0
  8. package/dist/declarations/js-ts-semantic-merge.d.ts +4 -0
  9. package/dist/declarations/native-import-losses.d.ts +3 -0
  10. package/dist/declarations/semantic-edit-replay-diagnostics.d.ts +12 -0
  11. package/dist/declarations/semantic-edit-script.d.ts +7 -4
  12. package/dist/declarations/semantic-patch-bundle-index.d.ts +45 -0
  13. package/dist/declarations/semantic-patch-bundle.d.ts +6 -4
  14. package/dist/declarations/semantic-sidecar-example.d.ts +18 -0
  15. package/dist/declarations/semantic-transform-identity.d.ts +3 -0
  16. package/dist/declarations/source-preservation.d.ts +72 -0
  17. package/dist/declarations/universal-capability.d.ts +4 -0
  18. package/dist/declarations/universal-conversion-artifacts.d.ts +61 -1
  19. package/dist/declarations/universal-conversion-compact-counts.d.ts +51 -0
  20. package/dist/declarations/universal-conversion-plan.d.ts +6 -1
  21. package/dist/declarations/universal-representation-coverage.d.ts +90 -0
  22. package/dist/index.d.ts +4 -0
  23. package/dist/index.js +3 -0
  24. package/dist/internal/index-impl/bidirectionalExactSourceBackprojection.js +199 -0
  25. package/dist/internal/index-impl/bidirectionalSameLanguageSourceProjection.js +112 -0
  26. package/dist/internal/index-impl/bidirectionalSourceEditProjection.js +319 -0
  27. package/dist/internal/index-impl/bidirectionalSourceEditProjectionArtifacts.js +67 -0
  28. package/dist/internal/index-impl/bidirectionalTargetChangeRecordInternals.js +17 -5
  29. package/dist/internal/index-impl/bidirectionalTargetRoundtripEvidence.js +58 -20
  30. package/dist/internal/index-impl/createBidirectionalTargetChangeRecord.js +60 -7
  31. package/dist/internal/index-impl/createLightweightNativeImport.js +1 -0
  32. package/dist/internal/index-impl/createNativeSourcePreservation.js +28 -2
  33. package/dist/internal/index-impl/diffNativeSymbols.js +3 -3
  34. package/dist/internal/index-impl/nativeChangeProjectionSourceMapLinks.js +2 -0
  35. package/dist/internal/index-impl/projectSemanticEditScriptToSource.js +43 -8
  36. package/dist/internal/index-impl/replaySemanticEditLineEndings.js +34 -0
  37. package/dist/internal/index-impl/replaySemanticEditProjection.js +39 -19
  38. package/dist/internal/index-impl/semanticEditBundleAdmission.js +7 -3
  39. package/dist/internal/index-impl/semanticEditBundleIndex.js +47 -1
  40. package/dist/internal/index-impl/semanticEditExplicitSourceReplacement.js +40 -0
  41. package/dist/internal/index-impl/semanticEditOperationCoverage.js +33 -3
  42. package/dist/internal/index-impl/semanticEditProjectionRecord.js +29 -0
  43. package/dist/internal/index-impl/semanticEditReplayDiagnostics.js +39 -0
  44. package/dist/internal/index-impl/semanticEditReplaySourceReplacement.js +85 -0
  45. package/dist/internal/index-impl/semanticEditScripts.js +4 -0
  46. package/dist/internal/index-impl/semanticEditSourceRanges.js +27 -0
  47. package/dist/internal/index-impl/semanticIndexFromNativeDeclarations.js +1 -0
  48. package/dist/internal/index-impl/semanticPatchBundleAdmission.js +41 -7
  49. package/dist/internal/index-impl/semanticPatchBundleRecords.js +16 -0
  50. package/dist/internal/index-impl/semanticPatchBundleSourceRecords.js +2 -0
  51. package/dist/internal/index-impl/semanticSidecarQuality.js +111 -0
  52. package/dist/internal/index-impl/semanticSourceEditDedupe.js +69 -9
  53. package/dist/internal/index-impl/semanticTransformIdentityRecords.js +85 -9
  54. package/dist/js-ts-safe-member-merge-result.js +158 -0
  55. package/dist/js-ts-safe-member-merge.js +265 -0
  56. package/dist/js-ts-safe-merge-analyze.js +279 -0
  57. package/dist/js-ts-safe-merge-composed.js +170 -0
  58. package/dist/js-ts-safe-merge-constants.js +50 -0
  59. package/dist/js-ts-safe-merge-context.js +118 -0
  60. package/dist/js-ts-safe-merge-ledger-validation.js +92 -0
  61. package/dist/js-ts-safe-merge-ledger.js +85 -0
  62. package/dist/js-ts-safe-merge-parse-declarations.js +210 -0
  63. package/dist/js-ts-safe-merge-parse-statements.js +155 -0
  64. package/dist/js-ts-safe-merge-plan.js +190 -0
  65. package/dist/js-ts-safe-merge.js +175 -0
  66. package/dist/js-ts-semantic-conflict-sidecar-constants.js +77 -0
  67. package/dist/js-ts-semantic-conflict-sidecar-detectors.js +195 -0
  68. package/dist/js-ts-semantic-conflict-sidecar-normalize.js +203 -0
  69. package/dist/js-ts-semantic-conflict-sidecar-utils.js +190 -0
  70. package/dist/js-ts-semantic-conflict-sidecars.js +81 -0
  71. package/dist/js-ts-semantic-merge-contract-helpers.js +128 -0
  72. package/dist/js-ts-semantic-merge-contracts.js +217 -0
  73. package/dist/js-ts-semantic-merge-member-containers.js +100 -0
  74. package/dist/js-ts-semantic-merge-member-keys.js +142 -0
  75. package/dist/js-ts-semantic-merge-member-segments.js +185 -0
  76. package/dist/js-ts-semantic-merge-member-source.js +82 -0
  77. package/dist/js-ts-semantic-merge-member-utils.js +18 -0
  78. package/dist/js-ts-semantic-merge-parse.js +16 -0
  79. package/dist/js-ts-semantic-merge.js +24 -0
  80. package/dist/lightweight-dependency-effects.js +51 -0
  81. package/dist/lightweight-dependency-language.js +12 -1
  82. package/dist/lightweight-dependency-relations.js +14 -27
  83. package/dist/native-region-scanner-core.js +33 -1
  84. package/dist/native-region-scanner-csharp.js +151 -0
  85. package/dist/native-region-scanner-dart.js +91 -0
  86. package/dist/native-region-scanner-dynamic.js +21 -151
  87. package/dist/native-region-scanner-functional.js +40 -13
  88. package/dist/native-region-scanner-java.js +97 -0
  89. package/dist/native-region-scanner-js-class.js +100 -0
  90. package/dist/native-region-scanner-js-helpers.js +28 -86
  91. package/dist/native-region-scanner-js-imports.js +121 -1
  92. package/dist/native-region-scanner-js-nested.js +96 -8
  93. package/dist/native-region-scanner-js-structure.js +27 -0
  94. package/dist/native-region-scanner-js-types.js +99 -0
  95. package/dist/native-region-scanner-js.js +70 -118
  96. package/dist/native-region-scanner-kotlin.js +94 -0
  97. package/dist/native-region-scanner-main.js +15 -181
  98. package/dist/native-region-scanner-php.js +80 -0
  99. package/dist/native-region-scanner-python.js +62 -0
  100. package/dist/native-region-scanner-ruby.js +72 -0
  101. package/dist/native-region-scanner-scala.js +91 -0
  102. package/dist/native-region-scanner-spans.js +74 -0
  103. package/dist/native-region-scanner-swift.js +155 -0
  104. package/dist/native-region-scanner.js +14 -10
  105. package/dist/native-source-ledger-helpers.js +195 -0
  106. package/dist/native-source-ledger.js +306 -0
  107. package/dist/native-source-preservation-scanner.js +4 -0
  108. package/dist/semantic-import-callsite-regions.js +136 -0
  109. package/dist/semantic-import-effect-regions.js +283 -0
  110. package/dist/semantic-import-regions.js +11 -2
  111. package/dist/semantic-import-sidecar-entry.js +16 -2
  112. package/dist/semantic-import-sidecar-types.d.ts +2 -0
  113. package/dist/semantic-sidecar-example.js +68 -0
  114. package/dist/universal-capability-matrix.js +23 -0
  115. package/dist/universal-conversion-artifact-query.js +79 -2
  116. package/dist/universal-conversion-artifact-semantic-edit.js +103 -0
  117. package/dist/universal-conversion-artifact-summary.js +33 -1
  118. package/dist/universal-conversion-artifacts.js +13 -48
  119. package/dist/universal-conversion-plan-scoring.js +21 -1
  120. package/dist/universal-conversion-plan-summary.js +30 -0
  121. package/dist/universal-conversion-plan.js +25 -9
  122. package/dist/universal-conversion-route-metadata.js +96 -0
  123. package/dist/universal-conversion-route-operations.js +7 -0
  124. package/dist/universal-representation-coverage.js +193 -0
  125. package/package.json +1 -1
@@ -0,0 +1,287 @@
1
+ import type {
2
+ FrontierSourceLanguage,
3
+ SemanticMergeReadiness,
4
+ SourceSpan
5
+ } from '@shapeshift-labs/frontier-lang-kernel';
6
+
7
+ export type JsTsSemanticMergeLanguage = 'javascript' | 'typescript' | 'jsx' | 'tsx' | FrontierSourceLanguage | string;
8
+ export type JsTsSemanticMergeSourceTokenKind =
9
+ | 'identifier'
10
+ | 'keyword'
11
+ | 'literal'
12
+ | 'operator'
13
+ | 'punctuation'
14
+ | 'template'
15
+ | 'jsx-text'
16
+ | 'unknown'
17
+ | string;
18
+ export type JsTsSemanticMergeTriviaKind = 'whitespace' | 'newline' | 'line-comment' | 'block-comment' | 'directive' | 'shebang' | string;
19
+ export type JsTsSemanticMergeSemanticRegionKind =
20
+ | 'program'
21
+ | 'module'
22
+ | 'import'
23
+ | 'export'
24
+ | 'class'
25
+ | 'interface'
26
+ | 'type-alias'
27
+ | 'function'
28
+ | 'method'
29
+ | 'field'
30
+ | 'variable'
31
+ | 'statement'
32
+ | 'expression'
33
+ | 'jsx'
34
+ | 'unknown'
35
+ | string;
36
+ export type JsTsSemanticMergeThreeWaySide = 'base' | 'left' | 'right' | 'merged' | string;
37
+ export type JsTsSemanticMergeThreeWayMatchStatus =
38
+ | 'matched'
39
+ | 'base-only'
40
+ | 'left-only'
41
+ | 'right-only'
42
+ | 'moved'
43
+ | 'renamed'
44
+ | 'ambiguous'
45
+ | 'missing'
46
+ | string;
47
+ export type JsTsSemanticMergeStructuredEditKind =
48
+ | 'insert'
49
+ | 'delete'
50
+ | 'replace'
51
+ | 'move'
52
+ | 'rename'
53
+ | 'reorder'
54
+ | 'update-import'
55
+ | 'update-export'
56
+ | 'update-signature'
57
+ | 'update-body'
58
+ | 'update-type'
59
+ | 'update-jsx'
60
+ | 'update-trivia'
61
+ | string;
62
+ export type JsTsSemanticMergeConflictClass =
63
+ | 'same-token-edit'
64
+ | 'same-region-edit'
65
+ | 'delete-modify'
66
+ | 'move-edit'
67
+ | 'rename-rename'
68
+ | 'import-order'
69
+ | 'type-surface-drift'
70
+ | 'trivia-preservation'
71
+ | 'behavior-evidence-needed'
72
+ | string;
73
+ export type JsTsSemanticMergeConflictRisk = 'low' | 'medium' | 'high' | string;
74
+ export type JsTsSemanticMergeGateStatus = 'passed' | 'warning' | 'failed' | 'skipped' | 'blocked' | string;
75
+
76
+ /** Source-token evidence for JS/TS semantic merge without binding to a parser library. */
77
+ export interface JsTsSemanticMergeSourceToken {
78
+ readonly schema: 'frontier.lang.jsTsSemanticMergeSourceToken.v1';
79
+ readonly id: string;
80
+ readonly kind: JsTsSemanticMergeSourceTokenKind;
81
+ readonly language?: JsTsSemanticMergeLanguage;
82
+ readonly sourcePath?: string;
83
+ readonly sourceHash?: string;
84
+ readonly text?: string;
85
+ readonly textHash?: string;
86
+ readonly span: SourceSpan;
87
+ readonly triviaBeforeIds?: readonly string[];
88
+ readonly triviaAfterIds?: readonly string[];
89
+ readonly semanticRegionId?: string;
90
+ readonly metadata?: Record<string, unknown>;
91
+ }
92
+
93
+ /** Trivia span evidence for comments, whitespace, directives, and JSX/source preservation. */
94
+ export interface JsTsSemanticMergeTriviaSpan {
95
+ readonly schema: 'frontier.lang.jsTsSemanticMergeTriviaSpan.v1';
96
+ readonly id: string;
97
+ readonly kind: JsTsSemanticMergeTriviaKind;
98
+ readonly language?: JsTsSemanticMergeLanguage;
99
+ readonly sourcePath?: string;
100
+ readonly sourceHash?: string;
101
+ readonly text?: string;
102
+ readonly textHash?: string;
103
+ readonly span: SourceSpan;
104
+ readonly attachesToTokenId?: string;
105
+ readonly attachesToRegionId?: string;
106
+ readonly metadata?: Record<string, unknown>;
107
+ }
108
+
109
+ /** Parser-neutral semantic region used to compare JS/TS declarations, statements, JSX, and type surfaces. */
110
+ export interface JsTsSemanticMergeSemanticRegion {
111
+ readonly schema: 'frontier.lang.jsTsSemanticMergeSemanticRegion.v1';
112
+ readonly id: string;
113
+ readonly kind: JsTsSemanticMergeSemanticRegionKind;
114
+ readonly regionKey: string;
115
+ readonly conflictKey: string;
116
+ readonly language?: JsTsSemanticMergeLanguage;
117
+ readonly sourcePath?: string;
118
+ readonly sourceHash?: string;
119
+ readonly stableHash?: string;
120
+ readonly symbolId?: string;
121
+ readonly symbolName?: string;
122
+ readonly symbolKind?: string;
123
+ readonly parentRegionId?: string;
124
+ readonly childRegionIds?: readonly string[];
125
+ readonly tokenIds?: readonly string[];
126
+ readonly triviaIds?: readonly string[];
127
+ readonly span?: SourceSpan;
128
+ readonly metadata?: Record<string, unknown>;
129
+ }
130
+
131
+ export interface JsTsSemanticMergeThreeWayEndpoint {
132
+ readonly side: JsTsSemanticMergeThreeWaySide;
133
+ readonly regionId?: string;
134
+ readonly tokenId?: string;
135
+ readonly sourcePath?: string;
136
+ readonly sourceHash?: string;
137
+ readonly span?: SourceSpan;
138
+ readonly semanticHash?: string;
139
+ readonly textHash?: string;
140
+ readonly metadata?: Record<string, unknown>;
141
+ }
142
+
143
+ /** Three-way match record connecting base, left, and right JS/TS merge evidence. */
144
+ export interface JsTsSemanticMergeThreeWayMatch {
145
+ readonly schema: 'frontier.lang.jsTsSemanticMergeThreeWayMatch.v1';
146
+ readonly id: string;
147
+ readonly matchKey: string;
148
+ readonly status: JsTsSemanticMergeThreeWayMatchStatus;
149
+ readonly confidence: number;
150
+ readonly base?: JsTsSemanticMergeThreeWayEndpoint;
151
+ readonly left?: JsTsSemanticMergeThreeWayEndpoint;
152
+ readonly right?: JsTsSemanticMergeThreeWayEndpoint;
153
+ readonly regionIds?: readonly string[];
154
+ readonly tokenIds?: readonly string[];
155
+ readonly reasonCodes: readonly string[];
156
+ readonly metadata?: Record<string, unknown>;
157
+ }
158
+
159
+ /** Structured JS/TS edit evidence, separate from concrete parser or diff-library nodes. */
160
+ export interface JsTsSemanticMergeStructuredEdit {
161
+ readonly schema: 'frontier.lang.jsTsSemanticMergeStructuredEdit.v1';
162
+ readonly id: string;
163
+ readonly editKey: string;
164
+ readonly side: JsTsSemanticMergeThreeWaySide;
165
+ readonly kind: JsTsSemanticMergeStructuredEditKind;
166
+ readonly targetRegionId?: string;
167
+ readonly targetTokenId?: string;
168
+ readonly sourcePath?: string;
169
+ readonly beforeHash?: string;
170
+ readonly afterHash?: string;
171
+ readonly replacementTextHash?: string;
172
+ readonly insertedTextHash?: string;
173
+ readonly deletedTextHash?: string;
174
+ readonly matchIds?: readonly string[];
175
+ readonly regionIds?: readonly string[];
176
+ readonly tokenIds?: readonly string[];
177
+ readonly triviaIds?: readonly string[];
178
+ readonly conflictKey?: string;
179
+ readonly reasonCodes: readonly string[];
180
+ readonly evidenceIds?: readonly string[];
181
+ readonly metadata?: Record<string, unknown>;
182
+ }
183
+
184
+ export interface JsTsSemanticMergeConflictSide {
185
+ readonly side: JsTsSemanticMergeThreeWaySide;
186
+ readonly sourcePath?: string;
187
+ readonly sourceHash?: string;
188
+ readonly editIds?: readonly string[];
189
+ readonly regionIds?: readonly string[];
190
+ readonly tokenIds?: readonly string[];
191
+ readonly summary?: string;
192
+ readonly metadata?: Record<string, unknown>;
193
+ }
194
+
195
+ /** Normalized explanation for a JS/TS semantic merge conflict. */
196
+ export interface JsTsSemanticMergeConflictExplanation {
197
+ readonly kind: 'frontier.lang.jsTsSemanticMergeConflictExplanation';
198
+ readonly version: 1;
199
+ readonly schema: 'frontier.lang.jsTsSemanticMergeConflictExplanation.v1';
200
+ readonly id: string;
201
+ readonly stableId: string;
202
+ readonly hash: string;
203
+ readonly conflictClass: JsTsSemanticMergeConflictClass;
204
+ readonly risk: JsTsSemanticMergeConflictRisk;
205
+ readonly readiness: SemanticMergeReadiness | string;
206
+ readonly language?: JsTsSemanticMergeLanguage;
207
+ readonly sourcePath?: string;
208
+ readonly title?: string;
209
+ readonly summary?: string;
210
+ readonly conflictKeys: readonly string[];
211
+ readonly matchIds: readonly string[];
212
+ readonly editIds: readonly string[];
213
+ readonly regionIds: readonly string[];
214
+ readonly tokenIds: readonly string[];
215
+ readonly triviaIds: readonly string[];
216
+ readonly evidenceIds: readonly string[];
217
+ readonly reasonCodes: readonly string[];
218
+ readonly sides: {
219
+ readonly base?: JsTsSemanticMergeConflictSide;
220
+ readonly left?: JsTsSemanticMergeConflictSide;
221
+ readonly right?: JsTsSemanticMergeConflictSide;
222
+ };
223
+ readonly suggestedAction: 'merge' | 'manual-review' | 'rerun-gates' | 'block' | string;
224
+ readonly metadata?: Record<string, unknown>;
225
+ }
226
+
227
+ export interface JsTsSemanticMergeGateCheck {
228
+ readonly id: string;
229
+ readonly name?: string;
230
+ readonly status: JsTsSemanticMergeGateStatus;
231
+ readonly readiness?: SemanticMergeReadiness | string;
232
+ readonly reasonCodes: readonly string[];
233
+ readonly evidenceIds?: readonly string[];
234
+ readonly hash?: string;
235
+ readonly metadata?: Record<string, unknown>;
236
+ }
237
+
238
+ /** Merge gate result for deciding whether normalized JS/TS merge evidence can proceed. */
239
+ export interface JsTsSemanticMergeGateResult {
240
+ readonly kind: 'frontier.lang.jsTsSemanticMergeGateResult';
241
+ readonly version: 1;
242
+ readonly schema: 'frontier.lang.jsTsSemanticMergeGateResult.v1';
243
+ readonly id: string;
244
+ readonly stableId: string;
245
+ readonly hash: string;
246
+ readonly gateId: string;
247
+ readonly status: JsTsSemanticMergeGateStatus;
248
+ readonly readiness: SemanticMergeReadiness | string;
249
+ readonly mergeable: boolean;
250
+ readonly action: 'merge' | 'review' | 'skip' | 'block' | string;
251
+ readonly confidence: number;
252
+ readonly checks: readonly JsTsSemanticMergeGateCheck[];
253
+ readonly conflictExplanations: readonly JsTsSemanticMergeConflictExplanation[];
254
+ readonly conflictExplanationIds: readonly string[];
255
+ readonly structuredEditIds: readonly string[];
256
+ readonly semanticRegionIds: readonly string[];
257
+ readonly evidenceIds: readonly string[];
258
+ readonly reasonCodes: readonly string[];
259
+ readonly summary: {
260
+ readonly checks: number;
261
+ readonly conflicts: number;
262
+ readonly failedChecks: number;
263
+ readonly warningChecks: number;
264
+ readonly blockedChecks: number;
265
+ readonly evidenceIds: number;
266
+ readonly reasonCodes: readonly string[];
267
+ };
268
+ readonly metadata?: Record<string, unknown>;
269
+ }
270
+
271
+ export type JsTsSemanticMergeConflictExplanationInput =
272
+ Partial<JsTsSemanticMergeConflictExplanation> & Record<string, unknown>;
273
+ export type JsTsSemanticMergeGateResultInput =
274
+ Partial<JsTsSemanticMergeGateResult> & Record<string, unknown>;
275
+
276
+ export interface CreateJsTsSemanticMergeConflictExplanationOptions extends JsTsSemanticMergeConflictExplanationInput {
277
+ readonly conflictKey?: string;
278
+ }
279
+
280
+ export interface CreateJsTsSemanticMergeGateResultOptions extends JsTsSemanticMergeGateResultInput {
281
+ readonly conflicts?: readonly JsTsSemanticMergeConflictExplanationInput[];
282
+ }
283
+
284
+ export declare const JsTsSemanticMergeConflictClasses: readonly JsTsSemanticMergeConflictClass[];
285
+ export declare const JsTsSemanticMergeGateStatuses: readonly JsTsSemanticMergeGateStatus[];
286
+ export declare function createJsTsSemanticMergeConflictExplanation(input?: JsTsSemanticMergeConflictExplanationInput, options?: CreateJsTsSemanticMergeConflictExplanationOptions): JsTsSemanticMergeConflictExplanation;
287
+ export declare function createJsTsSemanticMergeGateResult(input?: JsTsSemanticMergeGateResultInput, options?: CreateJsTsSemanticMergeGateResultOptions): JsTsSemanticMergeGateResult;
@@ -0,0 +1,4 @@
1
+ export * from './js-ts-safe-merge.js';
2
+ export * from './js-ts-safe-member-merge.js';
3
+ export * from './js-ts-semantic-merge-contracts.js';
4
+ export * from './js-ts-semantic-conflict-sidecars.js';
@@ -98,10 +98,13 @@ export type NativeImportRegionTaxonomyKind =
98
98
  | 'symbol'
99
99
  | 'declaration'
100
100
  | 'import'
101
+ | 'export'
101
102
  | 'body'
102
103
  | 'call'
103
104
  | 'type'
105
+ | 'controlFlow'
104
106
  | 'effect'
107
+ | 'mutation'
105
108
  | 'property'
106
109
  | 'config'
107
110
  | 'content'
@@ -12,6 +12,18 @@ export interface SemanticEditReplayDiagnostic {
12
12
  readonly status?: SemanticEditReplayStatus | string;
13
13
  readonly operationId?: string;
14
14
  readonly sourcePath?: string;
15
+ readonly originalSourcePath?: string;
16
+ readonly targetSourcePath?: string;
17
+ readonly anchorKey?: string;
18
+ readonly targetAnchorKey?: string;
19
+ readonly sourceIdentityStatus?: 'same-source' | 'moved-source' | string;
20
+ readonly sourceIdentityAnchorKey?: string;
21
+ readonly targetIdentityAnchorKey?: string;
22
+ readonly sourceIdentitySourcePath?: string;
23
+ readonly targetIdentitySourcePath?: string;
24
+ readonly semanticIdentityHash?: string;
25
+ readonly sourceIdentityHash?: string;
26
+ readonly editContentHash?: string;
15
27
  readonly symbolName?: string;
16
28
  readonly symbolKind?: string;
17
29
  readonly editKind?: 'replace' | 'insert' | 'delete' | string;
@@ -137,15 +137,18 @@ export interface SemanticEditProjectionEdit {
137
137
  readonly semanticKey?: string;
138
138
  readonly semanticIdentityHash?: string;
139
139
  readonly sourceIdentityHash?: string;
140
+ readonly sourceIdentityStatus?: 'same-source' | 'moved-source' | string;
141
+ readonly sourceIdentityAnchorKey?: string; readonly targetIdentityAnchorKey?: string;
142
+ readonly sourceIdentitySourcePath?: string; readonly targetIdentitySourcePath?: string;
140
143
  readonly operationContentHash?: string;
141
144
  readonly editContentHash?: string;
142
- readonly headStart: number;
143
- readonly headEnd: number;
144
- readonly workerStart?: number;
145
- readonly workerEnd?: number;
145
+ readonly headStart: number; readonly headEnd: number;
146
+ readonly workerStart?: number; readonly workerEnd?: number;
147
+ readonly headAnchorStart?: number; readonly headAnchorEnd?: number;
146
148
  readonly deletedBytes: number;
147
149
  readonly replacementBytes: number;
148
150
  readonly deletedTextHash?: string;
151
+ readonly deletedText?: string;
149
152
  readonly replacementTextHash?: string;
150
153
  readonly deletedTextLineEndingStableHash?: string;
151
154
  readonly replacementTextLineEndingStableHash?: string;
@@ -11,6 +11,12 @@ export interface SemanticPatchBundleRecordIndex {
11
11
  readonly sourceMapLinkIds: readonly string[];
12
12
  readonly evidenceIds: readonly string[];
13
13
  readonly proofIds: readonly string[];
14
+ readonly lineageResolutionIds: readonly string[];
15
+ readonly lineageEventIds: readonly string[];
16
+ readonly lineageSourcePaths: readonly string[];
17
+ readonly lineageEvidenceIds: readonly string[];
18
+ readonly lineageProofIds: readonly string[];
19
+ readonly lineageReasonCodes: readonly string[];
14
20
  readonly historyIds: readonly string[];
15
21
  readonly semanticOperationIds: readonly string[];
16
22
  readonly semanticEditScriptIds: readonly string[];
@@ -18,11 +24,13 @@ export interface SemanticPatchBundleRecordIndex {
18
24
  readonly semanticEditReplayIds: readonly string[];
19
25
  readonly semanticEditReplayStatuses: readonly string[];
20
26
  readonly semanticEditReplayActions: readonly string[];
27
+ readonly semanticEditReplayReasonCodes: readonly string[];
21
28
  readonly semanticEditAdmissionStatuses: readonly string[];
22
29
  readonly semanticEditAdmissionActions: readonly string[];
23
30
  readonly semanticEditAdmissionReadinesses: readonly string[];
24
31
  readonly semanticEditReplayCurrentHashes: readonly string[];
25
32
  readonly semanticEditReplayOutputHashes: readonly string[];
33
+ readonly sourceBackprojectionModes: readonly string[];
26
34
  readonly semanticEditKeys: readonly string[];
27
35
  readonly semanticIdentityHashes: readonly string[];
28
36
  readonly sourceIdentityHashes: readonly string[];
@@ -33,12 +41,18 @@ export interface SemanticPatchBundleRecordIndex {
33
41
  readonly semanticTransformIdentityHashes: readonly string[];
34
42
  readonly semanticTransformContentHashes: readonly string[];
35
43
  readonly projectionIdentityHashes: readonly string[];
44
+ readonly transformBaseHashes: readonly string[];
45
+ readonly transformTargetHashes: readonly string[];
36
46
  readonly semanticTransformReadinesses: readonly string[];
37
47
  readonly semanticTransformEvidenceIds: readonly string[];
38
48
  readonly transformSourceLanguages: readonly string[];
39
49
  readonly transformTargetLanguages: readonly string[];
40
50
  readonly transformSourcePaths: readonly string[];
41
51
  readonly transformTargetPaths: readonly string[];
52
+ readonly transformCrossLanguages: readonly string[];
53
+ readonly transformSourceMapIds: readonly string[];
54
+ readonly transformSourceMapLinkIds: readonly string[];
55
+ readonly transformSourceMapMappingIds: readonly string[];
42
56
  readonly targetPortabilityStatuses: readonly string[];
43
57
  readonly targetPortabilityActions: readonly string[];
44
58
  readonly targetPortabilityReasonCodes: readonly string[];
@@ -47,3 +61,34 @@ export interface SemanticPatchBundleRecordIndex {
47
61
  readonly readinesses: readonly string[];
48
62
  readonly admissionStatuses: readonly string[];
49
63
  }
64
+
65
+ export interface SemanticPatchBundleRecordQueryIndexFilters {
66
+ readonly lineageResolutionId?: string | readonly string[];
67
+ readonly lineageResolutionIds?: readonly string[];
68
+ readonly lineageEventId?: string | readonly string[];
69
+ readonly lineageEventIds?: readonly string[];
70
+ readonly lineageSourcePath?: string | readonly string[];
71
+ readonly lineageSourcePaths?: readonly string[];
72
+ readonly lineageEvidenceId?: string | readonly string[];
73
+ readonly lineageEvidenceIds?: readonly string[];
74
+ readonly lineageProofId?: string | readonly string[];
75
+ readonly lineageProofIds?: readonly string[];
76
+ readonly lineageReasonCode?: string | readonly string[];
77
+ readonly lineageReasonCodes?: readonly string[];
78
+ readonly sourceBackprojectionMode?: string | readonly string[];
79
+ readonly sourceBackprojectionModes?: readonly string[];
80
+ readonly semanticEditReplayReasonCode?: string | readonly string[];
81
+ readonly semanticEditReplayReasonCodes?: readonly string[];
82
+ readonly transformBaseHash?: string | readonly string[];
83
+ readonly transformBaseHashes?: readonly string[];
84
+ readonly transformTargetHash?: string | readonly string[];
85
+ readonly transformTargetHashes?: readonly string[];
86
+ readonly transformCrossLanguage?: boolean | string | readonly string[];
87
+ readonly transformCrossLanguages?: readonly string[];
88
+ readonly transformSourceMapId?: string | readonly string[];
89
+ readonly transformSourceMapIds?: readonly string[];
90
+ readonly transformSourceMapLinkId?: string | readonly string[];
91
+ readonly transformSourceMapLinkIds?: readonly string[];
92
+ readonly transformSourceMapMappingId?: string | readonly string[];
93
+ readonly transformSourceMapMappingIds?: readonly string[];
94
+ }
@@ -9,11 +9,11 @@ import type {
9
9
  import type { NativeSourceChangeKind, NativeSourceChangeSet } from './native-diff.js';
10
10
  import type { SemanticEditBundleAdmission } from './semantic-edit-bundle.js';
11
11
  import type { SemanticEditProjection, SemanticEditReplay, SemanticEditScript } from './semantic-edit-script.js';
12
- import type { SemanticPatchBundleRecordIndex } from './semantic-patch-bundle-index.js';
12
+ import type { SemanticPatchBundleRecordIndex, SemanticPatchBundleRecordQueryIndexFilters } from './semantic-patch-bundle-index.js';
13
13
  import type { SemanticTransformIdentityRecord } from './semantic-transform-identity.js';
14
14
  import type { BidirectionalTargetPortabilityRecord } from './bidirectional-target-change.js';
15
15
 
16
- export type { SemanticPatchBundleRecordIndex } from './semantic-patch-bundle-index.js';
16
+ export type { SemanticPatchBundleRecordIndex, SemanticPatchBundleRecordQueryIndexFilters } from './semantic-patch-bundle-index.js';
17
17
 
18
18
  export type SemanticPatchBundleAdmissionStatus = 'proposed' | 'queued' | 'admitted' | 'needs-review' | 'blocked' | 'rejected' | string;
19
19
 
@@ -78,6 +78,7 @@ export interface SemanticPatchBundleSourceMapLink {
78
78
  readonly precision?: string;
79
79
  readonly sourceSpan?: SourceSpan;
80
80
  readonly generatedSpan?: SourceMapMappingRecord['generatedSpan'];
81
+ readonly sourceReplacementText?: string; readonly sourceReplacementTextHash?: string;
81
82
  readonly regionKey?: string;
82
83
  readonly regionKind?: string;
83
84
  }
@@ -121,10 +122,12 @@ export interface SemanticPatchBundleTransformAdmission {
121
122
  readonly transformKeys?: readonly string[];
122
123
  readonly contentHashes?: readonly string[];
123
124
  readonly projectionIdentityHashes?: readonly string[];
125
+ readonly baseHashes?: readonly string[]; readonly targetHashes?: readonly string[];
124
126
  readonly sourceLanguages?: readonly string[];
125
127
  readonly targetLanguages?: readonly string[];
126
128
  readonly sourcePaths?: readonly string[];
127
129
  readonly targetPaths?: readonly string[];
130
+ readonly sourceMapIds?: readonly string[]; readonly sourceMapLinkIds?: readonly string[]; readonly sourceMapMappingIds?: readonly string[];
128
131
  readonly evidenceIds?: readonly string[];
129
132
  }
130
133
 
@@ -214,7 +217,7 @@ export interface CreateSemanticPatchBundleRecordOptions {
214
217
 
215
218
  export type CreateSemanticPatchBundleRecordInput = NativeSourceChangeSet | Partial<SemanticPatchBundleRecord> | Record<string, unknown>;
216
219
 
217
- export interface SemanticPatchBundleRecordQuery {
220
+ export interface SemanticPatchBundleRecordQuery extends SemanticPatchBundleRecordQueryIndexFilters {
218
221
  readonly id?: string | readonly string[];
219
222
  readonly ids?: readonly string[];
220
223
  readonly patchId?: string | readonly string[];
@@ -312,7 +315,6 @@ export interface SemanticPatchBundleRecordQuery {
312
315
  readonly admissionStatus?: SemanticPatchBundleAdmissionStatus | readonly string[];
313
316
  readonly admissionStatuses?: readonly string[];
314
317
  }
315
-
316
318
  export declare const SemanticPatchBundleAdmissionStatuses: readonly SemanticPatchBundleAdmissionStatus[];
317
319
  export declare function createSemanticPatchBundleRecord(input?: CreateSemanticPatchBundleRecordInput, options?: CreateSemanticPatchBundleRecordOptions): SemanticPatchBundleRecord;
318
320
  export declare function querySemanticPatchBundleRecords(records: SemanticPatchBundleRecord | readonly SemanticPatchBundleRecord[], query?: SemanticPatchBundleRecordQuery): readonly SemanticPatchBundleRecord[];
@@ -0,0 +1,18 @@
1
+ import type { SemanticImportSidecar } from './semantic-sidecar.js';
2
+
3
+ export interface SemanticImportSidecarSourceRevisionExample {
4
+ readonly path: string;
5
+ readonly hash: string;
6
+ readonly identityHash: string;
7
+ readonly text?: string;
8
+ }
9
+
10
+ export interface SemanticImportSidecarCompactExample {
11
+ readonly schema: 'frontier.lang.semanticImportSidecar.example.compact.v1';
12
+ readonly baseSource: SemanticImportSidecarSourceRevisionExample;
13
+ readonly headSource: SemanticImportSidecarSourceRevisionExample;
14
+ readonly identityHashes: Readonly<Record<string, string>>;
15
+ readonly sidecar: SemanticImportSidecar;
16
+ }
17
+
18
+ export declare const compactSemanticSidecarExample: SemanticImportSidecarCompactExample;
@@ -20,6 +20,9 @@ export interface SemanticTransformIdentityRecord {
20
20
  readonly transformIdentityHash?: string;
21
21
  readonly projectionIdentityHash?: string;
22
22
  readonly transformContentHash?: string;
23
+ readonly sourceMapIds?: readonly string[];
24
+ readonly sourceMapLinkIds?: readonly string[];
25
+ readonly sourceMapMappingIds?: readonly string[];
23
26
  readonly readiness?: string;
24
27
  readonly confidence?: number;
25
28
  readonly evidenceIds?: readonly string[];
@@ -54,11 +54,16 @@ export type NativeSourceTokenKind =
54
54
  | 'keyword'
55
55
  | 'number'
56
56
  | 'string'
57
+ | 'template'
58
+ | 'regex-like'
59
+ | 'jsx'
57
60
  | 'operator'
58
61
  | 'punctuation'
59
62
  | 'comment'
63
+ | 'source-map-comment'
60
64
  | 'whitespace'
61
65
  | 'newline'
66
+ | 'shebang'
62
67
  | 'directive'
63
68
  | 'unknown'
64
69
  | string;
@@ -81,6 +86,65 @@ export interface NativeSourcePreservedDirective {
81
86
  readonly metadata?: Record<string, unknown>;
82
87
  }
83
88
 
89
+ export type NativeSourceLedgerSpanRole =
90
+ | 'token'
91
+ | 'trivia'
92
+ | 'comment'
93
+ | 'directive'
94
+ | 'module-keyword'
95
+ | 'brace'
96
+ | 'protected'
97
+ | string;
98
+
99
+ export interface NativeSourceLedgerSpan {
100
+ readonly id: string;
101
+ readonly kind: string;
102
+ readonly role: NativeSourceLedgerSpanRole;
103
+ readonly text?: string;
104
+ readonly textHash: string;
105
+ readonly span: SourceSpan;
106
+ readonly metadata?: Record<string, unknown>;
107
+ }
108
+
109
+ export interface NativeSourceLedgerSummary {
110
+ readonly spans: number;
111
+ readonly tokens: number;
112
+ readonly trivia: number;
113
+ readonly comments: number;
114
+ readonly shebangs: number;
115
+ readonly directives: number;
116
+ readonly sourceMapComments: number;
117
+ readonly importExportSpans: number;
118
+ readonly braces: number;
119
+ readonly protectedRegions: number;
120
+ readonly stringRegions: number;
121
+ readonly templateRegions: number;
122
+ readonly regexLikeRegions: number;
123
+ readonly jsxRegions: number;
124
+ readonly triviaByKind?: Record<string, number>;
125
+ readonly tokenByKind?: Record<string, number>;
126
+ readonly directiveByKind?: Record<string, number>;
127
+ readonly truncated: boolean;
128
+ }
129
+
130
+ export interface NativeSourceLedger {
131
+ readonly kind: 'frontier.lang.jsTsSourceLedger';
132
+ readonly version: 1;
133
+ readonly language: FrontierSourceLanguage | string;
134
+ readonly sourcePath?: string;
135
+ readonly sourceHash: string;
136
+ readonly spans: readonly NativeSourceLedgerSpan[];
137
+ readonly tokens: readonly NativeSourceLedgerSpan[];
138
+ readonly trivia: readonly NativeSourceLedgerSpan[];
139
+ readonly comments: readonly NativeSourceLedgerSpan[];
140
+ readonly shebangs: readonly NativeSourceLedgerSpan[];
141
+ readonly directives: readonly NativeSourceLedgerSpan[];
142
+ readonly importExportSpans: readonly NativeSourceLedgerSpan[];
143
+ readonly braces: readonly NativeSourceLedgerSpan[];
144
+ readonly protectedRegions: readonly NativeSourceLedgerSpan[];
145
+ readonly summary: NativeSourceLedgerSummary;
146
+ }
147
+
84
148
  export interface NativeSourcePreservation {
85
149
  readonly kind: 'frontier.lang.nativeSourcePreservation';
86
150
  readonly version: 1;
@@ -96,12 +160,18 @@ export interface NativeSourcePreservation {
96
160
  readonly tokens: readonly NativeSourcePreservedToken[];
97
161
  readonly trivia: readonly NativeSourcePreservedToken[];
98
162
  readonly directives: readonly NativeSourcePreservedDirective[];
163
+ readonly ledger?: NativeSourceLedger;
99
164
  readonly summary: {
100
165
  readonly tokens: number;
101
166
  readonly trivia: number;
102
167
  readonly directives: number;
103
168
  readonly comments: number;
104
169
  readonly whitespace: number;
170
+ readonly ledger?: NativeSourceLedgerSummary;
171
+ readonly sourceMapComments?: number;
172
+ readonly protectedRegions?: number;
173
+ readonly importExportSpans?: number;
174
+ readonly braces?: number;
105
175
  readonly exactSourceAvailable: boolean;
106
176
  readonly truncated: boolean;
107
177
  };
@@ -119,8 +189,10 @@ export interface CreateNativeSourcePreservationOptions {
119
189
  readonly includeTokens?: boolean;
120
190
  readonly includeTrivia?: boolean;
121
191
  readonly includeDirectives?: boolean;
192
+ readonly includeSourceLedger?: boolean;
122
193
  readonly maxTokens?: number;
123
194
  readonly maxTrivia?: number;
124
195
  readonly maxDirectives?: number;
196
+ readonly maxLedgerSpans?: number;
125
197
  readonly metadata?: Record<string, unknown>;
126
198
  }
@@ -49,6 +49,7 @@ import type { JavaAstNativeImporterAdapterOptions, KotlinPsiNativeImporterAdapte
49
49
  import type { NativeTargetProjectionAdapterCoverageInput, NativeTargetProjectionAdapterSummary, NativeTargetProjectionAdapterInput, NativeTargetProjectionAdapterResult, NativeTargetProjectionAdapter, NativeTargetProjectionAdapterResolverInput, NativeTargetProjectionResult } from './target-adapters.js';
50
50
  import type { NativeProjectSourceInput, ImportNativeProjectOptions, NativeProjectImportResult, NativeSourceProjectionMode, ProjectNativeImportToSourceOptions, NativeSourceProjectionDeclaration, NativeSourceProjectionResult, NativeSourceCompileOutputMode, CompileNativeSourceOptions, NativeSourceCompileResult } from './native-project.js';
51
51
  import type { NativeImportRoundtripReadinessStatus, NativeImportRoundtripReadinessOptions, NativeImportRoundtripReadinessClassification } from './roundtrip.js';
52
+ import type { UniversalRepresentationCoverage } from './universal-representation-coverage.js';
52
53
 
53
54
  export interface UniversalCapabilityLanguageRow {
54
55
  readonly language: FrontierSourceLanguage | string;
@@ -89,6 +90,7 @@ export interface UniversalCapabilityLanguageRow {
89
90
  readonly knownLossKinds: readonly NativeImportKnownLossKind[];
90
91
  readonly sourceMapMappings: number;
91
92
  };
93
+ readonly representation: UniversalRepresentationCoverage;
92
94
  readonly blockers: readonly string[];
93
95
  readonly review: readonly string[];
94
96
  }
@@ -111,6 +113,8 @@ export interface UniversalCapabilityMatrix {
111
113
  readonly unsupportedTargetFeatures: number;
112
114
  readonly exactSourceProjection: number;
113
115
  readonly nativeSourceStubs: number;
116
+ readonly representationConstructs: number;
117
+ readonly representationMissing: number;
114
118
  readonly blockers: number;
115
119
  readonly reviewReasons: number;
116
120
  readonly readyLanguages: number;