claude-auto 0.13.6 → 0.13.8
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/scripts/pre-tool-use.js +35 -8
- package/dist/src/hooks/pre-tool-use.d.ts +6 -3
- package/dist/src/hooks/pre-tool-use.d.ts.map +1 -1
- package/dist/src/hooks/pre-tool-use.js +35 -8
- package/dist/src/hooks/pre-tool-use.js.map +1 -1
- package/dist/src/hooks/pre-tool-use.test.js +44 -12
- package/dist/src/hooks/pre-tool-use.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -11586,8 +11586,11 @@ async function handlePreToolUse(claudeDir2, sessionId, toolInput, options2 = {})
|
|
|
11586
11586
|
activityLog(paths.autoDir, sessionId, "pre-tool-use", `blocked: ${filePath}`);
|
|
11587
11587
|
debugLog(paths.autoDir, "pre-tool-use", `${filePath} blocked by deny-list`);
|
|
11588
11588
|
return {
|
|
11589
|
-
|
|
11590
|
-
|
|
11589
|
+
hookSpecificOutput: {
|
|
11590
|
+
hookEventName: "PreToolUse",
|
|
11591
|
+
permissionDecision: "deny",
|
|
11592
|
+
permissionDecisionReason: `Path ${filePath} is denied by claude-auto deny-list`
|
|
11593
|
+
}
|
|
11591
11594
|
};
|
|
11592
11595
|
}
|
|
11593
11596
|
const reminders = loadReminders(paths.remindersDir, {
|
|
@@ -11596,9 +11599,20 @@ async function handlePreToolUse(claudeDir2, sessionId, toolInput, options2 = {})
|
|
|
11596
11599
|
});
|
|
11597
11600
|
const reminderContent = reminders.map((r) => r.content).join("\n\n");
|
|
11598
11601
|
if (reminderContent) {
|
|
11599
|
-
return {
|
|
11602
|
+
return {
|
|
11603
|
+
hookSpecificOutput: {
|
|
11604
|
+
hookEventName: "PreToolUse",
|
|
11605
|
+
permissionDecision: "allow",
|
|
11606
|
+
additionalContext: reminderContent
|
|
11607
|
+
}
|
|
11608
|
+
};
|
|
11600
11609
|
}
|
|
11601
|
-
return {
|
|
11610
|
+
return {
|
|
11611
|
+
hookSpecificOutput: {
|
|
11612
|
+
hookEventName: "PreToolUse",
|
|
11613
|
+
permissionDecision: "allow"
|
|
11614
|
+
}
|
|
11615
|
+
};
|
|
11602
11616
|
}
|
|
11603
11617
|
async function handleCommitValidation(claudeDir2, sessionId, command, options2, autoDir) {
|
|
11604
11618
|
const paths = await resolvePaths(claudeDir2);
|
|
@@ -11606,7 +11620,12 @@ async function handleCommitValidation(claudeDir2, sessionId, command, options2,
|
|
|
11606
11620
|
const validators = allValidators.filter((v) => v.name !== "appeal-system");
|
|
11607
11621
|
if (validators.length === 0) {
|
|
11608
11622
|
activityLog(autoDir, sessionId, "pre-tool-use", "commit allowed (no validators)");
|
|
11609
|
-
return {
|
|
11623
|
+
return {
|
|
11624
|
+
hookSpecificOutput: {
|
|
11625
|
+
hookEventName: "PreToolUse",
|
|
11626
|
+
permissionDecision: "allow"
|
|
11627
|
+
}
|
|
11628
|
+
};
|
|
11610
11629
|
}
|
|
11611
11630
|
const context = getCommitContext(process.cwd(), command);
|
|
11612
11631
|
const state = createHookState(autoDir).read();
|
|
@@ -11620,13 +11639,21 @@ async function handleCommitValidation(claudeDir2, sessionId, command, options2,
|
|
|
11620
11639
|
activityLog(autoDir, sessionId, "pre-tool-use", `commit blocked: ${reasons}`);
|
|
11621
11640
|
debugLog(autoDir, "pre-tool-use", `commit blocked: ${reasons}`);
|
|
11622
11641
|
return {
|
|
11623
|
-
|
|
11624
|
-
|
|
11642
|
+
hookSpecificOutput: {
|
|
11643
|
+
hookEventName: "PreToolUse",
|
|
11644
|
+
permissionDecision: "deny",
|
|
11645
|
+
permissionDecisionReason: reasons
|
|
11646
|
+
}
|
|
11625
11647
|
};
|
|
11626
11648
|
}
|
|
11627
11649
|
activityLog(autoDir, sessionId, "pre-tool-use", "commit allowed");
|
|
11628
11650
|
debugLog(autoDir, "pre-tool-use", "commit allowed");
|
|
11629
|
-
return {
|
|
11651
|
+
return {
|
|
11652
|
+
hookSpecificOutput: {
|
|
11653
|
+
hookEventName: "PreToolUse",
|
|
11654
|
+
permissionDecision: "allow"
|
|
11655
|
+
}
|
|
11656
|
+
};
|
|
11630
11657
|
}
|
|
11631
11658
|
|
|
11632
11659
|
// scripts/pre-tool-use.ts
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { type Executor } from '../commit-validator.js';
|
|
2
2
|
type ToolInput = Record<string, unknown>;
|
|
3
3
|
type HookResult = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
hookSpecificOutput: {
|
|
5
|
+
hookEventName: 'PreToolUse';
|
|
6
|
+
permissionDecision: 'deny' | 'allow';
|
|
7
|
+
permissionDecisionReason?: string;
|
|
8
|
+
additionalContext?: string;
|
|
9
|
+
};
|
|
7
10
|
};
|
|
8
11
|
interface PreToolUseOptions {
|
|
9
12
|
executor?: Executor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-tool-use.d.ts","sourceRoot":"","sources":["../../../src/hooks/pre-tool-use.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,QAAQ,EAKd,MAAM,wBAAwB,CAAC;AAQhC,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzC,KAAK,UAAU,GAAG;IAChB,
|
|
1
|
+
{"version":3,"file":"pre-tool-use.d.ts","sourceRoot":"","sources":["../../../src/hooks/pre-tool-use.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,QAAQ,EAKd,MAAM,wBAAwB,CAAC;AAQhC,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzC,KAAK,UAAU,GAAG;IAChB,kBAAkB,EAAE;QAClB,aAAa,EAAE,YAAY,CAAC;QAC5B,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC;QACrC,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH,CAAC;AAEF,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC,CA8CrB"}
|
|
@@ -21,8 +21,11 @@ async function handlePreToolUse(claudeDir, sessionId, toolInput, options = {}) {
|
|
|
21
21
|
(0, activity_logger_js_1.activityLog)(paths.autoDir, sessionId, 'pre-tool-use', `blocked: ${filePath}`);
|
|
22
22
|
(0, debug_logger_js_1.debugLog)(paths.autoDir, 'pre-tool-use', `${filePath} blocked by deny-list`);
|
|
23
23
|
return {
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
hookSpecificOutput: {
|
|
25
|
+
hookEventName: 'PreToolUse',
|
|
26
|
+
permissionDecision: 'deny',
|
|
27
|
+
permissionDecisionReason: `Path ${filePath} is denied by claude-auto deny-list`,
|
|
28
|
+
},
|
|
26
29
|
};
|
|
27
30
|
}
|
|
28
31
|
const reminders = (0, reminder_loader_js_1.loadReminders)(paths.remindersDir, {
|
|
@@ -31,9 +34,20 @@ async function handlePreToolUse(claudeDir, sessionId, toolInput, options = {}) {
|
|
|
31
34
|
});
|
|
32
35
|
const reminderContent = reminders.map((r) => r.content).join('\n\n');
|
|
33
36
|
if (reminderContent) {
|
|
34
|
-
return {
|
|
37
|
+
return {
|
|
38
|
+
hookSpecificOutput: {
|
|
39
|
+
hookEventName: 'PreToolUse',
|
|
40
|
+
permissionDecision: 'allow',
|
|
41
|
+
additionalContext: reminderContent,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
35
44
|
}
|
|
36
|
-
return {
|
|
45
|
+
return {
|
|
46
|
+
hookSpecificOutput: {
|
|
47
|
+
hookEventName: 'PreToolUse',
|
|
48
|
+
permissionDecision: 'allow',
|
|
49
|
+
},
|
|
50
|
+
};
|
|
37
51
|
}
|
|
38
52
|
async function handleCommitValidation(claudeDir, sessionId, command, options, autoDir) {
|
|
39
53
|
const paths = await (0, path_resolver_js_1.resolvePaths)(claudeDir);
|
|
@@ -41,7 +55,12 @@ async function handleCommitValidation(claudeDir, sessionId, command, options, au
|
|
|
41
55
|
const validators = allValidators.filter((v) => v.name !== 'appeal-system');
|
|
42
56
|
if (validators.length === 0) {
|
|
43
57
|
(0, activity_logger_js_1.activityLog)(autoDir, sessionId, 'pre-tool-use', 'commit allowed (no validators)');
|
|
44
|
-
return {
|
|
58
|
+
return {
|
|
59
|
+
hookSpecificOutput: {
|
|
60
|
+
hookEventName: 'PreToolUse',
|
|
61
|
+
permissionDecision: 'allow',
|
|
62
|
+
},
|
|
63
|
+
};
|
|
45
64
|
}
|
|
46
65
|
const context = (0, commit_validator_js_1.getCommitContext)(process.cwd(), command);
|
|
47
66
|
const state = (0, hook_state_js_1.createHookState)(autoDir).read();
|
|
@@ -55,12 +74,20 @@ async function handleCommitValidation(claudeDir, sessionId, command, options, au
|
|
|
55
74
|
(0, activity_logger_js_1.activityLog)(autoDir, sessionId, 'pre-tool-use', `commit blocked: ${reasons}`);
|
|
56
75
|
(0, debug_logger_js_1.debugLog)(autoDir, 'pre-tool-use', `commit blocked: ${reasons}`);
|
|
57
76
|
return {
|
|
58
|
-
|
|
59
|
-
|
|
77
|
+
hookSpecificOutput: {
|
|
78
|
+
hookEventName: 'PreToolUse',
|
|
79
|
+
permissionDecision: 'deny',
|
|
80
|
+
permissionDecisionReason: reasons,
|
|
81
|
+
},
|
|
60
82
|
};
|
|
61
83
|
}
|
|
62
84
|
(0, activity_logger_js_1.activityLog)(autoDir, sessionId, 'pre-tool-use', 'commit allowed');
|
|
63
85
|
(0, debug_logger_js_1.debugLog)(autoDir, 'pre-tool-use', 'commit allowed');
|
|
64
|
-
return {
|
|
86
|
+
return {
|
|
87
|
+
hookSpecificOutput: {
|
|
88
|
+
hookEventName: 'PreToolUse',
|
|
89
|
+
permissionDecision: 'allow',
|
|
90
|
+
},
|
|
91
|
+
};
|
|
65
92
|
}
|
|
66
93
|
//# sourceMappingURL=pre-tool-use.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-tool-use.js","sourceRoot":"","sources":["../../../src/hooks/pre-tool-use.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"pre-tool-use.js","sourceRoot":"","sources":["../../../src/hooks/pre-tool-use.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,15 +66,23 @@ const pre_tool_use_js_1 = require("./pre-tool-use.js");
|
|
|
66
66
|
const toolInput = { file_path: '/project/config.secret' };
|
|
67
67
|
const result = await (0, pre_tool_use_js_1.handlePreToolUse)(claudeDir, 'session-1', toolInput);
|
|
68
68
|
(0, vitest_1.expect)(result).toEqual({
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
hookSpecificOutput: {
|
|
70
|
+
hookEventName: 'PreToolUse',
|
|
71
|
+
permissionDecision: 'deny',
|
|
72
|
+
permissionDecisionReason: 'Path /project/config.secret is denied by claude-auto deny-list',
|
|
73
|
+
},
|
|
71
74
|
});
|
|
72
75
|
});
|
|
73
76
|
(0, vitest_1.it)('allows tool use when path does not match deny pattern', async () => {
|
|
74
77
|
fs.writeFileSync(path.join(claudeDir, 'deny-list.project.txt'), '*.secret\n');
|
|
75
78
|
const toolInput = { file_path: '/project/config.json' };
|
|
76
79
|
const result = await (0, pre_tool_use_js_1.handlePreToolUse)(claudeDir, 'session-2', toolInput);
|
|
77
|
-
(0, vitest_1.expect)(result).toEqual({
|
|
80
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
81
|
+
hookSpecificOutput: {
|
|
82
|
+
hookEventName: 'PreToolUse',
|
|
83
|
+
permissionDecision: 'allow',
|
|
84
|
+
},
|
|
85
|
+
});
|
|
78
86
|
});
|
|
79
87
|
(0, vitest_1.it)('does not write to activity.log for non-commit non-blocked tool use', async () => {
|
|
80
88
|
const toolInput = { command: 'echo hello' };
|
|
@@ -109,7 +117,12 @@ const pre_tool_use_js_1 = require("./pre-tool-use.js");
|
|
|
109
117
|
command: 'git commit -m "Test commit"',
|
|
110
118
|
};
|
|
111
119
|
const result = await (0, pre_tool_use_js_1.handlePreToolUse)(claudeDir, 'session-no-validators', toolInput);
|
|
112
|
-
(0, vitest_1.expect)(result).toEqual({
|
|
120
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
121
|
+
hookSpecificOutput: {
|
|
122
|
+
hookEventName: 'PreToolUse',
|
|
123
|
+
permissionDecision: 'allow',
|
|
124
|
+
},
|
|
125
|
+
});
|
|
113
126
|
});
|
|
114
127
|
(0, vitest_1.it)('routes Bash git commit to validator and blocks on NACK', async () => {
|
|
115
128
|
const validatorsDir = path.join(autoDir, 'validators');
|
|
@@ -133,8 +146,11 @@ Validate this commit`);
|
|
|
133
146
|
};
|
|
134
147
|
const result = await (0, pre_tool_use_js_1.handlePreToolUse)(claudeDir, 'session-3', toolInput, { executor });
|
|
135
148
|
(0, vitest_1.expect)(result).toEqual({
|
|
136
|
-
|
|
137
|
-
|
|
149
|
+
hookSpecificOutput: {
|
|
150
|
+
hookEventName: 'PreToolUse',
|
|
151
|
+
permissionDecision: 'deny',
|
|
152
|
+
permissionDecisionReason: 'test-validator: Missing tests',
|
|
153
|
+
},
|
|
138
154
|
});
|
|
139
155
|
});
|
|
140
156
|
(0, vitest_1.it)('allows git commit when all validators ACK', async () => {
|
|
@@ -158,7 +174,12 @@ Validate this commit`);
|
|
|
158
174
|
command: 'git commit -m "Test commit"',
|
|
159
175
|
};
|
|
160
176
|
const result = await (0, pre_tool_use_js_1.handlePreToolUse)(claudeDir, 'session-4', toolInput, { executor });
|
|
161
|
-
(0, vitest_1.expect)(result).toEqual({
|
|
177
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
178
|
+
hookSpecificOutput: {
|
|
179
|
+
hookEventName: 'PreToolUse',
|
|
180
|
+
permissionDecision: 'allow',
|
|
181
|
+
},
|
|
182
|
+
});
|
|
162
183
|
});
|
|
163
184
|
(0, vitest_1.it)('excludes appeal-system from regular validator run', async () => {
|
|
164
185
|
const validatorsDir = path.join(autoDir, 'validators');
|
|
@@ -187,7 +208,12 @@ You are the appeal system.`);
|
|
|
187
208
|
command: 'git commit -m "Test commit"',
|
|
188
209
|
};
|
|
189
210
|
const result = await (0, pre_tool_use_js_1.handlePreToolUse)(claudeDir, 'session-appeal-exclude', toolInput, { executor });
|
|
190
|
-
(0, vitest_1.expect)(result).toEqual({
|
|
211
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
212
|
+
hookSpecificOutput: {
|
|
213
|
+
hookEventName: 'PreToolUse',
|
|
214
|
+
permissionDecision: 'allow',
|
|
215
|
+
},
|
|
216
|
+
});
|
|
191
217
|
(0, vitest_1.expect)(executor).toHaveBeenCalledTimes(1);
|
|
192
218
|
});
|
|
193
219
|
(0, vitest_1.it)('validates commit when command uses cd into a sub-repo and hook cwd differs', async () => {
|
|
@@ -225,8 +251,11 @@ Validate this commit`);
|
|
|
225
251
|
try {
|
|
226
252
|
const result = await (0, pre_tool_use_js_1.handlePreToolUse)(claudeDir, 'session-cd-fix', toolInput, { executor });
|
|
227
253
|
(0, vitest_1.expect)(result).toEqual({
|
|
228
|
-
|
|
229
|
-
|
|
254
|
+
hookSpecificOutput: {
|
|
255
|
+
hookEventName: 'PreToolUse',
|
|
256
|
+
permissionDecision: 'deny',
|
|
257
|
+
permissionDecisionReason: 'test-validator: Missing tests',
|
|
258
|
+
},
|
|
230
259
|
});
|
|
231
260
|
}
|
|
232
261
|
finally {
|
|
@@ -254,8 +283,11 @@ Check for typos.`);
|
|
|
254
283
|
const toolInput = { command: 'echo hello' };
|
|
255
284
|
const result = await (0, pre_tool_use_js_1.handlePreToolUse)(claudeDir, 'session-5', toolInput, { toolName: 'Bash' });
|
|
256
285
|
(0, vitest_1.expect)(result).toEqual({
|
|
257
|
-
|
|
258
|
-
|
|
286
|
+
hookSpecificOutput: {
|
|
287
|
+
hookEventName: 'PreToolUse',
|
|
288
|
+
permissionDecision: 'allow',
|
|
289
|
+
additionalContext: 'Remember: test && commit || revert',
|
|
290
|
+
},
|
|
259
291
|
});
|
|
260
292
|
});
|
|
261
293
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-tool-use.test.js","sourceRoot":"","sources":["../../../src/hooks/pre-tool-use.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,4CAA8B;AAC9B,gDAAkC;AAElC,mCAAyE;AAEzE,0DAAuD;AACvD,uDAAqD;AAErD,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,OAAe,CAAC;IACpB,IAAI,SAAiB,CAAC;IACtB,IAAI,OAAe,CAAC;IACpB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAEtC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QAClE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1C,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mCAAgB,CAAC,CAAC;QAC/C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAE,YAAY,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,IAAA,kCAAgB,EAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAEzE,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,
|
|
1
|
+
{"version":3,"file":"pre-tool-use.test.js","sourceRoot":"","sources":["../../../src/hooks/pre-tool-use.test.ts"],"names":[],"mappings":"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"}
|