@creeperhost/modlens-mcp 1.6.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 (382) hide show
  1. package/README.md +938 -0
  2. package/dist/access-flags.d.ts +58 -0
  3. package/dist/access-flags.d.ts.map +1 -0
  4. package/dist/access-flags.js +79 -0
  5. package/dist/access-flags.js.map +1 -0
  6. package/dist/access-flags.test.d.ts +2 -0
  7. package/dist/access-flags.test.d.ts.map +1 -0
  8. package/dist/access-flags.test.js +189 -0
  9. package/dist/access-flags.test.js.map +1 -0
  10. package/dist/batch-ingest.d.ts +2 -0
  11. package/dist/batch-ingest.d.ts.map +1 -0
  12. package/dist/batch-ingest.js +54 -0
  13. package/dist/batch-ingest.js.map +1 -0
  14. package/dist/batch-resolve-mixins.d.ts +2 -0
  15. package/dist/batch-resolve-mixins.d.ts.map +1 -0
  16. package/dist/batch-resolve-mixins.js +36 -0
  17. package/dist/batch-resolve-mixins.js.map +1 -0
  18. package/dist/cache.d.ts +16 -0
  19. package/dist/cache.d.ts.map +1 -0
  20. package/dist/cache.js +36 -0
  21. package/dist/cache.js.map +1 -0
  22. package/dist/cli.d.ts +2 -0
  23. package/dist/cli.d.ts.map +1 -0
  24. package/dist/cli.js +1318 -0
  25. package/dist/cli.js.map +1 -0
  26. package/dist/curseforge.d.ts +53 -0
  27. package/dist/curseforge.d.ts.map +1 -0
  28. package/dist/curseforge.js +104 -0
  29. package/dist/curseforge.js.map +1 -0
  30. package/dist/db-backend.d.ts +17 -0
  31. package/dist/db-backend.d.ts.map +1 -0
  32. package/dist/db-backend.js +40 -0
  33. package/dist/db-backend.js.map +1 -0
  34. package/dist/db.d.ts +11 -0
  35. package/dist/db.d.ts.map +1 -0
  36. package/dist/db.js +55 -0
  37. package/dist/db.js.map +1 -0
  38. package/dist/embed-queue.d.ts +12 -0
  39. package/dist/embed-queue.d.ts.map +1 -0
  40. package/dist/embed-queue.js +103 -0
  41. package/dist/embed-queue.js.map +1 -0
  42. package/dist/embeddings.d.ts +21 -0
  43. package/dist/embeddings.d.ts.map +1 -0
  44. package/dist/embeddings.js +55 -0
  45. package/dist/embeddings.js.map +1 -0
  46. package/dist/env-path.d.ts +19 -0
  47. package/dist/env-path.d.ts.map +1 -0
  48. package/dist/env-path.js +40 -0
  49. package/dist/env-path.js.map +1 -0
  50. package/dist/fetch-utils.d.ts +24 -0
  51. package/dist/fetch-utils.d.ts.map +1 -0
  52. package/dist/fetch-utils.js +73 -0
  53. package/dist/fetch-utils.js.map +1 -0
  54. package/dist/fetch-utils.test.d.ts +2 -0
  55. package/dist/fetch-utils.test.d.ts.map +1 -0
  56. package/dist/fetch-utils.test.js +133 -0
  57. package/dist/fetch-utils.test.js.map +1 -0
  58. package/dist/generated/sqlite/browser.d.ts +55 -0
  59. package/dist/generated/sqlite/browser.d.ts.map +1 -0
  60. package/dist/generated/sqlite/browser.js +18 -0
  61. package/dist/generated/sqlite/browser.js.map +1 -0
  62. package/dist/generated/sqlite/client.d.ts +72 -0
  63. package/dist/generated/sqlite/client.d.ts.map +1 -0
  64. package/dist/generated/sqlite/client.js +33 -0
  65. package/dist/generated/sqlite/client.js.map +1 -0
  66. package/dist/generated/sqlite/commonInputTypes.d.ts +387 -0
  67. package/dist/generated/sqlite/commonInputTypes.d.ts.map +1 -0
  68. package/dist/generated/sqlite/commonInputTypes.js +11 -0
  69. package/dist/generated/sqlite/commonInputTypes.js.map +1 -0
  70. package/dist/generated/sqlite/enums.d.ts +2 -0
  71. package/dist/generated/sqlite/enums.d.ts.map +1 -0
  72. package/dist/generated/sqlite/enums.js +11 -0
  73. package/dist/generated/sqlite/enums.js.map +1 -0
  74. package/dist/generated/sqlite/internal/class.d.ts +226 -0
  75. package/dist/generated/sqlite/internal/class.d.ts.map +1 -0
  76. package/dist/generated/sqlite/internal/class.js +84 -0
  77. package/dist/generated/sqlite/internal/class.js.map +1 -0
  78. package/dist/generated/sqlite/internal/prismaNamespace.d.ts +1344 -0
  79. package/dist/generated/sqlite/internal/prismaNamespace.d.ts.map +1 -0
  80. package/dist/generated/sqlite/internal/prismaNamespace.js +220 -0
  81. package/dist/generated/sqlite/internal/prismaNamespace.js.map +1 -0
  82. package/dist/generated/sqlite/internal/prismaNamespaceBrowser.d.ts +204 -0
  83. package/dist/generated/sqlite/internal/prismaNamespaceBrowser.d.ts.map +1 -0
  84. package/dist/generated/sqlite/internal/prismaNamespaceBrowser.js +191 -0
  85. package/dist/generated/sqlite/internal/prismaNamespaceBrowser.js.map +1 -0
  86. package/dist/generated/sqlite/models/DocEntry.d.ts +1223 -0
  87. package/dist/generated/sqlite/models/DocEntry.d.ts.map +1 -0
  88. package/dist/generated/sqlite/models/DocEntry.js +2 -0
  89. package/dist/generated/sqlite/models/DocEntry.js.map +1 -0
  90. package/dist/generated/sqlite/models/McSourceFile.d.ts +1289 -0
  91. package/dist/generated/sqlite/models/McSourceFile.d.ts.map +1 -0
  92. package/dist/generated/sqlite/models/McSourceFile.js +2 -0
  93. package/dist/generated/sqlite/models/McSourceFile.js.map +1 -0
  94. package/dist/generated/sqlite/models/McVersion.d.ts +1315 -0
  95. package/dist/generated/sqlite/models/McVersion.d.ts.map +1 -0
  96. package/dist/generated/sqlite/models/McVersion.js +2 -0
  97. package/dist/generated/sqlite/models/McVersion.js.map +1 -0
  98. package/dist/generated/sqlite/models/McVersionDiff.d.ts +1061 -0
  99. package/dist/generated/sqlite/models/McVersionDiff.d.ts.map +1 -0
  100. package/dist/generated/sqlite/models/McVersionDiff.js +2 -0
  101. package/dist/generated/sqlite/models/McVersionDiff.js.map +1 -0
  102. package/dist/generated/sqlite/models/Mod.d.ts +2396 -0
  103. package/dist/generated/sqlite/models/Mod.d.ts.map +1 -0
  104. package/dist/generated/sqlite/models/Mod.js +2 -0
  105. package/dist/generated/sqlite/models/Mod.js.map +1 -0
  106. package/dist/generated/sqlite/models/ModClass.d.ts +1254 -0
  107. package/dist/generated/sqlite/models/ModClass.d.ts.map +1 -0
  108. package/dist/generated/sqlite/models/ModClass.js +2 -0
  109. package/dist/generated/sqlite/models/ModClass.js.map +1 -0
  110. package/dist/generated/sqlite/models/ModSourceFile.d.ts +1283 -0
  111. package/dist/generated/sqlite/models/ModSourceFile.d.ts.map +1 -0
  112. package/dist/generated/sqlite/models/ModSourceFile.js +2 -0
  113. package/dist/generated/sqlite/models/ModSourceFile.js.map +1 -0
  114. package/dist/generated/sqlite/models/ModTag.d.ts +1278 -0
  115. package/dist/generated/sqlite/models/ModTag.d.ts.map +1 -0
  116. package/dist/generated/sqlite/models/ModTag.js +2 -0
  117. package/dist/generated/sqlite/models/ModTag.js.map +1 -0
  118. package/dist/generated/sqlite/models/ModVersionDiff.d.ts +1073 -0
  119. package/dist/generated/sqlite/models/ModVersionDiff.d.ts.map +1 -0
  120. package/dist/generated/sqlite/models/ModVersionDiff.js +2 -0
  121. package/dist/generated/sqlite/models/ModVersionDiff.js.map +1 -0
  122. package/dist/generated/sqlite/models/Primer.d.ts +1319 -0
  123. package/dist/generated/sqlite/models/Primer.d.ts.map +1 -0
  124. package/dist/generated/sqlite/models/Primer.js +2 -0
  125. package/dist/generated/sqlite/models/Primer.js.map +1 -0
  126. package/dist/generated/sqlite/models.d.ts +12 -0
  127. package/dist/generated/sqlite/models.d.ts.map +1 -0
  128. package/dist/generated/sqlite/models.js +2 -0
  129. package/dist/generated/sqlite/models.js.map +1 -0
  130. package/dist/jar.d.ts +7 -0
  131. package/dist/jar.d.ts.map +1 -0
  132. package/dist/jar.js +52 -0
  133. package/dist/jar.js.map +1 -0
  134. package/dist/java-tools.d.ts +46 -0
  135. package/dist/java-tools.d.ts.map +1 -0
  136. package/dist/java-tools.js +263 -0
  137. package/dist/java-tools.js.map +1 -0
  138. package/dist/launcher.d.ts +3 -0
  139. package/dist/launcher.d.ts.map +1 -0
  140. package/dist/launcher.js +105 -0
  141. package/dist/launcher.js.map +1 -0
  142. package/dist/mappings.d.ts +95 -0
  143. package/dist/mappings.d.ts.map +1 -0
  144. package/dist/mappings.js +1094 -0
  145. package/dist/mappings.js.map +1 -0
  146. package/dist/mappings.test.d.ts +2 -0
  147. package/dist/mappings.test.d.ts.map +1 -0
  148. package/dist/mappings.test.js +161 -0
  149. package/dist/mappings.test.js.map +1 -0
  150. package/dist/minecraft.d.ts +21 -0
  151. package/dist/minecraft.d.ts.map +1 -0
  152. package/dist/minecraft.js +70 -0
  153. package/dist/minecraft.js.map +1 -0
  154. package/dist/modpacks-ch.d.ts +224 -0
  155. package/dist/modpacks-ch.d.ts.map +1 -0
  156. package/dist/modpacks-ch.js +146 -0
  157. package/dist/modpacks-ch.js.map +1 -0
  158. package/dist/modrinth.d.ts +67 -0
  159. package/dist/modrinth.d.ts.map +1 -0
  160. package/dist/modrinth.js +88 -0
  161. package/dist/modrinth.js.map +1 -0
  162. package/dist/platform-adapter.d.ts +23 -0
  163. package/dist/platform-adapter.d.ts.map +1 -0
  164. package/dist/platform-adapter.js +2 -0
  165. package/dist/platform-adapter.js.map +1 -0
  166. package/dist/platform.d.ts +47 -0
  167. package/dist/platform.d.ts.map +1 -0
  168. package/dist/platform.js +175 -0
  169. package/dist/platform.js.map +1 -0
  170. package/dist/processor.d.ts +51 -0
  171. package/dist/processor.d.ts.map +1 -0
  172. package/dist/processor.js +655 -0
  173. package/dist/processor.js.map +1 -0
  174. package/dist/processor.test.d.ts +2 -0
  175. package/dist/processor.test.d.ts.map +1 -0
  176. package/dist/processor.test.js +629 -0
  177. package/dist/processor.test.js.map +1 -0
  178. package/dist/repositories/embeddings-sqlite.d.ts +38 -0
  179. package/dist/repositories/embeddings-sqlite.d.ts.map +1 -0
  180. package/dist/repositories/embeddings-sqlite.js +208 -0
  181. package/dist/repositories/embeddings-sqlite.js.map +1 -0
  182. package/dist/repositories/embeddings.d.ts +40 -0
  183. package/dist/repositories/embeddings.d.ts.map +1 -0
  184. package/dist/repositories/embeddings.js +136 -0
  185. package/dist/repositories/embeddings.js.map +1 -0
  186. package/dist/repositories/index.d.ts +2 -0
  187. package/dist/repositories/index.d.ts.map +1 -0
  188. package/dist/repositories/index.js +15 -0
  189. package/dist/repositories/index.js.map +1 -0
  190. package/dist/repositories/mcVersion.d.ts +16 -0
  191. package/dist/repositories/mcVersion.d.ts.map +1 -0
  192. package/dist/repositories/mcVersion.js +52 -0
  193. package/dist/repositories/mcVersion.js.map +1 -0
  194. package/dist/repositories/mod.d.ts +241 -0
  195. package/dist/repositories/mod.d.ts.map +1 -0
  196. package/dist/repositories/mod.js +342 -0
  197. package/dist/repositories/mod.js.map +1 -0
  198. package/dist/repositories/packs.d.ts +44 -0
  199. package/dist/repositories/packs.d.ts.map +1 -0
  200. package/dist/repositories/packs.js +138 -0
  201. package/dist/repositories/packs.js.map +1 -0
  202. package/dist/search-adapter.d.ts +34 -0
  203. package/dist/search-adapter.d.ts.map +1 -0
  204. package/dist/search-adapter.js +195 -0
  205. package/dist/search-adapter.js.map +1 -0
  206. package/dist/search.d.ts +6 -0
  207. package/dist/search.d.ts.map +1 -0
  208. package/dist/search.js +54 -0
  209. package/dist/search.js.map +1 -0
  210. package/dist/search.test.d.ts +2 -0
  211. package/dist/search.test.d.ts.map +1 -0
  212. package/dist/search.test.js +71 -0
  213. package/dist/search.test.js.map +1 -0
  214. package/dist/security.d.ts +98 -0
  215. package/dist/security.d.ts.map +1 -0
  216. package/dist/security.js +446 -0
  217. package/dist/security.js.map +1 -0
  218. package/dist/security.test.d.ts +2 -0
  219. package/dist/security.test.d.ts.map +1 -0
  220. package/dist/security.test.js +687 -0
  221. package/dist/security.test.js.map +1 -0
  222. package/dist/server.d.ts +2 -0
  223. package/dist/server.d.ts.map +1 -0
  224. package/dist/server.js +1465 -0
  225. package/dist/server.js.map +1 -0
  226. package/dist/setup.d.ts +2 -0
  227. package/dist/setup.d.ts.map +1 -0
  228. package/dist/setup.js +1113 -0
  229. package/dist/setup.js.map +1 -0
  230. package/dist/tools/bytecode.d.ts +129 -0
  231. package/dist/tools/bytecode.d.ts.map +1 -0
  232. package/dist/tools/bytecode.js +679 -0
  233. package/dist/tools/bytecode.js.map +1 -0
  234. package/dist/tools/catalog.d.ts +54 -0
  235. package/dist/tools/catalog.d.ts.map +1 -0
  236. package/dist/tools/catalog.js +249 -0
  237. package/dist/tools/catalog.js.map +1 -0
  238. package/dist/tools/compat-check.d.ts +23 -0
  239. package/dist/tools/compat-check.d.ts.map +1 -0
  240. package/dist/tools/compat-check.js +250 -0
  241. package/dist/tools/compat-check.js.map +1 -0
  242. package/dist/tools/compat-check.test.d.ts +2 -0
  243. package/dist/tools/compat-check.test.d.ts.map +1 -0
  244. package/dist/tools/compat-check.test.js +179 -0
  245. package/dist/tools/compat-check.test.js.map +1 -0
  246. package/dist/tools/diagnostics.d.ts +10 -0
  247. package/dist/tools/diagnostics.d.ts.map +1 -0
  248. package/dist/tools/diagnostics.js +133 -0
  249. package/dist/tools/diagnostics.js.map +1 -0
  250. package/dist/tools/diagnostics.test.d.ts +2 -0
  251. package/dist/tools/diagnostics.test.d.ts.map +1 -0
  252. package/dist/tools/diagnostics.test.js +168 -0
  253. package/dist/tools/diagnostics.test.js.map +1 -0
  254. package/dist/tools/docs.d.ts +19 -0
  255. package/dist/tools/docs.d.ts.map +1 -0
  256. package/dist/tools/docs.js +230 -0
  257. package/dist/tools/docs.js.map +1 -0
  258. package/dist/tools/embed-registry.d.ts +125 -0
  259. package/dist/tools/embed-registry.d.ts.map +1 -0
  260. package/dist/tools/embed-registry.js +560 -0
  261. package/dist/tools/embed-registry.js.map +1 -0
  262. package/dist/tools/gradle.d.ts +16 -0
  263. package/dist/tools/gradle.d.ts.map +1 -0
  264. package/dist/tools/gradle.js +182 -0
  265. package/dist/tools/gradle.js.map +1 -0
  266. package/dist/tools/graphify.d.ts +144 -0
  267. package/dist/tools/graphify.d.ts.map +1 -0
  268. package/dist/tools/graphify.js +798 -0
  269. package/dist/tools/graphify.js.map +1 -0
  270. package/dist/tools/graphify.test.d.ts +2 -0
  271. package/dist/tools/graphify.test.d.ts.map +1 -0
  272. package/dist/tools/graphify.test.js +39 -0
  273. package/dist/tools/graphify.test.js.map +1 -0
  274. package/dist/tools/ingest.d.ts +85 -0
  275. package/dist/tools/ingest.d.ts.map +1 -0
  276. package/dist/tools/ingest.js +477 -0
  277. package/dist/tools/ingest.js.map +1 -0
  278. package/dist/tools/ingest.test.d.ts +2 -0
  279. package/dist/tools/ingest.test.d.ts.map +1 -0
  280. package/dist/tools/ingest.test.js +340 -0
  281. package/dist/tools/ingest.test.js.map +1 -0
  282. package/dist/tools/kubejs.d.ts +37 -0
  283. package/dist/tools/kubejs.d.ts.map +1 -0
  284. package/dist/tools/kubejs.js +245 -0
  285. package/dist/tools/kubejs.js.map +1 -0
  286. package/dist/tools/mappings.d.ts +17 -0
  287. package/dist/tools/mappings.d.ts.map +1 -0
  288. package/dist/tools/mappings.js +85 -0
  289. package/dist/tools/mappings.js.map +1 -0
  290. package/dist/tools/mc-fts.d.ts +101 -0
  291. package/dist/tools/mc-fts.d.ts.map +1 -0
  292. package/dist/tools/mc-fts.js +279 -0
  293. package/dist/tools/mc-fts.js.map +1 -0
  294. package/dist/tools/mcmeta.d.ts +41 -0
  295. package/dist/tools/mcmeta.d.ts.map +1 -0
  296. package/dist/tools/mcmeta.js +365 -0
  297. package/dist/tools/mcmeta.js.map +1 -0
  298. package/dist/tools/mixin-scan.d.ts +113 -0
  299. package/dist/tools/mixin-scan.d.ts.map +1 -0
  300. package/dist/tools/mixin-scan.js +433 -0
  301. package/dist/tools/mixin-scan.js.map +1 -0
  302. package/dist/tools/mod-data.d.ts +83 -0
  303. package/dist/tools/mod-data.d.ts.map +1 -0
  304. package/dist/tools/mod-data.js +630 -0
  305. package/dist/tools/mod-data.js.map +1 -0
  306. package/dist/tools/mod-tags.d.ts +59 -0
  307. package/dist/tools/mod-tags.d.ts.map +1 -0
  308. package/dist/tools/mod-tags.js +279 -0
  309. package/dist/tools/mod-tags.js.map +1 -0
  310. package/dist/tools/mod-tags.test.d.ts +2 -0
  311. package/dist/tools/mod-tags.test.d.ts.map +1 -0
  312. package/dist/tools/mod-tags.test.js +75 -0
  313. package/dist/tools/mod-tags.test.js.map +1 -0
  314. package/dist/tools/modpacks-ch.d.ts +257 -0
  315. package/dist/tools/modpacks-ch.d.ts.map +1 -0
  316. package/dist/tools/modpacks-ch.js +516 -0
  317. package/dist/tools/modpacks-ch.js.map +1 -0
  318. package/dist/tools/packtools.d.ts +113 -0
  319. package/dist/tools/packtools.d.ts.map +1 -0
  320. package/dist/tools/packtools.js +809 -0
  321. package/dist/tools/packtools.js.map +1 -0
  322. package/dist/tools/packtools.test.d.ts +2 -0
  323. package/dist/tools/packtools.test.d.ts.map +1 -0
  324. package/dist/tools/packtools.test.js +99 -0
  325. package/dist/tools/packtools.test.js.map +1 -0
  326. package/dist/tools/platform.d.ts +68 -0
  327. package/dist/tools/platform.d.ts.map +1 -0
  328. package/dist/tools/platform.js +452 -0
  329. package/dist/tools/platform.js.map +1 -0
  330. package/dist/tools/primers.d.ts +36 -0
  331. package/dist/tools/primers.d.ts.map +1 -0
  332. package/dist/tools/primers.js +451 -0
  333. package/dist/tools/primers.js.map +1 -0
  334. package/dist/tools/reports.d.ts +19 -0
  335. package/dist/tools/reports.d.ts.map +1 -0
  336. package/dist/tools/reports.js +573 -0
  337. package/dist/tools/reports.js.map +1 -0
  338. package/dist/tools/source.d.ts +10 -0
  339. package/dist/tools/source.d.ts.map +1 -0
  340. package/dist/tools/source.js +101 -0
  341. package/dist/tools/source.js.map +1 -0
  342. package/dist/tools/vanilla-data.d.ts +127 -0
  343. package/dist/tools/vanilla-data.d.ts.map +1 -0
  344. package/dist/tools/vanilla-data.js +824 -0
  345. package/dist/tools/vanilla-data.js.map +1 -0
  346. package/dist/tools/vanilla.d.ts +171 -0
  347. package/dist/tools/vanilla.d.ts.map +1 -0
  348. package/dist/tools/vanilla.js +612 -0
  349. package/dist/tools/vanilla.js.map +1 -0
  350. package/dist/tools/version-diff.d.ts +113 -0
  351. package/dist/tools/version-diff.d.ts.map +1 -0
  352. package/dist/tools/version-diff.js +519 -0
  353. package/dist/tools/version-diff.js.map +1 -0
  354. package/dist/tools/version-diff.test.d.ts +2 -0
  355. package/dist/tools/version-diff.test.d.ts.map +1 -0
  356. package/dist/tools/version-diff.test.js +102 -0
  357. package/dist/tools/version-diff.test.js.map +1 -0
  358. package/dist/validate.d.ts +19 -0
  359. package/dist/validate.d.ts.map +1 -0
  360. package/dist/validate.js +54 -0
  361. package/dist/validate.js.map +1 -0
  362. package/dist/validate.test.d.ts +2 -0
  363. package/dist/validate.test.d.ts.map +1 -0
  364. package/dist/validate.test.js +73 -0
  365. package/dist/validate.test.js.map +1 -0
  366. package/package.json +62 -0
  367. package/prisma/backends/schema.sqlite.prisma +215 -0
  368. package/prisma/backends/template.db +0 -0
  369. package/prisma/schema.prisma +303 -0
  370. package/scripts/backup.mjs +151 -0
  371. package/scripts/build-template-db.mjs +38 -0
  372. package/scripts/check-atm10.mjs +27 -0
  373. package/scripts/check-sync.mjs +13 -0
  374. package/scripts/create-fts-index.mjs +50 -0
  375. package/scripts/enable-pgvector.mjs +90 -0
  376. package/scripts/enable-sqlite-vec.mjs +158 -0
  377. package/scripts/migrate-backend.mjs +188 -0
  378. package/scripts/migrate-embed-provenance.mjs +80 -0
  379. package/scripts/migrate-metadata-source.mjs +62 -0
  380. package/scripts/migrate-mod-source-files.mjs +67 -0
  381. package/scripts/post-update.mjs +77 -0
  382. package/scripts/verify-atm10.mjs +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubejs.js","sourceRoot":"","sources":["../../src/tools/kubejs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * MCP tools for Minecraft mappings and JAR remapping.
