@saferun/cli 0.6.10 → 0.6.11
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/README.md +33 -733
- package/dist/commands/status.js +3 -1
- package/dist/commands/status.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,765 +1,65 @@
|
|
|
1
1
|
# SafeRun CLI
|
|
2
2
|
|
|
3
|
-
> 🛡️
|
|
3
|
+
> 🛡️ Human approval layer for AI agent Git operations
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://www.npmjs.com/package/@saferun/cli)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
**AI agents are powerful but can be dangerous:**
|
|
10
|
-
- Cursor might force push during an automated refactor at 3 AM
|
|
11
|
-
- ChatGPT could delete the wrong branch while "helping" with cleanup
|
|
12
|
-
- Copilot might suggest a hard reset that loses important work
|
|
13
|
-
|
|
14
|
-
**SafeRun provides a safety net:**
|
|
15
|
-
- ✅ Intercepts dangerous Git operations
|
|
16
|
-
- ✅ Detects AI agents automatically
|
|
17
|
-
- ✅ Requires human approval for risky actions
|
|
18
|
-
- ✅ Works offline with intelligent caching
|
|
19
|
-
- ✅ Tracks all operations for audit
|
|
20
|
-
|
|
21
|
-
---
|
|
8
|
+
SafeRun protects your Git repositories from dangerous operations executed by AI agents (Cursor, Claude Code, Copilot) and automation tools. It intercepts risky commands and requires human approval via Slack before execution.
|
|
22
9
|
|
|
23
10
|
## Installation
|
|
24
11
|
|
|
25
|
-
### Option 1: NPM (Recommended)
|
|
26
|
-
|
|
27
12
|
```bash
|
|
28
13
|
npm install -g @saferun/cli
|
|
29
14
|
```
|
|
30
15
|
|
|
31
|
-
### Option 2: From Source
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
git clone https://github.com/Cocabadger/saferun-api.git
|
|
35
|
-
cd saferun-api/cli
|
|
36
|
-
npm install
|
|
37
|
-
npm run build
|
|
38
|
-
npm link
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### Option 3: Binary Download
|
|
42
|
-
|
|
43
|
-
Download the latest binary from [Releases](https://github.com/Cocabadger/saferun-api/releases)
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
16
|
## Quick Start
|
|
48
17
|
|
|
49
|
-
### 1. Initialize SafeRun in your repository
|
|
50
|
-
|
|
51
18
|
```bash
|
|
52
19
|
cd your-repo
|
|
53
|
-
saferun
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
This will:
|
|
57
|
-
- Create `.saferun/config.yml`
|
|
58
|
-
- Install Git hooks (pre-push, pre-commit, post-checkout)
|
|
59
|
-
- Set up local cache
|
|
60
|
-
- Register with SafeRun API (optional)
|
|
61
|
-
|
|
62
|
-
### 2. Try a protected operation
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
git push --force origin main
|
|
20
|
+
saferun setup # Complete setup wizard
|
|
66
21
|
```
|
|
67
22
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
⚠️ Force push to main
|
|
74
|
-
|
|
75
|
-
This will overwrite 5 commits on origin/main
|
|
76
|
-
|
|
77
|
-
Options:
|
|
78
|
-
[a] Approve once
|
|
79
|
-
[d] Deny
|
|
80
|
-
[b] Bypass with code
|
|
81
|
-
[h] View details
|
|
82
|
-
|
|
83
|
-
Your choice:
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### 3. Check status
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
saferun status
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Shows:
|
|
93
|
-
- Current protection mode
|
|
94
|
-
- Installed hooks
|
|
95
|
-
- API connection status
|
|
96
|
-
- Recent activity
|
|
97
|
-
- AI agent detection status
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## AI Agent Detection
|
|
102
|
-
|
|
103
|
-
SafeRun automatically detects when operations come from AI agents:
|
|
104
|
-
|
|
105
|
-
### Supported AI Agents
|
|
106
|
-
|
|
107
|
-
**IDE Assistants:**
|
|
108
|
-
- Cursor
|
|
109
|
-
- GitHub Copilot
|
|
110
|
-
- Windsurf
|
|
111
|
-
- Codeium
|
|
112
|
-
- Tabnine
|
|
113
|
-
- Continue
|
|
23
|
+
The wizard guides you through:
|
|
24
|
+
1. **API Key** — Get from [saferun.dev](https://saferun.dev)
|
|
25
|
+
2. **Slack** — Bot token + webhook for notifications
|
|
26
|
+
3. **GitHub App** — Install [SafeRun GitHub App](https://github.com/apps/saferun-ai)
|
|
27
|
+
4. **Shell Wrapper** — Intercepts dangerous commands
|
|
114
28
|
|
|
115
|
-
|
|
116
|
-
- Claude (via API)
|
|
117
|
-
- ChatGPT (via API)
|
|
118
|
-
- Gemini
|
|
29
|
+
## Protected Operations
|
|
119
30
|
|
|
120
|
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
125
|
-
|
|
126
|
-
### Detection Methods
|
|
127
|
-
|
|
128
|
-
SafeRun uses multiple signals:
|
|
129
|
-
1. **Environment variables** - High confidence (e.g., `CURSOR_AI=1`)
|
|
130
|
-
2. **Process patterns** - Medium confidence (e.g., parent process name)
|
|
131
|
-
3. **Git config** - Low confidence (e.g., user.name contains "bot")
|
|
132
|
-
4. **Network monitoring** - Medium confidence (e.g., proxy to AI API)
|
|
133
|
-
5. **Agent handshake** - Highest confidence (explicit registration)
|
|
134
|
-
|
|
135
|
-
### Check AI Detection
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
saferun status --agents
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
Output:
|
|
142
|
-
```
|
|
143
|
-
🤖 AI Agent Detection
|
|
144
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
145
|
-
Status: AI Agent Detected
|
|
146
|
-
Type: cursor
|
|
147
|
-
Confidence: high
|
|
148
|
-
Method: environment variable
|
|
149
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
---
|
|
31
|
+
- `git push --force` / `git push -f`
|
|
32
|
+
- `git reset --hard`
|
|
33
|
+
- `git branch -D` / `git branch --delete --force`
|
|
34
|
+
- `git clean -fd`
|
|
35
|
+
- `git commit --no-verify`
|
|
36
|
+
- Direct commits to `main` or `master`
|
|
153
37
|
|
|
154
38
|
## Commands
|
|
155
39
|
|
|
156
|
-
### `saferun init`
|
|
157
|
-
|
|
158
|
-
Initialize SafeRun in current repository.
|
|
159
|
-
|
|
160
|
-
```bash
|
|
161
|
-
saferun init [options]
|
|
162
|
-
|
|
163
|
-
Options:
|
|
164
|
-
--mode <mode> Protection mode: strict, balanced, lenient (default: balanced)
|
|
165
|
-
--api-url <url> SafeRun API URL (default: https://api.saferun.dev)
|
|
166
|
-
--api-key <key> API key for SafeRun backend
|
|
167
|
-
--offline Run in offline-only mode
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
**Example:**
|
|
171
|
-
```bash
|
|
172
|
-
saferun init --mode strict --offline
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
### `saferun status`
|
|
178
|
-
|
|
179
|
-
Show current SafeRun status and recent activity.
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
saferun status [options]
|
|
183
|
-
|
|
184
|
-
Options:
|
|
185
|
-
--agents Show AI agent detection details
|
|
186
|
-
--pending Show pending approvals
|
|
187
|
-
-n, --tail <count> Show last N operations (default: 10)
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
**Examples:**
|
|
191
|
-
```bash
|
|
192
|
-
# Show default status with last 10 operations
|
|
193
|
-
saferun status
|
|
194
|
-
|
|
195
|
-
# Show last 5 operations
|
|
196
|
-
saferun status -n 5
|
|
197
|
-
|
|
198
|
-
# Show last 50 operations (full history)
|
|
199
|
-
saferun status --tail 50
|
|
200
|
-
|
|
201
|
-
# Show AI agent detection details
|
|
202
|
-
saferun status --agents
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
**Activity Log:**
|
|
206
|
-
|
|
207
|
-
The activity log shows all operations processed by SafeRun:
|
|
208
|
-
- **Approved** (green) — Operation was allowed
|
|
209
|
-
- **Declined** (red) — Operation was blocked with reason
|
|
210
|
-
- **Info** (gray) — Informational events (checkout, etc.)
|
|
211
|
-
|
|
212
|
-
Logs are stored locally in `{repo}/.saferun/logs/operations.log` and are never uploaded to the server.
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
### `saferun config`
|
|
217
|
-
|
|
218
|
-
View or modify SafeRun configuration.
|
|
219
|
-
|
|
220
40
|
```bash
|
|
221
|
-
saferun
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
reset Reset to defaults
|
|
229
|
-
|
|
230
|
-
Options:
|
|
231
|
-
--global Use global config (~/.saferun/config.yml)
|
|
41
|
+
saferun setup # Complete setup wizard
|
|
42
|
+
saferun init # Initialize protection in current repo
|
|
43
|
+
saferun status # Show protection status
|
|
44
|
+
saferun status -n 20 # Show last 20 operations
|
|
45
|
+
saferun doctor # Health check
|
|
46
|
+
saferun uninstall # Remove from current repo
|
|
47
|
+
saferun uninstall --global # Remove completely
|
|
232
48
|
```
|
|
233
49
|
|
|
234
|
-
|
|
235
|
-
```bash
|
|
236
|
-
# View current mode
|
|
237
|
-
saferun config get mode
|
|
50
|
+
## How It Works
|
|
238
51
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
saferun config edit
|
|
244
|
-
|
|
245
|
-
# Show all settings
|
|
246
|
-
saferun config show
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
|
-
### `saferun history`
|
|
252
|
-
|
|
253
|
-
View operation history and audit log.
|
|
254
|
-
|
|
255
|
-
```bash
|
|
256
|
-
saferun history [options]
|
|
52
|
+
1. Shell wrapper intercepts dangerous Git commands
|
|
53
|
+
2. SafeRun calculates risk score and detects AI agent
|
|
54
|
+
3. Slack notification sent with Approve/Reject buttons
|
|
55
|
+
4. You approve → command executes. You reject → command blocked.
|
|
257
56
|
|
|
258
|
-
|
|
259
|
-
--since <date> Show operations since date (e.g., "2024-01-01", "7d")
|
|
260
|
-
--until <date> Show operations until date
|
|
261
|
-
--operation <type> Filter by operation (force_push, branch_delete, etc.)
|
|
262
|
-
--ai-only Show only AI agent operations
|
|
263
|
-
--export <format> Export to file (json, csv)
|
|
264
|
-
-n <number> Limit results (default: 20)
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
**Examples:**
|
|
268
|
-
```bash
|
|
269
|
-
# Last 10 operations
|
|
270
|
-
saferun history -n 10
|
|
271
|
-
|
|
272
|
-
# Operations from last week
|
|
273
|
-
saferun history --since 7d
|
|
274
|
-
|
|
275
|
-
# AI agent operations only
|
|
276
|
-
saferun history --ai-only
|
|
277
|
-
|
|
278
|
-
# Export to CSV
|
|
279
|
-
saferun history --export csv > audit.csv
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
---
|
|
283
|
-
|
|
284
|
-
### `saferun allow`
|
|
285
|
-
|
|
286
|
-
Whitelist specific operations or patterns.
|
|
287
|
-
|
|
288
|
-
```bash
|
|
289
|
-
saferun allow <type> <value>
|
|
290
|
-
|
|
291
|
-
Types:
|
|
292
|
-
branch <pattern> Allow operations on branches matching pattern
|
|
293
|
-
author <email> Allow operations from specific author
|
|
294
|
-
operation <type> Allow specific operation type
|
|
295
|
-
|
|
296
|
-
Options:
|
|
297
|
-
--remove Remove from whitelist
|
|
298
|
-
--list List all whitelist entries
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
**Examples:**
|
|
302
|
-
```bash
|
|
303
|
-
# Allow force push to dev branches
|
|
304
|
-
saferun allow branch 'dev/*'
|
|
57
|
+
Approval timeout: 2 hours.
|
|
305
58
|
|
|
306
|
-
|
|
307
|
-
saferun allow author 'bot@company.com'
|
|
59
|
+
## Documentation
|
|
308
60
|
|
|
309
|
-
|
|
310
|
-
saferun allow branch 'dev/*' --remove
|
|
311
|
-
|
|
312
|
-
# List all whitelisted items
|
|
313
|
-
saferun allow --list
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
---
|
|
317
|
-
|
|
318
|
-
### `saferun agent`
|
|
319
|
-
|
|
320
|
-
Register AI agent for explicit detection.
|
|
321
|
-
|
|
322
|
-
```bash
|
|
323
|
-
saferun agent <action> [options]
|
|
324
|
-
|
|
325
|
-
Actions:
|
|
326
|
-
register Register current agent
|
|
327
|
-
unregister Unregister agent
|
|
328
|
-
status Show agent registration status
|
|
329
|
-
|
|
330
|
-
Options:
|
|
331
|
-
--type <type> Agent type (cursor, claude, custom)
|
|
332
|
-
--name <name> Agent name/identifier
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
**Examples:**
|
|
336
|
-
```bash
|
|
337
|
-
# Register Claude Desktop
|
|
338
|
-
saferun agent register --type claude --name "Claude Desktop"
|
|
339
|
-
|
|
340
|
-
# Check registration
|
|
341
|
-
saferun agent status
|
|
342
|
-
|
|
343
|
-
# Unregister
|
|
344
|
-
saferun agent unregister
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
---
|
|
348
|
-
|
|
349
|
-
### `saferun shell-init`
|
|
350
|
-
|
|
351
|
-
Initialize SafeRun for AI shell integration (ChatGPT, Claude).
|
|
352
|
-
|
|
353
|
-
```bash
|
|
354
|
-
saferun shell-init [options]
|
|
355
|
-
|
|
356
|
-
Options:
|
|
357
|
-
--shell <shell> Shell type (bash, zsh, fish)
|
|
358
|
-
--install Install shell integration
|
|
359
|
-
--uninstall Remove shell integration
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
**Example:**
|
|
363
|
-
```bash
|
|
364
|
-
# Setup for zsh
|
|
365
|
-
saferun shell-init --shell zsh --install
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
---
|
|
369
|
-
|
|
370
|
-
### `saferun feedback`
|
|
371
|
-
|
|
372
|
-
Submit feedback about SafeRun decisions.
|
|
373
|
-
|
|
374
|
-
```bash
|
|
375
|
-
saferun feedback <change-id> <type> [message]
|
|
376
|
-
|
|
377
|
-
Types:
|
|
378
|
-
correct SafeRun made the right decision
|
|
379
|
-
incorrect SafeRun was wrong
|
|
380
|
-
too-strict SafeRun was too restrictive
|
|
381
|
-
suggestion General suggestion
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
**Example:**
|
|
385
|
-
```bash
|
|
386
|
-
saferun feedback abc123 too-strict "Should allow force push to dev/*"
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
---
|
|
390
|
-
|
|
391
|
-
### `saferun uninstall`
|
|
392
|
-
|
|
393
|
-
Uninstall SafeRun from repository.
|
|
394
|
-
|
|
395
|
-
```bash
|
|
396
|
-
saferun uninstall [options]
|
|
397
|
-
|
|
398
|
-
Options:
|
|
399
|
-
--keep-config Keep .saferun/config.yml
|
|
400
|
-
--purge Remove all SafeRun data including logs
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
**Example:**
|
|
404
|
-
```bash
|
|
405
|
-
saferun uninstall --keep-config
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
---
|
|
409
|
-
|
|
410
|
-
## Configuration
|
|
411
|
-
|
|
412
|
-
SafeRun uses `.saferun/config.yml`:
|
|
413
|
-
|
|
414
|
-
```yaml
|
|
415
|
-
# Protection mode
|
|
416
|
-
mode: balanced # strict | balanced | lenient
|
|
417
|
-
|
|
418
|
-
# API settings
|
|
419
|
-
api:
|
|
420
|
-
url: https://api.saferun.dev
|
|
421
|
-
key: your-api-key-here
|
|
422
|
-
timeout: 5000
|
|
423
|
-
|
|
424
|
-
# GitHub settings
|
|
425
|
-
github:
|
|
426
|
-
repo: auto # or "owner/repo"
|
|
427
|
-
protected_branches:
|
|
428
|
-
- main
|
|
429
|
-
- master
|
|
430
|
-
- production
|
|
431
|
-
|
|
432
|
-
# Bypass settings
|
|
433
|
-
bypass:
|
|
434
|
-
ci: true
|
|
435
|
-
ci_environments:
|
|
436
|
-
enabled: true
|
|
437
|
-
detect_from_env:
|
|
438
|
-
- CI
|
|
439
|
-
- GITHUB_ACTIONS
|
|
440
|
-
- GITLAB_CI
|
|
441
|
-
|
|
442
|
-
# Approval timeout behavior
|
|
443
|
-
approval_timeout:
|
|
444
|
-
action: reject # reject | allow | ask
|
|
445
|
-
duration: 7200 # 2 hours in seconds
|
|
446
|
-
reminders: 3 # Number of reminder notifications
|
|
447
|
-
reminder_interval: 1800 # 30 minutes in seconds
|
|
448
|
-
|
|
449
|
-
# Operation rules
|
|
450
|
-
rules:
|
|
451
|
-
force_push:
|
|
452
|
-
action: require_approval
|
|
453
|
-
risk_score: 9.0
|
|
454
|
-
timeout_action: reject # What to do if no approval after timeout
|
|
455
|
-
timeout_duration: 7200 # 2 hours
|
|
456
|
-
|
|
457
|
-
branch_delete:
|
|
458
|
-
action: require_approval
|
|
459
|
-
risk_score: 7.5
|
|
460
|
-
timeout_action: reject
|
|
461
|
-
timeout_duration: 7200
|
|
462
|
-
exclude_patterns:
|
|
463
|
-
- "feature/*"
|
|
464
|
-
- "dev/*"
|
|
465
|
-
|
|
466
|
-
clean:
|
|
467
|
-
action: warn
|
|
468
|
-
risk_score: 4.0
|
|
469
|
-
timeout_action: allow # Less critical - allow after timeout
|
|
470
|
-
timeout_duration: 3600 # 1 hour
|
|
471
|
-
|
|
472
|
-
# Telemetry
|
|
473
|
-
telemetry:
|
|
474
|
-
enabled: true
|
|
475
|
-
```
|
|
476
|
-
|
|
477
|
-
---
|
|
478
|
-
|
|
479
|
-
## Approval Timeout Behavior
|
|
480
|
-
|
|
481
|
-
SafeRun supports flexible timeout handling when approval is not received within the configured duration.
|
|
482
|
-
|
|
483
|
-
### Timeout Actions
|
|
484
|
-
|
|
485
|
-
**`reject` (Default for critical operations)**
|
|
486
|
-
- Operation is automatically **cancelled** if no approval received
|
|
487
|
-
- Safest option for protected branches and destructive operations
|
|
488
|
-
- Recommended for: `force_push`, `branch_delete`, `reset_hard`
|
|
489
|
-
|
|
490
|
-
**`allow` (For less critical operations)**
|
|
491
|
-
- Operation **proceeds automatically** after timeout
|
|
492
|
-
- Useful for dev branches and non-destructive operations
|
|
493
|
-
- Recommended for: `clean`, operations on `feature/*` branches
|
|
494
|
-
|
|
495
|
-
**`ask` (Interactive mode)**
|
|
496
|
-
- CLI prompts user to decide after timeout
|
|
497
|
-
- Options: Proceed anyway / Cancel / Wait longer
|
|
498
|
-
- Recommended for: `hotfix/*` branches, uncertain scenarios
|
|
499
|
-
|
|
500
|
-
### Timeline Example
|
|
501
|
-
|
|
502
|
-
```
|
|
503
|
-
T=0: Dangerous operation detected
|
|
504
|
-
→ Approval request sent
|
|
505
|
-
→ Notification to Slack/Email
|
|
506
|
-
|
|
507
|
-
T=30min: First reminder sent
|
|
508
|
-
→ "Still waiting for approval..."
|
|
509
|
-
|
|
510
|
-
T=60min: Second reminder sent
|
|
511
|
-
→ "You have 1 hour left..."
|
|
512
|
-
|
|
513
|
-
T=90min: Final reminder sent
|
|
514
|
-
→ "Last chance! 30 minutes remaining"
|
|
515
|
-
|
|
516
|
-
T=120min: Timeout reached
|
|
517
|
-
→ Action depends on timeout_action:
|
|
518
|
-
• reject → Operation cancelled ❌
|
|
519
|
-
• allow → Operation proceeds ✅
|
|
520
|
-
• ask → User prompted to decide ❓
|
|
521
|
-
```
|
|
522
|
-
|
|
523
|
-
### Configuring Timeouts
|
|
524
|
-
|
|
525
|
-
**Global settings:**
|
|
526
|
-
```yaml
|
|
527
|
-
approval_timeout:
|
|
528
|
-
action: reject # Default behavior
|
|
529
|
-
duration: 7200 # 2 hours
|
|
530
|
-
reminders: 3
|
|
531
|
-
reminder_interval: 1800 # 30 minutes
|
|
532
|
-
```
|
|
533
|
-
|
|
534
|
-
**Per-operation overrides:**
|
|
535
|
-
```yaml
|
|
536
|
-
rules:
|
|
537
|
-
force_push:
|
|
538
|
-
timeout_action: reject # Critical - always reject
|
|
539
|
-
timeout_duration: 7200
|
|
540
|
-
|
|
541
|
-
clean:
|
|
542
|
-
timeout_action: allow # Less critical - allow after 1 hour
|
|
543
|
-
timeout_duration: 3600
|
|
544
|
-
```
|
|
545
|
-
|
|
546
|
-
---
|
|
547
|
-
|
|
548
|
-
## Protection Modes
|
|
549
|
-
|
|
550
|
-
### Strict Mode
|
|
551
|
-
- All dangerous operations require approval
|
|
552
|
-
- No bypasses except explicit whitelist
|
|
553
|
-
- Maximum safety, may slow down workflow
|
|
554
|
-
|
|
555
|
-
### Balanced Mode (Default)
|
|
556
|
-
- Common patterns allowed (e.g., force push to feature branches)
|
|
557
|
-
- Protected branches require approval
|
|
558
|
-
- Good balance of safety and productivity
|
|
559
|
-
|
|
560
|
-
### Lenient Mode
|
|
561
|
-
- Warnings only, no blocking
|
|
562
|
-
- Good for learning or low-risk repositories
|
|
563
|
-
- Minimal interruption
|
|
564
|
-
|
|
565
|
-
---
|
|
566
|
-
|
|
567
|
-
## Examples
|
|
568
|
-
|
|
569
|
-
### Example 1: Team Setup
|
|
570
|
-
|
|
571
|
-
```bash
|
|
572
|
-
# Initialize with strict mode
|
|
573
|
-
saferun init --mode strict
|
|
574
|
-
|
|
575
|
-
# Protect main branches
|
|
576
|
-
saferun config set github.protected_branches main,production
|
|
577
|
-
|
|
578
|
-
# Allow dev branches
|
|
579
|
-
saferun allow branch 'dev/*'
|
|
580
|
-
|
|
581
|
-
# Whitelist CI bot
|
|
582
|
-
saferun allow author 'github-actions[bot]@users.noreply.github.com'
|
|
583
|
-
```
|
|
584
|
-
|
|
585
|
-
### Example 2: AI Development Setup
|
|
586
|
-
|
|
587
|
-
```bash
|
|
588
|
-
# Initialize with AI agent detection
|
|
589
|
-
saferun init --mode balanced
|
|
590
|
-
|
|
591
|
-
# Register Cursor as AI agent
|
|
592
|
-
saferun agent register --type cursor --name "Cursor IDE"
|
|
593
|
-
|
|
594
|
-
# View AI operations
|
|
595
|
-
saferun history --ai-only
|
|
596
|
-
|
|
597
|
-
# Check AI detection
|
|
598
|
-
saferun status --agents
|
|
599
|
-
```
|
|
600
|
-
|
|
601
|
-
### Example 3: Offline Mode
|
|
602
|
-
|
|
603
|
-
```bash
|
|
604
|
-
# Initialize in offline mode
|
|
605
|
-
saferun init --offline --mode balanced
|
|
606
|
-
|
|
607
|
-
# Configure longer cache
|
|
608
|
-
saferun config set cache_ttl 900000 # 15 minutes
|
|
609
|
-
|
|
610
|
-
# Operations work without API
|
|
611
|
-
git push --force origin dev/feature
|
|
612
|
-
```
|
|
613
|
-
|
|
614
|
-
---
|
|
615
|
-
|
|
616
|
-
## Troubleshooting
|
|
617
|
-
|
|
618
|
-
### SafeRun not intercepting operations
|
|
619
|
-
|
|
620
|
-
**Check hooks are installed:**
|
|
621
|
-
```bash
|
|
622
|
-
ls -la .git/hooks/
|
|
623
|
-
```
|
|
624
|
-
|
|
625
|
-
You should see:
|
|
626
|
-
- `pre-push` (SafeRun wrapper)
|
|
627
|
-
- `pre-commit` (SafeRun wrapper)
|
|
628
|
-
- `post-checkout` (SafeRun wrapper)
|
|
629
|
-
|
|
630
|
-
**Reinstall hooks:**
|
|
631
|
-
```bash
|
|
632
|
-
saferun init --force
|
|
633
|
-
```
|
|
634
|
-
|
|
635
|
-
---
|
|
636
|
-
|
|
637
|
-
### AI agent not detected
|
|
638
|
-
|
|
639
|
-
**Check environment:**
|
|
640
|
-
```bash
|
|
641
|
-
saferun status --agents
|
|
642
|
-
```
|
|
643
|
-
|
|
644
|
-
**Manually register agent:**
|
|
645
|
-
```bash
|
|
646
|
-
saferun agent register --type cursor
|
|
647
|
-
```
|
|
648
|
-
|
|
649
|
-
**Check detection signals:**
|
|
650
|
-
```bash
|
|
651
|
-
# Enable debug mode
|
|
652
|
-
export SAFERUN_DEBUG=1
|
|
653
|
-
git push --force origin dev
|
|
654
|
-
```
|
|
655
|
-
|
|
656
|
-
---
|
|
657
|
-
|
|
658
|
-
### API connection issues
|
|
659
|
-
|
|
660
|
-
**Test API connection:**
|
|
661
|
-
```bash
|
|
662
|
-
saferun status
|
|
663
|
-
```
|
|
664
|
-
|
|
665
|
-
Look for "SafeRun API: reachable"
|
|
666
|
-
|
|
667
|
-
**Change API URL:**
|
|
668
|
-
```bash
|
|
669
|
-
saferun config set api.url https://your-server.com
|
|
670
|
-
```
|
|
671
|
-
|
|
672
|
-
---
|
|
673
|
-
|
|
674
|
-
### Bypass SafeRun temporarily
|
|
675
|
-
|
|
676
|
-
**Disable globally:**
|
|
677
|
-
```bash
|
|
678
|
-
saferun config set mode lenient
|
|
679
|
-
```
|
|
680
|
-
|
|
681
|
-
**Uninstall:**
|
|
682
|
-
```bash
|
|
683
|
-
saferun uninstall
|
|
684
|
-
```
|
|
685
|
-
|
|
686
|
-
---
|
|
687
|
-
|
|
688
|
-
## Architecture
|
|
689
|
-
|
|
690
|
-
```
|
|
691
|
-
┌─────────────────┐
|
|
692
|
-
│ Git Command │
|
|
693
|
-
│ (force push) │
|
|
694
|
-
└────────┬────────┘
|
|
695
|
-
│
|
|
696
|
-
▼
|
|
697
|
-
┌─────────────────┐
|
|
698
|
-
│ Git Hook │
|
|
699
|
-
│ (pre-push) │
|
|
700
|
-
└────────┬────────┘
|
|
701
|
-
│
|
|
702
|
-
▼
|
|
703
|
-
┌─────────────────┐
|
|
704
|
-
│ SafeRun CLI │
|
|
705
|
-
│ - AI Detection │
|
|
706
|
-
│ - Cache Check │
|
|
707
|
-
│ - Risk Assess │
|
|
708
|
-
└────────┬────────┘
|
|
709
|
-
│
|
|
710
|
-
┌────┴────┐
|
|
711
|
-
▼ ▼
|
|
712
|
-
┌────────┐ ┌──────────┐
|
|
713
|
-
│ Cache │ │ SafeRun │
|
|
714
|
-
│ │ │ API │
|
|
715
|
-
└────────┘ └─────┬────┘
|
|
716
|
-
│
|
|
717
|
-
▼
|
|
718
|
-
┌───────────────┐
|
|
719
|
-
│ Approval UI │
|
|
720
|
-
│ (Web/CLI) │
|
|
721
|
-
└───────┬───────┘
|
|
722
|
-
│
|
|
723
|
-
▼
|
|
724
|
-
┌───────────────┐
|
|
725
|
-
│ Approve? │
|
|
726
|
-
│ ├─ Yes → ✓ │
|
|
727
|
-
│ └─ No → ✗ │
|
|
728
|
-
└───────────────┘
|
|
729
|
-
```
|
|
730
|
-
|
|
731
|
-
---
|
|
732
|
-
|
|
733
|
-
## Contributing
|
|
734
|
-
|
|
735
|
-
We welcome contributions! Please see [CONTRIBUTING.md](../CONTRIBUTING.md)
|
|
736
|
-
|
|
737
|
-
---
|
|
61
|
+
Full documentation: [github.com/Cocabadger/saferun-api](https://github.com/Cocabadger/saferun-api)
|
|
738
62
|
|
|
739
63
|
## License
|
|
740
64
|
|
|
741
|
-
MIT
|
|
742
|
-
|
|
743
|
-
---
|
|
744
|
-
|
|
745
|
-
## Support
|
|
746
|
-
|
|
747
|
-
- 📖 Documentation: https://saferun-landing.vercel.app
|
|
748
|
-
- 🐛 Issues: https://github.com/Cocabadger/saferun-api/issues
|
|
749
|
-
- 📧 Email: support@saferun.dev
|
|
750
|
-
|
|
751
|
-
---
|
|
752
|
-
|
|
753
|
-
## Roadmap
|
|
754
|
-
|
|
755
|
-
- [ ] VS Code extension
|
|
756
|
-
- [ ] Slack notifications
|
|
757
|
-
- [ ] Team dashboards
|
|
758
|
-
- [ ] ML-based risk scoring
|
|
759
|
-
- [ ] More AI agent integrations
|
|
760
|
-
- [ ] Policy templates
|
|
761
|
-
- [ ] Compliance reports
|
|
762
|
-
|
|
763
|
-
---
|
|
764
|
-
|
|
765
|
-
**Built with ❤️ by the SafeRun team**
|
|
65
|
+
MIT © SafeRun Team
|
package/dist/commands/status.js
CHANGED
|
@@ -216,6 +216,8 @@ class StatusCommand {
|
|
|
216
216
|
// Calculate stats - 3 categories: Approved, Declined, Info (checkout)
|
|
217
217
|
const approved = recent.filter(e => e.outcome === 'approved' ||
|
|
218
218
|
e.outcome === 'allowed' ||
|
|
219
|
+
e.outcome === 'executed' ||
|
|
220
|
+
e.outcome === 'api_auto_execute' ||
|
|
219
221
|
e.event === 'allow' ||
|
|
220
222
|
e.event === 'approved').length;
|
|
221
223
|
const infoEvents = recent.filter(e => e.event === 'checkout').length;
|
|
@@ -269,7 +271,7 @@ class StatusCommand {
|
|
|
269
271
|
// AI indicator
|
|
270
272
|
const aiIcon = entry.is_ai_generated ? chalk_1.default.magenta('🤖') : ' ';
|
|
271
273
|
// 3 types: approved, declined, info (checkout, etc.)
|
|
272
|
-
const isApproved = outcome === 'approved' || outcome === 'allowed' || event === 'allow' || event === 'approved';
|
|
274
|
+
const isApproved = outcome === 'approved' || outcome === 'allowed' || outcome === 'executed' || outcome === 'api_auto_execute' || event === 'allow' || event === 'approved';
|
|
273
275
|
const isInfo = event === 'checkout'; // Just informational, not approve/decline
|
|
274
276
|
const isDeclined = !isApproved && !isInfo;
|
|
275
277
|
// Build reason string for declined operations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|