devsmind-mcp 2.0.1 → 2.0.2
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 +4 -1
- package/dist/cli/index.js +24 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.js +46 -44
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/runner.d.ts +7 -0
- package/dist/cli/runner.js +301 -3
- package/dist/cli/runner.js.map +1 -1
- package/dist/db/database.d.ts +5 -2
- package/dist/db/database.js +31 -2
- package/dist/db/database.js.map +1 -1
- package/dist/db/schema.d.ts +1 -1
- package/dist/db/schema.js +6 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/mcp/server.js +6 -8
- package/dist/mcp/server.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/runner.js
CHANGED
|
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.runBackgroundIndexing = runBackgroundIndexing;
|
|
37
|
+
exports.runBackgroundReindexing = runBackgroundReindexing;
|
|
37
38
|
const fs = __importStar(require("fs"));
|
|
38
39
|
const path = __importStar(require("path"));
|
|
39
40
|
const http = __importStar(require("http"));
|
|
@@ -816,9 +817,8 @@ async function runBackgroundIndexing(opts) {
|
|
|
816
817
|
const pctDone = fileLines > 0 ? Math.round((parseInt(lineNum) / fileLines) * 100) : 0;
|
|
817
818
|
const lineTag = lineNum !== '?' ? `\x1B[90mL${lineNum}/${fileLines} (${pctDone}% through file)\x1B[0m` : `\x1B[90m(line unknown)\x1B[0m`;
|
|
818
819
|
progress.log(`\x1B[32m+\x1B[0m \x1B[1m${n.name}\x1B[0m \x1B[90m[${n.type}]\x1B[0m ${lineTag}`);
|
|
819
|
-
const
|
|
820
|
-
const
|
|
821
|
-
const qualifiedId = `${relPath}#${n.node_id}`;
|
|
820
|
+
const repoRelPath = db.toRepoRelativePath(fileObj.absolutePath);
|
|
821
|
+
const qualifiedId = `${repoRelPath}#${n.node_id}`;
|
|
822
822
|
db.upsertNode({
|
|
823
823
|
id: qualifiedId,
|
|
824
824
|
name: n.name,
|
|
@@ -970,4 +970,302 @@ async function runBackgroundIndexing(opts) {
|
|
|
970
970
|
console.log(` └─ Connections : \x1B[33m${pad.connections_created}\x1B[0m`);
|
|
971
971
|
console.log('');
|
|
972
972
|
}
|
|
973
|
+
async function runBackgroundReindexing(opts) {
|
|
974
|
+
const resolvedDevmind = path.resolve(opts.devmindPath);
|
|
975
|
+
console.log(`\n🧠 DevsMind Background Reindexer`);
|
|
976
|
+
console.log(` Brain directory : ${resolvedDevmind}`);
|
|
977
|
+
console.log(` Provider : ${opts.provider}`);
|
|
978
|
+
let modelName = opts.model || '';
|
|
979
|
+
let vertexSaData = null;
|
|
980
|
+
let vertexToken = null;
|
|
981
|
+
let vertexProjectId = '';
|
|
982
|
+
let vertexLocation = 'us-central1';
|
|
983
|
+
if (opts.provider === 'gemini') {
|
|
984
|
+
modelName = modelName || 'gemini-2.0-flash';
|
|
985
|
+
const apiKey = opts.key || process.env.GEMINI_API_KEY || '';
|
|
986
|
+
if (!apiKey) {
|
|
987
|
+
console.error('❌ Error: Gemini API key is required. Pass --key or set GEMINI_API_KEY environment variable.');
|
|
988
|
+
process.exit(1);
|
|
989
|
+
}
|
|
990
|
+
opts.key = apiKey;
|
|
991
|
+
}
|
|
992
|
+
else if (opts.provider === 'vertex') {
|
|
993
|
+
modelName = modelName || 'gemini-1.5-flash';
|
|
994
|
+
const inputKey = opts.key || process.env.GOOGLE_APPLICATION_CREDENTIALS || process.env.VERTEX_API_KEY || process.env.GEMINI_API_KEY || '';
|
|
995
|
+
if (!inputKey) {
|
|
996
|
+
console.error('❌ Error: Vertex AI requires a Service Account JSON path or Bearer Token. Pass --key or set GOOGLE_APPLICATION_CREDENTIALS / VERTEX_API_KEY environment variable.');
|
|
997
|
+
process.exit(1);
|
|
998
|
+
}
|
|
999
|
+
try {
|
|
1000
|
+
if (inputKey.trim().startsWith('{')) {
|
|
1001
|
+
vertexSaData = JSON.parse(inputKey);
|
|
1002
|
+
}
|
|
1003
|
+
else if (fs.existsSync(inputKey)) {
|
|
1004
|
+
vertexSaData = JSON.parse(fs.readFileSync(inputKey, 'utf-8'));
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
catch (e) {
|
|
1008
|
+
// Treat as raw token
|
|
1009
|
+
}
|
|
1010
|
+
vertexProjectId = vertexSaData?.project_id || process.env.GCP_PROJECT_ID || process.env.VERTEX_PROJECT_ID || '';
|
|
1011
|
+
vertexLocation = process.env.GCP_LOCATION || process.env.VERTEX_LOCATION || 'us-central1';
|
|
1012
|
+
if (!vertexSaData && !inputKey.startsWith('ya29.')) {
|
|
1013
|
+
console.error('❌ Error: Vertex key must be a valid Service Account JSON file path, inline JSON, or raw OAuth access token starting with "ya29."');
|
|
1014
|
+
process.exit(1);
|
|
1015
|
+
}
|
|
1016
|
+
if (!vertexProjectId) {
|
|
1017
|
+
console.error('❌ Error: Vertex Project ID could not be determined. Please set GCP_PROJECT_ID environment variable or specify it in your service account JSON.');
|
|
1018
|
+
process.exit(1);
|
|
1019
|
+
}
|
|
1020
|
+
if (!vertexSaData) {
|
|
1021
|
+
vertexToken = inputKey; // Raw Bearer token
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1024
|
+
else {
|
|
1025
|
+
modelName = modelName || 'qwen2.5-coder';
|
|
1026
|
+
opts.url = opts.url || 'http://localhost:11434';
|
|
1027
|
+
}
|
|
1028
|
+
const getVertexToken = async () => {
|
|
1029
|
+
if (vertexToken)
|
|
1030
|
+
return vertexToken;
|
|
1031
|
+
if (vertexSaData) {
|
|
1032
|
+
return await getVertexTokenCached(vertexSaData);
|
|
1033
|
+
}
|
|
1034
|
+
throw new Error('No Vertex credentials available');
|
|
1035
|
+
};
|
|
1036
|
+
console.log(` Model : ${modelName}`);
|
|
1037
|
+
// 1. Open DB
|
|
1038
|
+
const dbFile = path.join(resolvedDevmind, 'brain.db');
|
|
1039
|
+
const db = new database_1.DevMindDatabase(dbFile);
|
|
1040
|
+
// 2. Initial Index Check
|
|
1041
|
+
const pad = (0, indexer_1.readScratchpad)(resolvedDevmind);
|
|
1042
|
+
if (!pad || pad.status !== 'complete') {
|
|
1043
|
+
console.error("❌ Error: Initial indexing has not been completed. Please run 'devsmind index --run' first.");
|
|
1044
|
+
db.close();
|
|
1045
|
+
process.exit(1);
|
|
1046
|
+
}
|
|
1047
|
+
// 3. Scan for repos & files
|
|
1048
|
+
const { repos, total_files } = (0, scanner_1.scanRepoFiles)(resolvedDevmind);
|
|
1049
|
+
if (total_files === 0) {
|
|
1050
|
+
console.log('⚠️ No files found to reindex.');
|
|
1051
|
+
db.close();
|
|
1052
|
+
return;
|
|
1053
|
+
}
|
|
1054
|
+
// 4. Retrieve last reindexing timestamp
|
|
1055
|
+
const lastReindexVal = db.getSystemMeta('last_reindex_at');
|
|
1056
|
+
const lastReindexTime = lastReindexVal ? new Date(lastReindexVal).getTime() : 0;
|
|
1057
|
+
console.log(` Last reindex : ${lastReindexVal ? new Date(lastReindexVal).toLocaleString() : 'Never'}`);
|
|
1058
|
+
// 5. Detect modified or newly added files
|
|
1059
|
+
const modifiedFiles = [];
|
|
1060
|
+
for (const repo of repos) {
|
|
1061
|
+
for (const f of repo.files) {
|
|
1062
|
+
try {
|
|
1063
|
+
const stat = fs.statSync(f);
|
|
1064
|
+
if (stat.mtimeMs > lastReindexTime) {
|
|
1065
|
+
modifiedFiles.push({ repoName: repo.repo_name, absolutePath: f });
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
catch (err) {
|
|
1069
|
+
// ignore errors
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
1072
|
+
}
|
|
1073
|
+
if (modifiedFiles.length === 0) {
|
|
1074
|
+
console.log('\n✅ Code graph is already up to date. No modified files detected.');
|
|
1075
|
+
db.setSystemMeta('last_reindex_at', new Date().toISOString());
|
|
1076
|
+
db.close();
|
|
1077
|
+
return;
|
|
1078
|
+
}
|
|
1079
|
+
console.log(`\n📝 Detected ${modifiedFiles.length} modified/new file(s) since last reindex.`);
|
|
1080
|
+
// 6. Extraction & Upserting of modified nodes
|
|
1081
|
+
const progress = new ProgressDisplay();
|
|
1082
|
+
progress.startPhase(1, 'Incremental Node Extraction', modifiedFiles.length, 0);
|
|
1083
|
+
const newOrUpdatedNodeIds = [];
|
|
1084
|
+
for (let fileIndex = 0; fileIndex < modifiedFiles.length; fileIndex++) {
|
|
1085
|
+
const fileObj = modifiedFiles[fileIndex];
|
|
1086
|
+
const relPath = path.relative(process.cwd(), fileObj.absolutePath);
|
|
1087
|
+
progress.beginItem(relPath);
|
|
1088
|
+
let code = '';
|
|
1089
|
+
try {
|
|
1090
|
+
code = fs.readFileSync(fileObj.absolutePath, 'utf-8');
|
|
1091
|
+
}
|
|
1092
|
+
catch (err) {
|
|
1093
|
+
progress.skipItem(`read error: ${err.message}`);
|
|
1094
|
+
continue;
|
|
1095
|
+
}
|
|
1096
|
+
// Deprecate existing nodes for this file path before parsing
|
|
1097
|
+
const oldNodes = db.getNodesByFilePath(fileObj.absolutePath);
|
|
1098
|
+
for (const oldNode of oldNodes) {
|
|
1099
|
+
db.deprecateNode(oldNode.id);
|
|
1100
|
+
}
|
|
1101
|
+
if (code.trim().length === 0) {
|
|
1102
|
+
progress.skipItem('empty file');
|
|
1103
|
+
continue;
|
|
1104
|
+
}
|
|
1105
|
+
const fileLines = code.split('\n').length;
|
|
1106
|
+
progress.updateStatus(`Reading ${fileLines} lines — sending to AI…`);
|
|
1107
|
+
let result = {};
|
|
1108
|
+
let retries = 5;
|
|
1109
|
+
let backoffMs = 10000;
|
|
1110
|
+
while (retries > 0) {
|
|
1111
|
+
try {
|
|
1112
|
+
if (opts.provider === 'gemini') {
|
|
1113
|
+
result = await extractWithGemini(modelName, opts.key, fileObj.absolutePath, code);
|
|
1114
|
+
}
|
|
1115
|
+
else if (opts.provider === 'vertex') {
|
|
1116
|
+
const token = await getVertexToken();
|
|
1117
|
+
result = await extractWithVertex(modelName, token, vertexProjectId, vertexLocation, fileObj.absolutePath, code);
|
|
1118
|
+
}
|
|
1119
|
+
else {
|
|
1120
|
+
result = await extractWithOllama(opts.url, modelName, fileObj.absolutePath, code);
|
|
1121
|
+
}
|
|
1122
|
+
break;
|
|
1123
|
+
}
|
|
1124
|
+
catch (err) {
|
|
1125
|
+
retries--;
|
|
1126
|
+
if (retries === 0) {
|
|
1127
|
+
progress.finishPhase(`Paused — API error.`);
|
|
1128
|
+
console.error(`❌ ${err.message}`);
|
|
1129
|
+
db.close();
|
|
1130
|
+
process.exit(1);
|
|
1131
|
+
}
|
|
1132
|
+
const errMsg = err.message;
|
|
1133
|
+
if (errMsg.includes('429')) {
|
|
1134
|
+
progress.updateStatus(`Rate limited (429). Retrying in ${backoffMs / 1000}s...`);
|
|
1135
|
+
await sleep(backoffMs);
|
|
1136
|
+
backoffMs *= 2;
|
|
1137
|
+
}
|
|
1138
|
+
else {
|
|
1139
|
+
progress.updateStatus(`API error. Retrying in 2s...`);
|
|
1140
|
+
await sleep(2000);
|
|
1141
|
+
}
|
|
1142
|
+
}
|
|
1143
|
+
}
|
|
1144
|
+
let fileNodesCount = 0;
|
|
1145
|
+
if (result.nodes && Array.isArray(result.nodes)) {
|
|
1146
|
+
for (const n of result.nodes) {
|
|
1147
|
+
if (n.node_id && n.name && n.type) {
|
|
1148
|
+
let lineNum = '?';
|
|
1149
|
+
if (n.code_snapshot) {
|
|
1150
|
+
const snippet = n.code_snapshot.trimStart().substring(0, 60);
|
|
1151
|
+
const pos = code.indexOf(snippet.substring(0, 40));
|
|
1152
|
+
if (pos !== -1) {
|
|
1153
|
+
lineNum = String(code.substring(0, pos).split('\n').length);
|
|
1154
|
+
}
|
|
1155
|
+
}
|
|
1156
|
+
const pctDone = fileLines > 0 ? Math.round((parseInt(lineNum) / fileLines) * 100) : 0;
|
|
1157
|
+
const lineTag = lineNum !== '?' ? `\x1B[90mL${lineNum}/${fileLines} (${pctDone}% through file)\x1B[0m` : `\x1B[90m(line unknown)\x1B[0m`;
|
|
1158
|
+
progress.log(`\x1B[32m+\x1B[0m \x1B[1m${n.name}\x1B[0m \x1B[90m[${n.type}]\x1B[0m ${lineTag}`);
|
|
1159
|
+
const repoRelPath = db.toRepoRelativePath(fileObj.absolutePath);
|
|
1160
|
+
const qualifiedId = `${repoRelPath}#${n.node_id}`;
|
|
1161
|
+
db.upsertNode({
|
|
1162
|
+
id: qualifiedId,
|
|
1163
|
+
name: n.name,
|
|
1164
|
+
type: n.type,
|
|
1165
|
+
file_path: fileObj.absolutePath,
|
|
1166
|
+
signature: n.signature || null
|
|
1167
|
+
});
|
|
1168
|
+
fileNodesCount++;
|
|
1169
|
+
newOrUpdatedNodeIds.push(qualifiedId);
|
|
1170
|
+
if (n.code_snapshot) {
|
|
1171
|
+
db.updateHistory({
|
|
1172
|
+
node_id: qualifiedId,
|
|
1173
|
+
code_snapshot: n.code_snapshot,
|
|
1174
|
+
reasoning: {
|
|
1175
|
+
what_changed: 'Incremental code extraction during reindexing',
|
|
1176
|
+
why: 'Incremental graph sync',
|
|
1177
|
+
goal: 'Synchronize graph nodes with updated codebase files',
|
|
1178
|
+
developer: 'devsmind reindexer',
|
|
1179
|
+
model: modelName
|
|
1180
|
+
}
|
|
1181
|
+
});
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
}
|
|
1186
|
+
progress.completeItem(`${fileNodesCount} node(s) found`);
|
|
1187
|
+
if (opts.provider === 'gemini' || opts.provider === 'vertex')
|
|
1188
|
+
await sleep(2000);
|
|
1189
|
+
else
|
|
1190
|
+
await sleep(200);
|
|
1191
|
+
}
|
|
1192
|
+
progress.finishPhase(`Phase 1 done — parsed ${modifiedFiles.length} file(s), found ${newOrUpdatedNodeIds.length} new/updated node(s)`);
|
|
1193
|
+
// Phase 2: Resolving connections for modified nodes
|
|
1194
|
+
if (newOrUpdatedNodeIds.length > 0) {
|
|
1195
|
+
const activeNodes = db.listNodes();
|
|
1196
|
+
const allNodeIds = activeNodes.map(n => n.id);
|
|
1197
|
+
progress.startPhase(2, 'Incremental Connection Resolution', newOrUpdatedNodeIds.length, 0);
|
|
1198
|
+
for (let nodeIndex = 0; nodeIndex < newOrUpdatedNodeIds.length; nodeIndex++) {
|
|
1199
|
+
const nodeId = newOrUpdatedNodeIds[nodeIndex];
|
|
1200
|
+
progress.beginItem(nodeId);
|
|
1201
|
+
const latestCode = db.getLatestCode(nodeId);
|
|
1202
|
+
if (!latestCode || !latestCode.code_snapshot || latestCode.code_snapshot.trim().length === 0) {
|
|
1203
|
+
progress.skipItem('no code snapshot');
|
|
1204
|
+
continue;
|
|
1205
|
+
}
|
|
1206
|
+
const candidates = filterCandidates(latestCode.code_snapshot, allNodeIds);
|
|
1207
|
+
const filteredCandidates = candidates.filter(id => id !== nodeId);
|
|
1208
|
+
if (filteredCandidates.length === 0) {
|
|
1209
|
+
progress.skipItem('no matching candidates');
|
|
1210
|
+
continue;
|
|
1211
|
+
}
|
|
1212
|
+
let connections = [];
|
|
1213
|
+
let retries = 5;
|
|
1214
|
+
let backoffMs = 10000;
|
|
1215
|
+
while (retries > 0) {
|
|
1216
|
+
try {
|
|
1217
|
+
if (opts.provider === 'gemini') {
|
|
1218
|
+
connections = await resolveConnectionsWithGemini(modelName, opts.key, nodeId, latestCode.code_snapshot, filteredCandidates);
|
|
1219
|
+
}
|
|
1220
|
+
else if (opts.provider === 'vertex') {
|
|
1221
|
+
const token = await getVertexToken();
|
|
1222
|
+
connections = await resolveConnectionsWithVertex(modelName, token, vertexProjectId, vertexLocation, nodeId, latestCode.code_snapshot, filteredCandidates);
|
|
1223
|
+
}
|
|
1224
|
+
else {
|
|
1225
|
+
connections = await resolveConnectionsWithOllama(opts.url, modelName, nodeId, latestCode.code_snapshot, filteredCandidates);
|
|
1226
|
+
}
|
|
1227
|
+
break;
|
|
1228
|
+
}
|
|
1229
|
+
catch (err) {
|
|
1230
|
+
retries--;
|
|
1231
|
+
if (retries === 0) {
|
|
1232
|
+
progress.finishPhase('Paused — API error.');
|
|
1233
|
+
console.error(`❌ ${err.message}`);
|
|
1234
|
+
db.close();
|
|
1235
|
+
process.exit(1);
|
|
1236
|
+
}
|
|
1237
|
+
const errMsg = err.message;
|
|
1238
|
+
if (errMsg.includes('429')) {
|
|
1239
|
+
progress.updateStatus(`Rate limited (429). Retrying in ${backoffMs / 1000}s...`);
|
|
1240
|
+
await sleep(backoffMs);
|
|
1241
|
+
backoffMs *= 2;
|
|
1242
|
+
}
|
|
1243
|
+
else {
|
|
1244
|
+
progress.updateStatus(`API error. Retrying in 2s...`);
|
|
1245
|
+
await sleep(2000);
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
let connectionsAdded = 0;
|
|
1250
|
+
for (const targetId of connections) {
|
|
1251
|
+
if (allNodeIds.includes(targetId)) {
|
|
1252
|
+
progress.log(`Linked: \x1B[36m${nodeId}\x1B[0m → \x1B[36m${targetId}\x1B[0m`);
|
|
1253
|
+
db.addConnection(nodeId, targetId);
|
|
1254
|
+
connectionsAdded++;
|
|
1255
|
+
}
|
|
1256
|
+
}
|
|
1257
|
+
progress.completeItem(`${connectionsAdded} connection(s) created`);
|
|
1258
|
+
if (opts.provider === 'gemini' || opts.provider === 'vertex')
|
|
1259
|
+
await sleep(2000);
|
|
1260
|
+
else
|
|
1261
|
+
await sleep(200);
|
|
1262
|
+
}
|
|
1263
|
+
progress.finishPhase('Phase 2 done — finished reindexing connections');
|
|
1264
|
+
}
|
|
1265
|
+
// Update last_reindex_at
|
|
1266
|
+
db.setSystemMeta('last_reindex_at', new Date().toISOString());
|
|
1267
|
+
db.vacuum();
|
|
1268
|
+
db.close();
|
|
1269
|
+
console.log('\n\x1B[1m\x1B[32m ✔ Reindexing complete!\x1B[0m\n');
|
|
1270
|
+
}
|
|
973
1271
|
//# sourceMappingURL=runner.js.map
|
package/dist/cli/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/cli/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/cli/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/db/database.d.ts
CHANGED
|
@@ -16,6 +16,9 @@ export declare class DevMindDatabase {
|
|
|
16
16
|
private context;
|
|
17
17
|
constructor(dbPath: string);
|
|
18
18
|
private initSchema;
|
|
19
|
+
getSystemMeta(key: string): string | null;
|
|
20
|
+
setSystemMeta(key: string, value: string): void;
|
|
21
|
+
getNodesByFilePath(filePath: string): DbNode[];
|
|
19
22
|
close(): void;
|
|
20
23
|
vacuum(): void;
|
|
21
24
|
upsertNode(node: {
|
|
@@ -100,8 +103,8 @@ export declare class DevMindDatabase {
|
|
|
100
103
|
};
|
|
101
104
|
private populateHistoryFromDisk;
|
|
102
105
|
private writeHistoryToDisk;
|
|
103
|
-
|
|
104
|
-
|
|
106
|
+
toRepoRelativePath(absolutePath: string): string;
|
|
107
|
+
toAbsolutePath(repoRelativePath: string): string;
|
|
105
108
|
syncFromDisk(): void;
|
|
106
109
|
writeGraphToDisk(filePath: string): void;
|
|
107
110
|
}
|
package/dist/db/database.js
CHANGED
|
@@ -105,6 +105,35 @@ class DevMindDatabase {
|
|
|
105
105
|
catch {
|
|
106
106
|
// Column already exists, ignore
|
|
107
107
|
}
|
|
108
|
+
this.db.exec(`
|
|
109
|
+
CREATE TABLE IF NOT EXISTS system_meta (
|
|
110
|
+
key TEXT PRIMARY KEY,
|
|
111
|
+
value TEXT NOT NULL,
|
|
112
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
113
|
+
)
|
|
114
|
+
`);
|
|
115
|
+
}
|
|
116
|
+
getSystemMeta(key) {
|
|
117
|
+
try {
|
|
118
|
+
const stmt = this.db.prepare('SELECT value FROM system_meta WHERE key = ?');
|
|
119
|
+
const row = stmt.get(key);
|
|
120
|
+
return row ? row.value : null;
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
setSystemMeta(key, value) {
|
|
127
|
+
const stmt = this.db.prepare(`
|
|
128
|
+
INSERT INTO system_meta (key, value, updated_at)
|
|
129
|
+
VALUES (?, ?, CURRENT_TIMESTAMP)
|
|
130
|
+
ON CONFLICT(key) DO UPDATE SET value = ?, updated_at = CURRENT_TIMESTAMP
|
|
131
|
+
`);
|
|
132
|
+
stmt.run(key, value, value);
|
|
133
|
+
}
|
|
134
|
+
getNodesByFilePath(filePath) {
|
|
135
|
+
const stmt = this.db.prepare('SELECT * FROM nodes WHERE file_path = ? AND deprecated = 0');
|
|
136
|
+
return stmt.all(filePath);
|
|
108
137
|
}
|
|
109
138
|
close() {
|
|
110
139
|
this.db.close();
|
|
@@ -658,7 +687,7 @@ class DevMindDatabase {
|
|
|
658
687
|
const nodeMetadata = node ? {
|
|
659
688
|
name: node.name,
|
|
660
689
|
type: node.type,
|
|
661
|
-
file_path: node.file_path,
|
|
690
|
+
file_path: this.toRepoRelativePath(node.file_path),
|
|
662
691
|
signature: node.signature
|
|
663
692
|
} : null;
|
|
664
693
|
const data = {
|
|
@@ -741,7 +770,7 @@ class DevMindDatabase {
|
|
|
741
770
|
if (checkHistoryStmt.get(data.id))
|
|
742
771
|
continue;
|
|
743
772
|
if (!checkNodeStmt.get(data.node_id) && data.node_metadata) {
|
|
744
|
-
insertNodeStmt.run(data.node_id, data.node_metadata.type, data.node_metadata.name, data.node_metadata.file_path, data.node_metadata.signature);
|
|
773
|
+
insertNodeStmt.run(data.node_id, data.node_metadata.type, data.node_metadata.name, this.toAbsolutePath(data.node_metadata.file_path), data.node_metadata.signature);
|
|
745
774
|
}
|
|
746
775
|
insertHistoryStmt.run(data.id, data.node_id, data.session_id, data.created_at, data.updated_at);
|
|
747
776
|
}
|