@adhisang/minecraft-modding-mcp 4.2.0 → 5.0.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.
- package/CHANGELOG.md +40 -0
- package/README.md +6 -4
- package/dist/access-transformer-parser.d.ts +2 -1
- package/dist/access-transformer-parser.js +10 -1
- package/dist/build-suggested-call.js +31 -10
- package/dist/cache-registry.d.ts +8 -0
- package/dist/cache-registry.js +99 -6
- package/dist/config.d.ts +1 -0
- package/dist/config.js +4 -0
- package/dist/entry-tools/analyze-mod-service.d.ts +24 -24
- package/dist/entry-tools/analyze-symbol-service.d.ts +57 -22
- package/dist/entry-tools/analyze-symbol-service.js +124 -28
- package/dist/entry-tools/batch-class-members-service.d.ts +3 -1
- package/dist/entry-tools/batch-class-members-service.js +6 -6
- package/dist/entry-tools/batch-class-source-service.d.ts +3 -1
- package/dist/entry-tools/batch-class-source-service.js +5 -6
- package/dist/entry-tools/batch-mappings-service.d.ts +3 -1
- package/dist/entry-tools/batch-mappings-service.js +4 -5
- package/dist/entry-tools/batch-symbol-exists-service.d.ts +3 -1
- package/dist/entry-tools/batch-symbol-exists-service.js +4 -5
- package/dist/entry-tools/compare-minecraft-service.d.ts +10 -10
- package/dist/entry-tools/entry-tool-schema.d.ts +1 -1
- package/dist/entry-tools/inspect-minecraft/handlers/artifact.js +1 -3
- package/dist/entry-tools/inspect-minecraft/handlers/class-members.js +2 -2
- package/dist/entry-tools/inspect-minecraft/handlers/class-overview.js +0 -5
- package/dist/entry-tools/inspect-minecraft/handlers/class-source.js +0 -1
- package/dist/entry-tools/inspect-minecraft/handlers/file.js +0 -1
- package/dist/entry-tools/inspect-minecraft/handlers/list-files.js +0 -1
- package/dist/entry-tools/inspect-minecraft/handlers/search.d.ts +8 -0
- package/dist/entry-tools/inspect-minecraft/handlers/search.js +13 -2
- package/dist/entry-tools/inspect-minecraft/handlers/versions.d.ts +1 -1
- package/dist/entry-tools/inspect-minecraft/handlers/versions.js +1 -1
- package/dist/entry-tools/inspect-minecraft/internal.d.ts +90 -89
- package/dist/entry-tools/inspect-minecraft/internal.js +30 -14
- package/dist/entry-tools/inspect-minecraft-service.d.ts +218 -218
- package/dist/entry-tools/inspect-minecraft-service.js +1 -1
- package/dist/entry-tools/manage-cache-service.d.ts +4 -4
- package/dist/entry-tools/response-contract.d.ts +1 -1
- package/dist/entry-tools/response-contract.js +1 -0
- package/dist/entry-tools/validate-project/cases/mixin.js +2 -1
- package/dist/entry-tools/validate-project/cases/project-summary.js +5 -3
- package/dist/entry-tools/validate-project-service.d.ts +42 -36
- package/dist/entry-tools/validate-project-service.js +3 -1
- package/dist/entry-tools/verify-mixin-target-service.d.ts +30 -0
- package/dist/entry-tools/verify-mixin-target-service.js +113 -22
- package/dist/error-mapping.d.ts +51 -0
- package/dist/error-mapping.js +157 -2
- package/dist/errors.js +4 -1
- package/dist/index.js +138 -71
- package/dist/java-process.d.ts +9 -0
- package/dist/java-process.js +11 -5
- package/dist/mapping/internal-types.d.ts +7 -0
- package/dist/mapping/lookup.d.ts +1 -1
- package/dist/mapping/lookup.js +7 -1
- package/dist/mapping/types.d.ts +6 -0
- package/dist/mapping-service.d.ts +26 -2
- package/dist/mapping-service.js +178 -36
- package/dist/mcp-helpers.d.ts +1 -0
- package/dist/mcp-helpers.js +25 -3
- package/dist/minecraft-explorer-service.js +24 -11
- package/dist/mixin/access-validators.js +33 -1
- package/dist/mixin/annotation-validators.js +53 -7
- package/dist/mixin/parsed-validator.js +2 -2
- package/dist/mixin-parser.js +48 -4
- package/dist/mod-decompile-service.js +2 -1
- package/dist/mod-remap-service.d.ts +20 -1
- package/dist/mod-remap-service.js +95 -40
- package/dist/nbt/java-nbt-codec.js +87 -2
- package/dist/observability.d.ts +6 -0
- package/dist/observability.js +10 -0
- package/dist/page-cursor.d.ts +17 -0
- package/dist/page-cursor.js +0 -0
- package/dist/registry-service.js +25 -1
- package/dist/resources.js +45 -9
- package/dist/response-utils.d.ts +29 -4
- package/dist/response-utils.js +95 -5
- package/dist/source/access-validate.js +12 -2
- package/dist/source/artifact-resolver.js +1 -1
- package/dist/source/cache-metrics.js +2 -2
- package/dist/source/class-source/members-builder.d.ts +44 -1
- package/dist/source/class-source/members-builder.js +51 -4
- package/dist/source/class-source/snippet-builder.d.ts +13 -0
- package/dist/source/class-source/snippet-builder.js +48 -4
- package/dist/source/class-source-helpers.js +67 -11
- package/dist/source/class-source.js +97 -20
- package/dist/source/indexer.d.ts +31 -6
- package/dist/source/indexer.js +95 -25
- package/dist/source/search.d.ts +1 -1
- package/dist/source/search.js +94 -22
- package/dist/source/validate-mixin.d.ts +2 -1
- package/dist/source/validate-mixin.js +45 -4
- package/dist/source/workspace-target.js +15 -9
- package/dist/source-jar-reader.d.ts +54 -1
- package/dist/source-jar-reader.js +121 -10
- package/dist/source-service.d.ts +28 -7
- package/dist/storage/files-repo.d.ts +12 -0
- package/dist/storage/files-repo.js +24 -0
- package/dist/storage/symbols-repo.d.ts +6 -0
- package/dist/storage/symbols-repo.js +6 -0
- package/dist/symbols/symbol-extractor.js +35 -6
- package/dist/text-truncate.d.ts +7 -0
- package/dist/text-truncate.js +21 -0
- package/dist/tiny-remapper-resolver.js +10 -0
- package/dist/tiny-remapper-service.js +3 -3
- package/dist/tool-contract-manifest.js +2 -2
- package/dist/tool-execution-gate.js +12 -1
- package/dist/tool-guidance.d.ts +4 -1
- package/dist/tool-guidance.js +37 -12
- package/dist/tool-schemas.d.ts +559 -494
- package/dist/tool-schemas.js +99 -63
- package/dist/types.d.ts +1 -0
- package/dist/version-diff-service.js +5 -0
- package/dist/version-service.d.ts +3 -0
- package/dist/version-service.js +18 -2
- package/dist/warning-details.d.ts +18 -0
- package/dist/warning-details.js +63 -0
- package/docs/README-ja.md +2 -2
- package/docs/examples.md +26 -2
- package/docs/tool-reference.md +23 -17
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { buildSuggestedCall } from "../build-suggested-call.js";
|
|
2
2
|
import { createError, ERROR_CODES } from "../errors.js";
|
|
3
|
-
import {
|
|
3
|
+
import { projectByDetail } from "../response-utils.js";
|
|
4
4
|
import { runBatch, splitEntryWarnings } from "./batch-runner.js";
|
|
5
5
|
function deriveMinecraftVersion(resolvedVersion, workspaceVersion) {
|
|
6
6
|
const candidate = resolvedVersion?.trim() || workspaceVersion?.trim();
|
|
@@ -23,7 +23,8 @@ export class BatchSymbolExistsService {
|
|
|
23
23
|
async execute(input) {
|
|
24
24
|
const concurrency = input.concurrency ?? 4;
|
|
25
25
|
const failFast = input.failFast ?? false;
|
|
26
|
-
const
|
|
26
|
+
const detail = input.detail ?? "summary";
|
|
27
|
+
const include = new Set(input.include ?? []);
|
|
27
28
|
return runBatch({
|
|
28
29
|
entries: input.entries,
|
|
29
30
|
concurrency,
|
|
@@ -79,9 +80,7 @@ export class BatchSymbolExistsService {
|
|
|
79
80
|
projectPath: input.projectPath
|
|
80
81
|
}));
|
|
81
82
|
const { result, warnings } = splitEntryWarnings(raw);
|
|
82
|
-
const projected =
|
|
83
|
-
? compactResponse(compactMappingResponse(result))
|
|
84
|
-
: result;
|
|
83
|
+
const projected = projectByDetail("check-symbol-exists", result, detail, include);
|
|
85
84
|
return { result: projected, warnings };
|
|
86
85
|
},
|
|
87
86
|
buildErrorSuggestedCall: (entry, sharedArtifact) => {
|
|
@@ -33,16 +33,16 @@ export declare const compareMinecraftShape: {
|
|
|
33
33
|
fromVersion: string;
|
|
34
34
|
toVersion: string;
|
|
35
35
|
mapping?: "obfuscated" | "mojang" | "intermediary" | "yarn" | undefined;
|
|
36
|
-
gradleUserHome?: string | undefined;
|
|
37
36
|
sourcePriority?: "loom-first" | "maven-first" | undefined;
|
|
37
|
+
gradleUserHome?: string | undefined;
|
|
38
38
|
}, {
|
|
39
39
|
kind: "class";
|
|
40
40
|
className: string;
|
|
41
41
|
fromVersion: string;
|
|
42
42
|
toVersion: string;
|
|
43
43
|
mapping?: "obfuscated" | "mojang" | "intermediary" | "yarn" | undefined;
|
|
44
|
-
gradleUserHome?: string | undefined;
|
|
45
44
|
sourcePriority?: "loom-first" | "maven-first" | undefined;
|
|
45
|
+
gradleUserHome?: string | undefined;
|
|
46
46
|
}>, z.ZodObject<{
|
|
47
47
|
kind: z.ZodLiteral<"registry">;
|
|
48
48
|
fromVersion: z.ZodString;
|
|
@@ -97,16 +97,16 @@ export declare const compareMinecraftSchema: z.ZodObject<{
|
|
|
97
97
|
fromVersion: string;
|
|
98
98
|
toVersion: string;
|
|
99
99
|
mapping?: "obfuscated" | "mojang" | "intermediary" | "yarn" | undefined;
|
|
100
|
-
gradleUserHome?: string | undefined;
|
|
101
100
|
sourcePriority?: "loom-first" | "maven-first" | undefined;
|
|
101
|
+
gradleUserHome?: string | undefined;
|
|
102
102
|
}, {
|
|
103
103
|
kind: "class";
|
|
104
104
|
className: string;
|
|
105
105
|
fromVersion: string;
|
|
106
106
|
toVersion: string;
|
|
107
107
|
mapping?: "obfuscated" | "mojang" | "intermediary" | "yarn" | undefined;
|
|
108
|
-
gradleUserHome?: string | undefined;
|
|
109
108
|
sourcePriority?: "loom-first" | "maven-first" | undefined;
|
|
109
|
+
gradleUserHome?: string | undefined;
|
|
110
110
|
}>, z.ZodObject<{
|
|
111
111
|
kind: z.ZodLiteral<"registry">;
|
|
112
112
|
fromVersion: z.ZodString;
|
|
@@ -130,7 +130,6 @@ export declare const compareMinecraftSchema: z.ZodObject<{
|
|
|
130
130
|
maxEntriesPerRegistry: z.ZodOptional<z.ZodNumber>;
|
|
131
131
|
includeFullDiff: z.ZodDefault<z.ZodBoolean>;
|
|
132
132
|
}, "strip", z.ZodTypeAny, {
|
|
133
|
-
maxClassResults: number;
|
|
134
133
|
subject: {
|
|
135
134
|
kind: "version-pair";
|
|
136
135
|
fromVersion: string;
|
|
@@ -142,18 +141,19 @@ export declare const compareMinecraftSchema: z.ZodObject<{
|
|
|
142
141
|
fromVersion: string;
|
|
143
142
|
toVersion: string;
|
|
144
143
|
mapping?: "obfuscated" | "mojang" | "intermediary" | "yarn" | undefined;
|
|
145
|
-
gradleUserHome?: string | undefined;
|
|
146
144
|
sourcePriority?: "loom-first" | "maven-first" | undefined;
|
|
145
|
+
gradleUserHome?: string | undefined;
|
|
147
146
|
} | {
|
|
148
147
|
kind: "registry";
|
|
149
148
|
fromVersion: string;
|
|
150
149
|
toVersion: string;
|
|
151
150
|
registry?: string | undefined;
|
|
152
151
|
};
|
|
152
|
+
maxClassResults: number;
|
|
153
153
|
includeFullDiff: boolean;
|
|
154
154
|
limit?: number | undefined;
|
|
155
155
|
task?: "auto" | "versions" | "class-diff" | "registry-diff" | "migration-overview" | undefined;
|
|
156
|
-
detail?: "
|
|
156
|
+
detail?: "summary" | "standard" | "full" | undefined;
|
|
157
157
|
include?: string[] | undefined;
|
|
158
158
|
maxEntriesPerRegistry?: number | undefined;
|
|
159
159
|
}, {
|
|
@@ -168,8 +168,8 @@ export declare const compareMinecraftSchema: z.ZodObject<{
|
|
|
168
168
|
fromVersion: string;
|
|
169
169
|
toVersion: string;
|
|
170
170
|
mapping?: "obfuscated" | "mojang" | "intermediary" | "yarn" | undefined;
|
|
171
|
-
gradleUserHome?: string | undefined;
|
|
172
171
|
sourcePriority?: "loom-first" | "maven-first" | undefined;
|
|
172
|
+
gradleUserHome?: string | undefined;
|
|
173
173
|
} | {
|
|
174
174
|
kind: "registry";
|
|
175
175
|
fromVersion: string;
|
|
@@ -177,10 +177,10 @@ export declare const compareMinecraftSchema: z.ZodObject<{
|
|
|
177
177
|
registry?: string | undefined;
|
|
178
178
|
};
|
|
179
179
|
limit?: number | undefined;
|
|
180
|
-
maxClassResults?: number | undefined;
|
|
181
180
|
task?: "auto" | "versions" | "class-diff" | "registry-diff" | "migration-overview" | undefined;
|
|
182
|
-
detail?: "
|
|
181
|
+
detail?: "summary" | "standard" | "full" | undefined;
|
|
183
182
|
include?: string[] | undefined;
|
|
183
|
+
maxClassResults?: number | undefined;
|
|
184
184
|
maxEntriesPerRegistry?: number | undefined;
|
|
185
185
|
includeFullDiff?: boolean | undefined;
|
|
186
186
|
}>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export declare const detailSchema: z.ZodEnum<["summary", "standard", "full"]>;
|
|
3
|
-
export declare const includeGroupSchema: z.ZodEnum<["warnings", "provenance", "candidates", "members", "source", "files", "samples", "diff", "issues", "timeline", "matrix", "entries", "workspace", "health", "recovery", "paths", "owners", "preview", "cacheEntries", "timings", "artifact", "classes", "registry"]>;
|
|
3
|
+
export declare const includeGroupSchema: z.ZodEnum<["warnings", "provenance", "candidates", "members", "descriptors", "source", "files", "samples", "diff", "issues", "timeline", "matrix", "entries", "workspace", "health", "recovery", "paths", "owners", "preview", "cacheEntries", "timings", "artifact", "classes", "registry"]>;
|
|
4
4
|
export declare const executionModeSchema: z.ZodEnum<["preview", "apply"]>;
|
|
5
5
|
export declare const positiveIntSchema: z.ZodNumber;
|
|
6
6
|
export declare function buildIncludeSchema(allowed: readonly string[]): z.ZodOptional<z.ZodArray<z.ZodEnum<[string, ...string[]]>, "many">>;
|
|
@@ -8,8 +8,7 @@ export async function handleArtifact(deps, subject, detail, include) {
|
|
|
8
8
|
status: "blocked",
|
|
9
9
|
headline: "Could not resolve an artifact without a Minecraft version.",
|
|
10
10
|
subject: createSummarySubject({
|
|
11
|
-
task: "artifact"
|
|
12
|
-
requested: subject
|
|
11
|
+
task: "artifact"
|
|
13
12
|
}),
|
|
14
13
|
nextActions: nextActionsOrUndefined([
|
|
15
14
|
createNextAction("inspect-minecraft", {
|
|
@@ -42,7 +41,6 @@ export async function handleArtifact(deps, subject, detail, include) {
|
|
|
42
41
|
headline: `Resolved artifact ${resolved.artifactId}.`,
|
|
43
42
|
subject: createSummarySubject({
|
|
44
43
|
task: "artifact",
|
|
45
|
-
requested: subject,
|
|
46
44
|
artifactId: resolved.artifactId,
|
|
47
45
|
version: resolved.version
|
|
48
46
|
}),
|
|
@@ -15,14 +15,14 @@ export async function handleClassMembers(deps, subject, detail, include, limit)
|
|
|
15
15
|
gradleUserHome: classSubject.gradleUserHome,
|
|
16
16
|
preferProjectVersion: classSubject.preferProjectVersion,
|
|
17
17
|
strictVersion: classSubject.strictVersion,
|
|
18
|
-
maxMembers: limit
|
|
18
|
+
maxMembers: limit,
|
|
19
|
+
includeDescriptors: include.includes("descriptors")
|
|
19
20
|
});
|
|
20
21
|
const summary = {
|
|
21
22
|
status: members.truncated ? "partial" : "ok",
|
|
22
23
|
headline: `Collected ${members.counts.total} members for ${members.className}.`,
|
|
23
24
|
subject: createSummarySubject({
|
|
24
25
|
task: "class-members",
|
|
25
|
-
requested: subject,
|
|
26
26
|
className: members.className,
|
|
27
27
|
artifactId: members.artifactId
|
|
28
28
|
}),
|
|
@@ -14,7 +14,6 @@ export async function handleClassOverview(deps, subject, detail, include) {
|
|
|
14
14
|
headline: `Could not resolve artifact context for ${className}.`,
|
|
15
15
|
subject: createSummarySubject({
|
|
16
16
|
task: "class-overview",
|
|
17
|
-
requested: subject,
|
|
18
17
|
className
|
|
19
18
|
})
|
|
20
19
|
};
|
|
@@ -64,7 +63,6 @@ export async function handleClassOverview(deps, subject, detail, include) {
|
|
|
64
63
|
headline: `Resolved class overview for ${partialSourceFallback.className}.`,
|
|
65
64
|
subject: createSummarySubject({
|
|
66
65
|
task: "class-overview",
|
|
67
|
-
requested: subject,
|
|
68
66
|
className: partialSourceFallback.className,
|
|
69
67
|
artifactId: metadata.artifactId
|
|
70
68
|
}),
|
|
@@ -110,7 +108,6 @@ export async function handleClassOverview(deps, subject, detail, include) {
|
|
|
110
108
|
headline: `No class match was found for ${className}.`,
|
|
111
109
|
subject: createSummarySubject({
|
|
112
110
|
task: "class-overview",
|
|
113
|
-
requested: subject,
|
|
114
111
|
className,
|
|
115
112
|
artifactId: artifact.artifactId
|
|
116
113
|
})
|
|
@@ -152,7 +149,6 @@ export async function handleClassOverview(deps, subject, detail, include) {
|
|
|
152
149
|
headline: `Found ${matches.total} class matches for ${className}.`,
|
|
153
150
|
subject: createSummarySubject({
|
|
154
151
|
task: "class-overview",
|
|
155
|
-
requested: subject,
|
|
156
152
|
className,
|
|
157
153
|
artifactId: artifact.artifactId
|
|
158
154
|
}),
|
|
@@ -192,7 +188,6 @@ export async function handleClassOverview(deps, subject, detail, include) {
|
|
|
192
188
|
headline: `Resolved class overview for ${match.qualifiedName}.`,
|
|
193
189
|
subject: createSummarySubject({
|
|
194
190
|
task: "class-overview",
|
|
195
|
-
requested: subject,
|
|
196
191
|
className: match.qualifiedName,
|
|
197
192
|
artifactId: artifact.artifactId
|
|
198
193
|
}),
|
|
@@ -23,7 +23,6 @@ export async function handleClassSource(deps, subject, detail, include) {
|
|
|
23
23
|
headline: `Resolved source for ${source.className}.`,
|
|
24
24
|
subject: createSummarySubject({
|
|
25
25
|
task: "class-source",
|
|
26
|
-
requested: subject,
|
|
27
26
|
className: source.className,
|
|
28
27
|
artifactId: source.artifactId
|
|
29
28
|
}),
|
|
@@ -52,7 +52,6 @@ export async function handleListFiles(deps, subject, detail, include, limit, cur
|
|
|
52
52
|
headline: `Listed ${files.items.length} files for ${artifact.artifactId}.`,
|
|
53
53
|
subject: createSummarySubject({
|
|
54
54
|
task: "list-files",
|
|
55
|
-
requested: subject,
|
|
56
55
|
artifactId: artifact.artifactId
|
|
57
56
|
}),
|
|
58
57
|
counts: {
|
|
@@ -2,4 +2,12 @@ import { type DetailLevel } from "../../response-contract.js";
|
|
|
2
2
|
import { type Subject, type InspectMinecraftDeps } from "../internal.js";
|
|
3
3
|
export declare function handleSearch(deps: InspectMinecraftDeps, subject: Subject, detail: DetailLevel, include: string[], limit: number | undefined, cursor: string | undefined): Promise<{
|
|
4
4
|
warnings: string[];
|
|
5
|
+
meta: {
|
|
6
|
+
pagination: {
|
|
7
|
+
cursorIgnored?: boolean | undefined;
|
|
8
|
+
nextCursor?: string | undefined;
|
|
9
|
+
returnedCount: number;
|
|
10
|
+
hasMore: boolean;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
5
13
|
}>;
|
|
@@ -82,7 +82,6 @@ export async function handleSearch(deps, subject, detail, include, limit, cursor
|
|
|
82
82
|
: `No source hits were found for ${searchSubject.query}.`,
|
|
83
83
|
subject: createSummarySubject({
|
|
84
84
|
task: "search",
|
|
85
|
-
requested: requestedSubject,
|
|
86
85
|
query: searchSubject.query,
|
|
87
86
|
artifactId: artifact.artifactId
|
|
88
87
|
}),
|
|
@@ -129,6 +128,7 @@ export async function handleSearch(deps, subject, detail, include, limit, cursor
|
|
|
129
128
|
}
|
|
130
129
|
: {})
|
|
131
130
|
};
|
|
131
|
+
const returnedCount = (detail === "summary" ? sampledHits.items : effectiveHits).length;
|
|
132
132
|
return {
|
|
133
133
|
...buildEntryToolResult({
|
|
134
134
|
task: "search",
|
|
@@ -150,7 +150,18 @@ export async function handleSearch(deps, subject, detail, include, limit, cursor
|
|
|
150
150
|
},
|
|
151
151
|
alwaysBlocks: ["subject"]
|
|
152
152
|
}),
|
|
153
|
-
warnings: [...artifact.warnings, ...(binaryBackedClassHit?.warnings ?? [])]
|
|
153
|
+
warnings: [...artifact.warnings, ...(binaryBackedClassHit?.warnings ?? [])],
|
|
154
|
+
// Always surface continuation state in meta, even in summary mode where the
|
|
155
|
+
// search block (and its nextCursor) is omitted, so callers never stop early
|
|
156
|
+
// believing they have all results.
|
|
157
|
+
meta: {
|
|
158
|
+
pagination: {
|
|
159
|
+
returnedCount,
|
|
160
|
+
hasMore: search.nextCursor != null,
|
|
161
|
+
...(search.nextCursor != null ? { nextCursor: search.nextCursor } : {}),
|
|
162
|
+
...(search.cursorIgnored ? { cursorIgnored: true } : {})
|
|
163
|
+
}
|
|
164
|
+
}
|
|
154
165
|
};
|
|
155
166
|
}
|
|
156
167
|
//# sourceMappingURL=search.js.map
|
|
@@ -2,5 +2,5 @@ import { type DetailLevel } from "../../response-contract.js";
|
|
|
2
2
|
import { type InspectMinecraftDeps } from "../internal.js";
|
|
3
3
|
import { type InspectMinecraftInput } from "../../inspect-minecraft-service.js";
|
|
4
4
|
export declare function handleVersions(deps: InspectMinecraftDeps, input: InspectMinecraftInput, detail: DetailLevel, include: string[]): Promise<{
|
|
5
|
-
warnings:
|
|
5
|
+
warnings: string[];
|
|
6
6
|
}>;
|