repomemory 1.4.3 → 1.5.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/commands/go.d.ts +1 -0
- package/dist/commands/go.d.ts.map +1 -1
- package/dist/commands/go.js +103 -22
- package/dist/commands/go.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/go.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/commands/go.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/commands/go.ts"],"names":[],"mappings":"AAYA,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,iBAwPA"}
|
package/dist/commands/go.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { existsSync, readFileSync } from "fs";
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import chalk from "chalk";
|
|
4
|
+
import * as p from "@clack/prompts";
|
|
4
5
|
import { loadConfig, resolveGlobalDir } from "../lib/config.js";
|
|
5
6
|
import { ContextStore } from "../lib/context-store.js";
|
|
6
7
|
import { validateApiKey } from "../lib/ai-provider.js";
|
|
7
|
-
import { CLAUDE_MD_BLOCK, STARTER_INDEX
|
|
8
|
+
import { CLAUDE_MD_BLOCK, STARTER_INDEX } from "./init.js";
|
|
8
9
|
import { analyzeCommand } from "./analyze.js";
|
|
9
10
|
import { setupCommand } from "./setup.js";
|
|
10
11
|
export async function goCommand(options) {
|
|
11
12
|
const repoRoot = options.dir || process.cwd();
|
|
12
13
|
const config = loadConfig(repoRoot);
|
|
14
|
+
const configPath = join(repoRoot, ".repomemory.json");
|
|
13
15
|
if (options.provider) {
|
|
14
16
|
const validProviders = ["anthropic", "openai", "gemini", "grok"];
|
|
15
17
|
if (!validProviders.includes(options.provider)) {
|
|
@@ -20,7 +22,7 @@ export async function goCommand(options) {
|
|
|
20
22
|
}
|
|
21
23
|
const store = new ContextStore(repoRoot, config);
|
|
22
24
|
const steps = [];
|
|
23
|
-
|
|
25
|
+
const totalSteps = 5;
|
|
24
26
|
let currentStep = 0;
|
|
25
27
|
console.log(chalk.bold("\nrepomemory go \u2014 one-command setup\n"));
|
|
26
28
|
// Step 0: Ensure global context exists
|
|
@@ -41,34 +43,113 @@ export async function goCommand(options) {
|
|
|
41
43
|
else {
|
|
42
44
|
console.log(chalk.dim(`${currentStep}/${totalSteps} Global context disabled.`));
|
|
43
45
|
}
|
|
44
|
-
// Step 1:
|
|
46
|
+
// Step 1: Configure — ask about key settings if not provided via flags
|
|
45
47
|
currentStep++;
|
|
46
|
-
|
|
48
|
+
const isNewSetup = !existsSync(configPath);
|
|
49
|
+
// Determine embedding provider
|
|
50
|
+
let embeddingProvider = options.embeddingProvider || config.embeddingProvider;
|
|
51
|
+
if (!embeddingProvider) {
|
|
52
|
+
// Detect available keys
|
|
53
|
+
const embeddingKeys = [];
|
|
54
|
+
if (process.env.OPENAI_API_KEY) {
|
|
55
|
+
embeddingKeys.push({ provider: "openai", label: "OpenAI (text-embedding-3-small)" });
|
|
56
|
+
}
|
|
57
|
+
if (process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY || process.env.GOOGLE_GENERATIVE_AI_API_KEY) {
|
|
58
|
+
embeddingKeys.push({ provider: "gemini", label: "Gemini (text-embedding-004)" });
|
|
59
|
+
}
|
|
60
|
+
if (embeddingKeys.length > 0) {
|
|
61
|
+
const embeddingChoice = await p.select({
|
|
62
|
+
message: "Embedding provider for semantic search?",
|
|
63
|
+
options: [
|
|
64
|
+
...embeddingKeys.map((k) => ({ value: k.provider, label: k.label })),
|
|
65
|
+
{ value: "none", label: "None", hint: "Keyword search only \u2014 no API costs" },
|
|
66
|
+
],
|
|
67
|
+
});
|
|
68
|
+
if (p.isCancel(embeddingChoice)) {
|
|
69
|
+
p.cancel("Setup cancelled.");
|
|
70
|
+
process.exit(0);
|
|
71
|
+
}
|
|
72
|
+
embeddingProvider = embeddingChoice === "none" ? undefined : embeddingChoice;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.log(chalk.dim(`${currentStep}/${totalSteps} No embedding API keys found. Using keyword search.`));
|
|
76
|
+
console.log(chalk.dim(" Set OPENAI_API_KEY or GEMINI_API_KEY to enable semantic search."));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Determine max files for analysis
|
|
80
|
+
let maxFiles = config.maxFilesForAnalysis;
|
|
81
|
+
if (isNewSetup) {
|
|
82
|
+
const maxFilesChoice = await p.select({
|
|
83
|
+
message: `Max files to analyze? (your repo has many files)`,
|
|
84
|
+
options: [
|
|
85
|
+
{ value: "80", label: "80 (default)", hint: "Fast, covers key files" },
|
|
86
|
+
{ value: "150", label: "150", hint: "Good for medium repos" },
|
|
87
|
+
{ value: "300", label: "300", hint: "Thorough, slower analysis" },
|
|
88
|
+
],
|
|
89
|
+
});
|
|
90
|
+
if (p.isCancel(maxFilesChoice)) {
|
|
91
|
+
p.cancel("Setup cancelled.");
|
|
92
|
+
process.exit(0);
|
|
93
|
+
}
|
|
94
|
+
maxFiles = parseInt(maxFilesChoice, 10);
|
|
95
|
+
}
|
|
96
|
+
// Write or update config
|
|
97
|
+
if (isNewSetup) {
|
|
47
98
|
console.log(chalk.cyan(`${currentStep}/${totalSteps}`) + " Initializing .context/ directory...");
|
|
48
99
|
store.scaffold();
|
|
49
100
|
store.writeIndex(STARTER_INDEX);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
101
|
+
const configToWrite = {
|
|
102
|
+
provider: config.provider,
|
|
103
|
+
model: options.model || config.model,
|
|
104
|
+
contextDir: config.contextDir,
|
|
105
|
+
maxFilesForAnalysis: maxFiles,
|
|
106
|
+
maxGitCommits: config.maxGitCommits,
|
|
107
|
+
autoIndex: config.autoIndex,
|
|
108
|
+
ignorePatterns: [],
|
|
109
|
+
keyFilePatterns: [],
|
|
110
|
+
};
|
|
53
111
|
if (embeddingProvider) {
|
|
54
|
-
|
|
112
|
+
configToWrite.embeddingProvider = embeddingProvider;
|
|
55
113
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
114
|
+
writeFileSync(configPath, JSON.stringify(configToWrite, null, 2) + "\n");
|
|
115
|
+
const embeddingLabel = embeddingProvider || "none (keyword only)";
|
|
116
|
+
steps.push(`Initialized .context/ (embeddings: ${embeddingLabel}, maxFiles: ${maxFiles})`);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Update existing config if new settings were chosen
|
|
120
|
+
let updated = false;
|
|
121
|
+
let existingConfig = {};
|
|
122
|
+
try {
|
|
123
|
+
existingConfig = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
existingConfig = {};
|
|
59
127
|
}
|
|
60
|
-
|
|
61
|
-
embeddingProvider =
|
|
62
|
-
|
|
128
|
+
if (embeddingProvider && !existingConfig.embeddingProvider) {
|
|
129
|
+
existingConfig.embeddingProvider = embeddingProvider;
|
|
130
|
+
updated = true;
|
|
131
|
+
}
|
|
132
|
+
if (maxFiles !== config.maxFilesForAnalysis) {
|
|
133
|
+
existingConfig.maxFilesForAnalysis = maxFiles;
|
|
134
|
+
updated = true;
|
|
135
|
+
}
|
|
136
|
+
if (updated) {
|
|
137
|
+
writeFileSync(configPath, JSON.stringify(existingConfig, null, 2) + "\n");
|
|
138
|
+
steps.push(`Updated .repomemory.json (embeddings: ${embeddingProvider || "unchanged"}, maxFiles: ${maxFiles})`);
|
|
139
|
+
}
|
|
140
|
+
if (!store.exists()) {
|
|
141
|
+
store.scaffold();
|
|
142
|
+
store.writeIndex(STARTER_INDEX);
|
|
143
|
+
steps.push("Initialized .context/ directory");
|
|
63
144
|
}
|
|
64
145
|
else {
|
|
65
|
-
|
|
146
|
+
console.log(chalk.dim(`${currentStep}/${totalSteps} .context/ already exists.`));
|
|
66
147
|
}
|
|
67
|
-
writeDefaultConfigFile(repoRoot, config.provider, config.model, embeddingProvider);
|
|
68
|
-
steps.push(`Initialized .context/ directory (embeddings: ${embeddingLabel})`);
|
|
69
148
|
}
|
|
70
|
-
|
|
71
|
-
|
|
149
|
+
// Update in-memory config for analysis
|
|
150
|
+
config.maxFilesForAnalysis = maxFiles;
|
|
151
|
+
if (embeddingProvider) {
|
|
152
|
+
config.embeddingProvider = embeddingProvider;
|
|
72
153
|
}
|
|
73
154
|
// Step 2: Configure Claude Code if possible
|
|
74
155
|
currentStep++;
|
|
@@ -86,7 +167,7 @@ export async function goCommand(options) {
|
|
|
86
167
|
console.log(chalk.cyan(`${currentStep}/${totalSteps}`) + " Adding MCP server to Claude Code...");
|
|
87
168
|
try {
|
|
88
169
|
await setupCommand("claude", { dir: repoRoot });
|
|
89
|
-
steps.push("Configured Claude Code MCP server");
|
|
170
|
+
steps.push("Configured Claude Code MCP server + post-commit hook");
|
|
90
171
|
claudeConfigured = true;
|
|
91
172
|
}
|
|
92
173
|
catch {
|
|
@@ -94,7 +175,7 @@ export async function goCommand(options) {
|
|
|
94
175
|
}
|
|
95
176
|
}
|
|
96
177
|
else {
|
|
97
|
-
console.log(chalk.dim(`${currentStep}/${totalSteps} Claude Code already configured
|
|
178
|
+
console.log(chalk.dim(`${currentStep}/${totalSteps} Claude Code already configured.`));
|
|
98
179
|
claudeConfigured = true;
|
|
99
180
|
}
|
|
100
181
|
}
|
package/dist/commands/go.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/commands/go.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/commands/go.ts"],"names":[],"mappings":"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"}
|