repomemory 0.1.0 → 0.2.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/README.md +151 -104
- package/dist/commands/analyze.d.ts +2 -0
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +162 -188
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/dashboard.d.ts +5 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +520 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +33 -34
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +2 -1
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +151 -35
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts +4 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +87 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +57 -27
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/wizard.d.ts +4 -0
- package/dist/commands/wizard.d.ts.map +1 -0
- package/dist/commands/wizard.js +184 -0
- package/dist/commands/wizard.js.map +1 -0
- package/dist/index.js +37 -42
- package/dist/index.js.map +1 -1
- package/dist/lib/ai-provider.d.ts +11 -0
- package/dist/lib/ai-provider.d.ts.map +1 -1
- package/dist/lib/ai-provider.js +138 -69
- package/dist/lib/ai-provider.js.map +1 -1
- package/dist/lib/config.d.ts +11 -15
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +33 -21
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/context-store.d.ts +11 -0
- package/dist/lib/context-store.d.ts.map +1 -1
- package/dist/lib/context-store.js +51 -18
- package/dist/lib/context-store.js.map +1 -1
- package/dist/lib/git.d.ts +1 -0
- package/dist/lib/git.d.ts.map +1 -1
- package/dist/lib/git.js +34 -20
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/json-repair.d.ts +24 -0
- package/dist/lib/json-repair.d.ts.map +1 -0
- package/dist/lib/json-repair.js +140 -0
- package/dist/lib/json-repair.js.map +1 -0
- package/dist/lib/repo-scanner.d.ts.map +1 -1
- package/dist/lib/repo-scanner.js +103 -26
- package/dist/lib/repo-scanner.js.map +1 -1
- package/dist/lib/search.d.ts +10 -4
- package/dist/lib/search.d.ts.map +1 -1
- package/dist/lib/search.js +136 -51
- package/dist/lib/search.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +128 -54
- package/dist/mcp/server.js.map +1 -1
- package/package.json +20 -8
package/dist/commands/analyze.js
CHANGED
|
@@ -5,146 +5,8 @@ import { ContextStore } from "../lib/context-store.js";
|
|
|
5
5
|
import { SearchIndex } from "../lib/search.js";
|
|
6
6
|
import { scanRepo } from "../lib/repo-scanner.js";
|
|
7
7
|
import { getGitInfo, getRecentDiffs } from "../lib/git.js";
|
|
8
|
-
import { createProvider } from "../lib/ai-provider.js";
|
|
9
|
-
|
|
10
|
-
* Robustly extracts a JSON object from an AI response that may contain
|
|
11
|
-
* markdown code fences, preamble text, or other wrapping.
|
|
12
|
-
*/
|
|
13
|
-
function extractJSON(raw) {
|
|
14
|
-
let text = raw.trim();
|
|
15
|
-
// Strategy 1: Strip outermost code fences (greedy to match last ```)
|
|
16
|
-
const fenceMatch = text.match(/^```(?:json)?\s*\n([\s\S]*)\n\s*```\s*$/);
|
|
17
|
-
if (fenceMatch) {
|
|
18
|
-
text = fenceMatch[1].trim();
|
|
19
|
-
}
|
|
20
|
-
// Strategy 2: If still wrapped in non-JSON text, find first { to last }
|
|
21
|
-
if (!text.startsWith("{")) {
|
|
22
|
-
const firstBrace = text.indexOf("{");
|
|
23
|
-
const lastBrace = text.lastIndexOf("}");
|
|
24
|
-
if (firstBrace !== -1 && lastBrace > firstBrace) {
|
|
25
|
-
text = text.slice(firstBrace, lastBrace + 1);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
// Try parsing (with multiple repair strategies)
|
|
29
|
-
const attempts = [
|
|
30
|
-
() => text,
|
|
31
|
-
() => fixJsonNewlines(text),
|
|
32
|
-
() => repairTruncatedJSON(text),
|
|
33
|
-
() => repairTruncatedJSON(fixJsonNewlines(text)),
|
|
34
|
-
];
|
|
35
|
-
let lastError = null;
|
|
36
|
-
for (const attempt of attempts) {
|
|
37
|
-
try {
|
|
38
|
-
return JSON.parse(attempt());
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
lastError = e;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
throw lastError;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Fixes actual newlines inside JSON string values by replacing them with \n.
|
|
48
|
-
* Walks the string character by character, tracking whether we're inside a string.
|
|
49
|
-
*/
|
|
50
|
-
function fixJsonNewlines(json) {
|
|
51
|
-
const chars = [];
|
|
52
|
-
let inString = false;
|
|
53
|
-
let escaped = false;
|
|
54
|
-
for (let i = 0; i < json.length; i++) {
|
|
55
|
-
const ch = json[i];
|
|
56
|
-
if (escaped) {
|
|
57
|
-
chars.push(ch);
|
|
58
|
-
escaped = false;
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
if (ch === "\\") {
|
|
62
|
-
chars.push(ch);
|
|
63
|
-
escaped = true;
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
if (ch === '"') {
|
|
67
|
-
inString = !inString;
|
|
68
|
-
chars.push(ch);
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
if (inString && ch === "\n") {
|
|
72
|
-
chars.push("\\n");
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
if (inString && ch === "\r") {
|
|
76
|
-
continue; // Skip carriage returns
|
|
77
|
-
}
|
|
78
|
-
if (inString && ch === "\t") {
|
|
79
|
-
chars.push("\\t");
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
chars.push(ch);
|
|
83
|
-
}
|
|
84
|
-
return chars.join("");
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Repairs a truncated JSON string by closing any open strings, arrays, and objects.
|
|
88
|
-
* Handles the common case where the AI response was cut off mid-output.
|
|
89
|
-
*/
|
|
90
|
-
function repairTruncatedJSON(json) {
|
|
91
|
-
let text = json.trim();
|
|
92
|
-
// If it ends cleanly, nothing to repair
|
|
93
|
-
if (text.endsWith("}")) {
|
|
94
|
-
try {
|
|
95
|
-
JSON.parse(text);
|
|
96
|
-
return text;
|
|
97
|
-
}
|
|
98
|
-
catch {
|
|
99
|
-
// Fall through to repair
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
// Find what's open — track nesting
|
|
103
|
-
let inString = false;
|
|
104
|
-
let escaped = false;
|
|
105
|
-
const stack = []; // Track open brackets
|
|
106
|
-
for (let i = 0; i < text.length; i++) {
|
|
107
|
-
const ch = text[i];
|
|
108
|
-
if (escaped) {
|
|
109
|
-
escaped = false;
|
|
110
|
-
continue;
|
|
111
|
-
}
|
|
112
|
-
if (ch === "\\") {
|
|
113
|
-
escaped = true;
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
if (ch === '"') {
|
|
117
|
-
inString = !inString;
|
|
118
|
-
continue;
|
|
119
|
-
}
|
|
120
|
-
if (inString)
|
|
121
|
-
continue;
|
|
122
|
-
if (ch === "{")
|
|
123
|
-
stack.push("}");
|
|
124
|
-
else if (ch === "[")
|
|
125
|
-
stack.push("]");
|
|
126
|
-
else if (ch === "}" || ch === "]")
|
|
127
|
-
stack.pop();
|
|
128
|
-
}
|
|
129
|
-
// Close open string if needed
|
|
130
|
-
if (inString) {
|
|
131
|
-
text += '"';
|
|
132
|
-
}
|
|
133
|
-
// Remove trailing comma
|
|
134
|
-
text = text.replace(/,\s*$/, "");
|
|
135
|
-
// Close all open brackets in reverse order
|
|
136
|
-
while (stack.length > 0) {
|
|
137
|
-
const closer = stack.pop();
|
|
138
|
-
// Remove any trailing incomplete entry before closing
|
|
139
|
-
if (closer === "]") {
|
|
140
|
-
// Remove trailing incomplete object in array
|
|
141
|
-
text = text.replace(/,\s*\{[^}]*$/, "");
|
|
142
|
-
text = text.replace(/,\s*"[^"]*$/, "");
|
|
143
|
-
}
|
|
144
|
-
text += closer;
|
|
145
|
-
}
|
|
146
|
-
return text;
|
|
147
|
-
}
|
|
8
|
+
import { createProvider, validateApiKey, estimateCost, AIError } from "../lib/ai-provider.js";
|
|
9
|
+
import { extractJSON } from "../lib/json-repair.js";
|
|
148
10
|
const ANALYSIS_SYSTEM_PROMPT = `You are repomemory, an expert at analyzing codebases and creating structured knowledge bases for AI coding agents.
|
|
149
11
|
|
|
150
12
|
Your job is to analyze a repository and produce a comprehensive, well-organized knowledge base that helps AI agents (Claude Code, Cursor, Copilot, etc.) work effectively in this codebase from the very first message.
|
|
@@ -208,13 +70,30 @@ export async function analyzeCommand(options) {
|
|
|
208
70
|
config.provider = options.provider;
|
|
209
71
|
if (options.model)
|
|
210
72
|
config.model = options.model;
|
|
73
|
+
// Validate API key before doing any expensive work
|
|
74
|
+
const hasKey = await validateApiKey(config);
|
|
75
|
+
if (!hasKey) {
|
|
76
|
+
const envVar = {
|
|
77
|
+
anthropic: "ANTHROPIC_API_KEY",
|
|
78
|
+
openai: "OPENAI_API_KEY",
|
|
79
|
+
gemini: "GEMINI_API_KEY",
|
|
80
|
+
grok: "GROK_API_KEY",
|
|
81
|
+
}[config.provider];
|
|
82
|
+
console.error(chalk.red(`\n\u2717 No API key found for ${config.provider}.`));
|
|
83
|
+
console.error(chalk.dim(` Set ${envVar} and try again.`));
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
211
86
|
const store = new ContextStore(repoRoot, config);
|
|
212
87
|
if (!store.exists()) {
|
|
213
|
-
console.log(chalk.yellow("
|
|
88
|
+
console.log(chalk.yellow("\u26a0 No .context/ directory found. Initializing..."));
|
|
214
89
|
store.scaffold();
|
|
215
90
|
}
|
|
216
|
-
|
|
217
|
-
|
|
91
|
+
// Check merge mode
|
|
92
|
+
const existingEntries = options.merge ? store.listEntries() : [];
|
|
93
|
+
if (options.merge && existingEntries.length > 0) {
|
|
94
|
+
console.log(chalk.dim(` Merge mode: ${existingEntries.length} existing entries will be preserved.`));
|
|
95
|
+
}
|
|
96
|
+
console.log(chalk.bold("\n\ud83d\udd0d Scanning repository...\n"));
|
|
218
97
|
const scan = scanRepo(repoRoot, config);
|
|
219
98
|
console.log(` ${chalk.cyan("Files:")} ${scan.stats.totalFiles}`);
|
|
220
99
|
console.log(` ${chalk.cyan("Directories:")} ${scan.stats.totalDirs}`);
|
|
@@ -226,8 +105,7 @@ export async function analyzeCommand(options) {
|
|
|
226
105
|
console.log(` ${chalk.cyan("Frameworks:")} ${scan.stats.frameworks.join(", ")}`);
|
|
227
106
|
}
|
|
228
107
|
console.log(` ${chalk.cyan("Key files found:")} ${scan.keyFiles.length}`);
|
|
229
|
-
|
|
230
|
-
console.log(chalk.bold("\n📜 Reading git history...\n"));
|
|
108
|
+
console.log(chalk.bold("\n\ud83d\udcdc Reading git history...\n"));
|
|
231
109
|
const git = getGitInfo(repoRoot, config.maxGitCommits);
|
|
232
110
|
if (git.isGitRepo) {
|
|
233
111
|
console.log(` ${chalk.cyan("Commits:")} ${git.totalCommits}`);
|
|
@@ -238,25 +116,72 @@ export async function analyzeCommand(options) {
|
|
|
238
116
|
else {
|
|
239
117
|
console.log(chalk.dim(" Not a git repository"));
|
|
240
118
|
}
|
|
241
|
-
// Get recent diffs for deeper analysis
|
|
242
119
|
const recentDiffs = git.isGitRepo ? getRecentDiffs(repoRoot, 20) : "";
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
120
|
+
const userPrompt = buildAnalysisPrompt(scan, git, recentDiffs, options.merge ? existingEntries : undefined);
|
|
121
|
+
// Estimate tokens and cost
|
|
122
|
+
const estimatedInputTokens = Math.round(userPrompt.length / 4) + 2000; // +2000 for system prompt
|
|
123
|
+
const estimatedOutputTokens = 32000;
|
|
124
|
+
const cost = estimateCost(config.provider, config.model, estimatedInputTokens, estimatedOutputTokens);
|
|
125
|
+
console.log(chalk.dim(`\n Estimated input: ~${estimatedInputTokens.toLocaleString()} tokens`));
|
|
126
|
+
console.log(chalk.dim(` Estimated cost: ${cost}`));
|
|
127
|
+
// Dry run mode
|
|
128
|
+
if (options.dryRun) {
|
|
129
|
+
console.log(chalk.bold("\n\ud83d\udccb Dry run complete.\n"));
|
|
130
|
+
console.log(` Would analyze with ${chalk.cyan(config.provider)} (${config.model})`);
|
|
131
|
+
console.log(` Prompt size: ~${Math.round(userPrompt.length / 4).toLocaleString()} tokens`);
|
|
132
|
+
console.log(` Key files to analyze: ${scan.keyFiles.length}`);
|
|
133
|
+
console.log(` Estimated cost: ${cost}`);
|
|
134
|
+
if (options.verbose) {
|
|
135
|
+
console.log(chalk.dim("\n Files that would be analyzed:"));
|
|
136
|
+
for (const f of scan.keyFiles.slice(0, 20)) {
|
|
137
|
+
console.log(chalk.dim(` ${f.path}`));
|
|
138
|
+
}
|
|
139
|
+
if (scan.keyFiles.length > 20) {
|
|
140
|
+
console.log(chalk.dim(` ... and ${scan.keyFiles.length - 20} more`));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return;
|
|
247
144
|
}
|
|
248
|
-
// Call AI
|
|
249
|
-
console.log(chalk.bold(`\n
|
|
145
|
+
// Call AI with retry
|
|
146
|
+
console.log(chalk.bold(`\n\ud83e\udd16 Analyzing with ${config.provider} (${config.model})...\n`));
|
|
147
|
+
const ora = (await import("ora")).default;
|
|
148
|
+
const spinner = ora({
|
|
149
|
+
text: "Analyzing codebase...",
|
|
150
|
+
color: "cyan",
|
|
151
|
+
}).start();
|
|
250
152
|
const provider = await createProvider(config);
|
|
153
|
+
let response;
|
|
154
|
+
const maxRetries = 2;
|
|
251
155
|
const startTime = Date.now();
|
|
252
|
-
|
|
253
|
-
{
|
|
254
|
-
|
|
255
|
-
|
|
156
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
157
|
+
try {
|
|
158
|
+
response = await provider.generate([
|
|
159
|
+
{ role: "system", content: ANALYSIS_SYSTEM_PROMPT },
|
|
160
|
+
{ role: "user", content: userPrompt },
|
|
161
|
+
], { maxTokens: 64000, temperature: 0.2 });
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
const isRetryable = err instanceof AIError && err.isRetryable;
|
|
166
|
+
if (attempt < maxRetries && isRetryable) {
|
|
167
|
+
const delay = Math.pow(2, attempt + 1) * 1000;
|
|
168
|
+
spinner.text = `Retrying in ${delay / 1000}s (attempt ${attempt + 2}/${maxRetries + 1})...`;
|
|
169
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
spinner.fail("Analysis failed");
|
|
173
|
+
throw err;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (!response) {
|
|
177
|
+
spinner.fail("Analysis failed after retries");
|
|
178
|
+
process.exit(1);
|
|
179
|
+
}
|
|
256
180
|
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
257
|
-
|
|
181
|
+
spinner.succeed(`Analysis complete in ${elapsed}s`);
|
|
258
182
|
if (response.tokensUsed) {
|
|
259
|
-
|
|
183
|
+
const actualCost = estimateCost(config.provider, config.model, response.inputTokens || 0, response.outputTokens || 0);
|
|
184
|
+
console.log(chalk.dim(` Tokens: ${response.tokensUsed.toLocaleString()} | Cost: ${actualCost}`));
|
|
260
185
|
}
|
|
261
186
|
// Parse response
|
|
262
187
|
let analysis;
|
|
@@ -264,7 +189,6 @@ export async function analyzeCommand(options) {
|
|
|
264
189
|
analysis = extractJSON(response.content);
|
|
265
190
|
}
|
|
266
191
|
catch (e) {
|
|
267
|
-
// Save raw response for debugging
|
|
268
192
|
const debugPath = join(repoRoot, ".context", ".last-response.txt");
|
|
269
193
|
try {
|
|
270
194
|
const { writeFileSync: wf } = await import("fs");
|
|
@@ -272,7 +196,7 @@ export async function analyzeCommand(options) {
|
|
|
272
196
|
console.error(chalk.dim(` Raw response saved to ${debugPath}`));
|
|
273
197
|
}
|
|
274
198
|
catch { }
|
|
275
|
-
console.error(chalk.red(`\n
|
|
199
|
+
console.error(chalk.red(`\n\u2717 Failed to parse AI response as JSON: ${e.message}`));
|
|
276
200
|
if (options.verbose) {
|
|
277
201
|
console.error(chalk.dim(response.content.slice(0, 500)));
|
|
278
202
|
}
|
|
@@ -280,62 +204,103 @@ export async function analyzeCommand(options) {
|
|
|
280
204
|
process.exit(1);
|
|
281
205
|
}
|
|
282
206
|
// Write everything
|
|
283
|
-
console.log(chalk.bold("\n
|
|
284
|
-
//
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
207
|
+
console.log(chalk.bold("\n\ud83d\udcdd Writing context files...\n"));
|
|
208
|
+
// In merge mode, only overwrite index, add new facts/decisions/regressions
|
|
209
|
+
if (!options.merge) {
|
|
210
|
+
store.writeIndex(analysis.index);
|
|
211
|
+
console.log(` ${chalk.green("\u2713")} index.md`);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
// In merge mode, append new info to index
|
|
215
|
+
const existingIndex = store.readIndex();
|
|
216
|
+
if (!existingIndex || existingIndex.includes("Run `repomemory analyze` to populate")) {
|
|
217
|
+
store.writeIndex(analysis.index);
|
|
218
|
+
console.log(` ${chalk.green("\u2713")} index.md (replaced placeholder)`);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
console.log(` ${chalk.yellow("\u2192")} index.md (preserved existing)`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const existingFilenames = new Set(existingEntries.map((e) => `${e.category}/${e.filename}`));
|
|
288
225
|
for (const fact of analysis.facts || []) {
|
|
226
|
+
const key = `facts/${fact.filename.toLowerCase().replace(/[^a-z0-9._-]/g, "-")}.md`;
|
|
227
|
+
if (options.merge && existingFilenames.has(key)) {
|
|
228
|
+
console.log(` ${chalk.yellow("\u2192")} ${key} (preserved existing)`);
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
289
231
|
const path = store.writeEntry("facts", fact.filename, fact.content);
|
|
290
|
-
console.log(` ${chalk.green("
|
|
232
|
+
console.log(` ${chalk.green("\u2713")} ${path}`);
|
|
291
233
|
}
|
|
292
|
-
// Decisions
|
|
293
234
|
for (const decision of analysis.decisions || []) {
|
|
235
|
+
const key = `decisions/${decision.filename.toLowerCase().replace(/[^a-z0-9._-]/g, "-")}.md`;
|
|
236
|
+
if (options.merge && existingFilenames.has(key)) {
|
|
237
|
+
console.log(` ${chalk.yellow("\u2192")} ${key} (preserved existing)`);
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
294
240
|
const path = store.writeEntry("decisions", decision.filename, decision.content);
|
|
295
|
-
console.log(` ${chalk.green("
|
|
241
|
+
console.log(` ${chalk.green("\u2713")} ${path}`);
|
|
296
242
|
}
|
|
297
|
-
// Regressions
|
|
298
243
|
for (const regression of analysis.regressions || []) {
|
|
244
|
+
const key = `regressions/${regression.filename.toLowerCase().replace(/[^a-z0-9._-]/g, "-")}.md`;
|
|
245
|
+
if (options.merge && existingFilenames.has(key)) {
|
|
246
|
+
console.log(` ${chalk.yellow("\u2192")} ${key} (preserved existing)`);
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
299
249
|
const path = store.writeEntry("regressions", regression.filename, regression.content);
|
|
300
|
-
console.log(` ${chalk.green("
|
|
250
|
+
console.log(` ${chalk.green("\u2713")} ${path}`);
|
|
301
251
|
}
|
|
302
252
|
// Build search index
|
|
303
|
-
|
|
253
|
+
const spinnerIndex = ora({ text: "Building search index...", color: "cyan" }).start();
|
|
304
254
|
const searchIndex = new SearchIndex(store.path, store);
|
|
305
|
-
searchIndex.rebuild();
|
|
255
|
+
await searchIndex.rebuild();
|
|
306
256
|
searchIndex.close();
|
|
257
|
+
spinnerIndex.succeed("Search index built");
|
|
258
|
+
// Coverage report
|
|
307
259
|
const stats = store.getStats();
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
console.log(
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
260
|
+
const factsCount = (analysis.facts || []).length;
|
|
261
|
+
const decisionsCount = (analysis.decisions || []).length;
|
|
262
|
+
const regressionsCount = (analysis.regressions || []).length;
|
|
263
|
+
console.log(chalk.bold("\n\u2728 Analysis complete!\n"));
|
|
264
|
+
// Beautiful coverage bars
|
|
265
|
+
printCoverageBar("Facts", factsCount, 8);
|
|
266
|
+
printCoverageBar("Decisions", decisionsCount, 5);
|
|
267
|
+
printCoverageBar("Regressions", regressionsCount, 3);
|
|
268
|
+
console.log(chalk.dim(`\n Total: ${stats.totalFiles} files | ${(stats.totalSize / 1024).toFixed(1)}KB\n`));
|
|
315
269
|
console.log(chalk.bold("Next:"));
|
|
316
|
-
console.log(` ${chalk.dim("
|
|
317
|
-
console.log(` ${chalk.dim("
|
|
318
|
-
console.log(` ${chalk.dim("
|
|
270
|
+
console.log(` ${chalk.dim("\u2022")} Review .context/ files and edit as needed`);
|
|
271
|
+
console.log(` ${chalk.dim("\u2022")} Run ${chalk.cyan("repomemory setup claude")} to connect your AI tool`);
|
|
272
|
+
console.log(` ${chalk.dim("\u2022")} Run ${chalk.cyan("repomemory analyze --merge")} to update without overwriting`);
|
|
273
|
+
console.log(` ${chalk.dim("\u2022")} Commit .context/ to git to share with your team`);
|
|
319
274
|
}
|
|
320
|
-
function
|
|
275
|
+
function printCoverageBar(label, count, max) {
|
|
276
|
+
const filled = Math.min(count, max);
|
|
277
|
+
const percentage = Math.min(100, Math.round((count / max) * 100));
|
|
278
|
+
const barLength = 20;
|
|
279
|
+
const filledLength = Math.round((filled / max) * barLength);
|
|
280
|
+
let color = chalk.green;
|
|
281
|
+
if (percentage < 40)
|
|
282
|
+
color = chalk.red;
|
|
283
|
+
else if (percentage < 70)
|
|
284
|
+
color = chalk.yellow;
|
|
285
|
+
const bar = color("\u2588".repeat(filledLength)) + chalk.dim("\u2591".repeat(barLength - filledLength));
|
|
286
|
+
const label_ = label.padEnd(12);
|
|
287
|
+
console.log(` ${label_} ${bar} ${percentage}% (${count} files)`);
|
|
288
|
+
}
|
|
289
|
+
function buildAnalysisPrompt(scan, git, recentDiffs, existingEntries) {
|
|
321
290
|
const parts = [];
|
|
322
|
-
// Project structure
|
|
323
291
|
parts.push("## Repository Structure\n```");
|
|
324
|
-
parts.push(scan.tree.slice(0, 5000));
|
|
292
|
+
parts.push(scan.tree.slice(0, 5000));
|
|
325
293
|
parts.push("```");
|
|
326
|
-
// Stats
|
|
327
294
|
parts.push("\n## Repository Stats");
|
|
328
295
|
parts.push(`- Files: ${scan.stats.totalFiles}`);
|
|
329
296
|
parts.push(`- Languages: ${JSON.stringify(scan.stats.languages)}`);
|
|
330
297
|
parts.push(`- Frameworks: ${scan.stats.frameworks.join(", ") || "none detected"}`);
|
|
331
298
|
parts.push(`- Package managers: ${scan.stats.packageManagers.join(", ") || "none detected"}`);
|
|
332
299
|
parts.push(`- Monorepo: ${scan.stats.hasMonorepo}`);
|
|
333
|
-
// Key files
|
|
334
300
|
parts.push("\n## Key Files\n");
|
|
335
301
|
for (const file of scan.keyFiles) {
|
|
336
302
|
parts.push(`### ${file.path}\n\`\`\`\n${file.content.slice(0, 8000)}\n\`\`\`\n`);
|
|
337
303
|
}
|
|
338
|
-
// Git info
|
|
339
304
|
if (git.isGitRepo) {
|
|
340
305
|
parts.push("\n## Git Information");
|
|
341
306
|
parts.push(`- Total commits: ${git.totalCommits}`);
|
|
@@ -355,6 +320,15 @@ function buildAnalysisPrompt(scan, git, recentDiffs) {
|
|
|
355
320
|
parts.push("```");
|
|
356
321
|
}
|
|
357
322
|
}
|
|
323
|
+
// If merge mode, tell the AI what already exists
|
|
324
|
+
if (existingEntries && existingEntries.length > 0) {
|
|
325
|
+
parts.push("\n## Existing Context (DO NOT duplicate these — create NEW entries for uncovered areas)");
|
|
326
|
+
for (const entry of existingEntries) {
|
|
327
|
+
if (entry.category !== "root") {
|
|
328
|
+
parts.push(`- ${entry.category}/${entry.filename}: ${entry.title}`);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
358
332
|
return parts.join("\n");
|
|
359
333
|
}
|
|
360
334
|
//# sourceMappingURL=analyze.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAKA,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,iBAkE9E"}
|