@phmotad/fire-code 0.2.9 → 0.3.0

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 (39) hide show
  1. package/dist/cli/commands/index-cmd.d.ts +2 -0
  2. package/dist/cli/commands/index-cmd.d.ts.map +1 -1
  3. package/dist/cli/commands/index-cmd.js +26 -20
  4. package/dist/cli/commands/index-cmd.js.map +1 -1
  5. package/dist/cli/commands/install.d.ts.map +1 -1
  6. package/dist/cli/commands/install.js +12 -0
  7. package/dist/cli/commands/install.js.map +1 -1
  8. package/dist/cli/index.js +10 -3
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/db/DatabaseManager.d.ts +3 -2
  11. package/dist/db/DatabaseManager.d.ts.map +1 -1
  12. package/dist/db/DatabaseManager.js +38 -26
  13. package/dist/db/DatabaseManager.js.map +1 -1
  14. package/dist/db/SqlJsAdapter.d.ts +32 -0
  15. package/dist/db/SqlJsAdapter.d.ts.map +1 -0
  16. package/dist/db/SqlJsAdapter.js +130 -0
  17. package/dist/db/SqlJsAdapter.js.map +1 -0
  18. package/dist/db/schema.d.ts +1 -1
  19. package/dist/db/schema.d.ts.map +1 -1
  20. package/dist/db/schema.js +14 -48
  21. package/dist/db/schema.js.map +1 -1
  22. package/dist/graph/SQLiteGraphStore.d.ts +4 -2
  23. package/dist/graph/SQLiteGraphStore.d.ts.map +1 -1
  24. package/dist/graph/SQLiteGraphStore.js +16 -0
  25. package/dist/graph/SQLiteGraphStore.js.map +1 -1
  26. package/dist/indexing/Indexer.d.ts.map +1 -1
  27. package/dist/indexing/Indexer.js +6 -3
  28. package/dist/indexing/Indexer.js.map +1 -1
  29. package/dist/mcp/server.d.ts.map +1 -1
  30. package/dist/mcp/server.js +2 -0
  31. package/dist/mcp/server.js.map +1 -1
  32. package/dist/utils/gitHooks.d.ts +7 -0
  33. package/dist/utils/gitHooks.d.ts.map +1 -0
  34. package/dist/utils/gitHooks.js +77 -0
  35. package/dist/utils/gitHooks.js.map +1 -0
  36. package/dist/vector/SQLiteVectorStore.d.ts +2 -2
  37. package/dist/vector/SQLiteVectorStore.d.ts.map +1 -1
  38. package/dist/vector/SQLiteVectorStore.js.map +1 -1
  39. package/package.json +3 -3
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqlJsDatabase = exports.SqlJsStatement = void 0;
4
+ exports.initSqlJs = initSqlJs;
5
+ exports.getSqlJsSync = getSqlJsSync;
6
+ const fs_1 = require("fs");
7
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
8
+ const _initSqlJs = require('sql.js');
9
+ let _sqlJs = null;
10
+ async function initSqlJs() {
11
+ if (_sqlJs)
12
+ return;
13
+ // require('sql.js') → dist/sql-wasm.js. The Emscripten loader locates
14
+ // sql-wasm.wasm from __dirname (same dist/ folder) automatically in Node.js.
15
+ _sqlJs = await _initSqlJs();
16
+ }
17
+ function getSqlJsSync() {
18
+ if (!_sqlJs)
19
+ throw new Error('sql.js WASM not initialised — call initSqlJs() at startup');
20
+ return _sqlJs;
21
+ }
22
+ // ── Statement wrapper ────────────────────────────────────────────────────────
23
+ // Statements are NOT auto-freed — callers may reuse them across multiple run()
24
+ // calls. Memory is reclaimed when the database is closed.
25
+ class SqlJsStatement {
26
+ raw;
27
+ owner;
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ constructor(raw, owner) {
30
+ this.raw = raw;
31
+ this.owner = owner;
32
+ }
33
+ // Return types intentionally match better-sqlite3: unknown allows callers to cast
34
+ get(...params) {
35
+ if (params.length > 0)
36
+ this.raw.bind(params);
37
+ const found = this.raw.step();
38
+ const row = found ? this.raw.getAsObject() : null;
39
+ this.raw.reset();
40
+ return row;
41
+ }
42
+ all(...params) {
43
+ if (params.length > 0)
44
+ this.raw.bind(params);
45
+ const rows = [];
46
+ while (this.raw.step()) {
47
+ rows.push(this.raw.getAsObject());
48
+ }
49
+ this.raw.reset();
50
+ return rows;
51
+ }
52
+ run(...params) {
53
+ // sql.js Statement.run() binds params, steps once, and resets internally —
54
+ // the statement is ready to be reused after this call.
55
+ this.raw.run(params.length > 0 ? params : undefined);
56
+ this.owner.markDirty();
57
+ const lastId = (this.owner._scalar('SELECT last_insert_rowid()') ?? 0);
58
+ const chg = (this.owner._scalar('SELECT changes()') ?? 0);
59
+ return { lastInsertRowid: lastId, changes: chg };
60
+ }
61
+ free() {
62
+ this.raw.free();
63
+ }
64
+ }
65
+ exports.SqlJsStatement = SqlJsStatement;
66
+ // ── Database wrapper ─────────────────────────────────────────────────────────
67
+ class SqlJsDatabase {
68
+ db;
69
+ filePath;
70
+ dirty = false;
71
+ constructor(db, filePath) {
72
+ this.db = db;
73
+ this.filePath = filePath;
74
+ }
75
+ static openSync(sqlJs, filePath) {
76
+ const db = (0, fs_1.existsSync)(filePath)
77
+ ? new sqlJs.Database((0, fs_1.readFileSync)(filePath))
78
+ : new sqlJs.Database();
79
+ return new SqlJsDatabase(db, filePath);
80
+ }
81
+ prepare(sql) {
82
+ return new SqlJsStatement(this.db.prepare(sql), this);
83
+ }
84
+ /** Execute one or more SQL statements (DDL, schema init). */
85
+ exec(sql) {
86
+ // sql.js db.exec() handles multiple statements and is the correct way
87
+ // to run schema SQL that contains triggers with BEGIN...END blocks.
88
+ this.db.exec(sql);
89
+ this.dirty = true;
90
+ }
91
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
+ transaction(fn) {
93
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
94
+ const self = this;
95
+ return function (arg) {
96
+ self.db.run('BEGIN');
97
+ try {
98
+ fn(arg);
99
+ self.db.run('COMMIT');
100
+ }
101
+ catch (err) {
102
+ try {
103
+ self.db.run('ROLLBACK');
104
+ }
105
+ catch { /* ignore */ }
106
+ throw err;
107
+ }
108
+ self.flush();
109
+ };
110
+ }
111
+ markDirty() {
112
+ this.dirty = true;
113
+ }
114
+ _scalar(sql) {
115
+ return this.db.exec(sql)[0]?.values?.[0]?.[0];
116
+ }
117
+ flush() {
118
+ if (!this.dirty)
119
+ return;
120
+ const data = this.db.export();
121
+ (0, fs_1.writeFileSync)(this.filePath, Buffer.from(data));
122
+ this.dirty = false;
123
+ }
124
+ close() {
125
+ this.flush();
126
+ this.db.close();
127
+ }
128
+ }
129
+ exports.SqlJsDatabase = SqlJsDatabase;
130
+ //# sourceMappingURL=SqlJsAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlJsAdapter.js","sourceRoot":"","sources":["../../src/db/SqlJsAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const SCHEMA_SQL = "\nPRAGMA journal_mode=WAL;\nPRAGMA foreign_keys=ON;\n\nCREATE TABLE IF NOT EXISTS sessions (\n id TEXT PRIMARY KEY,\n project TEXT NOT NULL,\n cwd TEXT NOT NULL,\n started_at INTEGER NOT NULL,\n ended_at INTEGER,\n status TEXT NOT NULL DEFAULT 'active' -- active | completed | abandoned\n);\n\nCREATE TABLE IF NOT EXISTS observations (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,\n project TEXT NOT NULL,\n type TEXT NOT NULL DEFAULT 'change', -- change | bugfix | feature | refactor | decision | discovery\n tool TEXT,\n file_path TEXT,\n summary TEXT NOT NULL,\n detail TEXT,\n created_at INTEGER NOT NULL DEFAULT (unixepoch())\n);\n\nCREATE TABLE IF NOT EXISTS summaries (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,\n project TEXT NOT NULL,\n content TEXT NOT NULL,\n created_at INTEGER NOT NULL DEFAULT (unixepoch())\n);\n\nCREATE TABLE IF NOT EXISTS file_index (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n project TEXT NOT NULL,\n file_path TEXT NOT NULL,\n functions TEXT, -- JSON array of function names\n classes TEXT, -- JSON array of class names\n imports TEXT, -- JSON array of import paths\n indexed_at INTEGER NOT NULL DEFAULT (unixepoch()),\n UNIQUE(project, file_path)\n);\n\n-- Full-text search on observations\nCREATE VIRTUAL TABLE IF NOT EXISTS observations_fts USING fts5(\n summary, detail, file_path, type,\n content=observations,\n content_rowid=id\n);\n\nCREATE TRIGGER IF NOT EXISTS obs_fts_insert AFTER INSERT ON observations BEGIN\n INSERT INTO observations_fts(rowid, summary, detail, file_path, type)\n VALUES (new.id, new.summary, new.detail, new.file_path, new.type);\nEND;\n\nCREATE TRIGGER IF NOT EXISTS obs_fts_delete AFTER DELETE ON observations BEGIN\n INSERT INTO observations_fts(observations_fts, rowid, summary, detail, file_path, type)\n VALUES ('delete', old.id, old.summary, old.detail, old.file_path, old.type);\nEND;\n\nCREATE INDEX IF NOT EXISTS idx_obs_project ON observations(project);\nCREATE INDEX IF NOT EXISTS idx_obs_type ON observations(type);\nCREATE INDEX IF NOT EXISTS idx_obs_session ON observations(session_id);\nCREATE INDEX IF NOT EXISTS idx_obs_created ON observations(created_at DESC);\nCREATE INDEX IF NOT EXISTS idx_obs_file ON observations(file_path);\nCREATE INDEX IF NOT EXISTS idx_sessions_proj ON sessions(project);\nCREATE INDEX IF NOT EXISTS idx_file_index ON file_index(project, file_path);\n\n-- Knowledge Corpus\nCREATE TABLE IF NOT EXISTS corpus (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n project TEXT NOT NULL,\n title TEXT NOT NULL,\n content TEXT NOT NULL,\n source TEXT, -- file path or URL\n tags TEXT, -- JSON array\n private INTEGER NOT NULL DEFAULT 0, -- 1 = never send to LLM\n created_at INTEGER NOT NULL DEFAULT (unixepoch()),\n updated_at INTEGER NOT NULL DEFAULT (unixepoch()),\n UNIQUE(project, title)\n);\n\nCREATE VIRTUAL TABLE IF NOT EXISTS corpus_fts USING fts5(\n title, content, tags,\n content=corpus,\n content_rowid=id\n);\n\nCREATE TRIGGER IF NOT EXISTS corpus_fts_insert AFTER INSERT ON corpus BEGIN\n INSERT INTO corpus_fts(rowid, title, content, tags) VALUES (new.id, new.title, new.content, new.tags);\nEND;\nCREATE TRIGGER IF NOT EXISTS corpus_fts_delete AFTER DELETE ON corpus BEGIN\n INSERT INTO corpus_fts(corpus_fts, rowid, title, content, tags) VALUES ('delete', old.id, old.title, old.content, old.tags);\nEND;\n\nCREATE INDEX IF NOT EXISTS idx_corpus_project ON corpus(project);\nCREATE INDEX IF NOT EXISTS idx_corpus_private ON corpus(project, private);\n\n-- Dependency Graph\nCREATE TABLE IF NOT EXISTS graph_nodes (\n id TEXT NOT NULL,\n project TEXT NOT NULL,\n type TEXT NOT NULL, -- file | function | commit\n label TEXT NOT NULL,\n data TEXT NOT NULL, -- JSON blob of the full node\n PRIMARY KEY (project, id)\n);\n\nCREATE TABLE IF NOT EXISTS graph_edges (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n project TEXT NOT NULL,\n from_id TEXT NOT NULL,\n to_id TEXT NOT NULL,\n type TEXT NOT NULL, -- imports | calls | extends | implements\n label TEXT,\n UNIQUE(project, from_id, to_id, type)\n);\n\nCREATE INDEX IF NOT EXISTS idx_gnodes_project ON graph_nodes(project, type);\nCREATE INDEX IF NOT EXISTS idx_gedges_from ON graph_edges(project, from_id);\nCREATE INDEX IF NOT EXISTS idx_gedges_to ON graph_edges(project, to_id);\n\n-- Vector Embeddings (persistent, replaces in-memory MemoryVectorStore)\nCREATE TABLE IF NOT EXISTS vector_chunks (\n id TEXT NOT NULL,\n project TEXT NOT NULL,\n text TEXT NOT NULL,\n metadata TEXT NOT NULL, -- JSON\n embedding TEXT, -- JSON float array, NULL when model unavailable\n PRIMARY KEY (project, id)\n);\n\nCREATE INDEX IF NOT EXISTS idx_vchunks_project ON vector_chunks(project);\n\n-- Project-level key-value metadata (index hash, timestamps, etc.)\nCREATE TABLE IF NOT EXISTS project_metadata (\n project TEXT NOT NULL,\n key TEXT NOT NULL,\n value TEXT NOT NULL,\n PRIMARY KEY (project, key)\n);\n";
1
+ export declare const SCHEMA_SQL = "\nPRAGMA foreign_keys=ON;\n\nCREATE TABLE IF NOT EXISTS sessions (\n id TEXT PRIMARY KEY,\n project TEXT NOT NULL,\n cwd TEXT NOT NULL,\n started_at INTEGER NOT NULL,\n ended_at INTEGER,\n status TEXT NOT NULL DEFAULT 'active'\n);\n\nCREATE TABLE IF NOT EXISTS observations (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,\n project TEXT NOT NULL,\n type TEXT NOT NULL DEFAULT 'change',\n tool TEXT,\n file_path TEXT,\n summary TEXT NOT NULL,\n detail TEXT,\n created_at INTEGER NOT NULL DEFAULT (unixepoch())\n);\n\nCREATE TABLE IF NOT EXISTS summaries (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,\n project TEXT NOT NULL,\n content TEXT NOT NULL,\n created_at INTEGER NOT NULL DEFAULT (unixepoch())\n);\n\nCREATE TABLE IF NOT EXISTS file_index (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n project TEXT NOT NULL,\n file_path TEXT NOT NULL,\n functions TEXT,\n classes TEXT,\n imports TEXT,\n indexed_at INTEGER NOT NULL DEFAULT (unixepoch()),\n UNIQUE(project, file_path)\n);\n\nCREATE INDEX IF NOT EXISTS idx_obs_project ON observations(project);\nCREATE INDEX IF NOT EXISTS idx_obs_type ON observations(type);\nCREATE INDEX IF NOT EXISTS idx_obs_session ON observations(session_id);\nCREATE INDEX IF NOT EXISTS idx_obs_created ON observations(created_at DESC);\nCREATE INDEX IF NOT EXISTS idx_obs_file ON observations(file_path);\nCREATE INDEX IF NOT EXISTS idx_sessions_proj ON sessions(project);\nCREATE INDEX IF NOT EXISTS idx_file_index ON file_index(project, file_path);\n\nCREATE TABLE IF NOT EXISTS corpus (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n project TEXT NOT NULL,\n title TEXT NOT NULL,\n content TEXT NOT NULL,\n source TEXT,\n tags TEXT,\n private INTEGER NOT NULL DEFAULT 0,\n created_at INTEGER NOT NULL DEFAULT (unixepoch()),\n updated_at INTEGER NOT NULL DEFAULT (unixepoch()),\n UNIQUE(project, title)\n);\n\nCREATE INDEX IF NOT EXISTS idx_corpus_project ON corpus(project);\nCREATE INDEX IF NOT EXISTS idx_corpus_private ON corpus(project, private);\n\nCREATE TABLE IF NOT EXISTS graph_nodes (\n id TEXT NOT NULL,\n project TEXT NOT NULL,\n type TEXT NOT NULL,\n label TEXT NOT NULL,\n data TEXT NOT NULL,\n PRIMARY KEY (project, id)\n);\n\nCREATE TABLE IF NOT EXISTS graph_edges (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n project TEXT NOT NULL,\n from_id TEXT NOT NULL,\n to_id TEXT NOT NULL,\n type TEXT NOT NULL,\n label TEXT,\n UNIQUE(project, from_id, to_id, type)\n);\n\nCREATE INDEX IF NOT EXISTS idx_gnodes_project ON graph_nodes(project, type);\nCREATE INDEX IF NOT EXISTS idx_gedges_from ON graph_edges(project, from_id);\nCREATE INDEX IF NOT EXISTS idx_gedges_to ON graph_edges(project, to_id);\n\nCREATE TABLE IF NOT EXISTS vector_chunks (\n id TEXT NOT NULL,\n project TEXT NOT NULL,\n text TEXT NOT NULL,\n metadata TEXT NOT NULL,\n embedding TEXT,\n PRIMARY KEY (project, id)\n);\n\nCREATE INDEX IF NOT EXISTS idx_vchunks_project ON vector_chunks(project);\n\nCREATE TABLE IF NOT EXISTS project_metadata (\n project TEXT NOT NULL,\n key TEXT NOT NULL,\n value TEXT NOT NULL,\n PRIMARY KEY (project, key)\n);\n";
2
2
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,oyKA8ItB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,k+GA2GtB,CAAC"}
package/dist/db/schema.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SCHEMA_SQL = void 0;
4
+ // FTS5 is not compiled into sql.js — text search uses LIKE queries instead.
4
5
  exports.SCHEMA_SQL = `
5
- PRAGMA journal_mode=WAL;
6
6
  PRAGMA foreign_keys=ON;
7
7
 
8
8
  CREATE TABLE IF NOT EXISTS sessions (
@@ -11,14 +11,14 @@ CREATE TABLE IF NOT EXISTS sessions (
11
11
  cwd TEXT NOT NULL,
12
12
  started_at INTEGER NOT NULL,
13
13
  ended_at INTEGER,
14
- status TEXT NOT NULL DEFAULT 'active' -- active | completed | abandoned
14
+ status TEXT NOT NULL DEFAULT 'active'
15
15
  );
16
16
 
17
17
  CREATE TABLE IF NOT EXISTS observations (
18
18
  id INTEGER PRIMARY KEY AUTOINCREMENT,
19
19
  session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
20
20
  project TEXT NOT NULL,
21
- type TEXT NOT NULL DEFAULT 'change', -- change | bugfix | feature | refactor | decision | discovery
21
+ type TEXT NOT NULL DEFAULT 'change',
22
22
  tool TEXT,
23
23
  file_path TEXT,
24
24
  summary TEXT NOT NULL,
@@ -38,30 +38,13 @@ CREATE TABLE IF NOT EXISTS file_index (
38
38
  id INTEGER PRIMARY KEY AUTOINCREMENT,
39
39
  project TEXT NOT NULL,
40
40
  file_path TEXT NOT NULL,
41
- functions TEXT, -- JSON array of function names
42
- classes TEXT, -- JSON array of class names
43
- imports TEXT, -- JSON array of import paths
41
+ functions TEXT,
42
+ classes TEXT,
43
+ imports TEXT,
44
44
  indexed_at INTEGER NOT NULL DEFAULT (unixepoch()),
45
45
  UNIQUE(project, file_path)
46
46
  );
47
47
 
48
- -- Full-text search on observations
49
- CREATE VIRTUAL TABLE IF NOT EXISTS observations_fts USING fts5(
50
- summary, detail, file_path, type,
51
- content=observations,
52
- content_rowid=id
53
- );
54
-
55
- CREATE TRIGGER IF NOT EXISTS obs_fts_insert AFTER INSERT ON observations BEGIN
56
- INSERT INTO observations_fts(rowid, summary, detail, file_path, type)
57
- VALUES (new.id, new.summary, new.detail, new.file_path, new.type);
58
- END;
59
-
60
- CREATE TRIGGER IF NOT EXISTS obs_fts_delete AFTER DELETE ON observations BEGIN
61
- INSERT INTO observations_fts(observations_fts, rowid, summary, detail, file_path, type)
62
- VALUES ('delete', old.id, old.summary, old.detail, old.file_path, old.type);
63
- END;
64
-
65
48
  CREATE INDEX IF NOT EXISTS idx_obs_project ON observations(project);
66
49
  CREATE INDEX IF NOT EXISTS idx_obs_type ON observations(type);
67
50
  CREATE INDEX IF NOT EXISTS idx_obs_session ON observations(session_id);
@@ -70,43 +53,28 @@ CREATE INDEX IF NOT EXISTS idx_obs_file ON observations(file_path);
70
53
  CREATE INDEX IF NOT EXISTS idx_sessions_proj ON sessions(project);
71
54
  CREATE INDEX IF NOT EXISTS idx_file_index ON file_index(project, file_path);
72
55
 
73
- -- Knowledge Corpus
74
56
  CREATE TABLE IF NOT EXISTS corpus (
75
57
  id INTEGER PRIMARY KEY AUTOINCREMENT,
76
58
  project TEXT NOT NULL,
77
59
  title TEXT NOT NULL,
78
60
  content TEXT NOT NULL,
79
- source TEXT, -- file path or URL
80
- tags TEXT, -- JSON array
81
- private INTEGER NOT NULL DEFAULT 0, -- 1 = never send to LLM
61
+ source TEXT,
62
+ tags TEXT,
63
+ private INTEGER NOT NULL DEFAULT 0,
82
64
  created_at INTEGER NOT NULL DEFAULT (unixepoch()),
83
65
  updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
84
66
  UNIQUE(project, title)
85
67
  );
86
68
 
87
- CREATE VIRTUAL TABLE IF NOT EXISTS corpus_fts USING fts5(
88
- title, content, tags,
89
- content=corpus,
90
- content_rowid=id
91
- );
92
-
93
- CREATE TRIGGER IF NOT EXISTS corpus_fts_insert AFTER INSERT ON corpus BEGIN
94
- INSERT INTO corpus_fts(rowid, title, content, tags) VALUES (new.id, new.title, new.content, new.tags);
95
- END;
96
- CREATE TRIGGER IF NOT EXISTS corpus_fts_delete AFTER DELETE ON corpus BEGIN
97
- INSERT INTO corpus_fts(corpus_fts, rowid, title, content, tags) VALUES ('delete', old.id, old.title, old.content, old.tags);
98
- END;
99
-
100
69
  CREATE INDEX IF NOT EXISTS idx_corpus_project ON corpus(project);
101
70
  CREATE INDEX IF NOT EXISTS idx_corpus_private ON corpus(project, private);
102
71
 
103
- -- Dependency Graph
104
72
  CREATE TABLE IF NOT EXISTS graph_nodes (
105
73
  id TEXT NOT NULL,
106
74
  project TEXT NOT NULL,
107
- type TEXT NOT NULL, -- file | function | commit
75
+ type TEXT NOT NULL,
108
76
  label TEXT NOT NULL,
109
- data TEXT NOT NULL, -- JSON blob of the full node
77
+ data TEXT NOT NULL,
110
78
  PRIMARY KEY (project, id)
111
79
  );
112
80
 
@@ -115,7 +83,7 @@ CREATE TABLE IF NOT EXISTS graph_edges (
115
83
  project TEXT NOT NULL,
116
84
  from_id TEXT NOT NULL,
117
85
  to_id TEXT NOT NULL,
118
- type TEXT NOT NULL, -- imports | calls | extends | implements
86
+ type TEXT NOT NULL,
119
87
  label TEXT,
120
88
  UNIQUE(project, from_id, to_id, type)
121
89
  );
@@ -124,19 +92,17 @@ CREATE INDEX IF NOT EXISTS idx_gnodes_project ON graph_nodes(project, type);
124
92
  CREATE INDEX IF NOT EXISTS idx_gedges_from ON graph_edges(project, from_id);
125
93
  CREATE INDEX IF NOT EXISTS idx_gedges_to ON graph_edges(project, to_id);
126
94
 
127
- -- Vector Embeddings (persistent, replaces in-memory MemoryVectorStore)
128
95
  CREATE TABLE IF NOT EXISTS vector_chunks (
129
96
  id TEXT NOT NULL,
130
97
  project TEXT NOT NULL,
131
98
  text TEXT NOT NULL,
132
- metadata TEXT NOT NULL, -- JSON
133
- embedding TEXT, -- JSON float array, NULL when model unavailable
99
+ metadata TEXT NOT NULL,
100
+ embedding TEXT,
134
101
  PRIMARY KEY (project, id)
135
102
  );
136
103
 
137
104
  CREATE INDEX IF NOT EXISTS idx_vchunks_project ON vector_chunks(project);
138
105
 
139
- -- Project-level key-value metadata (index hash, timestamps, etc.)
140
106
  CREATE TABLE IF NOT EXISTS project_metadata (
141
107
  project TEXT NOT NULL,
142
108
  key TEXT NOT NULL,
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8IzB,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC/D,QAAA,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2GzB,CAAC"}
@@ -1,4 +1,4 @@
1
- import Database from 'better-sqlite3';
1
+ import { SqlJsDatabase } from '../db/SqlJsAdapter.js';
2
2
  import type { GraphNode, DependencyEdge, GraphQueryFilter, GraphStats, GraphStore } from './GraphStore.js';
3
3
  /**
4
4
  * Graph store backed by SQLite for persistence + graphology for algorithms.
@@ -10,7 +10,7 @@ export declare class SQLiteGraphStore implements GraphStore {
10
10
  private db;
11
11
  private project;
12
12
  private g;
13
- constructor(db: Database.Database, project: string);
13
+ constructor(db: SqlJsDatabase, project: string);
14
14
  private load;
15
15
  addNode(node: GraphNode): void;
16
16
  addEdge(edge: DependencyEdge): void;
@@ -26,6 +26,8 @@ export declare class SQLiteGraphStore implements GraphStore {
26
26
  dependantsOf(targetId: string): GraphNode[];
27
27
  /** Clear all graph data for this project */
28
28
  clear(): void;
29
+ /** Wrap a bulk-insert callback in a single SQLite transaction + disk flush. */
30
+ runBatch(fn: () => void): void;
29
31
  serialize(): string;
30
32
  }
31
33
  //# sourceMappingURL=SQLiteGraphStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SQLiteGraphStore.d.ts","sourceRoot":"","sources":["../../src/graph/SQLiteGraphStore.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAKtC,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACX,MAAM,iBAAiB,CAAC;AAEzB;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IAIrC,OAAO,CAAC,EAAE;IAAqB,OAAO,CAAC,OAAO;IAF1D,OAAO,CAAC,CAAC,CAA+B;gBAEpB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAU,OAAO,EAAE,MAAM;IAQlE,OAAO,CAAC,IAAI;IA2BZ,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAe9B,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAcnC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAO1C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE;IAWrC,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,EAAE;IA+B5C,QAAQ,IAAI,UAAU;IAsBtB,gEAAgE;IAChE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,EAAE;IAW5C,iEAAiE;IACjE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,SAAS,EAAE;IAKzD,8DAA8D;IAC9D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IAM3C,4CAA4C;IAC5C,KAAK,IAAI,IAAI;IASb,SAAS,IAAI,MAAM;CAIpB"}
1
+ {"version":3,"file":"SQLiteGraphStore.d.ts","sourceRoot":"","sources":["../../src/graph/SQLiteGraphStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACX,MAAM,iBAAiB,CAAC;AAEzB;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IAIrC,OAAO,CAAC,EAAE;IAAiB,OAAO,CAAC,OAAO;IAFtD,OAAO,CAAC,CAAC,CAA+B;gBAEpB,EAAE,EAAE,aAAa,EAAU,OAAO,EAAE,MAAM;IAQ9D,OAAO,CAAC,IAAI;IA2BZ,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAe9B,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAcnC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAO1C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE;IAWrC,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,EAAE;IA+B5C,QAAQ,IAAI,UAAU;IAsBtB,gEAAgE;IAChE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,EAAE;IAW5C,iEAAiE;IACjE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,SAAS,EAAE;IAKzD,8DAA8D;IAC9D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IAM3C,4CAA4C;IAC5C,KAAK,IAAI,IAAI;IAOb,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAc9B,SAAS,IAAI,MAAM;CAIpB"}
@@ -154,6 +154,22 @@ class SQLiteGraphStore {
154
154
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
155
155
  this.g = new DirectedGraph();
156
156
  }
157
+ /** Wrap a bulk-insert callback in a single SQLite transaction + disk flush. */
158
+ runBatch(fn) {
159
+ this.db.exec('BEGIN');
160
+ try {
161
+ fn();
162
+ this.db.exec('COMMIT');
163
+ }
164
+ catch (err) {
165
+ try {
166
+ this.db.exec('ROLLBACK');
167
+ }
168
+ catch { /* ignore */ }
169
+ throw err;
170
+ }
171
+ this.db.flush();
172
+ }
157
173
  // ── Legacy compat (serialize returns a summary, not full JSON) ───────────
158
174
  serialize() {
159
175
  const stats = this.getStats();
@@ -1 +1 @@
1
- {"version":3,"file":"SQLiteGraphStore.js","sourceRoot":"","sources":["../../src/graph/SQLiteGraphStore.ts"],"names":[],"mappings":";;;AACA,iEAAiE;AACjE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,YAAY,CAAgC,CAAC;AAC/E,+DAAmD;AAUnD;;;;;GAKG;AACH,MAAa,gBAAgB;IAIP;IAA+B;IAHnD,8DAA8D;IACtD,CAAC,CAA+B;IAExC,YAAoB,EAAqB,EAAU,OAAe;QAA9C,OAAE,GAAF,EAAE,CAAmB;QAAU,YAAO,GAAP,OAAO,CAAQ;QAChE,8DAA8D;QAC9D,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,EAAkC,CAAC;QAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,4EAA4E;IAEpE,IAAI;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC3B,oDAAoD,CACrD,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAmC,CAAC;QAEtD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAA4B,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC3B,uEAAuE,CACxE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAA6E,CAAC;QAEhG,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAE7E,OAAO,CAAC,IAAe;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAIf,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,IAA0C,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAA0C,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAoB;QAC1B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAGf,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;QAExE,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACzB,2DAA2D,CAC5D,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAiC,CAAC;QACxD,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY;YAAE,OAAO,EAAE,CAAC;QAC7B,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CACrB,6DAA6D,YAAY,GAAG,CAC7E,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAwB;aACvD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAc,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAwB;QAC5B,MAAM,UAAU,GAAa,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,sCAAsC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACjE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAuB,CAAC;QAEvC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAc,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;oBAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;oBAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC;gBACpE,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAC5B,yDAAyD,CAC1D,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAmB,CAAC,CAAC,CAAC;QAExC,MAAM,SAAS,GAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAChC,yDAAyD,CAC1D,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAmB,CAAC,CAAC,CAAC;QAExC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC5B,6EAA6E,CAC9E,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAkC,CAAC;QAErD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D,CAAC;IACJ,CAAC;IAED,4EAA4E;IAE5E,gEAAgE;IAChE,GAAG,CAAC,OAAe,EAAE,QAAQ,GAAG,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QACxC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAA,kCAAW,EAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,MAAM,IAAI,QAAQ;gBAAE,OAAO,IAAI,CAAC,CAAC,OAAO;QAC9C,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iEAAiE;IACjE,aAAa,CAAC,OAAe,EAAE,QAAQ,GAAG,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAgB,CAAC;IACxE,CAAC;IAED,8DAA8D;IAC9D,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAgB,CAAC;IAC1F,CAAC;IAED,4CAA4C;IAC5C,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/E,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/E,8DAA8D;QAC9D,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,EAAkC,CAAC;IAC/D,CAAC;IAED,4EAA4E;IAE5E,SAAS;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;CACF;AAlLD,4CAkLC"}
1
+ {"version":3,"file":"SQLiteGraphStore.js","sourceRoot":"","sources":["../../src/graph/SQLiteGraphStore.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Indexer.d.ts","sourceRoot":"","sources":["../../src/indexing/Indexer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQ5D,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAUD,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,WAAW,CAAC,CAsEtB"}
1
+ {"version":3,"file":"Indexer.d.ts","sourceRoot":"","sources":["../../src/indexing/Indexer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQ5D,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAUD,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,WAAW,CAAC,CAyEtB"}
@@ -35,9 +35,11 @@ async function indexProject(cwd, config, graphStore, vectorStore) {
35
35
  const parsed = (0, ASTParser_js_1.parseFiles)(files);
36
36
  const functionsFound = parsed.reduce((acc, f) => acc + f.functions.length + f.classes.reduce((s, cls) => s + cls.methods.length, 0), 0);
37
37
  logger_js_1.logger.info({ files: parsed.length, functions: functionsFound }, 'AST parsed');
38
- // 3. Build graph (clears previous data for this project, then re-inserts)
39
- graphStore.clear();
40
- (0, GraphBuilder_js_1.buildGraphFromParsed)(parsed, graphStore);
38
+ // 3. Build graph wrapped in one transaction so we flush only once
39
+ graphStore.runBatch(() => {
40
+ graphStore.clear();
41
+ (0, GraphBuilder_js_1.buildGraphFromParsed)(parsed, graphStore);
42
+ });
41
43
  // 4. Index git history (CommitNodes + commit→file edges)
42
44
  const commitsIndexed = await (0, GitIndexer_js_1.indexGitHistory)(cwd, config.git, graphStore);
43
45
  if (commitsIndexed > 0) {
@@ -70,6 +72,7 @@ async function indexProject(cwd, config, graphStore, vectorStore) {
70
72
  db.setProjectMeta(project, 'indexed_at_hash', headHash);
71
73
  db.setProjectMeta(project, 'indexed_at', Date.now().toString());
72
74
  }
75
+ db.flush(); // persist all accumulated writes (metadata + any non-transacted ops)
73
76
  }
74
77
  catch { /* non-fatal */ }
75
78
  // 8. Bootstrap log
@@ -1 +1 @@
1
- {"version":3,"file":"Indexer.js","sourceRoot":"","sources":["../../src/indexing/Indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Indexer.js","sourceRoot":"","sources":["../../src/indexing/Indexer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAqBA,wBAAsB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkK/E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAsBA,wBAAsB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmK/E"}
@@ -18,7 +18,9 @@ const find_similar_js_1 = require("./tools/find_similar.js");
18
18
  const logger_js_1 = require("../utils/logger.js");
19
19
  const errors_js_1 = require("../utils/errors.js");
20
20
  const zodToJsonSchema_js_1 = require("../utils/zodToJsonSchema.js");
21
+ const SqlJsAdapter_js_1 = require("../db/SqlJsAdapter.js");
21
22
  async function startMcpServer(cwd = process.cwd()) {
23
+ await (0, SqlJsAdapter_js_1.initSqlJs)();
22
24
  const config = await (0, loader_js_1.loadConfig)(cwd);
23
25
  const provider = (0, ProviderFactory_js_1.createProvider)(config.llm);
24
26
  const server = new index_js_1.Server({ name: 'fire-code', version: '0.1.0' }, { capabilities: { tools: {} } });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type HookInstallResult = 'installed' | 'updated' | 'already_set' | 'no_git';
2
+ /** Install (or merge) the post-checkout hook in the project's .git/hooks/. */
3
+ export declare function installPostCheckoutHook(cwd: string): HookInstallResult;
4
+ /** Remove the Fire Code block from the post-checkout hook. */
5
+ export declare function removePostCheckoutHook(cwd: string): boolean;
6
+ export declare function hasPostCheckoutHook(cwd: string): boolean;
7
+ //# sourceMappingURL=gitHooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitHooks.d.ts","sourceRoot":"","sources":["../../src/utils/gitHooks.ts"],"names":[],"mappings":"AAwBA,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEnF,8EAA8E;AAC9E,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAmBtE;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAiB3D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIxD"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installPostCheckoutHook = installPostCheckoutHook;
4
+ exports.removePostCheckoutHook = removePostCheckoutHook;
5
+ exports.hasPostCheckoutHook = hasPostCheckoutHook;
6
+ const fs_1 = require("fs");
7
+ const path_1 = require("path");
8
+ const BEGIN_MARKER = '# BEGIN fire-code';
9
+ const END_MARKER = '# END fire-code';
10
+ // The hook runs after every `git checkout`. It re-indexes silently in the
11
+ // background only when switching branches and the index exists.
12
+ function buildHookContent() {
13
+ return `${BEGIN_MARKER}
14
+ # Fire Code — post-checkout hook (auto re-index on branch switch)
15
+ _prev="$1"
16
+ _new="$2"
17
+ _branch="$3"
18
+ if [ "$_branch" = "1" ] && [ "$_prev" != "$_new" ] && [ -d ".firecode" ]; then
19
+ if command -v fire-code > /dev/null 2>&1; then
20
+ fire-code index --silent > /dev/null 2>&1 &
21
+ elif command -v npx > /dev/null 2>&1; then
22
+ npx --yes @phmotad/fire-code index --silent > /dev/null 2>&1 &
23
+ fi
24
+ fi
25
+ ${END_MARKER}`;
26
+ }
27
+ /** Install (or merge) the post-checkout hook in the project's .git/hooks/. */
28
+ function installPostCheckoutHook(cwd) {
29
+ const hooksDir = (0, path_1.join)(cwd, '.git', 'hooks');
30
+ if (!(0, fs_1.existsSync)(hooksDir))
31
+ return 'no_git';
32
+ const hookPath = (0, path_1.join)(hooksDir, 'post-checkout');
33
+ const block = buildHookContent();
34
+ if ((0, fs_1.existsSync)(hookPath)) {
35
+ const existing = (0, fs_1.readFileSync)(hookPath, 'utf8');
36
+ if (existing.includes(BEGIN_MARKER))
37
+ return 'already_set';
38
+ // Append our block to an existing hook (e.g., husky or lefthook)
39
+ (0, fs_1.writeFileSync)(hookPath, existing.trimEnd() + '\n\n' + block + '\n', 'utf8');
40
+ tryChmod(hookPath);
41
+ return 'updated';
42
+ }
43
+ (0, fs_1.writeFileSync)(hookPath, `#!/bin/sh\n${block}\n`, 'utf8');
44
+ tryChmod(hookPath);
45
+ return 'installed';
46
+ }
47
+ /** Remove the Fire Code block from the post-checkout hook. */
48
+ function removePostCheckoutHook(cwd) {
49
+ const hookPath = (0, path_1.join)(cwd, '.git', 'hooks', 'post-checkout');
50
+ if (!(0, fs_1.existsSync)(hookPath))
51
+ return false;
52
+ const content = (0, fs_1.readFileSync)(hookPath, 'utf8');
53
+ if (!content.includes(BEGIN_MARKER))
54
+ return false;
55
+ const beginIdx = content.indexOf(BEGIN_MARKER);
56
+ const endIdx = content.indexOf(END_MARKER);
57
+ if (endIdx === -1)
58
+ return false;
59
+ const before = content.slice(0, beginIdx).trimEnd();
60
+ const after = content.slice(endIdx + END_MARKER.length).trimStart();
61
+ const merged = [before, after].filter(Boolean).join('\n').trimEnd();
62
+ (0, fs_1.writeFileSync)(hookPath, merged ? merged + '\n' : '#!/bin/sh\n', 'utf8');
63
+ return true;
64
+ }
65
+ function hasPostCheckoutHook(cwd) {
66
+ const hookPath = (0, path_1.join)(cwd, '.git', 'hooks', 'post-checkout');
67
+ if (!(0, fs_1.existsSync)(hookPath))
68
+ return false;
69
+ return (0, fs_1.readFileSync)(hookPath, 'utf8').includes(BEGIN_MARKER);
70
+ }
71
+ function tryChmod(path) {
72
+ try {
73
+ (0, fs_1.chmodSync)(path, 0o755);
74
+ }
75
+ catch { /* Windows: chmod is no-op */ }
76
+ }
77
+ //# sourceMappingURL=gitHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitHooks.js","sourceRoot":"","sources":["../../src/utils/gitHooks.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import Database from 'better-sqlite3';
1
+ import { SqlJsDatabase } from '../db/SqlJsAdapter.js';
2
2
  import type { Document, ScoredDocument, VectorStore } from './VectorStore.js';
