@ironbee-ai/cli 0.8.3 → 0.9.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/CHANGELOG.md +12 -0
- package/README.md +42 -17
- package/dist/analytics/projection.d.ts.map +1 -1
- package/dist/analytics/projection.js +28 -14
- package/dist/analytics/projection.js.map +1 -1
- package/dist/clients/claude/commands/ironbee-verify.md +19 -106
- package/dist/clients/claude/hooks/require-verdict.d.ts +3 -3
- package/dist/clients/claude/hooks/require-verdict.js +5 -5
- package/dist/clients/claude/hooks/require-verification.d.ts +6 -5
- package/dist/clients/claude/hooks/require-verification.d.ts.map +1 -1
- package/dist/clients/claude/hooks/require-verification.js +20 -17
- package/dist/clients/claude/hooks/require-verification.js.map +1 -1
- package/dist/clients/claude/hooks/track-action-monitor.d.ts.map +1 -1
- package/dist/clients/claude/hooks/track-action-monitor.js +4 -1
- package/dist/clients/claude/hooks/track-action-monitor.js.map +1 -1
- package/dist/clients/claude/hooks/track-action.d.ts +11 -8
- package/dist/clients/claude/hooks/track-action.d.ts.map +1 -1
- package/dist/clients/claude/hooks/track-action.js +14 -9
- package/dist/clients/claude/hooks/track-action.js.map +1 -1
- package/dist/clients/claude/index.d.ts.map +1 -1
- package/dist/clients/claude/index.js +79 -18
- package/dist/clients/claude/index.js.map +1 -1
- package/dist/clients/claude/platforms/command-verify.backend.md +74 -0
- package/dist/clients/claude/platforms/command-verify.browser.md +108 -0
- package/dist/clients/claude/platforms/command-verify.node.md +67 -0
- package/dist/clients/claude/platforms/rule.backend.md +23 -0
- package/dist/clients/claude/platforms/rule.browser.md +17 -0
- package/dist/clients/claude/{fragments → platforms}/rule.node.md +3 -3
- package/dist/clients/claude/platforms/skill.backend.md +65 -0
- package/dist/clients/claude/platforms/skill.browser.md +31 -0
- package/dist/clients/claude/{fragments → platforms}/skill.node.md +2 -2
- package/dist/clients/claude/rules/ironbee-verification.md +14 -13
- package/dist/clients/claude/skills/ironbee-verification.md +19 -49
- package/dist/clients/cursor/commands/ironbee-verify/SKILL.md +21 -108
- package/dist/clients/cursor/hooks/require-verdict.d.ts +1 -1
- package/dist/clients/cursor/hooks/require-verdict.js +3 -3
- package/dist/clients/cursor/hooks/require-verification.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/require-verification.js +9 -5
- package/dist/clients/cursor/hooks/require-verification.js.map +1 -1
- package/dist/clients/cursor/hooks/track-action-monitor.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/track-action-monitor.js +4 -1
- package/dist/clients/cursor/hooks/track-action-monitor.js.map +1 -1
- package/dist/clients/cursor/hooks/track-action.d.ts +14 -12
- package/dist/clients/cursor/hooks/track-action.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/track-action.js +25 -16
- package/dist/clients/cursor/hooks/track-action.js.map +1 -1
- package/dist/clients/cursor/index.d.ts.map +1 -1
- package/dist/clients/cursor/index.js +45 -11
- package/dist/clients/cursor/index.js.map +1 -1
- package/dist/clients/cursor/platforms/command-verify.backend.md +74 -0
- package/dist/clients/cursor/platforms/command-verify.browser.md +108 -0
- package/dist/clients/cursor/platforms/command-verify.node.md +67 -0
- package/dist/clients/cursor/platforms/rule.backend.md +23 -0
- package/dist/clients/cursor/platforms/rule.browser.md +17 -0
- package/dist/clients/cursor/{fragments → platforms}/rule.node.md +3 -3
- package/dist/clients/cursor/platforms/skill.backend.md +65 -0
- package/dist/clients/cursor/platforms/skill.browser.md +31 -0
- package/dist/clients/cursor/{fragments → platforms}/skill.node.md +2 -2
- package/dist/clients/cursor/rules/ironbee-verification.mdc +14 -13
- package/dist/clients/cursor/skills/ironbee-verification.md +19 -49
- package/dist/commands/backend.d.ts +17 -0
- package/dist/commands/backend.d.ts.map +1 -0
- package/dist/commands/backend.js +58 -0
- package/dist/commands/backend.js.map +1 -0
- package/dist/commands/browser.d.ts +19 -0
- package/dist/commands/browser.d.ts.map +1 -0
- package/dist/commands/browser.js +60 -0
- package/dist/commands/browser.js.map +1 -0
- package/dist/commands/config.d.ts +5 -5
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +13 -11
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/cycle-toggle.d.ts +89 -0
- package/dist/commands/cycle-toggle.d.ts.map +1 -0
- package/dist/commands/cycle-toggle.js +264 -0
- package/dist/commands/cycle-toggle.js.map +1 -0
- package/dist/commands/node.d.ts +16 -0
- package/dist/commands/node.d.ts.map +1 -0
- package/dist/commands/node.js +57 -0
- package/dist/commands/node.js.map +1 -0
- package/dist/hooks/core/actions.d.ts +11 -2
- package/dist/hooks/core/actions.d.ts.map +1 -1
- package/dist/hooks/core/actions.js.map +1 -1
- package/dist/hooks/core/verify-gate.d.ts.map +1 -1
- package/dist/hooks/core/verify-gate.js +44 -14
- package/dist/hooks/core/verify-gate.js.map +1 -1
- package/dist/import/claude/transcript-walk.d.ts.map +1 -1
- package/dist/import/claude/transcript-walk.js +10 -2
- package/dist/import/claude/transcript-walk.js.map +1 -1
- package/dist/index.js +9 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +142 -41
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +251 -82
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/platform-section.d.ts +126 -0
- package/dist/lib/platform-section.d.ts.map +1 -0
- package/dist/lib/platform-section.js +279 -0
- package/dist/lib/platform-section.js.map +1 -0
- package/package.json +1 -1
- package/dist/clients/claude/fragments/command-verify.node.md +0 -33
- package/dist/clients/cursor/fragments/command-verify.node.md +0 -33
- package/dist/commands/backend-toggle.d.ts +0 -56
- package/dist/commands/backend-toggle.d.ts.map +0 -1
- package/dist/commands/backend-toggle.js +0 -199
- package/dist/commands/backend-toggle.js.map +0 -1
- package/dist/commands/disable-backend.d.ts +0 -14
- package/dist/commands/disable-backend.d.ts.map +0 -1
- package/dist/commands/disable-backend.js +0 -38
- package/dist/commands/disable-backend.js.map +0 -1
- package/dist/commands/enable-backend.d.ts +0 -15
- package/dist/commands/enable-backend.d.ts.map +0 -1
- package/dist/commands/enable-backend.js +0 -39
- package/dist/commands/enable-backend.js.map +0 -1
- package/dist/lib/runtime-section.d.ts +0 -118
- package/dist/lib/runtime-section.d.ts.map +0 -1
- package/dist/lib/runtime-section.js +0 -256
- package/dist/lib/runtime-section.js.map +0 -1
|
@@ -1,120 +1,38 @@
|
|
|
1
1
|
# IronBee Verify
|
|
2
2
|
|
|
3
|
-
Verify the current code changes through real tools
|
|
3
|
+
Verify the current code changes through real tools. The gate runs every cycle that has been wired up for this project, and all active cycles must be satisfied within a single verification cycle for `status: pass`. Each cycle has its own tools, flow, and verdict fields — **see the platform sections near the bottom of this file** for which cycles apply and what to call.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
- `/ironbee-verify` — **default** — focus on what changed, visual + functional checks on affected areas (browser-cycle modes; any enabled backend-runtime cycle runs alongside automatically — see runtime section below)
|
|
7
|
-
- `/ironbee-verify full` — **full scope** — entire application, all checklists, edge cases, responsive, accessibility deep dive
|
|
8
|
-
- `/ironbee-verify visual` — **visual only** — contrast, layout, spacing, fonts, images, theming
|
|
9
|
-
- `/ironbee-verify functional` — **functional only** — clicks, forms, navigation, data flow, error handling
|
|
10
|
-
|
|
11
|
-
If no argument is given, use **default** mode. The mode argument controls only the browser-cycle thoroughness — any active backend-runtime cycle runs the same way regardless of mode.
|
|
12
|
-
|
|
13
|
-
A backend-runtime cycle (e.g. `node` after `ironbee enable-backend node`) may also be active for this project — **see the runtime section near the bottom of this file** for whether it applies and which tools to call.
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## Steps (all modes)
|
|
5
|
+
## Universal steps
|
|
18
6
|
|
|
19
7
|
1. **Start verification**: Run `echo '{"session_id":"<your-session-id>"}' | ironbee hook verification-start` via Bash (substitute the actual session ID printed by the SessionStart hook).
|
|
20
|
-
2. **Build and start** the application if not already running
|
|
21
|
-
3. **For
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
- Spacing — consistent padding/margin? Too cramped or too far apart?
|
|
30
|
-
- Colors — intentional and consistent? Any jarring mismatches?
|
|
31
|
-
- Typography — right sizes? Clipped or truncated text?
|
|
32
|
-
- Images/icons — loaded? Right size and aspect ratio?
|
|
33
|
-
- States — empty, loading, disabled, error states rendered properly?
|
|
34
|
-
Report your visual findings before continuing.
|
|
35
|
-
e. **Read the ARIA snapshot** — verify headings, labels, landmarks, and structure
|
|
36
|
-
f. If anything looks wrong → note it as an issue
|
|
37
|
-
4. **Functionally test** — run the checklist for your mode (see below). After each significant interaction, take another screenshot and repeat the visual analysis.
|
|
38
|
-
5. **Check console** for errors using `mcp__browser-devtools__bdt_o11y_get-console-messages`
|
|
39
|
-
6. **Stop** the dev server when verification is complete
|
|
40
|
-
7. **If recording was started, stop it now** — `mcp__browser-devtools__bdt_content_stop-recording`. submit-verdict rejects with `"recording is still active"` when this step is skipped. (Recording is a server-side opt-in via `recording.enable` — when on, the gate forces `bdt_content_start-recording` BEFORE the steps above and demands the matching stop here.)
|
|
41
|
-
8. **Submit your verdict** via Bash:
|
|
42
|
-
- Pass: `echo '{"session_id":"...","status":"pass","pages_tested":[...],"checks":[...],"console_errors":0,"network_failures":0}' | ironbee hook submit-verdict`
|
|
43
|
-
- Fail: `echo '{"session_id":"...","status":"fail","pages_tested":[...],"checks":[...],"console_errors":N,"network_failures":N,"issues":["describe what failed"]}' | ironbee hook submit-verdict`
|
|
44
|
-
9. **If failed** → collect ALL issues first (finish testing all affected pages), submit one fail verdict with all issues, then fix everything, rebuild, and re-verify. Do not fix one issue at a time — batch fixes to avoid repeated build/restart cycles.
|
|
45
|
-
10. If pass after a previous fail, include `"fixes"` in the verdict describing what was fixed
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## Default Mode
|
|
50
|
-
|
|
51
|
-
Focus on the code you changed — not the entire application.
|
|
52
|
-
|
|
53
|
-
### 1. Study the changes
|
|
54
|
-
1. Run `git diff --name-only` and `git diff --name-only HEAD~1`
|
|
55
|
-
2. **Ignore `.ironbee/`, `.claude/`, `.cursor/`** — tool config, not application code
|
|
56
|
-
3. **Read the full diff** (`git diff` and/or `git diff HEAD~1`) — understand every change: what was added, removed, modified. Note specific values (colors, sizes, conditions, logic, API endpoints, component props).
|
|
57
|
-
4. Before opening the browser, you should be able to answer: what exactly changed, what should look or behave differently, and what could go wrong?
|
|
58
|
-
|
|
59
|
-
### 2. Verify in the browser
|
|
60
|
-
- **Cross-reference the diff against what you see.** For each change in the diff, verify it is correctly reflected in the browser. If the diff changes a color → check that color. If it changes a calculation → verify the result. If it adds a component → confirm it renders.
|
|
61
|
-
- **Test the flow end-to-end** — navigate, click, fill forms, submit, verify the outcome
|
|
62
|
-
- **Check one edge case** — empty input, invalid data, or double-click
|
|
63
|
-
- **Console** — any new errors or warnings?
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## Full Mode (`/ironbee-verify full`)
|
|
68
|
-
|
|
69
|
-
Comprehensive verification of the **entire application**. Do NOT run `git diff` or scope to recent changes. Test every page, every flow, every visual detail. Any issue is a failure, regardless of when it was introduced.
|
|
70
|
-
|
|
71
|
-
### Visual Checklist
|
|
72
|
-
In addition to the per-page visual analysis in step 3d:
|
|
73
|
-
- **Responsiveness** — does the layout adapt if viewport changes? No horizontal scrolling on standard widths
|
|
74
|
-
- **Borders & separators** — visible and consistent? Not too faint or missing
|
|
75
|
-
- **Scroll behavior** — does the page scroll smoothly? No content hidden behind sticky headers/footers?
|
|
76
|
-
|
|
77
|
-
### Functional Checklist
|
|
78
|
-
- **Navigation** — do links and buttons navigate to the correct pages?
|
|
79
|
-
- **Forms** — fill inputs with real data, select options, submit. Do validation messages appear correctly?
|
|
80
|
-
- **Buttons & interactions** — do click handlers fire? Do toggles, dropdowns, and modals work?
|
|
81
|
-
- **Data flow** — does submitted data appear where expected?
|
|
82
|
-
- **Error handling** — what happens with invalid input? Does the UI handle errors gracefully?
|
|
83
|
-
- **Authentication** — if applicable, do protected routes redirect correctly?
|
|
84
|
-
- **API calls** — do network requests succeed? Check for failed requests in console/network
|
|
85
|
-
- **State persistence** — does state survive page refresh where expected?
|
|
86
|
-
- **Edge cases** — empty inputs, very long text, special characters, rapid clicks
|
|
87
|
-
|
|
88
|
-
### Accessibility (deep dive)
|
|
89
|
-
- Are headings hierarchical? Do form inputs have labels? Are landmarks present?
|
|
90
|
-
- Check for missing alt text on images
|
|
8
|
+
2. **Build and start** the application if not already running.
|
|
9
|
+
3. **For every active cycle, run its flow** as described in the platform sections near the bottom of this file. All active cycles must be exercised within this same verification cycle.
|
|
10
|
+
4. **Stop** the dev server when verification is complete.
|
|
11
|
+
5. **Honor any cycle-specific teardown** noted in the platform sections BEFORE submitting your verdict.
|
|
12
|
+
6. **Submit your verdict** via Bash. Include fields for every active cycle:
|
|
13
|
+
- Pass: `echo '{"session_id":"...","status":"pass", ...cycle-specific fields...}' | ironbee hook submit-verdict`
|
|
14
|
+
- Fail: `echo '{"session_id":"...","status":"fail", ...cycle-specific fields..., "issues":["describe what failed"]}' | ironbee hook submit-verdict`
|
|
15
|
+
7. **If failed** → collect ALL issues first (finish testing every active cycle), submit one fail verdict with all issues, then fix everything, rebuild, and re-verify. Do not fix one issue at a time — batch fixes to avoid repeated build/restart cycles.
|
|
16
|
+
8. If pass after a previous fail, include `"fixes"` in the verdict describing what was fixed.
|
|
91
17
|
|
|
92
18
|
---
|
|
93
19
|
|
|
94
|
-
|
|
20
|
+
<!--IRONBEE:PLATFORM:browser-->
|
|
21
|
+
<!--/IRONBEE:PLATFORM:browser-->
|
|
95
22
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
- **Borders & separators** — visible and consistent?
|
|
99
|
-
- **Scroll behavior** — smooth scrolling, no hidden content
|
|
23
|
+
<!--IRONBEE:PLATFORM:node-->
|
|
24
|
+
<!--/IRONBEE:PLATFORM:node-->
|
|
100
25
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## Functional Mode (`/ironbee-verify functional`)
|
|
106
|
-
|
|
107
|
-
Focus exclusively on behavior. Use the same functional checklist as Full Mode above.
|
|
108
|
-
|
|
109
|
-
Test the **complete user flow**, not just the single step you changed.
|
|
26
|
+
<!--IRONBEE:PLATFORM:backend-->
|
|
27
|
+
<!--/IRONBEE:PLATFORM:backend-->
|
|
110
28
|
|
|
111
29
|
---
|
|
112
30
|
|
|
113
31
|
## When to FAIL
|
|
114
32
|
|
|
115
|
-
If you observe ANY problem — wrong data, unexpected errors,
|
|
33
|
+
If you observe ANY problem on any active cycle — wrong data, unexpected errors, broken interactions, missing evidence, anything that doesn't match the spec — you MUST submit a **fail** verdict.
|
|
116
34
|
|
|
117
|
-
**Do NOT rationalize away problems.** If something looks wrong or behaves unexpectedly, it IS wrong.
|
|
35
|
+
**Do NOT rationalize away problems.** If something looks wrong or behaves unexpectedly, it IS wrong.
|
|
118
36
|
|
|
119
37
|
**After a fail verdict, you MUST fix the issues and re-verify.** Do not just report and stop.
|
|
120
38
|
|
|
@@ -128,8 +46,3 @@ Your `checks` array must list **specific observations**, not generic statements:
|
|
|
128
46
|
- ALWAYS submit a verdict after every verification attempt — both pass AND fail
|
|
129
47
|
- Do NOT edit code before submitting a fail verdict
|
|
130
48
|
- **Noticing a bug and submitting pass is the #1 violation** — if you see it, fail it
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
<!--IRONBEE:RUNTIME:node-->
|
|
135
|
-
<!--/IRONBEE:RUNTIME:node-->
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Claude Code — require-verdict hook adapter
|
|
3
3
|
*
|
|
4
4
|
* PreToolUse hook for Write|Edit — blocks file edits if the agent used
|
|
5
|
-
* any devtools tools (browser-devtools
|
|
6
|
-
* submitted a verdict yet. Forces the agent to submit a fail
|
|
7
|
-
* before fixing code.
|
|
5
|
+
* any devtools tools (browser-devtools / node-devtools / backend-devtools)
|
|
6
|
+
* but hasn't submitted a verdict yet. Forces the agent to submit a fail
|
|
7
|
+
* verdict before fixing code.
|
|
8
8
|
*
|
|
9
9
|
* Side effect: when `tool_name === "Write"`, stashes whether the target
|
|
10
10
|
* file already exists so the matching PostToolUse adapter can decide
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* Claude Code — require-verdict hook adapter
|
|
4
4
|
*
|
|
5
5
|
* PreToolUse hook for Write|Edit — blocks file edits if the agent used
|
|
6
|
-
* any devtools tools (browser-devtools
|
|
7
|
-
* submitted a verdict yet. Forces the agent to submit a fail
|
|
8
|
-
* before fixing code.
|
|
6
|
+
* any devtools tools (browser-devtools / node-devtools / backend-devtools)
|
|
7
|
+
* but hasn't submitted a verdict yet. Forces the agent to submit a fail
|
|
8
|
+
* verdict before fixing code.
|
|
9
9
|
*
|
|
10
10
|
* Side effect: when `tool_name === "Write"`, stashes whether the target
|
|
11
11
|
* file already exists so the matching PostToolUse adapter can decide
|
|
@@ -38,9 +38,9 @@ async function run(projectDir) {
|
|
|
38
38
|
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
39
39
|
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
40
40
|
if ((0, actions_1.hasToolCallsSinceLastVerdict)(actionsFile)) {
|
|
41
|
-
process.stderr.write(`BLOCKED: You used verification tools (browser-devtools
|
|
41
|
+
process.stderr.write(`BLOCKED: You used verification tools (browser-devtools / node-devtools / backend-devtools) but did not submit a verdict. You MUST submit a verdict (pass or fail) before editing code.
|
|
42
42
|
|
|
43
|
-
Submit your verdict first (include cycle-appropriate fields — browser fields for bdt_*, backend_node_*
|
|
43
|
+
Submit your verdict first (include cycle-appropriate fields — browser fields for bdt_*, backend_node_* for ndt_*, backend_endpoints_called/backend_response_statuses for bedt_*):
|
|
44
44
|
echo '{"session_id":"${sessionId}","status":"fail","checks":[...],"issues":["describe what failed"], ...}' | ironbee hook submit-verdict
|
|
45
45
|
|
|
46
46
|
Then you can edit code to fix the issues.
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Claude Code — require-verification hook adapter
|
|
3
3
|
*
|
|
4
|
-
* PreToolUse hook for `mcp__browser-devtools__
|
|
5
|
-
* — blocks devtools tool
|
|
6
|
-
*
|
|
7
|
-
* verification
|
|
4
|
+
* PreToolUse hook for the three devtools matchers — `mcp__browser-devtools__.*`,
|
|
5
|
+
* `mcp__node-devtools__.*`, `mcp__backend-devtools__.*` — blocks devtools tool
|
|
6
|
+
* usage if no active verification cycle. Forces the agent to call
|
|
7
|
+
* `ironbee hook verification-start` before using any verification tooling
|
|
8
|
+
* (browser, node, or backend).
|
|
8
9
|
*
|
|
9
10
|
* When allowed, injects `_metadata` into tool input with sessionId and traceId
|
|
10
11
|
* so the MCP server knows the active session/trace context. The `mcpServer`
|
|
11
12
|
* field is parsed from `tool_name` so each server (browser-devtools /
|
|
12
|
-
* node-devtools) sees its own correct identity.
|
|
13
|
+
* node-devtools / backend-devtools) sees its own correct identity.
|
|
13
14
|
*
|
|
14
15
|
* Exit 0 = allow tool (with updatedInput containing _metadata)
|
|
15
16
|
* Exit 2 = block tool
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-verification.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verification.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"require-verification.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAiCH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqH3D"}
|
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Claude Code — require-verification hook adapter
|
|
4
4
|
*
|
|
5
|
-
* PreToolUse hook for `mcp__browser-devtools__
|
|
6
|
-
* — blocks devtools tool
|
|
7
|
-
*
|
|
8
|
-
* verification
|
|
5
|
+
* PreToolUse hook for the three devtools matchers — `mcp__browser-devtools__.*`,
|
|
6
|
+
* `mcp__node-devtools__.*`, `mcp__backend-devtools__.*` — blocks devtools tool
|
|
7
|
+
* usage if no active verification cycle. Forces the agent to call
|
|
8
|
+
* `ironbee hook verification-start` before using any verification tooling
|
|
9
|
+
* (browser, node, or backend).
|
|
9
10
|
*
|
|
10
11
|
* When allowed, injects `_metadata` into tool input with sessionId and traceId
|
|
11
12
|
* so the MCP server knows the active session/trace context. The `mcpServer`
|
|
12
13
|
* field is parsed from `tool_name` so each server (browser-devtools /
|
|
13
|
-
* node-devtools) sees its own correct identity.
|
|
14
|
+
* node-devtools / backend-devtools) sees its own correct identity.
|
|
14
15
|
*
|
|
15
16
|
* Exit 0 = allow tool (with updatedInput containing _metadata)
|
|
16
17
|
* Exit 2 = block tool
|
|
@@ -26,9 +27,10 @@ const logger_1 = require("../../../lib/logger");
|
|
|
26
27
|
const util_1 = require("../util");
|
|
27
28
|
const stdin_1 = require("../../../lib/stdin");
|
|
28
29
|
/** Fallback MCP server when `tool_name` parsing fails. The matcher routes
|
|
29
|
-
*
|
|
30
|
-
* `extractMcpServerName` is the source
|
|
31
|
-
* tool_name field is malformed
|
|
30
|
+
* all three of `mcp__browser-devtools__.*`, `mcp__node-devtools__.*`, and
|
|
31
|
+
* `mcp__backend-devtools__.*` here, so `extractMcpServerName` is the source
|
|
32
|
+
* of truth — this fallback is only used if the tool_name field is malformed
|
|
33
|
+
* or absent. */
|
|
32
34
|
const FALLBACK_MCP_SERVER_NAME = "browser-devtools";
|
|
33
35
|
async function run(projectDir) {
|
|
34
36
|
let input;
|
|
@@ -45,12 +47,12 @@ async function run(projectDir) {
|
|
|
45
47
|
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
46
48
|
const verificationId = (0, session_state_1.getActiveVerificationId)(sessionDir);
|
|
47
49
|
if (!verificationId) {
|
|
48
|
-
process.stderr.write(`BLOCKED: You must start a verification cycle before using devtools tools (browser-devtools
|
|
50
|
+
process.stderr.write(`BLOCKED: You must start a verification cycle before using devtools tools (browser-devtools / node-devtools / backend-devtools).
|
|
49
51
|
|
|
50
52
|
Start verification first:
|
|
51
53
|
echo '{"session_id":"${sessionId}"}' | ironbee hook verification-start
|
|
52
54
|
|
|
53
|
-
Then use the verification tools for the active cycle(s) — bdt_* for browser, ndt_* for node.
|
|
55
|
+
Then use the verification tools for the active cycle(s) — bdt_* for browser, ndt_* for node, bedt_* for backend.
|
|
54
56
|
`);
|
|
55
57
|
process.exit(2);
|
|
56
58
|
}
|
|
@@ -108,13 +110,14 @@ Then use the verification tools for the active cycle(s) — bdt_* for browser, n
|
|
|
108
110
|
if (input.tool_use_id) {
|
|
109
111
|
metadata.toolUseId = input.tool_use_id;
|
|
110
112
|
}
|
|
111
|
-
// The matcher routes
|
|
112
|
-
// `mcp__node-devtools__.*` here, so
|
|
113
|
-
// server. Parse it so each server
|
|
114
|
-
// metadata. Falls back to a
|
|
115
|
-
// parsing ever fails (malformed
|
|
116
|
-
// keeps MCP-emitted OTel events
|
|
117
|
-
// dimension our own tool_call
|
|
113
|
+
// The matcher routes all three of `mcp__browser-devtools__.*`,
|
|
114
|
+
// `mcp__node-devtools__.*`, and `mcp__backend-devtools__.*` here, so
|
|
115
|
+
// the tool_name reliably encodes a server. Parse it so each server
|
|
116
|
+
// gets its correct identity in the metadata. Falls back to a
|
|
117
|
+
// hardcoded browser-devtools constant if parsing ever fails (malformed
|
|
118
|
+
// tool_name, missing field, …). This keeps MCP-emitted OTel events
|
|
119
|
+
// tagged with the same `mcp_server` dimension our own tool_call
|
|
120
|
+
// events carry.
|
|
118
121
|
metadata.mcpServer = (0, util_1.extractMcpServerName)(input.tool_name) ?? FALLBACK_MCP_SERVER_NAME;
|
|
119
122
|
const userEmail = (0, session_state_1.getUserEmail)(sessionDir);
|
|
120
123
|
if (userEmail) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-verification.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verification.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"require-verification.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-action-monitor.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"track-action-monitor.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA0BH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE3D"}
|
|
@@ -36,6 +36,7 @@ const queue_1 = require("../../../queue");
|
|
|
36
36
|
const util_1 = require("../util");
|
|
37
37
|
const BROWSER_DEVTOOLS_SERVER = "browser-devtools";
|
|
38
38
|
const NODE_DEVTOOLS_SERVER = "node-devtools";
|
|
39
|
+
const BACKEND_DEVTOOLS_SERVER = "backend-devtools";
|
|
39
40
|
async function run(projectDir) {
|
|
40
41
|
let input;
|
|
41
42
|
try {
|
|
@@ -63,7 +64,9 @@ async function run(projectDir) {
|
|
|
63
64
|
const activityId = (0, session_state_1.getActiveActivityId)(sessionDir);
|
|
64
65
|
const classified = (0, util_1.classifyTool)(rawToolName, input.tool_input);
|
|
65
66
|
const isOurDevToolsTool = classified.tool_type === "mcp"
|
|
66
|
-
&& (classified.mcp_server === BROWSER_DEVTOOLS_SERVER
|
|
67
|
+
&& (classified.mcp_server === BROWSER_DEVTOOLS_SERVER
|
|
68
|
+
|| classified.mcp_server === NODE_DEVTOOLS_SERVER
|
|
69
|
+
|| classified.mcp_server === BACKEND_DEVTOOLS_SERVER);
|
|
67
70
|
// Devtools events self-ship via the MCP server; in monitoring-only mode
|
|
68
71
|
// the server isn't even installed. No queue submit, no actions.jsonl.
|
|
69
72
|
if (isOurDevToolsTool) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-action-monitor.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action-monitor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;
|
|
1
|
+
{"version":3,"file":"track-action-monitor.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,14 +6,17 @@
|
|
|
6
6
|
* the `error` field on stdin (Claude hook contract).
|
|
7
7
|
*
|
|
8
8
|
* Responsibilities:
|
|
9
|
-
* 1. **browser-devtools
|
|
10
|
-
* entry to `actions.jsonl` (verify-gate depends
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
9
|
+
* 1. **devtools MCP (browser-devtools / node-devtools / backend-devtools)**:
|
|
10
|
+
* append the tool_call entry to `actions.jsonl` (verify-gate depends
|
|
11
|
+
* on these records); for browser tools, also update recording state
|
|
12
|
+
* and extract nested `callTool()` invocations from `bdt_execute`.
|
|
13
|
+
* Devtools tools are NOT submitted to the send_event queue — all
|
|
14
|
+
* three modes use the same `browser-devtools-mcp` package, which
|
|
15
|
+
* ships its own `tool_call` events directly to the collector, so
|
|
16
|
+
* double-sending would cause duplicates (with different ids) that
|
|
17
|
+
* downstream dedup cannot collapse. tool_input is preserved AS-IS
|
|
18
|
+
* for devtools tools so the local nested parser (browser-only) keeps
|
|
19
|
+
* working and verify-gate sees the raw shape.
|
|
17
20
|
* 2. **All other tools** (Read/Write/Bash/…): submit a send_event job.
|
|
18
21
|
* `tool_input` is replaced with a per-tool safe projection (see
|
|
19
22
|
* `extractClaudeToolInput`) — only labels (file_path, pattern, url,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-action.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"track-action.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAyGH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoI3D"}
|
|
@@ -7,14 +7,17 @@
|
|
|
7
7
|
* the `error` field on stdin (Claude hook contract).
|
|
8
8
|
*
|
|
9
9
|
* Responsibilities:
|
|
10
|
-
* 1. **browser-devtools
|
|
11
|
-
* entry to `actions.jsonl` (verify-gate depends
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
10
|
+
* 1. **devtools MCP (browser-devtools / node-devtools / backend-devtools)**:
|
|
11
|
+
* append the tool_call entry to `actions.jsonl` (verify-gate depends
|
|
12
|
+
* on these records); for browser tools, also update recording state
|
|
13
|
+
* and extract nested `callTool()` invocations from `bdt_execute`.
|
|
14
|
+
* Devtools tools are NOT submitted to the send_event queue — all
|
|
15
|
+
* three modes use the same `browser-devtools-mcp` package, which
|
|
16
|
+
* ships its own `tool_call` events directly to the collector, so
|
|
17
|
+
* double-sending would cause duplicates (with different ids) that
|
|
18
|
+
* downstream dedup cannot collapse. tool_input is preserved AS-IS
|
|
19
|
+
* for devtools tools so the local nested parser (browser-only) keeps
|
|
20
|
+
* working and verify-gate sees the raw shape.
|
|
18
21
|
* 2. **All other tools** (Read/Write/Bash/…): submit a send_event job.
|
|
19
22
|
* `tool_input` is replaced with a per-tool safe projection (see
|
|
20
23
|
* `extractClaudeToolInput`) — only labels (file_path, pattern, url,
|
|
@@ -43,6 +46,7 @@ const MCP_PREFIX = "mcp__browser-devtools__";
|
|
|
43
46
|
const TOOL_NAME_PREFIX = "bdt_";
|
|
44
47
|
const BROWSER_DEVTOOLS_SERVER = "browser-devtools";
|
|
45
48
|
const NODE_DEVTOOLS_SERVER = "node-devtools";
|
|
49
|
+
const BACKEND_DEVTOOLS_SERVER = "backend-devtools";
|
|
46
50
|
/** Bare (post-classification) names used for recording-state detection and nested extract gating. */
|
|
47
51
|
const EXECUTE_TOOL_BARE = `${TOOL_NAME_PREFIX}execute`;
|
|
48
52
|
const RECORDING_START_BARE = `${TOOL_NAME_PREFIX}content_start-recording`;
|
|
@@ -134,7 +138,8 @@ async function run(projectDir) {
|
|
|
134
138
|
const classified = (0, util_1.classifyTool)(rawToolName, input.tool_input);
|
|
135
139
|
const isBrowserTool = classified.tool_type === "mcp" && classified.mcp_server === BROWSER_DEVTOOLS_SERVER;
|
|
136
140
|
const isNodeTool = classified.tool_type === "mcp" && classified.mcp_server === NODE_DEVTOOLS_SERVER;
|
|
137
|
-
const
|
|
141
|
+
const isBackendTool = classified.tool_type === "mcp" && classified.mcp_server === BACKEND_DEVTOOLS_SERVER;
|
|
142
|
+
const isOurDevToolsTool = isBrowserTool || isNodeTool || isBackendTool;
|
|
138
143
|
// For browser-devtools / node-devtools tools we keep tool_input AS-IS:
|
|
139
144
|
// verify-gate and the bdt_execute nested-callTool parser need the raw
|
|
140
145
|
// shape; both servers self-ship to the collector so the queue exemption
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-action.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"track-action.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/claude/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAclC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/claude/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAclC,OAAO,EAAoG,aAAa,EAAsD,MAAM,kBAAkB,CAAC;AAyHvM,qBAAa,YAAa,YAAW,OAAO;IACxC,SAAgB,IAAI,EAAE,MAAM,CAAY;IAEjC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAInC,iBAAiB,IAAI,MAAM;IAI3B,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI;IAgEzD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK1C,OAAO,CAAC,gBAAgB;IA0BxB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAcnB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IA0KxB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,eAAe;IAqCvB,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,cAAc;IAkDtB,OAAO,CAAC,gBAAgB;CAuE3B;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAG1D"}
|