@adhisang/minecraft-modding-mcp 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +36 -23
  3. package/dist/build-suggested-call.d.ts +29 -0
  4. package/dist/build-suggested-call.js +58 -0
  5. package/dist/cache-registry.d.ts +3 -1
  6. package/dist/cache-registry.js +50 -6
  7. package/dist/entry-tools/analyze-symbol-service.d.ts +16 -16
  8. package/dist/entry-tools/batch-class-members-service.d.ts +34 -0
  9. package/dist/entry-tools/batch-class-members-service.js +97 -0
  10. package/dist/entry-tools/batch-class-source-service.d.ts +37 -0
  11. package/dist/entry-tools/batch-class-source-service.js +100 -0
  12. package/dist/entry-tools/batch-mappings-service.d.ts +36 -0
  13. package/dist/entry-tools/batch-mappings-service.js +66 -0
  14. package/dist/entry-tools/batch-runner.d.ts +72 -0
  15. package/dist/entry-tools/batch-runner.js +90 -0
  16. package/dist/entry-tools/batch-symbol-exists-service.d.ts +46 -0
  17. package/dist/entry-tools/batch-symbol-exists-service.js +113 -0
  18. package/dist/entry-tools/compare-minecraft-service.d.ts +6 -6
  19. package/dist/entry-tools/inspect-minecraft/handlers/artifact.d.ts +5 -0
  20. package/dist/entry-tools/inspect-minecraft/handlers/artifact.js +83 -0
  21. package/dist/entry-tools/inspect-minecraft/handlers/class-members.d.ts +6 -0
  22. package/dist/entry-tools/inspect-minecraft/handlers/class-members.js +80 -0
  23. package/dist/entry-tools/inspect-minecraft/handlers/class-overview.d.ts +5 -0
  24. package/dist/entry-tools/inspect-minecraft/handlers/class-overview.js +248 -0
  25. package/dist/entry-tools/inspect-minecraft/handlers/class-source.d.ts +5 -0
  26. package/dist/entry-tools/inspect-minecraft/handlers/class-source.js +60 -0
  27. package/dist/entry-tools/inspect-minecraft/handlers/file.d.ts +5 -0
  28. package/dist/entry-tools/inspect-minecraft/handlers/file.js +54 -0
  29. package/dist/entry-tools/inspect-minecraft/handlers/list-files.d.ts +5 -0
  30. package/dist/entry-tools/inspect-minecraft/handlers/list-files.js +100 -0
  31. package/dist/entry-tools/inspect-minecraft/handlers/search.d.ts +5 -0
  32. package/dist/entry-tools/inspect-minecraft/handlers/search.js +155 -0
  33. package/dist/entry-tools/inspect-minecraft/handlers/versions.d.ts +6 -0
  34. package/dist/entry-tools/inspect-minecraft/handlers/versions.js +49 -0
  35. package/dist/entry-tools/inspect-minecraft/internal.d.ts +1042 -0
  36. package/dist/entry-tools/inspect-minecraft/internal.js +448 -0
  37. package/dist/entry-tools/inspect-minecraft-service.d.ts +193 -308
  38. package/dist/entry-tools/inspect-minecraft-service.js +20 -1244
  39. package/dist/entry-tools/manage-cache-service.d.ts +16 -16
  40. package/dist/entry-tools/validate-project/cases/access-transformer.d.ts +6 -0
  41. package/dist/entry-tools/validate-project/cases/access-transformer.js +106 -0
  42. package/dist/entry-tools/validate-project/cases/access-widener.d.ts +6 -0
  43. package/dist/entry-tools/validate-project/cases/access-widener.js +86 -0
  44. package/dist/entry-tools/validate-project/cases/mixin.d.ts +6 -0
  45. package/dist/entry-tools/validate-project/cases/mixin.js +90 -0
  46. package/dist/entry-tools/validate-project/cases/project-summary.d.ts +97 -0
  47. package/dist/entry-tools/validate-project/cases/project-summary.js +346 -0
  48. package/dist/entry-tools/validate-project/internal.d.ts +135 -0
  49. package/dist/entry-tools/validate-project/internal.js +287 -0
  50. package/dist/entry-tools/validate-project-service.d.ts +63 -47
  51. package/dist/entry-tools/validate-project-service.js +12 -562
  52. package/dist/entry-tools/verify-mixin-target-service.d.ts +133 -0
  53. package/dist/entry-tools/verify-mixin-target-service.js +323 -0
  54. package/dist/error-mapping.d.ts +40 -0
  55. package/dist/error-mapping.js +139 -0
  56. package/dist/errors.d.ts +6 -0
  57. package/dist/errors.js +6 -0
  58. package/dist/index.d.ts +2 -0
  59. package/dist/index.js +142 -1352
  60. package/dist/mapping/internal-types.d.ts +54 -0
  61. package/dist/mapping/internal-types.js +14 -0
  62. package/dist/mapping/loaders/mojang.d.ts +2 -0
  63. package/dist/mapping/loaders/mojang.js +64 -0
  64. package/dist/mapping/loaders/tiny-loom.d.ts +2 -0
  65. package/dist/mapping/loaders/tiny-loom.js +73 -0
  66. package/dist/mapping/loaders/tiny-maven.d.ts +2 -0
  67. package/dist/mapping/loaders/tiny-maven.js +104 -0
  68. package/dist/mapping/loaders/types.d.ts +14 -0
  69. package/dist/mapping/loaders/types.js +2 -0
  70. package/dist/mapping/lookup.d.ts +52 -0
  71. package/dist/mapping/lookup.js +496 -0
  72. package/dist/mapping/parsers/normalize.d.ts +10 -0
  73. package/dist/mapping/parsers/normalize.js +52 -0
  74. package/dist/mapping/parsers/proguard.d.ts +20 -0
  75. package/dist/mapping/parsers/proguard.js +138 -0
  76. package/dist/mapping/parsers/symbol-records.d.ts +27 -0
  77. package/dist/mapping/parsers/symbol-records.js +216 -0
  78. package/dist/mapping/parsers/tiny.d.ts +9 -0
  79. package/dist/mapping/parsers/tiny.js +96 -0
  80. package/dist/mapping/types.d.ts +147 -0
  81. package/dist/mapping/types.js +2 -0
  82. package/dist/mapping-pipeline-service.js +3 -2
  83. package/dist/mapping-service.d.ts +3 -144
  84. package/dist/mapping-service.js +19 -1201
  85. package/dist/mixin/access-validators.d.ts +9 -0
  86. package/dist/mixin/access-validators.js +257 -0
  87. package/dist/mixin/annotation-validators.d.ts +5 -0
  88. package/dist/mixin/annotation-validators.js +162 -0
  89. package/dist/mixin/helpers.d.ts +28 -0
  90. package/dist/mixin/helpers.js +315 -0
  91. package/dist/mixin/parsed-validator.d.ts +8 -0
  92. package/dist/mixin/parsed-validator.js +337 -0
  93. package/dist/mixin/types.d.ts +208 -0
  94. package/dist/mixin/types.js +28 -0
  95. package/dist/mixin-validator.d.ts +9 -201
  96. package/dist/mixin-validator.js +8 -1020
  97. package/dist/source/access-validate.d.ts +4 -0
  98. package/dist/source/access-validate.js +254 -0
  99. package/dist/source/artifact-resolver.d.ts +110 -0
  100. package/dist/source/artifact-resolver.js +1174 -0
  101. package/dist/source/cache-metrics.d.ts +26 -0
  102. package/dist/source/cache-metrics.js +172 -0
  103. package/dist/source/class-source/members-builder.d.ts +34 -0
  104. package/dist/source/class-source/members-builder.js +46 -0
  105. package/dist/source/class-source/snippet-builder.d.ts +19 -0
  106. package/dist/source/class-source/snippet-builder.js +46 -0
  107. package/dist/source/class-source-helpers.d.ts +34 -0
  108. package/dist/source/class-source-helpers.js +140 -0
  109. package/dist/source/class-source.d.ts +42 -0
  110. package/dist/source/class-source.js +883 -0
  111. package/dist/source/descriptor-utils.d.ts +6 -0
  112. package/dist/source/descriptor-utils.js +37 -0
  113. package/dist/source/file-access.d.ts +4 -0
  114. package/dist/source/file-access.js +102 -0
  115. package/dist/source/indexer.d.ts +82 -0
  116. package/dist/source/indexer.js +505 -0
  117. package/dist/source/lifecycle/diff-utils.d.ts +9 -0
  118. package/dist/source/lifecycle/diff-utils.js +107 -0
  119. package/dist/source/lifecycle/diff.d.ts +2 -0
  120. package/dist/source/lifecycle/diff.js +265 -0
  121. package/dist/source/lifecycle/mapping-helpers.d.ts +22 -0
  122. package/dist/source/lifecycle/mapping-helpers.js +327 -0
  123. package/dist/source/lifecycle/runtime-check.d.ts +2 -0
  124. package/dist/source/lifecycle/runtime-check.js +142 -0
  125. package/dist/source/lifecycle/trace.d.ts +2 -0
  126. package/dist/source/lifecycle/trace.js +231 -0
  127. package/dist/source/lifecycle.d.ts +4 -0
  128. package/dist/source/lifecycle.js +5 -0
  129. package/dist/source/search.d.ts +51 -0
  130. package/dist/source/search.js +676 -0
  131. package/dist/source/shared-utils.d.ts +6 -0
  132. package/dist/source/shared-utils.js +55 -0
  133. package/dist/source/state.d.ts +21 -0
  134. package/dist/source/state.js +19 -0
  135. package/dist/source/symbol-resolver.d.ts +3 -0
  136. package/dist/source/symbol-resolver.js +212 -0
  137. package/dist/source/validate-mixin/pipeline/mapping-health.d.ts +3 -0
  138. package/dist/source/validate-mixin/pipeline/mapping-health.js +41 -0
  139. package/dist/source/validate-mixin/pipeline/parse.d.ts +2 -0
  140. package/dist/source/validate-mixin/pipeline/parse.js +10 -0
  141. package/dist/source/validate-mixin/pipeline/resolve.d.ts +3 -0
  142. package/dist/source/validate-mixin/pipeline/resolve.js +78 -0
  143. package/dist/source/validate-mixin/pipeline/target-lookup.d.ts +6 -0
  144. package/dist/source/validate-mixin/pipeline/target-lookup.js +260 -0
  145. package/dist/source/validate-mixin/pipeline-context.d.ts +72 -0
  146. package/dist/source/validate-mixin/pipeline-context.js +93 -0
  147. package/dist/source/validate-mixin.d.ts +22 -0
  148. package/dist/source/validate-mixin.js +799 -0
  149. package/dist/source/workspace-target.d.ts +18 -0
  150. package/dist/source/workspace-target.js +305 -0
  151. package/dist/source-service.d.ts +147 -170
  152. package/dist/source-service.js +67 -6116
  153. package/dist/stage-emitter.d.ts +13 -0
  154. package/dist/stage-emitter.js +30 -0
  155. package/dist/stdio-supervisor.d.ts +61 -0
  156. package/dist/stdio-supervisor.js +326 -9
  157. package/dist/tool-contract-manifest.d.ts +1 -1
  158. package/dist/tool-contract-manifest.js +23 -6
  159. package/dist/tool-guidance.d.ts +82 -0
  160. package/dist/tool-guidance.js +734 -0
  161. package/dist/tool-schema-registry.d.ts +16 -0
  162. package/dist/tool-schema-registry.js +37 -0
  163. package/dist/tool-schemas.d.ts +3518 -0
  164. package/dist/tool-schemas.js +813 -0
  165. package/dist/types.d.ts +36 -0
  166. package/dist/version-service.js +7 -6
  167. package/dist/workspace-context-cache.d.ts +32 -0
  168. package/dist/workspace-context-cache.js +66 -0
  169. package/dist/workspace-mapping-service.d.ts +16 -0
  170. package/dist/workspace-mapping-service.js +173 -1
  171. package/docs/README-ja.md +414 -0
  172. package/docs/examples.md +483 -0
  173. package/docs/tool-reference.md +459 -0
  174. package/package.json +3 -2
