@creeperhost/modlens-mcp 1.6.0 → 1.6.4

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 (135) hide show
  1. package/README.md +950 -938
  2. package/dist/cli.js +267 -267
  3. package/dist/db-backend.d.ts +14 -1
  4. package/dist/db-backend.d.ts.map +1 -1
  5. package/dist/db-backend.js +13 -0
  6. package/dist/db-backend.js.map +1 -1
  7. package/dist/generated/sqlite/internal/class.d.ts.map +1 -1
  8. package/dist/generated/sqlite/internal/class.js +5 -4
  9. package/dist/generated/sqlite/internal/class.js.map +1 -1
  10. package/dist/launcher.js +4 -1
  11. package/dist/launcher.js.map +1 -1
  12. package/dist/platform.d.ts.map +1 -1
  13. package/dist/platform.js +6 -2
  14. package/dist/platform.js.map +1 -1
  15. package/dist/repositories/embeddings-sqlite.js +21 -21
  16. package/dist/repositories/embeddings.js +28 -28
  17. package/dist/repositories/mod.d.ts +7 -0
  18. package/dist/repositories/mod.d.ts.map +1 -1
  19. package/dist/repositories/mod.js +56 -15
  20. package/dist/repositories/mod.js.map +1 -1
  21. package/dist/search-adapter.js +51 -51
  22. package/dist/security.d.ts +9 -0
  23. package/dist/security.d.ts.map +1 -1
  24. package/dist/security.js +19 -0
  25. package/dist/security.js.map +1 -1
  26. package/dist/server.js +1248 -1217
  27. package/dist/server.js.map +1 -1
  28. package/dist/tools/compat-check.js +9 -9
  29. package/dist/tools/docs.d.ts.map +1 -1
  30. package/dist/tools/docs.js +4 -3
  31. package/dist/tools/docs.js.map +1 -1
  32. package/dist/tools/embed-registry.js +9 -9
  33. package/dist/tools/graphify.js +14 -14
  34. package/dist/tools/ingest.d.ts.map +1 -1
  35. package/dist/tools/ingest.js +4 -3
  36. package/dist/tools/ingest.js.map +1 -1
  37. package/dist/tools/kubejs.d.ts.map +1 -1
  38. package/dist/tools/kubejs.js +2 -0
  39. package/dist/tools/kubejs.js.map +1 -1
  40. package/dist/tools/mappings.d.ts.map +1 -1
  41. package/dist/tools/mappings.js +2 -1
  42. package/dist/tools/mappings.js.map +1 -1
  43. package/dist/tools/mc-fts.js +2 -2
  44. package/dist/tools/mcmeta.js +2 -2
  45. package/dist/tools/mcmeta.js.map +1 -1
  46. package/dist/tools/mixin-scan.d.ts +1 -1
  47. package/dist/tools/mixin-scan.d.ts.map +1 -1
  48. package/dist/tools/mixin-scan.js +29 -35
  49. package/dist/tools/mixin-scan.js.map +1 -1
  50. package/dist/tools/mod-data.js +2 -2
  51. package/dist/tools/mod-data.js.map +1 -1
  52. package/dist/tools/modpacks-ch.js +2 -2
  53. package/dist/tools/modpacks-ch.js.map +1 -1
  54. package/dist/tools/packtools.js +4 -4
  55. package/dist/tools/packtools.js.map +1 -1
  56. package/dist/tools/primers.d.ts.map +1 -1
  57. package/dist/tools/primers.js +4 -3
  58. package/dist/tools/primers.js.map +1 -1
  59. package/dist/tools/reports.d.ts.map +1 -1
  60. package/dist/tools/reports.js +8 -4
  61. package/dist/tools/reports.js.map +1 -1
  62. package/dist/tools/vanilla-data.js +2 -2
  63. package/dist/tools/vanilla-data.js.map +1 -1
  64. package/dist/tools/version-diff.js +3 -3
  65. package/package.json +70 -62
  66. package/prisma/backends/schema.sqlite.prisma +215 -215
  67. package/prisma/schema.prisma +303 -303
  68. package/scripts/backup.mjs +151 -151
  69. package/scripts/check-atm10.mjs +27 -27
  70. package/scripts/check-sync.mjs +13 -13
  71. package/scripts/create-fts-index.mjs +50 -50
  72. package/scripts/enable-pgvector.mjs +90 -90
  73. package/scripts/enable-sqlite-vec.mjs +158 -158
  74. package/scripts/migrate-backend.mjs +188 -188
  75. package/scripts/migrate-embed-provenance.mjs +80 -80
  76. package/scripts/migrate-metadata-source.mjs +62 -62
  77. package/scripts/migrate-mod-source-files.mjs +67 -67
  78. package/scripts/post-update.mjs +77 -77
  79. package/scripts/verify-atm10.mjs +63 -63
  80. package/dist/access-flags.test.d.ts +0 -2
  81. package/dist/access-flags.test.d.ts.map +0 -1
  82. package/dist/access-flags.test.js +0 -189
  83. package/dist/access-flags.test.js.map +0 -1
  84. package/dist/fetch-utils.test.d.ts +0 -2
  85. package/dist/fetch-utils.test.d.ts.map +0 -1
  86. package/dist/fetch-utils.test.js +0 -133
  87. package/dist/fetch-utils.test.js.map +0 -1
  88. package/dist/mappings.test.d.ts +0 -2
  89. package/dist/mappings.test.d.ts.map +0 -1
  90. package/dist/mappings.test.js +0 -161
  91. package/dist/mappings.test.js.map +0 -1
  92. package/dist/processor.test.d.ts +0 -2
  93. package/dist/processor.test.d.ts.map +0 -1
  94. package/dist/processor.test.js +0 -629
  95. package/dist/processor.test.js.map +0 -1
  96. package/dist/search.test.d.ts +0 -2
  97. package/dist/search.test.d.ts.map +0 -1
  98. package/dist/search.test.js +0 -71
  99. package/dist/search.test.js.map +0 -1
  100. package/dist/security.test.d.ts +0 -2
  101. package/dist/security.test.d.ts.map +0 -1
  102. package/dist/security.test.js +0 -687
  103. package/dist/security.test.js.map +0 -1
  104. package/dist/tools/compat-check.test.d.ts +0 -2
  105. package/dist/tools/compat-check.test.d.ts.map +0 -1
  106. package/dist/tools/compat-check.test.js +0 -179
  107. package/dist/tools/compat-check.test.js.map +0 -1
  108. package/dist/tools/diagnostics.test.d.ts +0 -2
  109. package/dist/tools/diagnostics.test.d.ts.map +0 -1
  110. package/dist/tools/diagnostics.test.js +0 -168
  111. package/dist/tools/diagnostics.test.js.map +0 -1
  112. package/dist/tools/graphify.test.d.ts +0 -2
  113. package/dist/tools/graphify.test.d.ts.map +0 -1
  114. package/dist/tools/graphify.test.js +0 -39
  115. package/dist/tools/graphify.test.js.map +0 -1
  116. package/dist/tools/ingest.test.d.ts +0 -2
  117. package/dist/tools/ingest.test.d.ts.map +0 -1
  118. package/dist/tools/ingest.test.js +0 -340
  119. package/dist/tools/ingest.test.js.map +0 -1
  120. package/dist/tools/mod-tags.test.d.ts +0 -2
  121. package/dist/tools/mod-tags.test.d.ts.map +0 -1
  122. package/dist/tools/mod-tags.test.js +0 -75
  123. package/dist/tools/mod-tags.test.js.map +0 -1
  124. package/dist/tools/packtools.test.d.ts +0 -2
  125. package/dist/tools/packtools.test.d.ts.map +0 -1
  126. package/dist/tools/packtools.test.js +0 -99
  127. package/dist/tools/packtools.test.js.map +0 -1
  128. package/dist/tools/version-diff.test.d.ts +0 -2
  129. package/dist/tools/version-diff.test.d.ts.map +0 -1
  130. package/dist/tools/version-diff.test.js +0 -102
  131. package/dist/tools/version-diff.test.js.map +0 -1
  132. package/dist/validate.test.d.ts +0 -2
  133. package/dist/validate.test.d.ts.map +0 -1
  134. package/dist/validate.test.js +0 -73
  135. package/dist/validate.test.js.map +0 -1
