(x: { if?: string }, y: { if?: string })
| 41 | // `if` is part of identity: same command with different `if` conditions |
| 42 | // are distinct hooks (e.g., setup.sh if=Bash(git *) vs if=Bash(npm *)). |
| 43 | const sameIf = (x: { if?: string }, y: { if?: string }) => |
| 44 | (x.if ?? '') === (y.if ?? '') |
| 45 | switch (a.type) { |
| 46 | case 'command': |
| 47 | // shell is part of identity: same command string with different |