@siemens/ix-mcp-angular 4.2.0-v.1.7.9 → 4.2.0-v.1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -1
- package/config.json +1 -1
- package/database/vectors.db/documents.lance/_transactions/8-bdbf3cf8-39d4-40bc-b1cc-e4ad000ed48b.txn +0 -0
- package/database/vectors.db/documents.lance/_versions/10.manifest +0 -0
- package/database/vectors.db/documents.lance/data/01010010100010100101010099f6644103b3ef429a2b08a963.lance +0 -0
- package/dist/src/cli.js +7 -7
- package/dist/src/cli.js.map +1 -1
- package/dist/src/config.d.ts +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/db-handler.d.ts +17 -14
- package/dist/src/db-handler.d.ts.map +1 -1
- package/dist/src/db-handler.js +199 -87
- package/dist/src/db-handler.js.map +1 -1
- package/dist/src/embeddings.d.ts +0 -7
- package/dist/src/embeddings.d.ts.map +1 -1
- package/dist/src/embeddings.js +0 -20
- package/dist/src/embeddings.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +20 -26
- package/dist/src/index.js.map +1 -1
- package/dist/src/setup.d.ts +2 -0
- package/dist/src/setup.d.ts.map +1 -1
- package/dist/src/setup.js +125 -9
- package/dist/src/setup.js.map +1 -1
- package/package.json +15 -4
- package/database/vectors.db +0 -0
package/README.md
CHANGED
|
@@ -10,7 +10,8 @@ with design system and component library APIs.
|
|
|
10
10
|
- Local MCP server installation includes all design system documentation, component APIs, examples
|
|
11
11
|
and icon information
|
|
12
12
|
- MCP server integration with your AI Agent setup of choice, integrated into your IDE (for example,
|
|
13
|
-
GitHub Copilot Agent integration within VS Code with project-related MCP
|
|
13
|
+
GitHub Copilot Agent integration within VS Code, or OpenCode, with project-related MCP
|
|
14
|
+
configuration)
|
|
14
15
|
- Use cases include (but are not limited to):
|
|
15
16
|
- Get design system best practice information
|
|
16
17
|
- Export components
|
|
@@ -143,6 +144,9 @@ During `init` or `setup`, select which configuration(s) to create:
|
|
|
143
144
|
|
|
144
145
|
- **Local VS Code / GitHub Copilot (Repository)** creates a VS Code MCP configuration file at
|
|
145
146
|
`.vscode/mcp.json` in the current repository
|
|
147
|
+
- **OpenCode (Repository)** creates `opencode.json` in the current repository for OpenCode AI
|
|
148
|
+
- **OpenCode Global Settings** updates global OpenCode configuration
|
|
149
|
+
(`~/.config/opencode/opencode.json`)
|
|
146
150
|
- **Cline Global Settings** updates global Cline MCP configuration
|
|
147
151
|
- **VS Code / GitHub Copilot Global Config** writes user-level MCP config
|
|
148
152
|
- **Zed Global Settings** configures Zed editor / agent MCP
|
|
@@ -325,6 +329,42 @@ If you prefer to set up the configurations manually, here are the required files
|
|
|
325
329
|
}
|
|
326
330
|
```
|
|
327
331
|
|
|
332
|
+
### OpenCode (Local or Global)
|
|
333
|
+
|
|
334
|
+
For repository-level configuration, create `opencode.json` in your project root:
|
|
335
|
+
|
|
336
|
+
```json
|
|
337
|
+
{
|
|
338
|
+
"$schema": "https://opencode.ai/config.json",
|
|
339
|
+
"mcp": {
|
|
340
|
+
"ix-mcp-angular": {
|
|
341
|
+
"type": "local",
|
|
342
|
+
"command": ["npx", "-y", "@siemens/ix-mcp-angular"],
|
|
343
|
+
"enabled": true
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
"instructions": ["iX.instructions.md"]
|
|
347
|
+
}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
For global configuration, edit `~/.config/opencode/opencode.json`:
|
|
351
|
+
|
|
352
|
+
```json
|
|
353
|
+
{
|
|
354
|
+
"$schema": "https://opencode.ai/config.json",
|
|
355
|
+
"mcp": {
|
|
356
|
+
"ix-mcp-angular": {
|
|
357
|
+
"type": "local",
|
|
358
|
+
"command": ["npx", "-y", "@siemens/ix-mcp-angular"],
|
|
359
|
+
"enabled": true
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
Learn more about OpenCode configuration at
|
|
366
|
+
[https://opencode.ai/docs/config](https://opencode.ai/docs/config).
|
|
367
|
+
|
|
328
368
|
## License
|
|
329
369
|
|
|
330
370
|
The following applies for code and documentation of the git repository, unless explicitly mentioned.
|
package/config.json
CHANGED
package/database/vectors.db/documents.lance/_transactions/8-bdbf3cf8-39d4-40bc-b1cc-e4ad000ed48b.txn
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/src/cli.js
CHANGED
|
@@ -15,13 +15,13 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
15
15
|
const config = loadConfig();
|
|
16
16
|
const program = new Command();
|
|
17
17
|
const binName = config.binName; // 'mcp'
|
|
18
|
-
const
|
|
18
|
+
const documentedName = config.documentedName; // 'Design System'
|
|
19
19
|
const projectName = config.projectName; // 'SDL'
|
|
20
|
-
program.name(binName).description(`${projectName} MCP Server CLI - Set up local MCP configurations for ${
|
|
20
|
+
program.name(binName).description(`${projectName} MCP Server CLI - Set up local MCP configurations for ${documentedName} documentation access
|
|
21
21
|
|
|
22
22
|
This tool creates an MCP (Model Context Protocol) server configuration in your repository
|
|
23
23
|
root, allowing AI tools like VS Code Copilot to access
|
|
24
|
-
${
|
|
24
|
+
${documentedName} documentation and provide intelligent assistance with ${documentedName} components.
|
|
25
25
|
</parameter>
|
|
26
26
|
|
|
27
27
|
Repository Detection:
|
|
@@ -44,7 +44,7 @@ This creates:
|
|
|
44
44
|
${config.agentsFile
|
|
45
45
|
? `
|
|
46
46
|
Optional AI agent instruction files:
|
|
47
|
-
.github/instructions/${
|
|
47
|
+
.github/instructions/${documentedName}.instructions.md # ${documentedName}-specific instructions for AI agents
|
|
48
48
|
.github/copilot-instructions.md # General instructions for AI agents
|
|
49
49
|
AGENTS.md # Repository root instructions for AI agents
|
|
50
50
|
`
|
|
@@ -56,7 +56,7 @@ Note: Run this from your project directory or any subdirectory`)
|
|
|
56
56
|
});
|
|
57
57
|
program
|
|
58
58
|
.command('setup-token')
|
|
59
|
-
.description(`Configure your personal LLM token for ${
|
|
59
|
+
.description(`Configure your personal LLM token for ${documentedName} documentation access`)
|
|
60
60
|
.addHelpText('after', `
|
|
61
61
|
Examples:
|
|
62
62
|
$ ${binName} setup-token # Set up your personal token
|
|
@@ -141,7 +141,7 @@ This command:
|
|
|
141
141
|
console.error('Troubleshooting:');
|
|
142
142
|
console.error(` 1. Ensure ${config.name /* 'MCP package' */} is installed`);
|
|
143
143
|
console.error(` 2. Check your LLM token is configured: ${binName} setup-token`);
|
|
144
|
-
console.error(` 3. Verify network connectivity to ${
|
|
144
|
+
console.error(` 3. Verify network connectivity to ${documentedName} documentation`);
|
|
145
145
|
process.exit(1);
|
|
146
146
|
}
|
|
147
147
|
});
|
|
@@ -225,7 +225,7 @@ Quick Start:
|
|
|
225
225
|
2. Run: ${binName} init
|
|
226
226
|
3. Follow the prompts to set up your token
|
|
227
227
|
4. Restart VS Code or your AI tool
|
|
228
|
-
5. Ask questions about ${
|
|
228
|
+
5. Ask questions about ${documentedName} components!
|
|
229
229
|
|
|
230
230
|
Examples:
|
|
231
231
|
${binName} init # Complete first-time setup
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/mcp/cli.ts"],"names":[],"mappings":";AAEA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAE5B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ;AACxC,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/mcp/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config.d.ts
CHANGED
package/dist/src/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/mcp/config.ts"],"names":[],"mappings":"AAgDA,iBAAS,UAAU;UAjCP,MAAM;iBACC,MAAM;iBACN,MAAM;aACV,MAAM;sBACG,MAAM;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/mcp/config.ts"],"names":[],"mappings":"AAgDA,iBAAS,UAAU;UAjCP,MAAM;iBACC,MAAM;iBACN,MAAM;aACV,MAAM;sBACG,MAAM;oBACR,MAAM;iBACT,MAAM;oBACH,MAAM;iBACT,OAAO;yBACC,MAAM;eAChB,MAAM;2BACM,MAAM;iBAChB,OAAO;0BACE,MAAM;2BACL,OAAO;sBACZ,MAAM,EAAE;WACnB;QACL,sBAAsB,EAAE,MAAM,CAAC;QAC/B,2BAA2B,EAAE,MAAM,CAAC;QACpC,4BAA4B,EAAE,MAAM,CAAC;QACrC,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,4BAA4B,CAAC,EAAE,MAAM,CAAC;QACtC,6BAA6B,CAAC,EAAE,MAAM,CAAC;QACvC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;EAgBN;AAED,iBAAS,aAAa,CAAC,UAAU,EAAE,MAAM,QAQxC;AAED,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/src/db-handler.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export interface DocumentRow {
|
|
2
2
|
id: string;
|
|
3
3
|
content: string;
|
|
4
|
-
|
|
4
|
+
vector: number[];
|
|
5
5
|
chunk_index: number;
|
|
6
6
|
type: string;
|
|
7
7
|
header_path: string | undefined;
|
|
@@ -23,25 +23,28 @@ export interface ChunkData {
|
|
|
23
23
|
}
|
|
24
24
|
export declare class DatabaseHandler {
|
|
25
25
|
private db;
|
|
26
|
-
private
|
|
26
|
+
private table;
|
|
27
27
|
private verbose;
|
|
28
|
+
private dbPath;
|
|
29
|
+
private tableName;
|
|
28
30
|
constructor(dbPath: string, options?: {
|
|
29
31
|
verbose?: boolean;
|
|
30
32
|
});
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
initialize(): Promise<void>;
|
|
34
|
+
getDocumentCount(): Promise<number>;
|
|
35
|
+
getDocumentsByType(type: string): Promise<DocumentRow[]>;
|
|
36
|
+
getAllDocuments(): Promise<DocumentRow[]>;
|
|
37
|
+
insertDocument(chunk: ChunkData, embedding: number[]): Promise<void>;
|
|
38
|
+
insertDocumentsBatch(chunks: ChunkData[], embeddings: number[][]): Promise<void>;
|
|
39
|
+
clearAllDocuments(): Promise<number>;
|
|
40
|
+
clearDocumentsByType(type: string): Promise<number>;
|
|
41
|
+
vectorSearch(queryVector: number[], limit: number, type?: string): Promise<DocumentRow[]>;
|
|
40
42
|
close(): void;
|
|
41
|
-
|
|
42
|
-
getStats(): {
|
|
43
|
+
getStats(): Promise<{
|
|
43
44
|
totalDocuments: number;
|
|
44
45
|
documentsByType: Record<string, number>;
|
|
45
|
-
}
|
|
46
|
+
}>;
|
|
47
|
+
cleanupOldVersions(): Promise<void>;
|
|
48
|
+
private normalizeRow;
|
|
46
49
|
}
|
|
47
50
|
//# sourceMappingURL=db-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-handler.d.ts","sourceRoot":"","sources":["../../../src/mcp/db-handler.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"db-handler.d.ts","sourceRoot":"","sources":["../../../src/mcp/db-handler.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAiC;IAC3C,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAe;gBAEpB,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;IAWrD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAanC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAaxD,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAazC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BpE,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BhF,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAepC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBnD,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAmB/F,KAAK,IAAI,IAAI;IAQP,QAAQ,IAAI,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IA8BxF,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BzC,OAAO,CAAC,YAAY;CAcrB"}
|
package/dist/src/db-handler.js
CHANGED
|
@@ -2,142 +2,254 @@
|
|
|
2
2
|
* Copyright (c) Siemens 2016 - 2025
|
|
3
3
|
* SPDX-License-Identifier: MIT
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import * as lancedb from '@lancedb/lancedb';
|
|
6
6
|
import * as fs from 'fs';
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
export class DatabaseHandler {
|
|
9
9
|
db;
|
|
10
|
-
|
|
10
|
+
table;
|
|
11
11
|
verbose;
|
|
12
|
+
dbPath;
|
|
13
|
+
tableName = 'documents';
|
|
12
14
|
constructor(dbPath, options) {
|
|
13
15
|
this.verbose = options?.verbose || false;
|
|
16
|
+
this.dbPath = dbPath;
|
|
14
17
|
// Ensure database directory exists
|
|
15
18
|
const dbDir = path.dirname(dbPath);
|
|
16
19
|
if (!fs.existsSync(dbDir)) {
|
|
17
20
|
fs.mkdirSync(dbDir, { recursive: true });
|
|
18
21
|
}
|
|
19
|
-
this.db = new Database(dbPath);
|
|
20
|
-
this.db.pragma('journal_mode = WAL');
|
|
21
|
-
this.initializeDatabase();
|
|
22
|
-
this.prepareStatements();
|
|
23
|
-
if (!this.insertStmt) {
|
|
24
|
-
throw new Error('Failed to initialize prepared statements');
|
|
25
|
-
}
|
|
26
22
|
}
|
|
27
|
-
|
|
23
|
+
async initialize() {
|
|
28
24
|
try {
|
|
29
|
-
|
|
30
|
-
this.db.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
)
|
|
43
|
-
`);
|
|
44
|
-
// Create index for faster queries
|
|
45
|
-
this.db.exec(`
|
|
46
|
-
CREATE INDEX IF NOT EXISTS idx_type ON documents(type);
|
|
47
|
-
`);
|
|
48
|
-
if (this.verbose) {
|
|
49
|
-
const count = this.getDocumentCount();
|
|
50
|
-
console.log(`Database ready with ${count} documentation chunks`);
|
|
25
|
+
this.db = await lancedb.connect(this.dbPath);
|
|
26
|
+
const tableNames = await this.db.tableNames();
|
|
27
|
+
if (tableNames.includes(this.tableName)) {
|
|
28
|
+
this.table = await this.db.openTable(this.tableName);
|
|
29
|
+
if (this.verbose) {
|
|
30
|
+
const count = await this.getDocumentCount();
|
|
31
|
+
console.log(`Database ready with ${count} documentation chunks`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
if (this.verbose) {
|
|
36
|
+
console.log('Database ready (no tables yet)');
|
|
37
|
+
}
|
|
51
38
|
}
|
|
52
39
|
}
|
|
53
40
|
catch (error) {
|
|
54
|
-
throw new Error(`Failed to initialize
|
|
41
|
+
throw new Error(`Failed to initialize LanceDB database: ${error}`);
|
|
55
42
|
}
|
|
56
43
|
}
|
|
57
|
-
|
|
44
|
+
async getDocumentCount() {
|
|
45
|
+
if (!this.table) {
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
58
48
|
try {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
62
|
-
`);
|
|
49
|
+
const count = await this.table.countRows();
|
|
50
|
+
return count;
|
|
63
51
|
}
|
|
64
52
|
catch (error) {
|
|
65
|
-
|
|
53
|
+
console.warn('Error counting documents:', error);
|
|
54
|
+
return 0;
|
|
66
55
|
}
|
|
67
56
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
57
|
+
async getDocumentsByType(type) {
|
|
58
|
+
if (!this.table) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
const results = await this.table.query().where(`type = '${type}'`).toArray();
|
|
63
|
+
return results.map(row => this.normalizeRow(row));
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.warn(`Error getting documents by type ${type}:`, error);
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
79
69
|
}
|
|
80
|
-
|
|
81
|
-
if (!this.
|
|
82
|
-
|
|
70
|
+
async getAllDocuments() {
|
|
71
|
+
if (!this.table) {
|
|
72
|
+
return [];
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const results = await this.table.query().toArray();
|
|
76
|
+
return results.map(row => this.normalizeRow(row));
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
console.warn('Error getting all documents:', error);
|
|
80
|
+
return [];
|
|
83
81
|
}
|
|
84
|
-
this.insertStmt.run(chunk.chunkId, chunk.content, JSON.stringify(embedding), chunk.chunkIndex, chunk.type, chunk.headerPath, chunk.headerLevel, chunk.category, chunk.terms, chunk.tokenCount);
|
|
85
82
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
async insertDocument(chunk, embedding) {
|
|
84
|
+
if (!this.db) {
|
|
85
|
+
throw new Error('Database not initialized - call initialize() first');
|
|
86
|
+
}
|
|
87
|
+
const data = [
|
|
88
|
+
{
|
|
89
|
+
id: chunk.chunkId,
|
|
90
|
+
content: chunk.content,
|
|
91
|
+
vector: embedding,
|
|
92
|
+
chunk_index: chunk.chunkIndex,
|
|
93
|
+
type: chunk.type,
|
|
94
|
+
header_path: chunk.headerPath || '',
|
|
95
|
+
header_level: chunk.headerLevel || 0,
|
|
96
|
+
category: chunk.category || '',
|
|
97
|
+
terms: chunk.terms || '',
|
|
98
|
+
token_count: chunk.tokenCount
|
|
90
99
|
}
|
|
91
|
-
|
|
92
|
-
|
|
100
|
+
];
|
|
101
|
+
if (!this.table) {
|
|
102
|
+
this.table = await this.db.createTable(this.tableName, data);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
await this.table.add(data);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async insertDocumentsBatch(chunks, embeddings) {
|
|
109
|
+
if (!this.db) {
|
|
110
|
+
throw new Error('Database not initialized - call initialize() first');
|
|
111
|
+
}
|
|
112
|
+
if (chunks.length !== embeddings.length) {
|
|
113
|
+
throw new Error('Chunks and embeddings arrays must have the same length');
|
|
114
|
+
}
|
|
115
|
+
const data = chunks.map((chunk, i) => ({
|
|
116
|
+
id: chunk.chunkId,
|
|
117
|
+
content: chunk.content,
|
|
118
|
+
vector: embeddings[i],
|
|
119
|
+
chunk_index: chunk.chunkIndex,
|
|
120
|
+
type: chunk.type,
|
|
121
|
+
header_path: chunk.headerPath || '',
|
|
122
|
+
header_level: chunk.headerLevel || 0,
|
|
123
|
+
category: chunk.category || '',
|
|
124
|
+
terms: chunk.terms || '',
|
|
125
|
+
token_count: chunk.tokenCount
|
|
126
|
+
}));
|
|
127
|
+
if (!this.table) {
|
|
128
|
+
this.table = await this.db.createTable(this.tableName, data);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
await this.table.add(data);
|
|
132
|
+
}
|
|
93
133
|
}
|
|
94
|
-
clearAllDocuments() {
|
|
134
|
+
async clearAllDocuments() {
|
|
135
|
+
if (!this.db || !this.table) {
|
|
136
|
+
return 0;
|
|
137
|
+
}
|
|
95
138
|
try {
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
139
|
+
const count = await this.table.countRows();
|
|
140
|
+
await this.db.dropTable(this.tableName);
|
|
141
|
+
this.table = undefined;
|
|
142
|
+
return count;
|
|
99
143
|
}
|
|
100
144
|
catch (error) {
|
|
101
145
|
console.warn('Error clearing existing data:', error);
|
|
102
146
|
return 0;
|
|
103
147
|
}
|
|
104
148
|
}
|
|
105
|
-
clearDocumentsByType(type) {
|
|
149
|
+
async clearDocumentsByType(type) {
|
|
150
|
+
if (!this.table) {
|
|
151
|
+
return 0;
|
|
152
|
+
}
|
|
106
153
|
try {
|
|
107
|
-
const
|
|
108
|
-
const
|
|
109
|
-
|
|
154
|
+
const docs = await this.getDocumentsByType(type);
|
|
155
|
+
const count = docs.length;
|
|
156
|
+
if (count > 0) {
|
|
157
|
+
const deleteExpr = `type = '${type}'`;
|
|
158
|
+
await this.table.delete(deleteExpr);
|
|
159
|
+
}
|
|
160
|
+
return count;
|
|
110
161
|
}
|
|
111
162
|
catch (error) {
|
|
112
163
|
console.warn(`Error clearing ${type} data:`, error);
|
|
113
164
|
return 0;
|
|
114
165
|
}
|
|
115
166
|
}
|
|
116
|
-
|
|
117
|
-
if (this.
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
167
|
+
async vectorSearch(queryVector, limit, type) {
|
|
168
|
+
if (!this.table) {
|
|
169
|
+
return [];
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
let query = this.table.query().nearestTo(queryVector).limit(limit);
|
|
173
|
+
if (type) {
|
|
174
|
+
query = query.where(`type = '${type}'`);
|
|
121
175
|
}
|
|
176
|
+
const results = await query.toArray();
|
|
177
|
+
return results.map(row => this.normalizeRow(row));
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
console.warn('Error performing vector search:', error);
|
|
181
|
+
return [];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
close() {
|
|
185
|
+
if (this.db && this.verbose) {
|
|
186
|
+
console.log('Database connection closed');
|
|
122
187
|
}
|
|
188
|
+
this.db = undefined;
|
|
189
|
+
this.table = undefined;
|
|
123
190
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
191
|
+
async getStats() {
|
|
192
|
+
if (!this.table) {
|
|
193
|
+
return {
|
|
194
|
+
totalDocuments: 0,
|
|
195
|
+
documentsByType: {}
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
const total = await this.getDocumentCount();
|
|
200
|
+
const allDocs = await this.getAllDocuments();
|
|
201
|
+
const documentsByType = {};
|
|
202
|
+
for (const doc of allDocs) {
|
|
203
|
+
documentsByType[doc.type] = (documentsByType[doc.type] || 0) + 1;
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
totalDocuments: total,
|
|
207
|
+
documentsByType
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
console.warn('Error getting stats:', error);
|
|
212
|
+
return {
|
|
213
|
+
totalDocuments: 0,
|
|
214
|
+
documentsByType: {}
|
|
215
|
+
};
|
|
216
|
+
}
|
|
128
217
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
218
|
+
async cleanupOldVersions() {
|
|
219
|
+
if (!this.table) {
|
|
220
|
+
if (this.verbose) {
|
|
221
|
+
console.log('No table to cleanup');
|
|
222
|
+
}
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
if (this.verbose) {
|
|
227
|
+
console.log('Cleaning up old table versions...');
|
|
228
|
+
}
|
|
229
|
+
await this.table.optimize({
|
|
230
|
+
cleanupOlderThan: new Date(),
|
|
231
|
+
deleteUnverified: false
|
|
232
|
+
});
|
|
233
|
+
if (this.verbose) {
|
|
234
|
+
console.log('Old versions cleaned up successfully');
|
|
235
|
+
}
|
|
137
236
|
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
console.warn('Error cleaning up old versions:', error);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
normalizeRow(row) {
|
|
138
242
|
return {
|
|
139
|
-
|
|
140
|
-
|
|
243
|
+
id: String(row.id || ''),
|
|
244
|
+
content: String(row.content || ''),
|
|
245
|
+
vector: Array.isArray(row.vector) ? row.vector : [],
|
|
246
|
+
chunk_index: typeof row.chunk_index === 'number' ? row.chunk_index : 0,
|
|
247
|
+
type: String(row.type || 'documentation'),
|
|
248
|
+
header_path: row.header_path ? String(row.header_path) : undefined,
|
|
249
|
+
header_level: typeof row.header_level === 'number' && row.header_level > 0 ? row.header_level : undefined,
|
|
250
|
+
category: row.category ? String(row.category) : undefined,
|
|
251
|
+
terms: row.terms ? String(row.terms) : undefined,
|
|
252
|
+
token_count: typeof row.token_count === 'number' ? row.token_count : 0
|
|
141
253
|
};
|
|
142
254
|
}
|
|
143
255
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-handler.js","sourceRoot":"","sources":["../../../src/mcp/db-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"db-handler.js","sourceRoot":"","sources":["../../../src/mcp/db-handler.ts"],"names":[],"mappings":"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"}
|