@sudocode-ai/cli 0.1.4 → 0.1.6
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/merge-commands.d.ts +42 -0
- package/dist/cli/merge-commands.d.ts.map +1 -0
- package/dist/cli/merge-commands.js +401 -0
- package/dist/cli/merge-commands.js.map +1 -0
- package/dist/cli/server-commands.d.ts.map +1 -1
- package/dist/cli/server-commands.js +12 -9
- package/dist/cli/server-commands.js.map +1 -1
- package/dist/cli/update-commands.d.ts +4 -0
- package/dist/cli/update-commands.d.ts.map +1 -1
- package/dist/cli/update-commands.js +21 -1
- package/dist/cli/update-commands.js.map +1 -1
- package/dist/cli.js +51 -4
- package/dist/cli.js.map +1 -1
- package/dist/import.d.ts.map +1 -1
- package/dist/import.js +2 -0
- package/dist/import.js.map +1 -1
- package/dist/merge-resolver.d.ts +85 -0
- package/dist/merge-resolver.d.ts.map +1 -0
- package/dist/merge-resolver.js +301 -0
- package/dist/merge-resolver.js.map +1 -0
- package/dist/operations/feedback.d.ts +2 -0
- package/dist/operations/feedback.d.ts.map +1 -1
- package/dist/operations/feedback.js +24 -9
- package/dist/operations/feedback.js.map +1 -1
- package/dist/operations/issues.d.ts.map +1 -1
- package/dist/operations/issues.js +29 -10
- package/dist/operations/issues.js.map +1 -1
- package/dist/operations/relationships.d.ts.map +1 -1
- package/dist/operations/relationships.js +34 -12
- package/dist/operations/relationships.js.map +1 -1
- package/dist/update-checker.d.ts +4 -0
- package/dist/update-checker.d.ts.map +1 -1
- package/dist/update-checker.js +52 -10
- package/dist/update-checker.js.map +1 -1
- package/package.json +11 -8
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI handlers for merge conflict resolution
|
|
3
|
+
*/
|
|
4
|
+
import type Database from "better-sqlite3";
|
|
5
|
+
export interface CommandContext {
|
|
6
|
+
db: Database.Database;
|
|
7
|
+
outputDir: string;
|
|
8
|
+
jsonOutput: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface ResolveConflictsOptions {
|
|
11
|
+
dryRun?: boolean;
|
|
12
|
+
verbose?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface MergeDriverOptions {
|
|
15
|
+
base: string;
|
|
16
|
+
ours: string;
|
|
17
|
+
theirs: string;
|
|
18
|
+
markerSize?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface InitMergeDriverOptions {
|
|
21
|
+
global?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface RemoveMergeDriverOptions {
|
|
24
|
+
global?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Handle manual conflict resolution command
|
|
28
|
+
*/
|
|
29
|
+
export declare function handleResolveConflicts(ctx: CommandContext, options: ResolveConflictsOptions): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Handle git merge driver command
|
|
32
|
+
*/
|
|
33
|
+
export declare function handleMergeDriver(options: MergeDriverOptions): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Handle init merge driver setup command
|
|
36
|
+
*/
|
|
37
|
+
export declare function handleInitMergeDriver(options: InitMergeDriverOptions): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Handle remove merge driver command
|
|
40
|
+
*/
|
|
41
|
+
export declare function handleRemoveMergeDriver(options: RemoveMergeDriverOptions): Promise<void>;
|
|
42
|
+
//# sourceMappingURL=merge-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-commands.d.ts","sourceRoot":"","sources":["../../src/cli/merge-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAU3C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAiBD;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAsDf;AAyGD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAkFf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CA8Ff"}
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI handlers for merge conflict resolution
|
|
3
|
+
*/
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
import * as fs from "fs";
|
|
6
|
+
import * as path from "path";
|
|
7
|
+
import * as os from "os";
|
|
8
|
+
import { hasGitConflictMarkers, parseMergeConflictFile, resolveEntities, mergeThreeWay, } from "../merge-resolver.js";
|
|
9
|
+
import { readJSONL, writeJSONL } from "../jsonl.js";
|
|
10
|
+
import { importFromJSONL } from "../import.js";
|
|
11
|
+
/**
|
|
12
|
+
* Handle manual conflict resolution command
|
|
13
|
+
*/
|
|
14
|
+
export async function handleResolveConflicts(ctx, options) {
|
|
15
|
+
const issuesPath = path.join(ctx.outputDir, "issues.jsonl");
|
|
16
|
+
const specsPath = path.join(ctx.outputDir, "specs.jsonl");
|
|
17
|
+
// Check for conflicts
|
|
18
|
+
const issuesHasConflict = fs.existsSync(issuesPath) && hasGitConflictMarkers(issuesPath);
|
|
19
|
+
const specsHasConflict = fs.existsSync(specsPath) && hasGitConflictMarkers(specsPath);
|
|
20
|
+
if (!issuesHasConflict && !specsHasConflict) {
|
|
21
|
+
if (!ctx.jsonOutput) {
|
|
22
|
+
console.log(chalk.green("✓ No merge conflicts found in JSONL files"));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
console.log(JSON.stringify({ success: true, conflicts: 0 }));
|
|
26
|
+
}
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const results = [];
|
|
30
|
+
// Resolve issues.jsonl
|
|
31
|
+
if (issuesHasConflict) {
|
|
32
|
+
if (!ctx.jsonOutput && !options.dryRun) {
|
|
33
|
+
console.log(chalk.blue("Resolving conflicts in issues.jsonl..."));
|
|
34
|
+
}
|
|
35
|
+
const result = await resolveFile(issuesPath, "issue", options);
|
|
36
|
+
results.push({ file: "issues.jsonl", ...result });
|
|
37
|
+
}
|
|
38
|
+
// Resolve specs.jsonl
|
|
39
|
+
if (specsHasConflict) {
|
|
40
|
+
if (!ctx.jsonOutput && !options.dryRun) {
|
|
41
|
+
console.log(chalk.blue("Resolving conflicts in specs.jsonl..."));
|
|
42
|
+
}
|
|
43
|
+
const result = await resolveFile(specsPath, "spec", options);
|
|
44
|
+
results.push({ file: "specs.jsonl", ...result });
|
|
45
|
+
}
|
|
46
|
+
// Re-import to database if not dry-run
|
|
47
|
+
if (!options.dryRun) {
|
|
48
|
+
await importFromJSONL(ctx.db, { inputDir: ctx.outputDir });
|
|
49
|
+
if (!ctx.jsonOutput) {
|
|
50
|
+
console.log(chalk.green("\n✓ Re-imported to database"));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Output results
|
|
54
|
+
if (ctx.jsonOutput) {
|
|
55
|
+
console.log(JSON.stringify({ success: true, results }));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
printResolveResults(results, options);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolve conflicts in a single JSONL file
|
|
63
|
+
*/
|
|
64
|
+
async function resolveFile(filePath, entityType, options) {
|
|
65
|
+
// Read file with conflict markers
|
|
66
|
+
const content = fs.readFileSync(filePath, "utf8");
|
|
67
|
+
// Parse conflicts
|
|
68
|
+
const sections = parseMergeConflictFile(content);
|
|
69
|
+
// Extract all entities (from both clean and conflict sections)
|
|
70
|
+
const allEntities = [];
|
|
71
|
+
for (const section of sections) {
|
|
72
|
+
if (section.type === "clean") {
|
|
73
|
+
for (const line of section.lines) {
|
|
74
|
+
if (line.trim()) {
|
|
75
|
+
try {
|
|
76
|
+
allEntities.push(JSON.parse(line));
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
console.warn(chalk.yellow(`Warning: Skipping malformed line: ${line.slice(0, 50)}...`));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
// Conflict section - include both ours and theirs
|
|
86
|
+
for (const line of [...(section.ours || []), ...(section.theirs || [])]) {
|
|
87
|
+
if (line.trim()) {
|
|
88
|
+
try {
|
|
89
|
+
allEntities.push(JSON.parse(line));
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
console.warn(chalk.yellow(`Warning: Skipping malformed line: ${line.slice(0, 50)}...`));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Resolve conflicts
|
|
99
|
+
const { entities: resolved, stats } = resolveEntities(allEntities, {
|
|
100
|
+
verbose: options.verbose,
|
|
101
|
+
});
|
|
102
|
+
// Write back if not dry-run
|
|
103
|
+
if (!options.dryRun) {
|
|
104
|
+
await writeJSONL(filePath, resolved);
|
|
105
|
+
}
|
|
106
|
+
return { stats, entityType };
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Print resolution results to console
|
|
110
|
+
*/
|
|
111
|
+
function printResolveResults(results, options) {
|
|
112
|
+
for (const result of results) {
|
|
113
|
+
const { file, stats, entityType } = result;
|
|
114
|
+
console.log(chalk.bold(`\n${file}:`));
|
|
115
|
+
console.log(` Input: ${stats.totalInput} ${entityType}s`);
|
|
116
|
+
console.log(` Output: ${stats.totalOutput} ${entityType}s`);
|
|
117
|
+
if (stats.conflicts.length > 0) {
|
|
118
|
+
console.log(chalk.yellow(` Resolved ${stats.conflicts.length} conflict(s):`));
|
|
119
|
+
for (const conflict of stats.conflicts) {
|
|
120
|
+
if (options.verbose) {
|
|
121
|
+
console.log(` - ${conflict.action}`);
|
|
122
|
+
console.log(` UUID: ${conflict.uuid}`);
|
|
123
|
+
console.log(` IDs: ${conflict.originalIds.join(", ")} → ${conflict.resolvedIds.join(", ")}`);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
console.log(` - ${conflict.action}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (options.dryRun) {
|
|
131
|
+
console.log(chalk.gray(" (dry-run - no changes written)"));
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
console.log(chalk.green(" ✓ Resolved and written"));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Handle git merge driver command
|
|
140
|
+
*/
|
|
141
|
+
export async function handleMergeDriver(options) {
|
|
142
|
+
const logPath = path.join(process.cwd(), ".sudocode", "merge-driver.log");
|
|
143
|
+
try {
|
|
144
|
+
// Read all three versions
|
|
145
|
+
const baseEntities = fs.existsSync(options.base)
|
|
146
|
+
? await readJSONL(options.base, { skipErrors: true })
|
|
147
|
+
: [];
|
|
148
|
+
const ourEntities = await readJSONL(options.ours, { skipErrors: true });
|
|
149
|
+
const theirEntities = await readJSONL(options.theirs, {
|
|
150
|
+
skipErrors: true,
|
|
151
|
+
});
|
|
152
|
+
// Perform three-way merge
|
|
153
|
+
const { entities: merged } = mergeThreeWay(baseEntities, ourEntities, theirEntities);
|
|
154
|
+
// Write result to output (ours file)
|
|
155
|
+
await writeJSONL(options.ours, merged);
|
|
156
|
+
// Exit 0 = success, git will use this result
|
|
157
|
+
// Note: We don't log successful merges to avoid cluttering the repo
|
|
158
|
+
process.exit(0);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
// Only log on failure for debugging
|
|
162
|
+
const logDir = path.dirname(logPath);
|
|
163
|
+
if (!fs.existsSync(logDir)) {
|
|
164
|
+
fs.mkdirSync(logDir, { recursive: true });
|
|
165
|
+
}
|
|
166
|
+
fs.appendFileSync(logPath, `[${new Date().toISOString()}] Merge failed for: ${options.ours}\n` +
|
|
167
|
+
` Error: ${error instanceof Error ? error.message : String(error)}\n` +
|
|
168
|
+
` Base: ${options.base}\n` +
|
|
169
|
+
` Ours: ${options.ours}\n` +
|
|
170
|
+
` Theirs: ${options.theirs}\n\n`);
|
|
171
|
+
// Exit 1 = failure, git will leave conflict markers
|
|
172
|
+
console.error("Merge driver failed:", error);
|
|
173
|
+
process.exit(1);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Handle init merge driver setup command
|
|
178
|
+
*/
|
|
179
|
+
export async function handleInitMergeDriver(options) {
|
|
180
|
+
const configFile = options.global
|
|
181
|
+
? path.join(os.homedir(), ".gitconfig")
|
|
182
|
+
: path.join(process.cwd(), ".git", "config");
|
|
183
|
+
// Check if .git exists (not in global mode)
|
|
184
|
+
if (!options.global && !fs.existsSync(path.join(process.cwd(), ".git"))) {
|
|
185
|
+
console.error(chalk.red("Error: Not in a git repository"));
|
|
186
|
+
console.error("Run this command from a git repository, or use --global");
|
|
187
|
+
process.exit(1);
|
|
188
|
+
}
|
|
189
|
+
// Add merge driver config
|
|
190
|
+
const configSection = `
|
|
191
|
+
[merge "sudocode-jsonl"]
|
|
192
|
+
\tname = Sudocode JSONL automatic merge resolver
|
|
193
|
+
\tdriver = sudocode merge-driver --base=%O --ours=%A --theirs=%B
|
|
194
|
+
\trecursive = binary
|
|
195
|
+
`;
|
|
196
|
+
// Check if already configured
|
|
197
|
+
if (fs.existsSync(configFile)) {
|
|
198
|
+
const content = fs.readFileSync(configFile, "utf8");
|
|
199
|
+
if (content.includes('[merge "sudocode-jsonl"]')) {
|
|
200
|
+
console.log(chalk.yellow("Merge driver already configured in git config"));
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
fs.appendFileSync(configFile, configSection);
|
|
204
|
+
console.log(chalk.green(`✓ Added merge driver to ${configFile}`));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
fs.writeFileSync(configFile, configSection);
|
|
209
|
+
console.log(chalk.green(`✓ Created ${configFile} with merge driver`));
|
|
210
|
+
}
|
|
211
|
+
// Add .gitattributes (only for local, not global)
|
|
212
|
+
if (!options.global) {
|
|
213
|
+
const gitattributesPath = path.join(process.cwd(), ".gitattributes");
|
|
214
|
+
const attributesLine = ".sudocode/*.jsonl merge=sudocode-jsonl\n";
|
|
215
|
+
if (fs.existsSync(gitattributesPath)) {
|
|
216
|
+
const content = fs.readFileSync(gitattributesPath, "utf8");
|
|
217
|
+
if (!content.includes("merge=sudocode-jsonl")) {
|
|
218
|
+
fs.appendFileSync(gitattributesPath, attributesLine);
|
|
219
|
+
console.log(chalk.green("✓ Added merge driver to .gitattributes"));
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
console.log(chalk.yellow("Merge driver already configured in .gitattributes"));
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
fs.writeFileSync(gitattributesPath, attributesLine);
|
|
227
|
+
console.log(chalk.green("✓ Created .gitattributes with merge driver"));
|
|
228
|
+
}
|
|
229
|
+
// Add merge-driver.log to .gitignore
|
|
230
|
+
const gitignorePath = path.join(process.cwd(), ".gitignore");
|
|
231
|
+
const ignoreEntry = ".sudocode/merge-driver.log";
|
|
232
|
+
if (fs.existsSync(gitignorePath)) {
|
|
233
|
+
const content = fs.readFileSync(gitignorePath, "utf8");
|
|
234
|
+
if (!content.includes(ignoreEntry)) {
|
|
235
|
+
fs.appendFileSync(gitignorePath, `\n${ignoreEntry}\n`);
|
|
236
|
+
console.log(chalk.green("✓ Added merge-driver.log to .gitignore"));
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
fs.writeFileSync(gitignorePath, `${ignoreEntry}\n`);
|
|
241
|
+
console.log(chalk.green("✓ Created .gitignore with merge-driver.log"));
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// Test the setup
|
|
245
|
+
console.log(chalk.bold("\nTesting merge driver setup..."));
|
|
246
|
+
const testResult = await testMergeDriver();
|
|
247
|
+
if (testResult.success) {
|
|
248
|
+
console.log(chalk.green("✓ Merge driver is working correctly"));
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
console.log(chalk.red("✗ Merge driver test failed:"));
|
|
252
|
+
console.log(chalk.red(` ${testResult.error}`));
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Handle remove merge driver command
|
|
257
|
+
*/
|
|
258
|
+
export async function handleRemoveMergeDriver(options) {
|
|
259
|
+
const configFile = options.global
|
|
260
|
+
? path.join(os.homedir(), ".gitconfig")
|
|
261
|
+
: path.join(process.cwd(), ".git", "config");
|
|
262
|
+
// Check if .git exists (not in global mode)
|
|
263
|
+
if (!options.global && !fs.existsSync(path.join(process.cwd(), ".git"))) {
|
|
264
|
+
console.error(chalk.red("Error: Not in a git repository"));
|
|
265
|
+
console.error("Run this command from a git repository, or use --global");
|
|
266
|
+
process.exit(1);
|
|
267
|
+
}
|
|
268
|
+
let removed = false;
|
|
269
|
+
// Remove from git config
|
|
270
|
+
if (fs.existsSync(configFile)) {
|
|
271
|
+
const content = fs.readFileSync(configFile, "utf8");
|
|
272
|
+
if (content.includes('[merge "sudocode-jsonl"]')) {
|
|
273
|
+
// Remove the merge driver section
|
|
274
|
+
const lines = content.split("\n");
|
|
275
|
+
const filtered = [];
|
|
276
|
+
let inSection = false;
|
|
277
|
+
for (const line of lines) {
|
|
278
|
+
if (line.trim() === '[merge "sudocode-jsonl"]') {
|
|
279
|
+
inSection = true;
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
// Check if we've hit the next section
|
|
283
|
+
if (inSection && line.startsWith("[") && !line.includes("sudocode")) {
|
|
284
|
+
inSection = false;
|
|
285
|
+
}
|
|
286
|
+
if (!inSection) {
|
|
287
|
+
filtered.push(line);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
fs.writeFileSync(configFile, filtered.join("\n"));
|
|
291
|
+
console.log(chalk.green(`✓ Removed merge driver from ${configFile}`));
|
|
292
|
+
removed = true;
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
console.log(chalk.yellow("Merge driver not found in git config"));
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
console.log(chalk.yellow("Git config file not found"));
|
|
300
|
+
}
|
|
301
|
+
// Remove from .gitattributes (only for local, not global)
|
|
302
|
+
if (!options.global) {
|
|
303
|
+
const gitattributesPath = path.join(process.cwd(), ".gitattributes");
|
|
304
|
+
if (fs.existsSync(gitattributesPath)) {
|
|
305
|
+
const content = fs.readFileSync(gitattributesPath, "utf8");
|
|
306
|
+
if (content.includes("merge=sudocode-jsonl")) {
|
|
307
|
+
const lines = content
|
|
308
|
+
.split("\n")
|
|
309
|
+
.filter((line) => !line.includes("merge=sudocode-jsonl"));
|
|
310
|
+
// Remove file if it's now empty, otherwise update it
|
|
311
|
+
if (lines.every((line) => !line.trim())) {
|
|
312
|
+
fs.unlinkSync(gitattributesPath);
|
|
313
|
+
console.log(chalk.green("✓ Removed .gitattributes (was only used for merge driver)"));
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
fs.writeFileSync(gitattributesPath, lines.join("\n"));
|
|
317
|
+
console.log(chalk.green("✓ Removed merge driver from .gitattributes"));
|
|
318
|
+
}
|
|
319
|
+
removed = true;
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
console.log(chalk.yellow("Merge driver not found in .gitattributes"));
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
if (removed) {
|
|
327
|
+
console.log(chalk.cyan("\n✓ Merge driver removed. Git will now use default conflict handling for JSONL files."));
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
console.log(chalk.yellow("\nNo merge driver configuration found to remove."));
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Test merge driver setup
|
|
335
|
+
*/
|
|
336
|
+
async function testMergeDriver() {
|
|
337
|
+
// Create temp files for testing
|
|
338
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "sudocode-merge-test-"));
|
|
339
|
+
// Save original process.exit
|
|
340
|
+
const originalExit = process.exit;
|
|
341
|
+
let exitCode;
|
|
342
|
+
try {
|
|
343
|
+
const base = path.join(tmpDir, "base.jsonl");
|
|
344
|
+
const ours = path.join(tmpDir, "ours.jsonl");
|
|
345
|
+
const theirs = path.join(tmpDir, "theirs.jsonl");
|
|
346
|
+
// Write test data
|
|
347
|
+
const testEntity = {
|
|
348
|
+
id: "TEST-001",
|
|
349
|
+
uuid: "test-uuid-123",
|
|
350
|
+
title: "Test",
|
|
351
|
+
content: "Test",
|
|
352
|
+
created_at: "2025-01-01T00:00:00Z",
|
|
353
|
+
updated_at: "2025-01-01T00:00:00Z",
|
|
354
|
+
relationships: [],
|
|
355
|
+
tags: [],
|
|
356
|
+
};
|
|
357
|
+
await writeJSONL(base, [testEntity]);
|
|
358
|
+
await writeJSONL(ours, [testEntity]);
|
|
359
|
+
await writeJSONL(theirs, [testEntity]);
|
|
360
|
+
// Mock process.exit to capture exit code
|
|
361
|
+
process.exit = ((code) => {
|
|
362
|
+
exitCode = code;
|
|
363
|
+
throw new Error(`process.exit called with code ${code}`);
|
|
364
|
+
});
|
|
365
|
+
// Test merge driver
|
|
366
|
+
try {
|
|
367
|
+
await handleMergeDriver({ base, ours, theirs });
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
// Expected - handleMergeDriver calls process.exit
|
|
371
|
+
if (error instanceof Error && !error.message.includes("process.exit")) {
|
|
372
|
+
throw error;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
// Restore process.exit
|
|
376
|
+
process.exit = originalExit;
|
|
377
|
+
// Check exit code
|
|
378
|
+
if (exitCode !== 0) {
|
|
379
|
+
throw new Error(`Merge driver exited with code ${exitCode}`);
|
|
380
|
+
}
|
|
381
|
+
// Check result
|
|
382
|
+
const result = await readJSONL(ours);
|
|
383
|
+
if (result.length !== 1 || result[0].id !== "TEST-001") {
|
|
384
|
+
throw new Error("Unexpected merge result");
|
|
385
|
+
}
|
|
386
|
+
return { success: true };
|
|
387
|
+
}
|
|
388
|
+
catch (error) {
|
|
389
|
+
return {
|
|
390
|
+
success: false,
|
|
391
|
+
error: error instanceof Error ? error.message : String(error),
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
finally {
|
|
395
|
+
// Restore process.exit
|
|
396
|
+
process.exit = originalExit;
|
|
397
|
+
// Cleanup
|
|
398
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
//# sourceMappingURL=merge-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-commands.js","sourceRoot":"","sources":["../../src/cli/merge-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AA2C/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAmB,EACnB,OAAgC;IAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAE1D,sBAAsB;IACtB,MAAM,iBAAiB,GACrB,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACjE,MAAM,gBAAgB,GACpB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAE/D,IAAI,CAAC,iBAAiB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAgD,EAAE,CAAC;IAEhE,uBAAuB;IACvB,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,sBAAsB;IACtB,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CACxB,QAAgB,EAChB,UAA4B,EAC5B,OAAgC;IAEhC,kCAAkC;IAClC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAElD,kBAAkB;IAClB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEjD,+DAA+D;IAC/D,MAAM,WAAW,GAAkB,EAAE,CAAC;IAEtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChB,IAAI,CAAC;wBACH,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBACrC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,qCAAqC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAC5D,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kDAAkD;YAClD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBACxE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChB,IAAI,CAAC;wBACH,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBACrC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,qCAAqC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAC5D,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,WAAW,EAAE;QACjE,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,4BAA4B;IAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,OAAoD,EACpD,OAAgC;IAEhC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,UAAU,IAAI,UAAU,GAAG,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,WAAW,IAAI,UAAU,GAAG,CAAC,CAAC;QAE7D,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,cAAc,KAAK,CAAC,SAAS,CAAC,MAAM,eAAe,CAAC,CAClE,CAAC;YAEF,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5C,OAAO,CAAC,GAAG,CACT,cAAc,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA2B;IAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAE1E,IAAI,CAAC;QACH,0BAA0B;QAC1B,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9C,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YACrD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;YACpD,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa,CACxC,YAAY,EACZ,WAAW,EACX,aAAa,CACd,CAAC;QAEF,qCAAqC;QACrC,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEvC,6CAA6C;QAC7C,oEAAoE;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oCAAoC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,EAAE,CAAC,cAAc,CACf,OAAO,EACP,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,uBAAuB,OAAO,CAAC,IAAI,IAAI;YACjE,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;YACtE,WAAW,OAAO,CAAC,IAAI,IAAI;YAC3B,WAAW,OAAO,CAAC,IAAI,IAAI;YAC3B,aAAa,OAAO,CAAC,MAAM,MAAM,CACpC,CAAC;QAEF,oDAAoD;QACpD,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA+B;IAE/B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM;QAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/C,4CAA4C;IAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0BAA0B;IAC1B,MAAM,aAAa,GAAG;;;;;CAKvB,CAAC;IAEA,8BAA8B;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAC9D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,UAAU,oBAAoB,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,kDAAkD;IAClD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,0CAA0C,CAAC;QAElE,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBAC9C,EAAE,CAAC,cAAc,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,qCAAqC;QACrC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,4BAA4B,CAAC;QAEjD,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,EAAE,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,WAAW,IAAI,CAAC,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,WAAW,IAAI,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAC;IAE3C,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAiC;IAEjC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM;QAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/C,4CAA4C;IAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,yBAAyB;IACzB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEpD,IAAI,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACjD,kCAAkC;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,0BAA0B,EAAE,CAAC;oBAC/C,SAAS,GAAG,IAAI,CAAC;oBACjB,SAAS;gBACX,CAAC;gBAED,sCAAsC;gBACtC,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACpE,SAAS,GAAG,KAAK,CAAC;gBACpB,CAAC;gBAED,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,0DAA0D;IAC1D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAErE,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAE3D,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,OAAO;qBAClB,KAAK,CAAC,IAAI,CAAC;qBACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAE5D,qDAAqD;gBACrD,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBACxC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;oBACjC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,2DAA2D,CAC5D,CACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBACtD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAC1D,CAAC;gBACJ,CAAC;gBACD,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,uFAAuF,CACxF,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,kDAAkD,CAAC,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe;IAI5B,gCAAgC;IAChC,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE9E,6BAA6B;IAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,IAAI,QAA4B,CAAC;IAEjC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAEjD,kBAAkB;QAClB,MAAM,UAAU,GAAG;YACjB,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,sBAAsB;YAClC,UAAU,EAAE,sBAAsB;YAClC,aAAa,EAAE,EAAE;YACjB,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACrC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACrC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAEvC,yCAAyC;QACzC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE;YAChC,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAQ,CAAC;QAEV,oBAAoB;QACpB,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kDAAkD;YAClD,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;QAE5B,kBAAkB;QAClB,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,uBAAuB;QACvB,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;QAC5B,UAAU;QACV,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-commands.d.ts","sourceRoot":"","sources":["../../src/cli/server-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,GAAG,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAqBD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"server-commands.d.ts","sourceRoot":"","sources":["../../src/cli/server-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,GAAG,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAqBD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAwFf"}
|
|
@@ -27,16 +27,19 @@ async function isServerInstalled() {
|
|
|
27
27
|
*/
|
|
28
28
|
export async function handleServerStart(ctx, options) {
|
|
29
29
|
// Check for updates before starting server
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
// Skip if SUDOCODE_DISABLE_UPDATE_CHECK environment variable is set
|
|
31
|
+
if (process.env.SUDOCODE_DISABLE_UPDATE_CHECK !== "true") {
|
|
32
|
+
try {
|
|
33
|
+
const updateNotification = await getUpdateNotification();
|
|
34
|
+
if (updateNotification) {
|
|
35
|
+
console.log();
|
|
36
|
+
console.log(chalk.yellow(updateNotification));
|
|
37
|
+
console.log();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Silently ignore update check failures
|
|
36
42
|
}
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
// Silently ignore update check failures
|
|
40
43
|
}
|
|
41
44
|
// Check if server is installed first
|
|
42
45
|
const serverInstalled = await isServerInstalled();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-commands.js","sourceRoot":"","sources":["../../src/cli/server-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAa7D;;;GAGG;AACH,KAAK,UAAU,iBAAiB;IAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,uEAAuE;QACvE,QAAQ,CAAC,8CAA8C,EAAE;YACvD,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAmB,EACnB,OAA2B;IAE3B,2CAA2C;IAC3C,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"server-commands.js","sourceRoot":"","sources":["../../src/cli/server-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,8 @@ export declare function handleUpdateCheck(): Promise<void>;
|
|
|
9
9
|
* Handle update install command
|
|
10
10
|
*/
|
|
11
11
|
export declare function handleUpdate(): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Handle update dismiss command
|
|
14
|
+
*/
|
|
15
|
+
export declare function handleUpdateDismiss(): Promise<void>;
|
|
12
16
|
//# sourceMappingURL=update-commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-commands.d.ts","sourceRoot":"","sources":["../../src/cli/update-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"update-commands.d.ts","sourceRoot":"","sources":["../../src/cli/update-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0BvD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA2ClD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAqBzD"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import chalk from "chalk";
|
|
5
5
|
import { execSync } from "child_process";
|
|
6
|
-
import { checkForUpdates } from "../update-checker.js";
|
|
6
|
+
import { checkForUpdates, dismissUpdate } from "../update-checker.js";
|
|
7
7
|
const PACKAGE_NAME = "@sudocode-ai/cli";
|
|
8
8
|
/**
|
|
9
9
|
* Handle update check command
|
|
@@ -75,4 +75,24 @@ export async function handleUpdate() {
|
|
|
75
75
|
process.exit(1);
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Handle update dismiss command
|
|
80
|
+
*/
|
|
81
|
+
export async function handleUpdateDismiss() {
|
|
82
|
+
const info = await checkForUpdates();
|
|
83
|
+
if (!info) {
|
|
84
|
+
console.log(chalk.yellow("Unable to check for updates"));
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (!info.updateAvailable) {
|
|
88
|
+
console.log(chalk.green("✓ Already on latest version:"), info.current);
|
|
89
|
+
console.log("No update notifications to dismiss");
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
dismissUpdate(info.latest);
|
|
93
|
+
console.log(chalk.green("✓ Update notifications dismissed for 30 days"));
|
|
94
|
+
console.log();
|
|
95
|
+
console.log(`You won't be notified about version ${info.latest} for the next 30 days`);
|
|
96
|
+
console.log("To update now, run:", chalk.cyan("sudocode update"));
|
|
97
|
+
}
|
|
78
98
|
//# sourceMappingURL=update-commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-commands.js","sourceRoot":"","sources":["../../src/cli/update-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"update-commands.js","sourceRoot":"","sources":["../../src/cli/update-commands.ts"],"names":[],"mappings":"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"}
|