@adhisang/minecraft-modding-mcp 3.2.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 (194) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +52 -32
  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 +59 -7
  7. package/dist/config.d.ts +10 -1
  8. package/dist/config.js +52 -1
  9. package/dist/entry-tools/analyze-symbol-service.d.ts +18 -18
  10. package/dist/entry-tools/analyze-symbol-service.js +13 -2
  11. package/dist/entry-tools/batch-class-members-service.d.ts +34 -0
  12. package/dist/entry-tools/batch-class-members-service.js +97 -0
  13. package/dist/entry-tools/batch-class-source-service.d.ts +37 -0
  14. package/dist/entry-tools/batch-class-source-service.js +100 -0
  15. package/dist/entry-tools/batch-mappings-service.d.ts +36 -0
  16. package/dist/entry-tools/batch-mappings-service.js +66 -0
  17. package/dist/entry-tools/batch-runner.d.ts +72 -0
  18. package/dist/entry-tools/batch-runner.js +90 -0
  19. package/dist/entry-tools/batch-symbol-exists-service.d.ts +46 -0
  20. package/dist/entry-tools/batch-symbol-exists-service.js +113 -0
  21. package/dist/entry-tools/compare-minecraft-service.d.ts +6 -6
  22. package/dist/entry-tools/inspect-minecraft/handlers/artifact.d.ts +5 -0
  23. package/dist/entry-tools/inspect-minecraft/handlers/artifact.js +83 -0
  24. package/dist/entry-tools/inspect-minecraft/handlers/class-members.d.ts +6 -0
  25. package/dist/entry-tools/inspect-minecraft/handlers/class-members.js +80 -0
  26. package/dist/entry-tools/inspect-minecraft/handlers/class-overview.d.ts +5 -0
  27. package/dist/entry-tools/inspect-minecraft/handlers/class-overview.js +248 -0
  28. package/dist/entry-tools/inspect-minecraft/handlers/class-source.d.ts +5 -0
  29. package/dist/entry-tools/inspect-minecraft/handlers/class-source.js +60 -0
  30. package/dist/entry-tools/inspect-minecraft/handlers/file.d.ts +5 -0
  31. package/dist/entry-tools/inspect-minecraft/handlers/file.js +54 -0
  32. package/dist/entry-tools/inspect-minecraft/handlers/list-files.d.ts +5 -0
  33. package/dist/entry-tools/inspect-minecraft/handlers/list-files.js +100 -0
  34. package/dist/entry-tools/inspect-minecraft/handlers/search.d.ts +5 -0
  35. package/dist/entry-tools/inspect-minecraft/handlers/search.js +155 -0
  36. package/dist/entry-tools/inspect-minecraft/handlers/versions.d.ts +6 -0
  37. package/dist/entry-tools/inspect-minecraft/handlers/versions.js +49 -0
  38. package/dist/entry-tools/inspect-minecraft/internal.d.ts +1042 -0
  39. package/dist/entry-tools/inspect-minecraft/internal.js +448 -0
  40. package/dist/entry-tools/inspect-minecraft-service.d.ts +213 -328
  41. package/dist/entry-tools/inspect-minecraft-service.js +20 -1238
  42. package/dist/entry-tools/manage-cache-service.d.ts +16 -16
  43. package/dist/entry-tools/validate-project/cases/access-transformer.d.ts +6 -0
  44. package/dist/entry-tools/validate-project/cases/access-transformer.js +106 -0
  45. package/dist/entry-tools/validate-project/cases/access-widener.d.ts +6 -0
  46. package/dist/entry-tools/validate-project/cases/access-widener.js +86 -0
  47. package/dist/entry-tools/validate-project/cases/mixin.d.ts +6 -0
  48. package/dist/entry-tools/validate-project/cases/mixin.js +90 -0
  49. package/dist/entry-tools/validate-project/cases/project-summary.d.ts +97 -0
  50. package/dist/entry-tools/validate-project/cases/project-summary.js +346 -0
  51. package/dist/entry-tools/validate-project/internal.d.ts +135 -0
  52. package/dist/entry-tools/validate-project/internal.js +287 -0
  53. package/dist/entry-tools/validate-project-service.d.ts +63 -47
  54. package/dist/entry-tools/validate-project-service.js +12 -482
  55. package/dist/entry-tools/verify-mixin-target-service.d.ts +133 -0
  56. package/dist/entry-tools/verify-mixin-target-service.js +323 -0
  57. package/dist/error-mapping.d.ts +40 -0
  58. package/dist/error-mapping.js +139 -0
  59. package/dist/errors.d.ts +6 -0
  60. package/dist/errors.js +6 -0
  61. package/dist/index.d.ts +2 -0
  62. package/dist/index.js +170 -1314
  63. package/dist/lru-list.d.ts +31 -0
  64. package/dist/lru-list.js +102 -0
  65. package/dist/mapping/internal-types.d.ts +54 -0
  66. package/dist/mapping/internal-types.js +14 -0
  67. package/dist/mapping/loaders/mojang.d.ts +2 -0
  68. package/dist/mapping/loaders/mojang.js +64 -0
  69. package/dist/mapping/loaders/tiny-loom.d.ts +2 -0
  70. package/dist/mapping/loaders/tiny-loom.js +73 -0
  71. package/dist/mapping/loaders/tiny-maven.d.ts +2 -0
  72. package/dist/mapping/loaders/tiny-maven.js +104 -0
  73. package/dist/mapping/loaders/types.d.ts +14 -0
  74. package/dist/mapping/loaders/types.js +2 -0
  75. package/dist/mapping/lookup.d.ts +52 -0
  76. package/dist/mapping/lookup.js +496 -0
  77. package/dist/mapping/parsers/normalize.d.ts +10 -0
  78. package/dist/mapping/parsers/normalize.js +52 -0
  79. package/dist/mapping/parsers/proguard.d.ts +20 -0
  80. package/dist/mapping/parsers/proguard.js +138 -0
  81. package/dist/mapping/parsers/symbol-records.d.ts +27 -0
  82. package/dist/mapping/parsers/symbol-records.js +216 -0
  83. package/dist/mapping/parsers/tiny.d.ts +9 -0
  84. package/dist/mapping/parsers/tiny.js +96 -0
  85. package/dist/mapping/types.d.ts +147 -0
  86. package/dist/mapping/types.js +2 -0
  87. package/dist/mapping-pipeline-service.d.ts +10 -1
  88. package/dist/mapping-pipeline-service.js +16 -3
  89. package/dist/mapping-service.d.ts +15 -144
  90. package/dist/mapping-service.js +179 -1119
  91. package/dist/mixin/access-validators.d.ts +9 -0
  92. package/dist/mixin/access-validators.js +257 -0
  93. package/dist/mixin/annotation-validators.d.ts +5 -0
  94. package/dist/mixin/annotation-validators.js +162 -0
  95. package/dist/mixin/helpers.d.ts +28 -0
  96. package/dist/mixin/helpers.js +315 -0
  97. package/dist/mixin/parsed-validator.d.ts +8 -0
  98. package/dist/mixin/parsed-validator.js +337 -0
  99. package/dist/mixin/types.d.ts +208 -0
  100. package/dist/mixin/types.js +28 -0
  101. package/dist/mixin-validator.d.ts +9 -201
  102. package/dist/mixin-validator.js +8 -1005
  103. package/dist/observability.d.ts +18 -1
  104. package/dist/observability.js +44 -1
  105. package/dist/response-utils.d.ts +44 -10
  106. package/dist/response-utils.js +131 -17
  107. package/dist/source/access-validate.d.ts +4 -0
  108. package/dist/source/access-validate.js +254 -0
  109. package/dist/source/artifact-resolver.d.ts +110 -0
  110. package/dist/source/artifact-resolver.js +1174 -0
  111. package/dist/source/cache-metrics.d.ts +26 -0
  112. package/dist/source/cache-metrics.js +172 -0
  113. package/dist/source/class-source/members-builder.d.ts +34 -0
  114. package/dist/source/class-source/members-builder.js +46 -0
  115. package/dist/source/class-source/snippet-builder.d.ts +19 -0
  116. package/dist/source/class-source/snippet-builder.js +46 -0
  117. package/dist/source/class-source-helpers.d.ts +34 -0
  118. package/dist/source/class-source-helpers.js +140 -0
  119. package/dist/source/class-source.d.ts +42 -0
  120. package/dist/source/class-source.js +883 -0
  121. package/dist/source/descriptor-utils.d.ts +6 -0
  122. package/dist/source/descriptor-utils.js +37 -0
  123. package/dist/source/file-access.d.ts +4 -0
  124. package/dist/source/file-access.js +102 -0
  125. package/dist/source/indexer.d.ts +82 -0
  126. package/dist/source/indexer.js +505 -0
  127. package/dist/source/lifecycle/diff-utils.d.ts +9 -0
  128. package/dist/source/lifecycle/diff-utils.js +107 -0
  129. package/dist/source/lifecycle/diff.d.ts +2 -0
  130. package/dist/source/lifecycle/diff.js +265 -0
  131. package/dist/source/lifecycle/mapping-helpers.d.ts +22 -0
  132. package/dist/source/lifecycle/mapping-helpers.js +327 -0
  133. package/dist/source/lifecycle/runtime-check.d.ts +2 -0
  134. package/dist/source/lifecycle/runtime-check.js +142 -0
  135. package/dist/source/lifecycle/trace.d.ts +2 -0
  136. package/dist/source/lifecycle/trace.js +231 -0
  137. package/dist/source/lifecycle.d.ts +4 -0
  138. package/dist/source/lifecycle.js +5 -0
  139. package/dist/source/search.d.ts +51 -0
  140. package/dist/source/search.js +676 -0
  141. package/dist/source/shared-utils.d.ts +6 -0
  142. package/dist/source/shared-utils.js +55 -0
  143. package/dist/source/state.d.ts +21 -0
  144. package/dist/source/state.js +19 -0
  145. package/dist/source/symbol-resolver.d.ts +3 -0
  146. package/dist/source/symbol-resolver.js +212 -0
  147. package/dist/source/validate-mixin/pipeline/mapping-health.d.ts +3 -0
  148. package/dist/source/validate-mixin/pipeline/mapping-health.js +41 -0
  149. package/dist/source/validate-mixin/pipeline/parse.d.ts +2 -0
  150. package/dist/source/validate-mixin/pipeline/parse.js +10 -0
  151. package/dist/source/validate-mixin/pipeline/resolve.d.ts +3 -0
  152. package/dist/source/validate-mixin/pipeline/resolve.js +78 -0
  153. package/dist/source/validate-mixin/pipeline/target-lookup.d.ts +6 -0
  154. package/dist/source/validate-mixin/pipeline/target-lookup.js +260 -0
  155. package/dist/source/validate-mixin/pipeline-context.d.ts +72 -0
  156. package/dist/source/validate-mixin/pipeline-context.js +93 -0
  157. package/dist/source/validate-mixin.d.ts +22 -0
  158. package/dist/source/validate-mixin.js +799 -0
  159. package/dist/source/workspace-target.d.ts +18 -0
  160. package/dist/source/workspace-target.js +305 -0
  161. package/dist/source-resolver.d.ts +9 -1
  162. package/dist/source-resolver.js +14 -6
  163. package/dist/source-service.d.ts +178 -105
  164. package/dist/source-service.js +72 -5312
  165. package/dist/stage-emitter.d.ts +13 -0
  166. package/dist/stage-emitter.js +30 -0
  167. package/dist/stdio-supervisor.d.ts +61 -0
  168. package/dist/stdio-supervisor.js +326 -9
  169. package/dist/storage/artifacts-repo.d.ts +4 -1
  170. package/dist/storage/artifacts-repo.js +33 -5
  171. package/dist/storage/files-repo.d.ts +0 -2
  172. package/dist/storage/files-repo.js +0 -11
  173. package/dist/storage/migrations.d.ts +1 -1
  174. package/dist/storage/migrations.js +10 -2
  175. package/dist/storage/schema.d.ts +2 -0
  176. package/dist/storage/schema.js +25 -0
  177. package/dist/tool-contract-manifest.d.ts +1 -1
  178. package/dist/tool-contract-manifest.js +23 -6
  179. package/dist/tool-guidance.d.ts +82 -0
  180. package/dist/tool-guidance.js +734 -0
  181. package/dist/tool-schema-registry.d.ts +16 -0
  182. package/dist/tool-schema-registry.js +37 -0
  183. package/dist/tool-schemas.d.ts +3518 -0
  184. package/dist/tool-schemas.js +813 -0
  185. package/dist/types.d.ts +39 -0
  186. package/dist/version-service.js +7 -6
  187. package/dist/workspace-context-cache.d.ts +32 -0
  188. package/dist/workspace-context-cache.js +66 -0
  189. package/dist/workspace-mapping-service.d.ts +16 -0
  190. package/dist/workspace-mapping-service.js +173 -1
  191. package/docs/README-ja.md +414 -0
  192. package/docs/examples.md +483 -0
  193. package/docs/tool-reference.md +459 -0
  194. package/package.json +5 -2
