@cluesmith/codev 3.0.0-rc.6 → 3.0.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/agent-farm/commands/architect.js +1 -1
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts +4 -1
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +5 -2
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +26 -10
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/servers/overview.d.ts.map +1 -1
- package/dist/agent-farm/servers/overview.js +8 -0
- package/dist/agent-farm/servers/overview.js.map +1 -1
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +12 -10
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +17 -18
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +1 -1
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +18 -17
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/roles.d.ts +11 -4
- package/dist/agent-farm/utils/roles.d.ts.map +1 -1
- package/dist/agent-farm/utils/roles.js +21 -6
- package/dist/agent-farm/utils/roles.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +21 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +14 -43
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +12 -42
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/config.d.ts +6 -9
- package/dist/commands/porch/config.d.ts.map +1 -1
- package/dist/commands/porch/config.js +12 -37
- package/dist/commands/porch/config.js.map +1 -1
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +57 -21
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts.map +1 -1
- package/dist/commands/porch/next.js +70 -8
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/commands/porch/prompts.d.ts.map +1 -1
- package/dist/commands/porch/prompts.js +13 -29
- package/dist/commands/porch/prompts.js.map +1 -1
- package/dist/commands/porch/protocol.d.ts +4 -3
- package/dist/commands/porch/protocol.d.ts.map +1 -1
- package/dist/commands/porch/protocol.js +21 -21
- package/dist/commands/porch/protocol.js.map +1 -1
- package/dist/commands/porch/types.d.ts +2 -2
- package/dist/commands/porch/types.d.ts.map +1 -1
- package/dist/commands/sync.d.ts +26 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +207 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/update.d.ts +15 -2
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +159 -202
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/config.d.ts +82 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +158 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/forge.d.ts +6 -6
- package/dist/lib/forge.d.ts.map +1 -1
- package/dist/lib/forge.js +7 -15
- package/dist/lib/forge.js.map +1 -1
- package/dist/lib/github.d.ts +1 -1
- package/dist/lib/github.js +2 -2
- package/dist/lib/github.js.map +1 -1
- package/dist/lib/skeleton.d.ts +15 -5
- package/dist/lib/skeleton.d.ts.map +1 -1
- package/dist/lib/skeleton.js +82 -7
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/lib/team-github.js +1 -1
- package/dist/lib/team-github.js.map +1 -1
- package/package.json +1 -1
- package/scripts/forge/gitea/repo-archive.sh +11 -0
- package/scripts/forge/github/repo-archive.sh +10 -0
- package/scripts/forge/gitlab/repo-archive.sh +12 -0
package/dist/commands/update.js
CHANGED
|
@@ -1,20 +1,121 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* codev update -
|
|
2
|
+
* codev update - Migrate config and refresh Claude-specific files.
|
|
3
|
+
*
|
|
4
|
+
* Two responsibilities:
|
|
5
|
+
* A. One-time migration (runs once, skipped on subsequent runs):
|
|
6
|
+
* 1. Move af-config.json → .codev/config.json
|
|
7
|
+
* 2. Clean unmodified skeleton files (using .update-hashes.json)
|
|
8
|
+
* 3. Preserve user-modified files as local overrides
|
|
9
|
+
* 4. Remove .update-hashes.json
|
|
10
|
+
*
|
|
11
|
+
* B. Claude-specific file refresh (runs every time):
|
|
12
|
+
* 1. Update CLAUDE.md, AGENTS.md, .claude/skills/ from package
|
|
3
13
|
*/
|
|
4
14
|
import * as fs from 'node:fs';
|
|
5
15
|
import * as path from 'node:path';
|
|
6
16
|
import { spawn } from 'node:child_process';
|
|
17
|
+
import { deepMerge } from '../lib/config.js';
|
|
7
18
|
import chalk from 'chalk';
|
|
8
|
-
import { getTemplatesDir,
|
|
9
|
-
import {
|
|
19
|
+
import { getTemplatesDir, hashFile, loadHashStore, } from '../lib/templates.js';
|
|
20
|
+
import { copySkills, copyRootFiles } from '../lib/scaffold.js';
|
|
10
21
|
/**
|
|
11
|
-
*
|
|
22
|
+
* Check if migration is needed (af-config.json exists or .update-hashes.json exists).
|
|
23
|
+
*/
|
|
24
|
+
function needsMigration(targetDir) {
|
|
25
|
+
return (fs.existsSync(path.join(targetDir, 'af-config.json')) ||
|
|
26
|
+
fs.existsSync(path.join(targetDir, 'codev', '.update-hashes.json')));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Run one-time migration from af-config.json to .codev/config.json
|
|
30
|
+
* and clean unmodified skeleton files.
|
|
31
|
+
*/
|
|
32
|
+
function runMigration(targetDir, dryRun, log) {
|
|
33
|
+
const cleaned = [];
|
|
34
|
+
const preserved = [];
|
|
35
|
+
log(chalk.bold('Running migration to .codev/ configuration...'));
|
|
36
|
+
log('');
|
|
37
|
+
// 1. Move af-config.json → .codev/config.json
|
|
38
|
+
const afConfigPath = path.join(targetDir, 'af-config.json');
|
|
39
|
+
const codevConfigDir = path.join(targetDir, '.codev');
|
|
40
|
+
const codevConfigPath = path.join(codevConfigDir, 'config.json');
|
|
41
|
+
if (fs.existsSync(afConfigPath)) {
|
|
42
|
+
if (!dryRun) {
|
|
43
|
+
if (!fs.existsSync(codevConfigDir)) {
|
|
44
|
+
fs.mkdirSync(codevConfigDir, { recursive: true });
|
|
45
|
+
}
|
|
46
|
+
if (!fs.existsSync(codevConfigPath)) {
|
|
47
|
+
// No .codev/config.json yet — move af-config.json there
|
|
48
|
+
fs.copyFileSync(afConfigPath, codevConfigPath);
|
|
49
|
+
fs.unlinkSync(afConfigPath);
|
|
50
|
+
log(chalk.blue(' ~ (migrated)'), 'af-config.json → .codev/config.json');
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// Both exist — merge af-config.json into .codev/config.json to preserve customizations
|
|
54
|
+
try {
|
|
55
|
+
const afContent = JSON.parse(fs.readFileSync(afConfigPath, 'utf-8'));
|
|
56
|
+
const existingContent = JSON.parse(fs.readFileSync(codevConfigPath, 'utf-8'));
|
|
57
|
+
// deepMerge imported at top of file
|
|
58
|
+
const merged = deepMerge(existingContent, afContent);
|
|
59
|
+
fs.writeFileSync(codevConfigPath, JSON.stringify(merged, null, 2) + '\n');
|
|
60
|
+
fs.unlinkSync(afConfigPath);
|
|
61
|
+
log(chalk.blue(' ~ (merged)'), 'af-config.json merged into .codev/config.json');
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
log(chalk.yellow(' ⚠ (preserved)'), 'af-config.json — merge failed, kept for manual review');
|
|
65
|
+
log(chalk.dim(` Error: ${err instanceof Error ? err.message : String(err)}`));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
log(chalk.blue(' ~ (would migrate)'), 'af-config.json → .codev/config.json');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// 2. Clean unmodified skeleton files using .update-hashes.json
|
|
74
|
+
const hashStorePath = path.join(targetDir, 'codev', '.update-hashes.json');
|
|
75
|
+
if (fs.existsSync(hashStorePath)) {
|
|
76
|
+
const hashes = loadHashStore(targetDir);
|
|
77
|
+
for (const [relativePath, storedHash] of Object.entries(hashes)) {
|
|
78
|
+
const filePath = path.join(targetDir, 'codev', relativePath);
|
|
79
|
+
if (!fs.existsSync(filePath))
|
|
80
|
+
continue;
|
|
81
|
+
const currentHash = hashFile(filePath);
|
|
82
|
+
if (currentHash === storedHash) {
|
|
83
|
+
// File unmodified — safe to remove (falls back to package at runtime)
|
|
84
|
+
if (!dryRun) {
|
|
85
|
+
fs.unlinkSync(filePath);
|
|
86
|
+
}
|
|
87
|
+
cleaned.push(`codev/${relativePath}`);
|
|
88
|
+
log(chalk.red(' - (cleaned)'), `codev/${relativePath}`, chalk.dim('(unmodified, falls back to package)'));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// File modified by user — preserve as local override
|
|
92
|
+
preserved.push(`codev/${relativePath}`);
|
|
93
|
+
log(chalk.green(' ✓ (preserved)'), `codev/${relativePath}`, chalk.dim('(user-modified, kept as override)'));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// 3. Remove .update-hashes.json (no longer needed)
|
|
97
|
+
if (!dryRun) {
|
|
98
|
+
fs.unlinkSync(hashStorePath);
|
|
99
|
+
}
|
|
100
|
+
log(chalk.red(' - (removed)'), 'codev/.update-hashes.json');
|
|
101
|
+
}
|
|
102
|
+
// Clean up legacy codev/bin directory
|
|
103
|
+
const legacyBinDir = path.join(targetDir, 'codev', 'bin');
|
|
104
|
+
if (fs.existsSync(legacyBinDir)) {
|
|
105
|
+
if (!dryRun) {
|
|
106
|
+
fs.rmSync(legacyBinDir, { recursive: true });
|
|
107
|
+
}
|
|
108
|
+
log(chalk.red(' - (removed)'), 'codev/bin/ (deprecated)');
|
|
109
|
+
}
|
|
110
|
+
return { migrated: true, cleaned, preserved };
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Update codev — migrate config and refresh Claude-specific files.
|
|
12
114
|
*/
|
|
13
115
|
export async function update(options = {}) {
|
|
14
116
|
const { dryRun = false, force = false, agent = false } = options;
|
|
15
117
|
const targetDir = process.cwd();
|
|
16
118
|
const codevDir = path.join(targetDir, 'codev');
|
|
17
|
-
// In agent mode, route human-readable output to stderr; otherwise stdout
|
|
18
119
|
const log = agent ? console.error.bind(console) : console.log.bind(console);
|
|
19
120
|
const result = {
|
|
20
121
|
updated: [],
|
|
@@ -34,240 +135,96 @@ export async function update(options = {}) {
|
|
|
34
135
|
}
|
|
35
136
|
try {
|
|
36
137
|
log('');
|
|
37
|
-
log(chalk.bold('Updating codev
|
|
138
|
+
log(chalk.bold('Updating codev'));
|
|
38
139
|
if (dryRun) {
|
|
39
140
|
log(chalk.yellow('(dry run - no files will be changed)'));
|
|
40
141
|
}
|
|
41
142
|
log('');
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
log(
|
|
143
|
+
// --- A. One-time migration ---
|
|
144
|
+
if (needsMigration(targetDir)) {
|
|
145
|
+
const migration = runMigration(targetDir, dryRun, log);
|
|
146
|
+
result.migrated = migration.migrated;
|
|
147
|
+
result.cleanedFiles = migration.cleaned;
|
|
148
|
+
result.preservedFiles = migration.preserved;
|
|
149
|
+
log('');
|
|
49
150
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const newConfigPath = path.join(targetDir, 'af-config.json');
|
|
53
|
-
if (fs.existsSync(legacyConfigPath) && !fs.existsSync(newConfigPath)) {
|
|
54
|
-
if (!dryRun) {
|
|
55
|
-
fs.copyFileSync(legacyConfigPath, newConfigPath);
|
|
56
|
-
fs.unlinkSync(legacyConfigPath);
|
|
57
|
-
}
|
|
58
|
-
log(chalk.blue(' ~ (migrated)'), 'codev/config.json → af-config.json');
|
|
151
|
+
else {
|
|
152
|
+
log(chalk.dim(' Migration already complete.'));
|
|
59
153
|
}
|
|
154
|
+
// --- B. Claude-specific file refresh (runs every time) ---
|
|
155
|
+
log('');
|
|
156
|
+
log(chalk.bold('Refreshing Claude-specific files...'));
|
|
157
|
+
log('');
|
|
60
158
|
const templatesDir = getTemplatesDir();
|
|
61
|
-
|
|
62
|
-
const currentHashes = loadHashStore(targetDir);
|
|
63
|
-
const newHashes = { ...currentHashes };
|
|
64
|
-
// Update consult-types (with skipExisting to preserve user customizations)
|
|
65
|
-
if (!dryRun) {
|
|
66
|
-
const consultTypesResult = copyConsultTypes(targetDir, templatesDir, { skipExisting: true });
|
|
67
|
-
if (consultTypesResult.copied.length > 0) {
|
|
68
|
-
for (const file of consultTypesResult.copied) {
|
|
69
|
-
const fullPath = `codev/consult-types/${file}`;
|
|
70
|
-
result.newFiles.push(fullPath);
|
|
71
|
-
log(chalk.green(' + (new)'), fullPath);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
// Update .claude/skills/ (add new skills, preserve user customizations)
|
|
159
|
+
// Update .claude/skills/
|
|
76
160
|
if (!dryRun) {
|
|
161
|
+
// Update skills — add new ones but preserve user-customized existing skills
|
|
77
162
|
const skillsResult = copySkills(targetDir, templatesDir, { skipExisting: true });
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
// Only update updatable files (protocols, roles, agents, etc.)
|
|
105
|
-
if (!isUpdatableFile(relativePath)) {
|
|
106
|
-
continue;
|
|
107
|
-
}
|
|
108
|
-
const srcPath = path.join(templatesDir, relativePath);
|
|
109
|
-
const destPath = path.join(codevDir, relativePath);
|
|
110
|
-
const projectRelativePath = `codev/${relativePath}`;
|
|
111
|
-
// New file - copy it
|
|
112
|
-
if (!fs.existsSync(destPath)) {
|
|
113
|
-
if (!dryRun) {
|
|
114
|
-
const destDir = path.dirname(destPath);
|
|
115
|
-
if (!fs.existsSync(destDir)) {
|
|
116
|
-
fs.mkdirSync(destDir, { recursive: true });
|
|
117
|
-
}
|
|
118
|
-
fs.copyFileSync(srcPath, destPath);
|
|
119
|
-
newHashes[relativePath] = hashFile(destPath);
|
|
120
|
-
}
|
|
121
|
-
result.newFiles.push(projectRelativePath);
|
|
122
|
-
log(chalk.green(' + (new)'), projectRelativePath);
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
// File exists - check if it was modified by user
|
|
126
|
-
const currentHash = hashFile(destPath);
|
|
127
|
-
const storedHash = currentHashes[relativePath];
|
|
128
|
-
const newHash = hashFile(srcPath);
|
|
129
|
-
// If the template hasn't changed, skip
|
|
130
|
-
if (currentHash === newHash) {
|
|
131
|
-
result.skipped.push(projectRelativePath);
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
// If force mode, overwrite everything
|
|
135
|
-
if (force) {
|
|
136
|
-
if (!dryRun) {
|
|
137
|
-
fs.copyFileSync(srcPath, destPath);
|
|
138
|
-
newHashes[relativePath] = hashFile(destPath);
|
|
139
|
-
}
|
|
140
|
-
result.updated.push(projectRelativePath);
|
|
141
|
-
log(chalk.blue(' ~ (force)'), projectRelativePath);
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
// Check if user modified the file
|
|
145
|
-
const userModified = storedHash && currentHash !== storedHash;
|
|
146
|
-
if (userModified) {
|
|
147
|
-
// User modified the file - write as .codev-new and mark as conflict
|
|
148
|
-
if (!dryRun) {
|
|
149
|
-
fs.copyFileSync(srcPath, destPath + '.codev-new');
|
|
150
|
-
}
|
|
151
|
-
result.conflicts.push({
|
|
152
|
-
file: projectRelativePath,
|
|
153
|
-
codevNew: `${projectRelativePath}.codev-new`,
|
|
154
|
-
reason: 'User modified file; new template version available',
|
|
163
|
+
for (const skill of skillsResult.copied) {
|
|
164
|
+
const fullPath = `.claude/skills/${skill}/`;
|
|
165
|
+
result.newFiles.push(fullPath);
|
|
166
|
+
log(chalk.green(' + (new)'), fullPath);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Update root files (CLAUDE.md, AGENTS.md)
|
|
170
|
+
const projectName = path.basename(targetDir);
|
|
171
|
+
if (force) {
|
|
172
|
+
const rootResult = copyRootFiles(targetDir, templatesDir, projectName);
|
|
173
|
+
for (const file of rootResult.copied) {
|
|
174
|
+
result.updated.push(file);
|
|
175
|
+
log(chalk.blue(' ~ (updated)'), file);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
const rootResult = copyRootFiles(targetDir, templatesDir, projectName, { handleConflicts: true });
|
|
180
|
+
for (const file of rootResult.copied) {
|
|
181
|
+
result.newFiles.push(file);
|
|
182
|
+
log(chalk.green(' + (new)'), file);
|
|
183
|
+
}
|
|
184
|
+
for (const file of rootResult.conflicts) {
|
|
185
|
+
result.rootConflicts.push({
|
|
186
|
+
file,
|
|
187
|
+
codevNew: `${file}.codev-new`,
|
|
188
|
+
reason: 'Content differs from template',
|
|
155
189
|
});
|
|
156
|
-
log(chalk.yellow(' ! (conflict)'),
|
|
157
|
-
log(chalk.dim(' New version saved as:'), `${
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
// File unchanged by user - safe to overwrite
|
|
161
|
-
if (!dryRun) {
|
|
162
|
-
fs.copyFileSync(srcPath, destPath);
|
|
163
|
-
newHashes[relativePath] = hashFile(destPath);
|
|
164
|
-
}
|
|
165
|
-
result.updated.push(projectRelativePath);
|
|
166
|
-
log(chalk.blue(' ~'), projectRelativePath);
|
|
190
|
+
log(chalk.yellow(' ! (conflict)'), file);
|
|
191
|
+
log(chalk.dim(' New version saved as:'), `${file}.codev-new`);
|
|
167
192
|
}
|
|
168
193
|
}
|
|
169
|
-
// Save updated hash store
|
|
170
|
-
if (!dryRun) {
|
|
171
|
-
saveHashStore(targetDir, newHashes);
|
|
172
|
-
}
|
|
173
|
-
// Handle root-level files (CLAUDE.md, AGENTS.md)
|
|
174
|
-
const rootFiles = ['CLAUDE.md', 'AGENTS.md'];
|
|
175
|
-
const skeletonTemplatesDir = path.join(templatesDir, 'templates');
|
|
176
|
-
for (const fileName of rootFiles) {
|
|
177
|
-
const srcPath = path.join(skeletonTemplatesDir, fileName);
|
|
178
|
-
const destPath = path.join(targetDir, fileName);
|
|
179
|
-
// Skip if source doesn't exist
|
|
180
|
-
if (!fs.existsSync(srcPath)) {
|
|
181
|
-
continue;
|
|
182
|
-
}
|
|
183
|
-
// New file - copy it (replacing {{PROJECT_NAME}} placeholder)
|
|
184
|
-
if (!fs.existsSync(destPath)) {
|
|
185
|
-
if (!dryRun) {
|
|
186
|
-
const projectName = path.basename(targetDir);
|
|
187
|
-
let content = fs.readFileSync(srcPath, 'utf-8');
|
|
188
|
-
content = content.replace(/\{\{PROJECT_NAME\}\}/g, projectName);
|
|
189
|
-
fs.writeFileSync(destPath, content);
|
|
190
|
-
}
|
|
191
|
-
result.newFiles.push(fileName);
|
|
192
|
-
log(chalk.green(' + (new)'), fileName);
|
|
193
|
-
continue;
|
|
194
|
-
}
|
|
195
|
-
// File exists - check if template has changed
|
|
196
|
-
const currentContent = fs.readFileSync(destPath, 'utf-8');
|
|
197
|
-
const projectName = path.basename(targetDir);
|
|
198
|
-
let templateContent = fs.readFileSync(srcPath, 'utf-8');
|
|
199
|
-
templateContent = templateContent.replace(/\{\{PROJECT_NAME\}\}/g, projectName);
|
|
200
|
-
// If content is identical, skip
|
|
201
|
-
if (currentContent === templateContent) {
|
|
202
|
-
result.skipped.push(fileName);
|
|
203
|
-
continue;
|
|
204
|
-
}
|
|
205
|
-
// If force mode, overwrite
|
|
206
|
-
if (force) {
|
|
207
|
-
if (!dryRun) {
|
|
208
|
-
fs.writeFileSync(destPath, templateContent);
|
|
209
|
-
}
|
|
210
|
-
result.updated.push(fileName);
|
|
211
|
-
log(chalk.blue(' ~ (force)'), fileName);
|
|
212
|
-
continue;
|
|
213
|
-
}
|
|
214
|
-
// Content differs - save as .codev-new for merge
|
|
215
|
-
if (!dryRun) {
|
|
216
|
-
fs.writeFileSync(destPath + '.codev-new', templateContent);
|
|
217
|
-
}
|
|
218
|
-
result.rootConflicts.push({
|
|
219
|
-
file: fileName,
|
|
220
|
-
codevNew: `${fileName}.codev-new`,
|
|
221
|
-
reason: 'Content differs from template',
|
|
222
|
-
});
|
|
223
|
-
log(chalk.yellow(' ! (conflict)'), fileName);
|
|
224
|
-
log(chalk.dim(' New version saved as:'), `${fileName}.codev-new`);
|
|
225
|
-
}
|
|
226
194
|
// Summary
|
|
227
195
|
log('');
|
|
228
196
|
log(chalk.bold('Summary:'));
|
|
197
|
+
if (result.migrated) {
|
|
198
|
+
log(chalk.blue(` Migration: ${result.cleanedFiles?.length || 0} files cleaned, ${result.preservedFiles?.length || 0} preserved`));
|
|
199
|
+
}
|
|
229
200
|
if (result.newFiles.length > 0) {
|
|
230
201
|
log(chalk.green(` + ${result.newFiles.length} new files`));
|
|
231
202
|
}
|
|
232
203
|
if (result.updated.length > 0) {
|
|
233
204
|
log(chalk.blue(` ~ ${result.updated.length} updated`));
|
|
234
205
|
}
|
|
235
|
-
if (result.skipped.length > 0) {
|
|
236
|
-
log(chalk.dim(` - ${result.skipped.length} unchanged (skipped)`));
|
|
237
|
-
}
|
|
238
|
-
if (result.conflicts.length > 0) {
|
|
239
|
-
log(chalk.yellow(` ! ${result.conflicts.length} codev/ conflicts`));
|
|
240
|
-
}
|
|
241
206
|
if (result.rootConflicts.length > 0) {
|
|
242
|
-
log(chalk.yellow(` ! ${result.rootConflicts.length}
|
|
207
|
+
log(chalk.yellow(` ! ${result.rootConflicts.length} conflicts`));
|
|
243
208
|
}
|
|
244
|
-
if (result.
|
|
245
|
-
log(chalk.dim('
|
|
209
|
+
if (!result.migrated && result.newFiles.length === 0 && result.updated.length === 0 && result.rootConflicts.length === 0) {
|
|
210
|
+
log(chalk.dim(' Already up to date!'));
|
|
246
211
|
}
|
|
247
212
|
if (dryRun) {
|
|
248
213
|
log('');
|
|
249
214
|
log(chalk.yellow('Dry run complete. Run without --dry-run to apply changes.'));
|
|
250
215
|
return result;
|
|
251
216
|
}
|
|
252
|
-
// In agent mode, skip the interactive Claude spawn
|
|
253
217
|
if (agent) {
|
|
254
218
|
return result;
|
|
255
219
|
}
|
|
256
|
-
// Combine all conflicts for Claude merge
|
|
257
|
-
const allConflicts =
|
|
258
|
-
...result.conflicts.map(c => c.file),
|
|
259
|
-
...result.rootConflicts.map(c => c.file),
|
|
260
|
-
];
|
|
261
|
-
// If there are any conflicts, spawn Claude to merge
|
|
220
|
+
// Combine all conflicts for Claude merge
|
|
221
|
+
const allConflicts = result.rootConflicts.map(c => c.file);
|
|
262
222
|
if (allConflicts.length > 0) {
|
|
263
223
|
log('');
|
|
264
|
-
log(chalk.cyan('
|
|
265
|
-
log(chalk.cyan(' Launching Claude to merge conflicts...'));
|
|
266
|
-
log(chalk.cyan('═══════════════════════════════════════════════════════════'));
|
|
224
|
+
log(chalk.cyan('Launching Claude to merge conflicts...'));
|
|
267
225
|
log('');
|
|
268
226
|
const fileList = allConflicts.join(', ');
|
|
269
227
|
const mergePrompt = `Merge the following files from their .codev-new versions: ${fileList}. For each file, add new sections from the .codev-new version, preserve my customizations, then delete the .codev-new file when done.`;
|
|
270
|
-
// Spawn Claude interactively with merge instructions as initial prompt
|
|
271
228
|
const claude = spawn('claude', [mergePrompt], {
|
|
272
229
|
stdio: 'inherit',
|
|
273
230
|
cwd: targetDir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified configuration loader for Codev.
|
|
3
|
+
*
|
|
4
|
+
* Loads and merges config from three layers (lowest → highest priority):
|
|
5
|
+
* 1. Hardcoded defaults
|
|
6
|
+
* 2. ~/.codev/config.json (global)
|
|
7
|
+
* 3. .codev/config.json (project)
|
|
8
|
+
*
|
|
9
|
+
* af-config.json is no longer supported — its presence triggers a hard error
|
|
10
|
+
* directing the user to run `codev update` to migrate.
|
|
11
|
+
*/
|
|
12
|
+
export interface CodevConfig {
|
|
13
|
+
shell?: {
|
|
14
|
+
architect?: string | string[];
|
|
15
|
+
builder?: string | string[];
|
|
16
|
+
shell?: string | string[];
|
|
17
|
+
};
|
|
18
|
+
porch?: {
|
|
19
|
+
checks?: Record<string, CheckOverride>;
|
|
20
|
+
consultation?: {
|
|
21
|
+
models?: string | string[];
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
forge?: Record<string, string | null> & {
|
|
25
|
+
provider?: string;
|
|
26
|
+
};
|
|
27
|
+
templates?: {
|
|
28
|
+
dir?: string;
|
|
29
|
+
};
|
|
30
|
+
roles?: {
|
|
31
|
+
dir?: string;
|
|
32
|
+
};
|
|
33
|
+
terminal?: {
|
|
34
|
+
backend?: 'node-pty';
|
|
35
|
+
};
|
|
36
|
+
dashboard?: {
|
|
37
|
+
frontend?: 'react' | 'legacy';
|
|
38
|
+
};
|
|
39
|
+
framework?: {
|
|
40
|
+
source?: string;
|
|
41
|
+
ref?: string;
|
|
42
|
+
type?: 'forge' | 'command';
|
|
43
|
+
command?: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export interface CheckOverride {
|
|
47
|
+
command?: string;
|
|
48
|
+
cwd?: string;
|
|
49
|
+
skip?: boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Deep-merge `override` into `base`.
|
|
53
|
+
*
|
|
54
|
+
* Semantics (per spec):
|
|
55
|
+
* - Objects: recursively merged.
|
|
56
|
+
* - Arrays: replaced, not concatenated.
|
|
57
|
+
* - null value: deletes the key from the result.
|
|
58
|
+
*/
|
|
59
|
+
export declare function deepMerge<T extends Record<string, unknown>>(base: T, override: Record<string, unknown>): T;
|
|
60
|
+
/**
|
|
61
|
+
* Resolve the project-level config path.
|
|
62
|
+
*
|
|
63
|
+
* Returns .codev/config.json if it exists, otherwise null.
|
|
64
|
+
* Hard error if legacy af-config.json is detected — user must run
|
|
65
|
+
* `codev update` to migrate.
|
|
66
|
+
*/
|
|
67
|
+
export declare function resolveProjectConfigPath(workspaceRoot: string): string | null;
|
|
68
|
+
/**
|
|
69
|
+
* Load the full merged config for a workspace.
|
|
70
|
+
*
|
|
71
|
+
* Layer order (lowest → highest priority):
|
|
72
|
+
* 1. Hardcoded defaults
|
|
73
|
+
* 2. <cache>/config.json (remote framework base config)
|
|
74
|
+
* 3. ~/.codev/config.json (global)
|
|
75
|
+
* 4. .codev/config.json (project)
|
|
76
|
+
*/
|
|
77
|
+
export declare function loadConfig(workspaceRoot: string): CodevConfig;
|
|
78
|
+
/**
|
|
79
|
+
* Get the default config (useful for init/adopt to write a starter config).
|
|
80
|
+
*/
|
|
81
|
+
export declare function getDefaultConfig(): CodevConfig;
|
|
82
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACvC,YAAY,CAAC,EAAE;YACb,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;SAC5B,CAAC;KACH,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,SAAS,CAAC,EAAE;QACV,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;KAC/B,CAAC;IACF,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA0BD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CA+B1G;AAqCD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CA8B7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAE9C"}
|