3
+ *
4
+ * Tools:
5
+ * find_mapping - Translate a symbol name between official/intermediary/yarn/mojmap
6
+ * remap_mod_jar - Remap a mod JAR using TinyRemapper (official → yarn or mojmap)
7
+ * get_parchment - Get Parchment parameter names + javadocs for a class
8
+ * list_parchment_versions - List available Parchment builds for a MC version
9
+ */
10
+ import { type MappingNs } from "../mappings.js";
11
+ export declare function findMapping(symbol: string, version: string, sourceNs: MappingNs, targetNs: MappingNs): Promise<object>;
12
+ export declare function remapModJar(inputJar: string, outputJar: string, version: string, toMapping: "yarn" | "mojmap"): Promise<object>;
13
+ export declare function getParchment(className: string, mcVersion: string): Promise<object>;
14
+ export declare function listParchmentVersions(mcVersion: string): Promise<object>;
15
+ /** Return a summary of all parchment data for a version (class names + counts). */
16
+ export declare function getParchmentSummary(mcVersion: string): Promise<object>;
17
+ //# sourceMappingURL=mappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../../src/tools/mappings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAkG,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhJ,wBAAsB,WAAW,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,GACpB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAGD,wBAAsB,WAAW,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,QAAQ,GAC7B,OAAO,CAAC,MAAM,CAAC,CAcjB;AAGD,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BxF;AAGD,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG9E;AAGD,mFAAmF;AACnF,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa5E"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * MCP tools for Minecraft mappings and JAR remapping.
3
+ *
4
+ * Tools:
5
+ * find_mapping - Translate a symbol name between official/intermediary/yarn/mojmap
6
+ * remap_mod_jar - Remap a mod JAR using TinyRemapper (official → yarn or mojmap)
7
+ * get_parchment - Get Parchment parameter names + javadocs for a class
8
+ * list_parchment_versions - List available Parchment builds for a MC version
9
+ */
10
+ import { translateSymbol, remapJar, getParchmentClass, listAvailableParchmentVersions, getParchmentData } from "../mappings.js";
11
+ import { assertJarPath } from "../security.js";
12
+ import { extname } from "path";
13
+ // ── find_mapping ──────────────────────────────────────────────────────────────
14
+ export async function findMapping(symbol, version, sourceNs, targetNs) {
15
+ const result = await translateSymbol(symbol, sourceNs, targetNs, version);
16
+ return result;
17
+ }
18
+ // ── remap_mod_jar ─────────────────────────────────────────────────────────────
19
+ export async function remapModJar(inputJar, outputJar, version, toMapping) {
20
+ assertJarPath(inputJar);
21
+ if (extname(outputJar).toLowerCase() !== ".jar") {
22
+ throw new Error("outputJar must have a .jar extension");
23
+ }
24
+ const result = await remapJar(inputJar, outputJar, version, toMapping);
25
+ return {
26
+ success: true,
27
+ inputJar,
28
+ outputJar: result.outputJar,
29
+ mcVersion: version,
30
+ mapping: toMapping,
31
+ note: result.note,
32
+ };
33
+ }
34
+ // ── get_parchment ─────────────────────────────────────────────────────────────
35
+ export async function getParchment(className, mcVersion) {
36
+ const cls = await getParchmentClass(className, mcVersion);
37
+ if (!cls) {
38
+ return {
39
+ found: false,
40
+ className,
41
+ mcVersion,
42
+ message: `No Parchment data for ${className} in MC ${mcVersion}. Parchment may not have a build for this MC version yet, or the class may not have parameter names documented.`,
43
+ };
44
+ }
45
+ return {
46
+ found: true,
47
+ className: cls.name,
48
+ mcVersion,
49
+ javadoc: cls.javadoc,
50
+ methods: [...cls.methods.entries()].map(([key, m]) => ({
51
+ key,
52
+ name: m.name,
53
+ descriptor: m.descriptor,
54
+ javadoc: m.javadoc,
55
+ parameters: m.parameters,
56
+ })),
57
+ fields: [...cls.fields.entries()].map(([key, f]) => ({
58
+ key,
59
+ name: f.name,
60
+ javadoc: f.javadoc,
61
+ })),
62
+ };
63
+ }
64
+ // ── list_parchment_versions ───────────────────────────────────────────────────
65
+ export async function listParchmentVersions(mcVersion) {
66
+ const versions = await listAvailableParchmentVersions(mcVersion);
67
+ return { mcVersion, availableBuilds: versions, count: versions.length };
68
+ }
69
+ // ── get_parchment_summary ─────────────────────────────────────────────────────
70
+ /** Return a summary of all parchment data for a version (class names + counts). */
71
+ export async function getParchmentSummary(mcVersion) {
72
+ const data = await getParchmentData(mcVersion);
73
+ if (!data) {
74
+ return { found: false, mcVersion, message: "No Parchment data available for this MC version." };
75
+ }
76
+ const classes = [...data.classes.entries()].map(([name, cls]) => ({
77
+ name,
78
+ methodCount: cls.methods.size,
79
+ fieldCount: cls.fields.size,
80
+ hasJavadoc: !!(cls.javadoc?.length),
81
+ paramCount: [...cls.methods.values()].reduce((s, m) => s + m.parameters.length, 0),
82
+ }));
83
+ return { found: true, mcVersion, classCount: classes.length, classes };
84
+ }
85
+ //# sourceMappingURL=mappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.js","sourceRoot":"","sources":["../../src/tools/mappings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * index_minecraft_version
3
+ * Reads the already-decompiled source tree and upserts every .java file
4
+ * into mc_source_files for FTS. Decompilation must have finished first
5
+ * (run decompile_minecraft_version and wait for status "done").
6
+ */
7
+ export declare function indexMcVersion(version: string, force?: boolean): Promise<{
8
+ status: string;
9
+ indexed: number;
10
+ skipped: number;
11
+ }>;
12
+ /**
13
+ * search_mc_indexed
14
+ * Fast FTS search over indexed MC source. Supports:
15
+ * - Plain text / keyword queries (uses plainto_tsquery 'simple' config — no stemming)
16
+ * - Boolean: "Entity AND tick", "player OR entity", "hurt -damage"
17
+ * - Phrase: wrap in double-quotes passed as tsquery: '"onHurt"'
18
+ */
19
+ export declare function searchMcIndexed(query: string, version: string, limit?: number): Promise<Array<{
20
+ className: string;
21
+ snippet: string;
22
+ }>>;
23
+ /**
24
+ * Returns true if the FTS index has been built for this MC version.
25
+ * Checks `indexed` flag on the McVersion row.
26
+ */
27
+ export declare function isMcVersionIndexed(version: string): Promise<boolean>;
28
+ /**
29
+ * index_mc_source_semantic
30
+ * Embeds MC source files for a version using Ollama. Processes files that have
31
+ * no embedding yet (safe to re-run / resume after interruption).
32
+ *
33
+ * Only embeds the first chunk (class header ~1500 chars) — enough for semantic
34
+ * class-level search without spending hours on full-file embedding.
35
+ *
36
+ * @param version MC version string e.g. "26.1.2"
37
+ * @param batchSize Files per batch (pause between batches to avoid OOM)
38
+ */
39
+ export declare function indexMcSourceSemantic(version: string, batchSize?: number): Promise<{
40
+ status: string;
41
+ embedded: number;
42
+ skipped: number;
43
+ remaining: number;
44
+ }>;
45
+ /**
46
+ * search_mc_source_semantic
47
+ * Semantic (vector) search over embedded MC source files.
48
+ * Falls back to FTS if Ollama is unavailable.
49
+ */
50
+ export declare function searchMcSourceSemantic(query: string, version: string, limit?: number, provenance?: string): Promise<Array<{
51
+ className: string;
52
+ similarity: number;
53
+ source: string;
54
+ }>>;
55
+ /**
56
+ * index_mod_source_fts
57
+ * Walks the decompiled source tree of a mod and upserts every .java file into
58
+ * mod_source_files. This populates both the PostgreSQL GIN index and the SQLite
59
+ * FTS5 virtual table (via triggers) — no Ollama required.
60
+ * Safe to re-run; already-indexed files are updated in-place.
61
+ */
62
+ export declare function indexModSourceFts(dbId: number): Promise<{
63
+ status: string;
64
+ indexed: number;
65
+ skipped: number;
66
+ }>;
67
+ /**
68
+ * search_mod_source_indexed
69
+ * BM25-ranked FTS search over indexed mod source files.
70
+ * Works for any loader (fabric, neoforge, forge, quilt) — mods are filtered by dbId.
71
+ * Requires index_fts (or index_semantic) to have been run first.
72
+ */
73
+ export declare function searchModSourceIndexed(dbId: number, query: string, limit?: number): Promise<Array<{
74
+ className: string;
75
+ snippet: string;
76
+ }>>;
77
+ /**
78
+ * index_mod_source_semantic
79
+ * Walks the decompiled source tree of a mod (by dbId), upserts each .java file
80
+ * into mod_source_files (also populates FTS index), then embeds each file in
81
+ * batches using Ollama.
82
+ */
83
+ export declare function indexModSourceSemantic(dbId: number, batchSize?: number, maxFiles?: number): Promise<{
84
+ status: string;
85
+ indexed: number;
86
+ embedded: number;
87
+ skipped: number;
88
+ remaining: number;
89
+ error?: string;
90
+ }>;
91
+ /**
92
+ * search_mod_source_semantic
93
+ * Semantic (vector) search over embedded mod source files for a given dbId.
94
+ */
95
+ export declare function searchModSourceSemantic(query: string, dbId: number, limit?: number, provenance?: string): Promise<Array<{
96
+ className: string;
97
+ modId: string;
98
+ similarity: number;
99
+ source: string;
100
+ }>>;
101
+ //# sourceMappingURL=mc-fts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mc-fts.d.ts","sourceRoot":"","sources":["../../src/tools/mc-fts.ts"],"names":[],"mappings":"AAmCA;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC;IAC1E,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CACpD,CAAC,CA0CD;AAID;;;;;;GAMG;AACH,wBAAsB,eAAe,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,SAAK,GACX,OAAO,CAAC,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAMxD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1E;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACvC,OAAO,EAAE,MAAM,EACf,SAAS,SAAK,GACf,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAyCnF;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CACxC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,SAAK,EACV,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAQ3E;AAID;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACnC,IAAI,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB/D;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,SAAK,GACX,OAAO,CAAC,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAIxD;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CACxC,IAAI,EAAE,MAAM,EACZ,SAAS,SAAK,EACd,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoCpH;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CACzC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,SAAK,EACV,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAc1F"}
@@ -0,0 +1,279 @@
1
+ /**
2
+ * PostgreSQL full-text search for vanilla Minecraft source.
3
+ * index_minecraft_version: walks a completed Vineflower decompile, stores
4
+ * source in the mc_source_files table.
5
+ * search_mc_indexed: runs a fast FTS query via to_tsvector('simple', content).
6
+ *
7
+ * The GIN index is created automatically by `npm run db:setup`.
8
+ * (scripts/create-fts-index.mjs — runs after prisma migrate deploy)
9
+ */
10
+ import { readFile, readdir } from "fs/promises";
11
+ import { join, relative } from "path";
12
+ import { mcPaths } from "../minecraft.js";
13
+ import { isDecompileDone } from "../java-tools.js";
14
+ import { ensureMcVersion, findMcVersionById, findMcVersionByVersionId, updateMcVersion, upsertMcSourceFile, searchMcSourceFiles } from "../repositories/mcVersion.js";
15
+ import { findModById, upsertModSourceFile, findModSourceFilesUnembedded, countUnembeddedModSourceFiles, searchModSourceFiles } from "../repositories/mod.js";
16
+ import { embed, isOllamaAvailable, chunkText } from "../embeddings.js";
17
+ import { upsertSourceEmbedding, searchSourceByVector, countUnembedded, upsertModSourceEmbedding, searchModSourceByVector } from "../repositories/embeddings.js";
18
+ async function ensureMcVersionRecord(version) {
19
+ return ensureMcVersion(version);
20
+ }
21
+ /** Collect all .java file paths under a directory tree. */
22
+ async function collectJavaFiles(dir) {
23
+ const out = [];
24
+ const entries = await readdir(dir, { withFileTypes: true }).catch(() => []);
25
+ for (const e of entries) {
26
+ const full = join(dir, e.name);
27
+ if (e.isDirectory())
28
+ out.push(...await collectJavaFiles(full));
29
+ else if (e.name.endsWith(".java"))
30
+ out.push(full);
31
+ }
32
+ return out;
33
+ }
34
+ /**
35
+ * index_minecraft_version
36
+ * Reads the already-decompiled source tree and upserts every .java file
37
+ * into mc_source_files for FTS. Decompilation must have finished first
38
+ * (run decompile_minecraft_version and wait for status "done").
39
+ */
40
+ export async function indexMcVersion(version, force = false) {
41
+ const outDir = mcPaths.decompiled(version);
42
+ const decompStatus = await isDecompileDone(outDir);
43
+ if (decompStatus !== "done") {
44
+ throw new Error(`MC ${version} decompile is not complete (status: ${decompStatus}). ` +
45
+ `Run decompile_minecraft_version("${version}") first.`);
46
+ }
47
+ const mcVersionId = await ensureMcVersionRecord(version);
48
+ if (!force) {
49
+ const existing = await findMcVersionById(mcVersionId);
50
+ if (existing?.indexed)
51
+ return { status: "already_indexed", indexed: 0, skipped: 0 };
52
+ }
53
+ const javaFiles = await collectJavaFiles(outDir);
54
+ let indexed = 0;
55
+ let skipped = 0;
56
+ // Batch upserts in chunks of 50 to avoid huge transactions
57
+ const BATCH = 50;
58
+ for (let i = 0; i < javaFiles.length; i += BATCH) {
59
+ const chunk = javaFiles.slice(i, i + BATCH);
60
+ for (const filePath of chunk) {
61
+ const relPath = relative(outDir, filePath);
62
+ // Convert path to internal class name: com/example/Foo.java → com/example/Foo
63
+ const className = relPath.replace(/\\/g, "/").replace(/\.java$/, "");
64
+ try {
65
+ const content = await readFile(filePath, "utf8");
66
+ await upsertMcSourceFile(mcVersionId, className, content);
67
+ indexed++;
68
+ }
69
+ catch {
70
+ skipped++;
71
+ }
72
+ }
73
+ }
74
+ await updateMcVersion(mcVersionId, { indexed: true });
75
+ return { status: "done", indexed, skipped };
76
+ }
77
+ /**
78
+ * search_mc_indexed
79
+ * Fast FTS search over indexed MC source. Supports:
80
+ * - Plain text / keyword queries (uses plainto_tsquery 'simple' config — no stemming)
81
+ * - Boolean: "Entity AND tick", "player OR entity", "hurt -damage"
82
+ * - Phrase: wrap in double-quotes passed as tsquery: '"onHurt"'
83
+ */
84
+ export async function searchMcIndexed(query, version, limit = 20) {
85
+ const row = await findMcVersionByVersionId(version);
86
+ if (!row) {
87
+ throw new Error(`Version "${version}" is not in the database. Run index_minecraft_version("${version}") first.`);
88
+ }
89
+ return searchMcSourceFiles(row.id, query, limit);
90
+ }
91
+ /**
92
+ * Returns true if the FTS index has been built for this MC version.
93
+ * Checks `indexed` flag on the McVersion row.
94
+ */
95
+ export async function isMcVersionIndexed(version) {
96
+ const row = await findMcVersionByVersionId(version);
97
+ return row?.indexed === true;
98
+ }
99
+ // ── Semantic indexing ─────────────────────────────────────────────────────────
100
+ /**
101
+ * index_mc_source_semantic
102
+ * Embeds MC source files for a version using Ollama. Processes files that have
103
+ * no embedding yet (safe to re-run / resume after interruption).
104
+ *
105
+ * Only embeds the first chunk (class header ~1500 chars) — enough for semantic
106
+ * class-level search without spending hours on full-file embedding.
107
+ *
108
+ * @param version MC version string e.g. "26.1.2"
109
+ * @param batchSize Files per batch (pause between batches to avoid OOM)
110
+ */
111
+ export async function indexMcSourceSemantic(version, batchSize = 50) {
112
+ if (!await isOllamaAvailable()) {
113
+ throw new Error("Ollama is not available. Set OLLAMA_URL and ensure Ollama is running with `ollama pull nomic-embed-text`.");
114
+ }
115
+ const row = await findMcVersionByVersionId(version);
116
+ if (!row) {
117
+ throw new Error(`Version "${version}" is not in the database. Run index_minecraft_version("${version}") first.`);
118
+ }
119
+ const mcVersionId = row.id;
120
+ const remaining0 = await countUnembedded("mc_source_files", mcVersionId);
121
+ if (remaining0 === 0) {
122
+ return { status: "already_embedded", embedded: 0, skipped: 0, remaining: 0 };
123
+ }
124
+ // Fetch rows without embeddings in batches — always from offset 0
125
+ // so re-runs pick up any rows that failed in a previous pass
126
+ let embedded = 0;
127
+ let skipped = 0;
128
+ while (true) {
129
+ const { getDb } = await import("../db.js");
130
+ const _db = await getDb();
131
+ const batch = await _db.$queryRawUnsafe(`SELECT id, class_name, content FROM mc_source_files
132
+ WHERE mc_version_id = $1 AND embedding IS NULL
133
+ ORDER BY id LIMIT $2`, mcVersionId, batchSize);
134
+ if (!batch.length)
135
+ break;
136
+ for (const file of batch) {
137
+ try {
138
+ const chunkSize = parseInt(process.env.OLLAMA_EMBED_CHUNK ?? "500", 10);
139
+ const chunk = chunkText(file.content, chunkSize)[0];
140
+ const vec = await embed(chunk);
141
+ await upsertSourceEmbedding(file.id, vec);
142
+ embedded++;
143
+ }
144
+ catch {
145
+ skipped++;
146
+ }
147
+ }
148
+ await new Promise(r => setTimeout(r, 50));
149
+ }
150
+ const remaining = await countUnembedded("mc_source_files", mcVersionId);
151
+ return { status: "done", embedded, skipped, remaining };
152
+ }
153
+ /**
154
+ * search_mc_source_semantic
155
+ * Semantic (vector) search over embedded MC source files.
156
+ * Falls back to FTS if Ollama is unavailable.
157
+ */
158
+ export async function searchMcSourceSemantic(query, version, limit = 10, provenance) {
159
+ const row = await findMcVersionByVersionId(version);
160
+ if (!row) {
161
+ throw new Error(`Version "${version}" is not in the database. Run index_minecraft_version("${version}") first.`);
162
+ }
163
+ const vec = await embed(query);
164
+ const rows = await searchSourceByVector(vec, row.id, limit, provenance);
165
+ return rows.map(r => ({ className: r.class_name, similarity: Math.round(r.similarity * 1000) / 1000, source: r.embed_source ?? "local" }));
166
+ }
167
+ // ── Mod source semantic index / search ────────────────────────────────────────
168
+ /**
169
+ * index_mod_source_fts
170
+ * Walks the decompiled source tree of a mod and upserts every .java file into
171
+ * mod_source_files. This populates both the PostgreSQL GIN index and the SQLite
172
+ * FTS5 virtual table (via triggers) — no Ollama required.
173
+ * Safe to re-run; already-indexed files are updated in-place.
174
+ */
175
+ export async function indexModSourceFts(dbId) {
176
+ const mod = await findModById(dbId);
177
+ if (!mod)
178
+ throw new Error(`Mod #${dbId} not found`);
179
+ if (!mod.decompPath)
180
+ throw new Error(`Mod #${dbId} has no decompiled source. Run mod decompile first.`);
181
+ const javaFiles = await collectJavaFiles(mod.decompPath);
182
+ let indexed = 0;
183
+ let skipped = 0;
184
+ const BATCH = 50;
185
+ for (let i = 0; i < javaFiles.length; i += BATCH) {
186
+ for (const filePath of javaFiles.slice(i, i + BATCH)) {
187
+ const relPath = relative(mod.decompPath, filePath);
188
+ const className = relPath.replace(/\\/g, "/").replace(/\.java$/, "");
189
+ try {
190
+ const content = await readFile(filePath, "utf8");
191
+ await upsertModSourceFile(dbId, className, content);
192
+ indexed++;
193
+ }
194
+ catch {
195
+ skipped++;
196
+ }
197
+ }
198
+ }
199
+ return { status: "done", indexed, skipped };
200
+ }
201
+ /**
202
+ * search_mod_source_indexed
203
+ * BM25-ranked FTS search over indexed mod source files.
204
+ * Works for any loader (fabric, neoforge, forge, quilt) — mods are filtered by dbId.
205
+ * Requires index_fts (or index_semantic) to have been run first.
206
+ */
207
+ export async function searchModSourceIndexed(dbId, query, limit = 20) {
208
+ const mod = await findModById(dbId);
209
+ if (!mod)
210
+ throw new Error(`Mod #${dbId} not found`);
211
+ return searchModSourceFiles(dbId, query, limit);
212
+ }
213
+ /**
214
+ * index_mod_source_semantic
215
+ * Walks the decompiled source tree of a mod (by dbId), upserts each .java file
216
+ * into mod_source_files (also populates FTS index), then embeds each file in
217
+ * batches using Ollama.
218
+ */
219
+ export async function indexModSourceSemantic(dbId, batchSize = 50, maxFiles) {
220
+ if (!await isOllamaAvailable()) {
221
+ throw new Error("Ollama is not available. Set OLLAMA_URL and ensure Ollama is running with `ollama pull nomic-embed-text`.");
222
+ }
223
+ // Reuse FTS indexer for the file-walk step (also populates FTS index)
224
+ const { indexed, skipped: walkSkipped } = await indexModSourceFts(dbId);
225
+ // Embed in batches — always fetch from offset 0 so we never skip
226
+ // unembedded rows that were inserted after a previous failed run
227
+ let embedded = 0;
228
+ let embedSkipped = 0;
229
+ let firstError = "";
230
+ const cap = maxFiles ?? Infinity;
231
+ while (embedded + embedSkipped < cap) {
232
+ const batch = await findModSourceFilesUnembedded(dbId, Math.min(batchSize, cap - embedded - embedSkipped), 0);
233
+ if (!batch.length)
234
+ break;
235
+ for (const file of batch) {
236
+ if (embedded + embedSkipped >= cap)
237
+ break;
238
+ try {
239
+ const chunkSize = parseInt(process.env.OLLAMA_EMBED_CHUNK ?? "500", 10);
240
+ const chunk = chunkText(file.content, chunkSize)[0];
241
+ const vec = await embed(chunk);
242
+ await upsertModSourceEmbedding(file.id, vec);
243
+ embedded++;
244
+ }
245
+ catch (err) {
246
+ embedSkipped++;
247
+ if (!firstError)
248
+ firstError = err instanceof Error ? err.message : String(err);
249
+ if (embedded + embedSkipped <= 3) {
250
+ console.error(`[embed] skip ${file.id}: ${err instanceof Error ? err.message : err}`);
251
+ }
252
+ }
253
+ }
254
+ await new Promise(r => setTimeout(r, 50));
255
+ }
256
+ const remaining = await countUnembeddedModSourceFiles(dbId);
257
+ return { status: "done", indexed, embedded, skipped: walkSkipped + embedSkipped, remaining, ...(firstError ? { error: firstError } : {}) };
258
+ }
259
+ /**
260
+ * search_mod_source_semantic
261
+ * Semantic (vector) search over embedded mod source files for a given dbId.
262
+ */
263
+ export async function searchModSourceSemantic(query, dbId, limit = 10, provenance) {
264
+ if (!await isOllamaAvailable()) {
265
+ throw new Error("Ollama is not available. Set OLLAMA_URL and ensure Ollama is running with `ollama pull nomic-embed-text`.");
266
+ }
267
+ const mod = await findModById(dbId);
268
+ if (!mod)
269
+ throw new Error(`Mod #${dbId} not found`);
270
+ const vec = await embed(query);
271
+ const rows = await searchModSourceByVector(vec, dbId, limit, provenance);
272
+ return rows.map(r => ({
273
+ className: r.class_name,
274
+ modId: mod.modId,
275
+ similarity: Math.round(r.similarity * 1000) / 1000,
276
+ source: r.embed_source ?? "local",
277
+ }));
278
+ }
279
+ //# sourceMappingURL=mc-fts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mc-fts.js","sourceRoot":"","sources":["../../src/tools/mc-fts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /** List all available Minecraft versions from the summary branch. */
2
+ export declare function getMcmetaVersions(filter?: "release" | "snapshot" | "all"): Promise<object>;
3
+ /** Get block state properties and defaults for a MC version. */
4
+ export declare function getMcBlocks(version?: string): Promise<object>;
5
+ /** Get the Brigadier command tree for a MC version. */
6
+ export declare function getMcCommands(version?: string): Promise<object>;
7
+ /** Get registry list (summary) or a specific registry's entries. */
8
+ export declare function getMcRegistries(version?: string, registry?: string): Promise<object>;
9
+ /** Get sounds.json for a MC version. */
10
+ export declare function getMcSounds(version?: string): Promise<object>;
11
+ /** Get item component definitions for a MC version. */
12
+ export declare function getMcItemComponents(version?: string): Promise<object>;
13
+ /** Get or list files from the data/data-json branch (vanilla datapack). */
14
+ export declare function getMcDataFile(filePath: string, version?: string, jsonOnly?: boolean): Promise<object>;
15
+ /** Get or download a file from the assets branch. Binary files (png, ogg) return cached path. */
16
+ export declare function getMcAssetFile(filePath: string, version?: string, jsonOnly?: boolean): Promise<object>;
17
+ /** List files within a directory on a specific branch/version by reading cache or using the GitHub tree API. */
18
+ export declare function listMcDataFiles(dirPath: string, version: string, branch: string): Promise<object>;
19
+ /** Compare a data/asset file between two MC versions using the diff branch. */
20
+ export declare function diffMcData(filePath: string, versionA: string, versionB: string, branch?: string): Promise<object>;
21
+ /** Get texture atlas data from the atlas branch. */
22
+ export declare function getMcAtlas(version?: string, atlas?: string): Promise<object>;
23
+ /** Fetch any arbitrary file from mcmeta by specifying the full ref and path. */
24
+ export declare function getMcmetaRaw(ref: string, filePath: string): Promise<object>;
25
+ /** Get registry entries from the dedicated registries branch for a specific registry. */
26
+ export declare function getRegistryEntries(registry: string, version?: string): Promise<object>;
27
+ /**
28
+ * Compare two Minecraft versions using the GitHub compare API on the given branch.
29
+ * Returns the list of files added, modified, and removed between the two versions.
30
+ * Results are cached to ~/.modlens-cache/mcmeta/compare/{versionA}..{versionB}/{branch}.json
31
+ */
32
+ export declare function compareVersions(versionA: string, versionB: string, branch?: string): Promise<object>;
33
+ /**
34
+ * Get the list of files changed in a specific Minecraft version
35
+ * by comparing it to its parent commit in the given branch.
36
+ *
37
+ * Uses the GitHub commits API to fetch the diff for the version's commit.
38
+ * Results are cached to ~/.modlens-cache/mcmeta/changelog/{version}/{branch}.json
39
+ */
40
+ export declare function getVersionChangelog(version: string, branch?: string): Promise<object>;
41
+ //# sourceMappingURL=mcmeta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcmeta.d.ts","sourceRoot":"","sources":["../../src/tools/mcmeta.ts"],"names":[],"mappings":"AAqFA,qEAAqE;AACrE,wBAAsB,iBAAiB,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAShG;AAED,gEAAgE;AAChE,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,uDAAuD;AACvD,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIrE;AAED,oEAAoE;AACpE,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB1F;AAED,wCAAwC;AACxC,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,uDAAuD;AACvD,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI3E;AAED,2EAA2E;AAC3E,wBAAsB,aAAa,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,UAAQ,GACjB,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,iGAAiG;AACjG,wBAAsB,cAAc,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,UAAQ,GACjB,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED,gHAAgH;AAChH,wBAAsB,eAAe,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAED,+EAA+E;AAC/E,wBAAsB,UAAU,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,SAAS,GAChB,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,oDAAoD;AACpD,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAalF;AAED,gFAAgF;AAChF,wBAAsB,YAAY,CAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED,yFAAyF;AACzF,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB5F;AAID;;;;GAIG;AACH,wBAAsB,eAAe,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,SAAS,GAChB,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,SAAS,GAChB,OAAO,CAAC,MAAM,CAAC,CAsCjB"}