@@ -125,8 +125,6 @@ export class FilesRepo {
125
125
  db;
126
126
  deleteStmt;
127
127
  insertFilesStmt;
128
- insertFtsStmt;
129
- deleteFtsStmt;
130
128
  getContentStmt;
131
129
  listStmt;
132
130
  listRowsStmt;
@@ -138,17 +136,10 @@ export class FilesRepo {
138
136
  this.db = db;
139
137
  this.deleteStmt = this.db.prepare(`
140
138
  DELETE FROM files WHERE artifact_id = ?
141
- `);
142
- this.deleteFtsStmt = this.db.prepare(`
143
- DELETE FROM files_fts WHERE artifact_id = ?
144
139
  `);
145
140
  this.insertFilesStmt = this.db.prepare(`
146
141
  INSERT INTO files (artifact_id, file_path, content, content_bytes, content_hash)
147
142
  VALUES (?, ?, ?, ?, ?)
148
- `);
149
- this.insertFtsStmt = this.db.prepare(`
150
- INSERT INTO files_fts (artifact_id, file_path, content)
151
- VALUES (?, ?, ?)
152
143
  `);
153
144
  this.getContentStmt = this.db.prepare(`
154
145
  SELECT artifact_id, file_path, content, content_bytes, content_hash
@@ -187,7 +178,6 @@ export class FilesRepo {
187
178
  }
188
179
  clearFilesForArtifact(artifactId) {
189
180
  this.deleteStmt.run([artifactId]);
190
- this.deleteFtsStmt.run([artifactId]);
191
181
  }
192
182
  insertFilesForArtifact(artifactId, files) {
193
183
  for (const file of files) {
@@ -199,7 +189,6 @@ export class FilesRepo {
199
189
  file.contentBytes,
200
190
  contentHash
201
191
  ]);
202
- this.insertFtsStmt.run([artifactId, file.filePath, file.content]);
203
192
  }
204
193
  }
205
194
  replaceFilesForArtifact(artifactId, files) {
@@ -6,6 +6,6 @@ type MigrationRunner = {
6
6
  };
7
7
  transaction<T>(fn: () => T): () => T;
8
8
  };
9
- export declare const LATEST_SCHEMA_VERSION = 2;
9
+ export declare const LATEST_SCHEMA_VERSION = 4;
10
10
  export declare function runMigrations(db: MigrationRunner): number;
11
11
  export {};
@@ -1,6 +1,6 @@
1
1
  import { createError, ERROR_CODES } from "../errors.js";
2
- import { SCHEMA_V1_STATEMENTS, SCHEMA_V2_STATEMENTS } from "./schema.js";
3
- export const LATEST_SCHEMA_VERSION = 2;
2
+ import { SCHEMA_V1_STATEMENTS, SCHEMA_V2_STATEMENTS, SCHEMA_V3_STATEMENTS, SCHEMA_V4_STATEMENTS } from "./schema.js";
3
+ export const LATEST_SCHEMA_VERSION = 4;
4
4
  const migrations = [
5
5
  {
6
6
  version: 1,
@@ -9,6 +9,14 @@ const migrations = [
9
9
  {
10
10
  version: 2,
11
11
  statements: SCHEMA_V2_STATEMENTS
12
+ },
13
+ {
14
+ version: 3,
15
+ statements: SCHEMA_V3_STATEMENTS
16
+ },
17
+ {
18
+ version: 4,
19
+ statements: SCHEMA_V4_STATEMENTS
12
20
  }
13
21
  ];
14
22
  function selectSchemaVersion(tx) {
@@ -1,2 +1,4 @@
1
1
  export declare const SCHEMA_V1_STATEMENTS: string[];
2
2
  export declare const SCHEMA_V2_STATEMENTS: string[];
3
+ export declare const SCHEMA_V4_STATEMENTS: string[];
4
+ export declare const SCHEMA_V3_STATEMENTS: string[];
@@ -164,4 +164,29 @@ export const SCHEMA_V2_STATEMENTS = [
164
164
  `DELETE FROM artifact_index_meta`,
165
165
  `DELETE FROM artifacts`
166
166
  ];
167
+ export const SCHEMA_V4_STATEMENTS = [
168
+ `ALTER TABLE artifacts ADD COLUMN alias TEXT`,
169
+ `CREATE UNIQUE INDEX IF NOT EXISTS idx_artifacts_alias ON artifacts(alias) WHERE alias IS NOT NULL`
170
+ ];
171
+ export const SCHEMA_V3_STATEMENTS = [
172
+ `DROP TABLE IF EXISTS files_fts`,
173
+ `CREATE VIRTUAL TABLE files_fts USING fts5(
174
+ artifact_id UNINDEXED,
175
+ file_path,
176
+ content,
177
+ content='files',
178
+ content_rowid='rowid',
179
+ tokenize = 'unicode61 separators ''._$'''
180
+ )`,
181
+ `CREATE TRIGGER IF NOT EXISTS trg_fts_insert AFTER INSERT ON files BEGIN
182
+ INSERT INTO files_fts(rowid, artifact_id, file_path, content)
183
+ VALUES (NEW.rowid, NEW.artifact_id, NEW.file_path, NEW.content);
184
+ END`,
185
+ // No UPDATE trigger: FilesRepo uses delete+insert, never updates rows in place.
186
+ `CREATE TRIGGER IF NOT EXISTS trg_fts_delete BEFORE DELETE ON files BEGIN
187
+ INSERT INTO files_fts(files_fts, rowid, artifact_id, file_path, content)
188
+ VALUES ('delete', OLD.rowid, OLD.artifact_id, OLD.file_path, OLD.content);
189
+ END`,
190
+ `INSERT INTO files_fts(files_fts) VALUES('rebuild')`
191
+ ];
167
192
  //# sourceMappingURL=schema.js.map
@@ -1,4 +1,4 @@
1
- export declare const TOOL_SURFACE_SECTION_IDS: readonly ["v3-entry-tools", "source-exploration", "version-comparison-symbol-tracking", "mapping-symbols", "nbt-utilities", "mod-analysis", "validation", "registry-diagnostics"];
1
+ export declare const TOOL_SURFACE_SECTION_IDS: readonly ["v3-entry-tools", "source-exploration", "version-comparison-symbol-tracking", "mapping-symbols", "nbt-utilities", "mod-analysis", "validation", "registry-diagnostics", "batch-lookup"];
2
2
  export type ToolSurfaceSectionId = (typeof TOOL_SURFACE_SECTION_IDS)[number];
3
3
  export type ToolSurfaceLocale = "en" | "ja";
4
4
  export declare function renderToolSurfaceSection(locale: ToolSurfaceLocale, sectionId: ToolSurfaceSectionId): string;
@@ -6,7 +6,8 @@ export const TOOL_SURFACE_SECTION_IDS = [
6
6
  "nbt-utilities",
7
7
  "mod-analysis",
8
8
  "validation",
9
- "registry-diagnostics"
9
+ "registry-diagnostics",
10
+ "batch-lookup"
10
11
  ];
11
12
  const SECTION_ROWS = {
12
13
  "v3-entry-tools": {
@@ -109,14 +110,16 @@ const SECTION_ROWS = {
109
110
  },
110
111
  "validation": {
111
112
  en: [
112
- "| `validate-mixin` | Validate Mixin source against a target Minecraft version |",
113
+ "| `validate-mixin` | Validate Mixin source against a target Minecraft version (returns `validationStatus: \"partial\"` with `targetOutcomes` when a stage budget defers work) |",
113
114
  "| `validate-access-widener` | Validate Access Widener content against a target Minecraft version, optionally using runtime-aware Loom artifacts |",
114
- "| `validate-access-transformer` | Validate Access Transformer content against a target Minecraft version, optionally using Forge/NeoForge runtime artifacts |"
115
+ "| `validate-access-transformer` | Validate Access Transformer content against a target Minecraft version, optionally using Forge/NeoForge runtime artifacts |",
116
+ "| `verify-mixin-target` | Single-call probe for owner / member existence with `@Shadow` / `@Accessor` / `@Invoker` advice |"
115
117
  ],
116
118
  ja: [
117
- "| `validate-mixin` | 対象 Minecraft バージョンに対して Mixin ソースを検証する |",
118
- "| `validate-access-widener` | 対象 Minecraft バージョンに対して Access Widener の内容を検証し、必要に応じて Loom runtime artifact も使う |",
119
- "| `validate-access-transformer` | 対象 Minecraft バージョンに対して Access Transformer の内容を検証し、必要に応じて Forge / NeoForge runtime artifact も使う |"
119
+ "| `validate-mixin` | 対象 Minecraft バージョンに対して Mixin ソースを検証する (段階別予算で一部作業を後回しにした場合は `validationStatus: \"partial\"` と `targetOutcomes` を含む) |",
120
+ "| `validate-access-widener` | 対象 Minecraft バージョンに対して Access Widener の内容を検証し、必要に応じて Loom ランタイムアーティファクトも使う |",
121
+ "| `validate-access-transformer` | 対象 Minecraft バージョンに対して Access Transformer の内容を検証し、必要に応じて Forge / NeoForge ランタイムアーティファクトも使う |",
122
+ "| `verify-mixin-target` | owner / member の存在確認と `@Shadow` / `@Accessor` / `@Invoker` 助言を 1 回の確認で返す |"
120
123
  ]
121
124
  },
122
125
  "registry-diagnostics": {
@@ -128,6 +131,20 @@ const SECTION_ROWS = {
128
131
  "| `get-registry-data` | 生成済みレジストリスナップショットを読み取り、必要に応じてエントリデータも含める |",
129
132
  "| `get-runtime-metrics` | ランタイムメトリクスとレイテンシスナップショットを確認する |"
130
133
  ]
134
+ },
135
+ "batch-lookup": {
136
+ en: [
137
+ "| `batch-class-source` | Read source for many classes against one shared resolved artifact (1..50 entries per call) |",
138
+ "| `batch-class-members` | List members for many classes against one shared resolved artifact (1..50 entries per call) |",
139
+ "| `batch-symbol-exists` | Probe symbol existence for many entries against one shared Minecraft-version artifact (workspace / version targets only) |",
140
+ "| `batch-mappings` | Translate many symbols across mapping namespaces with one shared Minecraft version (no shared artifact) |"
141
+ ],
142
+ ja: [
143
+ "| `batch-class-source` | 共有解決した 1 つのアーティファクトに対して最大 50 件のクラスソースを読み取る |",
144
+ "| `batch-class-members` | 共有解決した 1 つのアーティファクトに対して最大 50 件のクラスメンバーを列挙する |",
145
+ "| `batch-symbol-exists` | 共有解決した 1 つの Minecraft バージョンアーティファクトに対して最大 50 件のシンボル存在確認を行う (ワークスペースまたはバージョン対象のみ) |",
146
+ "| `batch-mappings` | 1 つの Minecraft バージョンで最大 50 件のシンボルを名前空間横断で変換する (共有アーティファクトなし) |"
147
+ ]
131
148
  }
132
149
  };
