@guardion/guardion 0.2.0 → 0.3.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/config.yaml.example +72 -14
- package/dist/cli.js +112 -103
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +119 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +72 -25
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +8 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +18 -8
- package/dist/constants.js.map +1 -1
- package/dist/installer.d.ts +2 -1
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +84 -31
- package/dist/installer.js.map +1 -1
- package/dist/keychain.d.ts.map +1 -1
- package/dist/keychain.js +53 -15
- package/dist/keychain.js.map +1 -1
- package/dist/mock-server.d.ts.map +1 -1
- package/dist/mock-server.js +19 -4
- package/dist/mock-server.js.map +1 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js.map +1 -1
- package/hooks/guardion-hook.cjs +105 -74
- package/package.json +1 -1
package/config.yaml.example
CHANGED
|
@@ -1,26 +1,84 @@
|
|
|
1
1
|
# Guardion Claude Code Connector — config file
|
|
2
|
-
# Location: ~/.guardion/config.yaml
|
|
2
|
+
# Location: ~/.guardion/config.yaml (individual developer)
|
|
3
|
+
# /etc/guardion/config.yaml (enterprise MDM, system-wide)
|
|
3
4
|
#
|
|
4
|
-
#
|
|
5
|
-
# Edit
|
|
6
|
-
#
|
|
7
|
-
# Token is stored separately in your OS keychain — never in this file.
|
|
8
|
-
# Set GUARDION_TOKEN env var to override for CI/testing.
|
|
5
|
+
# Generated with: npx @guardion/guardion init [--tier hooks|full]
|
|
6
|
+
# Edit freely. Token is stored in your OS keychain, NOT here.
|
|
7
|
+
# Docs: https://guardion.ai/docs/claude-code
|
|
9
8
|
|
|
10
9
|
version: 1
|
|
11
10
|
|
|
12
|
-
# Deployment tier
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
|
|
11
|
+
# ── Deployment tier ───────────────────────────────────────────────────────────
|
|
12
|
+
#
|
|
13
|
+
# hooks — fire-and-forget hook events to Guard API for behavioural monitoring.
|
|
14
|
+
# LLM traffic goes directly to the provider (Anthropic, Bedrock, etc.)
|
|
15
|
+
# No ANTHROPIC_BASE_URL change. Safe for teams that cannot proxy LLM calls.
|
|
16
|
+
#
|
|
17
|
+
# full — all hooks + route LLM traffic through the Guardion gateway.
|
|
18
|
+
# Enables request/response evaluation, PII redaction, and content policy
|
|
19
|
+
# enforcement at the network layer. Requires the gateway container or
|
|
20
|
+
# cloud endpoint to be reachable.
|
|
21
|
+
#
|
|
22
|
+
tier: hooks # hooks | full
|
|
16
23
|
|
|
17
|
-
# Guard API
|
|
24
|
+
# ── Guard API ─────────────────────────────────────────────────────────────────
|
|
25
|
+
# The control plane that evaluates events, stores findings, and serves the console.
|
|
26
|
+
#
|
|
18
27
|
# Production: https://api.guardion.ai
|
|
19
|
-
# Local dev: http://localhost:8082
|
|
28
|
+
# Local dev: http://localhost:8082 (guardion-guard Docker container)
|
|
29
|
+
#
|
|
20
30
|
api_url: https://api.guardion.ai
|
|
21
31
|
|
|
22
|
-
# Policy slug to
|
|
32
|
+
# Policy slug applied to every event evaluation
|
|
23
33
|
policy: prompt-defense
|
|
24
34
|
|
|
25
|
-
# Application label
|
|
35
|
+
# Application label visible in the Guardion console
|
|
26
36
|
application: claude-code
|
|
37
|
+
|
|
38
|
+
# ── Gateway (full tier only) ──────────────────────────────────────────────────
|
|
39
|
+
# Remove this block entirely when using tier: hooks.
|
|
40
|
+
#
|
|
41
|
+
gateway:
|
|
42
|
+
# Guardion reverse-proxy URL — ANTHROPIC_BASE_URL will be set to this value.
|
|
43
|
+
# Production: https://gateway.guardion.ai
|
|
44
|
+
# Local dev: http://localhost:8788 (guardion-gateway Docker container)
|
|
45
|
+
url: https://gateway.guardion.ai
|
|
46
|
+
|
|
47
|
+
# MCP proxy — existing MCP servers are rewritten to route through this endpoint
|
|
48
|
+
# so that tool calls are also evaluated for policy violations.
|
|
49
|
+
mcp_url: https://mcp.guardion.ai
|
|
50
|
+
|
|
51
|
+
# LLM provider the gateway will forward requests to.
|
|
52
|
+
# anthropic — api.anthropic.com (default; uses Authorization header as-is)
|
|
53
|
+
# vertex-ai — GCP Vertex AI (requires vertex_project_id + vertex_region)
|
|
54
|
+
# bedrock — AWS Bedrock (uses AWS credentials from the environment)
|
|
55
|
+
# openai — api.openai.com
|
|
56
|
+
provider: anthropic
|
|
57
|
+
|
|
58
|
+
# Required only when provider: vertex-ai
|
|
59
|
+
vertex_project_id: ""
|
|
60
|
+
vertex_region: ""
|
|
61
|
+
|
|
62
|
+
# ── Hook events ───────────────────────────────────────────────────────────────
|
|
63
|
+
# Controls which Claude Code hook events Guardion registers and monitors.
|
|
64
|
+
# Remove events to reduce noise or comply with privacy policies.
|
|
65
|
+
# If this block is omitted, all supported events are registered.
|
|
66
|
+
#
|
|
67
|
+
hooks:
|
|
68
|
+
events:
|
|
69
|
+
- SessionStart # session open — captures metadata, git context, model
|
|
70
|
+
- SessionEnd # session close — cleans up session correlation
|
|
71
|
+
- UserPromptSubmit # user sends a prompt — captures prompt text
|
|
72
|
+
- PreToolUse # before any tool executes — captures tool name + input
|
|
73
|
+
- PostToolUse # after tool succeeds — captures tool output
|
|
74
|
+
- PostToolUseFailure # tool threw an error
|
|
75
|
+
- PostToolBatch # all parallel tool calls in one batch resolved
|
|
76
|
+
- SubagentStart # subagent spawned (e.g. Explore, Plan, custom agent)
|
|
77
|
+
- SubagentStop # subagent finished
|
|
78
|
+
- Stop # Claude finished its turn
|
|
79
|
+
- StopFailure # API error ended the turn
|
|
80
|
+
- PermissionDenied # tool call was denied by permission system
|
|
81
|
+
|
|
82
|
+
# Maximum milliseconds to wait for Guard API before giving up.
|
|
83
|
+
# The hook always exits 0 — this only affects how long it waits.
|
|
84
|
+
timeout_ms: 3000
|
package/dist/cli.js
CHANGED
|
@@ -5,17 +5,19 @@ import readline from 'node:readline';
|
|
|
5
5
|
import fs from 'node:fs';
|
|
6
6
|
import https from 'node:https';
|
|
7
7
|
import http from 'node:http';
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
import { GUARDION_VERSION, TOKEN_PREFIX, DEFAULT_API_URL, DEV_API_URL, DEV_GATEWAY_URL, DEFAULT_GATEWAY_URL, ALL_HOOK_EVENTS, } from './constants.js';
|
|
11
|
+
import { writeConfig, readConfig, DEFAULT_GATEWAY, } from './config.js';
|
|
10
12
|
import { getToken, setToken, clearToken } from './keychain.js';
|
|
11
13
|
import { scan } from './scanner.js';
|
|
12
|
-
import { patch, backup, restore, writeSettings, removeGuardionEntries } from './installer.js';
|
|
14
|
+
import { patch, backup, restore, writeSettings, removeGuardionEntries, } from './installer.js';
|
|
13
15
|
const program = new Command();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
async function promptInput(question
|
|
16
|
+
const ok = (m) => console.log(chalk.green('✓ ') + m);
|
|
17
|
+
const warn = (m) => console.log(chalk.yellow('⚠ ') + m);
|
|
18
|
+
const err = (m) => console.error(chalk.red('✗ ') + m);
|
|
19
|
+
const log = (m) => console.log(m);
|
|
20
|
+
async function promptInput(question) {
|
|
19
21
|
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
20
22
|
return new Promise(resolve => {
|
|
21
23
|
rl.question(chalk.cyan(question), answer => { rl.close(); resolve(answer.trim()); });
|
|
@@ -24,20 +26,31 @@ async function promptInput(question, hidden = false) {
|
|
|
24
26
|
// ── init ──────────────────────────────────────────────────────────────────────
|
|
25
27
|
program
|
|
26
28
|
.command('init')
|
|
27
|
-
.description('Set up Guardion
|
|
29
|
+
.description('Set up Guardion for Claude Code')
|
|
30
|
+
.option('--tier <tier>', 'Deployment tier: hooks | full', 'hooks')
|
|
28
31
|
.option('--token <token>', 'Guardion API token (stored in OS keychain)')
|
|
29
|
-
.option('--policy <policy>', 'Policy slug
|
|
30
|
-
.option('--application <name>', 'Application label
|
|
32
|
+
.option('--policy <policy>', 'Policy slug', 'prompt-defense')
|
|
33
|
+
.option('--application <name>', 'Application label', 'claude-code')
|
|
31
34
|
.option('--api-url <url>', `Guard API URL (default: ${DEFAULT_API_URL})`)
|
|
32
|
-
.option('--
|
|
33
|
-
.option('--
|
|
35
|
+
.option('--gateway-url <url>', `Gateway URL for full tier (default: ${DEFAULT_GATEWAY_URL})`)
|
|
36
|
+
.option('--provider <provider>', 'LLM provider for full tier: anthropic | vertex-ai | bedrock', 'anthropic')
|
|
37
|
+
.option('--vertex-project <id>', 'GCP project ID (vertex-ai only)')
|
|
38
|
+
.option('--vertex-region <region>', 'GCP region (vertex-ai only)')
|
|
39
|
+
.option('--hooks <events>', 'Comma-separated hook events to register (default: all)')
|
|
40
|
+
.option('--dev', 'Use local Docker stack (localhost:8082 / localhost:8788)', false)
|
|
41
|
+
.option('--dry-run', 'Print what would be written, no changes', false)
|
|
34
42
|
.action(async (opts) => {
|
|
35
43
|
log(chalk.bold('\n Guardion Init\n'));
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
|
|
44
|
+
// Validate tier
|
|
45
|
+
const tier = opts.tier;
|
|
46
|
+
if (tier !== 'hooks' && tier !== 'full') {
|
|
47
|
+
err(`Unknown tier "${tier}". Valid values: hooks, full`);
|
|
48
|
+
process.exit(1);
|
|
40
49
|
}
|
|
50
|
+
// Token
|
|
51
|
+
let token = opts.token || process.env.GUARDION_TOKEN || getToken();
|
|
52
|
+
if (!token)
|
|
53
|
+
token = await promptInput('Enter your Guardion token: ');
|
|
41
54
|
if (!token) {
|
|
42
55
|
err('Token is required.');
|
|
43
56
|
process.exit(1);
|
|
@@ -45,62 +58,82 @@ program
|
|
|
45
58
|
if (!opts.dev && !token.startsWith(TOKEN_PREFIX)) {
|
|
46
59
|
warn(`Token doesn't start with "${TOKEN_PREFIX}" — double-check it's correct.`);
|
|
47
60
|
}
|
|
61
|
+
// Resolve URLs
|
|
62
|
+
const apiUrl = opts.dev ? DEV_API_URL : (opts.apiUrl || readConfig()?.api_url || DEFAULT_API_URL);
|
|
63
|
+
const gatewayUrl = opts.dev ? DEV_GATEWAY_URL : (opts.gatewayUrl || readConfig()?.gateway?.url || DEFAULT_GATEWAY_URL);
|
|
64
|
+
const mcpUrl = opts.dev ? 'http://localhost:8082/mcp' : DEFAULT_GATEWAY.mcp_url;
|
|
65
|
+
// Custom hook events
|
|
66
|
+
const hookEvents = opts.hooks
|
|
67
|
+
? opts.hooks.split(',').map((e) => e.trim()).filter((e) => ALL_HOOK_EVENTS.includes(e))
|
|
68
|
+
: [...ALL_HOOK_EVENTS];
|
|
48
69
|
// Build config
|
|
49
|
-
const apiUrl = opts.dev
|
|
50
|
-
? DEV_API_URL
|
|
51
|
-
: (opts.apiUrl || readConfig()?.api_url || DEFAULT_API_URL);
|
|
52
70
|
const cfg = {
|
|
53
71
|
version: 1,
|
|
54
|
-
tier
|
|
72
|
+
tier,
|
|
55
73
|
api_url: apiUrl,
|
|
56
74
|
policy: opts.policy,
|
|
57
75
|
application: opts.application,
|
|
76
|
+
hooks: {
|
|
77
|
+
events: hookEvents,
|
|
78
|
+
timeout_ms: 3000,
|
|
79
|
+
},
|
|
80
|
+
...(tier === 'full' ? {
|
|
81
|
+
gateway: {
|
|
82
|
+
url: gatewayUrl,
|
|
83
|
+
mcp_url: mcpUrl,
|
|
84
|
+
provider: opts.provider,
|
|
85
|
+
vertex_project_id: opts.vertexProject || '',
|
|
86
|
+
vertex_region: opts.vertexRegion || '',
|
|
87
|
+
},
|
|
88
|
+
} : {}),
|
|
58
89
|
};
|
|
59
|
-
// Scan existing settings
|
|
60
90
|
const scanResult = scan();
|
|
61
91
|
if (scanResult.hasExistingGuardion) {
|
|
62
|
-
warn('Guardion already configured —
|
|
92
|
+
warn('Guardion already configured — overwriting.');
|
|
63
93
|
}
|
|
64
|
-
|
|
65
|
-
const patched = patch(scanResult, { config: cfg, dev: opts.dev, dryRun: opts.dryRun });
|
|
94
|
+
const patched = patch(scanResult, { config: cfg, token, dev: opts.dev, dryRun: opts.dryRun });
|
|
66
95
|
if (opts.dryRun) {
|
|
67
|
-
log(chalk.bold('\n Would write
|
|
96
|
+
log(chalk.bold('\n Would write ~/.claude/settings.json:'));
|
|
68
97
|
log(JSON.stringify(patched, null, 2));
|
|
69
|
-
log(chalk.bold('\n Would write
|
|
98
|
+
log(chalk.bold('\n Would write ~/.guardion/config.yaml:'));
|
|
70
99
|
log(JSON.stringify(cfg, null, 2));
|
|
71
|
-
log('');
|
|
72
|
-
log(chalk.dim(' (dry-run — no changes made)'));
|
|
100
|
+
log(chalk.dim('\n (dry-run — no changes made)'));
|
|
73
101
|
return;
|
|
74
102
|
}
|
|
75
|
-
// Store token
|
|
103
|
+
// Store token
|
|
76
104
|
try {
|
|
77
105
|
setToken(token);
|
|
78
106
|
ok('Token stored in OS keychain');
|
|
79
107
|
}
|
|
80
108
|
catch {
|
|
81
|
-
|
|
82
|
-
fs.mkdirSync(
|
|
83
|
-
fs.writeFileSync(
|
|
109
|
+
const tokenFile = path.join(process.env.HOME || '~', '.guardion', 'token');
|
|
110
|
+
fs.mkdirSync(path.dirname(tokenFile), { recursive: true });
|
|
111
|
+
fs.writeFileSync(tokenFile, token, { encoding: 'utf-8', mode: 0o600 });
|
|
112
|
+
ok('Token written to ~/.guardion/token');
|
|
84
113
|
}
|
|
85
|
-
// Backup + write settings
|
|
86
114
|
const backupPath = backup(scanResult.settingsPath);
|
|
87
115
|
if (backupPath)
|
|
88
116
|
ok(`Backed up settings → ${backupPath}`);
|
|
89
117
|
writeSettings(scanResult.settingsPath, patched);
|
|
90
118
|
ok(`Patched ${scanResult.settingsPath}`);
|
|
91
|
-
// Write config files
|
|
92
119
|
writeConfig(cfg);
|
|
93
120
|
ok('Wrote ~/.guardion/config.yaml');
|
|
94
|
-
|
|
121
|
+
const mcpCount = Object.keys(scanResult.mcpServers).length;
|
|
95
122
|
log('');
|
|
96
123
|
log(chalk.bold(' Configuration:'));
|
|
97
|
-
log(` Tier
|
|
98
|
-
log(` Guard API
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
124
|
+
log(` Tier ${chalk.cyan(tier)}`);
|
|
125
|
+
log(` Guard API ${chalk.cyan(apiUrl)}`);
|
|
126
|
+
if (tier === 'full') {
|
|
127
|
+
log(` Gateway ${chalk.cyan(gatewayUrl)}`);
|
|
128
|
+
log(` Provider ${chalk.cyan(opts.provider)}`);
|
|
129
|
+
if (mcpCount > 0)
|
|
130
|
+
log(` MCP servers ${chalk.cyan(String(mcpCount) + ' rewritten to MCP proxy')}`);
|
|
131
|
+
}
|
|
132
|
+
log(` Policy ${chalk.cyan(opts.policy)}`);
|
|
133
|
+
log(` Application ${chalk.cyan(opts.application)}`);
|
|
134
|
+
log(` Hooks ${chalk.cyan(hookEvents.length + ' events')}`);
|
|
102
135
|
if (opts.dev)
|
|
103
|
-
log(`\n ${chalk.yellow('Dev mode')} — pointing at
|
|
136
|
+
log(`\n ${chalk.yellow('Dev mode')} — pointing at local Docker stack`);
|
|
104
137
|
log('');
|
|
105
138
|
ok('Guardion is ready. Start Claude Code and all activity will be monitored.\n');
|
|
106
139
|
});
|
|
@@ -117,33 +150,34 @@ program
|
|
|
117
150
|
ok('Guardion is ' + chalk.green('ACTIVE'));
|
|
118
151
|
else
|
|
119
152
|
log(' Guardion is ' + chalk.dim('NOT CONFIGURED'));
|
|
120
|
-
log(` Tier ${cfg?.tier ? chalk.cyan(cfg.tier) : chalk.dim('(not
|
|
121
|
-
log(` Guard API ${cfg?.api_url ? chalk.cyan(cfg.api_url) : chalk.dim('(not
|
|
122
|
-
|
|
123
|
-
|
|
153
|
+
log(` Tier ${cfg?.tier ? chalk.cyan(cfg.tier) : chalk.dim('(not set)')}`);
|
|
154
|
+
log(` Guard API ${cfg?.api_url ? chalk.cyan(cfg.api_url) : chalk.dim('(not set)')}`);
|
|
155
|
+
if (cfg?.tier === 'full') {
|
|
156
|
+
log(` Gateway ${chalk.cyan(cfg.gateway?.url || DEFAULT_GATEWAY_URL)}`);
|
|
157
|
+
log(` Provider ${chalk.cyan(cfg.gateway?.provider || 'anthropic')}`);
|
|
158
|
+
}
|
|
159
|
+
log(` Policy ${cfg?.policy ? chalk.cyan(cfg.policy) : chalk.dim('(not set)')}`);
|
|
160
|
+
log(` Token ${token ? chalk.green('found') : chalk.red('NOT FOUND')}`);
|
|
124
161
|
const hookCount = Object.keys(result.settings?.hooks ?? {}).length;
|
|
125
|
-
log(` Hooks ${hookCount > 0 ? chalk.cyan(
|
|
162
|
+
log(` Hooks ${hookCount > 0 ? chalk.cyan(hookCount + ' events') : chalk.dim('none')}`);
|
|
163
|
+
const events = cfg?.hooks?.events ?? [];
|
|
164
|
+
if (events.length > 0)
|
|
165
|
+
log(` Events ${chalk.dim(events.slice(0, 6).join(', ') + (events.length > 6 ? '…' : ''))}`);
|
|
126
166
|
log('');
|
|
127
167
|
});
|
|
128
168
|
// ── token ─────────────────────────────────────────────────────────────────────
|
|
129
169
|
const tokenCmd = program.command('token').description('Manage Guardion API token');
|
|
130
|
-
tokenCmd
|
|
131
|
-
.command('set <token>')
|
|
132
|
-
.description('Store token in OS keychain')
|
|
133
|
-
.action((token) => {
|
|
170
|
+
tokenCmd.command('set <token>').description('Store in OS keychain').action((t) => {
|
|
134
171
|
try {
|
|
135
|
-
setToken(
|
|
172
|
+
setToken(t);
|
|
136
173
|
ok('Token stored in OS keychain');
|
|
137
174
|
}
|
|
138
175
|
catch (e) {
|
|
139
|
-
err(`Failed
|
|
176
|
+
err(`Failed: ${e.message}`);
|
|
140
177
|
process.exit(1);
|
|
141
178
|
}
|
|
142
179
|
});
|
|
143
|
-
tokenCmd
|
|
144
|
-
.command('get')
|
|
145
|
-
.description('Print token (masked)')
|
|
146
|
-
.action(() => {
|
|
180
|
+
tokenCmd.command('get').description('Print masked token').action(() => {
|
|
147
181
|
const t = getToken();
|
|
148
182
|
if (!t) {
|
|
149
183
|
warn('No token found.');
|
|
@@ -151,33 +185,30 @@ tokenCmd
|
|
|
151
185
|
}
|
|
152
186
|
log(`Token: ${chalk.dim(t.slice(0, 6) + '...' + t.slice(-4))}`);
|
|
153
187
|
});
|
|
154
|
-
tokenCmd
|
|
155
|
-
.command('clear')
|
|
156
|
-
.description('Remove token from keychain and files')
|
|
157
|
-
.action(() => {
|
|
188
|
+
tokenCmd.command('clear').description('Remove from keychain').action(() => {
|
|
158
189
|
clearToken();
|
|
159
190
|
ok('Token cleared');
|
|
160
191
|
});
|
|
161
192
|
tokenCmd
|
|
162
193
|
.command('test')
|
|
163
|
-
.description('Verify token
|
|
194
|
+
.description('Verify token against Guard API /health')
|
|
164
195
|
.option('--dev', 'Test against local Docker stack')
|
|
165
196
|
.action(async (opts) => {
|
|
166
197
|
const cfg = readConfig();
|
|
167
198
|
const token = getToken();
|
|
168
199
|
const url = opts.dev ? DEV_API_URL : (cfg?.api_url ?? DEFAULT_API_URL);
|
|
169
200
|
if (!token) {
|
|
170
|
-
err('No token found.
|
|
201
|
+
err('No token found.');
|
|
171
202
|
process.exit(1);
|
|
172
203
|
}
|
|
173
204
|
log(`Testing ${chalk.cyan(url + '/health')} ...`);
|
|
174
205
|
const start = Date.now();
|
|
175
206
|
try {
|
|
176
|
-
const
|
|
177
|
-
ok(`${
|
|
207
|
+
const res = await httpGet(`${url}/health`, token);
|
|
208
|
+
ok(`${res.status} OK (${Date.now() - start}ms)`);
|
|
178
209
|
}
|
|
179
210
|
catch (e) {
|
|
180
|
-
err(`
|
|
211
|
+
err(`Unreachable: ${e.message}`);
|
|
181
212
|
process.exit(1);
|
|
182
213
|
}
|
|
183
214
|
});
|
|
@@ -194,64 +225,54 @@ program
|
|
|
194
225
|
ok(`Restored settings from ${restored}`);
|
|
195
226
|
}
|
|
196
227
|
else if (result.settings) {
|
|
197
|
-
|
|
198
|
-
writeSettings(result.settingsPath, cleaned);
|
|
228
|
+
writeSettings(result.settingsPath, removeGuardionEntries(result.settings));
|
|
199
229
|
ok('Removed Guardion entries from settings');
|
|
200
230
|
}
|
|
201
231
|
else {
|
|
202
|
-
warn('No settings file found
|
|
232
|
+
warn('No settings file found');
|
|
203
233
|
}
|
|
204
|
-
// Remove config files
|
|
205
234
|
try {
|
|
206
|
-
fs.unlinkSync(
|
|
235
|
+
fs.unlinkSync(path.join(process.env.HOME || '~', '.guardion', 'config.yaml'));
|
|
207
236
|
}
|
|
208
237
|
catch { }
|
|
209
238
|
try {
|
|
210
|
-
fs.unlinkSync(
|
|
239
|
+
fs.unlinkSync(path.join(process.env.HOME || '~', '.guardion', 'config.json'));
|
|
211
240
|
}
|
|
212
241
|
catch { }
|
|
213
242
|
ok('Removed ~/.guardion/config.yaml');
|
|
214
243
|
if (opts.clearToken) {
|
|
215
244
|
clearToken();
|
|
216
|
-
ok('Cleared token
|
|
245
|
+
ok('Cleared token');
|
|
217
246
|
}
|
|
218
|
-
else
|
|
247
|
+
else
|
|
219
248
|
log(chalk.dim(' Token left in keychain. Run: guardion token clear'));
|
|
220
|
-
}
|
|
221
249
|
log('');
|
|
222
250
|
ok('Uninstall complete.\n');
|
|
223
251
|
});
|
|
224
252
|
// ── mock ──────────────────────────────────────────────────────────────────────
|
|
225
253
|
program
|
|
226
254
|
.command('mock')
|
|
227
|
-
.description('Start local dev mock server
|
|
228
|
-
.option('--port <port>', 'Port
|
|
255
|
+
.description('Start local dev mock server')
|
|
256
|
+
.option('--port <port>', 'Port', '4100')
|
|
229
257
|
.action(async (opts) => {
|
|
230
258
|
const { startMockServer } = await import('./mock-server.js');
|
|
231
259
|
startMockServer(Number(opts.port));
|
|
232
260
|
});
|
|
233
|
-
// ── hook (
|
|
261
|
+
// ── hook (stdin dispatcher when used as hook command) ─────────────────────────
|
|
234
262
|
program
|
|
235
263
|
.command('hook')
|
|
236
|
-
.description('Internal: read stdin hook event
|
|
264
|
+
.description('Internal: read stdin hook event and post to Guard API')
|
|
237
265
|
.action(async () => {
|
|
238
|
-
// Delegate to the CJS hook logic by spawning it, or re-implement inline.
|
|
239
|
-
// For CLI installs (`npm install -g guardion`), this is the hook command.
|
|
240
266
|
const { execFileSync } = await import('node:child_process');
|
|
241
|
-
const
|
|
242
|
-
const { fileURLToPath } = await import('node:url');
|
|
243
|
-
const path = await import('node:path');
|
|
244
|
-
const hookPath = path.default.resolve(path.default.dirname(fileURLToPath(import.meta.url)), '..', 'hooks', 'guardion-hook.cjs');
|
|
267
|
+
const hookPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'hooks', 'guardion-hook.cjs');
|
|
245
268
|
let input = '';
|
|
246
269
|
process.stdin.setEncoding('utf8');
|
|
247
270
|
process.stdin.on('data', (c) => { input += c; });
|
|
248
271
|
process.stdin.on('end', () => {
|
|
249
272
|
try {
|
|
250
273
|
execFileSync(process.execPath, [hookPath], {
|
|
251
|
-
input,
|
|
252
|
-
|
|
253
|
-
env: process.env,
|
|
254
|
-
timeout: 5000,
|
|
274
|
+
input, stdio: ['pipe', 'inherit', 'inherit'],
|
|
275
|
+
env: process.env, timeout: 5000,
|
|
255
276
|
});
|
|
256
277
|
}
|
|
257
278
|
catch { /* always silent */ }
|
|
@@ -264,24 +285,12 @@ program
|
|
|
264
285
|
.version(GUARDION_VERSION)
|
|
265
286
|
.description('Guardion — AI security monitoring for Claude Code')
|
|
266
287
|
.parse();
|
|
267
|
-
// ── HTTP helper ───────────────────────────────────────────────────────────────
|
|
268
288
|
function httpGet(url, token) {
|
|
269
289
|
return new Promise((resolve, reject) => {
|
|
270
290
|
const parsed = new URL(url);
|
|
271
291
|
const transport = parsed.protocol === 'https:' ? https : http;
|
|
272
|
-
const req = transport.get({ hostname: parsed.hostname, port: parsed.port, path: parsed.pathname,
|
|
273
|
-
headers: { Authorization: `Bearer ${token}` } }, (res) => {
|
|
274
|
-
let body = '';
|
|
275
|
-
res.on('data', (c) => { body += c; });
|
|
276
|
-
res.on('end', () => {
|
|
277
|
-
try {
|
|
278
|
-
resolve({ status: res.statusCode ?? 0, body: JSON.parse(body) });
|
|
279
|
-
}
|
|
280
|
-
catch {
|
|
281
|
-
resolve({ status: res.statusCode ?? 0, body });
|
|
282
|
-
}
|
|
283
|
-
});
|
|
284
|
-
});
|
|
292
|
+
const req = transport.get({ hostname: parsed.hostname, port: parsed.port, path: parsed.pathname,
|
|
293
|
+
timeout: 5000, headers: { Authorization: `Bearer ${token}` } }, res => { res.resume(); res.on('end', () => resolve({ status: res.statusCode ?? 0 })); });
|
|
285
294
|
req.on('error', reject);
|
|
286
295
|
req.on('timeout', () => { req.destroy(); reject(new Error('timeout')); });
|
|
287
296
|
});
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|