@noyrax/5d-database-plugin 0.1.14-beta.4 → 0.1.14-beta.5

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.
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Debug Tool: Plugin ID Verification
4
+ *
5
+ * Verifies plugin ID calculation and checks database for matching plugin IDs.
6
+ * Useful for debugging foreign system issues where plugin IDs don't match.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=debug-plugin-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-plugin-id.d.ts","sourceRoot":"","sources":["../../src/cli/debug-plugin-id.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}
@@ -0,0 +1,188 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Debug Tool: Plugin ID Verification
5
+ *
6
+ * Verifies plugin ID calculation and checks database for matching plugin IDs.
7
+ * Useful for debugging foreign system issues where plugin IDs don't match.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ const path = __importStar(require("path"));
44
+ const crypto = __importStar(require("crypto"));
45
+ const sqlite3 = __importStar(require("sqlite3"));
46
+ const fs = __importStar(require("fs"));
47
+ /**
48
+ * Calculates plugin ID using the same method as MultiDbManager.
49
+ */
50
+ function calculatePluginId(workspaceRoot) {
51
+ const normalizedPath = path.resolve(workspaceRoot).replace(/\\/g, '/').toLowerCase();
52
+ const hash = crypto.createHash('sha256').update(normalizedPath).digest('hex');
53
+ return hash.substring(0, 16);
54
+ }
55
+ /**
56
+ * Gets all unique plugin IDs from a database.
57
+ */
58
+ function getPluginIdsFromDatabase(dbPath, tableName) {
59
+ return new Promise((resolve, reject) => {
60
+ if (!fs.existsSync(dbPath)) {
61
+ resolve([]);
62
+ return;
63
+ }
64
+ const db = new sqlite3.Database(dbPath, sqlite3.OPEN_READONLY, (err) => {
65
+ if (err) {
66
+ reject(err);
67
+ return;
68
+ }
69
+ });
70
+ db.all(`SELECT DISTINCT plugin_id FROM ${tableName} WHERE plugin_id IS NOT NULL`, [], (err, rows) => {
71
+ db.close();
72
+ if (err) {
73
+ reject(err);
74
+ }
75
+ else {
76
+ resolve(rows.map(r => r.plugin_id));
77
+ }
78
+ });
79
+ });
80
+ }
81
+ /**
82
+ * Main debug function.
83
+ */
84
+ async function debugPluginId(workspaceRoot) {
85
+ console.log('=== Plugin ID Debug Tool ===\n');
86
+ console.log(`Workspace Root: ${workspaceRoot}\n`);
87
+ // 1. Calculate plugin ID
88
+ const calculatedPluginId = calculatePluginId(workspaceRoot);
89
+ const normalizedPath = path.resolve(workspaceRoot).replace(/\\/g, '/').toLowerCase();
90
+ console.log('1. Plugin ID Calculation:');
91
+ console.log(` Normalized Path: ${normalizedPath}`);
92
+ console.log(` Calculated Plugin ID: ${calculatedPluginId}\n`);
93
+ // 2. Check databases
94
+ const dbDirectory = path.join(workspaceRoot, '.database-plugin');
95
+ if (!fs.existsSync(dbDirectory)) {
96
+ console.log('2. Database Directory:');
97
+ console.log(` ❌ Not found: ${dbDirectory}`);
98
+ console.log(` → Run ingestion first: noyrax-5d-database ingest <workspace-root>`);
99
+ return;
100
+ }
101
+ console.log('2. Database Plugin IDs:');
102
+ const dbFiles = [
103
+ { file: 'modules.db', table: 'modules', name: 'X (Modules)' },
104
+ { file: 'symbols.db', table: 'symbols', name: 'Y (Symbols)' },
105
+ { file: 'dependencies.db', table: 'dependencies', name: 'Z (Dependencies)' },
106
+ { file: 'adrs.db', table: 'adrs', name: 'W (ADRs)' },
107
+ { file: 'changes.db', table: 'change_reports', name: 'T (Changes)' }
108
+ ];
109
+ const allPluginIds = new Set();
110
+ for (const { file, table, name } of dbFiles) {
111
+ const dbPath = path.join(dbDirectory, file);
112
+ try {
113
+ const pluginIds = await getPluginIdsFromDatabase(dbPath, table);
114
+ console.log(` ${name}:`);
115
+ if (pluginIds.length === 0) {
116
+ console.log(` ⚠️ No plugin IDs found (database empty or table doesn't exist)`);
117
+ }
118
+ else {
119
+ pluginIds.forEach(id => {
120
+ allPluginIds.add(id);
121
+ const match = id === calculatedPluginId;
122
+ console.log(` ${match ? '✅' : '❌'} ${id} ${match ? '(MATCH)' : '(MISMATCH)'}`);
123
+ });
124
+ }
125
+ }
126
+ catch (error) {
127
+ console.log(` ${name}:`);
128
+ console.log(` ❌ Error: ${error.message}`);
129
+ }
130
+ }
131
+ console.log('\n3. Summary:');
132
+ if (allPluginIds.size === 0) {
133
+ console.log(' ⚠️ No plugin IDs found in databases');
134
+ console.log(' → Run ingestion first: noyrax-5d-database ingest <workspace-root>');
135
+ }
136
+ else if (allPluginIds.has(calculatedPluginId)) {
137
+ console.log(` ✅ Plugin ID matches: ${calculatedPluginId}`);
138
+ console.log(' → All queries should work correctly');
139
+ }
140
+ else {
141
+ console.log(` ❌ Plugin ID mismatch!`);
142
+ console.log(` → Calculated: ${calculatedPluginId}`);
143
+ console.log(` → In Database: ${Array.from(allPluginIds).join(', ')}`);
144
+ console.log('\n Possible causes:');
145
+ console.log(' 1. Workspace root changed after ingestion');
146
+ console.log(' 2. Ingestion was run with different workspace root');
147
+ console.log(' 3. Plugin ID calculation method changed');
148
+ console.log('\n Solution:');
149
+ console.log(' → Re-run ingestion with current workspace root:');
150
+ console.log(` noyrax-5d-database ingest "${workspaceRoot}" --full`);
151
+ }
152
+ console.log('\n4. Verification Query:');
153
+ const modulesDb = path.join(dbDirectory, 'modules.db');
154
+ if (fs.existsSync(modulesDb)) {
155
+ try {
156
+ const db = new sqlite3.Database(modulesDb, sqlite3.OPEN_READONLY);
157
+ db.get(`SELECT COUNT(*) as count FROM modules WHERE plugin_id = ?`, [calculatedPluginId], (err, row) => {
158
+ db.close();
159
+ if (err) {
160
+ console.log(` ❌ Error: ${err.message}`);
161
+ }
162
+ else {
163
+ const count = row?.count || 0;
164
+ console.log(` Modules with calculated Plugin ID: ${count}`);
165
+ if (count === 0) {
166
+ console.log(' ⚠️ No modules found with calculated Plugin ID');
167
+ }
168
+ else {
169
+ console.log(` ✅ Found ${count} module(s) with matching Plugin ID`);
170
+ }
171
+ }
172
+ });
173
+ }
174
+ catch (error) {
175
+ console.log(` ❌ Error: ${error.message}`);
176
+ }
177
+ }
178
+ else {
179
+ console.log(' ⚠️ modules.db not found');
180
+ }
181
+ }
182
+ // CLI entry point
183
+ const workspaceRoot = process.argv[2] || process.cwd();
184
+ debugPluginId(workspaceRoot).catch(error => {
185
+ console.error('Error:', error);
186
+ process.exit(1);
187
+ });
188
+ //# sourceMappingURL=debug-plugin-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-plugin-id.js","sourceRoot":"","sources":["../../src/cli/debug-plugin-id.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@noyrax/5d-database-plugin",
3
3
  "displayName": "5D Database Plugin",
4
4
  "description": "5-dimensional database layer for documentation system with semantic brain integration. Provides SQLite databases for modules, symbols, dependencies, ADRs, and changes. Includes semantic search and MCP server integration for AI agents.",
5
- "version": "0.1.14-beta.4",
5
+ "version": "0.1.14-beta.5",
6
6
  "publisher": "noyrax",
7
7
  "license": "MIT",
8
8
  "repository": {
@@ -64,7 +64,8 @@
64
64
  "noyrax-5d-database-query": "./out/cli/query-cli.js",
65
65
  "noyrax-5d-database-tool": "./out/cli/tool-cli.js",
66
66
  "noyrax-5d-database-search": "./out/cli/semantic-search-cli.js",
67
- "noyrax-5d-database-embedding": "./out/cli/embedding-cli.js"
67
+ "noyrax-5d-database-embedding": "./out/cli/embedding-cli.js",
68
+ "noyrax-5d-database-debug-plugin-id": "./out/cli/debug-plugin-id.js"
68
69
  },
69
70
  "contributes": {
70
71
  "commands": [