mcmodding-mcp 0.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 (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +324 -0
  3. package/dist/db-versioning.d.ts +31 -0
  4. package/dist/db-versioning.d.ts.map +1 -0
  5. package/dist/db-versioning.js +206 -0
  6. package/dist/db-versioning.js.map +1 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +202 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/indexer/chunker.d.ts +32 -0
  12. package/dist/indexer/chunker.d.ts.map +1 -0
  13. package/dist/indexer/chunker.js +157 -0
  14. package/dist/indexer/chunker.js.map +1 -0
  15. package/dist/indexer/crawler.d.ts +28 -0
  16. package/dist/indexer/crawler.d.ts.map +1 -0
  17. package/dist/indexer/crawler.js +550 -0
  18. package/dist/indexer/crawler.js.map +1 -0
  19. package/dist/indexer/embeddings.d.ts +56 -0
  20. package/dist/indexer/embeddings.d.ts.map +1 -0
  21. package/dist/indexer/embeddings.js +200 -0
  22. package/dist/indexer/embeddings.js.map +1 -0
  23. package/dist/indexer/sitemap.d.ts +35 -0
  24. package/dist/indexer/sitemap.d.ts.map +1 -0
  25. package/dist/indexer/sitemap.js +263 -0
  26. package/dist/indexer/sitemap.js.map +1 -0
  27. package/dist/indexer/store.d.ts +237 -0
  28. package/dist/indexer/store.d.ts.map +1 -0
  29. package/dist/indexer/store.js +857 -0
  30. package/dist/indexer/store.js.map +1 -0
  31. package/dist/indexer/types.d.ts +77 -0
  32. package/dist/indexer/types.d.ts.map +1 -0
  33. package/dist/indexer/types.js +2 -0
  34. package/dist/indexer/types.js.map +1 -0
  35. package/dist/indexer/updater.d.ts +52 -0
  36. package/dist/indexer/updater.d.ts.map +1 -0
  37. package/dist/indexer/updater.js +263 -0
  38. package/dist/indexer/updater.js.map +1 -0
  39. package/dist/services/concept-service.d.ts +49 -0
  40. package/dist/services/concept-service.d.ts.map +1 -0
  41. package/dist/services/concept-service.js +554 -0
  42. package/dist/services/concept-service.js.map +1 -0
  43. package/dist/services/example-service.d.ts +52 -0
  44. package/dist/services/example-service.d.ts.map +1 -0
  45. package/dist/services/example-service.js +302 -0
  46. package/dist/services/example-service.js.map +1 -0
  47. package/dist/services/search-service.d.ts +54 -0
  48. package/dist/services/search-service.d.ts.map +1 -0
  49. package/dist/services/search-service.js +519 -0
  50. package/dist/services/search-service.js.map +1 -0
  51. package/dist/services/search-utils.d.ts +34 -0
  52. package/dist/services/search-utils.d.ts.map +1 -0
  53. package/dist/services/search-utils.js +239 -0
  54. package/dist/services/search-utils.js.map +1 -0
  55. package/dist/tools/explainConcept.d.ts +9 -0
  56. package/dist/tools/explainConcept.d.ts.map +1 -0
  57. package/dist/tools/explainConcept.js +93 -0
  58. package/dist/tools/explainConcept.js.map +1 -0
  59. package/dist/tools/getExample.d.ts +20 -0
  60. package/dist/tools/getExample.d.ts.map +1 -0
  61. package/dist/tools/getExample.js +88 -0
  62. package/dist/tools/getExample.js.map +1 -0
  63. package/dist/tools/getMinecraftVersion.d.ts +6 -0
  64. package/dist/tools/getMinecraftVersion.d.ts.map +1 -0
  65. package/dist/tools/getMinecraftVersion.js +57 -0
  66. package/dist/tools/getMinecraftVersion.js.map +1 -0
  67. package/dist/tools/searchDocs.d.ts +15 -0
  68. package/dist/tools/searchDocs.d.ts.map +1 -0
  69. package/dist/tools/searchDocs.js +144 -0
  70. package/dist/tools/searchDocs.js.map +1 -0
  71. package/package.json +111 -0
  72. package/scripts/postinstall.js +859 -0
@@ -0,0 +1,237 @@
1
+ import type { DocumentPage, IndexStats } from './types.js';
2
+ import type { DocumentChunk } from './chunker.js';
3
+ export interface ChunkResult {
4
+ id: string;
5
+ content: string;
6
+ chunk_type: string;
7
+ section_heading: string | null;
8
+ section_level: number | null;
9
+ code_language: string | null;
10
+ has_code: number;
11
+ document_id: number;
12
+ url: string;
13
+ title: string;
14
+ category: string;
15
+ loader: string;
16
+ minecraft_version: string | null;
17
+ }
18
+ export declare class DocumentStore {
19
+ private db;
20
+ constructor(dbPath: string);
21
+ private initializeSchema;
22
+ private initializeMetadata;
23
+ needsUpdate(url: string, hash: string): boolean;
24
+ storeDocument(doc: DocumentPage): number;
25
+ private storeSection;
26
+ storeChunks(chunks: DocumentChunk[], documentId: number): void;
27
+ searchChunks(query: string, category?: string, loader?: string, limit?: number): unknown[];
28
+ searchDocuments(query: string, category?: string, loader?: string, limit?: number): unknown[];
29
+ getStats(): IndexStats;
30
+ updateTimestamp(): void;
31
+ getAllUrls(): string[];
32
+ storeEmbeddings(embeddings: Array<{
33
+ chunkId: string;
34
+ embedding: number[];
35
+ }>, model: string): void;
36
+ getEmbedding(chunkId: string): number[] | undefined;
37
+ getAllEmbeddings(): Array<{
38
+ chunkId: string;
39
+ embedding: number[];
40
+ }>;
41
+ getEmbeddingsBatch(batchSize?: number, offset?: number): Array<{
42
+ chunkId: string;
43
+ embedding: number[];
44
+ }>;
45
+ getEmbeddingCount(): number;
46
+ deleteEmbeddings(documentId: number): void;
47
+ getDocumentsByVersion(version: string): unknown[];
48
+ getAllVersions(): string[];
49
+ searchByVersion(query: string, version: string, category?: string, loader?: string, limit?: number): unknown[];
50
+ getEmbeddingStats(): {
51
+ totalEmbeddings: number;
52
+ models: Array<{
53
+ model: string;
54
+ count: number;
55
+ }>;
56
+ };
57
+ searchCodeExamples(topic: string, options?: {
58
+ language?: string;
59
+ minecraftVersion?: string;
60
+ loader?: string;
61
+ category?: string;
62
+ limit?: number;
63
+ }): Array<{
64
+ id: string;
65
+ content: string;
66
+ chunk_type: string;
67
+ section_heading: string | null;
68
+ section_level: number | null;
69
+ code_language: string;
70
+ has_code: number;
71
+ document_id: number;
72
+ url: string;
73
+ title: string;
74
+ category: string;
75
+ loader: string;
76
+ minecraft_version: string | null;
77
+ rank: number;
78
+ }>;
79
+ getCodeBlocksWithContext(documentId: number): Array<{
80
+ id: number;
81
+ language: string;
82
+ code: string;
83
+ caption: string | null;
84
+ section_heading: string;
85
+ section_level: number;
86
+ section_content: string;
87
+ document_id: number;
88
+ document_title: string;
89
+ document_url: string;
90
+ category: string;
91
+ loader: string;
92
+ minecraft_version: string | null;
93
+ }>;
94
+ getCodeBlocksByLanguage(language: string, options?: {
95
+ loader?: string;
96
+ minecraftVersion?: string;
97
+ limit?: number;
98
+ }): Array<{
99
+ id: number;
100
+ language: string;
101
+ code: string;
102
+ caption: string | null;
103
+ section_heading: string;
104
+ section_level: number;
105
+ section_content: string;
106
+ document_id: number;
107
+ document_title: string;
108
+ document_url: string;
109
+ category: string;
110
+ loader: string;
111
+ minecraft_version: string | null;
112
+ }>;
113
+ searchSections(query: string, options?: {
114
+ loader?: string;
115
+ minecraftVersion?: string;
116
+ category?: string;
117
+ limit?: number;
118
+ }): Array<{
119
+ id: number;
120
+ heading: string;
121
+ level: number;
122
+ content: string;
123
+ order_num: number;
124
+ document_id: number;
125
+ document_title: string;
126
+ document_url: string;
127
+ category: string;
128
+ loader: string;
129
+ minecraft_version: string | null;
130
+ }>;
131
+ getAvailableLanguages(): Array<{
132
+ language: string;
133
+ count: number;
134
+ }>;
135
+ findSimilarChunks(embedding: number[], options?: {
136
+ limit?: number;
137
+ loader?: string;
138
+ minecraftVersion?: string;
139
+ category?: string;
140
+ }): {
141
+ similarity: number;
142
+ id: string;
143
+ content: string;
144
+ chunk_type: string;
145
+ section_heading: string | null;
146
+ section_level: number | null;
147
+ code_language: string | null;
148
+ has_code: number;
149
+ document_id: number;
150
+ url: string;
151
+ title: string;
152
+ category: string;
153
+ loader: string;
154
+ minecraft_version: string | null;
155
+ chunk_id: string;
156
+ embedding: Buffer;
157
+ }[];
158
+ private cosineSimilarity;
159
+ searchChunksAdvanced(ftsQuery: string, likePatterns: string[], options?: {
160
+ hasCode?: boolean;
161
+ language?: string;
162
+ loader?: string;
163
+ minecraftVersion?: string;
164
+ category?: string;
165
+ limit?: number;
166
+ }): {
167
+ id: string;
168
+ content: string;
169
+ chunk_type: string;
170
+ section_heading: string | null;
171
+ section_level: number | null;
172
+ code_language: string | null;
173
+ has_code: number;
174
+ document_id: number;
175
+ url: string;
176
+ title: string;
177
+ category: string;
178
+ loader: string;
179
+ minecraft_version: string | null;
180
+ }[];
181
+ searchDocumentsLike(patterns: string[], options?: {
182
+ loader?: string;
183
+ minecraftVersion?: string;
184
+ category?: string;
185
+ limit?: number;
186
+ }): {
187
+ id: number;
188
+ url: string;
189
+ title: string;
190
+ content: string;
191
+ category: string;
192
+ loader: string;
193
+ minecraft_version: string | null;
194
+ }[];
195
+ searchCodeBlocksByPatterns(codePatterns: string[], options?: {
196
+ language?: string;
197
+ loader?: string;
198
+ minecraftVersion?: string;
199
+ limit?: number;
200
+ }): {
201
+ id: number;
202
+ language: string;
203
+ code: string;
204
+ caption: string | null;
205
+ section_heading: string;
206
+ section_level: number;
207
+ section_content: string;
208
+ document_id: number;
209
+ document_title: string;
210
+ document_url: string;
211
+ category: string;
212
+ loader: string;
213
+ minecraft_version: string | null;
214
+ }[];
215
+ getAllCodeBlocksWithContext(options?: {
216
+ language?: string;
217
+ loader?: string;
218
+ minecraftVersion?: string;
219
+ limit?: number;
220
+ }): Array<{
221
+ id: number;
222
+ language: string;
223
+ code: string;
224
+ caption: string | null;
225
+ section_heading: string;
226
+ section_level: number;
227
+ section_content: string;
228
+ document_id: number;
229
+ document_title: string;
230
+ document_url: string;
231
+ category: string;
232
+ loader: string;
233
+ minecraft_version: string | null;
234
+ }>;
235
+ close(): void;
236
+ }
237
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/indexer/store.ts"],"names":[],"mappings":"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"}