@phmotad/fire-code 0.2.8 → 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 (111) hide show
  1. package/dist/cli/commands/index-cmd.d.ts +3 -0
  2. package/dist/cli/commands/index-cmd.d.ts.map +1 -1
  3. package/dist/cli/commands/index-cmd.js +94 -19
  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/core/ExecutionEngine.d.ts +3 -1
  11. package/dist/core/ExecutionEngine.d.ts.map +1 -1
  12. package/dist/core/ExecutionEngine.js +36 -17
  13. package/dist/core/ExecutionEngine.js.map +1 -1
  14. package/dist/db/DatabaseManager.d.ts +7 -2
  15. package/dist/db/DatabaseManager.d.ts.map +1 -1
  16. package/dist/db/DatabaseManager.js +51 -26
  17. package/dist/db/DatabaseManager.js.map +1 -1
  18. package/dist/db/SqlJsAdapter.d.ts +32 -0
  19. package/dist/db/SqlJsAdapter.d.ts.map +1 -0
  20. package/dist/db/SqlJsAdapter.js +130 -0
  21. package/dist/db/SqlJsAdapter.js.map +1 -0
  22. package/dist/db/schema.d.ts +1 -1
  23. package/dist/db/schema.d.ts.map +1 -1
  24. package/dist/db/schema.js +30 -44
  25. package/dist/db/schema.js.map +1 -1
  26. package/dist/git/GitManager.d.ts +10 -0
  27. package/dist/git/GitManager.d.ts.map +1 -1
  28. package/dist/git/GitManager.js +46 -0
  29. package/dist/git/GitManager.js.map +1 -1
  30. package/dist/graph/GraphStore.d.ts +6 -1
  31. package/dist/graph/GraphStore.d.ts.map +1 -1
  32. package/dist/graph/InMemoryGraphStore.d.ts +1 -0
  33. package/dist/graph/InMemoryGraphStore.d.ts.map +1 -1
  34. package/dist/graph/InMemoryGraphStore.js +13 -2
  35. package/dist/graph/InMemoryGraphStore.js.map +1 -1
  36. package/dist/graph/SQLiteGraphStore.d.ts +4 -2
  37. package/dist/graph/SQLiteGraphStore.d.ts.map +1 -1
  38. package/dist/graph/SQLiteGraphStore.js +24 -2
  39. package/dist/graph/SQLiteGraphStore.js.map +1 -1
  40. package/dist/indexing/ASTParser.d.ts +1 -1
  41. package/dist/indexing/ASTParser.d.ts.map +1 -1
  42. package/dist/indexing/ASTParser.js +7 -1
  43. package/dist/indexing/ASTParser.js.map +1 -1
  44. package/dist/indexing/EmbeddingGenerator.d.ts.map +1 -1
  45. package/dist/indexing/EmbeddingGenerator.js +2 -25
  46. package/dist/indexing/EmbeddingGenerator.js.map +1 -1
  47. package/dist/indexing/FileScanner.d.ts.map +1 -1
  48. package/dist/indexing/FileScanner.js +2 -1
  49. package/dist/indexing/FileScanner.js.map +1 -1
  50. package/dist/indexing/GitIndexer.d.ts +4 -0
  51. package/dist/indexing/GitIndexer.d.ts.map +1 -0
  52. package/dist/indexing/GitIndexer.js +59 -0
  53. package/dist/indexing/GitIndexer.js.map +1 -0
  54. package/dist/indexing/GraphBuilder.d.ts.map +1 -1
  55. package/dist/indexing/GraphBuilder.js +21 -1
  56. package/dist/indexing/GraphBuilder.js.map +1 -1
  57. package/dist/indexing/Indexer.d.ts +3 -2
  58. package/dist/indexing/Indexer.d.ts.map +1 -1
  59. package/dist/indexing/Indexer.js +31 -9
  60. package/dist/indexing/Indexer.js.map +1 -1
  61. package/dist/mcp/server.d.ts.map +1 -1
  62. package/dist/mcp/server.js +22 -7
  63. package/dist/mcp/server.js.map +1 -1
  64. package/dist/mcp/tools/execute.d.ts +3 -0
  65. package/dist/mcp/tools/execute.d.ts.map +1 -1
  66. package/dist/mcp/tools/execute.js +2 -0
  67. package/dist/mcp/tools/execute.js.map +1 -1
  68. package/dist/mcp/tools/find_similar.d.ts +17 -0
  69. package/dist/mcp/tools/find_similar.d.ts.map +1 -0
  70. package/dist/mcp/tools/find_similar.js +95 -0
  71. package/dist/mcp/tools/find_similar.js.map +1 -0
  72. package/dist/mcp/tools/get_context.d.ts +3 -0
  73. package/dist/mcp/tools/get_context.d.ts.map +1 -1
  74. package/dist/mcp/tools/get_context.js +68 -7
  75. package/dist/mcp/tools/get_context.js.map +1 -1
  76. package/dist/mcp/tools/search_code.d.ts.map +1 -1
  77. package/dist/mcp/tools/search_code.js +22 -4
  78. package/dist/mcp/tools/search_code.js.map +1 -1
  79. package/dist/mcp/tools/smart_search.d.ts.map +1 -1
  80. package/dist/mcp/tools/smart_search.js +122 -29
  81. package/dist/mcp/tools/smart_search.js.map +1 -1
  82. package/dist/memory/HybridMemory.d.ts +4 -0
  83. package/dist/memory/HybridMemory.d.ts.map +1 -1
  84. package/dist/memory/HybridMemory.js +120 -29
  85. package/dist/memory/HybridMemory.js.map +1 -1
  86. package/dist/utils/gitHooks.d.ts +7 -0
  87. package/dist/utils/gitHooks.d.ts.map +1 -0
  88. package/dist/utils/gitHooks.js +77 -0
  89. package/dist/utils/gitHooks.js.map +1 -0
  90. package/dist/utils/modelManager.d.ts +37 -0
  91. package/dist/utils/modelManager.d.ts.map +1 -0
  92. package/dist/utils/modelManager.js +90 -0
  93. package/dist/utils/modelManager.js.map +1 -0
  94. package/dist/utils/workerPool.d.ts +8 -0
  95. package/dist/utils/workerPool.d.ts.map +1 -0
  96. package/dist/utils/workerPool.js +75 -0
  97. package/dist/utils/workerPool.js.map +1 -0
  98. package/dist/vector/MemoryVectorStore.d.ts.map +1 -1
  99. package/dist/vector/MemoryVectorStore.js +19 -13
  100. package/dist/vector/MemoryVectorStore.js.map +1 -1
  101. package/dist/vector/SQLiteVectorStore.d.ts +13 -0
  102. package/dist/vector/SQLiteVectorStore.d.ts.map +1 -0
  103. package/dist/vector/SQLiteVectorStore.js +111 -0
  104. package/dist/vector/SQLiteVectorStore.js.map +1 -0
  105. package/dist/vector/VectorStore.d.ts +0 -1
  106. package/dist/vector/VectorStore.d.ts.map +1 -1
  107. package/dist/workers/embeddingWorker.d.ts +2 -0
  108. package/dist/workers/embeddingWorker.d.ts.map +1 -0
  109. package/dist/workers/embeddingWorker.js +42 -0
  110. package/dist/workers/embeddingWorker.js.map +1 -0
  111. package/package.json +5 -3