3
3
  export declare class SQLiteVectorStore implements VectorStore {
4
4
  private db;
5
5
  private project;
6
- constructor(db: Database.Database, project: string);
6
+ constructor(db: SqlJsDatabase, project: string);
7
7
  add(documents: Document[]): Promise<void>;
8
8
  search(query: string, k?: number): Promise<ScoredDocument[]>;
9
9
  delete(ids: string[]): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"SQLiteVectorStore.d.ts","sourceRoot":"","sources":["../../src/vector/SQLiteVectorStore.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAwC9E,qBAAa,iBAAkB,YAAW,WAAW;IACvC,OAAO,CAAC,EAAE;IAAqB,OAAO,CAAC,OAAO;gBAAtC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAU,OAAO,EAAE,MAAM;IAE5D,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBzC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA+CvD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,IAAI,IAAI,MAAM;CAKf"}
1
+ {"version":3,"file":"SQLiteVectorStore.d.ts","sourceRoot":"","sources":["../../src/vector/SQLiteVectorStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAwC9E,qBAAa,iBAAkB,YAAW,WAAW;IACvC,OAAO,CAAC,EAAE;IAAiB,OAAO,CAAC,OAAO;gBAAlC,EAAE,EAAE,aAAa,EAAU,OAAO,EAAE,MAAM;IAExD,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBzC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA+CvD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,IAAI,IAAI,MAAM;CAKf"}