133
150
  export function renderToolSurfaceSection(locale, sectionId) {
@@ -0,0 +1,82 @@
1
+ import { ZodError } from "zod";
2
+ import { type ExampleCall, type ProblemDetails, type ProblemFieldError, type SuggestedCall } from "./error-mapping.js";
3
+ import type { SourceTargetInput } from "./types.js";
4
+ export type ToolMeta = {
5
+ requestId: string;
6
+ tool: string;
7
+ durationMs: number;
8
+ warnings: string[];
9
+ detailApplied?: "summary" | "standard" | "full";
10
+ includeApplied?: string[];
11
+ truncated?: Record<string, unknown>;
12
+ pagination?: Record<string, unknown>;
13
+ /** Set to `true` on ERR_STAGE_BUDGET_PRE_PARSE error envelopes to signal a budget-driven failure. */
14
+ stageBudgetExhausted?: boolean;
15
+ /** Stage budget (ms) that was exceeded; populated alongside `stageBudgetExhausted`. */
16
+ budgetMs?: number;
17
+ /** Actual stage elapsed time (ms); populated alongside `stageBudgetExhausted`. */
18
+ elapsedMs?: number;
19
+ };
20
+ export declare const SUGGESTED_CALL_DEFAULTS: {
21
+ readonly allowDecompile: true;
22
+ readonly preferProjectVersion: false;
23
+ readonly strictVersion: false;
24
+ readonly mode: "metadata";
25
+ readonly access: "public";
26
+ readonly includeSynthetic: false;
27
+ readonly includeInherited: false;
28
+ readonly hideUncertain: false;
29
+ readonly explain: false;
30
+ readonly preferProjectMapping: false;
31
+ readonly minSeverity: "all";
32
+ readonly reportMode: "full";
33
+ readonly treatInfoAsWarning: true;
34
+ readonly includeIssues: true;
35
+ };
36
+ export declare function isSuggestedCallDefault(field: keyof typeof SUGGESTED_CALL_DEFAULTS, value: unknown): boolean;
37
+ export declare const ANALYZE_MOD_INCLUDE_GROUPS: readonly ["warnings", "files", "source", "samples", "timings"];
38
+ export declare const ANALYZE_MOD_LEGACY_METADATA_INCLUDES: readonly ["metadata", "entrypoints", "mixins", "dependencies"];
39
+ export declare const VALIDATE_PROJECT_INCLUDE_GROUPS: readonly ["warnings", "issues", "workspace", "recovery"];
40
+ export declare const VALIDATE_PROJECT_LEGACY_WORKSPACE_INCLUDES: readonly ["detectedConfig", "mixins", "accessWideners"];
41
+ export declare const VALIDATION_FALLBACK_HINT = "suggested call payload failed schema validation; using fallback examples";
42
+ export declare function toFieldErrorsFromZod(error: ZodError): ProblemFieldError[];
43
+ export declare function toHints(details: unknown): string[] | undefined;
44
+ export declare function extractValidatedSuggestionAndExamples(details: unknown): {
45
+ suggestedCall?: SuggestedCall;
46
+ exampleCalls?: ExampleCall[];
47
+ primaryDropped: boolean;
48
+ };
49
+ export declare function extractFailedStageFromDetails(details: unknown): string | undefined;
50
+ export declare function extractFieldErrorsFromDetails(details: unknown): ProblemFieldError[] | undefined;
51
+ export declare function asObjectRecord(value: unknown): Record<string, unknown> | undefined;
52
+ export declare function asNonEmptyString(value: unknown): string | undefined;
53
+ export declare function asStringArray(value: unknown): string[] | undefined;
54
+ export declare function truncateSuggestionText(value: string, maxLength?: number): string;
55
+ export declare function parseJsonObjectString(value: string): Record<string, unknown> | undefined;
56
+ export declare function inferTargetKindFromString(value: string): SourceTargetInput["kind"];
57
+ export declare function copySourceLookupSuggestionFields(tool: "get-class-source" | "get-class-members", source: Record<string, unknown>): Record<string, unknown>;
58
+ export declare function copyValidateMixinSharedParams(source: Record<string, unknown>): Record<string, unknown>;
59
+ export declare function buildValidateMixinSuggestedParams(normalizedInput: unknown): Record<string, unknown>;
60
+ export declare function buildResolveArtifactSuggestedParams(normalizedInput: unknown): Record<string, unknown>;
61
+ export declare function buildSourceLookupSuggestedParams(tool: "get-class-source" | "get-class-members", normalizedInput: unknown): Record<string, unknown>;
62
+ export declare function filterAllowedIncludeValues(values: string[] | undefined, allowed: readonly string[]): string[];
63
+ export declare function buildAnalyzeModSuggestedParams(normalizedInput: unknown): Record<string, unknown>;
64
+ export declare function buildValidateProjectSuggestedParams(normalizedInput: unknown): Record<string, unknown>;
65
+ type InvalidInputGuidance = {
66
+ hints?: string[];
67
+ suggestedCall?: SuggestedCall;
68
+ exampleCalls?: ExampleCall[];
69
+ primaryDropped?: boolean;
70
+ };
71
+ export declare function buildInvalidInputGuidance(tool: string, normalizedInput: unknown): InvalidInputGuidance | undefined;
72
+ export declare function mapErrorToProblem(caughtError: unknown, requestId: string, context?: {
73
+ tool?: string;
74
+ normalizedInput?: unknown;
75
+ }): ProblemDetails;
76
+ /**
77
+ * Copy documented error-only meta fields from AppError.details into the
78
+ * public envelope. Scoped to `ERR_STAGE_BUDGET_PRE_PARSE` per
79
+ * docs/tool-reference.md §Meta fields.
80
+ */
81
+ export declare function applyErrorMetaExtensions(meta: ToolMeta, error: unknown): void;
82
+ export {};