@@ -0,0 +1,4 @@
1
+ import type { SourceService } from "../source-service.js";
2
+ import type { ValidateAccessTransformerInput, ValidateAccessTransformerOutput, ValidateAccessWidenerInput, ValidateAccessWidenerOutput } from "../source-service.js";
3
+ export declare function validateAccessWidener(svc: SourceService, input: ValidateAccessWidenerInput): Promise<ValidateAccessWidenerOutput>;
4
+ export declare function validateAccessTransformer(svc: SourceService, input: ValidateAccessTransformerInput): Promise<ValidateAccessTransformerOutput>;
@@ -0,0 +1,254 @@
1
+ import { parseAccessTransformer } from "../access-transformer-parser.js";
2
+ import { parseAccessWidener } from "../access-widener-parser.js";
3
+ import { ERROR_CODES, createError } from "../errors.js";
4
+ import { validateParsedAccessTransformer, validateParsedAccessWidener } from "../mixin-validator.js";
5
+ import { normalizeMapping, normalizeOptionalString } from "./shared-utils.js";
6
+ function normalizeAccessWidenerNamespace(namespace) {
7
+ const normalized = namespace?.trim().toLowerCase();
8
+ if (!normalized) {
9
+ return undefined;
10
+ }
11
+ if (normalized === "named") {
12
+ return "yarn";
13
+ }
14
+ if (normalized === "obfuscated" ||
15
+ normalized === "mojang" ||
16
+ normalized === "intermediary" ||
17
+ normalized === "yarn") {
18
+ return normalized;
19
+ }
20
+ return undefined;
21
+ }
22
+ function isSourceMappingNamespace(namespace) {
23
+ return (namespace === "obfuscated" ||
24
+ namespace === "mojang" ||
25
+ namespace === "intermediary" ||
26
+ namespace === "yarn");
27
+ }
28
+ export async function validateAccessWidener(svc, input) {
29
+ const version = input.version.trim();
30
+ if (!version) {
31
+ throw createError({ code: ERROR_CODES.INVALID_INPUT, message: "version must be non-empty." });
32
+ }
33
+ const content = input.content;
34
+ if (!content.trim()) {
35
+ throw createError({ code: ERROR_CODES.INVALID_INPUT, message: "content must be non-empty." });
36
+ }
37
+ const warnings = [];
38
+ const parsed = parseAccessWidener(content);
39
+ const headerNamespaceRaw = normalizeOptionalString(parsed.namespace);
40
+ const overrideMapping = input.mapping ? normalizeMapping(input.mapping) : undefined;
41
+ const headerNamespace = normalizeAccessWidenerNamespace(headerNamespaceRaw);
42
+ if (!headerNamespace && headerNamespaceRaw && !overrideMapping) {
43
+ warnings.push(`Unsupported access widener namespace "${headerNamespaceRaw}". Assuming intermediary.`);
44
+ }
45
+ const awNamespace = overrideMapping ?? headerNamespace ?? "intermediary";
46
+ if (overrideMapping && headerNamespace && overrideMapping !== headerNamespace) {
47
+ warnings.push(`Using mapping override "${overrideMapping}" instead of header namespace "${headerNamespaceRaw}".`);
48
+ }
49
+ const runtimeAware = input.projectPath != null || input.scope != null || input.preferProjectVersion === true;
50
+ let resolvedVersion = version;
51
+ let jarPath;
52
+ let lookupMapping = "obfuscated";
53
+ let provenance;
54
+ if (runtimeAware) {
55
+ provenance = await svc.resolveAccessWidenerRuntimeArtifact({
56
+ version,
57
+ awNamespace,
58
+ projectPath: input.projectPath,
59
+ scope: input.scope,
60
+ preferProjectVersion: input.preferProjectVersion
61
+ });
62
+ resolvedVersion = provenance.version;
63
+ jarPath = provenance.jarPath;
64
+ lookupMapping = provenance.mappingApplied;
65
+ }
66
+ else {
67
+ ({ jarPath } = await svc.versionService.resolveVersionJar(version));
68
+ }
69
+ const needsLookupMapping = awNamespace !== lookupMapping;
70
+ // Collect unique class FQNs from entries
71
+ const classFqns = new Set();
72
+ for (const entry of parsed.entries) {
73
+ const fqn = entry.target.replace(/\//g, ".");
74
+ classFqns.add(fqn);
75
+ }
76
+ const membersByClass = new Map();
77
+ for (const fqn of classFqns) {
78
+ let lookupFqn = fqn;
79
+ if (needsLookupMapping) {
80
+ try {
81
+ const mapped = await svc.mappingService.findMapping({
82
+ version: resolvedVersion,
83
+ kind: "class",
84
+ name: fqn,
85
+ sourceMapping: awNamespace,
86
+ targetMapping: lookupMapping,
87
+ sourcePriority: input.sourcePriority,
88
+ projectPath: input.projectPath
89
+ });
90
+ if (mapped.resolved && mapped.resolvedSymbol) {
91
+ lookupFqn = mapped.resolvedSymbol.name;
92
+ }
93
+ else {
94
+ warnings.push(`Could not map class "${fqn}" from ${awNamespace} to ${lookupMapping}.`);
95
+ }
96
+ }
97
+ catch {
98
+ warnings.push(`Mapping lookup failed for class "${fqn}".`);
99
+ }
100
+ }
101
+ try {
102
+ const sig = await svc.explorerService.getSignature({
103
+ fqn: lookupFqn,
104
+ jarPath,
105
+ access: "all"
106
+ });
107
+ warnings.push(...sig.warnings);
108
+ let constructors = sig.constructors;
109
+ let methods = sig.methods;
110
+ let fields = sig.fields;
111
+ if (needsLookupMapping) {
112
+ const [ctorResult, methodResult, fieldResult] = await Promise.all([
113
+ svc.remapSignatureMembers(sig.constructors, "method", resolvedVersion, lookupMapping, awNamespace, input.sourcePriority, warnings, input.projectPath),
114
+ svc.remapSignatureMembers(sig.methods, "method", resolvedVersion, lookupMapping, awNamespace, input.sourcePriority, warnings, input.projectPath),
115
+ svc.remapSignatureMembers(sig.fields, "field", resolvedVersion, lookupMapping, awNamespace, input.sourcePriority, warnings, input.projectPath)
116
+ ]);
117
+ constructors = ctorResult.members;
118
+ methods = methodResult.members;
119
+ fields = fieldResult.members;
120
+ }
121
+ membersByClass.set(fqn, {
122
+ className: fqn,
123
+ classAccessFlags: sig.classAccessFlags,
124
+ constructors,
125
+ methods,
126
+ fields
127
+ });
128
+ }
129
+ catch {
130
+ warnings.push(`Could not load signature for class "${lookupFqn}".`);
131
+ }
132
+ }
133
+ const result = validateParsedAccessWidener(parsed, membersByClass, warnings, {
134
+ includeRuntimeEvidence: runtimeAware
135
+ });
136
+ if (provenance) {
137
+ result.provenance = provenance;
138
+ }
139
+ return result;
140
+ }
141
+ export async function validateAccessTransformer(svc, input) {
142
+ const version = input.version.trim();
143
+ if (!version) {
144
+ throw createError({ code: ERROR_CODES.INVALID_INPUT, message: "version must be non-empty." });
145
+ }
146
+ const content = input.content;
147
+ if (!content.trim()) {
148
+ throw createError({ code: ERROR_CODES.INVALID_INPUT, message: "content must be non-empty." });
149
+ }
150
+ const warnings = [];
151
+ const parsed = parseAccessTransformer(content);
152
+ const atNamespace = await svc.resolveAccessTransformerNamespace({
153
+ atNamespace: input.atNamespace,
154
+ projectPath: input.projectPath
155
+ });
156
+ const runtimeAware = input.projectPath != null || input.scope != null || input.preferProjectVersion === true;
157
+ let resolvedVersion = version;
158
+ let jarPath;
159
+ let lookupMapping = "obfuscated";
160
+ let provenance;
161
+ if (runtimeAware) {
162
+ provenance = await svc.resolveAccessTransformerRuntimeArtifact({
163
+ version,
164
+ atNamespace,
165
+ projectPath: input.projectPath,
166
+ scope: input.scope,
167
+ preferProjectVersion: input.preferProjectVersion
168
+ });
169
+ resolvedVersion = provenance.version;
170
+ jarPath = provenance.jarPath;
171
+ lookupMapping = provenance.mappingApplied;
172
+ }
173
+ else {
174
+ if (atNamespace === "srg") {
175
+ throw createError({
176
+ code: ERROR_CODES.INVALID_INPUT,
177
+ message: "atNamespace=srg requires projectPath and scope=loader so a Forge runtime jar can be resolved."
178
+ });
179
+ }
180
+ ({ jarPath } = await svc.versionService.resolveVersionJar(version));
181
+ }
182
+ const needsLookupMapping = atNamespace !== lookupMapping;
183
+ const classFqns = new Set(parsed.entries.map((entry) => entry.owner));
184
+ const membersByClass = new Map();
185
+ for (const fqn of classFqns) {
186
+ let lookupFqn = fqn;
187
+ if (needsLookupMapping) {
188
+ if (!isSourceMappingNamespace(atNamespace) || !isSourceMappingNamespace(lookupMapping)) {
189
+ warnings.push(`Could not map class "${fqn}" from ${atNamespace} to ${lookupMapping}.`);
190
+ }
191
+ else {
192
+ try {
193
+ const mapped = await svc.mappingService.findMapping({
194
+ version: resolvedVersion,
195
+ kind: "class",
196
+ name: fqn,
197
+ sourceMapping: atNamespace,
198
+ targetMapping: lookupMapping,
199
+ sourcePriority: input.sourcePriority,
200
+ projectPath: input.projectPath
201
+ });
202
+ if (mapped.resolved && mapped.resolvedSymbol) {
203
+ lookupFqn = mapped.resolvedSymbol.name;
204
+ }
205
+ else {
206
+ warnings.push(`Could not map class "${fqn}" from ${atNamespace} to ${lookupMapping}.`);
207
+ }
208
+ }
209
+ catch {
210
+ warnings.push(`Mapping lookup failed for class "${fqn}".`);
211
+ }
212
+ }
213
+ }
214
+ try {
215
+ const sig = await svc.explorerService.getSignature({
216
+ fqn: lookupFqn,
217
+ jarPath,
218
+ access: "all"
219
+ });
220
+ warnings.push(...sig.warnings);
221
+ let constructors = sig.constructors;
222
+ let methods = sig.methods;
223
+ let fields = sig.fields;
224
+ if (needsLookupMapping && isSourceMappingNamespace(atNamespace) && isSourceMappingNamespace(lookupMapping)) {
225
+ const [ctorResult, methodResult, fieldResult] = await Promise.all([
226
+ svc.remapSignatureMembers(sig.constructors, "method", resolvedVersion, lookupMapping, atNamespace, input.sourcePriority, warnings, input.projectPath),
227
+ svc.remapSignatureMembers(sig.methods, "method", resolvedVersion, lookupMapping, atNamespace, input.sourcePriority, warnings, input.projectPath),
228
+ svc.remapSignatureMembers(sig.fields, "field", resolvedVersion, lookupMapping, atNamespace, input.sourcePriority, warnings, input.projectPath)
229
+ ]);
230
+ constructors = ctorResult.members;
231
+ methods = methodResult.members;
232
+ fields = fieldResult.members;
233
+ }
234
+ membersByClass.set(fqn, {
235
+ className: fqn,
236
+ classAccessFlags: sig.classAccessFlags,
237
+ constructors,
238
+ methods,
239
+ fields
240
+ });
241
+ }
242
+ catch {
243
+ warnings.push(`Could not load signature for class "${lookupFqn}".`);
244
+ }
245
+ }
246
+ const result = validateParsedAccessTransformer(parsed, membersByClass, warnings, {
247
+ includeRuntimeEvidence: runtimeAware
248
+ });
249
+ if (provenance) {
250
+ result.provenance = provenance;
251
+ }
252
+ return result;
253
+ }
254
+ //# sourceMappingURL=access-validate.js.map
@@ -0,0 +1,110 @@
1
+ import type { SourceService } from "../source-service.js";
2
+ import type { ArtifactContentsSummary, ResolveArtifactInput, ResolveArtifactOutput } from "../source-service.js";
3
+ import type { AccessTransformerNamespace, ArtifactProvenance, ArtifactScope, ArtifactTargetKind, ResolvedSourceArtifact, RuntimeValidationProvenance, SourceMapping } from "../types.js";
4
+ import type { WorkspaceProjectLoader } from "../workspace-mapping-service.js";
5
+ export type VersionSourceDiscovery = {
6
+ searchedPaths: string[];
7
+ candidateArtifacts: string[];
8
+ selectedSourceJarPath?: string;
9
+ selectedHasMinecraftNamespace?: boolean;
10
+ };
11
+ type RuntimeJarCandidate = {
12
+ jarPath: string;
13
+ score: number;
14
+ appliedScope: ArtifactScope;
15
+ origin: RuntimeValidationProvenance["origin"];
16
+ namespaceHint?: "intermediary" | "mojang" | "named";
17
+ };
18
+ export type MappingFallbackSuggestion = {
19
+ suggestedCall?: {
20
+ tool: string;
21
+ params: Record<string, unknown>;
22
+ };
23
+ exampleCalls?: Array<{
24
+ tool: string;
25
+ params: Record<string, unknown>;
26
+ reason: string;
27
+ }>;
28
+ nextAction: string;
29
+ _suggestedCallPrimaryDropped?: boolean;
30
+ };
31
+ export declare function hasExactVersionToken(path: string, version: string): boolean;
32
+ export declare function discoverVersionSourceJar(_svc: SourceService, input: {
33
+ version: string;
34
+ projectPath?: string;
35
+ }): Promise<VersionSourceDiscovery>;
36
+ export declare function discoverAccessWidenerRuntimeCandidates(_svc: SourceService, input: {
37
+ version: string;
38
+ projectPath?: string;
39
+ requestedScope: ArtifactScope;
40
+ }): Promise<{
41
+ searchedPaths: string[];
42
+ candidateArtifacts: string[];
43
+ selected?: RuntimeJarCandidate;
44
+ }>;
45
+ export declare function discoverAccessTransformerRuntimeCandidates(_svc: SourceService, input: {
46
+ version: string;
47
+ projectPath?: string;
48
+ requestedScope: ArtifactScope;
49
+ atNamespace: AccessTransformerNamespace;
50
+ loader: WorkspaceProjectLoader | "unknown";
51
+ }): Promise<{
52
+ searchedPaths: string[];
53
+ candidateArtifacts: string[];
54
+ selected?: RuntimeJarCandidate;
55
+ }>;
56
+ export declare function resolveAccessWidenerRuntimeArtifact(svc: SourceService, input: {
57
+ version: string;
58
+ awNamespace: SourceMapping;
59
+ projectPath?: string;
60
+ scope?: ArtifactScope;
61
+ preferProjectVersion?: boolean;
62
+ }): Promise<RuntimeValidationProvenance<SourceMapping>>;
63
+ export declare function resolveAccessTransformerNamespace(svc: SourceService, input: {
64
+ atNamespace?: AccessTransformerNamespace;
65
+ projectPath?: string;
66
+ }): Promise<AccessTransformerNamespace>;
67
+ export declare function resolveAccessTransformerRuntimeArtifact(svc: SourceService, input: {
68
+ version: string;
69
+ atNamespace: AccessTransformerNamespace;
70
+ projectPath?: string;
71
+ scope?: ArtifactScope;
72
+ preferProjectVersion?: boolean;
73
+ }): Promise<RuntimeValidationProvenance<AccessTransformerNamespace>>;
74
+ export declare function inferVersionFromContext(input: {
75
+ version?: string;
76
+ provenance?: ArtifactProvenance;
77
+ coordinate?: string;
78
+ }): string | undefined;
79
+ export declare function resolveVersionContext(svc: SourceService, input: {
80
+ version?: string;
81
+ provenance?: ArtifactProvenance;
82
+ coordinate?: string;
83
+ projectPath?: string;
84
+ preferProjectVersion?: boolean;
85
+ warnings: string[];
86
+ }): Promise<string | undefined>;
87
+ export declare function resolveBinaryFallbackArtifact(svc: SourceService, input: {
88
+ binaryJarPath?: string;
89
+ version?: string;
90
+ coordinate?: string;
91
+ requestedMapping: SourceMapping;
92
+ mappingApplied: SourceMapping;
93
+ provenance?: ArtifactProvenance;
94
+ qualityFlags: string[];
95
+ }): Promise<ResolvedSourceArtifact | undefined>;
96
+ export declare function buildArtifactContentsSummary(_svc: SourceService, input: {
97
+ origin: ResolvedSourceArtifact["origin"];
98
+ sourceJarPath?: string;
99
+ isDecompiled?: boolean;
100
+ qualityFlags: string[];
101
+ }): ArtifactContentsSummary;
102
+ export declare function buildMappingFallbackSuggestedCall(svc: SourceService, args: {
103
+ input: ResolveArtifactInput;
104
+ kind: ArtifactTargetKind;
105
+ value: string;
106
+ scope: ArtifactScope | undefined;
107
+ effectiveMapping: SourceMapping;
108
+ }): Promise<MappingFallbackSuggestion>;
109
+ export declare function resolveArtifact(svc: SourceService, input: ResolveArtifactInput): Promise<ResolveArtifactOutput>;
110
+ export {};