repomemory 1.4.3 → 1.5.1
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 +92 -29
- 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,iBAoOA"}
|
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,97 @@ 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
|
-
if
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (
|
|
54
|
-
|
|
48
|
+
// Check if context needs populating — this is the real "first setup" signal
|
|
49
|
+
const existingEntries = store.exists() ? store.listEntries() : [];
|
|
50
|
+
const needsSetup = existingEntries.filter((e) => e.category === "facts").length === 0;
|
|
51
|
+
// Determine embedding provider — ask if context is empty (unless CLI flag provided)
|
|
52
|
+
let embeddingProvider = options.embeddingProvider;
|
|
53
|
+
if (!embeddingProvider && needsSetup) {
|
|
54
|
+
const embeddingKeys = [];
|
|
55
|
+
if (process.env.OPENAI_API_KEY) {
|
|
56
|
+
embeddingKeys.push({ provider: "openai", label: "OpenAI (text-embedding-3-small)" });
|
|
55
57
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
embeddingLabel = "openai (auto-detected from OPENAI_API_KEY)";
|
|
58
|
+
if (process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY || process.env.GOOGLE_GENERATIVE_AI_API_KEY) {
|
|
59
|
+
embeddingKeys.push({ provider: "gemini", label: "Gemini (text-embedding-004)" });
|
|
59
60
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
if (embeddingKeys.length > 0) {
|
|
62
|
+
const embeddingChoice = await p.select({
|
|
63
|
+
message: "Embedding provider for semantic search?",
|
|
64
|
+
options: [
|
|
65
|
+
...embeddingKeys.map((k) => ({ value: k.provider, label: k.label })),
|
|
66
|
+
{ value: "none", label: "None", hint: "Keyword search only \u2014 no API costs" },
|
|
67
|
+
],
|
|
68
|
+
});
|
|
69
|
+
if (p.isCancel(embeddingChoice)) {
|
|
70
|
+
p.cancel("Setup cancelled.");
|
|
71
|
+
process.exit(0);
|
|
72
|
+
}
|
|
73
|
+
embeddingProvider = embeddingChoice === "none" ? undefined : embeddingChoice;
|
|
63
74
|
}
|
|
64
75
|
else {
|
|
65
|
-
|
|
76
|
+
console.log(chalk.dim(`${currentStep}/${totalSteps} No embedding API keys found. Using keyword search.`));
|
|
77
|
+
console.log(chalk.dim(" Set OPENAI_API_KEY or GEMINI_API_KEY to enable semantic search."));
|
|
66
78
|
}
|
|
67
|
-
writeDefaultConfigFile(repoRoot, config.provider, config.model, embeddingProvider);
|
|
68
|
-
steps.push(`Initialized .context/ directory (embeddings: ${embeddingLabel})`);
|
|
69
79
|
}
|
|
70
|
-
else {
|
|
71
|
-
|
|
80
|
+
else if (!options.embeddingProvider) {
|
|
81
|
+
embeddingProvider = config.embeddingProvider;
|
|
82
|
+
}
|
|
83
|
+
// Determine max files for analysis — ask if context is empty
|
|
84
|
+
let maxFiles = config.maxFilesForAnalysis;
|
|
85
|
+
if (needsSetup) {
|
|
86
|
+
const maxFilesChoice = await p.select({
|
|
87
|
+
message: `Max files to analyze?`,
|
|
88
|
+
options: [
|
|
89
|
+
{ value: "80", label: "80 (default)", hint: "Fast, covers key files" },
|
|
90
|
+
{ value: "150", label: "150", hint: "Good for medium repos" },
|
|
91
|
+
{ value: "300", label: "300", hint: "Thorough, slower analysis" },
|
|
92
|
+
],
|
|
93
|
+
});
|
|
94
|
+
if (p.isCancel(maxFilesChoice)) {
|
|
95
|
+
p.cancel("Setup cancelled.");
|
|
96
|
+
process.exit(0);
|
|
97
|
+
}
|
|
98
|
+
maxFiles = parseInt(maxFilesChoice, 10);
|
|
99
|
+
}
|
|
100
|
+
// Scaffold .context/ if missing
|
|
101
|
+
if (!store.exists()) {
|
|
102
|
+
store.scaffold();
|
|
103
|
+
store.writeIndex(STARTER_INDEX);
|
|
104
|
+
}
|
|
105
|
+
// Write or update config with chosen settings
|
|
106
|
+
console.log(chalk.cyan(`${currentStep}/${totalSteps}`) + " Configuring .repomemory.json...");
|
|
107
|
+
let existingConfig = {};
|
|
108
|
+
if (existsSync(configPath)) {
|
|
109
|
+
try {
|
|
110
|
+
existingConfig = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
existingConfig = {};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Always apply the chosen/detected settings
|
|
117
|
+
existingConfig.provider = existingConfig.provider || config.provider;
|
|
118
|
+
existingConfig.model = options.model || existingConfig.model || config.model;
|
|
119
|
+
existingConfig.contextDir = existingConfig.contextDir || config.contextDir;
|
|
120
|
+
existingConfig.maxFilesForAnalysis = maxFiles;
|
|
121
|
+
existingConfig.maxGitCommits = existingConfig.maxGitCommits || config.maxGitCommits;
|
|
122
|
+
existingConfig.autoIndex = existingConfig.autoIndex ?? config.autoIndex;
|
|
123
|
+
if (!existingConfig.ignorePatterns)
|
|
124
|
+
existingConfig.ignorePatterns = [];
|
|
125
|
+
if (!existingConfig.keyFilePatterns)
|
|
126
|
+
existingConfig.keyFilePatterns = [];
|
|
127
|
+
if (embeddingProvider) {
|
|
128
|
+
existingConfig.embeddingProvider = embeddingProvider;
|
|
129
|
+
}
|
|
130
|
+
writeFileSync(configPath, JSON.stringify(existingConfig, null, 2) + "\n");
|
|
131
|
+
const embeddingLabel = embeddingProvider || existingConfig.embeddingProvider || "none";
|
|
132
|
+
steps.push(`Configured (embeddings: ${embeddingLabel}, maxFiles: ${maxFiles})`);
|
|
133
|
+
// Update in-memory config for analysis
|
|
134
|
+
config.maxFilesForAnalysis = maxFiles;
|
|
135
|
+
if (embeddingProvider) {
|
|
136
|
+
config.embeddingProvider = embeddingProvider;
|
|
72
137
|
}
|
|
73
138
|
// Step 2: Configure Claude Code if possible
|
|
74
139
|
currentStep++;
|
|
@@ -86,7 +151,7 @@ export async function goCommand(options) {
|
|
|
86
151
|
console.log(chalk.cyan(`${currentStep}/${totalSteps}`) + " Adding MCP server to Claude Code...");
|
|
87
152
|
try {
|
|
88
153
|
await setupCommand("claude", { dir: repoRoot });
|
|
89
|
-
steps.push("Configured Claude Code MCP server");
|
|
154
|
+
steps.push("Configured Claude Code MCP server + post-commit hook");
|
|
90
155
|
claudeConfigured = true;
|
|
91
156
|
}
|
|
92
157
|
catch {
|
|
@@ -94,7 +159,7 @@ export async function goCommand(options) {
|
|
|
94
159
|
}
|
|
95
160
|
}
|
|
96
161
|
else {
|
|
97
|
-
console.log(chalk.dim(`${currentStep}/${totalSteps} Claude Code already configured
|
|
162
|
+
console.log(chalk.dim(`${currentStep}/${totalSteps} Claude Code already configured.`));
|
|
98
163
|
claudeConfigured = true;
|
|
99
164
|
}
|
|
100
165
|
}
|
|
@@ -107,9 +172,7 @@ export async function goCommand(options) {
|
|
|
107
172
|
}
|
|
108
173
|
// Step 3: Run analyze if context is mostly empty
|
|
109
174
|
currentStep++;
|
|
110
|
-
const
|
|
111
|
-
const factsCount = entries.filter((e) => e.category === "facts").length;
|
|
112
|
-
const needsAnalysis = factsCount === 0 && !options.skipAnalyze;
|
|
175
|
+
const needsAnalysis = needsSetup && !options.skipAnalyze;
|
|
113
176
|
if (needsAnalysis) {
|
|
114
177
|
const hasKey = await validateApiKey(config);
|
|
115
178
|
if (hasKey) {
|
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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"}
|