@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.
- package/dist/cli/commands/index-cmd.d.ts +3 -0
- package/dist/cli/commands/index-cmd.d.ts.map +1 -1
- package/dist/cli/commands/index-cmd.js +94 -19
- package/dist/cli/commands/index-cmd.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +12 -0
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/index.js +10 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/core/ExecutionEngine.d.ts +3 -1
- package/dist/core/ExecutionEngine.d.ts.map +1 -1
- package/dist/core/ExecutionEngine.js +36 -17
- package/dist/core/ExecutionEngine.js.map +1 -1
- package/dist/db/DatabaseManager.d.ts +7 -2
- package/dist/db/DatabaseManager.d.ts.map +1 -1
- package/dist/db/DatabaseManager.js +51 -26
- package/dist/db/DatabaseManager.js.map +1 -1
- package/dist/db/SqlJsAdapter.d.ts +32 -0
- package/dist/db/SqlJsAdapter.d.ts.map +1 -0
- package/dist/db/SqlJsAdapter.js +130 -0
- package/dist/db/SqlJsAdapter.js.map +1 -0
- package/dist/db/schema.d.ts +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +30 -44
- package/dist/db/schema.js.map +1 -1
- package/dist/git/GitManager.d.ts +10 -0
- package/dist/git/GitManager.d.ts.map +1 -1
- package/dist/git/GitManager.js +46 -0
- package/dist/git/GitManager.js.map +1 -1
- package/dist/graph/GraphStore.d.ts +6 -1
- package/dist/graph/GraphStore.d.ts.map +1 -1
- package/dist/graph/InMemoryGraphStore.d.ts +1 -0
- package/dist/graph/InMemoryGraphStore.d.ts.map +1 -1
- package/dist/graph/InMemoryGraphStore.js +13 -2
- package/dist/graph/InMemoryGraphStore.js.map +1 -1
- package/dist/graph/SQLiteGraphStore.d.ts +4 -2
- package/dist/graph/SQLiteGraphStore.d.ts.map +1 -1
- package/dist/graph/SQLiteGraphStore.js +24 -2
- package/dist/graph/SQLiteGraphStore.js.map +1 -1
- package/dist/indexing/ASTParser.d.ts +1 -1
- package/dist/indexing/ASTParser.d.ts.map +1 -1
- package/dist/indexing/ASTParser.js +7 -1
- package/dist/indexing/ASTParser.js.map +1 -1
- package/dist/indexing/EmbeddingGenerator.d.ts.map +1 -1
- package/dist/indexing/EmbeddingGenerator.js +2 -25
- package/dist/indexing/EmbeddingGenerator.js.map +1 -1
- package/dist/indexing/FileScanner.d.ts.map +1 -1
- package/dist/indexing/FileScanner.js +2 -1
- package/dist/indexing/FileScanner.js.map +1 -1
- package/dist/indexing/GitIndexer.d.ts +4 -0
- package/dist/indexing/GitIndexer.d.ts.map +1 -0
- package/dist/indexing/GitIndexer.js +59 -0
- package/dist/indexing/GitIndexer.js.map +1 -0
- package/dist/indexing/GraphBuilder.d.ts.map +1 -1
- package/dist/indexing/GraphBuilder.js +21 -1
- package/dist/indexing/GraphBuilder.js.map +1 -1
- package/dist/indexing/Indexer.d.ts +3 -2
- package/dist/indexing/Indexer.d.ts.map +1 -1
- package/dist/indexing/Indexer.js +31 -9
- package/dist/indexing/Indexer.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +22 -7
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/execute.d.ts +3 -0
- package/dist/mcp/tools/execute.d.ts.map +1 -1
- package/dist/mcp/tools/execute.js +2 -0
- package/dist/mcp/tools/execute.js.map +1 -1
- package/dist/mcp/tools/find_similar.d.ts +17 -0
- package/dist/mcp/tools/find_similar.d.ts.map +1 -0
- package/dist/mcp/tools/find_similar.js +95 -0
- package/dist/mcp/tools/find_similar.js.map +1 -0
- package/dist/mcp/tools/get_context.d.ts +3 -0
- package/dist/mcp/tools/get_context.d.ts.map +1 -1
- package/dist/mcp/tools/get_context.js +68 -7
- package/dist/mcp/tools/get_context.js.map +1 -1
- package/dist/mcp/tools/search_code.d.ts.map +1 -1
- package/dist/mcp/tools/search_code.js +22 -4
- package/dist/mcp/tools/search_code.js.map +1 -1
- package/dist/mcp/tools/smart_search.d.ts.map +1 -1
- package/dist/mcp/tools/smart_search.js +122 -29
- package/dist/mcp/tools/smart_search.js.map +1 -1
- package/dist/memory/HybridMemory.d.ts +4 -0
- package/dist/memory/HybridMemory.d.ts.map +1 -1
- package/dist/memory/HybridMemory.js +120 -29
- package/dist/memory/HybridMemory.js.map +1 -1
- package/dist/utils/gitHooks.d.ts +7 -0
- package/dist/utils/gitHooks.d.ts.map +1 -0
- package/dist/utils/gitHooks.js +77 -0
- package/dist/utils/gitHooks.js.map +1 -0
- package/dist/utils/modelManager.d.ts +37 -0
- package/dist/utils/modelManager.d.ts.map +1 -0
- package/dist/utils/modelManager.js +90 -0
- package/dist/utils/modelManager.js.map +1 -0
- package/dist/utils/workerPool.d.ts +8 -0
- package/dist/utils/workerPool.d.ts.map +1 -0
- package/dist/utils/workerPool.js +75 -0
- package/dist/utils/workerPool.js.map +1 -0
- package/dist/vector/MemoryVectorStore.d.ts.map +1 -1
- package/dist/vector/MemoryVectorStore.js +19 -13
- package/dist/vector/MemoryVectorStore.js.map +1 -1
- package/dist/vector/SQLiteVectorStore.d.ts +13 -0
- package/dist/vector/SQLiteVectorStore.d.ts.map +1 -0
- package/dist/vector/SQLiteVectorStore.js +111 -0
- package/dist/vector/SQLiteVectorStore.js.map +1 -0
- package/dist/vector/VectorStore.d.ts +0 -1
- package/dist/vector/VectorStore.d.ts.map +1 -1
- package/dist/workers/embeddingWorker.d.ts +2 -0
- package/dist/workers/embeddingWorker.d.ts.map +1 -0
- package/dist/workers/embeddingWorker.js +42 -0
- package/dist/workers/embeddingWorker.js.map +1 -0
- 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(
|
|
17
|
-
this.db =
|
|
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
|
-
|
|
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
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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":"
|
|
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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"}
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SCHEMA_SQL = "\nPRAGMA
|
|
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
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"
|
|
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'
|
|
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',
|
|
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,
|
|
42
|
-
classes TEXT,
|
|
43
|
-
imports TEXT,
|
|
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,
|
|
80
|
-
tags TEXT,
|
|
81
|
-
private INTEGER NOT NULL DEFAULT 0,
|
|
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,
|
|
75
|
+
type TEXT NOT NULL,
|
|
108
76
|
label TEXT NOT NULL,
|
|
109
|
-
data TEXT NOT NULL,
|
|
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,
|
|
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
|
package/dist/db/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC/D,QAAA,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2GzB,CAAC"}
|
package/dist/git/GitManager.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/git/GitManager.js
CHANGED
|
@@ -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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"}
|