@ironbee-ai/cli 0.6.1 → 0.7.0
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 +167 -39
- package/dist/analysis/code-changes.js +3 -3
- package/dist/analysis/code-changes.js.map +1 -1
- package/dist/analysis/cross-session.js.map +1 -1
- package/dist/analysis/fix-effectiveness.js.map +1 -1
- package/dist/analysis/time-analysis.js.map +1 -1
- package/dist/analysis/verdict-details.js.map +1 -1
- package/dist/analysis/verification-quality.js.map +1 -1
- package/dist/analytics/classifier.d.ts +99 -0
- package/dist/analytics/classifier.d.ts.map +1 -0
- package/dist/analytics/classifier.js +380 -0
- package/dist/analytics/classifier.js.map +1 -0
- package/dist/analytics/emit.d.ts +67 -0
- package/dist/analytics/emit.d.ts.map +1 -0
- package/dist/analytics/emit.js +901 -0
- package/dist/analytics/emit.js.map +1 -0
- package/dist/analytics/errors.d.ts +33 -0
- package/dist/analytics/errors.d.ts.map +1 -0
- package/dist/analytics/errors.js +93 -0
- package/dist/analytics/errors.js.map +1 -0
- package/dist/analytics/hook-trigger.d.ts +39 -0
- package/dist/analytics/hook-trigger.d.ts.map +1 -0
- package/dist/analytics/hook-trigger.js +127 -0
- package/dist/analytics/hook-trigger.js.map +1 -0
- package/dist/analytics/log.d.ts +44 -0
- package/dist/analytics/log.d.ts.map +1 -0
- package/dist/analytics/log.js +158 -0
- package/dist/analytics/log.js.map +1 -0
- package/dist/analytics/merge.d.ts +40 -0
- package/dist/analytics/merge.d.ts.map +1 -0
- package/dist/analytics/merge.js +527 -0
- package/dist/analytics/merge.js.map +1 -0
- package/dist/analytics/pricing.d.ts +149 -0
- package/dist/analytics/pricing.d.ts.map +1 -0
- package/dist/analytics/pricing.js +179 -0
- package/dist/analytics/pricing.js.map +1 -0
- package/dist/analytics/projection.d.ts +356 -0
- package/dist/analytics/projection.d.ts.map +1 -0
- package/dist/analytics/projection.js +2281 -0
- package/dist/analytics/projection.js.map +1 -0
- package/dist/analytics/spawn.d.ts +28 -0
- package/dist/analytics/spawn.d.ts.map +1 -0
- package/dist/analytics/spawn.js +57 -0
- package/dist/analytics/spawn.js.map +1 -0
- package/dist/analytics/state.d.ts +58 -0
- package/dist/analytics/state.d.ts.map +1 -0
- package/dist/analytics/state.js +329 -0
- package/dist/analytics/state.js.map +1 -0
- package/dist/analytics/transcript.d.ts +150 -0
- package/dist/analytics/transcript.d.ts.map +1 -0
- package/dist/analytics/transcript.js +276 -0
- package/dist/analytics/transcript.js.map +1 -0
- package/dist/analytics/types.d.ts +875 -0
- package/dist/analytics/types.d.ts.map +1 -0
- package/dist/analytics/types.js +31 -0
- package/dist/analytics/types.js.map +1 -0
- package/dist/clients/base.d.ts +21 -2
- package/dist/clients/base.d.ts.map +1 -1
- package/dist/clients/claude/commands/ironbee-verify.md +15 -7
- package/dist/clients/claude/fragments/command-verify.node.md +33 -0
- package/dist/clients/claude/fragments/rule.node.md +29 -0
- package/dist/clients/claude/fragments/skill.node.md +77 -0
- package/dist/clients/claude/hooks/activity-end.d.ts +13 -0
- package/dist/clients/claude/hooks/activity-end.d.ts.map +1 -0
- package/dist/clients/claude/hooks/activity-end.js +42 -0
- package/dist/clients/claude/hooks/activity-end.js.map +1 -0
- package/dist/clients/claude/hooks/clear-verdict.d.ts +9 -4
- package/dist/clients/claude/hooks/clear-verdict.d.ts.map +1 -1
- package/dist/clients/claude/hooks/clear-verdict.js +50 -12
- package/dist/clients/claude/hooks/clear-verdict.js.map +1 -1
- package/dist/clients/claude/hooks/require-verdict.d.ts +8 -3
- package/dist/clients/claude/hooks/require-verdict.d.ts.map +1 -1
- package/dist/clients/claude/hooks/require-verdict.js +17 -6
- package/dist/clients/claude/hooks/require-verdict.js.map +1 -1
- package/dist/clients/claude/hooks/require-verification.d.ts +7 -4
- package/dist/clients/claude/hooks/require-verification.d.ts.map +1 -1
- package/dist/clients/claude/hooks/require-verification.js +44 -22
- package/dist/clients/claude/hooks/require-verification.js.map +1 -1
- package/dist/clients/claude/hooks/session-end.d.ts.map +1 -1
- package/dist/clients/claude/hooks/session-end.js +17 -2
- package/dist/clients/claude/hooks/session-end.js.map +1 -1
- package/dist/clients/claude/hooks/session-start.d.ts.map +1 -1
- package/dist/clients/claude/hooks/session-start.js +2 -1
- package/dist/clients/claude/hooks/session-start.js.map +1 -1
- package/dist/clients/claude/hooks/track-action-monitor.d.ts +27 -0
- package/dist/clients/claude/hooks/track-action-monitor.d.ts.map +1 -0
- package/dist/clients/claude/hooks/track-action-monitor.js +126 -0
- package/dist/clients/claude/hooks/track-action-monitor.js.map +1 -0
- package/dist/clients/claude/hooks/track-action.d.ts.map +1 -1
- package/dist/clients/claude/hooks/track-action.js +29 -20
- package/dist/clients/claude/hooks/track-action.js.map +1 -1
- package/dist/clients/claude/hooks/verify-gate.d.ts.map +1 -1
- package/dist/clients/claude/hooks/verify-gate.js +18 -1
- package/dist/clients/claude/hooks/verify-gate.js.map +1 -1
- package/dist/clients/claude/index.d.ts +4 -1
- package/dist/clients/claude/index.d.ts.map +1 -1
- package/dist/clients/claude/index.js +185 -94
- package/dist/clients/claude/index.js.map +1 -1
- package/dist/clients/claude/rules/ironbee-verification.md +41 -33
- package/dist/clients/claude/skills/ironbee-verification.md +93 -76
- package/dist/clients/cursor/commands/ironbee-verify/SKILL.md +18 -10
- package/dist/clients/cursor/fragments/command-verify.node.md +33 -0
- package/dist/clients/cursor/fragments/rule.node.md +29 -0
- package/dist/clients/cursor/fragments/skill.node.md +77 -0
- package/dist/clients/cursor/hooks/activity-end.d.ts +14 -0
- package/dist/clients/cursor/hooks/activity-end.d.ts.map +1 -0
- package/dist/clients/cursor/hooks/activity-end.js +45 -0
- package/dist/clients/cursor/hooks/activity-end.js.map +1 -0
- package/dist/clients/cursor/hooks/clear-verdict.d.ts +13 -4
- package/dist/clients/cursor/hooks/clear-verdict.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/clear-verdict.js +59 -14
- package/dist/clients/cursor/hooks/clear-verdict.js.map +1 -1
- package/dist/clients/cursor/hooks/require-verdict.d.ts +8 -3
- package/dist/clients/cursor/hooks/require-verdict.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/require-verdict.js +17 -6
- package/dist/clients/cursor/hooks/require-verdict.js.map +1 -1
- package/dist/clients/cursor/hooks/require-verification.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/require-verification.js +42 -16
- package/dist/clients/cursor/hooks/require-verification.js.map +1 -1
- package/dist/clients/cursor/hooks/session-end.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/session-end.js +18 -2
- package/dist/clients/cursor/hooks/session-end.js.map +1 -1
- package/dist/clients/cursor/hooks/session-start.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/session-start.js +2 -1
- package/dist/clients/cursor/hooks/session-start.js.map +1 -1
- package/dist/clients/cursor/hooks/track-action-monitor.d.ts +27 -0
- package/dist/clients/cursor/hooks/track-action-monitor.d.ts.map +1 -0
- package/dist/clients/cursor/hooks/track-action-monitor.js +133 -0
- package/dist/clients/cursor/hooks/track-action-monitor.js.map +1 -0
- package/dist/clients/cursor/hooks/track-action.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/track-action.js +51 -23
- package/dist/clients/cursor/hooks/track-action.js.map +1 -1
- package/dist/clients/cursor/hooks/verify-gate.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/verify-gate.js +14 -1
- package/dist/clients/cursor/hooks/verify-gate.js.map +1 -1
- package/dist/clients/cursor/index.d.ts +4 -1
- package/dist/clients/cursor/index.d.ts.map +1 -1
- package/dist/clients/cursor/index.js +131 -65
- package/dist/clients/cursor/index.js.map +1 -1
- package/dist/clients/cursor/rules/ironbee-verification.mdc +37 -29
- package/dist/clients/cursor/skills/ironbee-verification.md +93 -76
- package/dist/clients/registry.d.ts +14 -0
- package/dist/clients/registry.d.ts.map +1 -1
- package/dist/clients/registry.js +34 -0
- package/dist/clients/registry.js.map +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +40 -0
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/backend-toggle.d.ts +45 -0
- package/dist/commands/backend-toggle.d.ts.map +1 -0
- package/dist/commands/backend-toggle.js +192 -0
- package/dist/commands/backend-toggle.js.map +1 -0
- package/dist/commands/disable-backend.d.ts +14 -0
- package/dist/commands/disable-backend.d.ts.map +1 -0
- package/dist/commands/disable-backend.js +34 -0
- package/dist/commands/disable-backend.js.map +1 -0
- package/dist/commands/disable-verification.d.ts +16 -0
- package/dist/commands/disable-verification.d.ts.map +1 -0
- package/dist/commands/disable-verification.js +36 -0
- package/dist/commands/disable-verification.js.map +1 -0
- package/dist/commands/enable-backend.d.ts +15 -0
- package/dist/commands/enable-backend.d.ts.map +1 -0
- package/dist/commands/enable-backend.js +35 -0
- package/dist/commands/enable-backend.js.map +1 -0
- package/dist/commands/enable-verification.d.ts +14 -0
- package/dist/commands/enable-verification.d.ts.map +1 -0
- package/dist/commands/enable-verification.js +34 -0
- package/dist/commands/enable-verification.js.map +1 -0
- package/dist/commands/hook.d.ts.map +1 -1
- package/dist/commands/hook.js +60 -0
- package/dist/commands/hook.js.map +1 -1
- package/dist/commands/import.d.ts +39 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +369 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +15 -20
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/process-analytics.d.ts +18 -0
- package/dist/commands/process-analytics.d.ts.map +1 -0
- package/dist/commands/process-analytics.js +57 -0
- package/dist/commands/process-analytics.js.map +1 -0
- package/dist/commands/queue.d.ts +2 -3
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +2 -3
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +29 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/verification-toggle.d.ts +47 -0
- package/dist/commands/verification-toggle.d.ts.map +1 -0
- package/dist/commands/verification-toggle.js +113 -0
- package/dist/commands/verification-toggle.js.map +1 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +28 -0
- package/dist/commands/verify.js.map +1 -1
- package/dist/hooks/core/actions.d.ts +77 -70
- package/dist/hooks/core/actions.d.ts.map +1 -1
- package/dist/hooks/core/actions.js +45 -30
- package/dist/hooks/core/actions.js.map +1 -1
- package/dist/hooks/core/activity-end.d.ts +20 -0
- package/dist/hooks/core/activity-end.d.ts.map +1 -0
- package/dist/hooks/core/activity-end.js +23 -0
- package/dist/hooks/core/activity-end.js.map +1 -0
- package/dist/hooks/core/file-diff.d.ts +19 -0
- package/dist/hooks/core/file-diff.d.ts.map +1 -0
- package/dist/hooks/core/file-diff.js +39 -0
- package/dist/hooks/core/file-diff.js.map +1 -0
- package/dist/hooks/core/required-tools.d.ts +30 -0
- package/dist/hooks/core/required-tools.d.ts.map +1 -0
- package/dist/hooks/core/required-tools.js +70 -0
- package/dist/hooks/core/required-tools.js.map +1 -0
- package/dist/hooks/core/session-state.d.ts +12 -3
- package/dist/hooks/core/session-state.d.ts.map +1 -1
- package/dist/hooks/core/session-state.js +59 -0
- package/dist/hooks/core/session-state.js.map +1 -1
- package/dist/hooks/core/submit-verdict.d.ts.map +1 -1
- package/dist/hooks/core/submit-verdict.js +16 -12
- package/dist/hooks/core/submit-verdict.js.map +1 -1
- package/dist/hooks/core/tool-use-stash.d.ts +41 -0
- package/dist/hooks/core/tool-use-stash.d.ts.map +1 -0
- package/dist/hooks/core/tool-use-stash.js +82 -0
- package/dist/hooks/core/tool-use-stash.js.map +1 -0
- package/dist/hooks/core/verify-gate.d.ts +17 -3
- package/dist/hooks/core/verify-gate.d.ts.map +1 -1
- package/dist/hooks/core/verify-gate.js +315 -119
- package/dist/hooks/core/verify-gate.js.map +1 -1
- package/dist/import/claude/analytics-runner.d.ts +42 -0
- package/dist/import/claude/analytics-runner.d.ts.map +1 -0
- package/dist/import/claude/analytics-runner.js +213 -0
- package/dist/import/claude/analytics-runner.js.map +1 -0
- package/dist/import/claude/discovery.d.ts +22 -0
- package/dist/import/claude/discovery.d.ts.map +1 -0
- package/dist/import/claude/discovery.js +197 -0
- package/dist/import/claude/discovery.js.map +1 -0
- package/dist/import/claude/encoding.d.ts +50 -0
- package/dist/import/claude/encoding.d.ts.map +1 -0
- package/dist/import/claude/encoding.js +110 -0
- package/dist/import/claude/encoding.js.map +1 -0
- package/dist/import/claude/events/file-change.d.ts +28 -0
- package/dist/import/claude/events/file-change.d.ts.map +1 -0
- package/dist/import/claude/events/file-change.js +112 -0
- package/dist/import/claude/events/file-change.js.map +1 -0
- package/dist/import/claude/events/tool-call.d.ts +61 -0
- package/dist/import/claude/events/tool-call.d.ts.map +1 -0
- package/dist/import/claude/events/tool-call.js +119 -0
- package/dist/import/claude/events/tool-call.js.map +1 -0
- package/dist/import/claude/runner.d.ts +31 -0
- package/dist/import/claude/runner.d.ts.map +1 -0
- package/dist/import/claude/runner.js +280 -0
- package/dist/import/claude/runner.js.map +1 -0
- package/dist/import/claude/summary.d.ts +23 -0
- package/dist/import/claude/summary.d.ts.map +1 -0
- package/dist/import/claude/summary.js +186 -0
- package/dist/import/claude/summary.js.map +1 -0
- package/dist/import/claude/transcript-walk.d.ts +52 -0
- package/dist/import/claude/transcript-walk.d.ts.map +1 -0
- package/dist/import/claude/transcript-walk.js +187 -0
- package/dist/import/claude/transcript-walk.js.map +1 -0
- package/dist/import/concurrent-pool.d.ts +45 -0
- package/dist/import/concurrent-pool.d.ts.map +1 -0
- package/dist/import/concurrent-pool.js +95 -0
- package/dist/import/concurrent-pool.js.map +1 -0
- package/dist/import/emitter.d.ts +29 -0
- package/dist/import/emitter.d.ts.map +1 -0
- package/dist/import/emitter.js +66 -0
- package/dist/import/emitter.js.map +1 -0
- package/dist/import/events/activity.d.ts +23 -0
- package/dist/import/events/activity.d.ts.map +1 -0
- package/dist/import/events/activity.js +45 -0
- package/dist/import/events/activity.js.map +1 -0
- package/dist/import/events/session.d.ts +24 -0
- package/dist/import/events/session.d.ts.map +1 -0
- package/dist/import/events/session.js +47 -0
- package/dist/import/events/session.js.map +1 -0
- package/dist/import/filter.d.ts +47 -0
- package/dist/import/filter.d.ts.map +1 -0
- package/dist/import/filter.js +90 -0
- package/dist/import/filter.js.map +1 -0
- package/dist/import/ids.d.ts +56 -0
- package/dist/import/ids.d.ts.map +1 -0
- package/dist/import/ids.js +87 -0
- package/dist/import/ids.js.map +1 -0
- package/dist/import/index.d.ts +29 -0
- package/dist/import/index.d.ts.map +1 -0
- package/dist/import/index.js +52 -0
- package/dist/import/index.js.map +1 -0
- package/dist/import/marker.d.ts +20 -0
- package/dist/import/marker.d.ts.map +1 -0
- package/dist/import/marker.js +71 -0
- package/dist/import/marker.js.map +1 -0
- package/dist/import/pipeline.d.ts +41 -0
- package/dist/import/pipeline.d.ts.map +1 -0
- package/dist/import/pipeline.js +47 -0
- package/dist/import/pipeline.js.map +1 -0
- package/dist/import/progress.d.ts +20 -0
- package/dist/import/progress.d.ts.map +1 -0
- package/dist/import/progress.js +69 -0
- package/dist/import/progress.js.map +1 -0
- package/dist/import/skip.d.ts +13 -0
- package/dist/import/skip.d.ts.map +1 -0
- package/dist/import/skip.js +24 -0
- package/dist/import/skip.js.map +1 -0
- package/dist/import/types.d.ts +125 -0
- package/dist/import/types.d.ts.map +1 -0
- package/dist/import/types.js +28 -0
- package/dist/import/types.js.map +1 -0
- package/dist/index.js +21 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/collector.d.ts +29 -3
- package/dist/lib/collector.d.ts.map +1 -1
- package/dist/lib/collector.js +118 -8
- package/dist/lib/collector.js.map +1 -1
- package/dist/lib/config.d.ts +240 -83
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +482 -89
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/event.d.ts +72 -0
- package/dist/lib/event.d.ts.map +1 -0
- package/dist/lib/event.js +42 -0
- package/dist/lib/event.js.map +1 -0
- package/dist/lib/gitignore.d.ts +21 -0
- package/dist/lib/gitignore.d.ts.map +1 -0
- package/dist/lib/gitignore.js +54 -0
- package/dist/lib/gitignore.js.map +1 -0
- package/dist/lib/runtime-section.d.ts +118 -0
- package/dist/lib/runtime-section.d.ts.map +1 -0
- package/dist/lib/runtime-section.js +256 -0
- package/dist/lib/runtime-section.js.map +1 -0
- package/dist/lib/telemetry.d.ts +1 -1
- package/dist/lib/telemetry.d.ts.map +1 -1
- package/dist/lib/telemetry.js +4 -1
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/queue/dead-letter.d.ts +5 -1
- package/dist/queue/dead-letter.d.ts.map +1 -1
- package/dist/queue/dead-letter.js +5 -1
- package/dist/queue/dead-letter.js.map +1 -1
- package/dist/queue/drain.d.ts +3 -2
- package/dist/queue/drain.d.ts.map +1 -1
- package/dist/queue/drain.js +3 -2
- package/dist/queue/drain.js.map +1 -1
- package/dist/queue/flush.d.ts +28 -12
- package/dist/queue/flush.d.ts.map +1 -1
- package/dist/queue/flush.js +43 -18
- package/dist/queue/flush.js.map +1 -1
- package/dist/queue/handlers/send-event.d.ts.map +1 -1
- package/dist/queue/handlers/send-event.js.map +1 -1
- package/dist/queue/index.d.ts +1 -2
- package/dist/queue/index.d.ts.map +1 -1
- package/dist/queue/index.js +2 -2
- package/dist/queue/index.js.map +1 -1
- package/dist/queue/paths.d.ts +4 -2
- package/dist/queue/paths.d.ts.map +1 -1
- package/dist/queue/paths.js +4 -2
- package/dist/queue/paths.js.map +1 -1
- package/dist/queue/process-file.d.ts +5 -1
- package/dist/queue/process-file.d.ts.map +1 -1
- package/dist/queue/process-file.js +5 -1
- package/dist/queue/process-file.js.map +1 -1
- package/dist/queue/snapshot.d.ts +4 -1
- package/dist/queue/snapshot.d.ts.map +1 -1
- package/dist/queue/snapshot.js +4 -1
- package/dist/queue/snapshot.js.map +1 -1
- package/dist/queue/spawn.d.ts +1 -3
- package/dist/queue/spawn.d.ts.map +1 -1
- package/dist/queue/spawn.js +1 -3
- package/dist/queue/spawn.js.map +1 -1
- package/dist/queue/submit.d.ts +6 -1
- package/dist/queue/submit.d.ts.map +1 -1
- package/dist/queue/submit.js +6 -1
- package/dist/queue/submit.js.map +1 -1
- package/dist/queue/types.d.ts +5 -1
- package/dist/queue/types.d.ts.map +1 -1
- package/dist/queue/types.js +5 -1
- package/dist/queue/types.js.map +1 -1
- package/dist/queue/worker-log.d.ts +3 -1
- package/dist/queue/worker-log.d.ts.map +1 -1
- package/dist/queue/worker-log.js +3 -1
- package/dist/queue/worker-log.js.map +1 -1
- package/package.json +3 -1
|
@@ -1,36 +1,39 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "MANDATORY
|
|
2
|
+
description: "MANDATORY verification after code changes — IronBee enforcement (browser + runtime cycles)"
|
|
3
3
|
alwaysApply: true
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You MUST verify all code changes
|
|
6
|
+
You MUST verify all code changes through real tools before completing any task. After every verification attempt, you MUST submit a verdict (pass or fail) via `ironbee hook submit-verdict` before doing anything else. If verification fails, submit the fail verdict first, then fix.
|
|
7
7
|
|
|
8
|
-
Verification
|
|
8
|
+
Verification runs in **cycles** decided by file pattern match — you don't choose, the gate detects:
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
- **Build** the application if needed (e.g. `npm run build`, `npm run dev`, `docker compose build`)
|
|
12
|
-
- **Start** the dev server before navigating to any page (e.g. `npm run dev`, `docker compose up -d`)
|
|
13
|
-
- **Stop** the dev server after verification is complete (e.g. `Ctrl+C`, `docker compose down`)
|
|
14
|
-
If the application is already running, skip the start step. If the build fails, fix it before proceeding.
|
|
15
|
-
**Do NOT guess ports.** After starting, check the actual port (e.g. `docker compose ps`, process output, config files) before navigating.
|
|
10
|
+
- **Browser cycle** — frontend file changes (default: most code extensions). Tools come from the **browser-devtools** MCP server (prefix `MCP:bdt_*`). Verification means navigating to the affected page and FUNCTIONALLY exercising the change in the browser — clicking, typing, submitting — not just looking at it.
|
|
16
11
|
|
|
17
|
-
|
|
18
|
-
1. Build and start the application if not already running
|
|
19
|
-
2. **Start verification**: `echo '{"session_id":"<your-session-id>"}' | ironbee hook verification-start` — REQUIRED before browser tools
|
|
20
|
-
3. Navigate to affected page(s) with `mcp__browser-devtools__bdt_navigation_go-to`
|
|
21
|
-
4. **Functionally test** the changes — click, type, submit, navigate, interact with the UI to exercise the code paths you modified
|
|
22
|
-
5. Take a screenshot with `mcp__browser-devtools__bdt_content_take-screenshot` to capture the final state
|
|
23
|
-
6. Check accessibility with `mcp__browser-devtools__bdt_a11y_take-aria-snapshot`
|
|
24
|
-
7. Check console for errors with `mcp__browser-devtools__bdt_o11y_get-console-messages`
|
|
25
|
-
8. Stop the dev server when done
|
|
26
|
-
9. **IMMEDIATELY submit your verdict** — do NOT edit any code before submitting: `echo '<verdict-json>' | ironbee hook submit-verdict`
|
|
27
|
-
- Pass → submit pass verdict
|
|
28
|
-
- Fail → submit fail verdict with issues, THEN fix the code and re-verify
|
|
29
|
-
- Submitting a verdict automatically ends the verification cycle
|
|
12
|
+
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.
|
|
30
13
|
|
|
31
|
-
|
|
14
|
+
## Application lifecycle
|
|
32
15
|
|
|
33
|
-
|
|
16
|
+
You manage the running application during verification:
|
|
17
|
+
- **Build** if needed (e.g. `npm run build`, `docker compose build`).
|
|
18
|
+
- **Start** before navigating/connecting (e.g. `npm run dev`, `docker compose up -d`).
|
|
19
|
+
- **Stop** the dev server after verification is complete.
|
|
20
|
+
|
|
21
|
+
Skip start if already running. Fix build errors before proceeding. **Don't guess ports** — check actual via `docker compose ps`, process output, or config.
|
|
22
|
+
|
|
23
|
+
## Required steps
|
|
24
|
+
|
|
25
|
+
1. Build and start the application if not already running.
|
|
26
|
+
2. **Start verification**: `echo '{"session_id":"<your-session-id>"}' | ironbee hook verification-start` — required before any devtools tool call.
|
|
27
|
+
3. Run the **Browser cycle** flow: navigate (`MCP:bdt_navigation_go-to`) → functionally test → screenshot (`MCP:bdt_content_take-screenshot`) → accessibility (`MCP:bdt_a11y_take-aria-snapshot`) → console (`MCP:bdt_o11y_get-console-messages`). All four are MANDATORY.
|
|
28
|
+
- If `recording.enable` is on, the gate forces `MCP:bdt_content_start-recording` BEFORE the steps above and rejects the verdict if you don't call `MCP:bdt_content_stop-recording` AFTER them. Always pair start/stop around steps above.
|
|
29
|
+
- **See the runtime section near the bottom of this file** — if a backend-runtime cycle is active for this project, run its flow within the same verification cycle as well.
|
|
30
|
+
4. Stop the dev server when done.
|
|
31
|
+
5. **If recording was started, stop it NOW** — `MCP:bdt_content_stop-recording` BEFORE submit-verdict. submit-verdict rejects with "recording is still active" if you skip this.
|
|
32
|
+
6. **IMMEDIATELY submit your verdict** — do NOT edit any code before submitting: `echo '<verdict-json>' | ironbee hook submit-verdict`.
|
|
33
|
+
- Pass verdict carries fields for every active cycle. Fail verdict adds `issues`. Pass after fail adds `fixes`.
|
|
34
|
+
- Status `pass` is overridden to fail by the gate when evidence doesn't back it.
|
|
35
|
+
|
|
36
|
+
The stop hook checks tool usage AND verdict validity for every active cycle. After EVERY verification attempt, you MUST submit a verdict before doing anything else — even if it failed. Do not skip to fixing code.
|
|
34
37
|
|
|
35
38
|
If verification fails: submit fail verdict → fix the code → re-verify → submit again.
|
|
36
39
|
|
|
@@ -38,8 +41,13 @@ Every file edit automatically clears your verdict, requiring re-verification.
|
|
|
38
41
|
|
|
39
42
|
## BANNED
|
|
40
43
|
|
|
41
|
-
- Writing verdict.json directly — always use `ironbee hook submit-verdict
|
|
42
|
-
- Skipping the fail verdict — always submit fail before fixing, so issues are tracked
|
|
43
|
-
- Submitting a verdict without actually performing
|
|
44
|
-
- Submitting a verdict based on assumptions, code reading, or prior knowledge
|
|
45
|
-
- Copying example verdicts from hook messages without doing real verification first
|
|
44
|
+
- Writing `verdict.json` directly — always use `ironbee hook submit-verdict`.
|
|
45
|
+
- Skipping the fail verdict — always submit fail before fixing, so issues are tracked.
|
|
46
|
+
- Submitting a verdict without actually performing verification through real tools.
|
|
47
|
+
- Submitting a verdict based on assumptions, code reading, or prior knowledge.
|
|
48
|
+
- Copying example verdicts from hook messages without doing real verification first.
|
|
49
|
+
- Calling `MCP:bdt_*` tools without first opening a verification cycle (`ironbee hook verification-start`).
|
|
50
|
+
- **Submitting a verdict while a browser recording is still active** — always call `MCP:bdt_content_stop-recording` BEFORE `ironbee hook submit-verdict`. The recording start/stop pair brackets the verification flow.
|
|
51
|
+
|
|
52
|
+
<!--IRONBEE:RUNTIME:node-->
|
|
53
|
+
<!--/IRONBEE:RUNTIME:node-->
|
|
@@ -1,91 +1,108 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ironbee-verification
|
|
3
3
|
description: >
|
|
4
|
-
MANDATORY
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
MANDATORY verification after code changes. Activates when implementing features, fixing
|
|
5
|
+
bugs, modifying UI components, API endpoints, styles, refactoring, or any task that
|
|
6
|
+
changes application behavior. Frontend changes require browser verification via the
|
|
7
|
+
browser-devtools MCP server. Backend changes ALSO require runtime-specific verification
|
|
8
|
+
via the matching MCP server when the operator has enabled that runtime (see
|
|
9
|
+
`ironbee enable-backend <runtime>`). After every code edit you MUST verify the affected
|
|
10
|
+
cycle(s) through real tools and submit a single verdict (pass or fail) before reporting
|
|
11
|
+
task completion. If verification fails, submit the fail verdict first, then fix.
|
|
9
12
|
---
|
|
10
13
|
|
|
11
|
-
# IronBee
|
|
14
|
+
# IronBee Verification
|
|
12
15
|
|
|
13
16
|
## Rule
|
|
14
|
-
No task is complete until changes are verified
|
|
15
|
-
|
|
16
|
-
## MCP Server
|
|
17
|
-
Verification is performed using the **browser-devtools** MCP server (`browser-devtools-mcp` package).
|
|
18
|
-
All browser interactions must go through this server's tools.
|
|
19
|
-
|
|
20
|
-
## Application Lifecycle
|
|
21
|
-
You are responsible for managing the application during verification:
|
|
22
|
-
- **Build** the application if needed (e.g. `npm run build`, `npm run dev`, `docker compose build`, or whatever the project uses)
|
|
23
|
-
- **Start** the dev server before navigating to any page (e.g. `npm run dev`, `docker compose up`, `docker compose up -d`)
|
|
24
|
-
- **Stop** the dev server after verification is complete (e.g. `Ctrl+C`, `docker compose down`)
|
|
25
|
-
|
|
26
|
-
If the application is already running, skip the start step. If the build fails, fix the build error before proceeding with verification.
|
|
27
|
-
|
|
28
|
-
**Do NOT guess ports.** After starting the application, check the actual port (e.g. `docker compose ps`, process output, or config files) before navigating. Never assume a default port.
|
|
29
|
-
|
|
30
|
-
## Flow
|
|
31
|
-
1. Implement your changes (write/edit code)
|
|
32
|
-
2. **Build and start** the application if not already running
|
|
33
|
-
3. **Start verification**: `echo '{"session_id":"<your-session-id>"}' | ironbee hook verification-start`
|
|
34
|
-
- This is REQUIRED before using any browser-devtools tools. Browser tools are blocked without it.
|
|
35
|
-
4. **Functionally test** your changes through the browser:
|
|
36
|
-
- **Navigate**: `mcp__browser-devtools__bdt_navigation_go-to` — go to the affected page(s)
|
|
37
|
-
- **Interact**: Use the browser agent to **actually test** what you changed — click buttons, fill forms, submit data, trigger workflows, navigate between pages. Do not just look at the page.
|
|
38
|
-
- **Screenshot**: `mcp__browser-devtools__bdt_content_take-screenshot` — capture the final visual state
|
|
39
|
-
- **Accessibility**: `mcp__browser-devtools__bdt_a11y_take-aria-snapshot` — verify page structure
|
|
40
|
-
- **Console**: `mcp__browser-devtools__bdt_o11y_get-console-messages` — check for errors
|
|
41
|
-
Navigate, Screenshot, Accessibility, and Console tools are MANDATORY. Functional interaction is expected for every verification.
|
|
42
|
-
5. **Stop** the dev server when verification is complete
|
|
43
|
-
6. **IMMEDIATELY submit your verdict** — do NOT edit any code before submitting: `echo '<verdict-json>' | ironbee hook submit-verdict`
|
|
44
|
-
- If everything works → submit pass verdict
|
|
45
|
-
- If something is broken → submit fail verdict with issues describing what failed
|
|
46
|
-
- **Never skip this step.** Every verification attempt must be recorded, pass or fail.
|
|
47
|
-
- Submitting a verdict automatically ends the verification cycle.
|
|
48
|
-
7. If you submitted a fail verdict → fix the code → rebuild → go back to step 2 → submit again → repeat until pass
|
|
17
|
+
No task is complete until changes are verified — through **real tools** (browser interaction or, when enabled, a backend-runtime debugger), not by reading code or inferring behavior. After verification, you MUST submit a verdict (pass or fail) before doing anything else. If verification fails, submit the fail verdict first, then fix.
|
|
49
18
|
|
|
50
|
-
##
|
|
51
|
-
- Changed a form handler? → Start the app, fill the form, submit it, verify the response
|
|
52
|
-
- Added a button? → Click it, confirm the expected action happens
|
|
53
|
-
- Fixed a routing bug? → Navigate through the affected routes
|
|
54
|
-
- Updated an API call? → Trigger the action that calls the API, verify the result in the UI
|
|
55
|
-
- Changed styling? → Take a screenshot AND interact to ensure layout didn't break functionality
|
|
56
|
-
|
|
57
|
-
## How it works
|
|
58
|
-
- At session start, the session-start hook outputs your session ID
|
|
59
|
-
- After verification, submit your verdict: `echo '<verdict-json>' | ironbee hook submit-verdict`
|
|
60
|
-
- The submit-verdict command validates your verdict and records it
|
|
61
|
-
- When you stop, the stop hook checks that browser tools were used AND a valid verdict exists
|
|
62
|
-
- Every code edit automatically clears your verdict, requiring re-verification
|
|
63
|
-
|
|
64
|
-
## Agent Teams
|
|
65
|
-
- Subagents focus on implementation only — do NOT verify
|
|
66
|
-
- The main orchestrator agent verifies ALL changes after subagents complete
|
|
67
|
-
- Each session's verification is isolated via session-specific verdict files
|
|
68
|
-
|
|
69
|
-
## Verdict format
|
|
70
|
-
|
|
71
|
-
On pass:
|
|
72
|
-
```json
|
|
73
|
-
{"session_id":"<your-session-id>","status":"pass","pages_tested":["http://localhost:3000/page"],"checks":["feature works"],"console_errors":0,"network_failures":0}
|
|
74
|
-
```
|
|
19
|
+
## Cycles
|
|
75
20
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
21
|
+
IronBee runs verification in **cycles**. A single stop hook can drive multiple cycles in parallel — every active cycle must pass for your task to complete.
|
|
22
|
+
|
|
23
|
+
- **Browser cycle** — always available. Triggered when a changed file matches `browser.verifyPatterns` (default: most code extensions — `.ts`, `.tsx`, `.css`, `.html`, `.py`, `.go`, `.java`, etc.). Tools come from the **browser-devtools** MCP server (prefix `MCP:bdt_*`). Verification means navigating to the affected page and FUNCTIONALLY exercising the change in the browser.
|
|
24
|
+
- **Backend-runtime cycle(s)** — opt-in per project via `ironbee enable-backend <runtime>` (e.g. `node`). Triggered when a changed file matches `backend.<runtime>.verifyPatterns`. Tools come from a runtime-specific MCP server. **See the runtime section near the bottom of this file** for whether a backend cycle is active for this project and which tools to call.
|
|
25
|
+
|
|
26
|
+
You don't choose which cycle runs — the file pattern decides. A single file can match multiple cycles' patterns and activate them all. Cycles always run in parallel within a single stop run.
|
|
27
|
+
|
|
28
|
+
## Application lifecycle (your responsibility)
|
|
29
|
+
|
|
30
|
+
For both cycles you manage the running application:
|
|
31
|
+
- **Build** if needed (`npm run build`, `docker compose build`, …)
|
|
32
|
+
- **Start** before navigating/connecting (`npm run dev`, `docker compose up -d`, …)
|
|
33
|
+
- **Stop** when verification is complete
|
|
34
|
+
|
|
35
|
+
If already running, skip start. If the build fails, fix it before proceeding.
|
|
36
|
+
|
|
37
|
+
**Don't guess ports.** After starting, check the actual port via `docker compose ps`, process output, or config files.
|
|
38
|
+
|
|
39
|
+
## Universal flow
|
|
80
40
|
|
|
81
|
-
|
|
41
|
+
1. Implement your changes (write/edit code).
|
|
42
|
+
2. **Start verification** (one cycle covers every active mode — browser plus any enabled backend-runtime cycles):
|
|
43
|
+
```
|
|
44
|
+
echo '{"session_id":"<your-session-id>"}' | ironbee hook verification-start
|
|
45
|
+
```
|
|
46
|
+
Devtools tools are blocked without this.
|
|
47
|
+
3. Build and start the application if not already running.
|
|
48
|
+
4. Run the **Browser flow** below. **See the runtime section near the bottom of this file** — if a backend-runtime cycle is active for this project, run its flow within the same verification cycle as well.
|
|
49
|
+
5. Stop the dev server when verification is complete.
|
|
50
|
+
6. **If recording was started, stop it now** — `MCP:bdt_content_stop-recording`. submit-verdict rejects when recording is still active.
|
|
51
|
+
7. **Submit your verdict immediately** — do NOT edit any code first:
|
|
52
|
+
```
|
|
53
|
+
echo '<verdict-json>' | ironbee hook submit-verdict
|
|
54
|
+
```
|
|
55
|
+
- Pass → submit pass verdict (with fields for every active cycle)
|
|
56
|
+
- Fail → submit fail verdict with `issues`
|
|
57
|
+
- **The stop hook overrides `status: pass` to fail when evidence doesn't back it.**
|
|
58
|
+
8. If failed → fix → rebuild → go back to step 2 → repeat until pass.
|
|
59
|
+
|
|
60
|
+
## Browser flow (when browser cycle is active)
|
|
61
|
+
|
|
62
|
+
> **Recording (only when `recording.enable` is on in config):** the gate blocks every other browser tool until you first call `MCP:bdt_content_start-recording`, and `submit-verdict` rejects with `"recording is still active"` unless you call `MCP:bdt_content_stop-recording` after the steps below. **Treat start/stop as bookends around steps 1-5.** This is also enforced as step 6 of the Universal flow above.
|
|
63
|
+
|
|
64
|
+
1. **Navigate**: `MCP:bdt_navigation_go-to` — go to the affected page(s)
|
|
65
|
+
2. **Interact**: actually exercise what changed — click buttons, fill forms, submit data, trigger workflows. Don't just look at the page.
|
|
66
|
+
3. **Screenshot**: `MCP:bdt_content_take-screenshot` — capture the final visual state
|
|
67
|
+
4. **Accessibility**: `MCP:bdt_a11y_take-aria-snapshot` — verify page structure
|
|
68
|
+
5. **Console**: `MCP:bdt_o11y_get-console-messages` — check for errors
|
|
69
|
+
|
|
70
|
+
All four tools are MANDATORY (the stop hook checks each). Functional interaction is expected for every verification.
|
|
71
|
+
|
|
72
|
+
### Browser verdict fields
|
|
82
73
|
```json
|
|
83
|
-
{
|
|
74
|
+
{
|
|
75
|
+
"session_id": "<sid>",
|
|
76
|
+
"status": "pass",
|
|
77
|
+
"pages_tested": ["http://localhost:3000/page"],
|
|
78
|
+
"checks": ["form submits successfully", "new item appears in list", "no console errors"],
|
|
79
|
+
"console_errors": 0,
|
|
80
|
+
"network_failures": 0
|
|
81
|
+
}
|
|
84
82
|
```
|
|
85
83
|
|
|
84
|
+
For `status: "pass"` (browser cycle): `console_errors === 0` AND `network_failures === 0`.
|
|
85
|
+
|
|
86
|
+
On fail, include `issues`. On pass after a previous fail, include `fixes`.
|
|
87
|
+
|
|
88
|
+
<!--IRONBEE:RUNTIME:node-->
|
|
89
|
+
<!--/IRONBEE:RUNTIME:node-->
|
|
90
|
+
|
|
91
|
+
## What good verification looks like
|
|
92
|
+
|
|
93
|
+
- Changed a form handler? → Start the app, fill the form, submit it, verify the response (browser flow).
|
|
94
|
+
- Added an API endpoint in a backend file (when a runtime cycle is enabled)? → Run that runtime's flow per the runtime section: attach to the running process, set a probe at the handler, exercise the path from the browser, confirm the probe triggered (or inspect runtime logs).
|
|
95
|
+
- Fixed a bug that surfaced as both a UI glitch AND a server error? → Multi-cycle: visual confirmation in the browser AND probe/log proof on the server.
|
|
96
|
+
- Changed styling only? → Browser flow with extra attention on screenshot review.
|
|
97
|
+
|
|
86
98
|
## Important
|
|
87
99
|
- **Always submit a verdict after every verification attempt** — both pass AND fail. Fail verdicts are tracked for analytics.
|
|
88
|
-
- The stop hook checks
|
|
89
|
-
- Submit verdicts via `ironbee hook submit-verdict`,
|
|
90
|
-
- Every file edit automatically clears your session's verdict
|
|
91
|
-
- After 3 failed verification attempts, you may complete but must report issues
|
|
100
|
+
- The stop hook checks tool usage AND verdict validity for every active cycle. Pass criteria are enforced separately per cycle, then AND-combined.
|
|
101
|
+
- Submit verdicts via `ironbee hook submit-verdict`, never write `verdict.json` directly.
|
|
102
|
+
- Every file edit automatically clears your session's verdict.
|
|
103
|
+
- After 3 failed verification attempts, you may complete but must report unresolved issues.
|
|
104
|
+
|
|
105
|
+
## Sub-agent teams
|
|
106
|
+
- Sub-agents (spawned via the `Task` tool) focus on implementation only — do NOT verify.
|
|
107
|
+
- The main orchestrator agent verifies ALL changes after sub-agents complete.
|
|
108
|
+
- Each session's verification is isolated via session-specific verdict files.
|
|
@@ -3,4 +3,18 @@ import { IClient } from "./base";
|
|
|
3
3
|
export declare const REGISTERED_CLIENTS: IClient[];
|
|
4
4
|
export declare function findClient(name: string): IClient | undefined;
|
|
5
5
|
export declare function detectClients(projectDir: string): IClient[];
|
|
6
|
+
export declare function clientNames(): string;
|
|
7
|
+
/**
|
|
8
|
+
* Pick which clients a toggle command (enable/disable verification or backend)
|
|
9
|
+
* should write to.
|
|
10
|
+
*
|
|
11
|
+
* - `clientOpt === "all"` → every registered client.
|
|
12
|
+
* - `clientOpt === <name>` → just that one (throws if unknown).
|
|
13
|
+
* - `clientOpt === undefined` → detected clients; falls back to the first
|
|
14
|
+
* registered client when nothing is detected (matches `install.ts`).
|
|
15
|
+
*
|
|
16
|
+
* Same shape as `install.ts`'s client-selection block, lifted here so toggle
|
|
17
|
+
* commands stay in sync.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveTargetClients(projectDir: string, clientOpt?: string): IClient[];
|
|
6
20
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/clients/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIjC,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,EAAE,OAAO,EAKvC,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE,CAE3D"}
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/clients/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIjC,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,EAAE,OAAO,EAKvC,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE,CAE3D;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAgBtF"}
|
package/dist/clients/registry.js
CHANGED
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.REGISTERED_CLIENTS = void 0;
|
|
4
4
|
exports.findClient = findClient;
|
|
5
5
|
exports.detectClients = detectClients;
|
|
6
|
+
exports.clientNames = clientNames;
|
|
7
|
+
exports.resolveTargetClients = resolveTargetClients;
|
|
6
8
|
const claude_1 = require("./claude");
|
|
7
9
|
const cursor_1 = require("./cursor");
|
|
8
10
|
/** All registered clients. Add new clients here as they are implemented. */
|
|
@@ -18,4 +20,36 @@ function findClient(name) {
|
|
|
18
20
|
function detectClients(projectDir) {
|
|
19
21
|
return exports.REGISTERED_CLIENTS.filter((c) => c.detect(projectDir));
|
|
20
22
|
}
|
|
23
|
+
function clientNames() {
|
|
24
|
+
return exports.REGISTERED_CLIENTS.map((c) => c.name).join(", ");
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Pick which clients a toggle command (enable/disable verification or backend)
|
|
28
|
+
* should write to.
|
|
29
|
+
*
|
|
30
|
+
* - `clientOpt === "all"` → every registered client.
|
|
31
|
+
* - `clientOpt === <name>` → just that one (throws if unknown).
|
|
32
|
+
* - `clientOpt === undefined` → detected clients; falls back to the first
|
|
33
|
+
* registered client when nothing is detected (matches `install.ts`).
|
|
34
|
+
*
|
|
35
|
+
* Same shape as `install.ts`'s client-selection block, lifted here so toggle
|
|
36
|
+
* commands stay in sync.
|
|
37
|
+
*/
|
|
38
|
+
function resolveTargetClients(projectDir, clientOpt) {
|
|
39
|
+
if (clientOpt === "all") {
|
|
40
|
+
return exports.REGISTERED_CLIENTS;
|
|
41
|
+
}
|
|
42
|
+
if (clientOpt !== undefined) {
|
|
43
|
+
const found = findClient(clientOpt);
|
|
44
|
+
if (!found) {
|
|
45
|
+
throw new Error(`Unknown client: '${clientOpt}'. Available: ${clientNames()}.`);
|
|
46
|
+
}
|
|
47
|
+
return [found];
|
|
48
|
+
}
|
|
49
|
+
const detected = detectClients(projectDir);
|
|
50
|
+
if (detected.length > 0) {
|
|
51
|
+
return detected;
|
|
52
|
+
}
|
|
53
|
+
return [exports.REGISTERED_CLIENTS[0]];
|
|
54
|
+
}
|
|
21
55
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/clients/registry.ts"],"names":[],"mappings":";;;AAYA,gCAEC;AAED,sCAEC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/clients/registry.ts"],"names":[],"mappings":";;;AAYA,gCAEC;AAED,sCAEC;AAED,kCAEC;AAcD,oDAgBC;AAnDD,qCAAwC;AACxC,qCAAwC;AAExC,4EAA4E;AAC/D,QAAA,kBAAkB,GAAc;IACzC,IAAI,qBAAY,EAAE;IAClB,IAAI,qBAAY,EAAE;IAClB,wEAAwE;IACxE,qEAAqE;CACxE,CAAC;AAEF,SAAgB,UAAU,CAAC,IAAY;IACnC,OAAO,0BAAkB,CAAC,IAAI,CAAC,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,SAAgB,aAAa,CAAC,UAAkB;IAC5C,OAAO,0BAAkB,CAAC,MAAM,CAAC,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAgB,WAAW;IACvB,OAAO,0BAAkB,CAAC,GAAG,CAAC,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,oBAAoB,CAAC,UAAkB,EAAE,SAAkB;IACvE,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,0BAAkB,CAAC;IAC9B,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAwB,UAAU,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,oBAAoB,SAAS,iBAAiB,WAAW,EAAE,GAAG,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAc,aAAa,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,0BAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiVpC,eAAO,MAAM,cAAc,EAAE,OA2CvB,CAAC"}
|
package/dist/commands/analyze.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.analyzeCommand = void 0;
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
|
+
const fs_1 = require("fs");
|
|
5
6
|
const path_1 = require("path");
|
|
6
7
|
const output_1 = require("../lib/output");
|
|
7
8
|
const time_analysis_1 = require("../analysis/time-analysis");
|
|
@@ -11,6 +12,38 @@ const fix_effectiveness_1 = require("../analysis/fix-effectiveness");
|
|
|
11
12
|
const scoring_1 = require("../analysis/scoring");
|
|
12
13
|
const cross_session_1 = require("../analysis/cross-session");
|
|
13
14
|
const verdict_details_1 = require("../analysis/verdict-details");
|
|
15
|
+
/**
|
|
16
|
+
* Detect a monitoring-only-mode session (verification disabled when it ran).
|
|
17
|
+
* The reliable signal is zero `verification_requested` events: enabled mode
|
|
18
|
+
* emits one per Stop hook fire (allow or block path), while monitoring mode
|
|
19
|
+
* runs `activity-end` instead, which never writes that event.
|
|
20
|
+
*
|
|
21
|
+
* We deliberately do NOT use zero `verification_start` — an enabled-mode
|
|
22
|
+
* session where the agent never edited code also has zero of those, but
|
|
23
|
+
* still gets `verification_requested` from the Stop hook.
|
|
24
|
+
*/
|
|
25
|
+
function isMonitoringOnlySession(actionsFile) {
|
|
26
|
+
if (!(0, fs_1.existsSync)(actionsFile)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
let content;
|
|
30
|
+
try {
|
|
31
|
+
content = (0, fs_1.readFileSync)(actionsFile, "utf-8");
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
const lines = content.split("\n");
|
|
37
|
+
for (const line of lines) {
|
|
38
|
+
if (line.includes("\"type\":\"verification_requested\"") || line.includes("\"type\": \"verification_requested\"")) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// No verification_requested at all: monitoring-only OR a session that
|
|
43
|
+
// never reached Stop. Distinguish by requiring at least one session_start
|
|
44
|
+
// — without that we have no useful context anyway.
|
|
45
|
+
return content.includes("\"type\":\"session_start\"") || content.includes("\"type\": \"session_start\"");
|
|
46
|
+
}
|
|
14
47
|
function formatDuration(ms) {
|
|
15
48
|
if (ms < 1000) {
|
|
16
49
|
return "0s";
|
|
@@ -143,8 +176,12 @@ function runSingleSessionAnalysis(sessionId, projectDir, opts) {
|
|
|
143
176
|
output_1.log.warn("No analyzable session data found.");
|
|
144
177
|
return;
|
|
145
178
|
}
|
|
179
|
+
const monitoringOnly = isMonitoringOnlySession(actionsFile);
|
|
146
180
|
if (opts.json) {
|
|
147
181
|
const output = { ...result, ...qualityResult, ...codeChanges, ...fixEffectiveness, ...scoring };
|
|
182
|
+
if (monitoringOnly) {
|
|
183
|
+
output.mode = "monitoring-only";
|
|
184
|
+
}
|
|
148
185
|
if (opts.detailed) {
|
|
149
186
|
const details = (0, verdict_details_1.extractVerdictDetails)(actionsFile);
|
|
150
187
|
if (details) {
|
|
@@ -158,6 +195,9 @@ function runSingleSessionAnalysis(sessionId, projectDir, opts) {
|
|
|
158
195
|
console.log();
|
|
159
196
|
console.log(` 📊 ${output_1.pc.bold("Session:")} ${output_1.pc.cyan(sessionId)}`);
|
|
160
197
|
console.log(` ${output_1.pc.bold("Duration:")} ${output_1.pc.cyan(formatDuration(result.sessionDuration))}`);
|
|
198
|
+
if (monitoringOnly) {
|
|
199
|
+
console.log(` ${output_1.pc.yellow("⚠")} ${output_1.pc.yellow("Monitoring-only mode")} ${output_1.pc.dim("— verification metrics unavailable for this session")}`);
|
|
200
|
+
}
|
|
161
201
|
section("Phase Distribution", "⏱️");
|
|
162
202
|
const codingBar = bar(result.codingPercent);
|
|
163
203
|
const verifyBar = bar(result.verificationPercent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for `enable-backend <runtime>` / `disable-backend <runtime>`.
|
|
3
|
+
*
|
|
4
|
+
* Per design §10 — opt-in activation for backend verification per runtime.
|
|
5
|
+
*
|
|
6
|
+
* - `applyEnableBackend(runtime, projectDir)` writes opinionated default
|
|
7
|
+
* `verifyPatterns` to the project config under `backend.<runtime>`.
|
|
8
|
+
* Refuses if patterns are already populated. Other fields
|
|
9
|
+
* (`alwaysRequired`, `evidencePaths`, `additionalVerifyPatterns`) are
|
|
10
|
+
* not written — they merge in from defaults at config-load time.
|
|
11
|
+
*
|
|
12
|
+
* - `applyDisableBackend(runtime, projectDir)` resets `verifyPatterns`
|
|
13
|
+
* to `[]` for the runtime, leaving customizations of other fields
|
|
14
|
+
* intact so a later re-enable restores them. Idempotent.
|
|
15
|
+
*
|
|
16
|
+
* Both throw when `<runtime>` isn't in the registered runtime set
|
|
17
|
+
* (today: just `node`); callers handle the error and exit.
|
|
18
|
+
*/
|
|
19
|
+
export declare function knownRuntimes(): string[];
|
|
20
|
+
export declare function assertKnownRuntime(runtime: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Enable a backend runtime: write default `verifyPatterns` + splice the
|
|
23
|
+
* runtime fragment into installed skill/rule/command md files.
|
|
24
|
+
*
|
|
25
|
+
* No-op + warning when patterns are already populated (the user must
|
|
26
|
+
* `disable-backend` first to reset, since we don't want to clobber their
|
|
27
|
+
* custom additions).
|
|
28
|
+
*
|
|
29
|
+
* `clientName`: optional filter for which clients' md files to update.
|
|
30
|
+
* Same semantics as `applyVerificationToggle` — `"all"` / `<name>` /
|
|
31
|
+
* undefined (default: every registered client; per-file existsSync gate
|
|
32
|
+
* skips ones without installed artifacts).
|
|
33
|
+
*/
|
|
34
|
+
export declare function applyEnableBackend(runtime: string, projectDir: string, clientName?: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Disable a backend runtime: reset `verifyPatterns` to `[]` and reset the
|
|
37
|
+
* runtime fragment in installed skill/rule/command md files.
|
|
38
|
+
*
|
|
39
|
+
* Customizations of `alwaysRequired`, `evidencePaths`, and
|
|
40
|
+
* `additionalVerifyPatterns` are preserved. Idempotent.
|
|
41
|
+
*
|
|
42
|
+
* `clientName`: same semantics as `applyEnableBackend`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function applyDisableBackend(runtime: string, projectDir: string, clientName?: string): void;
|
|
45
|
+
//# sourceMappingURL=backend-toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-toggle.d.ts","sourceRoot":"","sources":["../../src/commands/backend-toggle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAiDH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAWxC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKxD;AAyCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAgDjG;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAwBlG"}
|