@controlvector/cv-agent 1.10.0 → 1.10.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/bundle.cjs +572 -67
- package/dist/bundle.cjs.map +3 -3
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +126 -7
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/git-safety.d.ts +12 -6
- package/dist/commands/git-safety.d.ts.map +1 -1
- package/dist/commands/git-safety.js +114 -22
- package/dist/commands/git-safety.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +361 -45
- package/dist/commands/setup.js.map +1 -1
- package/dist/utils/api.d.ts +1 -1
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +20 -2
- package/dist/utils/api.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,30 +6,106 @@
|
|
|
6
6
|
* Ensures all changes are committed and pushed, because Claude Code
|
|
7
7
|
* cannot be trusted to do this reliably.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* SAFETY GUARDS (Bug 3 fix, 2026-04-11):
|
|
10
|
+
* - REFUSES to run if workspace is user's HOME directory
|
|
11
|
+
* - REFUSES to run if workspace has no .git directory
|
|
12
|
+
* - Filters out sensitive files from staging (.claude/, .zsh_history, etc.)
|
|
13
|
+
* - Logs warnings instead of silently committing dangerous paths
|
|
11
14
|
*/
|
|
12
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
16
|
exports.gitSafetyNet = gitSafetyNet;
|
|
14
17
|
const node_child_process_1 = require("node:child_process");
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
const node_fs_1 = require("node:fs");
|
|
19
|
+
const node_path_1 = require("node:path");
|
|
20
|
+
const node_os_1 = require("node:os");
|
|
21
|
+
/** Files/directories that must NEVER be committed by the safety net */
|
|
22
|
+
const DANGEROUS_PATTERNS = [
|
|
23
|
+
'.claude/',
|
|
24
|
+
'.claude.json',
|
|
25
|
+
'.credentials',
|
|
26
|
+
'.zsh_history',
|
|
27
|
+
'.bash_history',
|
|
28
|
+
'.zsh_sessions/',
|
|
29
|
+
'.ssh/',
|
|
30
|
+
'.gnupg/',
|
|
31
|
+
'.npm/',
|
|
32
|
+
'.config/',
|
|
33
|
+
'.CFUserTextEncoding',
|
|
34
|
+
'Library/',
|
|
35
|
+
'Applications/',
|
|
36
|
+
'.Trash/',
|
|
37
|
+
'.DS_Store',
|
|
38
|
+
'node_modules/',
|
|
39
|
+
'.env',
|
|
40
|
+
'.env.local',
|
|
41
|
+
'.env.production',
|
|
42
|
+
];
|
|
18
43
|
function git(cmd, cwd) {
|
|
19
44
|
return (0, node_child_process_1.execSync)(cmd, { cwd, encoding: 'utf8', timeout: 30_000 }).trim();
|
|
20
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if a workspace is safe for auto-commit operations.
|
|
48
|
+
* Returns an error string if unsafe, null if safe.
|
|
49
|
+
*/
|
|
50
|
+
function checkWorkspaceSafety(workspaceRoot) {
|
|
51
|
+
const resolved = (0, node_path_1.resolve)(workspaceRoot);
|
|
52
|
+
const home = (0, node_path_1.resolve)((0, node_os_1.homedir)());
|
|
53
|
+
// NEVER auto-commit from user's HOME directory
|
|
54
|
+
if (resolved === home) {
|
|
55
|
+
return `Workspace is user HOME directory (${home}). Refusing to auto-commit to prevent indexing personal files.`;
|
|
56
|
+
}
|
|
57
|
+
// NEVER auto-commit from a parent of HOME (e.g., /Users or /)
|
|
58
|
+
if (home.startsWith(resolved + '/')) {
|
|
59
|
+
return `Workspace (${resolved}) is a parent of HOME. Refusing to auto-commit.`;
|
|
60
|
+
}
|
|
61
|
+
// Must have a .git directory
|
|
62
|
+
if (!(0, node_fs_1.existsSync)((0, node_path_1.join)(resolved, '.git'))) {
|
|
63
|
+
return `No .git directory in ${resolved}. Not a git repository.`;
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Filter out dangerous files from git status output.
|
|
69
|
+
* Returns only the safe lines.
|
|
70
|
+
*/
|
|
71
|
+
function filterDangerousFiles(statusLines) {
|
|
72
|
+
const safe = [];
|
|
73
|
+
const blocked = [];
|
|
74
|
+
for (const line of statusLines) {
|
|
75
|
+
const filePath = line.substring(3).trim(); // Remove status prefix (e.g., "?? " or " M ")
|
|
76
|
+
const isDangerous = DANGEROUS_PATTERNS.some(pattern => filePath.startsWith(pattern) || filePath.includes('/' + pattern));
|
|
77
|
+
if (isDangerous) {
|
|
78
|
+
blocked.push(filePath);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
safe.push(line);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return { safe, blocked };
|
|
85
|
+
}
|
|
21
86
|
/**
|
|
22
87
|
* Ensure all changes are committed and pushed after Claude Code exits.
|
|
23
88
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
89
|
+
* Safety guards:
|
|
90
|
+
* - Refuses if workspace is HOME directory
|
|
91
|
+
* - Refuses if no .git directory exists
|
|
92
|
+
* - Filters out sensitive files (.claude/, .zsh_history, etc.)
|
|
93
|
+
* - Only stages files that pass the safety filter
|
|
28
94
|
*/
|
|
29
95
|
function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
|
|
30
96
|
const targetBranch = branch || 'main';
|
|
97
|
+
// ── Safety check: refuse to run in dangerous directories ──────────
|
|
98
|
+
const safetyError = checkWorkspaceSafety(workspaceRoot);
|
|
99
|
+
if (safetyError) {
|
|
100
|
+
console.log(` [git-safety] BLOCKED: ${safetyError}`);
|
|
101
|
+
return {
|
|
102
|
+
hadChanges: false, filesAdded: 0, filesModified: 0,
|
|
103
|
+
filesDeleted: 0, pushed: false, skipped: true,
|
|
104
|
+
skipReason: safetyError,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
31
107
|
try {
|
|
32
|
-
// 1. Check for
|
|
108
|
+
// 1. Check for uncommitted changes
|
|
33
109
|
let statusOutput;
|
|
34
110
|
try {
|
|
35
111
|
statusOutput = git('git status --porcelain', workspaceRoot);
|
|
@@ -37,8 +113,8 @@ function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
|
|
|
37
113
|
catch {
|
|
38
114
|
return { hadChanges: false, filesAdded: 0, filesModified: 0, filesDeleted: 0, pushed: false, error: 'git status failed' };
|
|
39
115
|
}
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
116
|
+
const allLines = statusOutput.split('\n').filter(Boolean);
|
|
117
|
+
if (allLines.length === 0) {
|
|
42
118
|
// No local changes — check for unpushed commits
|
|
43
119
|
try {
|
|
44
120
|
const unpushed = git(`git log origin/${targetBranch}..HEAD --oneline 2>/dev/null`, workspaceRoot);
|
|
@@ -49,13 +125,22 @@ function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
|
|
|
49
125
|
}
|
|
50
126
|
}
|
|
51
127
|
catch {
|
|
52
|
-
// No remote tracking or push failed
|
|
128
|
+
// No remote tracking or push failed
|
|
53
129
|
}
|
|
54
130
|
return { hadChanges: false, filesAdded: 0, filesModified: 0, filesDeleted: 0, pushed: false };
|
|
55
131
|
}
|
|
56
|
-
// 2.
|
|
132
|
+
// 2. Filter out dangerous files
|
|
133
|
+
const { safe: safeLines, blocked } = filterDangerousFiles(allLines);
|
|
134
|
+
if (blocked.length > 0) {
|
|
135
|
+
console.log(` [git-safety] Blocked ${blocked.length} sensitive file(s) from staging: ${blocked.slice(0, 5).join(', ')}${blocked.length > 5 ? '...' : ''}`);
|
|
136
|
+
}
|
|
137
|
+
if (safeLines.length === 0) {
|
|
138
|
+
console.log(` [git-safety] All ${allLines.length} changed files were blocked by safety filter`);
|
|
139
|
+
return { hadChanges: false, filesAdded: 0, filesModified: 0, filesDeleted: 0, pushed: false };
|
|
140
|
+
}
|
|
141
|
+
// 3. Parse safe changes
|
|
57
142
|
let added = 0, modified = 0, deleted = 0;
|
|
58
|
-
for (const line of
|
|
143
|
+
for (const line of safeLines) {
|
|
59
144
|
const code = line.substring(0, 2);
|
|
60
145
|
if (code.includes('?'))
|
|
61
146
|
added++;
|
|
@@ -64,13 +149,21 @@ function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
|
|
|
64
149
|
else if (code.includes('M') || code.includes('A'))
|
|
65
150
|
modified++;
|
|
66
151
|
else
|
|
67
|
-
added++;
|
|
152
|
+
added++;
|
|
68
153
|
}
|
|
69
|
-
console.log(` [git-safety] ${
|
|
154
|
+
console.log(` [git-safety] ${safeLines.length} safe changes ` +
|
|
70
155
|
`(${added} new, ${modified} modified, ${deleted} deleted) — committing now`);
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
|
|
156
|
+
// 4. Stage only safe files (NOT git add -A)
|
|
157
|
+
for (const line of safeLines) {
|
|
158
|
+
const filePath = line.substring(3).trim();
|
|
159
|
+
try {
|
|
160
|
+
git(`git add -- ${JSON.stringify(filePath)}`, workspaceRoot);
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
// Individual file add failed — skip it
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// 5. Commit with task metadata
|
|
74
167
|
const shortId = taskId.substring(0, 8);
|
|
75
168
|
const commitMsg = `task: ${taskTitle} [${shortId}]\n\nAuto-committed by cv-agent git safety net.\nTask ID: ${taskId}\nFiles: ${added} added, ${modified} modified, ${deleted} deleted`;
|
|
76
169
|
let commitSha;
|
|
@@ -80,7 +173,6 @@ function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
|
|
|
80
173
|
commitSha = shaMatch ? shaMatch[1] : undefined;
|
|
81
174
|
}
|
|
82
175
|
catch (e) {
|
|
83
|
-
// Commit may fail if there's nothing to commit after add
|
|
84
176
|
if (!e.message?.includes('nothing to commit')) {
|
|
85
177
|
return {
|
|
86
178
|
hadChanges: true, filesAdded: added, filesModified: modified,
|
|
@@ -88,7 +180,7 @@ function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
|
|
|
88
180
|
};
|
|
89
181
|
}
|
|
90
182
|
}
|
|
91
|
-
//
|
|
183
|
+
// 6. Push
|
|
92
184
|
try {
|
|
93
185
|
git(`git push origin ${targetBranch}`, workspaceRoot);
|
|
94
186
|
console.log(` [git-safety] Committed and pushed: ${commitSha || 'ok'}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-safety.js","sourceRoot":"","sources":["../../src/commands/git-safety.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"git-safety.js","sourceRoot":"","sources":["../../src/commands/git-safety.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8lBpC,wBAAgB,YAAY,IAAI,OAAO,CAKtC"}
|