heyspex 0.2.0 → 0.2.2
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/.claude-plugin/marketplace.json +14 -0
- package/bin/hs.mjs +181 -15
- package/dist/cli/hs-check.mjs +88 -46
- package/dist/cli/hs-claim.mjs +84 -39
- package/dist/cli/hs-connect.mjs +583 -129
- package/dist/cli/hs-defer.mjs +251 -30
- package/dist/cli/hs-dev.mjs +20 -8
- package/dist/cli/hs-env.mjs +62 -34
- package/dist/cli/hs-index-rebuild.mjs +288 -83
- package/dist/cli/hs-index-reconcile.mjs +397 -111
- package/dist/cli/hs-init.mjs +2143 -91
- package/dist/cli/hs-install.mjs +628 -106
- package/dist/cli/hs-join.mjs +686 -236
- package/dist/cli/hs-vault-pull.mjs +3189 -179
- package/dist/cli/hs-vault-push.mjs +6433 -0
- package/dist/cli/hs-vault.mjs +396 -178
- package/dist/cli/hs-workspace.mjs +289 -151
- package/dist/cli-templates/harness-commands/claude/hs-backfill.md +28 -28
- package/dist/cli-templates/harness-commands/claude/hs-capture.md +62 -62
- package/dist/cli-templates/harness-commands/claude/hs-defer.md +29 -29
- package/dist/cli-templates/harness-commands/claude/hs-ground.md +30 -28
- package/dist/cli-templates/harness-commands/claude/hs-next.md +29 -29
- package/dist/cli-templates/harness-commands/claude/hs-promote.md +70 -70
- package/dist/cli-templates/harness-commands/claude/hs-push.md +35 -35
- package/dist/cli-templates/harness-commands/claude/hs-qc.md +27 -27
- package/dist/cli-templates/harness-commands/claude/hs-resolve.md +23 -23
- package/dist/cli-templates/harness-commands/claude/hs-review.md +23 -23
- package/dist/cli-templates/harness-commands/claude/hs-view.md +28 -26
- package/dist/cli-templates/harness-commands/claude/kill-ports.md +32 -32
- package/dist/cli-templates/harness-commands/claude/prototype.md +91 -91
- package/dist/cli-templates/harness-commands/cursor/hs-backfill.md +22 -22
- package/dist/cli-templates/harness-commands/cursor/hs-capture.md +56 -56
- package/dist/cli-templates/harness-commands/cursor/hs-defer.md +23 -23
- package/dist/cli-templates/harness-commands/cursor/hs-ground.md +24 -22
- package/dist/cli-templates/harness-commands/cursor/hs-next.md +23 -23
- package/dist/cli-templates/harness-commands/cursor/hs-promote.md +64 -64
- package/dist/cli-templates/harness-commands/cursor/hs-push.md +29 -29
- package/dist/cli-templates/harness-commands/cursor/hs-qc.md +21 -21
- package/dist/cli-templates/harness-commands/cursor/hs-resolve.md +17 -17
- package/dist/cli-templates/harness-commands/cursor/hs-review.md +17 -17
- package/dist/cli-templates/harness-commands/cursor/hs-view.md +24 -22
- package/dist/cli-templates/harness-commands/cursor/kill-ports.md +26 -26
- package/dist/cli-templates/harness-commands/cursor/prototype.md +86 -86
- package/docs/copilot-plugin-install.md +177 -0
- package/docs/driving-heyspex-from-copilot.md +165 -0
- package/package.json +21 -2
- package/plugins/heyspex/.claude-plugin/plugin.json +12 -12
- package/plugins/heyspex/.cursor-plugin/plugin.json +15 -15
- package/plugins/heyspex/README.md +312 -0
- package/plugins/heyspex/bin/run-hook.mjs +20 -2
- package/plugins/heyspex/hooks/cursor-hooks.json +81 -0
- package/plugins/heyspex/hooks/hooks.json +94 -37
- package/scripts/claude-hooks/_intent-classifier-router.mjs +456 -410
- package/scripts/claude-hooks/_intent-classifier-semantic.mjs +5 -0
- package/scripts/claude-hooks/_run.mjs +316 -23
- package/scripts/claude-hooks/capture-execution-gate.mjs +51 -0
- package/scripts/claude-hooks/claim-liveness-shared.mjs +2 -0
- package/scripts/claude-hooks/diagnose-capture-reminder.mjs +11 -0
- package/scripts/claude-hooks/directive-obligation-gate.mjs +11 -0
- package/scripts/claude-hooks/inject-communication-style.mjs +20 -0
- package/scripts/claude-hooks/intent-classifier-trigger.mjs +279 -247
- package/scripts/claude-hooks/session-end.mjs +2 -0
- package/scripts/claude-hooks/vault-mirror-catchup.mjs +11 -0
- package/scripts/claude-hooks/vault-write-tier-guard.mjs +11 -0
- package/scripts/claude-hooks/wip-checkpoint.mjs +5 -1
- package/scripts/cursor-hooks/manifest.mjs +46 -0
- package/scripts/heyspex-mode.mjs +20 -0
- package/scripts/hs-mode.mjs +1 -1
- package/scripts/hs-view.mjs +180 -17
- package/scripts/install-claude-code-hooks.mjs +3 -1
- package/scripts/install-copilot-hooks.mjs +288 -0
- package/scripts/lib/console-url-resolver.mjs +3 -2
- package/scripts/lib/customer-kit.mjs +327 -10
- package/scripts/lib/dev-mode.mjs +7 -6
- package/scripts/lib/directive-obligations.mjs +349 -0
- package/scripts/lib/hook-dispositions.mjs +210 -0
- package/scripts/lib/hook-vault-header.mjs +30 -0
- package/scripts/lib/hs-source-branch.mjs +196 -0
- package/scripts/lib/hs-source-log.mjs +2 -1
- package/scripts/lib/hs-source-preflight.mjs +18 -4
- package/scripts/lib/hs-source-push.mjs +386 -356
- package/scripts/lib/window-placement.mjs +109 -0
- package/spexharness/src/adapters/claude-code.mjs +11 -3
- package/spexharness/src/adapters/copilot.mjs +236 -0
- package/spexharness/src/adapters/detect-harness.mjs +34 -0
- package/spexharness/src/gates/_shell-write-targets.mjs +77 -0
- package/spexharness/src/gates/deep-research-cost-gate.mjs +4 -3
- package/spexharness/src/gates/diagnose-capture-reminder.mjs +112 -0
- package/spexharness/src/gates/directive-obligation-gate.decide.mjs +132 -0
- package/spexharness/src/gates/directive-obligation-gate.mjs +183 -0
- package/spexharness/src/gates/vault-mirror-catchup.mjs +124 -0
- package/spexharness/src/gates/vault-write-tier-guard.decide.mjs +125 -0
- package/spexharness/src/gates/vault-write-tier-guard.mjs +42 -0
- package/spexharness/src/intent-classifier.mjs +4 -2
- package/spexharness/src/intent-directive.mjs +626 -541
- package/spexharness/src/rule-table.mjs +31 -1
- package/vendor/heyspex-mcp/account-switch.mjs +6 -5
- package/vendor/heyspex-mcp/capture-buffer-patches.mjs +31 -3
- package/vendor/heyspex-mcp/capture-console-client.mjs +37 -2
- package/vendor/heyspex-mcp/capture-focus.mjs +26 -2
- package/vendor/heyspex-mcp/capture-outbox.mjs +10 -4
- package/vendor/heyspex-mcp/capture-sources.mjs +195 -0
- package/vendor/heyspex-mcp/capture-tools.mjs +56 -11
- package/vendor/heyspex-mcp/claim-tools.mjs +25 -2
- package/vendor/heyspex-mcp/cli-verbs.mjs +19 -21
- package/vendor/heyspex-mcp/cli.mjs +7 -1
- package/vendor/heyspex-mcp/close-branch-report.mjs +102 -0
- package/vendor/heyspex-mcp/cloud-vault-writes.mjs +197 -7
- package/vendor/heyspex-mcp/console-fetch.mjs +192 -28
- package/vendor/heyspex-mcp/console-transport.mjs +7 -1
- package/vendor/heyspex-mcp/credentials.mjs +9 -8
- package/vendor/heyspex-mcp/dev-tools.mjs +7 -0
- package/vendor/heyspex-mcp/filing-tools.mjs +35 -0
- package/vendor/heyspex-mcp/fleet-queue-tools.mjs +2 -1
- package/vendor/heyspex-mcp/folder-trust-store.mjs +2 -1
- package/vendor/heyspex-mcp/http-transport.mjs +2 -0
- package/vendor/heyspex-mcp/list-tools.mjs +1 -1
- package/vendor/heyspex-mcp/mcp-config.mjs +14 -1
- package/vendor/heyspex-mcp/memory-tools.mjs +523 -523
- package/vendor/heyspex-mcp/obligation-backstop.mjs +103 -0
- package/vendor/heyspex-mcp/occupied-keys.mjs +1 -0
- package/vendor/heyspex-mcp/on-deck-brief.mjs +19 -2
- package/vendor/heyspex-mcp/on-deck-scheduler.mjs +1708 -1708
- package/vendor/heyspex-mcp/plan-push.mjs +3 -2
- package/vendor/heyspex-mcp/preflight-gate.mjs +1 -0
- package/vendor/heyspex-mcp/procedure-handlers.mjs +327 -325
- package/vendor/heyspex-mcp/procedure-tools.mjs +1181 -1159
- package/vendor/heyspex-mcp/promote-capture.mjs +2 -0
- package/vendor/heyspex-mcp/promote-research.mjs +6 -0
- package/vendor/heyspex-mcp/read-path.mjs +162 -6
- package/vendor/heyspex-mcp/request-context.mjs +25 -1
- package/vendor/heyspex-mcp/research-handlers.mjs +6 -4
- package/vendor/heyspex-mcp/roadmap-default.mjs +70 -0
- package/vendor/heyspex-mcp/session-owner.mjs +3 -2
- package/vendor/heyspex-mcp/session-tools.mjs +10 -0
- package/vendor/heyspex-mcp/spec-edit-tools.mjs +8 -1
- package/vendor/heyspex-mcp/split-research.mjs +3 -0
- package/vendor/heyspex-mcp/submit-for-review.mjs +18 -1
- package/vendor/heyspex-mcp/summary-write-tools.mjs +5 -1
- package/vendor/heyspex-mcp/test-helpers.mjs +18 -3
- package/vendor/heyspex-mcp/tool-catalog.mjs +7 -1
- package/vendor/heyspex-mcp/tool-dispatch.mjs +18 -0
- package/vendor/heyspex-mcp/vault-io.mjs +720 -724
- package/vendor/heyspex-mcp/vault-resolve.mjs +197 -9
- package/vendor/heyspex-mcp/whoami.mjs +2 -1
- package/vendor/heyspex-mcp/write-outbox.mjs +512 -0
|
@@ -19,12 +19,26 @@
|
|
|
19
19
|
// 4. node_modules/heyspex containing this launcher (published package)
|
|
20
20
|
// 5. $CLAUDE_PROJECT_DIR, $CURSOR_PROJECT_DIR (the platform repo itself)
|
|
21
21
|
//
|
|
22
|
-
// Fail-open like the shim: nothing found → one stderr line, exit 0.
|
|
22
|
+
// Fail-open like the shim: nothing found → one stderr line, exit 0. This matters most on GitHub Copilot, which
|
|
23
|
+
// turns ANY non-zero hook exit into a deny: a failed shim import, a throw while the shim loads, an unhandled
|
|
24
|
+
// rejection or an uncaught exception all log to stderr and exit 0 here. (The launcher cannot know the harness
|
|
25
|
+
// before the shim reads stdin; for Claude Code a crash exit was already non-blocking, so exiting 0 only changes
|
|
26
|
+
// the exit status, never a decision. Deliberate exit codes - the shim's legacy `exit 2` deny - pass through.)
|
|
23
27
|
|
|
24
28
|
import { existsSync } from 'node:fs';
|
|
25
29
|
import { dirname, resolve, sep } from 'node:path';
|
|
26
30
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
27
31
|
|
|
32
|
+
function failOpen(what) {
|
|
33
|
+
return (err) => {
|
|
34
|
+
try { process.stderr.write(`[heyspex plugin] hook ${process.argv[2] ?? '?'} ${what} (failing open): ${err?.message ?? err}
|
|
35
|
+
`); } catch { /* ignore */ }
|
|
36
|
+
process.exit(0);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
process.on('uncaughtException', failOpen('crashed'));
|
|
40
|
+
process.on('unhandledRejection', failOpen('rejected'));
|
|
41
|
+
|
|
28
42
|
const SHIM_REL = ['scripts', 'claude-hooks', '_run.mjs'];
|
|
29
43
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
30
44
|
|
|
@@ -59,4 +73,8 @@ if (!shim) {
|
|
|
59
73
|
}
|
|
60
74
|
|
|
61
75
|
// argv is already [node, <this>, <hook>, ...args] — the shape _run.mjs reads.
|
|
62
|
-
|
|
76
|
+
try {
|
|
77
|
+
await import(pathToFileURL(shim).href);
|
|
78
|
+
} catch (err) {
|
|
79
|
+
failOpen('failed to load the shim')(err);
|
|
80
|
+
}
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" inject-coo-seat",
|
|
16
16
|
"timeout": 5
|
|
17
17
|
},
|
|
18
|
+
{
|
|
19
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" inject-doctrine",
|
|
20
|
+
"timeout": 5
|
|
21
|
+
},
|
|
18
22
|
{
|
|
19
23
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" coo-guard-check",
|
|
20
24
|
"timeout": 5
|
|
@@ -30,6 +34,14 @@
|
|
|
30
34
|
{
|
|
31
35
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" check-mcp-freshness-hook",
|
|
32
36
|
"timeout": 5
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" git-reflog-audit",
|
|
40
|
+
"timeout": 5
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" vault-mirror-catchup",
|
|
44
|
+
"timeout": 5
|
|
33
45
|
}
|
|
34
46
|
],
|
|
35
47
|
"preCompact": [
|
|
@@ -50,6 +62,10 @@
|
|
|
50
62
|
{
|
|
51
63
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" inject-communication-style",
|
|
52
64
|
"timeout": 5
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" inject-vault-context",
|
|
68
|
+
"timeout": 10
|
|
53
69
|
}
|
|
54
70
|
],
|
|
55
71
|
"preToolUse": [
|
|
@@ -73,6 +89,11 @@
|
|
|
73
89
|
"timeout": 5,
|
|
74
90
|
"matcher": "Write|Delete"
|
|
75
91
|
},
|
|
92
|
+
{
|
|
93
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" vault-write-tier-guard",
|
|
94
|
+
"timeout": 5,
|
|
95
|
+
"matcher": "Write"
|
|
96
|
+
},
|
|
76
97
|
{
|
|
77
98
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" settings-write-gate",
|
|
78
99
|
"timeout": 5,
|
|
@@ -98,6 +119,11 @@
|
|
|
98
119
|
"timeout": 5,
|
|
99
120
|
"matcher": "Write"
|
|
100
121
|
},
|
|
122
|
+
{
|
|
123
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" directive-obligation-gate",
|
|
124
|
+
"timeout": 5,
|
|
125
|
+
"matcher": "Write"
|
|
126
|
+
},
|
|
101
127
|
{
|
|
102
128
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" coo-guard-check --hs-tool=\"heyspex_claim_spec$\"",
|
|
103
129
|
"timeout": 5,
|
|
@@ -118,6 +144,16 @@
|
|
|
118
144
|
"timeout": 10,
|
|
119
145
|
"matcher": ".*"
|
|
120
146
|
},
|
|
147
|
+
{
|
|
148
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" diagnose-capture-reminder --hs-tool=\"heyspex_file_spec$\"",
|
|
149
|
+
"timeout": 5,
|
|
150
|
+
"matcher": ".*"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" research-method-guard --hs-tool=\"^(Workflow|Skill)$\"",
|
|
154
|
+
"timeout": 5,
|
|
155
|
+
"matcher": ".*"
|
|
156
|
+
},
|
|
121
157
|
{
|
|
122
158
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" deep-research-cost-gate --hs-tool=\"^(Workflow|Skill)$\"",
|
|
123
159
|
"timeout": 5,
|
|
@@ -134,6 +170,10 @@
|
|
|
134
170
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" env-vault-guard",
|
|
135
171
|
"timeout": 5
|
|
136
172
|
},
|
|
173
|
+
{
|
|
174
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" vault-write-tier-guard",
|
|
175
|
+
"timeout": 5
|
|
176
|
+
},
|
|
137
177
|
{
|
|
138
178
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" settings-write-gate",
|
|
139
179
|
"timeout": 5
|
|
@@ -157,12 +197,32 @@
|
|
|
157
197
|
{
|
|
158
198
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" git-stash-gate",
|
|
159
199
|
"timeout": 10
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" git-identity-guard",
|
|
203
|
+
"timeout": 5
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" capture-execution-gate",
|
|
207
|
+
"timeout": 5
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" directive-obligation-gate",
|
|
211
|
+
"timeout": 5
|
|
160
212
|
}
|
|
161
213
|
],
|
|
162
214
|
"subagentStart": [
|
|
163
215
|
{
|
|
164
216
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" agent-spawn-delegation-gate",
|
|
165
217
|
"timeout": 5
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" capture-execution-gate",
|
|
221
|
+
"timeout": 5
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" directive-obligation-gate",
|
|
225
|
+
"timeout": 5
|
|
166
226
|
}
|
|
167
227
|
],
|
|
168
228
|
"postToolUse": [
|
|
@@ -176,6 +236,11 @@
|
|
|
176
236
|
"timeout": 5,
|
|
177
237
|
"matcher": ".*"
|
|
178
238
|
},
|
|
239
|
+
{
|
|
240
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" directive-obligation-gate",
|
|
241
|
+
"timeout": 5,
|
|
242
|
+
"matcher": ".*"
|
|
243
|
+
},
|
|
179
244
|
{
|
|
180
245
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" close-terminal-on-ship",
|
|
181
246
|
"timeout": 5,
|
|
@@ -208,9 +273,25 @@
|
|
|
208
273
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" naughty-list-gate",
|
|
209
274
|
"timeout": 5
|
|
210
275
|
},
|
|
276
|
+
{
|
|
277
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" id-display-format-gate",
|
|
278
|
+
"timeout": 5
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" epic-milestone-phrasing-gate",
|
|
282
|
+
"timeout": 5
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" git-reflog-audit",
|
|
286
|
+
"timeout": 5
|
|
287
|
+
},
|
|
211
288
|
{
|
|
212
289
|
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" enforce-session-sequence",
|
|
213
290
|
"timeout": 5
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"command": "node \"$CURSOR_PROJECT_DIR/scripts/cursor-hooks/_run.mjs\" directive-obligation-gate",
|
|
294
|
+
"timeout": 5
|
|
214
295
|
}
|
|
215
296
|
],
|
|
216
297
|
"sessionEnd": [
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_comment": "GENERATED from scripts/lib/customer-kit.mjs (customer-scoped rows only) — do not edit by hand; run `node scripts/lib/customer-kit.mjs --write-plugin-hooks`. Every command goes through bin/run-hook.mjs, which finds the hook runtime (HEYSPEX_PLATFORM_ROOT / HEYSPEX_MCP_ENTRY when set in the machine's own env, then the plugin's own location, node_modules/heyspex, $CLAUDE_PROJECT_DIR) — never $CLAUDE_PROJECT_DIR/scripts, which only exists in heyspex-app. WARNING: a repo whose .claude/settings.json already carries the hs install kit hooks runs every hook twice if this plugin is also enabled — use one or the other.",
|
|
3
2
|
"hooks": {
|
|
4
3
|
"SessionStart": [
|
|
5
4
|
{
|
|
6
5
|
"hooks": [
|
|
7
6
|
{
|
|
8
7
|
"type": "command",
|
|
9
|
-
"command": "node \"
|
|
8
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" wip-checkpoint",
|
|
10
9
|
"timeout": 5
|
|
11
10
|
}
|
|
12
11
|
]
|
|
@@ -15,7 +14,7 @@
|
|
|
15
14
|
"hooks": [
|
|
16
15
|
{
|
|
17
16
|
"type": "command",
|
|
18
|
-
"command": "node \"
|
|
17
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" inject-doctrine",
|
|
19
18
|
"timeout": 5
|
|
20
19
|
}
|
|
21
20
|
]
|
|
@@ -24,7 +23,7 @@
|
|
|
24
23
|
"hooks": [
|
|
25
24
|
{
|
|
26
25
|
"type": "command",
|
|
27
|
-
"command": "node \"
|
|
26
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" check-auto-memory-budget",
|
|
28
27
|
"timeout": 5
|
|
29
28
|
}
|
|
30
29
|
]
|
|
@@ -33,7 +32,7 @@
|
|
|
33
32
|
"hooks": [
|
|
34
33
|
{
|
|
35
34
|
"type": "command",
|
|
36
|
-
"command": "node \"
|
|
35
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" check-claude-md-budget",
|
|
37
36
|
"timeout": 5
|
|
38
37
|
}
|
|
39
38
|
]
|
|
@@ -42,7 +41,16 @@
|
|
|
42
41
|
"hooks": [
|
|
43
42
|
{
|
|
44
43
|
"type": "command",
|
|
45
|
-
"command": "node \"
|
|
44
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" git-reflog-audit",
|
|
45
|
+
"timeout": 5
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"hooks": [
|
|
51
|
+
{
|
|
52
|
+
"type": "command",
|
|
53
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" vault-mirror-catchup",
|
|
46
54
|
"timeout": 5
|
|
47
55
|
}
|
|
48
56
|
]
|
|
@@ -53,7 +61,7 @@
|
|
|
53
61
|
"hooks": [
|
|
54
62
|
{
|
|
55
63
|
"type": "command",
|
|
56
|
-
"command": "node \"
|
|
64
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" wip-checkpoint",
|
|
57
65
|
"timeout": 5
|
|
58
66
|
}
|
|
59
67
|
]
|
|
@@ -64,7 +72,7 @@
|
|
|
64
72
|
"hooks": [
|
|
65
73
|
{
|
|
66
74
|
"type": "command",
|
|
67
|
-
"command": "node \"
|
|
75
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" preflight-reminder",
|
|
68
76
|
"timeout": 5
|
|
69
77
|
}
|
|
70
78
|
]
|
|
@@ -73,7 +81,7 @@
|
|
|
73
81
|
"hooks": [
|
|
74
82
|
{
|
|
75
83
|
"type": "command",
|
|
76
|
-
"command": "node \"
|
|
84
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" intent-classifier-trigger",
|
|
77
85
|
"timeout": 5
|
|
78
86
|
}
|
|
79
87
|
]
|
|
@@ -82,7 +90,7 @@
|
|
|
82
90
|
"hooks": [
|
|
83
91
|
{
|
|
84
92
|
"type": "command",
|
|
85
|
-
"command": "node \"
|
|
93
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" inject-communication-style",
|
|
86
94
|
"timeout": 5
|
|
87
95
|
}
|
|
88
96
|
]
|
|
@@ -91,7 +99,7 @@
|
|
|
91
99
|
"hooks": [
|
|
92
100
|
{
|
|
93
101
|
"type": "command",
|
|
94
|
-
"command": "node \"
|
|
102
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" inject-vault-context",
|
|
95
103
|
"timeout": 10
|
|
96
104
|
}
|
|
97
105
|
]
|
|
@@ -103,7 +111,17 @@
|
|
|
103
111
|
"hooks": [
|
|
104
112
|
{
|
|
105
113
|
"type": "command",
|
|
106
|
-
"command": "node \"
|
|
114
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" git-identity-guard",
|
|
115
|
+
"timeout": 5
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"matcher": "Write|Edit|MultiEdit|NotebookEdit|Bash|PowerShell",
|
|
121
|
+
"hooks": [
|
|
122
|
+
{
|
|
123
|
+
"type": "command",
|
|
124
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" vault-write-tier-guard",
|
|
107
125
|
"timeout": 5
|
|
108
126
|
}
|
|
109
127
|
]
|
|
@@ -113,7 +131,7 @@
|
|
|
113
131
|
"hooks": [
|
|
114
132
|
{
|
|
115
133
|
"type": "command",
|
|
116
|
-
"command": "node \"
|
|
134
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" settings-write-gate",
|
|
117
135
|
"timeout": 5
|
|
118
136
|
}
|
|
119
137
|
]
|
|
@@ -123,7 +141,17 @@
|
|
|
123
141
|
"hooks": [
|
|
124
142
|
{
|
|
125
143
|
"type": "command",
|
|
126
|
-
"command": "node \"
|
|
144
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" emit-claim-status --event=PreToolUse",
|
|
145
|
+
"timeout": 5
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"matcher": "Agent|Task|Edit|Write|MultiEdit|NotebookEdit|Bash|PowerShell",
|
|
151
|
+
"hooks": [
|
|
152
|
+
{
|
|
153
|
+
"type": "command",
|
|
154
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" directive-obligation-gate",
|
|
127
155
|
"timeout": 5
|
|
128
156
|
}
|
|
129
157
|
]
|
|
@@ -133,7 +161,7 @@
|
|
|
133
161
|
"hooks": [
|
|
134
162
|
{
|
|
135
163
|
"type": "command",
|
|
136
|
-
"command": "node \"
|
|
164
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" enforce-vault-naming",
|
|
137
165
|
"timeout": 5
|
|
138
166
|
}
|
|
139
167
|
]
|
|
@@ -143,7 +171,7 @@
|
|
|
143
171
|
"hooks": [
|
|
144
172
|
{
|
|
145
173
|
"type": "command",
|
|
146
|
-
"command": "node \"
|
|
174
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" guard-auto-memory-writes",
|
|
147
175
|
"timeout": 5
|
|
148
176
|
}
|
|
149
177
|
]
|
|
@@ -153,7 +181,7 @@
|
|
|
153
181
|
"hooks": [
|
|
154
182
|
{
|
|
155
183
|
"type": "command",
|
|
156
|
-
"command": "node \"
|
|
184
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" preflight-reminder",
|
|
157
185
|
"timeout": 5
|
|
158
186
|
}
|
|
159
187
|
]
|
|
@@ -163,7 +191,7 @@
|
|
|
163
191
|
"hooks": [
|
|
164
192
|
{
|
|
165
193
|
"type": "command",
|
|
166
|
-
"command": "node \"
|
|
194
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" plan-review-gate",
|
|
167
195
|
"timeout": 8
|
|
168
196
|
}
|
|
169
197
|
]
|
|
@@ -173,7 +201,7 @@
|
|
|
173
201
|
"hooks": [
|
|
174
202
|
{
|
|
175
203
|
"type": "command",
|
|
176
|
-
"command": "node \"
|
|
204
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" plan-exit-ingest-gate",
|
|
177
205
|
"timeout": 5
|
|
178
206
|
}
|
|
179
207
|
]
|
|
@@ -183,7 +211,7 @@
|
|
|
183
211
|
"hooks": [
|
|
184
212
|
{
|
|
185
213
|
"type": "command",
|
|
186
|
-
"command": "node \"
|
|
214
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" claim-before-code-gate",
|
|
187
215
|
"timeout": 5
|
|
188
216
|
}
|
|
189
217
|
]
|
|
@@ -193,17 +221,27 @@
|
|
|
193
221
|
"hooks": [
|
|
194
222
|
{
|
|
195
223
|
"type": "command",
|
|
196
|
-
"command": "node \"
|
|
224
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" capture-workflow-gate",
|
|
197
225
|
"timeout": 8
|
|
198
226
|
}
|
|
199
227
|
]
|
|
200
228
|
},
|
|
229
|
+
{
|
|
230
|
+
"matcher": "mcp__heyspex__heyspex_file_spec|mcp__plugin_heyspex_heyspex__heyspex_file_spec",
|
|
231
|
+
"hooks": [
|
|
232
|
+
{
|
|
233
|
+
"type": "command",
|
|
234
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" diagnose-capture-reminder",
|
|
235
|
+
"timeout": 5
|
|
236
|
+
}
|
|
237
|
+
]
|
|
238
|
+
},
|
|
201
239
|
{
|
|
202
240
|
"matcher": "Bash|PowerShell",
|
|
203
241
|
"hooks": [
|
|
204
242
|
{
|
|
205
243
|
"type": "command",
|
|
206
|
-
"command": "node \"
|
|
244
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" git-stash-gate",
|
|
207
245
|
"timeout": 10
|
|
208
246
|
}
|
|
209
247
|
]
|
|
@@ -213,7 +251,7 @@
|
|
|
213
251
|
"hooks": [
|
|
214
252
|
{
|
|
215
253
|
"type": "command",
|
|
216
|
-
"command": "node \"
|
|
254
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" research-method-guard",
|
|
217
255
|
"timeout": 5
|
|
218
256
|
}
|
|
219
257
|
]
|
|
@@ -223,7 +261,7 @@
|
|
|
223
261
|
"hooks": [
|
|
224
262
|
{
|
|
225
263
|
"type": "command",
|
|
226
|
-
"command": "node \"
|
|
264
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" deep-research-cost-gate",
|
|
227
265
|
"timeout": 5
|
|
228
266
|
}
|
|
229
267
|
]
|
|
@@ -233,7 +271,7 @@
|
|
|
233
271
|
"hooks": [
|
|
234
272
|
{
|
|
235
273
|
"type": "command",
|
|
236
|
-
"command": "node \"
|
|
274
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" research-protocol-gate",
|
|
237
275
|
"timeout": 5
|
|
238
276
|
}
|
|
239
277
|
]
|
|
@@ -244,7 +282,16 @@
|
|
|
244
282
|
"hooks": [
|
|
245
283
|
{
|
|
246
284
|
"type": "command",
|
|
247
|
-
"command": "node \"
|
|
285
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" emit-claim-status --event=Stop",
|
|
286
|
+
"timeout": 5
|
|
287
|
+
}
|
|
288
|
+
]
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"hooks": [
|
|
292
|
+
{
|
|
293
|
+
"type": "command",
|
|
294
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" naughty-list-gate",
|
|
248
295
|
"timeout": 5
|
|
249
296
|
}
|
|
250
297
|
]
|
|
@@ -253,7 +300,7 @@
|
|
|
253
300
|
"hooks": [
|
|
254
301
|
{
|
|
255
302
|
"type": "command",
|
|
256
|
-
"command": "node \"
|
|
303
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" id-display-format-gate",
|
|
257
304
|
"timeout": 5
|
|
258
305
|
}
|
|
259
306
|
]
|
|
@@ -262,7 +309,7 @@
|
|
|
262
309
|
"hooks": [
|
|
263
310
|
{
|
|
264
311
|
"type": "command",
|
|
265
|
-
"command": "node \"
|
|
312
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" epic-milestone-phrasing-gate",
|
|
266
313
|
"timeout": 5
|
|
267
314
|
}
|
|
268
315
|
]
|
|
@@ -271,7 +318,7 @@
|
|
|
271
318
|
"hooks": [
|
|
272
319
|
{
|
|
273
320
|
"type": "command",
|
|
274
|
-
"command": "node \"
|
|
321
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" git-reflog-audit",
|
|
275
322
|
"timeout": 5
|
|
276
323
|
}
|
|
277
324
|
]
|
|
@@ -280,7 +327,7 @@
|
|
|
280
327
|
"hooks": [
|
|
281
328
|
{
|
|
282
329
|
"type": "command",
|
|
283
|
-
"command": "node \"
|
|
330
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" enforce-session-sequence",
|
|
284
331
|
"timeout": 5
|
|
285
332
|
}
|
|
286
333
|
]
|
|
@@ -289,7 +336,7 @@
|
|
|
289
336
|
"hooks": [
|
|
290
337
|
{
|
|
291
338
|
"type": "command",
|
|
292
|
-
"command": "node \"
|
|
339
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" directive-obligation-gate",
|
|
293
340
|
"timeout": 5
|
|
294
341
|
}
|
|
295
342
|
]
|
|
@@ -301,7 +348,17 @@
|
|
|
301
348
|
"hooks": [
|
|
302
349
|
{
|
|
303
350
|
"type": "command",
|
|
304
|
-
"command": "node \"
|
|
351
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" emit-claim-status --event=PostToolUse",
|
|
352
|
+
"timeout": 5
|
|
353
|
+
}
|
|
354
|
+
]
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"matcher": "Skill|mcp__heyspex__heyspex_update_capture|mcp__plugin_heyspex_heyspex__heyspex_update_capture|mcp__heyspex__heyspex_promote_capture.*|mcp__plugin_heyspex_heyspex__heyspex_promote_capture.*|mcp__heyspex__heyspex_file_spec|mcp__plugin_heyspex_heyspex__heyspex_file_spec|mcp__heyspex__heyspex_claim_spec|mcp__plugin_heyspex_heyspex__heyspex_claim_spec|mcp__heyspex__heyspex_release_spec|mcp__plugin_heyspex_heyspex__heyspex_release_spec|mcp__heyspex__heyspex_defer_spec|mcp__plugin_heyspex_heyspex__heyspex_defer_spec",
|
|
358
|
+
"hooks": [
|
|
359
|
+
{
|
|
360
|
+
"type": "command",
|
|
361
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" directive-obligation-gate",
|
|
305
362
|
"timeout": 5
|
|
306
363
|
}
|
|
307
364
|
]
|
|
@@ -311,7 +368,7 @@
|
|
|
311
368
|
"hooks": [
|
|
312
369
|
{
|
|
313
370
|
"type": "command",
|
|
314
|
-
"command": "node \"
|
|
371
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" notify-status-flip",
|
|
315
372
|
"timeout": 5
|
|
316
373
|
}
|
|
317
374
|
]
|
|
@@ -321,7 +378,7 @@
|
|
|
321
378
|
"hooks": [
|
|
322
379
|
{
|
|
323
380
|
"type": "command",
|
|
324
|
-
"command": "node \"
|
|
381
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" close-terminal-on-ship",
|
|
325
382
|
"timeout": 5
|
|
326
383
|
}
|
|
327
384
|
]
|
|
@@ -331,7 +388,7 @@
|
|
|
331
388
|
"hooks": [
|
|
332
389
|
{
|
|
333
390
|
"type": "command",
|
|
334
|
-
"command": "node \"
|
|
391
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" scripts/stamp-provenance-on-edit.mjs",
|
|
335
392
|
"timeout": 5
|
|
336
393
|
}
|
|
337
394
|
]
|
|
@@ -342,7 +399,7 @@
|
|
|
342
399
|
"hooks": [
|
|
343
400
|
{
|
|
344
401
|
"type": "command",
|
|
345
|
-
"command": "node \"
|
|
402
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" session-end",
|
|
346
403
|
"timeout": 5
|
|
347
404
|
}
|
|
348
405
|
]
|
|
@@ -351,7 +408,7 @@
|
|
|
351
408
|
"hooks": [
|
|
352
409
|
{
|
|
353
410
|
"type": "command",
|
|
354
|
-
"command": "node \"
|
|
411
|
+
"command": "node -e \"var f=require('fs'),p=require('path'),u=require('url'),e=process.env,n=['scripts','claude-hooks','_run.mjs'],s='',m=e.CLAUDE_PLUGIN_ROOT||e.COPILOT_PLUGIN_ROOT||e.PLUGIN_ROOT;if(m&&f.existsSync(p.join(m,'bin','run-hook.mjs')))s=p.join(m,'bin','run-hook.mjs');if(!s){var d=process.cwd(),r=e.CLAUDE_PROJECT_DIR;if(!r||!f.existsSync(p.join(r,...n))){r='';for(;;){if(f.existsSync(p.join(d,...n))){r=d;break}var q=p.dirname(d);if(q===d)break;d=q}}if(r){e.CLAUDE_PROJECT_DIR=r;s=p.join(r,...n)}}if(!s)process.exit(0);process.argv=[process.argv[0],s].concat(process.argv.slice(1));import(u.pathToFileURL(s).href).catch(function(){process.exit(0)});//bin/run-hook.mjs\" close-terminal-on-ship",
|
|
355
412
|
"timeout": 5
|
|
356
413
|
}
|
|
357
414
|
]
|