@@ -1,20 +1,18 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.DatabaseManager = void 0;
7
- const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
8
4
  const fs_1 = require("fs");
9
5
  const path_1 = require("path");
6
+ const SqlJsAdapter_js_1 = require("./SqlJsAdapter.js");
10
7
  const schema_js_1 = require("./schema.js");
11
8
  const SQLiteGraphStore_js_1 = require("../graph/SQLiteGraphStore.js");
9
+ const SQLiteVectorStore_js_1 = require("../vector/SQLiteVectorStore.js");
12
10
  let instance = null;
13
11
  class DatabaseManager {
14
12
  // exposed for reset() only — do not use externally
15
13
  db;
16
- constructor(dbPath) {
17
- this.db = new better_sqlite3_1.default(dbPath);
14
+ constructor(db) {
15
+ this.db = db;
18
16
  this.db.exec(schema_js_1.SCHEMA_SQL);
19
17
  }
20
18
  static getInstance(firecdoDir) {
@@ -22,7 +20,8 @@ class DatabaseManager {
22
20
  if (!(0, fs_1.existsSync)(firecdoDir))
23
21
  (0, fs_1.mkdirSync)(firecdoDir, { recursive: true });
24
22
  const dbPath = (0, path_1.join)(firecdoDir, 'firecode.db');
25
- instance = new DatabaseManager(dbPath);
23
+ const db = SqlJsAdapter_js_1.SqlJsDatabase.openSync((0, SqlJsAdapter_js_1.getSqlJsSync)(), dbPath);
24
+ instance = new DatabaseManager(db);
26
25
  }
27
26
  return instance;
28
27
  }
@@ -35,6 +34,9 @@ class DatabaseManager {
35
34
  instance = null;
36
35
  }
37
36
  }
37
+ flush() {
38
+ this.db.flush();
39
+ }
38
40
  // ── Sessions ──────────────────────────────────────────────────────────────
39
41
  createSession(id, project, cwd) {
40
42
  const stmt = this.db.prepare(`INSERT OR IGNORE INTO sessions (id, project, cwd, started_at) VALUES (?, ?, ?, ?)`);
@@ -62,17 +64,22 @@ class DatabaseManager {
62
64
  getObservations(filter = {}) {
63
65
  const { project, type, file_path, query, limit = 20, offset = 0, dateStart, dateEnd } = filter;
64
66
  if (query) {
65
- // FTS5 search
66
- const ftsResults = this.db.prepare(`
67
- SELECT o.* FROM observations o
68
- JOIN observations_fts f ON f.rowid = o.id
69
- WHERE observations_fts MATCH ?
70
- ${project ? 'AND o.project = ?' : ''}
71
- ${type ? 'AND o.type = ?' : ''}
72
- ORDER BY o.created_at DESC
73
- LIMIT ? OFFSET ?
74
- `).all(...[query, project, type].filter(Boolean), limit, offset);
75
- return ftsResults;
67
+ const like = `%${query}%`;
68
+ const conditions2 = ['(summary LIKE ? OR detail LIKE ? OR file_path LIKE ?)'];
69
+ const params2 = [like, like, like];
70
+ if (project) {
71
+ conditions2.push('project = ?');
72
+ params2.push(project);
73
+ }
74
+ if (type) {
75
+ conditions2.push('type = ?');
76
+ params2.push(type);
77
+ }
78
+ return this.db.prepare(`
79
+ SELECT * FROM observations
80
+ WHERE ${conditions2.join(' AND ')}
81
+ ORDER BY created_at DESC LIMIT ? OFFSET ?
82
+ `).all(...params2, limit, offset);
76
83
  }
77
84
  const conditions = [];
78
85
  const params = [];
@@ -174,15 +181,21 @@ class DatabaseManager {
174
181
  const { project, query, limit = 10, includePrivate = false } = filter;
175
182
  const privateFilter = includePrivate ? '' : 'AND c.private = 0';
176
183
  if (query) {
184
+ const like = `%${query}%`;
185
+ const qConditions = ['(title LIKE ? OR content LIKE ? OR tags LIKE ?)'];
186
+ const qParams = [like, like, like];
187
+ if (project) {
188
+ qConditions.push('project = ?');
189
+ qParams.push(project);
190
+ }
191
+ if (!includePrivate) {
192
+ qConditions.push('private = 0');
193
+ }
177
194
  return this.db.prepare(`
178
- SELECT c.* FROM corpus c
179
- JOIN corpus_fts f ON f.rowid = c.id
180
- WHERE corpus_fts MATCH ?
181
- ${project ? 'AND c.project = ?' : ''}
182
- ${privateFilter}
183
- ORDER BY c.updated_at DESC
184
- LIMIT ?
185
- `).all(...[query, project].filter(Boolean), limit);
195
+ SELECT * FROM corpus
196
+ WHERE ${qConditions.join(' AND ')}
197
+ ORDER BY updated_at DESC LIMIT ?
198
+ `).all(...qParams, limit);
186
199
  }
187
200
  const conditions = [];
188
201
  const params = [];
@@ -200,9 +213,21 @@ class DatabaseManager {
200
213
  this.db.prepare(`DELETE FROM corpus WHERE project = ? AND title = ?`).run(project, title);
201
214
  }
202
215
  // ── Graph ─────────────────────────────────────────────────────────────────
216
+ // ── Project Metadata ──────────────────────────────────────────────────────
217
+ setProjectMeta(project, key, value) {
218
+ this.db.prepare(`INSERT OR REPLACE INTO project_metadata (project, key, value) VALUES (?, ?, ?)`).run(project, key, value);
219
+ }
220
+ getProjectMeta(project, key) {
221
+ const row = this.db.prepare(`SELECT value FROM project_metadata WHERE project = ? AND key = ?`).get(project, key);
222
+ return row ? row.value : null;
223
+ }
224
+ // ── Graph ─────────────────────────────────────────────────────────────────
203
225
  getGraphStore(project) {
204
226
  return new SQLiteGraphStore_js_1.SQLiteGraphStore(this.db, project);
205
227
  }
228
+ getVectorStore(project) {
229
+ return new SQLiteVectorStore_js_1.SQLiteVectorStore(this.db, project);
230
+ }
206
231
  close() {
207
232
  this.db.close();
208
233
  instance = null;
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseManager.js","sourceRoot":"","sources":["../../src/db/DatabaseManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatabaseManager.js","sourceRoot":"","sources":["../../src/db/DatabaseManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { SqlJsStatic, SqlValue } from 'sql.js';
2
+ export declare function initSqlJs(): Promise<void>;
3
+ export declare function getSqlJsSync(): SqlJsStatic;
4
+ export interface RunResult {
5
+ lastInsertRowid: number;
6
+ changes: number;
7
+ }
8
+ export declare class SqlJsStatement {
9
+ private readonly raw;
10
+ private readonly owner;
11
+ constructor(raw: any, owner: SqlJsDatabase);
12
+ get(...params: unknown[]): unknown;
13
+ all(...params: unknown[]): unknown[];
14
+ run(...params: unknown[]): RunResult;
15
+ free(): void;
16
+ }
17
+ export declare class SqlJsDatabase {
18
+ private readonly db;
19
+ private readonly filePath;
20
+ private dirty;
21
+ private constructor();
22
+ static openSync(sqlJs: SqlJsStatic, filePath: string): SqlJsDatabase;
23
+ prepare(sql: string): SqlJsStatement;
24
+ /** Execute one or more SQL statements (DDL, schema init). */
25
+ exec(sql: string): void;
26
+ transaction<T>(fn: (arg: T) => void): (arg: T) => void;
27
+ markDirty(): void;
28
+ _scalar(sql: string): SqlValue | undefined;
29
+ flush(): void;
30
+ close(): void;
31
+ }
32
+ //# sourceMappingURL=SqlJsAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlJsAdapter.d.ts","sourceRoot":"","sources":["../../src/db/SqlJsAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAA+B,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAOjF,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAK/C;AAED,wBAAgB,YAAY,IAAI,WAAW,CAG1C;AAID,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,qBAAa,cAAc;IAEb,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAO,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAhC,GAAG,EAAE,GAAG,EAAmB,KAAK,EAAE,aAAa;IAG5E,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO;IAQlC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAUpC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS;IAUpC,IAAI,IAAI,IAAI;CAGb;AAID,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO;IAKP,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa;IAOpE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IAIpC,6DAA6D;IAC7D,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQvB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI;IAgBtD,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI1C,KAAK,IAAI,IAAI;IAOb,KAAK,IAAI,IAAI;CAId"}
@@ -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";
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,moJA0HtB,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
  );
@@ -123,5 +91,23 @@ CREATE TABLE IF NOT EXISTS graph_edges (
123
91
  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);
94
+
95
+ CREATE TABLE IF NOT EXISTS vector_chunks (
96
+ id TEXT NOT NULL,
97
+ project TEXT NOT NULL,
98
+ text TEXT NOT NULL,
99
+ metadata TEXT NOT NULL,
100
+ embedding TEXT,
101
+ PRIMARY KEY (project, id)
102
+ );
103
+
104
+ CREATE INDEX IF NOT EXISTS idx_vchunks_project ON vector_chunks(project);
105
+
106
+ CREATE TABLE IF NOT EXISTS project_metadata (
107
+ project TEXT NOT NULL,
108
+ key TEXT NOT NULL,
109
+ value TEXT NOT NULL,
110
+ PRIMARY KEY (project, key)
111
+ );
126
112
  `;
127
113
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0HzB,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC/D,QAAA,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2GzB,CAAC"}
@@ -24,5 +24,15 @@ export declare class GitManager {
24
24
  type: CommitType;
25
25
  }, files?: string[]): Promise<string>;
26
26
  unstash(): Promise<void>;
27
+ getRoot(): Promise<string>;
28
+ getHeadHash(): Promise<string | null>;
29
+ getRecentCommits(maxCount?: number): Promise<CommitSummary[]>;
30
+ getWorkingDiff(maxLength?: number): Promise<string>;
31
+ }
32
+ export interface CommitSummary {
33
+ sha: string;
34
+ message: string;
35
+ timestamp: string;
36
+ filesChanged: string[];
27
37
  }
28
38
  //# sourceMappingURL=GitManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitManager.d.ts","sourceRoot":"","sources":["../../src/git/GitManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;IAMpC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAS1B,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;IAW/B,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK1C,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKjC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlD,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM;IAI7E,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCpC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAsC3F,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBnG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/B"}
1
+ {"version":3,"file":"GitManager.d.ts","sourceRoot":"","sources":["../../src/git/GitManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;IAMpC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAS1B,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;IAW/B,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK1C,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKjC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlD,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM;IAI7E,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCpC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAsC3F,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBnG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAS1B,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQrC,gBAAgB,CAAC,QAAQ,SAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAsBzD,cAAc,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAQxD;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB"}
@@ -142,6 +142,52 @@ class GitManager {
142
142
  logger_js_1.logger.warn({ err: String(err) }, 'Failed to pop stash');
143
143
  }
144
144
  }
145
+ async getRoot() {
146
+ try {
147
+ const root = await this.git.revparse(['--show-toplevel']);
148
+ return root.trim();
149
+ }
150
+ catch {
151
+ return this.cwd;
152
+ }
153
+ }
154
+ async getHeadHash() {
155
+ try {
156
+ return (await this.git.revparse(['HEAD'])).trim();
157
+ }
158
+ catch {
159
+ return null;
160
+ }
161
+ }
162
+ async getRecentCommits(maxCount = 20) {
163
+ try {
164
+ const log = await this.git.log({ maxCount });
165
+ const commits = [];
166
+ for (const entry of log.all) {
167
+ const raw = await this.git.raw(['show', '--name-only', '--format=', entry.hash]);
168
+ const files = raw.trim().split('\n').map(f => f.trim()).filter(f => f.length > 0);
169
+ commits.push({
170
+ sha: entry.hash,
171
+ message: entry.message,
172
+ timestamp: entry.date,
173
+ filesChanged: files,
174
+ });
175
+ }
176
+ return commits;
177
+ }
178
+ catch {
179
+ return [];
180
+ }
181
+ }
182
+ async getWorkingDiff(maxLength = 3000) {
183
+ try {
184
+ const diff = await this.git.diff(['HEAD']);
185
+ return diff.slice(0, maxLength);
186
+ }
187
+ catch {
188
+ return '';
189
+ }
190
+ }
145
191
  }
146
192
  exports.GitManager = GitManager;
147
193
  //# sourceMappingURL=GitManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitManager.js","sourceRoot":"","sources":["../../src/git/GitManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitManager.js","sourceRoot":"","sources":["../../src/git/GitManager.ts"],"names":[],"mappings":"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"}