@phmotad/fire-code 0.2.8 → 0.2.9
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 +1 -0
- package/dist/cli/commands/index-cmd.d.ts.map +1 -1
- package/dist/cli/commands/index-cmd.js +83 -14
- package/dist/cli/commands/index-cmd.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 +4 -0
- package/dist/db/DatabaseManager.d.ts.map +1 -1
- package/dist/db/DatabaseManager.js +13 -0
- package/dist/db/DatabaseManager.js.map +1 -1
- package/dist/db/schema.d.ts +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +20 -0
- 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.map +1 -1
- package/dist/graph/SQLiteGraphStore.js +8 -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 +25 -6
- package/dist/indexing/Indexer.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +20 -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/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 +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index-cmd.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index-cmd.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAkFD,wBAAsB,YAAY,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ChF"}
|
|
@@ -9,8 +9,8 @@ const ora_1 = __importDefault(require("ora"));
|
|
|
9
9
|
const loader_js_1 = require("../../config/loader.js");
|
|
10
10
|
const Indexer_js_1 = require("../../indexing/Indexer.js");
|
|
11
11
|
const DatabaseManager_js_1 = require("../../db/DatabaseManager.js");
|
|
12
|
-
const MemoryVectorStore_js_1 = require("../../vector/MemoryVectorStore.js");
|
|
13
12
|
const paths_js_1 = require("../../utils/paths.js");
|
|
13
|
+
const modelManager_js_1 = require("../../utils/modelManager.js");
|
|
14
14
|
const path_1 = require("path");
|
|
15
15
|
function getProjectName(cwd) {
|
|
16
16
|
try {
|
|
@@ -21,6 +21,68 @@ function getProjectName(cwd) {
|
|
|
21
21
|
return (0, path_1.basename)(cwd);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
+
function formatBytes(bytes) {
|
|
25
|
+
if (bytes < 1024)
|
|
26
|
+
return `${bytes} B`;
|
|
27
|
+
if (bytes < 1024 * 1024)
|
|
28
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
29
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
30
|
+
}
|
|
31
|
+
function renderBar(progress, width = 24) {
|
|
32
|
+
const filled = Math.round((progress / 100) * width);
|
|
33
|
+
const empty = width - filled;
|
|
34
|
+
return chalk_1.default.green('█'.repeat(filled)) + chalk_1.default.gray('░'.repeat(empty));
|
|
35
|
+
}
|
|
36
|
+
async function downloadModelWithProgress() {
|
|
37
|
+
// Track if we saw real HTTP download traffic (not just cache reads)
|
|
38
|
+
let isDownloading = false;
|
|
39
|
+
let headerPrinted = false;
|
|
40
|
+
let lastFile = '';
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
|
+
let spinner = (0, ora_1.default)({ text: chalk_1.default.gray('Carregando modelo de embeddings...'), indent: 3 }).start();
|
|
43
|
+
const onProgress = (info) => {
|
|
44
|
+
const fileName = info.file.split('/').pop() ?? info.file;
|
|
45
|
+
if (info.status === 'ready') {
|
|
46
|
+
return; // handled after ensureModel()
|
|
47
|
+
}
|
|
48
|
+
// A progress event with pct < 100 means we're actually downloading (not reading from cache)
|
|
49
|
+
if (info.status === 'progress' && info.progress < 100 && !isDownloading) {
|
|
50
|
+
isDownloading = true;
|
|
51
|
+
if (!headerPrinted) {
|
|
52
|
+
spinner.stop();
|
|
53
|
+
console.log(chalk_1.default.bold('\n Modelo de embeddings — Xenova/all-MiniLM-L6-v2'));
|
|
54
|
+
console.log(chalk_1.default.gray(' Fazendo download (~23 MB)...\n'));
|
|
55
|
+
spinner = (0, ora_1.default)({ text: 'Iniciando...', indent: 3 }).start();
|
|
56
|
+
headerPrinted = true;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (info.status === 'progress' && isDownloading) {
|
|
60
|
+
lastFile = fileName;
|
|
61
|
+
const pct = Math.round(info.progress);
|
|
62
|
+
const bar = renderBar(pct);
|
|
63
|
+
const loaded = info.total > 0 ? `${formatBytes(info.loaded)} / ${formatBytes(info.total)}` : '';
|
|
64
|
+
spinner.text = `${chalk_1.default.cyan(fileName.padEnd(30))} [${bar}] ${String(pct).padStart(3)}% ${chalk_1.default.gray(loaded)}`;
|
|
65
|
+
}
|
|
66
|
+
if (info.status === 'done' && isDownloading && fileName) {
|
|
67
|
+
spinner.text = `${chalk_1.default.cyan(fileName.padEnd(30))} [${renderBar(100)}] 100% ✅`;
|
|
68
|
+
}
|
|
69
|
+
if (info.status === 'loading' && isDownloading) {
|
|
70
|
+
spinner.text = chalk_1.default.yellow(`Carregando ${lastFile || 'modelo'}...`);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const pipe = await (0, modelManager_js_1.ensureModel)(onProgress);
|
|
74
|
+
if (!pipe) {
|
|
75
|
+
spinner.warn(chalk_1.default.yellow('Modelo não disponível — usando similaridade de texto como fallback'));
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
if (isDownloading) {
|
|
79
|
+
spinner.succeed(chalk_1.default.green('Download concluído! Modelo pronto ✅'));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
spinner.succeed(chalk_1.default.gray('Modelo de embeddings: ') + chalk_1.default.green('cache ✅'));
|
|
83
|
+
}
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
24
86
|
async function indexCommand(opts = {}) {
|
|
25
87
|
const cwd = opts.cwd ?? process.cwd();
|
|
26
88
|
const config = await (0, loader_js_1.loadConfig)(cwd);
|
|
@@ -29,27 +91,34 @@ async function indexCommand(opts = {}) {
|
|
|
29
91
|
console.log(chalk_1.default.red.bold('\n🔥 Fire Code — Indexer\n'));
|
|
30
92
|
console.log(chalk_1.default.gray(` Mode: ${config.indexing.mode}`));
|
|
31
93
|
console.log(chalk_1.default.gray(` Working dir: ${cwd}\n`));
|
|
32
|
-
|
|
94
|
+
// Step 1: Ensure embedding model is downloaded
|
|
95
|
+
if (!opts.skipEmbeddings) {
|
|
96
|
+
await downloadModelWithProgress();
|
|
97
|
+
console.log();
|
|
98
|
+
}
|
|
99
|
+
// Step 2: Index the project
|
|
100
|
+
const spinner = (0, ora_1.default)({ text: 'Scanning files...', indent: 3 }).start();
|
|
33
101
|
const project = getProjectName(cwd);
|
|
34
102
|
const db = DatabaseManager_js_1.DatabaseManager.getInstance((0, paths_js_1.getFireCodeDir)(cwd));
|
|
35
103
|
const graphStore = db.getGraphStore(project);
|
|
36
|
-
const vectorStore =
|
|
104
|
+
const vectorStore = db.getVectorStore(project);
|
|
37
105
|
try {
|
|
38
|
-
spinner.text = '
|
|
106
|
+
spinner.text = 'Indexando arquivos e gerando embeddings...';
|
|
39
107
|
const result = await (0, Indexer_js_1.indexProject)(cwd, config, graphStore, vectorStore);
|
|
40
|
-
spinner.succeed(chalk_1.default.green('
|
|
41
|
-
console.log('\n' + chalk_1.default.bold('
|
|
42
|
-
console.log(chalk_1.default.gray(`
|
|
43
|
-
console.log(chalk_1.default.gray(`
|
|
44
|
-
console.log(chalk_1.default.gray(`
|
|
45
|
-
console.log(chalk_1.default.gray(`
|
|
46
|
-
console.log(chalk_1.default.gray(`
|
|
47
|
-
console.log(chalk_1.default.gray(`
|
|
48
|
-
console.log(chalk_1.default.gray(
|
|
108
|
+
spinner.succeed(chalk_1.default.green('Indexação completa!'));
|
|
109
|
+
console.log('\n' + chalk_1.default.bold(' Resultados:'));
|
|
110
|
+
console.log(chalk_1.default.gray(` Files indexed: `) + chalk_1.default.white(result.filesIndexed));
|
|
111
|
+
console.log(chalk_1.default.gray(` Functions found: `) + chalk_1.default.white(result.functionsFound));
|
|
112
|
+
console.log(chalk_1.default.gray(` Graph nodes: `) + chalk_1.default.white(result.nodesCreated));
|
|
113
|
+
console.log(chalk_1.default.gray(` Graph edges: `) + chalk_1.default.white(result.edgesCreated));
|
|
114
|
+
console.log(chalk_1.default.gray(` Commits indexed: `) + chalk_1.default.white(result.commitsIndexed));
|
|
115
|
+
console.log(chalk_1.default.gray(` Embeddings: `) + chalk_1.default.white(result.embeddingsGenerated));
|
|
116
|
+
console.log(chalk_1.default.gray(` Duration: `) + chalk_1.default.white(`${result.durationMs}ms`));
|
|
117
|
+
console.log(chalk_1.default.gray(`\n Saved to: `) + chalk_1.default.dim('.firecode/'));
|
|
49
118
|
console.log();
|
|
50
119
|
}
|
|
51
120
|
catch (err) {
|
|
52
|
-
spinner.fail(chalk_1.default.red('
|
|
121
|
+
spinner.fail(chalk_1.default.red('Indexação falhou'));
|
|
53
122
|
console.error(chalk_1.default.red(String(err)));
|
|
54
123
|
process.exit(1);
|
|
55
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/index-cmd.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/index-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,8 @@ export interface ExecuteOptions {
|
|
|
9
9
|
mode?: 'safe' | 'aggressive';
|
|
10
10
|
cwd?: string;
|
|
11
11
|
agentRole?: AgentRole;
|
|
12
|
+
/** Scaffold mode: create branch + return context without running CodeAgent. */
|
|
13
|
+
scaffoldOnly?: boolean;
|
|
12
14
|
}
|
|
13
15
|
export interface ExecutionResult extends AgentResult {
|
|
14
16
|
branch?: string;
|
|
@@ -17,12 +19,12 @@ export interface ExecutionResult extends AgentResult {
|
|
|
17
19
|
export declare class ExecutionEngine {
|
|
18
20
|
private readonly config;
|
|
19
21
|
private readonly provider;
|
|
20
|
-
private vectorStore;
|
|
21
22
|
private memory;
|
|
22
23
|
private agent;
|
|
23
24
|
private cwd;
|
|
24
25
|
private git;
|
|
25
26
|
constructor(config: FireCodeConfig, provider: LLMProvider, cwd?: string);
|
|
26
27
|
run(opts: ExecuteOptions): Promise<ExecutionResult>;
|
|
28
|
+
private buildScaffoldResult;
|
|
27
29
|
}
|
|
28
30
|
//# sourceMappingURL=ExecutionEngine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionEngine.d.ts","sourceRoot":"","sources":["../../src/core/ExecutionEngine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExecutionEngine.d.ts","sourceRoot":"","sources":["../../src/core/ExecutionEngine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAM/D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAa1D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAe;IAOxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAa;gBAGL,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,WAAW,EACtC,GAAG,CAAC,EAAE,MAAM;IAqBR,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;YA6D3C,mBAAmB;CA8BlC"}
|
|
@@ -3,19 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ExecutionEngine = void 0;
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
5
|
const path_1 = require("path");
|
|
6
|
+
const fs_1 = require("fs");
|
|
6
7
|
const HybridMemory_js_1 = require("../memory/HybridMemory.js");
|
|
7
8
|
const FallbackMemory_js_1 = require("../memory/FallbackMemory.js");
|
|
8
9
|
const DatabaseManager_js_1 = require("../db/DatabaseManager.js");
|
|
9
|
-
const MemoryVectorStore_js_1 = require("../vector/MemoryVectorStore.js");
|
|
10
10
|
const GitManager_js_1 = require("../git/GitManager.js");
|
|
11
11
|
const CodeAgent_js_1 = require("../agents/CodeAgent.js");
|
|
12
12
|
const TaskRouter_js_1 = require("./TaskRouter.js");
|
|
13
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
14
|
+
const paths_js_1 = require("../utils/paths.js");
|
|
13
15
|
function toCommitType(t) {
|
|
14
16
|
return t === 'feature' ? 'feat' : t;
|
|
15
17
|
}
|
|
16
|
-
const logger_js_1 = require("../utils/logger.js");
|
|
17
|
-
const fs_1 = require("fs");
|
|
18
|
-
const paths_js_1 = require("../utils/paths.js");
|
|
19
18
|
function getProjectName(cwd) {
|
|
20
19
|
try {
|
|
21
20
|
const pkg = JSON.parse((0, fs_1.readFileSync)(require('path').join(cwd, 'package.json'), 'utf8'));
|
|
@@ -28,7 +27,6 @@ function getProjectName(cwd) {
|
|
|
28
27
|
class ExecutionEngine {
|
|
29
28
|
config;
|
|
30
29
|
provider;
|
|
31
|
-
vectorStore;
|
|
32
30
|
memory;
|
|
33
31
|
agent;
|
|
34
32
|
cwd;
|
|
@@ -38,23 +36,14 @@ class ExecutionEngine {
|
|
|
38
36
|
this.provider = provider;
|
|
39
37
|
this.cwd = cwd ?? process.cwd();
|
|
40
38
|
this.git = new GitManager_js_1.GitManager(this.cwd, config.git);
|
|
41
|
-
this.vectorStore = new MemoryVectorStore_js_1.MemoryVectorStore();
|
|
42
39
|
const project = getProjectName(this.cwd);
|
|
43
40
|
const firedotDir = (0, paths_js_1.getFireCodeDir)(this.cwd);
|
|
44
41
|
const db = DatabaseManager_js_1.DatabaseManager.getInstance(firedotDir);
|
|
45
42
|
const graphStore = db.getGraphStore(project);
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
if ((0, fs_1.existsSync)(vectorsPath)) {
|
|
49
|
-
try {
|
|
50
|
-
this.vectorStore = MemoryVectorStore_js_1.MemoryVectorStore.deserialize((0, fs_1.readFileSync)(vectorsPath, 'utf8'));
|
|
51
|
-
logger_js_1.logger.debug({ size: this.vectorStore.size() }, 'Loaded persisted vectors');
|
|
52
|
-
}
|
|
53
|
-
catch { /* start fresh */ }
|
|
54
|
-
}
|
|
55
|
-
const hasData = this.vectorStore.size() > 0;
|
|
43
|
+
const vectorStore = db.getVectorStore(project);
|
|
44
|
+
const hasData = vectorStore.size() > 0;
|
|
56
45
|
if (hasData || config.memory.strategy !== 'auto') {
|
|
57
|
-
this.memory = new HybridMemory_js_1.HybridMemory(
|
|
46
|
+
this.memory = new HybridMemory_js_1.HybridMemory(vectorStore, graphStore);
|
|
58
47
|
}
|
|
59
48
|
else {
|
|
60
49
|
this.memory = new FallbackMemory_js_1.FallbackMemory(this.cwd);
|
|
@@ -62,6 +51,7 @@ class ExecutionEngine {
|
|
|
62
51
|
this.agent = new CodeAgent_js_1.CodeAgent(this.provider, this.memory, config);
|
|
63
52
|
}
|
|
64
53
|
async run(opts) {
|
|
54
|
+
const start = Date.now();
|
|
65
55
|
const taskId = (0, crypto_1.randomUUID)();
|
|
66
56
|
const taskType = opts.type ?? (0, TaskRouter_js_1.classifyTask)(opts.task);
|
|
67
57
|
logger_js_1.logger.info({ taskId, type: taskType, task: opts.task.slice(0, 100) }, 'Execution started');
|
|
@@ -73,6 +63,10 @@ class ExecutionEngine {
|
|
|
73
63
|
branch = await this.git.createBranch(toCommitType(taskType), opts.task, opts.agentRole);
|
|
74
64
|
logger_js_1.logger.info({ branch, agentRole: opts.agentRole }, 'Branch created/switched');
|
|
75
65
|
}
|
|
66
|
+
// Scaffold mode: surface context and hand control back to the host agent
|
|
67
|
+
if (opts.scaffoldOnly) {
|
|
68
|
+
return this.buildScaffoldResult(taskId, opts.task, branch, Date.now() - start);
|
|
69
|
+
}
|
|
76
70
|
const result = await this.agent.execute({
|
|
77
71
|
id: taskId,
|
|
78
72
|
description: opts.task,
|
|
@@ -103,6 +97,31 @@ class ExecutionEngine {
|
|
|
103
97
|
}
|
|
104
98
|
return { ...result, branch, commit };
|
|
105
99
|
}
|
|
100
|
+
async buildScaffoldResult(taskId, task, branch, durationMs) {
|
|
101
|
+
let contextStr = '';
|
|
102
|
+
try {
|
|
103
|
+
if (this.memory instanceof HybridMemory_js_1.HybridMemory) {
|
|
104
|
+
const ctx = await this.memory.retrieve(task, { k: 8 });
|
|
105
|
+
contextStr = ctx.combined;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
const ctx = await this.memory.retrieve(task, 8);
|
|
109
|
+
contextStr = ctx.combined;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
logger_js_1.logger.debug({ err: String(err) }, 'Could not retrieve context for scaffold');
|
|
114
|
+
}
|
|
115
|
+
const explanation = [
|
|
116
|
+
`Scaffold ready on branch \`${branch ?? 'current'}\`.`,
|
|
117
|
+
'The environment is prepared. Use your own editing tools to implement the task.',
|
|
118
|
+
'',
|
|
119
|
+
'## Relevant Context',
|
|
120
|
+
contextStr,
|
|
121
|
+
].join('\n');
|
|
122
|
+
logger_js_1.logger.info({ taskId, branch }, 'Scaffold complete');
|
|
123
|
+
return { taskId, success: true, changes: [], explanation, durationMs, branch };
|
|
124
|
+
}
|
|
106
125
|
}
|
|
107
126
|
exports.ExecutionEngine = ExecutionEngine;
|
|
108
127
|
//# sourceMappingURL=ExecutionEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionEngine.js","sourceRoot":"","sources":["../../src/core/ExecutionEngine.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,+BAAgC;
|
|
1
|
+
{"version":3,"file":"ExecutionEngine.js","sourceRoot":"","sources":["../../src/core/ExecutionEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
2
|
import { SQLiteGraphStore } from '../graph/SQLiteGraphStore.js';
|
|
3
|
+
import { SQLiteVectorStore } from '../vector/SQLiteVectorStore.js';
|
|
3
4
|
export type ObservationType = 'change' | 'bugfix' | 'feature' | 'refactor' | 'decision' | 'discovery';
|
|
4
5
|
export interface Session {
|
|
5
6
|
id: string;
|
|
@@ -73,7 +74,10 @@ export declare class DatabaseManager {
|
|
|
73
74
|
includePrivate?: boolean;
|
|
74
75
|
}): CorpusItem[];
|
|
75
76
|
deleteCorpus(project: string, title: string): void;
|
|
77
|
+
setProjectMeta(project: string, key: string, value: string): void;
|
|
78
|
+
getProjectMeta(project: string, key: string): string | null;
|
|
76
79
|
getGraphStore(project: string): SQLiteGraphStore;
|
|
80
|
+
getVectorStore(project: string): SQLiteVectorStore;
|
|
77
81
|
close(): void;
|
|
78
82
|
}
|
|
79
83
|
//# sourceMappingURL=DatabaseManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseManager.d.ts","sourceRoot":"","sources":["../../src/db/DatabaseManager.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"DatabaseManager.d.ts","sourceRoot":"","sources":["../../src/db/DatabaseManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ const fs_1 = require("fs");
|
|
|
9
9
|
const path_1 = require("path");
|
|
10
10
|
const schema_js_1 = require("./schema.js");
|
|
11
11
|
const SQLiteGraphStore_js_1 = require("../graph/SQLiteGraphStore.js");
|
|
12
|
+
const SQLiteVectorStore_js_1 = require("../vector/SQLiteVectorStore.js");
|
|
12
13
|
let instance = null;
|
|
13
14
|
class DatabaseManager {
|
|
14
15
|
// exposed for reset() only — do not use externally
|
|
@@ -200,9 +201,21 @@ class DatabaseManager {
|
|
|
200
201
|
this.db.prepare(`DELETE FROM corpus WHERE project = ? AND title = ?`).run(project, title);
|
|
201
202
|
}
|
|
202
203
|
// ── Graph ─────────────────────────────────────────────────────────────────
|
|
204
|
+
// ── Project Metadata ──────────────────────────────────────────────────────
|
|
205
|
+
setProjectMeta(project, key, value) {
|
|
206
|
+
this.db.prepare(`INSERT OR REPLACE INTO project_metadata (project, key, value) VALUES (?, ?, ?)`).run(project, key, value);
|
|
207
|
+
}
|
|
208
|
+
getProjectMeta(project, key) {
|
|
209
|
+
const row = this.db.prepare(`SELECT value FROM project_metadata WHERE project = ? AND key = ?`).get(project, key);
|
|
210
|
+
return row ? row.value : null;
|
|
211
|
+
}
|
|
212
|
+
// ── Graph ─────────────────────────────────────────────────────────────────
|
|
203
213
|
getGraphStore(project) {
|
|
204
214
|
return new SQLiteGraphStore_js_1.SQLiteGraphStore(this.db, project);
|
|
205
215
|
}
|
|
216
|
+
getVectorStore(project) {
|
|
217
|
+
return new SQLiteVectorStore_js_1.SQLiteVectorStore(this.db, project);
|
|
218
|
+
}
|
|
206
219
|
close() {
|
|
207
220
|
this.db.close();
|
|
208
221
|
instance = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseManager.js","sourceRoot":"","sources":["../../src/db/DatabaseManager.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsC;AACtC,2BAA2C;AAC3C,+BAA4B;AAC5B,2CAAyC;AACzC,sEAAgE;
|
|
1
|
+
{"version":3,"file":"DatabaseManager.js","sourceRoot":"","sources":["../../src/db/DatabaseManager.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 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 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";
|
|
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":"AAAA,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,oyKA8ItB,CAAC"}
|
package/dist/db/schema.js
CHANGED
|
@@ -123,5 +123,25 @@ CREATE TABLE IF NOT EXISTS graph_edges (
|
|
|
123
123
|
CREATE INDEX IF NOT EXISTS idx_gnodes_project ON graph_nodes(project, type);
|
|
124
124
|
CREATE INDEX IF NOT EXISTS idx_gedges_from ON graph_edges(project, from_id);
|
|
125
125
|
CREATE INDEX IF NOT EXISTS idx_gedges_to ON graph_edges(project, to_id);
|
|
126
|
+
|
|
127
|
+
-- Vector Embeddings (persistent, replaces in-memory MemoryVectorStore)
|
|
128
|
+
CREATE TABLE IF NOT EXISTS vector_chunks (
|
|
129
|
+
id TEXT NOT NULL,
|
|
130
|
+
project TEXT NOT NULL,
|
|
131
|
+
text TEXT NOT NULL,
|
|
132
|
+
metadata TEXT NOT NULL, -- JSON
|
|
133
|
+
embedding TEXT, -- JSON float array, NULL when model unavailable
|
|
134
|
+
PRIMARY KEY (project, id)
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
CREATE INDEX IF NOT EXISTS idx_vchunks_project ON vector_chunks(project);
|
|
138
|
+
|
|
139
|
+
-- Project-level key-value metadata (index hash, timestamps, etc.)
|
|
140
|
+
CREATE TABLE IF NOT EXISTS project_metadata (
|
|
141
|
+
project TEXT NOT NULL,
|
|
142
|
+
key TEXT NOT NULL,
|
|
143
|
+
value TEXT NOT NULL,
|
|
144
|
+
PRIMARY KEY (project, key)
|
|
145
|
+
);
|
|
126
146
|
`;
|
|
127
147
|
//# 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":";;;AAAa,QAAA,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8IzB,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":";;;;;;AAAA,4DAA0E;AAE1E,kDAA8C;AAC9C,kDAA4C;AAC5C,6DAM8B;AAU9B,MAAa,UAAU;IACb,GAAG,CAAY;IACf,MAAM,CAAY;IAClB,GAAG,CAAS;IAEpB,YAAY,GAAW,EAAE,MAAiB;QACxC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAiB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACrD,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,aAAa,CAAC,IAAgB,EAAE,WAAmB,EAAE,SAAqB;QACxE,OAAO,IAAA,oCAAe,EAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO;QAE3B,kBAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,uCAAuC,CAAC,CAAC;QAEtG,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO;YAET,KAAK,OAAO;gBACV,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,uCAAuC,CAAC,CAAC,CAAC;oBAC9E,kBAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,IAAI,oBAAQ,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBACD,OAAO;YAET,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzE,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC1B,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC;oBACjF,kBAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,IAAI,oBAAQ,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnF,CAAC;gBACD,OAAO;YACT,CAAC;YAED,KAAK,MAAM;gBACT,MAAM,IAAI,oBAAQ,CAChB,0BAA0B,MAAM,CAAC,QAAQ,CAAC,MAAM,4CAA4C,EAC5F,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAC9B,CAAC;QACN,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAgB,EAAE,WAAmB,EAAE,SAAqB;QAC7E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9C,OAAO,OAAO,IAAI,MAAM,CAAC;QAC3B,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAE5C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC7C,kBAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,oBAAoB,CAAC,CAAC;YACxD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,OAAO;gBACV,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAClC,kBAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,6BAA6B,CAAC,CAAC;gBACjE,OAAO,QAAQ,CAAC;YAElB,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,IAAI,IAAI,GAAG,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC;gBACpC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,OAAO,EAAE,CAAC;oBACV,IAAI,GAAG,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC;gBAClC,CAAC;gBACD,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACzC,kBAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,4BAA4B,CAAC,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,KAAK,MAAM;gBACT,MAAM,IAAI,oBAAQ,CAAC,0BAA0B,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwD,EAAE,KAAgB;QACrF,MAAM,OAAO,GAAG,IAAA,wCAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvD,IAAI,CAAC;YACH,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9C,kBAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;YACrF,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,oBAAQ,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kBAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAQ,GAAG,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAoB,EAAE,CAAC;YAEpC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjF,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAClF,OAAO,CAAC,IAAI,CAAC;oBACX,GAAG,EAAE,KAAK,CAAC,IAAI;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AA1MD,gCA0MC"}
|