opencode-forge 0.1.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.
- package/LICENSE +21 -0
- package/README.md +534 -0
- package/config.jsonc +47 -0
- package/dist/agents/architect.d.ts +3 -0
- package/dist/agents/architect.d.ts.map +1 -0
- package/dist/agents/architect.js +152 -0
- package/dist/agents/architect.js.map +1 -0
- package/dist/agents/auditor.d.ts +3 -0
- package/dist/agents/auditor.d.ts.map +1 -0
- package/dist/agents/auditor.js +168 -0
- package/dist/agents/auditor.js.map +1 -0
- package/dist/agents/code.d.ts +3 -0
- package/dist/agents/code.d.ts.map +1 -0
- package/dist/agents/code.js +67 -0
- package/dist/agents/code.js.map +1 -0
- package/dist/agents/index.d.ts +4 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +9 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/prompts.d.ts +1 -0
- package/dist/agents/prompts.d.ts.map +1 -0
- package/dist/agents/prompts.js +4 -0
- package/dist/agents/prompts.js.map +1 -0
- package/dist/agents/types.d.ts +34 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/cache/index.d.ts +4 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +5 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/memory-cache.d.ts +14 -0
- package/dist/cache/memory-cache.d.ts.map +1 -0
- package/dist/cache/memory-cache.js +51 -0
- package/dist/cache/memory-cache.js.map +1 -0
- package/dist/cache/types.d.ts +8 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +2 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/cli/commands/cancel.d.ts +15 -0
- package/dist/cli/commands/cancel.d.ts.map +1 -0
- package/dist/cli/commands/cancel.js +194 -0
- package/dist/cli/commands/cancel.js.map +1 -0
- package/dist/cli/commands/graph.d.ts +16 -0
- package/dist/cli/commands/graph.d.ts.map +1 -0
- package/dist/cli/commands/graph.js +208 -0
- package/dist/cli/commands/graph.js.map +1 -0
- package/dist/cli/commands/restart.d.ts +15 -0
- package/dist/cli/commands/restart.d.ts.map +1 -0
- package/dist/cli/commands/restart.js +268 -0
- package/dist/cli/commands/restart.js.map +1 -0
- package/dist/cli/commands/status.d.ts +17 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +356 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +3 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.js +40 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +224 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils.d.ts +36 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +163 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/command/template/review.txt +101 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +186 -0
- package/dist/config.js.map +1 -0
- package/dist/constants/loop.d.ts +10 -0
- package/dist/constants/loop.d.ts.map +1 -0
- package/dist/constants/loop.js +6 -0
- package/dist/constants/loop.js.map +1 -0
- package/dist/graph/cache.d.ts +17 -0
- package/dist/graph/cache.d.ts.map +1 -0
- package/dist/graph/cache.js +50 -0
- package/dist/graph/cache.js.map +1 -0
- package/dist/graph/client.d.ts +51 -0
- package/dist/graph/client.d.ts.map +1 -0
- package/dist/graph/client.js +152 -0
- package/dist/graph/client.js.map +1 -0
- package/dist/graph/clone-detection.d.ts +9 -0
- package/dist/graph/clone-detection.d.ts.map +1 -0
- package/dist/graph/clone-detection.js +148 -0
- package/dist/graph/clone-detection.js.map +1 -0
- package/dist/graph/constants.d.ts +18 -0
- package/dist/graph/constants.d.ts.map +1 -0
- package/dist/graph/constants.js +532 -0
- package/dist/graph/constants.js.map +1 -0
- package/dist/graph/database.d.ts +11 -0
- package/dist/graph/database.d.ts.map +1 -0
- package/dist/graph/database.js +250 -0
- package/dist/graph/database.js.map +1 -0
- package/dist/graph/index.d.ts +14 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +13 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/repo-map.d.ts +59 -0
- package/dist/graph/repo-map.d.ts.map +1 -0
- package/dist/graph/repo-map.js +948 -0
- package/dist/graph/repo-map.js.map +1 -0
- package/dist/graph/rpc.d.ts +34 -0
- package/dist/graph/rpc.d.ts.map +1 -0
- package/dist/graph/rpc.js +139 -0
- package/dist/graph/rpc.js.map +1 -0
- package/dist/graph/service.d.ts +46 -0
- package/dist/graph/service.d.ts.map +1 -0
- package/dist/graph/service.js +329 -0
- package/dist/graph/service.js.map +1 -0
- package/dist/graph/tree-sitter.d.ts +40 -0
- package/dist/graph/tree-sitter.d.ts.map +1 -0
- package/dist/graph/tree-sitter.js +799 -0
- package/dist/graph/tree-sitter.js.map +1 -0
- package/dist/graph/types.d.ts +175 -0
- package/dist/graph/types.d.ts.map +1 -0
- package/dist/graph/types.js +105 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/graph/utils.d.ts +64 -0
- package/dist/graph/utils.d.ts.map +1 -0
- package/dist/graph/utils.js +406 -0
- package/dist/graph/utils.js.map +1 -0
- package/dist/graph/worker.d.ts +2 -0
- package/dist/graph/worker.d.ts.map +1 -0
- package/dist/graph/worker.js +6043 -0
- package/dist/graph/worker.js.map +1 -0
- package/dist/hooks/compaction-utils.d.ts +21 -0
- package/dist/hooks/compaction-utils.d.ts.map +1 -0
- package/dist/hooks/compaction-utils.js +82 -0
- package/dist/hooks/compaction-utils.js.map +1 -0
- package/dist/hooks/graph-command.d.ts +27 -0
- package/dist/hooks/graph-command.d.ts.map +1 -0
- package/dist/hooks/graph-command.js +57 -0
- package/dist/hooks/graph-command.js.map +1 -0
- package/dist/hooks/graph-tools.d.ts +11 -0
- package/dist/hooks/graph-tools.d.ts.map +1 -0
- package/dist/hooks/graph-tools.js +125 -0
- package/dist/hooks/graph-tools.js.map +1 -0
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +5 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/loop.d.ts +23 -0
- package/dist/hooks/loop.d.ts.map +1 -0
- package/dist/hooks/loop.js +667 -0
- package/dist/hooks/loop.js.map +1 -0
- package/dist/hooks/sandbox-tools.d.ts +13 -0
- package/dist/hooks/sandbox-tools.d.ts.map +1 -0
- package/dist/hooks/sandbox-tools.js +105 -0
- package/dist/hooks/sandbox-tools.js.map +1 -0
- package/dist/hooks/session.d.ts +19 -0
- package/dist/hooks/session.d.ts.map +1 -0
- package/dist/hooks/session.js +56 -0
- package/dist/hooks/session.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +298 -0
- package/dist/index.js.map +1 -0
- package/dist/sandbox/context.d.ts +27 -0
- package/dist/sandbox/context.d.ts.map +1 -0
- package/dist/sandbox/context.js +18 -0
- package/dist/sandbox/context.js.map +1 -0
- package/dist/sandbox/docker.d.ts +29 -0
- package/dist/sandbox/docker.d.ts.map +1 -0
- package/dist/sandbox/docker.js +213 -0
- package/dist/sandbox/docker.js.map +1 -0
- package/dist/sandbox/manager.d.ts +23 -0
- package/dist/sandbox/manager.d.ts.map +1 -0
- package/dist/sandbox/manager.js +131 -0
- package/dist/sandbox/manager.js.map +1 -0
- package/dist/sandbox/path.d.ts +4 -0
- package/dist/sandbox/path.d.ts.map +1 -0
- package/dist/sandbox/path.js +27 -0
- package/dist/sandbox/path.js.map +1 -0
- package/dist/services/kv.d.ts +17 -0
- package/dist/services/kv.d.ts.map +1 -0
- package/dist/services/kv.js +62 -0
- package/dist/services/kv.js.map +1 -0
- package/dist/services/loop.d.ts +96 -0
- package/dist/services/loop.d.ts.map +1 -0
- package/dist/services/loop.js +315 -0
- package/dist/services/loop.js.map +1 -0
- package/dist/setup.d.ts +4 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +118 -0
- package/dist/setup.js.map +1 -0
- package/dist/storage/database.d.ts +6 -0
- package/dist/storage/database.d.ts.map +1 -0
- package/dist/storage/database.js +90 -0
- package/dist/storage/database.js.map +1 -0
- package/dist/storage/graph-projects.d.ts +80 -0
- package/dist/storage/graph-projects.d.ts.map +1 -0
- package/dist/storage/graph-projects.js +154 -0
- package/dist/storage/graph-projects.js.map +1 -0
- package/dist/storage/index.d.ts +5 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +3 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/kv-queries.d.ts +18 -0
- package/dist/storage/kv-queries.d.ts.map +1 -0
- package/dist/storage/kv-queries.js +70 -0
- package/dist/storage/kv-queries.js.map +1 -0
- package/dist/tools/graph.d.ts +9 -0
- package/dist/tools/graph.d.ts.map +1 -0
- package/dist/tools/graph.js +272 -0
- package/dist/tools/graph.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/loop.d.ts +21 -0
- package/dist/tools/loop.d.ts.map +1 -0
- package/dist/tools/loop.js +570 -0
- package/dist/tools/loop.js.map +1 -0
- package/dist/tools/plan-approval.d.ts +15 -0
- package/dist/tools/plan-approval.d.ts.map +1 -0
- package/dist/tools/plan-approval.js +203 -0
- package/dist/tools/plan-approval.js.map +1 -0
- package/dist/tools/plan-execute.d.ts +4 -0
- package/dist/tools/plan-execute.d.ts.map +1 -0
- package/dist/tools/plan-execute.js +85 -0
- package/dist/tools/plan-execute.js.map +1 -0
- package/dist/tools/plan-kv.d.ts +4 -0
- package/dist/tools/plan-kv.d.ts.map +1 -0
- package/dist/tools/plan-kv.js +107 -0
- package/dist/tools/plan-kv.js.map +1 -0
- package/dist/tools/review.d.ts +4 -0
- package/dist/tools/review.d.ts.map +1 -0
- package/dist/tools/review.js +90 -0
- package/dist/tools/review.js.map +1 -0
- package/dist/tools/sandbox-fs.d.ts +22 -0
- package/dist/tools/sandbox-fs.d.ts.map +1 -0
- package/dist/tools/sandbox-fs.js +83 -0
- package/dist/tools/sandbox-fs.js.map +1 -0
- package/dist/tools/types.d.ts +26 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tui.d.ts +3 -0
- package/dist/tui.js +2061 -0
- package/dist/types.d.ts +124 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/git-branch.d.ts +11 -0
- package/dist/utils/git-branch.d.ts.map +1 -0
- package/dist/utils/git-branch.js +35 -0
- package/dist/utils/git-branch.js.map +1 -0
- package/dist/utils/graph-status-store.d.ts +72 -0
- package/dist/utils/graph-status-store.d.ts.map +1 -0
- package/dist/utils/graph-status-store.js +62 -0
- package/dist/utils/graph-status-store.js.map +1 -0
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +89 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/loop-format.d.ts +5 -0
- package/dist/utils/loop-format.d.ts.map +1 -0
- package/dist/utils/loop-format.js +29 -0
- package/dist/utils/loop-format.js.map +1 -0
- package/dist/utils/loop-helpers.d.ts +9 -0
- package/dist/utils/loop-helpers.d.ts.map +1 -0
- package/dist/utils/loop-helpers.js +20 -0
- package/dist/utils/loop-helpers.js.map +1 -0
- package/dist/utils/loop-launch.d.ts +32 -0
- package/dist/utils/loop-launch.d.ts.map +1 -0
- package/dist/utils/loop-launch.js +162 -0
- package/dist/utils/loop-launch.js.map +1 -0
- package/dist/utils/model-fallback.d.ts +27 -0
- package/dist/utils/model-fallback.d.ts.map +1 -0
- package/dist/utils/model-fallback.js +33 -0
- package/dist/utils/model-fallback.js.map +1 -0
- package/dist/utils/partial-match.d.ts +7 -0
- package/dist/utils/partial-match.d.ts.map +1 -0
- package/dist/utils/partial-match.js +56 -0
- package/dist/utils/partial-match.js.map +1 -0
- package/dist/utils/plan-execution.d.ts +65 -0
- package/dist/utils/plan-execution.d.ts.map +1 -0
- package/dist/utils/plan-execution.js +107 -0
- package/dist/utils/plan-execution.js.map +1 -0
- package/dist/utils/session-stats.d.ts +36 -0
- package/dist/utils/session-stats.d.ts.map +1 -0
- package/dist/utils/session-stats.js +145 -0
- package/dist/utils/session-stats.js.map +1 -0
- package/dist/utils/tui-graph-status.d.ts +38 -0
- package/dist/utils/tui-graph-status.d.ts.map +1 -0
- package/dist/utils/tui-graph-status.js +95 -0
- package/dist/utils/tui-graph-status.js.map +1 -0
- package/dist/utils/tui-plan-store.d.ts +54 -0
- package/dist/utils/tui-plan-store.d.ts.map +1 -0
- package/dist/utils/tui-plan-store.js +168 -0
- package/dist/utils/tui-plan-store.js.map +1 -0
- package/dist/utils/tui-refresh-helpers.d.ts +44 -0
- package/dist/utils/tui-refresh-helpers.d.ts.map +1 -0
- package/dist/utils/tui-refresh-helpers.js +120 -0
- package/dist/utils/tui-refresh-helpers.js.map +1 -0
- package/dist/utils/upgrade.d.ts +23 -0
- package/dist/utils/upgrade.d.ts.map +1 -0
- package/dist/utils/upgrade.js +111 -0
- package/dist/utils/upgrade.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +92 -0
- package/scripts/build.ts +67 -0
- package/src/command/template/review.txt +101 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/graph/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Database } from 'bun:sqlite';
|
|
2
|
+
/**
|
|
3
|
+
* Initialize the graph database with the full schema
|
|
4
|
+
* Database location: <dataDir>/graph/<projectId-hash>/graph.db
|
|
5
|
+
*/
|
|
6
|
+
export declare function initializeGraphDatabase(projectId: string, dataDir: string): Database;
|
|
7
|
+
/**
|
|
8
|
+
* Close all graph database instances
|
|
9
|
+
*/
|
|
10
|
+
export declare function closeGraphDatabase(): void;
|
|
11
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAQrC;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAyBpF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAUzC"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { Database } from 'bun:sqlite';
|
|
2
|
+
import { existsSync, mkdirSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { hashProjectId } from '../storage/graph-projects';
|
|
5
|
+
// Track database instances for cleanup
|
|
6
|
+
const databaseInstances = new Map();
|
|
7
|
+
/**
|
|
8
|
+
* Initialize the graph database with the full schema
|
|
9
|
+
* Database location: <dataDir>/graph/<projectId-hash>/graph.db
|
|
10
|
+
*/
|
|
11
|
+
export function initializeGraphDatabase(projectId, dataDir) {
|
|
12
|
+
// Create project-specific subdirectory using hash
|
|
13
|
+
const projectIdHash = hashProjectId(projectId);
|
|
14
|
+
const graphDir = join(dataDir, 'graph', projectIdHash);
|
|
15
|
+
if (!existsSync(graphDir)) {
|
|
16
|
+
mkdirSync(graphDir, { recursive: true });
|
|
17
|
+
}
|
|
18
|
+
const dbPath = join(graphDir, 'graph.db');
|
|
19
|
+
const db = new Database(dbPath);
|
|
20
|
+
// SQLite optimizations
|
|
21
|
+
db.run('PRAGMA journal_mode=WAL');
|
|
22
|
+
db.run('PRAGMA busy_timeout=5000');
|
|
23
|
+
db.run('PRAGMA synchronous=NORMAL');
|
|
24
|
+
db.run('PRAGMA foreign_keys=ON');
|
|
25
|
+
// Create all tables
|
|
26
|
+
createTables(db);
|
|
27
|
+
// Track instance for later cleanup
|
|
28
|
+
databaseInstances.set(dbPath, db);
|
|
29
|
+
return db;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Close all graph database instances
|
|
33
|
+
*/
|
|
34
|
+
export function closeGraphDatabase() {
|
|
35
|
+
for (const [path, db] of databaseInstances.entries()) {
|
|
36
|
+
try {
|
|
37
|
+
db.close();
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
// Database may already be closed
|
|
41
|
+
console.debug(`Graph database close skipped for ${path}`, err);
|
|
42
|
+
}
|
|
43
|
+
databaseInstances.delete(path);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function createTables(db) {
|
|
47
|
+
// Files table
|
|
48
|
+
db.run(`
|
|
49
|
+
CREATE TABLE IF NOT EXISTS files (
|
|
50
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
51
|
+
path TEXT NOT NULL UNIQUE,
|
|
52
|
+
mtime_ms INTEGER NOT NULL,
|
|
53
|
+
language TEXT NOT NULL,
|
|
54
|
+
line_count INTEGER NOT NULL,
|
|
55
|
+
symbol_count INTEGER NOT NULL DEFAULT 0,
|
|
56
|
+
pagerank REAL NOT NULL DEFAULT 0,
|
|
57
|
+
is_barrel INTEGER NOT NULL DEFAULT 0,
|
|
58
|
+
indexed_at INTEGER NOT NULL
|
|
59
|
+
)
|
|
60
|
+
`);
|
|
61
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_files_path ON files(path)`);
|
|
62
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_files_language ON files(language)`);
|
|
63
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_files_pagerank ON files(pagerank DESC)`);
|
|
64
|
+
// Symbols table
|
|
65
|
+
db.run(`
|
|
66
|
+
CREATE TABLE IF NOT EXISTS symbols (
|
|
67
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
68
|
+
file_id INTEGER NOT NULL,
|
|
69
|
+
name TEXT NOT NULL,
|
|
70
|
+
kind TEXT NOT NULL,
|
|
71
|
+
line INTEGER NOT NULL,
|
|
72
|
+
end_line INTEGER NOT NULL,
|
|
73
|
+
is_exported INTEGER NOT NULL DEFAULT 0,
|
|
74
|
+
signature TEXT,
|
|
75
|
+
qualified_name TEXT,
|
|
76
|
+
FOREIGN KEY (file_id) REFERENCES files(id) ON DELETE CASCADE
|
|
77
|
+
)
|
|
78
|
+
`);
|
|
79
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_symbols_file_id ON symbols(file_id)`);
|
|
80
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_symbols_name ON symbols(name)`);
|
|
81
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_symbols_kind ON symbols(kind)`);
|
|
82
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_symbols_exported ON symbols(is_exported)`);
|
|
83
|
+
// Edges table (file dependencies)
|
|
84
|
+
db.run(`
|
|
85
|
+
CREATE TABLE IF NOT EXISTS edges (
|
|
86
|
+
source_file_id INTEGER NOT NULL,
|
|
87
|
+
target_file_id INTEGER NOT NULL,
|
|
88
|
+
weight REAL NOT NULL DEFAULT 1,
|
|
89
|
+
confidence REAL NOT NULL DEFAULT 1,
|
|
90
|
+
PRIMARY KEY (source_file_id, target_file_id),
|
|
91
|
+
FOREIGN KEY (source_file_id) REFERENCES files(id) ON DELETE CASCADE,
|
|
92
|
+
FOREIGN KEY (target_file_id) REFERENCES files(id) ON DELETE CASCADE
|
|
93
|
+
)
|
|
94
|
+
`);
|
|
95
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_edges_source ON edges(source_file_id)`);
|
|
96
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_edges_target ON edges(target_file_id)`);
|
|
97
|
+
// Refs table (imports)
|
|
98
|
+
db.run(`
|
|
99
|
+
CREATE TABLE IF NOT EXISTS refs (
|
|
100
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
101
|
+
file_id INTEGER NOT NULL,
|
|
102
|
+
name TEXT NOT NULL,
|
|
103
|
+
source_file_id INTEGER,
|
|
104
|
+
import_source TEXT NOT NULL,
|
|
105
|
+
FOREIGN KEY (file_id) REFERENCES files(id) ON DELETE CASCADE,
|
|
106
|
+
FOREIGN KEY (source_file_id) REFERENCES files(id) ON DELETE SET NULL
|
|
107
|
+
)
|
|
108
|
+
`);
|
|
109
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_refs_file_id ON refs(file_id)`);
|
|
110
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_refs_source_file_id ON refs(source_file_id)`);
|
|
111
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_refs_import_source ON refs(import_source)`);
|
|
112
|
+
// Calls table (call graph)
|
|
113
|
+
db.run(`
|
|
114
|
+
CREATE TABLE IF NOT EXISTS calls (
|
|
115
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
116
|
+
caller_symbol_id INTEGER NOT NULL,
|
|
117
|
+
callee_name TEXT NOT NULL,
|
|
118
|
+
callee_symbol_id INTEGER,
|
|
119
|
+
callee_file_id INTEGER,
|
|
120
|
+
line INTEGER NOT NULL,
|
|
121
|
+
FOREIGN KEY (caller_symbol_id) REFERENCES symbols(id) ON DELETE CASCADE,
|
|
122
|
+
FOREIGN KEY (callee_symbol_id) REFERENCES symbols(id) ON DELETE SET NULL,
|
|
123
|
+
FOREIGN KEY (callee_file_id) REFERENCES files(id) ON DELETE SET NULL
|
|
124
|
+
)
|
|
125
|
+
`);
|
|
126
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_calls_caller ON calls(caller_symbol_id)`);
|
|
127
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_calls_callee_name ON calls(callee_name)`);
|
|
128
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_calls_callee_file ON calls(callee_file_id)`);
|
|
129
|
+
// Co-changes table
|
|
130
|
+
db.run(`
|
|
131
|
+
CREATE TABLE IF NOT EXISTS cochanges (
|
|
132
|
+
file_id_a INTEGER NOT NULL,
|
|
133
|
+
file_id_b INTEGER NOT NULL,
|
|
134
|
+
count INTEGER NOT NULL DEFAULT 1,
|
|
135
|
+
PRIMARY KEY (file_id_a, file_id_b),
|
|
136
|
+
FOREIGN KEY (file_id_a) REFERENCES files(id) ON DELETE CASCADE,
|
|
137
|
+
FOREIGN KEY (file_id_b) REFERENCES files(id) ON DELETE CASCADE
|
|
138
|
+
)
|
|
139
|
+
`);
|
|
140
|
+
// External imports table
|
|
141
|
+
db.run(`
|
|
142
|
+
CREATE TABLE IF NOT EXISTS external_imports (
|
|
143
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
144
|
+
file_id INTEGER NOT NULL,
|
|
145
|
+
package TEXT NOT NULL,
|
|
146
|
+
specifiers TEXT NOT NULL,
|
|
147
|
+
FOREIGN KEY (file_id) REFERENCES files(id) ON DELETE CASCADE
|
|
148
|
+
)
|
|
149
|
+
`);
|
|
150
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_external_imports_file_id ON external_imports(file_id)`);
|
|
151
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_external_imports_package ON external_imports(package)`);
|
|
152
|
+
// Semantic summaries table - uses composite primary key for INSERT OR REPLACE semantics
|
|
153
|
+
// Migration: Drop old table if it exists with autoincrement id, recreate with composite PK
|
|
154
|
+
const tableInfo = db.prepare("PRAGMA table_info(semantic_summaries)").all();
|
|
155
|
+
const hasOldSchema = tableInfo.some(col => col.name === 'id' && col.pk === 1);
|
|
156
|
+
const hasNewSchema = tableInfo.length > 0 && !hasOldSchema;
|
|
157
|
+
if (hasOldSchema) {
|
|
158
|
+
// Drop old schema table to recreate with composite primary key
|
|
159
|
+
db.run(`DROP TABLE IF EXISTS semantic_summaries`);
|
|
160
|
+
}
|
|
161
|
+
if (!hasNewSchema) {
|
|
162
|
+
// Create table only if it doesn't exist with correct schema
|
|
163
|
+
db.run(`
|
|
164
|
+
CREATE TABLE semantic_summaries (
|
|
165
|
+
symbol_id INTEGER NOT NULL,
|
|
166
|
+
source TEXT NOT NULL,
|
|
167
|
+
summary TEXT NOT NULL,
|
|
168
|
+
file_mtime INTEGER NOT NULL,
|
|
169
|
+
file_path TEXT NOT NULL,
|
|
170
|
+
symbol_name TEXT NOT NULL,
|
|
171
|
+
PRIMARY KEY (symbol_id, source),
|
|
172
|
+
FOREIGN KEY (symbol_id) REFERENCES symbols(id) ON DELETE CASCADE
|
|
173
|
+
)
|
|
174
|
+
`);
|
|
175
|
+
}
|
|
176
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_semantic_summaries_symbol_id ON semantic_summaries(symbol_id)`);
|
|
177
|
+
// Shape hashes table (for clone detection)
|
|
178
|
+
db.run(`
|
|
179
|
+
CREATE TABLE IF NOT EXISTS shape_hashes (
|
|
180
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
181
|
+
file_id INTEGER NOT NULL,
|
|
182
|
+
name TEXT NOT NULL,
|
|
183
|
+
kind TEXT NOT NULL,
|
|
184
|
+
line INTEGER NOT NULL,
|
|
185
|
+
end_line INTEGER NOT NULL,
|
|
186
|
+
shape_hash TEXT NOT NULL,
|
|
187
|
+
node_count INTEGER NOT NULL,
|
|
188
|
+
FOREIGN KEY (file_id) REFERENCES files(id) ON DELETE CASCADE
|
|
189
|
+
)
|
|
190
|
+
`);
|
|
191
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_shape_hashes_file_id ON shape_hashes(file_id)`);
|
|
192
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_shape_hashes_shape_hash ON shape_hashes(shape_hash)`);
|
|
193
|
+
// Token signatures table (for near-duplicate detection)
|
|
194
|
+
db.run(`
|
|
195
|
+
CREATE TABLE IF NOT EXISTS token_signatures (
|
|
196
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
197
|
+
file_id INTEGER NOT NULL,
|
|
198
|
+
name TEXT NOT NULL,
|
|
199
|
+
line INTEGER NOT NULL,
|
|
200
|
+
end_line INTEGER NOT NULL,
|
|
201
|
+
minhash BLOB NOT NULL,
|
|
202
|
+
FOREIGN KEY (file_id) REFERENCES files(id) ON DELETE CASCADE
|
|
203
|
+
)
|
|
204
|
+
`);
|
|
205
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_token_signatures_file_id ON token_signatures(file_id)`);
|
|
206
|
+
// Token fragments table
|
|
207
|
+
db.run(`
|
|
208
|
+
CREATE TABLE IF NOT EXISTS token_fragments (
|
|
209
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
210
|
+
hash TEXT NOT NULL,
|
|
211
|
+
file_id INTEGER NOT NULL,
|
|
212
|
+
name TEXT NOT NULL,
|
|
213
|
+
line INTEGER NOT NULL,
|
|
214
|
+
token_offset INTEGER NOT NULL,
|
|
215
|
+
FOREIGN KEY (file_id) REFERENCES files(id) ON DELETE CASCADE
|
|
216
|
+
)
|
|
217
|
+
`);
|
|
218
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_token_fragments_hash ON token_fragments(hash)`);
|
|
219
|
+
db.run(`CREATE INDEX IF NOT EXISTS idx_token_fragments_file_id ON token_fragments(file_id)`);
|
|
220
|
+
// FTS5 virtual table for symbol search
|
|
221
|
+
db.run(`
|
|
222
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS symbols_fts USING fts5(
|
|
223
|
+
name,
|
|
224
|
+
path,
|
|
225
|
+
kind,
|
|
226
|
+
content='symbols',
|
|
227
|
+
content_rowid='id'
|
|
228
|
+
)
|
|
229
|
+
`);
|
|
230
|
+
// Triggers to keep FTS in sync
|
|
231
|
+
db.run(`
|
|
232
|
+
CREATE TRIGGER IF NOT EXISTS symbols_ai AFTER INSERT ON symbols BEGIN
|
|
233
|
+
INSERT INTO symbols_fts(rowid, name, path, kind)
|
|
234
|
+
VALUES (new.id, new.name, (SELECT path FROM files WHERE id = new.file_id), new.kind);
|
|
235
|
+
END
|
|
236
|
+
`);
|
|
237
|
+
db.run(`
|
|
238
|
+
CREATE TRIGGER IF NOT EXISTS symbols_ad AFTER DELETE ON symbols BEGIN
|
|
239
|
+
INSERT INTO symbols_fts(symbols_fts, rowid, name, path, kind) VALUES('delete', old.id, old.name, '', old.kind);
|
|
240
|
+
END
|
|
241
|
+
`);
|
|
242
|
+
db.run(`
|
|
243
|
+
CREATE TRIGGER IF NOT EXISTS symbols_au AFTER UPDATE ON symbols BEGIN
|
|
244
|
+
INSERT INTO symbols_fts(symbols_fts, rowid, name, path, kind) VALUES('delete', old.id, old.name, '', old.kind);
|
|
245
|
+
INSERT INTO symbols_fts(rowid, name, path, kind)
|
|
246
|
+
VALUES (new.id, new.name, (SELECT path FROM files WHERE id = new.file_id), new.kind);
|
|
247
|
+
END
|
|
248
|
+
`);
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { createGraphService } from './service';
|
|
2
|
+
export type { GraphService } from './service';
|
|
3
|
+
export { GraphClient } from './client';
|
|
4
|
+
export { initializeGraphDatabase, closeGraphDatabase } from './database';
|
|
5
|
+
export { RpcClient, RpcServer } from './rpc';
|
|
6
|
+
export { RepoMap } from './repo-map';
|
|
7
|
+
export { TreeSitterBackend } from './tree-sitter';
|
|
8
|
+
export { FileCache } from './cache';
|
|
9
|
+
export { tokenize, computeMinHash, computeFragmentHashes, jaccardSimilarity } from './clone-detection';
|
|
10
|
+
export type { FragmentHash } from './clone-detection';
|
|
11
|
+
export * from './types';
|
|
12
|
+
export * from './constants';
|
|
13
|
+
export * from './utils';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACtG,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Graph module public exports
|
|
2
|
+
export { createGraphService } from './service';
|
|
3
|
+
export { GraphClient } from './client';
|
|
4
|
+
export { initializeGraphDatabase, closeGraphDatabase } from './database';
|
|
5
|
+
export { RpcClient, RpcServer } from './rpc';
|
|
6
|
+
export { RepoMap } from './repo-map';
|
|
7
|
+
export { TreeSitterBackend } from './tree-sitter';
|
|
8
|
+
export { FileCache } from './cache';
|
|
9
|
+
export { tokenize, computeMinHash, computeFragmentHashes, jaccardSimilarity } from './clone-detection';
|
|
10
|
+
export * from './types';
|
|
11
|
+
export * from './constants';
|
|
12
|
+
export * from './utils';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEtG,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Database } from 'bun:sqlite';
|
|
2
|
+
import type { TopFileResult, FileDepResult, FileCoChangeResult, FileSymbolResult, SymbolSearchResult, SymbolSignatureResult, CallerResult, CalleeResult, UnusedExportResult, DuplicateStructureResult, NearDuplicateResult, ExternalPackageResult, GraphStats } from './types';
|
|
3
|
+
interface RepoMapConfig {
|
|
4
|
+
cwd: string;
|
|
5
|
+
db: Database;
|
|
6
|
+
maxFiles?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class RepoMap {
|
|
9
|
+
private db;
|
|
10
|
+
private cwd;
|
|
11
|
+
private treeSitter;
|
|
12
|
+
private cache;
|
|
13
|
+
private stmts;
|
|
14
|
+
private maxFiles;
|
|
15
|
+
constructor(config: RepoMapConfig);
|
|
16
|
+
private prepareStatements;
|
|
17
|
+
initialize(): Promise<void>;
|
|
18
|
+
private initSchema;
|
|
19
|
+
scan(): Promise<void>;
|
|
20
|
+
indexFile(filePath: string): Promise<void>;
|
|
21
|
+
private resolveImportSource;
|
|
22
|
+
resolveUnresolvedRefs(): Promise<void>;
|
|
23
|
+
buildEdges(): Promise<void>;
|
|
24
|
+
computePageRank(): Promise<void>;
|
|
25
|
+
computePageRankSync(): Promise<void>;
|
|
26
|
+
render(opts?: {
|
|
27
|
+
maxFiles?: number;
|
|
28
|
+
maxSymbols?: number;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
content: string;
|
|
31
|
+
paths: string[];
|
|
32
|
+
}>;
|
|
33
|
+
getStats(): GraphStats;
|
|
34
|
+
getTopFiles(limit?: number): TopFileResult[];
|
|
35
|
+
getFileDependents(path: string): FileDepResult[];
|
|
36
|
+
getFileDependencies(path: string): FileDepResult[];
|
|
37
|
+
getFileCoChanges(path: string): FileCoChangeResult[];
|
|
38
|
+
getFileBlastRadius(path: string): number;
|
|
39
|
+
getFileSymbols(path: string): FileSymbolResult[];
|
|
40
|
+
findSymbols(query: string, limit?: number): SymbolSearchResult[];
|
|
41
|
+
searchSymbolsFts(query: string, limit?: number): SymbolSearchResult[];
|
|
42
|
+
getSymbolSignature(path: string, line: number): SymbolSignatureResult | null;
|
|
43
|
+
getCallers(path: string, line: number): CallerResult[];
|
|
44
|
+
getCallees(path: string, line: number): CalleeResult[];
|
|
45
|
+
getUnusedExports(limit?: number): UnusedExportResult[];
|
|
46
|
+
getDuplicateStructures(limit?: number): DuplicateStructureResult[];
|
|
47
|
+
getNearDuplicates(threshold?: number, limit?: number): NearDuplicateResult[];
|
|
48
|
+
getExternalPackages(limit?: number): ExternalPackageResult[];
|
|
49
|
+
onFileChanged(path: string): Promise<{
|
|
50
|
+
status: string;
|
|
51
|
+
}>;
|
|
52
|
+
private removeFile;
|
|
53
|
+
buildCoChanges(): Promise<void>;
|
|
54
|
+
buildCallGraph(): Promise<void>;
|
|
55
|
+
linkTestFiles(): void;
|
|
56
|
+
rescueOrphans(): void;
|
|
57
|
+
}
|
|
58
|
+
export {};
|
|
59
|
+
//# sourceMappingURL=repo-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-map.d.ts","sourceRoot":"","sources":["../../src/graph/repo-map.ts"],"names":[],"mappings":"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"}
|