mirror of
https://github.com/Jeuners/ECC.git
synced 2026-09-11 07:52:31 +02:00
fix: bypass GateGuard file gates in subagents (#1710)
This commit is contained in:
parent
f8a0c4f884
commit
7b964402ee
11 changed files with 200 additions and 15 deletions
|
|
@ -376,6 +376,21 @@ function withRecoveryHint(message, hookIds = [EDIT_WRITE_HOOK_ID]) {
|
|||
].join('\n');
|
||||
}
|
||||
|
||||
function isSubagentInvocation(data) {
|
||||
if (!data || typeof data !== 'object') {
|
||||
return false;
|
||||
}
|
||||
|
||||
const candidates = [
|
||||
data.agent_id,
|
||||
data.agentId,
|
||||
data.parent_tool_use_id,
|
||||
data.parentToolUseId
|
||||
];
|
||||
|
||||
return candidates.some(candidate => typeof candidate === 'string' && candidate.trim());
|
||||
}
|
||||
|
||||
// --- Deny helper ---
|
||||
|
||||
function denyResult(reason, options = {}) {
|
||||
|
|
@ -422,6 +437,7 @@ function run(rawInput) {
|
|||
// Normalize: case-insensitive matching via lookup map
|
||||
const TOOL_MAP = { edit: 'Edit', write: 'Write', multiedit: 'MultiEdit', bash: 'Bash' };
|
||||
const toolName = TOOL_MAP[rawToolName.toLowerCase()] || rawToolName;
|
||||
const inSubagent = isSubagentInvocation(data);
|
||||
|
||||
if (toolName === 'Edit' || toolName === 'Write') {
|
||||
const filePath = toolInput.file_path || '';
|
||||
|
|
@ -429,6 +445,10 @@ function run(rawInput) {
|
|||
return rawInput; // allow
|
||||
}
|
||||
|
||||
if (inSubagent) {
|
||||
return rawInput; // parent session already passed the first-touch file gate
|
||||
}
|
||||
|
||||
if (!isChecked(filePath)) {
|
||||
if (!markChecked(filePath)) {
|
||||
return allowWithStateWarning();
|
||||
|
|
@ -440,6 +460,10 @@ function run(rawInput) {
|
|||
}
|
||||
|
||||
if (toolName === 'MultiEdit') {
|
||||
if (inSubagent) {
|
||||
return rawInput; // parent session already passed the first-touch file gate
|
||||
}
|
||||
|
||||
const edits = toolInput.edits || [];
|
||||
for (const edit of edits) {
|
||||
const filePath = edit.file_path || '';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue