@red-codes/agentguard 1.0.0 → 1.1.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/dist/args.d.ts.map +1 -0
- package/dist/args.js.map +1 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +29190 -0
- package/dist/bin.js.map +7 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js.map +1 -0
- package/dist/commands/adoption.d.ts +2 -0
- package/dist/commands/adoption.d.ts.map +1 -0
- package/dist/commands/adoption.js +172 -0
- package/dist/commands/adoption.js.map +1 -0
- package/dist/commands/analytics.d.ts +3 -0
- package/dist/commands/analytics.d.ts.map +1 -0
- package/dist/commands/analytics.js +7 -0
- package/dist/commands/analytics.js.map +1 -0
- package/dist/commands/audit-verify.d.ts +3 -0
- package/dist/commands/audit-verify.d.ts.map +1 -0
- package/dist/commands/audit-verify.js +94 -0
- package/dist/commands/audit-verify.js.map +1 -0
- package/dist/commands/auto-setup.d.ts +28 -0
- package/dist/commands/auto-setup.d.ts.map +1 -0
- package/dist/commands/auto-setup.js +146 -0
- package/dist/commands/auto-setup.js.map +1 -0
- package/dist/commands/ci-check.d.ts +13 -0
- package/dist/commands/ci-check.d.ts.map +1 -0
- package/dist/commands/ci-check.js +286 -0
- package/dist/commands/ci-check.js.map +1 -0
- package/dist/commands/claude-hook.d.ts +2 -0
- package/dist/commands/claude-hook.d.ts.map +1 -0
- package/dist/commands/claude-hook.js +254 -0
- package/dist/commands/claude-hook.js.map +1 -0
- package/dist/commands/claude-init.d.ts.map +1 -0
- package/dist/commands/claude-init.js +401 -0
- package/dist/commands/claude-init.js.map +1 -0
- package/dist/commands/config.d.ts +39 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +368 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/demo.d.ts +2 -0
- package/dist/commands/demo.d.ts.map +1 -0
- package/dist/commands/demo.js +100 -0
- package/dist/commands/demo.js.map +1 -0
- package/dist/commands/diff.d.ts +3 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +364 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/evidence-pr.d.ts +3 -0
- package/dist/commands/evidence-pr.d.ts.map +1 -0
- package/dist/commands/evidence-pr.js +162 -0
- package/dist/commands/evidence-pr.js.map +1 -0
- package/dist/commands/export.d.ts +22 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +92 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/guard.d.ts +21 -0
- package/dist/commands/guard.d.ts.map +1 -0
- package/dist/commands/guard.js +272 -0
- package/dist/commands/guard.js.map +1 -0
- package/dist/commands/import.d.ts +3 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/{cli/commands → commands}/import.js +25 -26
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +1288 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/inspect.d.ts +4 -0
- package/dist/commands/inspect.d.ts.map +1 -0
- package/dist/{cli/commands → commands}/inspect.js +97 -70
- package/dist/commands/inspect.js.map +1 -0
- package/dist/commands/learn.d.ts +2 -0
- package/dist/commands/learn.d.ts.map +1 -0
- package/dist/commands/learn.js +264 -0
- package/dist/commands/learn.js.map +1 -0
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +270 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/plugin.d.ts.map +1 -0
- package/dist/{cli/commands → commands}/plugin.js +2 -2
- package/dist/commands/plugin.js.map +1 -0
- package/dist/commands/policy-verify.d.ts +46 -0
- package/dist/commands/policy-verify.d.ts.map +1 -0
- package/dist/commands/policy-verify.js +173 -0
- package/dist/commands/policy-verify.js.map +1 -0
- package/dist/commands/policy.d.ts +27 -0
- package/dist/commands/policy.d.ts.map +1 -0
- package/dist/commands/policy.js +590 -0
- package/dist/commands/policy.js.map +1 -0
- package/dist/{cli/commands → commands}/replay.d.ts +2 -1
- package/dist/commands/replay.d.ts.map +1 -0
- package/dist/{cli/commands → commands}/replay.js +78 -12
- package/dist/commands/replay.js.map +1 -0
- package/dist/commands/session-viewer.d.ts +5 -0
- package/dist/commands/session-viewer.d.ts.map +1 -0
- package/dist/commands/session-viewer.js +462 -0
- package/dist/commands/session-viewer.js.map +1 -0
- package/dist/commands/simulate.d.ts +7 -0
- package/dist/commands/simulate.d.ts.map +1 -0
- package/dist/commands/simulate.js +505 -0
- package/dist/commands/simulate.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +212 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/traces.d.ts +24 -0
- package/dist/commands/traces.d.ts.map +1 -0
- package/dist/commands/traces.js +282 -0
- package/dist/commands/traces.js.map +1 -0
- package/dist/commands/trust.d.ts +6 -0
- package/dist/commands/trust.d.ts.map +1 -0
- package/dist/commands/trust.js +129 -0
- package/dist/commands/trust.js.map +1 -0
- package/dist/evidence-summary.d.ts +35 -0
- package/dist/evidence-summary.d.ts.map +1 -0
- package/dist/evidence-summary.js +202 -0
- package/dist/evidence-summary.js.map +1 -0
- package/dist/{cli/file-event-store.d.ts → file-event-store.d.ts} +1 -1
- package/dist/file-event-store.d.ts.map +1 -0
- package/dist/{cli/file-event-store.js → file-event-store.js} +1 -1
- package/dist/file-event-store.js.map +1 -0
- package/{hooks → dist/hooks}/post-commit +3 -1
- package/{hooks → dist/hooks}/post-merge +3 -1
- package/dist/hooks/pre-commit +29 -0
- package/dist/policy-resolver.d.ts +32 -0
- package/dist/policy-resolver.d.ts.map +1 -0
- package/dist/policy-resolver.js +171 -0
- package/dist/policy-resolver.js.map +1 -0
- package/dist/{cli/recorder.d.ts → recorder.d.ts} +1 -1
- package/dist/recorder.d.ts.map +1 -0
- package/dist/{cli/recorder.js → recorder.js} +1 -1
- package/dist/recorder.js.map +1 -0
- package/dist/replay-timeline-html.d.ts +21 -0
- package/dist/replay-timeline-html.d.ts.map +1 -0
- package/dist/replay-timeline-html.js +414 -0
- package/dist/replay-timeline-html.js.map +1 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/{cli/replay.js → replay.js} +92 -1
- package/dist/replay.js.map +1 -0
- package/dist/{cli/session-store.d.ts → session-store.d.ts} +5 -0
- package/dist/session-store.d.ts.map +1 -0
- package/dist/{cli/session-store.js → session-store.js} +1 -0
- package/dist/session-store.js.map +1 -0
- package/dist/session-viewer-html.d.ts +10 -0
- package/dist/session-viewer-html.d.ts.map +1 -0
- package/dist/session-viewer-html.js +737 -0
- package/dist/session-viewer-html.js.map +1 -0
- package/dist/templates/ci-only.yaml +103 -0
- package/dist/templates/development.yaml +107 -0
- package/dist/templates/permissive.yaml +87 -0
- package/dist/templates/strict.yaml +112 -0
- package/dist/tui.d.ts +3 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +2 -0
- package/dist/tui.js.map +1 -0
- package/package.json +42 -53
- package/README.md +0 -298
- package/dist/adapters/claude-code.d.ts +0 -24
- package/dist/adapters/claude-code.d.ts.map +0 -1
- package/dist/adapters/claude-code.js +0 -99
- package/dist/adapters/claude-code.js.map +0 -1
- package/dist/adapters/file.d.ts +0 -3
- package/dist/adapters/file.d.ts.map +0 -1
- package/dist/adapters/file.js +0 -35
- package/dist/adapters/file.js.map +0 -1
- package/dist/adapters/git.d.ts +0 -3
- package/dist/adapters/git.d.ts.map +0 -1
- package/dist/adapters/git.js +0 -61
- package/dist/adapters/git.js.map +0 -1
- package/dist/adapters/registry.d.ts +0 -5
- package/dist/adapters/registry.d.ts.map +0 -1
- package/dist/adapters/registry.js +0 -15
- package/dist/adapters/registry.js.map +0 -1
- package/dist/adapters/shell.d.ts +0 -8
- package/dist/adapters/shell.d.ts.map +0 -1
- package/dist/adapters/shell.js +0 -27
- package/dist/adapters/shell.js.map +0 -1
- package/dist/cli/args.d.ts.map +0 -1
- package/dist/cli/args.js.map +0 -1
- package/dist/cli/bin.d.ts.map +0 -1
- package/dist/cli/bin.js +0 -5769
- package/dist/cli/bin.js.map +0 -7
- package/dist/cli/colors.d.ts.map +0 -1
- package/dist/cli/colors.js.map +0 -1
- package/dist/cli/commands/claude-hook.d.ts +0 -2
- package/dist/cli/commands/claude-hook.d.ts.map +0 -1
- package/dist/cli/commands/claude-hook.js +0 -110
- package/dist/cli/commands/claude-hook.js.map +0 -1
- package/dist/cli/commands/claude-init.d.ts.map +0 -1
- package/dist/cli/commands/claude-init.js +0 -150
- package/dist/cli/commands/claude-init.js.map +0 -1
- package/dist/cli/commands/export.d.ts +0 -11
- package/dist/cli/commands/export.d.ts.map +0 -1
- package/dist/cli/commands/export.js +0 -113
- package/dist/cli/commands/export.js.map +0 -1
- package/dist/cli/commands/guard.d.ts +0 -12
- package/dist/cli/commands/guard.d.ts.map +0 -1
- package/dist/cli/commands/guard.js +0 -145
- package/dist/cli/commands/guard.js.map +0 -1
- package/dist/cli/commands/import.d.ts +0 -2
- package/dist/cli/commands/import.d.ts.map +0 -1
- package/dist/cli/commands/import.js.map +0 -1
- package/dist/cli/commands/inspect.d.ts +0 -3
- package/dist/cli/commands/inspect.d.ts.map +0 -1
- package/dist/cli/commands/inspect.js.map +0 -1
- package/dist/cli/commands/plugin.d.ts.map +0 -1
- package/dist/cli/commands/plugin.js.map +0 -1
- package/dist/cli/commands/replay.d.ts.map +0 -1
- package/dist/cli/commands/replay.js.map +0 -1
- package/dist/cli/file-event-store.d.ts.map +0 -1
- package/dist/cli/file-event-store.js.map +0 -1
- package/dist/cli/policy-resolver.d.ts +0 -4
- package/dist/cli/policy-resolver.d.ts.map +0 -1
- package/dist/cli/policy-resolver.js +0 -62
- package/dist/cli/policy-resolver.js.map +0 -1
- package/dist/cli/recorder.d.ts.map +0 -1
- package/dist/cli/recorder.js.map +0 -1
- package/dist/cli/replay.d.ts.map +0 -1
- package/dist/cli/replay.js.map +0 -1
- package/dist/cli/session-store.d.ts.map +0 -1
- package/dist/cli/session-store.js.map +0 -1
- package/dist/cli/tui.d.ts +0 -24
- package/dist/cli/tui.d.ts.map +0 -1
- package/dist/cli/tui.js +0 -197
- package/dist/cli/tui.js.map +0 -1
- package/dist/core/actions.d.ts +0 -11
- package/dist/core/actions.d.ts.map +0 -1
- package/dist/core/actions.js +0 -112
- package/dist/core/actions.js.map +0 -1
- package/dist/core/adapters.d.ts +0 -19
- package/dist/core/adapters.d.ts.map +0 -1
- package/dist/core/adapters.js +0 -85
- package/dist/core/adapters.js.map +0 -1
- package/dist/core/execution-log/bridge.d.ts +0 -12
- package/dist/core/execution-log/bridge.d.ts.map +0 -1
- package/dist/core/execution-log/bridge.js +0 -112
- package/dist/core/execution-log/bridge.js.map +0 -1
- package/dist/core/execution-log/event-log.d.ts +0 -7
- package/dist/core/execution-log/event-log.d.ts.map +0 -1
- package/dist/core/execution-log/event-log.js +0 -103
- package/dist/core/execution-log/event-log.js.map +0 -1
- package/dist/core/execution-log/event-projections.d.ts +0 -28
- package/dist/core/execution-log/event-projections.d.ts.map +0 -1
- package/dist/core/execution-log/event-projections.js +0 -272
- package/dist/core/execution-log/event-projections.js.map +0 -1
- package/dist/core/execution-log/event-schema.d.ts +0 -56
- package/dist/core/execution-log/event-schema.d.ts.map +0 -1
- package/dist/core/execution-log/event-schema.js +0 -160
- package/dist/core/execution-log/event-schema.js.map +0 -1
- package/dist/core/execution-log/index.d.ts +0 -7
- package/dist/core/execution-log/index.d.ts.map +0 -1
- package/dist/core/execution-log/index.js +0 -13
- package/dist/core/execution-log/index.js.map +0 -1
- package/dist/core/hash.d.ts +0 -5
- package/dist/core/hash.d.ts.map +0 -1
- package/dist/core/hash.js +0 -13
- package/dist/core/hash.js.map +0 -1
- package/dist/core/rng.d.ts +0 -29
- package/dist/core/rng.d.ts.map +0 -1
- package/dist/core/rng.js +0 -48
- package/dist/core/rng.js.map +0 -1
- package/dist/core/types.d.ts +0 -746
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -8
- package/dist/core/types.js.map +0 -1
- package/dist/events/bus.d.ts +0 -24
- package/dist/events/bus.d.ts.map +0 -1
- package/dist/events/bus.js +0 -64
- package/dist/events/bus.js.map +0 -1
- package/dist/events/decision-jsonl.d.ts +0 -8
- package/dist/events/decision-jsonl.d.ts.map +0 -1
- package/dist/events/decision-jsonl.js +0 -44
- package/dist/events/decision-jsonl.js.map +0 -1
- package/dist/events/jsonl.d.ts +0 -8
- package/dist/events/jsonl.d.ts.map +0 -1
- package/dist/events/jsonl.js +0 -46
- package/dist/events/jsonl.js.map +0 -1
- package/dist/events/schema.d.ts +0 -59
- package/dist/events/schema.d.ts.map +0 -1
- package/dist/events/schema.js +0 -296
- package/dist/events/schema.js.map +0 -1
- package/dist/events/store.d.ts +0 -7
- package/dist/events/store.d.ts.map +0 -1
- package/dist/events/store.js +0 -64
- package/dist/events/store.js.map +0 -1
- package/dist/invariants/checker.d.ts +0 -15
- package/dist/invariants/checker.d.ts.map +0 -1
- package/dist/invariants/checker.js +0 -52
- package/dist/invariants/checker.js.map +0 -1
- package/dist/invariants/definitions.d.ts +0 -33
- package/dist/invariants/definitions.d.ts.map +0 -1
- package/dist/invariants/definitions.js +0 -168
- package/dist/invariants/definitions.js.map +0 -1
- package/dist/kernel/aab.d.ts +0 -26
- package/dist/kernel/aab.d.ts.map +0 -1
- package/dist/kernel/aab.js +0 -149
- package/dist/kernel/aab.js.map +0 -1
- package/dist/kernel/blast-radius.d.ts +0 -60
- package/dist/kernel/blast-radius.d.ts.map +0 -1
- package/dist/kernel/blast-radius.js +0 -146
- package/dist/kernel/blast-radius.js.map +0 -1
- package/dist/kernel/decision.d.ts +0 -40
- package/dist/kernel/decision.d.ts.map +0 -1
- package/dist/kernel/decision.js +0 -92
- package/dist/kernel/decision.js.map +0 -1
- package/dist/kernel/decisions/factory.d.ts +0 -12
- package/dist/kernel/decisions/factory.d.ts.map +0 -1
- package/dist/kernel/decisions/factory.js +0 -56
- package/dist/kernel/decisions/factory.js.map +0 -1
- package/dist/kernel/decisions/types.d.ts +0 -70
- package/dist/kernel/decisions/types.d.ts.map +0 -1
- package/dist/kernel/decisions/types.js +0 -5
- package/dist/kernel/decisions/types.js.map +0 -1
- package/dist/kernel/evidence.d.ts +0 -29
- package/dist/kernel/evidence.d.ts.map +0 -1
- package/dist/kernel/evidence.js +0 -61
- package/dist/kernel/evidence.js.map +0 -1
- package/dist/kernel/kernel.d.ts +0 -47
- package/dist/kernel/kernel.d.ts.map +0 -1
- package/dist/kernel/kernel.js +0 -377
- package/dist/kernel/kernel.js.map +0 -1
- package/dist/kernel/monitor.d.ts +0 -35
- package/dist/kernel/monitor.d.ts.map +0 -1
- package/dist/kernel/monitor.js +0 -144
- package/dist/kernel/monitor.js.map +0 -1
- package/dist/kernel/replay-comparator.d.ts +0 -72
- package/dist/kernel/replay-comparator.d.ts.map +0 -1
- package/dist/kernel/replay-comparator.js +0 -251
- package/dist/kernel/replay-comparator.js.map +0 -1
- package/dist/kernel/replay-engine.d.ts +0 -108
- package/dist/kernel/replay-engine.d.ts.map +0 -1
- package/dist/kernel/replay-engine.js +0 -241
- package/dist/kernel/replay-engine.js.map +0 -1
- package/dist/kernel/replay-processor.d.ts +0 -109
- package/dist/kernel/replay-processor.d.ts.map +0 -1
- package/dist/kernel/replay-processor.js +0 -118
- package/dist/kernel/replay-processor.js.map +0 -1
- package/dist/kernel/simulation/filesystem-simulator.d.ts +0 -3
- package/dist/kernel/simulation/filesystem-simulator.d.ts.map +0 -1
- package/dist/kernel/simulation/filesystem-simulator.js +0 -81
- package/dist/kernel/simulation/filesystem-simulator.js.map +0 -1
- package/dist/kernel/simulation/git-simulator.d.ts +0 -5
- package/dist/kernel/simulation/git-simulator.d.ts.map +0 -1
- package/dist/kernel/simulation/git-simulator.js +0 -115
- package/dist/kernel/simulation/git-simulator.js.map +0 -1
- package/dist/kernel/simulation/package-simulator.d.ts +0 -5
- package/dist/kernel/simulation/package-simulator.d.ts.map +0 -1
- package/dist/kernel/simulation/package-simulator.js +0 -164
- package/dist/kernel/simulation/package-simulator.js.map +0 -1
- package/dist/kernel/simulation/registry.d.ts +0 -3
- package/dist/kernel/simulation/registry.d.ts.map +0 -1
- package/dist/kernel/simulation/registry.js +0 -24
- package/dist/kernel/simulation/registry.js.map +0 -1
- package/dist/kernel/simulation/types.d.ts +0 -35
- package/dist/kernel/simulation/types.d.ts.map +0 -1
- package/dist/kernel/simulation/types.js +0 -4
- package/dist/kernel/simulation/types.js.map +0 -1
- package/dist/plugins/discovery.d.ts +0 -45
- package/dist/plugins/discovery.d.ts.map +0 -1
- package/dist/plugins/discovery.js +0 -89
- package/dist/plugins/discovery.js.map +0 -1
- package/dist/plugins/index.d.ts +0 -10
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/index.js +0 -7
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/registry.d.ts +0 -52
- package/dist/plugins/registry.d.ts.map +0 -1
- package/dist/plugins/registry.js +0 -148
- package/dist/plugins/registry.js.map +0 -1
- package/dist/plugins/sandbox.d.ts +0 -87
- package/dist/plugins/sandbox.d.ts.map +0 -1
- package/dist/plugins/sandbox.js +0 -122
- package/dist/plugins/sandbox.js.map +0 -1
- package/dist/plugins/types.d.ts +0 -61
- package/dist/plugins/types.d.ts.map +0 -1
- package/dist/plugins/types.js +0 -16
- package/dist/plugins/types.js.map +0 -1
- package/dist/plugins/validator.d.ts +0 -36
- package/dist/plugins/validator.d.ts.map +0 -1
- package/dist/plugins/validator.js +0 -276
- package/dist/plugins/validator.js.map +0 -1
- package/dist/policy/evaluator.d.ts +0 -41
- package/dist/policy/evaluator.d.ts.map +0 -1
- package/dist/policy/evaluator.js +0 -111
- package/dist/policy/evaluator.js.map +0 -1
- package/dist/policy/loader.d.ts +0 -13
- package/dist/policy/loader.d.ts.map +0 -1
- package/dist/policy/loader.js +0 -118
- package/dist/policy/loader.js.map +0 -1
- package/dist/policy/pack-loader.d.ts +0 -40
- package/dist/policy/pack-loader.d.ts.map +0 -1
- package/dist/policy/pack-loader.js +0 -138
- package/dist/policy/pack-loader.js.map +0 -1
- package/dist/policy/yaml-loader.d.ts +0 -23
- package/dist/policy/yaml-loader.d.ts.map +0 -1
- package/dist/policy/yaml-loader.js +0 -222
- package/dist/policy/yaml-loader.js.map +0 -1
- package/dist/renderers/index.d.ts +0 -6
- package/dist/renderers/index.d.ts.map +0 -1
- package/dist/renderers/index.js +0 -4
- package/dist/renderers/index.js.map +0 -1
- package/dist/renderers/registry.d.ts +0 -39
- package/dist/renderers/registry.d.ts.map +0 -1
- package/dist/renderers/registry.js +0 -97
- package/dist/renderers/registry.js.map +0 -1
- package/dist/renderers/tui-renderer.d.ts +0 -18
- package/dist/renderers/tui-renderer.d.ts.map +0 -1
- package/dist/renderers/tui-renderer.js +0 -57
- package/dist/renderers/tui-renderer.js.map +0 -1
- package/dist/renderers/types.d.ts +0 -52
- package/dist/renderers/types.d.ts.map +0 -1
- package/dist/renderers/types.js +0 -4
- package/dist/renderers/types.js.map +0 -1
- package/dist/telemetry/index.d.ts +0 -3
- package/dist/telemetry/index.d.ts.map +0 -1
- package/dist/telemetry/index.js +0 -2
- package/dist/telemetry/index.js.map +0 -1
- package/dist/telemetry/runtimeLogger.d.ts +0 -9
- package/dist/telemetry/runtimeLogger.d.ts.map +0 -1
- package/dist/telemetry/runtimeLogger.js +0 -68
- package/dist/telemetry/runtimeLogger.js.map +0 -1
- package/dist/telemetry/types.d.ts +0 -22
- package/dist/telemetry/types.d.ts.map +0 -1
- package/dist/telemetry/types.js +0 -4
- package/dist/telemetry/types.js.map +0 -1
- package/hooks/pre-commit +0 -28
- /package/dist/{cli/args.d.ts → args.d.ts} +0 -0
- /package/dist/{cli/args.js → args.js} +0 -0
- /package/dist/{cli/bin.d.ts → bin.d.ts} +0 -0
- /package/dist/{cli/colors.d.ts → colors.d.ts} +0 -0
- /package/dist/{cli/colors.js → colors.js} +0 -0
- /package/dist/{cli/commands → commands}/claude-init.d.ts +0 -0
- /package/dist/{cli/commands → commands}/plugin.d.ts +0 -0
- /package/dist/{cli/replay.d.ts → replay.d.ts} +0 -0
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
// agentguard claude-init — set up Claude Code integration
|
|
2
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
3
|
+
import { execSync } from 'node:child_process';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { homedir } from 'node:os';
|
|
6
|
+
import { RESET, BOLD, DIM, FG } from '../colors.js';
|
|
7
|
+
import { resolveMainRepoRoot } from '@red-codes/core';
|
|
8
|
+
const HOOK_MARKER = 'claude-hook';
|
|
9
|
+
const BUILD_MARKER = 'apps/cli/dist/bin.js';
|
|
10
|
+
const LOCAL_BIN = 'node apps/cli/dist/bin.js';
|
|
11
|
+
/** Detect if we're in the agentguard development repo (local dev) vs. globally installed. */
|
|
12
|
+
function resolveCliPrefix() {
|
|
13
|
+
// If apps/cli/src/bin.ts exists, we're in the agentguard source repo (works in worktrees too)
|
|
14
|
+
const mainRoot = resolveMainRepoRoot();
|
|
15
|
+
const localMarker = join(mainRoot, 'apps', 'cli', 'src', 'bin.ts');
|
|
16
|
+
if (existsSync(localMarker)) {
|
|
17
|
+
return { cli: LOCAL_BIN, isLocal: true };
|
|
18
|
+
}
|
|
19
|
+
return { cli: 'agentguard', isLocal: false };
|
|
20
|
+
}
|
|
21
|
+
export async function claudeInit(args = []) {
|
|
22
|
+
const isGlobal = args.includes('--global') || args.includes('-g');
|
|
23
|
+
const isRemove = args.includes('--remove') || args.includes('--uninstall');
|
|
24
|
+
const isRefresh = args.includes('--refresh');
|
|
25
|
+
// Parse --store flag for storage backend (embedded into hook commands)
|
|
26
|
+
const storeIdx = args.findIndex((a) => a === '--store');
|
|
27
|
+
const storeBackend = storeIdx !== -1 ? args[storeIdx + 1] : undefined;
|
|
28
|
+
const storeSuffix = storeBackend ? ` --store ${storeBackend}` : '';
|
|
29
|
+
// Parse --db-path flag for SQLite database path (embedded into hook commands)
|
|
30
|
+
const dbPathIdx = args.findIndex((a) => a === '--db-path');
|
|
31
|
+
const dbPathValue = dbPathIdx !== -1 ? args[dbPathIdx + 1] : undefined;
|
|
32
|
+
const dbPathSuffix = dbPathValue ? ` --db-path "${dbPathValue}"` : '';
|
|
33
|
+
const settingsDir = isGlobal ? join(homedir(), '.claude') : join(process.cwd(), '.claude');
|
|
34
|
+
const settingsPath = join(settingsDir, 'settings.json');
|
|
35
|
+
const settingsLabel = isGlobal ? '~/.claude/settings.json' : '.claude/settings.json';
|
|
36
|
+
process.stderr.write('\n');
|
|
37
|
+
process.stderr.write(` ${BOLD}AgentGuard Claude Code Integration${RESET}\n\n`);
|
|
38
|
+
if (isRemove) {
|
|
39
|
+
removeHook(settingsPath, settingsLabel);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (!existsSync(settingsDir)) {
|
|
43
|
+
mkdirSync(settingsDir, { recursive: true });
|
|
44
|
+
}
|
|
45
|
+
let settings = {};
|
|
46
|
+
if (existsSync(settingsPath)) {
|
|
47
|
+
try {
|
|
48
|
+
settings = JSON.parse(readFileSync(settingsPath, 'utf8'));
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
process.stderr.write(` ${FG.yellow}Warning:${RESET} Could not parse ${settingsLabel}, creating fresh config.\n`);
|
|
52
|
+
settings = {};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (isRefresh && hasAgentGuardHook(settings)) {
|
|
56
|
+
const { storeHookBaseline } = await import('@red-codes/adapters');
|
|
57
|
+
storeHookBaseline(settingsPath);
|
|
58
|
+
process.stderr.write(` ${FG.green}✓${RESET} Hook baseline refreshed for ${settingsLabel}\n\n`);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (hasAgentGuardHook(settings)) {
|
|
62
|
+
process.stderr.write(` ${FG.yellow}Already configured.${RESET} AgentGuard hook found in ${settingsLabel}.\n`);
|
|
63
|
+
process.stderr.write(` ${DIM}Use --remove to uninstall.${RESET}\n\n`);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!settings.hooks)
|
|
67
|
+
settings.hooks = {};
|
|
68
|
+
const { cli, isLocal } = resolveCliPrefix();
|
|
69
|
+
// PreToolUse — governance enforcement (routes all tool calls through the kernel)
|
|
70
|
+
if (!settings.hooks.PreToolUse)
|
|
71
|
+
settings.hooks.PreToolUse = [];
|
|
72
|
+
settings.hooks.PreToolUse.push({
|
|
73
|
+
hooks: [
|
|
74
|
+
{
|
|
75
|
+
type: 'command',
|
|
76
|
+
command: `${cli} claude-hook pre${storeSuffix}${dbPathSuffix}`,
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
});
|
|
80
|
+
// PostToolUse — error monitoring (Bash stderr reporting)
|
|
81
|
+
if (!settings.hooks.PostToolUse)
|
|
82
|
+
settings.hooks.PostToolUse = [];
|
|
83
|
+
settings.hooks.PostToolUse.push({
|
|
84
|
+
matcher: 'Bash',
|
|
85
|
+
hooks: [
|
|
86
|
+
{
|
|
87
|
+
type: 'command',
|
|
88
|
+
command: `${cli} claude-hook post${storeSuffix}${dbPathSuffix}`,
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
});
|
|
92
|
+
// SessionStart — ensure CLI is built, then show governance status
|
|
93
|
+
if (!settings.hooks.SessionStart)
|
|
94
|
+
settings.hooks.SessionStart = [];
|
|
95
|
+
const sessionStartHooks = [];
|
|
96
|
+
if (isLocal) {
|
|
97
|
+
// In the agentguard dev repo, auto-build if dist is missing
|
|
98
|
+
sessionStartHooks.push({
|
|
99
|
+
type: 'command',
|
|
100
|
+
command: `test -f apps/cli/dist/bin.js || pnpm build`,
|
|
101
|
+
timeout: 120000,
|
|
102
|
+
blocking: true,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
sessionStartHooks.push({
|
|
106
|
+
type: 'command',
|
|
107
|
+
command: `${cli} status`,
|
|
108
|
+
timeout: 10000,
|
|
109
|
+
blocking: false,
|
|
110
|
+
});
|
|
111
|
+
settings.hooks.SessionStart.push({ hooks: sessionStartHooks });
|
|
112
|
+
// Notification — auto-open session viewer when agent pauses for human input
|
|
113
|
+
if (!settings.hooks.Notification)
|
|
114
|
+
settings.hooks.Notification = [];
|
|
115
|
+
settings.hooks.Notification.push({
|
|
116
|
+
hooks: [
|
|
117
|
+
{
|
|
118
|
+
type: 'command',
|
|
119
|
+
command: `${cli} claude-hook notify${storeSuffix}${dbPathSuffix}`,
|
|
120
|
+
timeout: 15000,
|
|
121
|
+
blocking: false,
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
});
|
|
125
|
+
// Stop — generate session viewer HTML on session end (no browser open — Notification handles that)
|
|
126
|
+
if (!settings.hooks.Stop)
|
|
127
|
+
settings.hooks.Stop = [];
|
|
128
|
+
settings.hooks.Stop.push({
|
|
129
|
+
hooks: [
|
|
130
|
+
{
|
|
131
|
+
type: 'command',
|
|
132
|
+
command: `${cli} claude-hook stop${storeSuffix}${dbPathSuffix}`,
|
|
133
|
+
timeout: 15000,
|
|
134
|
+
blocking: false,
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
});
|
|
138
|
+
writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf8');
|
|
139
|
+
// Store hook integrity baseline
|
|
140
|
+
try {
|
|
141
|
+
const { storeHookBaseline } = await import('@red-codes/adapters');
|
|
142
|
+
storeHookBaseline(settingsPath);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// Non-fatal — integrity will report no_baseline
|
|
146
|
+
}
|
|
147
|
+
process.stderr.write(` ${FG.green}✓${RESET} Hooks installed in ${FG.cyan}${settingsLabel}${RESET}\n`);
|
|
148
|
+
process.stderr.write(` ${DIM}SessionStart: auto-build + status check${RESET}\n`);
|
|
149
|
+
process.stderr.write(` ${DIM}PreToolUse: governance enforcement (all tools)${RESET}\n`);
|
|
150
|
+
process.stderr.write(` ${DIM}PostToolUse: error monitoring (Bash)${RESET}\n`);
|
|
151
|
+
process.stderr.write(` ${DIM}Notification: auto-open session viewer on agent pause${RESET}\n`);
|
|
152
|
+
process.stderr.write(` ${DIM}Stop: session viewer HTML archival${RESET}\n`);
|
|
153
|
+
if (storeBackend) {
|
|
154
|
+
process.stderr.write(` ${DIM}Storage: ${storeBackend}${RESET}\n`);
|
|
155
|
+
}
|
|
156
|
+
process.stderr.write('\n');
|
|
157
|
+
// Set core.hooksPath so git uses the repo's hooks/ directory
|
|
158
|
+
// (pre-commit auto-stages telemetry, post-commit tracks dev activity)
|
|
159
|
+
try {
|
|
160
|
+
const currentHooksPath = execSync('git config core.hooksPath', { encoding: 'utf8' }).trim();
|
|
161
|
+
if (currentHooksPath !== 'hooks') {
|
|
162
|
+
execSync('git config core.hooksPath hooks');
|
|
163
|
+
process.stderr.write(` ${FG.green}✓${RESET} Git hooks path set to ${FG.cyan}hooks/${RESET}\n`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
// Not in a git repo, or no hooksPath set yet
|
|
168
|
+
try {
|
|
169
|
+
execSync('git config core.hooksPath hooks');
|
|
170
|
+
process.stderr.write(` ${FG.green}✓${RESET} Git hooks path set to ${FG.cyan}hooks/${RESET}\n`);
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
process.stderr.write(` ${FG.yellow}Warning:${RESET} Could not set git hooks path. Run: git config core.hooksPath hooks\n`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Ensure telemetry directories exist (use main repo root so worktrees share them)
|
|
177
|
+
const repoRoot = resolveMainRepoRoot();
|
|
178
|
+
const dirs = ['.agentguard/events', '.agentguard/decisions', 'logs'];
|
|
179
|
+
for (const dir of dirs) {
|
|
180
|
+
const dirPath = join(repoRoot, dir);
|
|
181
|
+
if (!existsSync(dirPath)) {
|
|
182
|
+
mkdirSync(dirPath, { recursive: true });
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// Auto-generate starter policy if none exists
|
|
186
|
+
const policyGenerated = generateStarterPolicy();
|
|
187
|
+
// Detect rtk for token optimization status
|
|
188
|
+
let rtkStatus = { available: false };
|
|
189
|
+
try {
|
|
190
|
+
const { detectRtk } = await import('@red-codes/core');
|
|
191
|
+
rtkStatus = detectRtk();
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
// rtk detection is non-fatal
|
|
195
|
+
}
|
|
196
|
+
if (rtkStatus.available) {
|
|
197
|
+
process.stderr.write(` ${FG.green}✓${RESET} rtk detected${rtkStatus.version ? ` (v${rtkStatus.version})` : ''} — token optimization active\n`);
|
|
198
|
+
process.stderr.write(` ${DIM} Run "rtk init -g" if rtk hooks are not yet configured.${RESET}\n`);
|
|
199
|
+
}
|
|
200
|
+
// Show what protections are active
|
|
201
|
+
showProtectionSummary(policyGenerated, rtkStatus);
|
|
202
|
+
}
|
|
203
|
+
function removeHook(settingsPath, settingsLabel) {
|
|
204
|
+
if (!existsSync(settingsPath)) {
|
|
205
|
+
process.stderr.write(` ${DIM}No settings file found at ${settingsLabel}. Nothing to remove.${RESET}\n\n`);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
let settings;
|
|
209
|
+
try {
|
|
210
|
+
settings = JSON.parse(readFileSync(settingsPath, 'utf8'));
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
process.stderr.write(` ${FG.red}Error:${RESET} Could not parse ${settingsLabel}.\n\n`);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
if (!hasAgentGuardHook(settings)) {
|
|
217
|
+
process.stderr.write(` ${DIM}No AgentGuard hook found in ${settingsLabel}. Nothing to remove.${RESET}\n\n`);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const filterByCommand = (entries, marker) => entries.filter((entry) => {
|
|
221
|
+
const hooks = entry.hooks || [];
|
|
222
|
+
return !hooks.some((h) => h.command && h.command.includes(marker));
|
|
223
|
+
});
|
|
224
|
+
const preToolUse = settings.hooks?.PreToolUse || [];
|
|
225
|
+
settings.hooks.PreToolUse = filterByCommand(preToolUse, HOOK_MARKER);
|
|
226
|
+
if (settings.hooks.PreToolUse.length === 0) {
|
|
227
|
+
delete settings.hooks.PreToolUse;
|
|
228
|
+
}
|
|
229
|
+
const postToolUse = settings.hooks?.PostToolUse || [];
|
|
230
|
+
settings.hooks.PostToolUse = filterByCommand(postToolUse, HOOK_MARKER);
|
|
231
|
+
if (settings.hooks.PostToolUse.length === 0) {
|
|
232
|
+
delete settings.hooks.PostToolUse;
|
|
233
|
+
}
|
|
234
|
+
// Remove SessionStart build hook
|
|
235
|
+
const sessionStart = settings.hooks?.SessionStart || [];
|
|
236
|
+
settings.hooks.SessionStart = filterByCommand(sessionStart, BUILD_MARKER);
|
|
237
|
+
if (settings.hooks.SessionStart.length === 0) {
|
|
238
|
+
delete settings.hooks.SessionStart;
|
|
239
|
+
}
|
|
240
|
+
// Remove Notification hook
|
|
241
|
+
const notifHooks = settings.hooks?.Notification || [];
|
|
242
|
+
settings.hooks.Notification = filterByCommand(notifHooks, HOOK_MARKER);
|
|
243
|
+
if (settings.hooks.Notification.length === 0) {
|
|
244
|
+
delete settings.hooks.Notification;
|
|
245
|
+
}
|
|
246
|
+
// Remove Stop hook
|
|
247
|
+
const stopHooks = settings.hooks?.Stop || [];
|
|
248
|
+
settings.hooks.Stop = filterByCommand(stopHooks, HOOK_MARKER);
|
|
249
|
+
if (settings.hooks.Stop.length === 0) {
|
|
250
|
+
delete settings.hooks.Stop;
|
|
251
|
+
}
|
|
252
|
+
if (Object.keys(settings.hooks).length === 0) {
|
|
253
|
+
delete settings.hooks;
|
|
254
|
+
}
|
|
255
|
+
writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf8');
|
|
256
|
+
process.stderr.write(` ${FG.green}✓${RESET} Hook removed from ${FG.cyan}${settingsLabel}${RESET}\n`);
|
|
257
|
+
process.stderr.write(` ${DIM}AgentGuard governance will no longer monitor in Claude Code.${RESET}\n\n`);
|
|
258
|
+
}
|
|
259
|
+
const STARTER_POLICY = `# AgentGuard policy — guardrails for AI coding agents.
|
|
260
|
+
# Customize this file to match your project's security requirements.
|
|
261
|
+
# Docs: https://github.com/AgentGuardHQ/agent-guard
|
|
262
|
+
|
|
263
|
+
id: default-policy
|
|
264
|
+
name: Default Safety Policy
|
|
265
|
+
description: Baseline guardrails for AI coding agents
|
|
266
|
+
severity: 4
|
|
267
|
+
|
|
268
|
+
rules:
|
|
269
|
+
# Protected branches — prevent direct push to main/master
|
|
270
|
+
- action: git.push
|
|
271
|
+
effect: deny
|
|
272
|
+
branches: [main, master]
|
|
273
|
+
reason: Direct push to protected branch
|
|
274
|
+
|
|
275
|
+
# No force push — prevent history rewriting
|
|
276
|
+
- action: git.force-push
|
|
277
|
+
effect: deny
|
|
278
|
+
reason: Force push rewrites shared history
|
|
279
|
+
|
|
280
|
+
# Secrets protection — block writes to sensitive files
|
|
281
|
+
- action: file.write
|
|
282
|
+
effect: deny
|
|
283
|
+
target: .env
|
|
284
|
+
reason: Secrets files must not be modified
|
|
285
|
+
|
|
286
|
+
- action: file.write
|
|
287
|
+
effect: deny
|
|
288
|
+
target: ".npmrc"
|
|
289
|
+
reason: npm credentials file must not be modified by agents
|
|
290
|
+
|
|
291
|
+
- action: file.write
|
|
292
|
+
effect: deny
|
|
293
|
+
target: "id_rsa"
|
|
294
|
+
reason: SSH private keys must not be modified
|
|
295
|
+
|
|
296
|
+
- action: file.write
|
|
297
|
+
effect: deny
|
|
298
|
+
target: "id_ed25519"
|
|
299
|
+
reason: SSH private keys must not be modified
|
|
300
|
+
|
|
301
|
+
# Skill protection — prevent agent self-modification
|
|
302
|
+
- action: file.write
|
|
303
|
+
effect: deny
|
|
304
|
+
target: ".claude/skills/"
|
|
305
|
+
reason: Agent skill files are protected from modification
|
|
306
|
+
|
|
307
|
+
- action: file.delete
|
|
308
|
+
effect: deny
|
|
309
|
+
target: ".claude/skills/"
|
|
310
|
+
reason: Agent skill files are protected from deletion
|
|
311
|
+
|
|
312
|
+
# Destructive command protection
|
|
313
|
+
- action: shell.exec
|
|
314
|
+
effect: deny
|
|
315
|
+
target: rm -rf
|
|
316
|
+
reason: Destructive shell commands blocked
|
|
317
|
+
|
|
318
|
+
# Deployment protection
|
|
319
|
+
- action: deploy.trigger
|
|
320
|
+
effect: deny
|
|
321
|
+
reason: Deploy actions require explicit authorization
|
|
322
|
+
|
|
323
|
+
- action: infra.destroy
|
|
324
|
+
effect: deny
|
|
325
|
+
reason: Infrastructure destruction requires explicit authorization
|
|
326
|
+
|
|
327
|
+
# Defaults
|
|
328
|
+
- action: file.read
|
|
329
|
+
effect: allow
|
|
330
|
+
reason: Reading is always safe
|
|
331
|
+
|
|
332
|
+
- action: file.write
|
|
333
|
+
effect: allow
|
|
334
|
+
reason: File writes allowed by default
|
|
335
|
+
`;
|
|
336
|
+
const POLICY_CANDIDATES = [
|
|
337
|
+
'agentguard.yaml',
|
|
338
|
+
'agentguard.yml',
|
|
339
|
+
'agentguard.json',
|
|
340
|
+
'.agentguard.yaml',
|
|
341
|
+
'.agentguard.yml',
|
|
342
|
+
];
|
|
343
|
+
function generateStarterPolicy() {
|
|
344
|
+
// Check if any policy file already exists (check main repo root for worktree support)
|
|
345
|
+
const repoRoot = resolveMainRepoRoot();
|
|
346
|
+
for (const candidate of POLICY_CANDIDATES) {
|
|
347
|
+
if (existsSync(join(repoRoot, candidate))) {
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
const policyPath = join(repoRoot, 'agentguard.yaml');
|
|
352
|
+
writeFileSync(policyPath, STARTER_POLICY, 'utf8');
|
|
353
|
+
process.stderr.write(` ${FG.green}✓${RESET} Policy created: ${FG.cyan}agentguard.yaml${RESET}\n`);
|
|
354
|
+
return true;
|
|
355
|
+
}
|
|
356
|
+
function showProtectionSummary(policyGenerated, rtkStatus) {
|
|
357
|
+
process.stderr.write('\n');
|
|
358
|
+
process.stderr.write(` ${FG.green}${BOLD}AgentGuard is active.${RESET}\n\n`);
|
|
359
|
+
process.stderr.write(` ${BOLD}Active protections:${RESET}\n`);
|
|
360
|
+
process.stderr.write(` ${FG.red}■${RESET} ${DIM}Block${RESET} push to main/master\n`);
|
|
361
|
+
process.stderr.write(` ${FG.red}■${RESET} ${DIM}Block${RESET} force push\n`);
|
|
362
|
+
process.stderr.write(` ${FG.red}■${RESET} ${DIM}Block${RESET} writes to .env, .npmrc, SSH keys\n`);
|
|
363
|
+
process.stderr.write(` ${FG.red}■${RESET} ${DIM}Block${RESET} rm -rf, deploy, infra destroy\n`);
|
|
364
|
+
process.stderr.write(` ${FG.red}■${RESET} ${DIM}Block${RESET} agent skill self-modification\n`);
|
|
365
|
+
process.stderr.write(` ${FG.green}■${RESET} ${DIM}Allow${RESET} file reads, file writes (non-sensitive)\n`);
|
|
366
|
+
process.stderr.write(` ${FG.blue}■${RESET} ${DIM}Track${RESET} all actions with audit trail\n`);
|
|
367
|
+
// Token optimization status (optional)
|
|
368
|
+
if (rtkStatus?.available) {
|
|
369
|
+
const ver = rtkStatus.version ? ` v${rtkStatus.version}` : '';
|
|
370
|
+
process.stderr.write(` ${FG.cyan}■${RESET} ${DIM}Optimize${RESET} token usage via rtk${ver} (60-90% savings)\n`);
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
process.stderr.write(` ${DIM}○ Token optimization rtk not installed (optional — brew install rtk)${RESET}\n`);
|
|
374
|
+
}
|
|
375
|
+
process.stderr.write('\n');
|
|
376
|
+
process.stderr.write(` ${BOLD}Next steps:${RESET}\n`);
|
|
377
|
+
if (policyGenerated) {
|
|
378
|
+
process.stderr.write(` ${DIM}1. Edit ${FG.cyan}agentguard.yaml${RESET}${DIM} to customize rules for your project${RESET}\n`);
|
|
379
|
+
process.stderr.write(` ${DIM}2. Start a Claude Code session — governance is automatic${RESET}\n`);
|
|
380
|
+
process.stderr.write(` ${DIM}3. Run ${FG.cyan}agentguard inspect --last${RESET}${DIM} to review decisions${RESET}\n`);
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
process.stderr.write(` ${DIM}1. Start a Claude Code session — governance is automatic${RESET}\n`);
|
|
384
|
+
process.stderr.write(` ${DIM}2. Run ${FG.cyan}agentguard inspect --last${RESET}${DIM} to review decisions${RESET}\n`);
|
|
385
|
+
}
|
|
386
|
+
process.stderr.write(`\n ${DIM}Try it: ${FG.cyan}agentguard demo${RESET}${DIM} — see governance in action${RESET}\n`);
|
|
387
|
+
process.stderr.write(` ${DIM}Remove: ${FG.cyan}agentguard claude-init --remove${RESET}\n\n`);
|
|
388
|
+
}
|
|
389
|
+
function hasAgentGuardHook(settings) {
|
|
390
|
+
const preToolUse = settings?.hooks?.PreToolUse || [];
|
|
391
|
+
const postToolUse = settings?.hooks?.PostToolUse || [];
|
|
392
|
+
const notifHooks = (settings?.hooks?.Notification ||
|
|
393
|
+
[]);
|
|
394
|
+
const stopHooks = (settings?.hooks?.Stop || []);
|
|
395
|
+
const allEntries = [...preToolUse, ...postToolUse, ...notifHooks, ...stopHooks];
|
|
396
|
+
return allEntries.some((entry) => {
|
|
397
|
+
const hooks = entry.hooks || [];
|
|
398
|
+
return hooks.some((h) => h.command && h.command.includes(HOOK_MARKER));
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
//# sourceMappingURL=claude-init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-init.js","sourceRoot":"","sources":["../../src/commands/claude-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** AgentGuard configuration schema. */
|
|
2
|
+
export interface AgentGuardConfig {
|
|
3
|
+
storage?: 'sqlite';
|
|
4
|
+
dbPath?: string;
|
|
5
|
+
policy?: string;
|
|
6
|
+
autoSetup?: boolean;
|
|
7
|
+
viewer?: {
|
|
8
|
+
autoOpen?: boolean;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Resolve configuration by layering:
|
|
13
|
+
* 1. Defaults
|
|
14
|
+
* 2. User-level (~/.agentguard/config.yaml)
|
|
15
|
+
* 3. Project-level (.agentguard/config.yaml)
|
|
16
|
+
*
|
|
17
|
+
* Higher layers override lower layers (project > user > defaults).
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveConfig(cwd?: string): AgentGuardConfig;
|
|
20
|
+
/** Load a config file from disk. Returns null if not found or invalid. */
|
|
21
|
+
export declare function loadConfigFile(filePath: string): AgentGuardConfig | null;
|
|
22
|
+
/** Save a config object to a YAML file. */
|
|
23
|
+
export declare function saveConfigFile(filePath: string, config: AgentGuardConfig): void;
|
|
24
|
+
/** Get a nested config value by dot-separated key path. */
|
|
25
|
+
export declare function getConfigValue(config: AgentGuardConfig, key: string): unknown;
|
|
26
|
+
/** Set a nested config value by dot-separated key path. */
|
|
27
|
+
export declare function setConfigValue(config: AgentGuardConfig, key: string, value: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* CLI handler for `agentguard config` command.
|
|
30
|
+
*
|
|
31
|
+
* Subcommands:
|
|
32
|
+
* show Display all resolved config (user + project + defaults)
|
|
33
|
+
* get <key> Get a specific config value
|
|
34
|
+
* set <key> <value> Set a config value (project-level by default, --global for user-level)
|
|
35
|
+
* path Show config file locations
|
|
36
|
+
* keys List available config keys
|
|
37
|
+
*/
|
|
38
|
+
export declare function config(args: string[]): Promise<number>;
|
|
39
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AASA,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AASD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAsB,GAAG,gBAAgB,CAY3E;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAYxE;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAQ/E;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAY7E;AAID,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAwBzF;AAWD;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB5D"}
|