@@ -1,215 +1,215 @@
1
- // prisma/backends/schema.sqlite.prisma
2
- generator client {
3
- // New Rust-free client: no native query-engine binary. Queries run through a
4
- // portable WASM query compiler driven by the better-sqlite3 driver adapter,
5
- // so the prebuilt client ships and runs on every platform.
6
- provider = "prisma-client"
7
- engineType = "client"
8
- output = "../../src/generated/sqlite"
9
- runtime = "nodejs"
10
- moduleFormat = "esm"
11
- }
12
-
13
- datasource db {
14
- provider = "sqlite"
15
- url = env("DATABASE_URL")
16
- }
17
-
18
- model Mod {
19
- id Int @id @default(autoincrement())
20
- modId String @map("mod_id")
21
- displayName String @map("display_name")
22
- version String
23
- mcVersion String @map("mc_version")
24
- loader String
25
- jarPath String @unique @map("jar_path")
26
- sha256 String?
27
- murmur2 String?
28
- sha512 String?
29
- sourcePath String? @map("source_path")
30
- decompPath String? @map("decomp_path")
31
- decompiled Boolean @default(false)
32
- graphPath String? @map("graph_path")
33
- modrinthId String? @map("modrinth_id")
34
- curseforgeId Int? @map("curseforge_id")
35
- hasMixins Boolean @default(false) @map("has_mixins")
36
- hasAt Boolean @default(false) @map("has_at")
37
- hasAw Boolean @default(false) @map("has_aw")
38
- mixinConfigs String @default("[]") @map("mixin_configs")
39
- mixinTargets String @default("[]") @map("mixin_targets")
40
- atEntries String @default("[]") @map("at_entries")
41
- awEntries String @default("[]") @map("aw_entries")
42
- dependencies String @default("[]")
43
- metadata String @default("{}")
44
- metadataSource String? @map("metadata_source")
45
- tags String @default("[]")
46
- ingestedAt DateTime @default(now()) @map("ingested_at")
47
- updatedAt DateTime @updatedAt @map("updated_at")
48
-
49
- classes ModClass[]
50
- modTags ModTag[]
51
- sourceFiles ModSourceFile[]
52
-
53
- @@unique([modId, version, mcVersion, loader])
54
- @@index([modId])
55
- @@index([mcVersion])
56
- @@index([loader])
57
- @@index([modrinthId])
58
- @@index([curseforgeId])
59
- @@map("mods")
60
- }
61
-
62
- model ModClass {
63
- id Int @id @default(autoincrement())
64
- modId Int @map("mod_id")
65
- className String @map("class_name")
66
- superClass String? @map("super_class")
67
- interfaces String @default("[]")
68
- accessFlags Int @default(0) @map("access_flags")
69
-
70
- mod Mod @relation(fields: [modId], references: [id], onDelete: Cascade)
71
-
72
- @@unique([modId, className])
73
- @@index([className])
74
- @@index([modId])
75
- @@map("mod_classes")
76
- }
77
-
78
- model McVersion {
79
- id Int @id @default(autoincrement())
80
- versionId String @unique @map("version_id")
81
- type String @default("release")
82
- jarPath String? @map("jar_path")
83
- decompPath String? @map("decomp_path")
84
- decompiled Boolean @default(false)
85
- indexed Boolean @default(false)
86
- releaseTime DateTime @map("release_time")
87
- createdAt DateTime @default(now()) @map("created_at")
88
-
89
- sourceFiles McSourceFile[]
90
-
91
- @@map("mc_versions")
92
- }
93
-
94
- // ── Cached AST-level version diffs ──────────────────────────────────────────
95
- // SQLite: result stored as TEXT (JSON string) instead of Json type.
96
-
97
- model McVersionDiff {
98
- id Int @id @default(autoincrement())
99
- versionA String @map("version_a")
100
- versionB String @map("version_b")
101
- packagesHash String @default("all") @map("packages_hash")
102
- result String // SQLite: JSON stored as TEXT
103
- createdAt DateTime @default(now()) @map("created_at")
104
-
105
- @@unique([versionA, versionB, packagesHash])
106
- @@index([versionA, versionB])
107
- @@map("mc_version_diffs")
108
- }
109
-
110
- // ── Cached AST-level mod version diffs ────────────────────────────────────────
111
- // SQLite: result stored as TEXT (JSON string) instead of Json type.
112
-
113
- model ModVersionDiff {
114
- id Int @id @default(autoincrement())
115
- modDbIdA Int @map("mod_db_id_a")
116
- modDbIdB Int @map("mod_db_id_b")
117
- packagesHash String @default("all") @map("packages_hash")
118
- result String // SQLite: JSON stored as TEXT
119
- createdAt DateTime @default(now()) @map("created_at")
120
-
121
- @@unique([modDbIdA, modDbIdB, packagesHash])
122
- @@index([modDbIdA, modDbIdB])
123
- @@map("mod_version_diffs")
124
- }
125
-
126
- model ModTag {
127
- id Int @id @default(autoincrement())
128
- modId Int @map("mod_id")
129
- mod Mod @relation(fields: [modId], references: [id], onDelete: Cascade)
130
- registry String
131
- tagPath String @map("tag_path")
132
- namespace String
133
- entries String @default("[]")
134
- replace Boolean @default(false)
135
-
136
- @@index([modId])
137
- @@index([tagPath])
138
- @@index([registry, tagPath])
139
- @@index([namespace])
140
- @@map("mod_tags")
141
- }
142
-
143
- model McSourceFile {
144
- id Int @id @default(autoincrement())
145
- mcVersionId Int @map("mc_version_id")
146
- className String @map("class_name")
147
- content String
148
- embedding Bytes?
149
- embedSource String? @map("embed_source")
150
- embedUpdatedAt DateTime? @map("embed_updated_at")
151
-
152
- mcVersion McVersion @relation(fields: [mcVersionId], references: [id], onDelete: Cascade)
153
-
154
- @@unique([mcVersionId, className])
155
- @@index([mcVersionId])
156
- @@map("mc_source_files")
157
- }
158
-
159
- model ModSourceFile {
160
- id Int @id @default(autoincrement())
161
- modId Int @map("mod_id")
162
- className String @map("class_name")
163
- content String
164
- embedding Bytes?
165
- embedSource String? @map("embed_source")
166
- embedUpdatedAt DateTime? @map("embed_updated_at")
167
-
168
- mod Mod @relation(fields: [modId], references: [id], onDelete: Cascade)
169
-
170
- @@unique([modId, className])
171
- @@index([modId])
172
- @@map("mod_source_files")
173
- }
174
-
175
- model DocEntry {
176
- id Int @id @default(autoincrement())
177
- className String? @map("class_name")
178
- title String
179
- summary String?
180
- url String
181
- category String @default("minecraft")
182
- tags String @default("[]")
183
- namespace String @default("vanilla")
184
- source String @default("manual")
185
- createdAt DateTime @default(now()) @map("created_at")
186
- updatedAt DateTime @updatedAt @map("updated_at")
187
- embedding Bytes?
188
-
189
- @@index([className])
190
- @@index([category])
191
- @@map("doc_entries")
192
- }
193
-
194
- model Primer {
195
- id Int @id @default(autoincrement())
196
- fromVersion String @map("from_version")
197
- toVersion String @map("to_version")
198
- fromDataVersion Int? @map("from_data_version")
199
- toDataVersion Int? @map("to_data_version")
200
- modloader String @default("neoforge")
201
- title String
202
- summary String?
203
- url String @unique
204
- content String?
205
- tags String @default("[]")
206
- source String @default("manual")
207
- createdAt DateTime @default(now()) @map("created_at")
208
- updatedAt DateTime @updatedAt @map("updated_at")
209
- embedding Bytes?
210
-
211
- @@index([fromVersion, toVersion])
212
- @@index([fromDataVersion, toDataVersion])
213
- @@index([modloader])
214
- @@map("primers")
215
- }
1
+ // prisma/backends/schema.sqlite.prisma
2
+ generator client {
3
+ // New Rust-free client: no native query-engine binary. Queries run through a
4
+ // portable WASM query compiler driven by the better-sqlite3 driver adapter,
5
+ // so the prebuilt client ships and runs on every platform.
6
+ provider = "prisma-client"
7
+ engineType = "client"
8
+ output = "../../src/generated/sqlite"
9
+ runtime = "nodejs"
10
+ moduleFormat = "esm"
11
+ }
12
+
13
+ datasource db {
14
+ provider = "sqlite"
15
+ url = env("DATABASE_URL")
16
+ }
17
+
18
+ model Mod {
19
+ id Int @id @default(autoincrement())
20
+ modId String @map("mod_id")
21
+ displayName String @map("display_name")
22
+ version String
23
+ mcVersion String @map("mc_version")
24
+ loader String
25
+ jarPath String @unique @map("jar_path")
26
+ sha256 String?
27
+ murmur2 String?
28
+ sha512 String?
29
+ sourcePath String? @map("source_path")
30
+ decompPath String? @map("decomp_path")
31
+ decompiled Boolean @default(false)
32
+ graphPath String? @map("graph_path")
33
+ modrinthId String? @map("modrinth_id")
34
+ curseforgeId Int? @map("curseforge_id")
35
+ hasMixins Boolean @default(false) @map("has_mixins")
36
+ hasAt Boolean @default(false) @map("has_at")
37
+ hasAw Boolean @default(false) @map("has_aw")
38
+ mixinConfigs String @default("[]") @map("mixin_configs")
39
+ mixinTargets String @default("[]") @map("mixin_targets")
40
+ atEntries String @default("[]") @map("at_entries")
41
+ awEntries String @default("[]") @map("aw_entries")
42
+ dependencies String @default("[]")
43
+ metadata String @default("{}")
44
+ metadataSource String? @map("metadata_source")
45
+ tags String @default("[]")
46
+ ingestedAt DateTime @default(now()) @map("ingested_at")
47
+ updatedAt DateTime @updatedAt @map("updated_at")
48
+
49
+ classes ModClass[]
50
+ modTags ModTag[]
51
+ sourceFiles ModSourceFile[]
52
+
53
+ @@unique([modId, version, mcVersion, loader])
54
+ @@index([modId])
55
+ @@index([mcVersion])
56
+ @@index([loader])
57
+ @@index([modrinthId])
58
+ @@index([curseforgeId])
59
+ @@map("mods")
60
+ }
61
+
62
+ model ModClass {
63
+ id Int @id @default(autoincrement())
64
+ modId Int @map("mod_id")
65
+ className String @map("class_name")
66
+ superClass String? @map("super_class")
67
+ interfaces String @default("[]")
68
+ accessFlags Int @default(0) @map("access_flags")
69
+
70
+ mod Mod @relation(fields: [modId], references: [id], onDelete: Cascade)
71
+
72
+ @@unique([modId, className])
73
+ @@index([className])
74
+ @@index([modId])
75
+ @@map("mod_classes")
76
+ }
77
+
78
+ model McVersion {
79
+ id Int @id @default(autoincrement())
80
+ versionId String @unique @map("version_id")
81
+ type String @default("release")
82
+ jarPath String? @map("jar_path")
83
+ decompPath String? @map("decomp_path")
84
+ decompiled Boolean @default(false)
85
+ indexed Boolean @default(false)
86
+ releaseTime DateTime @map("release_time")
87
+ createdAt DateTime @default(now()) @map("created_at")
88
+
89
+ sourceFiles McSourceFile[]
90
+
91
+ @@map("mc_versions")
92
+ }
93
+
94
+ // ── Cached AST-level version diffs ──────────────────────────────────────────
95
+ // SQLite: result stored as TEXT (JSON string) instead of Json type.
96
+
97
+ model McVersionDiff {
98
+ id Int @id @default(autoincrement())
99
+ versionA String @map("version_a")
100
+ versionB String @map("version_b")
101
+ packagesHash String @default("all") @map("packages_hash")
102
+ result String // SQLite: JSON stored as TEXT
103
+ createdAt DateTime @default(now()) @map("created_at")
104
+
105
+ @@unique([versionA, versionB, packagesHash])
106
+ @@index([versionA, versionB])
107
+ @@map("mc_version_diffs")
108
+ }
109
+
110
+ // ── Cached AST-level mod version diffs ────────────────────────────────────────
111
+ // SQLite: result stored as TEXT (JSON string) instead of Json type.
112
+
113
+ model ModVersionDiff {
114
+ id Int @id @default(autoincrement())
115
+ modDbIdA Int @map("mod_db_id_a")
116
+ modDbIdB Int @map("mod_db_id_b")
117
+ packagesHash String @default("all") @map("packages_hash")
118
+ result String // SQLite: JSON stored as TEXT
119
+ createdAt DateTime @default(now()) @map("created_at")
120
+
121
+ @@unique([modDbIdA, modDbIdB, packagesHash])
122
+ @@index([modDbIdA, modDbIdB])
123
+ @@map("mod_version_diffs")
124
+ }
125
+
126
+ model ModTag {
127
+ id Int @id @default(autoincrement())
128
+ modId Int @map("mod_id")
129
+ mod Mod @relation(fields: [modId], references: [id], onDelete: Cascade)
130
+ registry String
131
+ tagPath String @map("tag_path")
132
+ namespace String
133
+ entries String @default("[]")
134
+ replace Boolean @default(false)
135
+
136
+ @@index([modId])
137
+ @@index([tagPath])
138
+ @@index([registry, tagPath])
139
+ @@index([namespace])
140
+ @@map("mod_tags")
141
+ }
142
+
143
+ model McSourceFile {
144
+ id Int @id @default(autoincrement())
145
+ mcVersionId Int @map("mc_version_id")
146
+ className String @map("class_name")
147
+ content String
148
+ embedding Bytes?
149
+ embedSource String? @map("embed_source")
150
+ embedUpdatedAt DateTime? @map("embed_updated_at")
151
+
152
+ mcVersion McVersion @relation(fields: [mcVersionId], references: [id], onDelete: Cascade)
153
+
154
+ @@unique([mcVersionId, className])
155
+ @@index([mcVersionId])
156
+ @@map("mc_source_files")
157
+ }
158
+
159
+ model ModSourceFile {
160
+ id Int @id @default(autoincrement())
161
+ modId Int @map("mod_id")
162
+ className String @map("class_name")
163
+ content String
164
+ embedding Bytes?
165
+ embedSource String? @map("embed_source")
166
+ embedUpdatedAt DateTime? @map("embed_updated_at")
167
+
168
+ mod Mod @relation(fields: [modId], references: [id], onDelete: Cascade)
169
+
170
+ @@unique([modId, className])
171
+ @@index([modId])
172
+ @@map("mod_source_files")
173
+ }
174
+
175
+ model DocEntry {
176
+ id Int @id @default(autoincrement())
177
+ className String? @map("class_name")
178
+ title String
179
+ summary String?
180
+ url String
181
+ category String @default("minecraft")
182
+ tags String @default("[]")
183
+ namespace String @default("vanilla")
184
+ source String @default("manual")
185
+ createdAt DateTime @default(now()) @map("created_at")
186
+ updatedAt DateTime @updatedAt @map("updated_at")
187
+ embedding Bytes?
188
+
189
+ @@index([className])
190
+ @@index([category])
191
+ @@map("doc_entries")
192
+ }
193
+
194
+ model Primer {
195
+ id Int @id @default(autoincrement())
196
+ fromVersion String @map("from_version")
197
+ toVersion String @map("to_version")
198
+ fromDataVersion Int? @map("from_data_version")
199
+ toDataVersion Int? @map("to_data_version")
200
+ modloader String @default("neoforge")
201
+ title String
202
+ summary String?
203
+ url String @unique
204
+ content String?
205
+ tags String @default("[]")
206
+ source String @default("manual")
207
+ createdAt DateTime @default(now()) @map("created_at")
208
+ updatedAt DateTime @updatedAt @map("updated_at")
209
+ embedding Bytes?
210
+
211
+ @@index([fromVersion, toVersion])
212
+ @@index([fromDataVersion, toDataVersion])
213
+ @@index([modloader])
214
+ @@map("primers")
215
+ }