homegraph 1.5.1 → 1.5.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/LICENSE +21 -21
- package/README.md +305 -305
- package/dist/bin/homegraph.js +9 -9
- package/dist/db/index.js +36 -36
- package/dist/db/migrations.js +37 -37
- package/dist/db/queries.js +156 -156
- package/dist/db/schema.sql +203 -203
- package/dist/directory.js +5 -5
- package/dist/extraction/index.d.ts +1 -1
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +54 -43
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/languages/arkts.d.ts +53 -6
- package/dist/extraction/languages/arkts.d.ts.map +1 -1
- package/dist/extraction/languages/arkts.js +565 -65
- package/dist/extraction/languages/arkts.js.map +1 -1
- package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/installer/instructions-template.js +9 -9
- package/dist/mcp/diff-impact.d.ts +131 -0
- package/dist/mcp/diff-impact.d.ts.map +1 -0
- package/dist/mcp/diff-impact.js +385 -0
- package/dist/mcp/diff-impact.js.map +1 -0
- package/dist/mcp/liveness-watchdog.js +51 -51
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +49 -47
- package/dist/mcp/server-instructions.js.map +1 -1
- package/dist/mcp/tools.d.ts +21 -5
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +305 -55
- package/dist/mcp/tools.js.map +1 -1
- package/dist/resolution/callback-synthesizer.d.ts +2 -1
- package/dist/resolution/callback-synthesizer.d.ts.map +1 -1
- package/dist/resolution/callback-synthesizer.js +153 -53
- package/dist/resolution/callback-synthesizer.js.map +1 -1
- package/dist/resolution/frameworks/arkts-entry.d.ts.map +1 -1
- package/dist/resolution/frameworks/arkts-entry.js +20 -9
- package/dist/resolution/frameworks/arkts-entry.js.map +1 -1
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +1 -1
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/memory-budget.d.ts +33 -0
- package/dist/resolution/memory-budget.d.ts.map +1 -1
- package/dist/resolution/memory-budget.js +58 -0
- package/dist/resolution/memory-budget.js.map +1 -1
- package/dist/resolution/resolver-pool.d.ts +2 -0
- package/dist/resolution/resolver-pool.d.ts.map +1 -1
- package/dist/resolution/resolver-pool.js +4 -0
- package/dist/resolution/resolver-pool.js.map +1 -1
- package/dist/spec/db/commit-node.js +4 -4
- package/dist/spec/db/fragment-node.js +10 -10
- package/dist/spec/db/fts.js +8 -8
- package/dist/spec/db/relations.js +88 -88
- package/dist/spec/db/schema.js +6 -6
- package/dist/spec/db/schema.sql +121 -121
- package/dist/spec/db/spec-node.js +4 -4
- package/dist/spec/llm/prompts.js +53 -53
- package/dist/ui/shimmer-progress.d.ts.map +1 -1
- package/dist/ui/shimmer-progress.js +4 -1
- package/dist/ui/shimmer-progress.js.map +1 -1
- package/package.json +61 -62
- package/dist/extraction/languages/arkts-viewtree.d.ts +0 -22
- package/dist/extraction/languages/arkts-viewtree.d.ts.map +0 -1
- package/dist/extraction/languages/arkts-viewtree.js +0 -133
- package/dist/extraction/languages/arkts-viewtree.js.map +0 -1
- package/dist/reasoning/config.d.ts +0 -45
- package/dist/reasoning/config.d.ts.map +0 -1
- package/dist/reasoning/config.js +0 -171
- package/dist/reasoning/config.js.map +0 -1
- package/dist/reasoning/credentials.d.ts +0 -5
- package/dist/reasoning/credentials.d.ts.map +0 -1
- package/dist/reasoning/credentials.js +0 -83
- package/dist/reasoning/credentials.js.map +0 -1
- package/dist/reasoning/login.d.ts +0 -21
- package/dist/reasoning/login.d.ts.map +0 -1
- package/dist/reasoning/login.js +0 -85
- package/dist/reasoning/login.js.map +0 -1
- package/dist/reasoning/reasoner.d.ts +0 -43
- package/dist/reasoning/reasoner.d.ts.map +0 -1
- package/dist/reasoning/reasoner.js +0 -308
- package/dist/reasoning/reasoner.js.map +0 -1
- package/dist/spec/evolve/llm-client.d.ts +0 -50
- package/dist/spec/evolve/llm-client.d.ts.map +0 -1
- package/dist/spec/evolve/llm-client.js +0 -176
- package/dist/spec/evolve/llm-client.js.map +0 -1
- package/dist/spec/evolve/logic-checker.d.ts +0 -12
- package/dist/spec/evolve/logic-checker.d.ts.map +0 -1
- package/dist/spec/evolve/logic-checker.js +0 -24
- package/dist/spec/evolve/logic-checker.js.map +0 -1
- package/dist/spec/llm/index.d.ts +0 -3
- package/dist/spec/llm/index.d.ts.map +0 -1
- package/dist/spec/llm/index.js +0 -11
- package/dist/spec/llm/index.js.map +0 -1
- package/dist/spec/mining/diff-parser.d.ts +0 -33
- package/dist/spec/mining/diff-parser.d.ts.map +0 -1
- package/dist/spec/mining/diff-parser.js +0 -166
- package/dist/spec/mining/diff-parser.js.map +0 -1
- package/dist/spec/mining/git-scanner.d.ts +0 -103
- package/dist/spec/mining/git-scanner.d.ts.map +0 -1
- package/dist/spec/mining/git-scanner.js +0 -307
- package/dist/spec/mining/git-scanner.js.map +0 -1
- package/dist/spec/mining/pipeline.d.ts +0 -53
- package/dist/spec/mining/pipeline.d.ts.map +0 -1
- package/dist/spec/mining/pipeline.js +0 -178
- package/dist/spec/mining/pipeline.js.map +0 -1
- package/dist/spec/mining/scope-resolver.d.ts +0 -45
- package/dist/spec/mining/scope-resolver.d.ts.map +0 -1
- package/dist/spec/mining/scope-resolver.js +0 -103
- package/dist/spec/mining/scope-resolver.js.map +0 -1
- package/dist/spec/mining/spec-extractor.d.ts +0 -69
- package/dist/spec/mining/spec-extractor.d.ts.map +0 -1
- package/dist/spec/mining/spec-extractor.js +0 -369
- package/dist/spec/mining/spec-extractor.js.map +0 -1
- package/dist/spec/utils.d.ts +0 -167
- package/dist/spec/utils.d.ts.map +0 -1
- package/dist/spec/utils.js +0 -463
- package/dist/spec/utils.js.map +0 -1
- package/scripts/_tmp-cfwk-resolve.log +0 -0
- package/scripts/_tmp-cfwk-sig.log +0 -0
- package/scripts/_tmp-cfwk-vt.log +0 -0
- package/scripts/add-lang/bench.sh +0 -60
- package/scripts/add-lang/check-grammar.mjs +0 -75
- package/scripts/add-lang/dump-ast.mjs +0 -103
- package/scripts/add-lang/verify-extraction.mjs +0 -70
- package/scripts/agent-eval/ab-adoption.sh +0 -91
- package/scripts/agent-eval/ab-hook.sh +0 -86
- package/scripts/agent-eval/ab-impl.sh +0 -78
- package/scripts/agent-eval/ab-new-vs-baseline.sh +0 -102
- package/scripts/agent-eval/ab-sufficiency.sh +0 -78
- package/scripts/agent-eval/arms-F.sh +0 -21
- package/scripts/agent-eval/arms-matrix.sh +0 -37
- package/scripts/agent-eval/audit.sh +0 -68
- package/scripts/agent-eval/bench-readme.sh +0 -28
- package/scripts/agent-eval/bench-why-repo.sh +0 -22
- package/scripts/agent-eval/block-read-hook.sh +0 -19
- package/scripts/agent-eval/hook-settings.json +0 -15
- package/scripts/agent-eval/itrun.sh +0 -120
- package/scripts/agent-eval/offload-eval-3arm.sh +0 -72
- package/scripts/agent-eval/offload-eval-cost.mjs +0 -133
- package/scripts/agent-eval/offload-eval-effort.mjs +0 -108
- package/scripts/agent-eval/offload-eval-frontload-matrix.sh +0 -25
- package/scripts/agent-eval/offload-eval-frontload.sh +0 -47
- package/scripts/agent-eval/offload-eval-ground-truth.json +0 -18
- package/scripts/agent-eval/offload-eval-hook.mjs +0 -84
- package/scripts/agent-eval/offload-eval-judge.mjs +0 -103
- package/scripts/agent-eval/offload-eval-matrix.sh +0 -20
- package/scripts/agent-eval/offload-eval-metrics.mjs +0 -94
- package/scripts/agent-eval/offload-eval-refs1.sh +0 -50
- package/scripts/agent-eval/offload-eval-setup.sh +0 -24
- package/scripts/agent-eval/offload-eval-styles.sh +0 -72
- package/scripts/agent-eval/offload-eval-summarize.mjs +0 -68
- package/scripts/agent-eval/offload-eval.md +0 -76
- package/scripts/agent-eval/parse-arms.mjs +0 -116
- package/scripts/agent-eval/parse-bench-readme.mjs +0 -84
- package/scripts/agent-eval/parse-run.mjs +0 -45
- package/scripts/agent-eval/parse-session.mjs +0 -93
- package/scripts/agent-eval/probe-context.mjs +0 -21
- package/scripts/agent-eval/probe-explore.mjs +0 -40
- package/scripts/agent-eval/probe-node.mjs +0 -20
- package/scripts/agent-eval/probe-sweep.mjs +0 -119
- package/scripts/agent-eval/probe-trace.mjs +0 -20
- package/scripts/agent-eval/redirect-read-hook.sh +0 -38
- package/scripts/agent-eval/repro-concurrent-explore.mjs +0 -119
- package/scripts/agent-eval/repro-daemon-clients.mjs +0 -125
- package/scripts/agent-eval/run-agent.sh +0 -34
- package/scripts/agent-eval/run-all.sh +0 -75
- package/scripts/agent-eval/run-arms.sh +0 -56
- package/scripts/agent-eval/seq-matrix.mjs +0 -137
- package/scripts/bench-arkts-init-rss.log +0 -0
- package/scripts/build-bundle.sh +0 -123
- package/scripts/exp_boundary_eval/README.md +0 -247
- package/scripts/exp_boundary_eval/__pycache__/_utils.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/_utils.cpython-38.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/analyze.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/analyze.cpython-38.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/deveco_arm.cpython-38.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/run_all.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/run_all.cpython-38.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/run_one.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/run_one.cpython-38.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/run_session.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/run_session.cpython-38.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/setup.cpython-310.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/setup.cpython-38.pyc +0 -0
- package/scripts/exp_boundary_eval/__pycache__/win_mcp_launcher.cpython-38.pyc +0 -0
- package/scripts/exp_boundary_eval/_test_mcp_chain.py +0 -78
- package/scripts/exp_boundary_eval/_test_stdin.py +0 -8
- package/scripts/exp_boundary_eval/_utils.py +0 -1116
- package/scripts/exp_boundary_eval/analyze.py +0 -1313
- package/scripts/exp_boundary_eval/deveco_arm.py +0 -519
- package/scripts/exp_boundary_eval/run_all.py +0 -378
- package/scripts/exp_boundary_eval/run_one.py +0 -165
- package/scripts/exp_boundary_eval/run_session.py +0 -158
- package/scripts/exp_boundary_eval/setup.py +0 -120
- package/scripts/exp_boundary_eval/win_mcp_launcher.py +0 -73
- package/scripts/exp_boundary_eval/win_mcp_stdio_wrap.js +0 -36
- package/scripts/exp_boundary_eval/win_node_launcher.py +0 -24
- package/scripts/extract-release-notes.mjs +0 -130
- package/scripts/local-install.sh +0 -41
- package/scripts/npm-sdk.js +0 -75
- package/scripts/npm-shim.js +0 -275
- package/scripts/ohos-sdk-publish.mjs +0 -133
- package/scripts/pack-npm.sh +0 -119
- package/scripts/prepare-release.mjs +0 -270
- package/scripts/probe-arkts-mem-why-run.log +0 -0
- package/scripts/probe-banner-livecard-ir.log +0 -0
- package/scripts/probe-cfwk-ast.stderr.log +0 -0
- package/scripts/probe-cfwk-ast.stdout.log +0 -0
- package/scripts/probe-cfwk-attr-shape.log +0 -0
- package/scripts/probe-cfwk-cfgdump.stderr.log +0 -0
- package/scripts/probe-cfwk-cfgdump.stdout.log +0 -0
- package/scripts/probe-cfwk-cvc.stderr.log +0 -0
- package/scripts/probe-cfwk-cvc.stdout.log +0 -0
- package/scripts/probe-cfwk-diag2.log +0 -0
- package/scripts/probe-cfwk-diag3.log +0 -0
- package/scripts/probe-cfwk-fedbg.stderr.log +0 -0
- package/scripts/probe-cfwk-fedbg.stdout.log +0 -0
- package/scripts/probe-cfwk-fileresult.log +0 -0
- package/scripts/probe-cfwk-fix.stderr.log +0 -0
- package/scripts/probe-cfwk-fix.stdout.log +0 -0
- package/scripts/probe-cfwk-fix2.stderr.log +0 -0
- package/scripts/probe-cfwk-fix2.stdout.log +0 -0
- package/scripts/probe-cfwk-fix3.stderr.log +0 -0
- package/scripts/probe-cfwk-fix3.stdout.log +0 -0
- package/scripts/probe-cfwk-foreach.log +0 -0
- package/scripts/probe-cfwk-getmethod-throw.log +0 -0
- package/scripts/probe-cfwk-hg-extract.log +0 -0
- package/scripts/probe-cfwk-pr1003-noprior.stderr.log +0 -0
- package/scripts/probe-cfwk-pr1003-noprior.stdout.log +0 -0
- package/scripts/probe-cfwk-pr1003.stderr.log +0 -0
- package/scripts/probe-cfwk-pr1003.stdout.log +0 -0
- package/scripts/probe-cfwk-preroot-noprior.stderr.log +0 -0
- package/scripts/probe-cfwk-preroot-noprior.stdout.log +0 -0
- package/scripts/probe-cfwk-preroot-prior.stderr.log +0 -0
- package/scripts/probe-cfwk-preroot-prior.stdout.log +0 -0
- package/scripts/probe-cfwk-preroot-skipstate.stderr.log +0 -0
- package/scripts/probe-cfwk-preroot-skipstate.stdout.log +0 -0
- package/scripts/probe-cfwk-resolve-sim.log +0 -0
- package/scripts/probe-cfwk-tree-shape.log +0 -0
- package/scripts/probe-cfwk-walk-abort.log +0 -0
- package/scripts/probe-cfwk.log +0 -0
- package/scripts/probe-force-index.log +0 -0
- package/scripts/probe-no-force-index.log +0 -0
- package/scripts/probe-samefile-ir.stderr.log +0 -0
- package/scripts/probe-samefile-ir.stdout.log +0 -224
- package/scripts/probe-sdk-vs-project.log +0 -0
- package/scripts/probe-viewtree-downgrade.log +0 -0
package/dist/bin/homegraph.js
CHANGED
|
@@ -1491,15 +1491,15 @@ function main() {
|
|
|
1491
1491
|
console.error(chalk.bold('\nHomeGraph MCP Server\n'));
|
|
1492
1492
|
console.error(chalk.blue((0, glyphs_1.getGlyphs)().info) + ' Use --mcp flag to start the MCP server');
|
|
1493
1493
|
console.error('\nTo use with Claude Code, add to your MCP configuration:');
|
|
1494
|
-
console.error(chalk.dim(`
|
|
1495
|
-
{
|
|
1496
|
-
"mcpServers": {
|
|
1497
|
-
"homegraph": {
|
|
1498
|
-
"command": "homegraph",
|
|
1499
|
-
"args": ["serve", "--mcp"]
|
|
1500
|
-
}
|
|
1501
|
-
}
|
|
1502
|
-
}
|
|
1494
|
+
console.error(chalk.dim(`
|
|
1495
|
+
{
|
|
1496
|
+
"mcpServers": {
|
|
1497
|
+
"homegraph": {
|
|
1498
|
+
"command": "homegraph",
|
|
1499
|
+
"args": ["serve", "--mcp"]
|
|
1500
|
+
}
|
|
1501
|
+
}
|
|
1502
|
+
}
|
|
1503
1503
|
`));
|
|
1504
1504
|
console.error('Available tools:');
|
|
1505
1505
|
console.error(chalk.cyan(' homegraph_explore') + ' - Primary: source of the relevant symbols for any question');
|
package/dist/db/index.js
CHANGED
|
@@ -517,27 +517,27 @@ class DatabaseConnection {
|
|
|
517
517
|
}
|
|
518
518
|
try {
|
|
519
519
|
const { Worker } = await Promise.resolve().then(() => __importStar(require('node:worker_threads')));
|
|
520
|
-
const workerSource = `
|
|
521
|
-
const { workerData, parentPort } = require('node:worker_threads');
|
|
522
|
-
let row = null;
|
|
523
|
-
let err = null;
|
|
524
|
-
try {
|
|
525
|
-
let db = null;
|
|
526
|
-
try {
|
|
527
|
-
const { DatabaseSync } = require('node:sqlite');
|
|
528
|
-
db = new DatabaseSync(workerData.dbPath);
|
|
529
|
-
} catch {
|
|
530
|
-
const Database = require('better-sqlite3');
|
|
531
|
-
db = new Database(workerData.dbPath);
|
|
532
|
-
}
|
|
533
|
-
const mode = workerData.mode === 'TRUNCATE' ? 'TRUNCATE' : 'PASSIVE';
|
|
534
|
-
try {
|
|
535
|
-
if (mode === 'TRUNCATE') db.exec('PRAGMA busy_timeout = 2000');
|
|
536
|
-
row = db.prepare('PRAGMA wal_checkpoint(' + mode + ')').get();
|
|
537
|
-
} catch (e) { err = String(e && e.message || e); }
|
|
538
|
-
try { db.close(); } catch {}
|
|
539
|
-
} catch (e) { err = err || String(e && e.message || e); }
|
|
540
|
-
parentPort.postMessage({ row, err });
|
|
520
|
+
const workerSource = `
|
|
521
|
+
const { workerData, parentPort } = require('node:worker_threads');
|
|
522
|
+
let row = null;
|
|
523
|
+
let err = null;
|
|
524
|
+
try {
|
|
525
|
+
let db = null;
|
|
526
|
+
try {
|
|
527
|
+
const { DatabaseSync } = require('node:sqlite');
|
|
528
|
+
db = new DatabaseSync(workerData.dbPath);
|
|
529
|
+
} catch {
|
|
530
|
+
const Database = require('better-sqlite3');
|
|
531
|
+
db = new Database(workerData.dbPath);
|
|
532
|
+
}
|
|
533
|
+
const mode = workerData.mode === 'TRUNCATE' ? 'TRUNCATE' : 'PASSIVE';
|
|
534
|
+
try {
|
|
535
|
+
if (mode === 'TRUNCATE') db.exec('PRAGMA busy_timeout = 2000');
|
|
536
|
+
row = db.prepare('PRAGMA wal_checkpoint(' + mode + ')').get();
|
|
537
|
+
} catch (e) { err = String(e && e.message || e); }
|
|
538
|
+
try { db.close(); } catch {}
|
|
539
|
+
} catch (e) { err = err || String(e && e.message || e); }
|
|
540
|
+
parentPort.postMessage({ row, err });
|
|
541
541
|
`;
|
|
542
542
|
return await new Promise((resolve) => {
|
|
543
543
|
let settled = false;
|
|
@@ -632,21 +632,21 @@ class DatabaseConnection {
|
|
|
632
632
|
async runPragmasOffThread(pragmas, inlineFallback = []) {
|
|
633
633
|
try {
|
|
634
634
|
const { Worker } = await Promise.resolve().then(() => __importStar(require('node:worker_threads')));
|
|
635
|
-
const workerSource = `
|
|
636
|
-
const { workerData, parentPort } = require('node:worker_threads');
|
|
637
|
-
try {
|
|
638
|
-
let db = null;
|
|
639
|
-
try {
|
|
640
|
-
const { DatabaseSync } = require('node:sqlite');
|
|
641
|
-
db = new DatabaseSync(workerData.dbPath);
|
|
642
|
-
} catch {
|
|
643
|
-
const Database = require('better-sqlite3');
|
|
644
|
-
db = new Database(workerData.dbPath);
|
|
645
|
-
}
|
|
646
|
-
for (const p of workerData.pragmas) { try { db.exec(p); } catch {} }
|
|
647
|
-
try { db.close(); } catch {}
|
|
648
|
-
} catch {}
|
|
649
|
-
parentPort.postMessage('done');
|
|
635
|
+
const workerSource = `
|
|
636
|
+
const { workerData, parentPort } = require('node:worker_threads');
|
|
637
|
+
try {
|
|
638
|
+
let db = null;
|
|
639
|
+
try {
|
|
640
|
+
const { DatabaseSync } = require('node:sqlite');
|
|
641
|
+
db = new DatabaseSync(workerData.dbPath);
|
|
642
|
+
} catch {
|
|
643
|
+
const Database = require('better-sqlite3');
|
|
644
|
+
db = new Database(workerData.dbPath);
|
|
645
|
+
}
|
|
646
|
+
for (const p of workerData.pragmas) { try { db.exec(p); } catch {} }
|
|
647
|
+
try { db.close(); } catch {}
|
|
648
|
+
} catch {}
|
|
649
|
+
parentPort.postMessage('done');
|
|
650
650
|
`;
|
|
651
651
|
await new Promise((resolve) => {
|
|
652
652
|
let settled = false;
|
package/dist/db/migrations.js
CHANGED
|
@@ -26,17 +26,17 @@ const migrations = [
|
|
|
26
26
|
version: 2,
|
|
27
27
|
description: 'Add project metadata, provenance tracking, and unresolved ref context',
|
|
28
28
|
up: (db) => {
|
|
29
|
-
db.exec(`
|
|
30
|
-
CREATE TABLE IF NOT EXISTS project_metadata (
|
|
31
|
-
key TEXT PRIMARY KEY,
|
|
32
|
-
value TEXT NOT NULL,
|
|
33
|
-
updated_at INTEGER NOT NULL
|
|
34
|
-
);
|
|
35
|
-
ALTER TABLE unresolved_refs ADD COLUMN file_path TEXT NOT NULL DEFAULT '';
|
|
36
|
-
ALTER TABLE unresolved_refs ADD COLUMN language TEXT NOT NULL DEFAULT 'unknown';
|
|
37
|
-
ALTER TABLE edges ADD COLUMN provenance TEXT DEFAULT NULL;
|
|
38
|
-
CREATE INDEX IF NOT EXISTS idx_unresolved_file_path ON unresolved_refs(file_path);
|
|
39
|
-
CREATE INDEX IF NOT EXISTS idx_edges_provenance ON edges(provenance);
|
|
29
|
+
db.exec(`
|
|
30
|
+
CREATE TABLE IF NOT EXISTS project_metadata (
|
|
31
|
+
key TEXT PRIMARY KEY,
|
|
32
|
+
value TEXT NOT NULL,
|
|
33
|
+
updated_at INTEGER NOT NULL
|
|
34
|
+
);
|
|
35
|
+
ALTER TABLE unresolved_refs ADD COLUMN file_path TEXT NOT NULL DEFAULT '';
|
|
36
|
+
ALTER TABLE unresolved_refs ADD COLUMN language TEXT NOT NULL DEFAULT 'unknown';
|
|
37
|
+
ALTER TABLE edges ADD COLUMN provenance TEXT DEFAULT NULL;
|
|
38
|
+
CREATE INDEX IF NOT EXISTS idx_unresolved_file_path ON unresolved_refs(file_path);
|
|
39
|
+
CREATE INDEX IF NOT EXISTS idx_edges_provenance ON edges(provenance);
|
|
40
40
|
`);
|
|
41
41
|
},
|
|
42
42
|
},
|
|
@@ -44,8 +44,8 @@ const migrations = [
|
|
|
44
44
|
version: 3,
|
|
45
45
|
description: 'Add lower(name) expression index for memory-efficient case-insensitive lookups',
|
|
46
46
|
up: (db) => {
|
|
47
|
-
db.exec(`
|
|
48
|
-
CREATE INDEX IF NOT EXISTS idx_nodes_lower_name ON nodes(lower(name));
|
|
47
|
+
db.exec(`
|
|
48
|
+
CREATE INDEX IF NOT EXISTS idx_nodes_lower_name ON nodes(lower(name));
|
|
49
49
|
`);
|
|
50
50
|
},
|
|
51
51
|
},
|
|
@@ -53,9 +53,9 @@ const migrations = [
|
|
|
53
53
|
version: 4,
|
|
54
54
|
description: 'Drop redundant idx_edges_source / idx_edges_target (covered by source_kind / target_kind composites)',
|
|
55
55
|
up: (db) => {
|
|
56
|
-
db.exec(`
|
|
57
|
-
DROP INDEX IF EXISTS idx_edges_source;
|
|
58
|
-
DROP INDEX IF EXISTS idx_edges_target;
|
|
56
|
+
db.exec(`
|
|
57
|
+
DROP INDEX IF EXISTS idx_edges_source;
|
|
58
|
+
DROP INDEX IF EXISTS idx_edges_target;
|
|
59
59
|
`);
|
|
60
60
|
},
|
|
61
61
|
},
|
|
@@ -63,8 +63,8 @@ const migrations = [
|
|
|
63
63
|
version: 5,
|
|
64
64
|
description: 'Add nodes.return_type — normalized return/result type for receiver-type inference (C++ singletons/factories, #645)',
|
|
65
65
|
up: (db) => {
|
|
66
|
-
db.exec(`
|
|
67
|
-
ALTER TABLE nodes ADD COLUMN return_type TEXT;
|
|
66
|
+
db.exec(`
|
|
67
|
+
ALTER TABLE nodes ADD COLUMN return_type TEXT;
|
|
68
68
|
`);
|
|
69
69
|
},
|
|
70
70
|
},
|
|
@@ -81,14 +81,14 @@ const migrations = [
|
|
|
81
81
|
// and it MUST match the GROUP BY exactly, or the index creation would
|
|
82
82
|
// fail on a pair the DELETE left behind. Idempotent: the index is
|
|
83
83
|
// `IF NOT EXISTS` and the DELETE is a no-op once the table is unique.
|
|
84
|
-
db.exec(`
|
|
85
|
-
DELETE FROM edges
|
|
86
|
-
WHERE id NOT IN (
|
|
87
|
-
SELECT MIN(id) FROM edges
|
|
88
|
-
GROUP BY source, target, kind, IFNULL(line, -1), IFNULL(col, -1)
|
|
89
|
-
);
|
|
90
|
-
CREATE UNIQUE INDEX IF NOT EXISTS idx_edges_identity
|
|
91
|
-
ON edges(source, target, kind, IFNULL(line, -1), IFNULL(col, -1));
|
|
84
|
+
db.exec(`
|
|
85
|
+
DELETE FROM edges
|
|
86
|
+
WHERE id NOT IN (
|
|
87
|
+
SELECT MIN(id) FROM edges
|
|
88
|
+
GROUP BY source, target, kind, IFNULL(line, -1), IFNULL(col, -1)
|
|
89
|
+
);
|
|
90
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_edges_identity
|
|
91
|
+
ON edges(source, target, kind, IFNULL(line, -1), IFNULL(col, -1));
|
|
92
92
|
`);
|
|
93
93
|
},
|
|
94
94
|
},
|
|
@@ -96,14 +96,14 @@ const migrations = [
|
|
|
96
96
|
version: 7,
|
|
97
97
|
description: 'Add mcp_query_cache table for MCP tool response caching',
|
|
98
98
|
up: (db) => {
|
|
99
|
-
db.exec(`
|
|
100
|
-
CREATE TABLE IF NOT EXISTS mcp_query_cache (
|
|
101
|
-
cache_key TEXT PRIMARY KEY,
|
|
102
|
-
tool TEXT NOT NULL,
|
|
103
|
-
response TEXT NOT NULL,
|
|
104
|
-
created_at INTEGER NOT NULL
|
|
105
|
-
);
|
|
106
|
-
CREATE INDEX IF NOT EXISTS idx_mcp_query_cache_tool ON mcp_query_cache(tool);
|
|
99
|
+
db.exec(`
|
|
100
|
+
CREATE TABLE IF NOT EXISTS mcp_query_cache (
|
|
101
|
+
cache_key TEXT PRIMARY KEY,
|
|
102
|
+
tool TEXT NOT NULL,
|
|
103
|
+
response TEXT NOT NULL,
|
|
104
|
+
created_at INTEGER NOT NULL
|
|
105
|
+
);
|
|
106
|
+
CREATE INDEX IF NOT EXISTS idx_mcp_query_cache_tool ON mcp_query_cache(tool);
|
|
107
107
|
`);
|
|
108
108
|
},
|
|
109
109
|
},
|
|
@@ -119,9 +119,9 @@ const migrations = [
|
|
|
119
119
|
if (!hasColumn('name_tail')) {
|
|
120
120
|
db.exec("ALTER TABLE unresolved_refs ADD COLUMN name_tail TEXT NOT NULL DEFAULT ''");
|
|
121
121
|
}
|
|
122
|
-
db.exec(`
|
|
123
|
-
CREATE INDEX IF NOT EXISTS idx_unresolved_status ON unresolved_refs(status);
|
|
124
|
-
CREATE INDEX IF NOT EXISTS idx_unresolved_failed_tail ON unresolved_refs(name_tail) WHERE status = 'failed';
|
|
122
|
+
db.exec(`
|
|
123
|
+
CREATE INDEX IF NOT EXISTS idx_unresolved_status ON unresolved_refs(status);
|
|
124
|
+
CREATE INDEX IF NOT EXISTS idx_unresolved_failed_tail ON unresolved_refs(name_tail) WHERE status = 'failed';
|
|
125
125
|
`);
|
|
126
126
|
},
|
|
127
127
|
},
|