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.
Files changed (309) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +534 -0
  3. package/config.jsonc +47 -0
  4. package/dist/agents/architect.d.ts +3 -0
  5. package/dist/agents/architect.d.ts.map +1 -0
  6. package/dist/agents/architect.js +152 -0
  7. package/dist/agents/architect.js.map +1 -0
  8. package/dist/agents/auditor.d.ts +3 -0
  9. package/dist/agents/auditor.d.ts.map +1 -0
  10. package/dist/agents/auditor.js +168 -0
  11. package/dist/agents/auditor.js.map +1 -0
  12. package/dist/agents/code.d.ts +3 -0
  13. package/dist/agents/code.d.ts.map +1 -0
  14. package/dist/agents/code.js +67 -0
  15. package/dist/agents/code.js.map +1 -0
  16. package/dist/agents/index.d.ts +4 -0
  17. package/dist/agents/index.d.ts.map +1 -0
  18. package/dist/agents/index.js +9 -0
  19. package/dist/agents/index.js.map +1 -0
  20. package/dist/agents/prompts.d.ts +1 -0
  21. package/dist/agents/prompts.d.ts.map +1 -0
  22. package/dist/agents/prompts.js +4 -0
  23. package/dist/agents/prompts.js.map +1 -0
  24. package/dist/agents/types.d.ts +34 -0
  25. package/dist/agents/types.d.ts.map +1 -0
  26. package/dist/agents/types.js +2 -0
  27. package/dist/agents/types.js.map +1 -0
  28. package/dist/cache/index.d.ts +4 -0
  29. package/dist/cache/index.d.ts.map +1 -0
  30. package/dist/cache/index.js +5 -0
  31. package/dist/cache/index.js.map +1 -0
  32. package/dist/cache/memory-cache.d.ts +14 -0
  33. package/dist/cache/memory-cache.d.ts.map +1 -0
  34. package/dist/cache/memory-cache.js +51 -0
  35. package/dist/cache/memory-cache.js.map +1 -0
  36. package/dist/cache/types.d.ts +8 -0
  37. package/dist/cache/types.d.ts.map +1 -0
  38. package/dist/cache/types.js +2 -0
  39. package/dist/cache/types.js.map +1 -0
  40. package/dist/cli/commands/cancel.d.ts +15 -0
  41. package/dist/cli/commands/cancel.d.ts.map +1 -0
  42. package/dist/cli/commands/cancel.js +194 -0
  43. package/dist/cli/commands/cancel.js.map +1 -0
  44. package/dist/cli/commands/graph.d.ts +16 -0
  45. package/dist/cli/commands/graph.d.ts.map +1 -0
  46. package/dist/cli/commands/graph.js +208 -0
  47. package/dist/cli/commands/graph.js.map +1 -0
  48. package/dist/cli/commands/restart.d.ts +15 -0
  49. package/dist/cli/commands/restart.d.ts.map +1 -0
  50. package/dist/cli/commands/restart.js +268 -0
  51. package/dist/cli/commands/restart.js.map +1 -0
  52. package/dist/cli/commands/status.d.ts +17 -0
  53. package/dist/cli/commands/status.d.ts.map +1 -0
  54. package/dist/cli/commands/status.js +356 -0
  55. package/dist/cli/commands/status.js.map +1 -0
  56. package/dist/cli/commands/upgrade.d.ts +3 -0
  57. package/dist/cli/commands/upgrade.d.ts.map +1 -0
  58. package/dist/cli/commands/upgrade.js +40 -0
  59. package/dist/cli/commands/upgrade.js.map +1 -0
  60. package/dist/cli/index.d.ts +3 -0
  61. package/dist/cli/index.d.ts.map +1 -0
  62. package/dist/cli/index.js +224 -0
  63. package/dist/cli/index.js.map +1 -0
  64. package/dist/cli/utils.d.ts +36 -0
  65. package/dist/cli/utils.d.ts.map +1 -0
  66. package/dist/cli/utils.js +163 -0
  67. package/dist/cli/utils.js.map +1 -0
  68. package/dist/command/template/review.txt +101 -0
  69. package/dist/config.d.ts +5 -0
  70. package/dist/config.d.ts.map +1 -0
  71. package/dist/config.js +186 -0
  72. package/dist/config.js.map +1 -0
  73. package/dist/constants/loop.d.ts +10 -0
  74. package/dist/constants/loop.d.ts.map +1 -0
  75. package/dist/constants/loop.js +6 -0
  76. package/dist/constants/loop.js.map +1 -0
  77. package/dist/graph/cache.d.ts +17 -0
  78. package/dist/graph/cache.d.ts.map +1 -0
  79. package/dist/graph/cache.js +50 -0
  80. package/dist/graph/cache.js.map +1 -0
  81. package/dist/graph/client.d.ts +51 -0
  82. package/dist/graph/client.d.ts.map +1 -0
  83. package/dist/graph/client.js +152 -0
  84. package/dist/graph/client.js.map +1 -0
  85. package/dist/graph/clone-detection.d.ts +9 -0
  86. package/dist/graph/clone-detection.d.ts.map +1 -0
  87. package/dist/graph/clone-detection.js +148 -0
  88. package/dist/graph/clone-detection.js.map +1 -0
  89. package/dist/graph/constants.d.ts +18 -0
  90. package/dist/graph/constants.d.ts.map +1 -0
  91. package/dist/graph/constants.js +532 -0
  92. package/dist/graph/constants.js.map +1 -0
  93. package/dist/graph/database.d.ts +11 -0
  94. package/dist/graph/database.d.ts.map +1 -0
  95. package/dist/graph/database.js +250 -0
  96. package/dist/graph/database.js.map +1 -0
  97. package/dist/graph/index.d.ts +14 -0
  98. package/dist/graph/index.d.ts.map +1 -0
  99. package/dist/graph/index.js +13 -0
  100. package/dist/graph/index.js.map +1 -0
  101. package/dist/graph/repo-map.d.ts +59 -0
  102. package/dist/graph/repo-map.d.ts.map +1 -0
  103. package/dist/graph/repo-map.js +948 -0
  104. package/dist/graph/repo-map.js.map +1 -0
  105. package/dist/graph/rpc.d.ts +34 -0
  106. package/dist/graph/rpc.d.ts.map +1 -0
  107. package/dist/graph/rpc.js +139 -0
  108. package/dist/graph/rpc.js.map +1 -0
  109. package/dist/graph/service.d.ts +46 -0
  110. package/dist/graph/service.d.ts.map +1 -0
  111. package/dist/graph/service.js +329 -0
  112. package/dist/graph/service.js.map +1 -0
  113. package/dist/graph/tree-sitter.d.ts +40 -0
  114. package/dist/graph/tree-sitter.d.ts.map +1 -0
  115. package/dist/graph/tree-sitter.js +799 -0
  116. package/dist/graph/tree-sitter.js.map +1 -0
  117. package/dist/graph/types.d.ts +175 -0
  118. package/dist/graph/types.d.ts.map +1 -0
  119. package/dist/graph/types.js +105 -0
  120. package/dist/graph/types.js.map +1 -0
  121. package/dist/graph/utils.d.ts +64 -0
  122. package/dist/graph/utils.d.ts.map +1 -0
  123. package/dist/graph/utils.js +406 -0
  124. package/dist/graph/utils.js.map +1 -0
  125. package/dist/graph/worker.d.ts +2 -0
  126. package/dist/graph/worker.d.ts.map +1 -0
  127. package/dist/graph/worker.js +6043 -0
  128. package/dist/graph/worker.js.map +1 -0
  129. package/dist/hooks/compaction-utils.d.ts +21 -0
  130. package/dist/hooks/compaction-utils.d.ts.map +1 -0
  131. package/dist/hooks/compaction-utils.js +82 -0
  132. package/dist/hooks/compaction-utils.js.map +1 -0
  133. package/dist/hooks/graph-command.d.ts +27 -0
  134. package/dist/hooks/graph-command.d.ts.map +1 -0
  135. package/dist/hooks/graph-command.js +57 -0
  136. package/dist/hooks/graph-command.js.map +1 -0
  137. package/dist/hooks/graph-tools.d.ts +11 -0
  138. package/dist/hooks/graph-tools.d.ts.map +1 -0
  139. package/dist/hooks/graph-tools.js +125 -0
  140. package/dist/hooks/graph-tools.js.map +1 -0
  141. package/dist/hooks/index.d.ts +5 -0
  142. package/dist/hooks/index.d.ts.map +1 -0
  143. package/dist/hooks/index.js +5 -0
  144. package/dist/hooks/index.js.map +1 -0
  145. package/dist/hooks/loop.d.ts +23 -0
  146. package/dist/hooks/loop.d.ts.map +1 -0
  147. package/dist/hooks/loop.js +667 -0
  148. package/dist/hooks/loop.js.map +1 -0
  149. package/dist/hooks/sandbox-tools.d.ts +13 -0
  150. package/dist/hooks/sandbox-tools.d.ts.map +1 -0
  151. package/dist/hooks/sandbox-tools.js +105 -0
  152. package/dist/hooks/sandbox-tools.js.map +1 -0
  153. package/dist/hooks/session.d.ts +19 -0
  154. package/dist/hooks/session.d.ts.map +1 -0
  155. package/dist/hooks/session.js +56 -0
  156. package/dist/hooks/session.js.map +1 -0
  157. package/dist/index.d.ts +11 -0
  158. package/dist/index.d.ts.map +1 -0
  159. package/dist/index.js +298 -0
  160. package/dist/index.js.map +1 -0
  161. package/dist/sandbox/context.d.ts +27 -0
  162. package/dist/sandbox/context.d.ts.map +1 -0
  163. package/dist/sandbox/context.js +18 -0
  164. package/dist/sandbox/context.js.map +1 -0
  165. package/dist/sandbox/docker.d.ts +29 -0
  166. package/dist/sandbox/docker.d.ts.map +1 -0
  167. package/dist/sandbox/docker.js +213 -0
  168. package/dist/sandbox/docker.js.map +1 -0
  169. package/dist/sandbox/manager.d.ts +23 -0
  170. package/dist/sandbox/manager.d.ts.map +1 -0
  171. package/dist/sandbox/manager.js +131 -0
  172. package/dist/sandbox/manager.js.map +1 -0
  173. package/dist/sandbox/path.d.ts +4 -0
  174. package/dist/sandbox/path.d.ts.map +1 -0
  175. package/dist/sandbox/path.js +27 -0
  176. package/dist/sandbox/path.js.map +1 -0
  177. package/dist/services/kv.d.ts +17 -0
  178. package/dist/services/kv.d.ts.map +1 -0
  179. package/dist/services/kv.js +62 -0
  180. package/dist/services/kv.js.map +1 -0
  181. package/dist/services/loop.d.ts +96 -0
  182. package/dist/services/loop.d.ts.map +1 -0
  183. package/dist/services/loop.js +315 -0
  184. package/dist/services/loop.js.map +1 -0
  185. package/dist/setup.d.ts +4 -0
  186. package/dist/setup.d.ts.map +1 -0
  187. package/dist/setup.js +118 -0
  188. package/dist/setup.js.map +1 -0
  189. package/dist/storage/database.d.ts +6 -0
  190. package/dist/storage/database.d.ts.map +1 -0
  191. package/dist/storage/database.js +90 -0
  192. package/dist/storage/database.js.map +1 -0
  193. package/dist/storage/graph-projects.d.ts +80 -0
  194. package/dist/storage/graph-projects.d.ts.map +1 -0
  195. package/dist/storage/graph-projects.js +154 -0
  196. package/dist/storage/graph-projects.js.map +1 -0
  197. package/dist/storage/index.d.ts +5 -0
  198. package/dist/storage/index.d.ts.map +1 -0
  199. package/dist/storage/index.js +3 -0
  200. package/dist/storage/index.js.map +1 -0
  201. package/dist/storage/kv-queries.d.ts +18 -0
  202. package/dist/storage/kv-queries.d.ts.map +1 -0
  203. package/dist/storage/kv-queries.js +70 -0
  204. package/dist/storage/kv-queries.js.map +1 -0
  205. package/dist/tools/graph.d.ts +9 -0
  206. package/dist/tools/graph.d.ts.map +1 -0
  207. package/dist/tools/graph.js +272 -0
  208. package/dist/tools/graph.js.map +1 -0
  209. package/dist/tools/index.d.ts +6 -0
  210. package/dist/tools/index.d.ts.map +1 -0
  211. package/dist/tools/index.js +16 -0
  212. package/dist/tools/index.js.map +1 -0
  213. package/dist/tools/loop.d.ts +21 -0
  214. package/dist/tools/loop.d.ts.map +1 -0
  215. package/dist/tools/loop.js +570 -0
  216. package/dist/tools/loop.js.map +1 -0
  217. package/dist/tools/plan-approval.d.ts +15 -0
  218. package/dist/tools/plan-approval.d.ts.map +1 -0
  219. package/dist/tools/plan-approval.js +203 -0
  220. package/dist/tools/plan-approval.js.map +1 -0
  221. package/dist/tools/plan-execute.d.ts +4 -0
  222. package/dist/tools/plan-execute.d.ts.map +1 -0
  223. package/dist/tools/plan-execute.js +85 -0
  224. package/dist/tools/plan-execute.js.map +1 -0
  225. package/dist/tools/plan-kv.d.ts +4 -0
  226. package/dist/tools/plan-kv.d.ts.map +1 -0
  227. package/dist/tools/plan-kv.js +107 -0
  228. package/dist/tools/plan-kv.js.map +1 -0
  229. package/dist/tools/review.d.ts +4 -0
  230. package/dist/tools/review.d.ts.map +1 -0
  231. package/dist/tools/review.js +90 -0
  232. package/dist/tools/review.js.map +1 -0
  233. package/dist/tools/sandbox-fs.d.ts +22 -0
  234. package/dist/tools/sandbox-fs.d.ts.map +1 -0
  235. package/dist/tools/sandbox-fs.js +83 -0
  236. package/dist/tools/sandbox-fs.js.map +1 -0
  237. package/dist/tools/types.d.ts +26 -0
  238. package/dist/tools/types.d.ts.map +1 -0
  239. package/dist/tools/types.js +2 -0
  240. package/dist/tools/types.js.map +1 -0
  241. package/dist/tui.d.ts +3 -0
  242. package/dist/tui.js +2061 -0
  243. package/dist/types.d.ts +124 -0
  244. package/dist/types.d.ts.map +1 -0
  245. package/dist/types.js +2 -0
  246. package/dist/types.js.map +1 -0
  247. package/dist/utils/git-branch.d.ts +11 -0
  248. package/dist/utils/git-branch.d.ts.map +1 -0
  249. package/dist/utils/git-branch.js +35 -0
  250. package/dist/utils/git-branch.js.map +1 -0
  251. package/dist/utils/graph-status-store.d.ts +72 -0
  252. package/dist/utils/graph-status-store.d.ts.map +1 -0
  253. package/dist/utils/graph-status-store.js +62 -0
  254. package/dist/utils/graph-status-store.js.map +1 -0
  255. package/dist/utils/logger.d.ts +8 -0
  256. package/dist/utils/logger.d.ts.map +1 -0
  257. package/dist/utils/logger.js +89 -0
  258. package/dist/utils/logger.js.map +1 -0
  259. package/dist/utils/loop-format.d.ts +5 -0
  260. package/dist/utils/loop-format.d.ts.map +1 -0
  261. package/dist/utils/loop-format.js +29 -0
  262. package/dist/utils/loop-format.js.map +1 -0
  263. package/dist/utils/loop-helpers.d.ts +9 -0
  264. package/dist/utils/loop-helpers.d.ts.map +1 -0
  265. package/dist/utils/loop-helpers.js +20 -0
  266. package/dist/utils/loop-helpers.js.map +1 -0
  267. package/dist/utils/loop-launch.d.ts +32 -0
  268. package/dist/utils/loop-launch.d.ts.map +1 -0
  269. package/dist/utils/loop-launch.js +162 -0
  270. package/dist/utils/loop-launch.js.map +1 -0
  271. package/dist/utils/model-fallback.d.ts +27 -0
  272. package/dist/utils/model-fallback.d.ts.map +1 -0
  273. package/dist/utils/model-fallback.js +33 -0
  274. package/dist/utils/model-fallback.js.map +1 -0
  275. package/dist/utils/partial-match.d.ts +7 -0
  276. package/dist/utils/partial-match.d.ts.map +1 -0
  277. package/dist/utils/partial-match.js +56 -0
  278. package/dist/utils/partial-match.js.map +1 -0
  279. package/dist/utils/plan-execution.d.ts +65 -0
  280. package/dist/utils/plan-execution.d.ts.map +1 -0
  281. package/dist/utils/plan-execution.js +107 -0
  282. package/dist/utils/plan-execution.js.map +1 -0
  283. package/dist/utils/session-stats.d.ts +36 -0
  284. package/dist/utils/session-stats.d.ts.map +1 -0
  285. package/dist/utils/session-stats.js +145 -0
  286. package/dist/utils/session-stats.js.map +1 -0
  287. package/dist/utils/tui-graph-status.d.ts +38 -0
  288. package/dist/utils/tui-graph-status.d.ts.map +1 -0
  289. package/dist/utils/tui-graph-status.js +95 -0
  290. package/dist/utils/tui-graph-status.js.map +1 -0
  291. package/dist/utils/tui-plan-store.d.ts +54 -0
  292. package/dist/utils/tui-plan-store.d.ts.map +1 -0
  293. package/dist/utils/tui-plan-store.js +168 -0
  294. package/dist/utils/tui-plan-store.js.map +1 -0
  295. package/dist/utils/tui-refresh-helpers.d.ts +44 -0
  296. package/dist/utils/tui-refresh-helpers.d.ts.map +1 -0
  297. package/dist/utils/tui-refresh-helpers.js +120 -0
  298. package/dist/utils/tui-refresh-helpers.js.map +1 -0
  299. package/dist/utils/upgrade.d.ts +23 -0
  300. package/dist/utils/upgrade.d.ts.map +1 -0
  301. package/dist/utils/upgrade.js +111 -0
  302. package/dist/utils/upgrade.js.map +1 -0
  303. package/dist/version.d.ts +2 -0
  304. package/dist/version.d.ts.map +1 -0
  305. package/dist/version.js +2 -0
  306. package/dist/version.js.map +1 -0
  307. package/package.json +92 -0
  308. package/scripts/build.ts +67 -0
  309. 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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"}