opencode-1password-auth 1.0.15 → 1.0.17
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 +105 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -46
- package/dist/index.js.map +1 -1
- package/dist/src/command-matcher.d.ts +34 -0
- package/dist/src/command-matcher.d.ts.map +1 -0
- package/dist/src/command-matcher.js +171 -0
- package/dist/src/command-matcher.js.map +1 -0
- package/dist/src/config.d.ts +16 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +82 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/desktop-detection.d.ts +20 -0
- package/dist/src/desktop-detection.d.ts.map +1 -0
- package/dist/src/desktop-detection.js +48 -0
- package/dist/src/desktop-detection.js.map +1 -0
- package/dist/src/fallback.d.ts +15 -0
- package/dist/src/fallback.d.ts.map +1 -0
- package/dist/src/fallback.js +184 -0
- package/dist/src/fallback.js.map +1 -0
- package/dist/src/logging.d.ts +21 -0
- package/dist/src/logging.d.ts.map +1 -0
- package/dist/src/logging.js +141 -0
- package/dist/src/logging.js.map +1 -0
- package/dist/src/orchestration.d.ts +37 -0
- package/dist/src/orchestration.d.ts.map +1 -0
- package/dist/src/orchestration.js +175 -0
- package/dist/src/orchestration.js.map +1 -0
- package/dist/src/validation.d.ts +26 -0
- package/dist/src/validation.d.ts.map +1 -0
- package/dist/src/validation.js +113 -0
- package/dist/src/validation.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -45,6 +45,7 @@ Authenticate LLM providers and inject MCP server secrets from 1Password environm
|
|
|
45
45
|
- **.env Access Warning**: Warns when .env files are accessed
|
|
46
46
|
- **Config File Management**: Automatically update config files to use `{env:VAR}` references (for MCP servers)
|
|
47
47
|
- **Debug Logging**: Detailed logs at `~/.opencode-1password-debug/debug.log`
|
|
48
|
+
- **Agent Hook Validation**: Validates mounted 1Password FIFOs before shell execution for secure secret access
|
|
48
49
|
|
|
49
50
|
## Prerequisites
|
|
50
51
|
|
|
@@ -266,7 +267,109 @@ The plugin writes detailed logs to `~/.opencode-1password-debug/debug.log`. Chec
|
|
|
266
267
|
- **1Password Permissions**: Service account needs read access to environments
|
|
267
268
|
- **Variable Names**: Provider names in 1Password should match auth.json provider IDs (case-insensitive, underscores converted to hyphens)
|
|
268
269
|
|
|
269
|
-
##
|
|
270
|
+
## Agent Hook Validation
|
|
271
|
+
|
|
272
|
+
The Agent Hook Validation feature validates that 1Password's mounted FIFOs (named pipes) are accessible before shell commands execute. This ensures secure secret access when the 1Password desktop app is running.
|
|
273
|
+
|
|
274
|
+
### How It Works
|
|
275
|
+
|
|
276
|
+
1. **Command Pattern Matching**: Before executing a bash command, the plugin checks if the command contains patterns indicating secret usage (e.g., `$`, `${`)
|
|
277
|
+
2. **Desktop App Detection**: Checks if the 1Password desktop app is running by verifying `~/.1password/mounted/envs/` exists
|
|
278
|
+
3. **FIFO Validation**: If desktop app is detected, validates that all FIFOs in the mounted directory are readable
|
|
279
|
+
4. **Fallback to Service Account**: If desktop app is not available, the plugin falls back to using the Service Account for authentication
|
|
280
|
+
|
|
281
|
+
**Integration with OpenCode**: The plugin registers a `tool.execute.before` hook for the `bash` tool, intercepting all shell commands executed via OpenCode. Validation only runs for commands that match the configured patterns. The plugin also uses the `shell.env` hook for MCP secret injection (separate from validation).
|
|
282
|
+
|
|
283
|
+
**Fallback Status**: The Service Account fallback is now fully implemented (v1.0.17+). When the 1Password desktop app is unavailable, the plugin will validate that the Service Account can access the required 1Password environments before allowing command execution.
|
|
284
|
+
|
|
285
|
+
### Configuration Options
|
|
286
|
+
|
|
287
|
+
| Environment Variable | Default | Description |
|
|
288
|
+
|---------------------|---------|-------------|
|
|
289
|
+
| `OP_AGENT_HOOK_VALIDATION_ENABLED` | `false` | Enable/disable FIFO validation before shell execution |
|
|
290
|
+
| `OP_AGENT_HOOK_BLOCK_ON_FAILURE` | `true` | Block command execution if validation fails |
|
|
291
|
+
| `OP_AGENT_HOOK_VALIDATION_TIMEOUT` | `5000` | Timeout in milliseconds for FIFO validation |
|
|
292
|
+
| `OP_AGENT_HOOK_COMMAND_PATTERNS` | `["$", "${"]` | JSON array of patterns that trigger validation |
|
|
293
|
+
|
|
294
|
+
### Examples
|
|
295
|
+
|
|
296
|
+
**Enable validation with defaults:**
|
|
297
|
+
```powershell
|
|
298
|
+
# Windows
|
|
299
|
+
setx OP_AGENT_HOOK_VALIDATION_ENABLED true
|
|
300
|
+
|
|
301
|
+
# macOS/Linux
|
|
302
|
+
export OP_AGENT_HOOK_VALIDATION_ENABLED=true
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**Enable with custom timeout and patterns:**
|
|
306
|
+
```powershell
|
|
307
|
+
# Windows
|
|
308
|
+
setx OP_AGENT_HOOK_VALIDATION_TIMEOUT 10000
|
|
309
|
+
setx OP_AGENT_HOOK_COMMAND_PATTERNS '["$", "${", "env:", "OP_"]'
|
|
310
|
+
|
|
311
|
+
# macOS/Linux
|
|
312
|
+
export OP_AGENT_HOOK_VALIDATION_TIMEOUT=10000
|
|
313
|
+
export OP_AGENT_HOOK_COMMAND_PATTERNS='["$", "${", "env:", "OP_"]'
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**Disable blocking on validation failure:**
|
|
317
|
+
```powershell
|
|
318
|
+
setx OP_AGENT_HOOK_BLOCK_ON_FAILURE false
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Troubleshooting Agent Hook Validation
|
|
322
|
+
|
|
323
|
+
**Commands are blocked even when 1Password is running:**
|
|
324
|
+
- Verify `OP_AGENT_HOOK_VALIDATION_ENABLED=true` is set
|
|
325
|
+
- Check that `~/.1password/mounted/envs/` exists and contains FIFOs
|
|
326
|
+
- Increase `OP_AGENT_HOOK_VALIDATION_TIMEOUT` if validation is timing out
|
|
327
|
+
- Review debug logs at `~/.opencode-1password-debug/debug.log`
|
|
328
|
+
|
|
329
|
+
**Validation passes but secrets aren't available:**
|
|
330
|
+
- The desktop app may be running but not unlocked
|
|
331
|
+
- Check that the correct vaults are linked in 1Password
|
|
332
|
+
- Verify Service Account fallback works by checking logs
|
|
333
|
+
|
|
334
|
+
**"Mount path does not exist" errors:**
|
|
335
|
+
- Ensure 1Password desktop app is running with the CLI integration enabled
|
|
336
|
+
- On macOS, check System Settings > Privacy & Security > Full Disk Access for OpenCode
|
|
337
|
+
- Verify `~/.1password/mounted/envs/` exists (create if missing: `mkdir -p ~/.1password/mounted/envs`)
|
|
338
|
+
|
|
339
|
+
**FIFO validation timeout:**
|
|
340
|
+
- Increase `OP_AGENT_HOOK_VALIDATION_TIMEOUT` (e.g., 10000 for 10 seconds)
|
|
341
|
+
- Check for slow network drives or anti-virus software interfering
|
|
342
|
+
- Consider setting `OP_AGENT_HOOK_BLOCK_ON_FAILURE=false` if validation is unreliable
|
|
343
|
+
|
|
344
|
+
### Security Considerations
|
|
345
|
+
|
|
346
|
+
**What Agent Hook Validation DOES:**
|
|
347
|
+
- ✅ **FIFO Accessibility Check**: Validates that 1Password FIFOs exist and are readable at `~/.1password/mounted/envs/`
|
|
348
|
+
- ✅ **Desktop App Detection**: Verifies the 1Password desktop app is running by checking mount directory existence
|
|
349
|
+
- ✅ **Service Account Fallback**: When desktop app is unavailable, falls back to validating Service Account access to required 1Password environments
|
|
350
|
+
- ✅ **Configurable Blocking**: Respects `OP_AGENT_HOOK_BLOCK_ON_FAILURE` setting to block commands when validation fails
|
|
351
|
+
|
|
352
|
+
**What Agent Hook Validation DOES NOT do:**
|
|
353
|
+
- ❌ **Command Injection Prevention**: Does NOT prevent command injection or sanitize shell commands
|
|
354
|
+
- ❌ **Input Validation**: Does NOT validate or sanitize command arguments or user input
|
|
355
|
+
- ❌ **SQLite Mount Verification**: Does NOT use sqlite3 or verify active mounts via 1Password's database (only checks FIFO existence/readability)
|
|
356
|
+
- ❌ **Security Boundary**: Is NOT a comprehensive security boundary for command execution
|
|
357
|
+
|
|
358
|
+
**Important Security Notes:**
|
|
359
|
+
- **Limited Scope**: The validation only ensures 1Password secret access mechanisms are available before commands execute
|
|
360
|
+
- **Not a Sandbox**: Commands execute with full shell privileges after validation passes
|
|
361
|
+
- **Pattern Matching Only**: Validation triggers based on simple string patterns (`$`, `${`), not semantic analysis
|
|
362
|
+
|
|
363
|
+
**Recommended Additional Security Measures:**
|
|
364
|
+
1. **Input Validation**: Implement command validation/sanitization in your application layer
|
|
365
|
+
2. **Command Whitelisting**: Consider whitelisting allowed commands for sensitive operations
|
|
366
|
+
3. **Principle of Least Privilege**: Run OpenCode with minimal necessary permissions
|
|
367
|
+
4. **Audit Logging**: Monitor command execution in production environments
|
|
368
|
+
5. **Defense in Depth**: Combine this validation with other security controls
|
|
369
|
+
|
|
370
|
+
**Use Case**: This validation is designed for development environments where 1Password desktop integration is used for secret access. For production deployments, consider implementing additional security controls appropriate for your threat model.
|
|
371
|
+
|
|
372
|
+
## Current Status (v1.0.17)
|
|
270
373
|
|
|
271
374
|
### ✅ Implemented
|
|
272
375
|
- **Provider Authentication**: `client.auth.set()` at runtime
|
|
@@ -275,6 +378,7 @@ The plugin writes detailed logs to `~/.opencode-1password-debug/debug.log`. Chec
|
|
|
275
378
|
- **Debug Logging**: File-based logging at `~/.opencode-1password-debug/debug.log`
|
|
276
379
|
- **Variable Normalization**: Multiple naming formats supported
|
|
277
380
|
- **Immediate Initialization**: Plugin loads early in OpenCode lifecycle
|
|
381
|
+
- **Agent Hook Validation**: FIFO validation before shell execution with desktop app detection and Service Account fallback
|
|
278
382
|
|
|
279
383
|
### 🔄 Working Around OpenCode Limitations
|
|
280
384
|
The plugin works around OpenCode's limitation of not resolving `{env:VAR}` in `auth.json` by:
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA8ClD,eAAO,MAAM,qBAAqB,EAAE,MA2kBnC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { createClient } from "@1password/sdk";
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
|
+
// Agent hook validation modules
|
|
5
|
+
import config from './src/config.js';
|
|
6
|
+
import { validateCommand } from './src/orchestration.js';
|
|
4
7
|
// Debug logging to file
|
|
5
8
|
const debugLog = (message) => {
|
|
6
9
|
const timestamp = new Date().toISOString();
|
|
@@ -20,47 +23,6 @@ const debugLog = (message) => {
|
|
|
20
23
|
// Ignore file logging errors
|
|
21
24
|
}
|
|
22
25
|
};
|
|
23
|
-
// Helper to handle both ESM and CommonJS exports
|
|
24
|
-
const getCreateClient = () => {
|
|
25
|
-
const sdkAny = sdk;
|
|
26
|
-
debugLog(`SDK import check: sdk type=${typeof sdk}, keys=${Object.keys(sdkAny).join(',')}`);
|
|
27
|
-
// Log all properties with their types for debugging
|
|
28
|
-
for (const key of Object.keys(sdkAny)) {
|
|
29
|
-
debugLog(` sdk.${key}: type=${typeof sdkAny[key]}, value=${typeof sdkAny[key] === 'function' ? '[Function]' : String(sdkAny[key])?.substring(0, 50)}`);
|
|
30
|
-
}
|
|
31
|
-
debugLog(`sdk.createClient exists? ${!!sdkAny.createClient}, type=${typeof sdkAny.createClient}`);
|
|
32
|
-
debugLog(`sdk.default exists? ${!!sdkAny.default}, type=${typeof sdkAny.default}`);
|
|
33
|
-
if (sdkAny.default) {
|
|
34
|
-
debugLog(`sdk.default keys: ${Object.keys(sdkAny.default).join(',')}`);
|
|
35
|
-
for (const key of Object.keys(sdkAny.default)) {
|
|
36
|
-
debugLog(` sdk.default.${key}: type=${typeof sdkAny.default[key]}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// Try sdk.createClient (ESM named export)
|
|
40
|
-
if (sdkAny.createClient && typeof sdkAny.createClient === 'function') {
|
|
41
|
-
debugLog('Using sdk.createClient (ESM named export)');
|
|
42
|
-
return sdkAny.createClient;
|
|
43
|
-
}
|
|
44
|
-
// Try sdk.default.createClient (CommonJS default export)
|
|
45
|
-
if (sdkAny.default && sdkAny.default.createClient && typeof sdkAny.default.createClient === 'function') {
|
|
46
|
-
debugLog('Using sdk.default.createClient (CommonJS default export)');
|
|
47
|
-
return sdkAny.default.createClient;
|
|
48
|
-
}
|
|
49
|
-
// Try sdk as default export
|
|
50
|
-
if (typeof sdkAny === 'function') {
|
|
51
|
-
debugLog('Using sdk as function (default export)');
|
|
52
|
-
return sdkAny;
|
|
53
|
-
}
|
|
54
|
-
// Try dynamic import as last resort
|
|
55
|
-
debugLog('Trying dynamic import as fallback...');
|
|
56
|
-
throw new Error('Could not find createClient function in @1password/sdk - module structure: ' + JSON.stringify({
|
|
57
|
-
sdkType: typeof sdkAny,
|
|
58
|
-
sdkKeys: Object.keys(sdkAny),
|
|
59
|
-
hasDefault: !!sdkAny.default,
|
|
60
|
-
defaultKeys: sdkAny.default ? Object.keys(sdkAny.default) : []
|
|
61
|
-
}));
|
|
62
|
-
};
|
|
63
|
-
const createClient = getCreateClient();
|
|
64
26
|
export const OnePasswordAuthPlugin = async ({ client, $ }) => {
|
|
65
27
|
// TEST: This log should appear in OpenCode's terminal output if plugin loads
|
|
66
28
|
console.log("1Password Plugin: Export function called - starting initialization");
|
|
@@ -528,12 +490,75 @@ export const OnePasswordAuthPlugin = async ({ client, $ }) => {
|
|
|
528
490
|
}
|
|
529
491
|
},
|
|
530
492
|
async "tool.execute.before"(input) {
|
|
531
|
-
|
|
493
|
+
// Existing .env file warning for read tool
|
|
494
|
+
if (input.tool === "read") {
|
|
495
|
+
const fileArgs = input.args;
|
|
496
|
+
if (fileArgs?.filePath && fileArgs.filePath.includes(".env")) {
|
|
497
|
+
debugLog("Warning - .env file access detected. Consider using 1Password for secrets management.");
|
|
498
|
+
}
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
501
|
+
// Agent hook validation for bash tool
|
|
502
|
+
if (input.tool === "bash") {
|
|
503
|
+
// Skip validation if not enabled
|
|
504
|
+
if (!config.validationEnabled) {
|
|
505
|
+
debugLog(`Validation disabled, skipping command validation`);
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
const commandArgs = input.args;
|
|
509
|
+
const command = commandArgs?.command;
|
|
510
|
+
if (!command) {
|
|
511
|
+
debugLog(`No command found in bash tool args`);
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
debugLog(`Processing bash command: ${command.substring(0, 100)}${command.length > 100 ? '...' : ''}`);
|
|
515
|
+
try {
|
|
516
|
+
const validationResult = await validateCommand(command);
|
|
517
|
+
// Log result for debugging
|
|
518
|
+
if (validationResult.skippedReason) {
|
|
519
|
+
debugLog(`Validation skipped: ${validationResult.skippedReason}`);
|
|
520
|
+
// Determine if this skip reason should block execution when blockOnFailure is true
|
|
521
|
+
const blockableSkipReasons = new Set(['fallback_failed', 'no_mounted_path', 'desktop_app_unavailable']);
|
|
522
|
+
if (blockableSkipReasons.has(validationResult.skippedReason)) {
|
|
523
|
+
if (config.blockOnFailure) {
|
|
524
|
+
const errorMessage = `1Password agent hook validation skipped: ${validationResult.skippedReason}`;
|
|
525
|
+
const commandSnippet = command.length > 100 ? command.substring(0, 100) + '...' : command;
|
|
526
|
+
throw new Error(`Command blocked by 1Password agent hook: ${errorMessage} (command: ${commandSnippet})`);
|
|
527
|
+
}
|
|
528
|
+
else {
|
|
529
|
+
debugLog(`Validation skipped (${validationResult.skippedReason}) but blockOnFailure is false, allowing execution with warning`);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
// For non-blockable skip reasons (e.g., command_not_matched) or blockOnFailure=false, allow execution
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
if (!validationResult.isValid) {
|
|
536
|
+
const errorMessage = `1Password agent hook validation failed: ${validationResult.errors.map(e => e.error).join(', ')}`;
|
|
537
|
+
const commandSnippet = command.length > 100 ? command.substring(0, 100) + '...' : command;
|
|
538
|
+
debugLog(errorMessage);
|
|
539
|
+
if (config.blockOnFailure) {
|
|
540
|
+
throw new Error(`Command blocked by 1Password agent hook: ${errorMessage} (command: ${commandSnippet})`);
|
|
541
|
+
}
|
|
542
|
+
else {
|
|
543
|
+
debugLog(`Command would be blocked but blockOnFailure is false, allowing execution with warning`);
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
else {
|
|
547
|
+
debugLog(`Validation passed, allowing command execution`);
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
catch (error) {
|
|
551
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
552
|
+
const commandSnippet = command.length > 100 ? command.substring(0, 100) + '...' : command;
|
|
553
|
+
debugLog(`Unexpected error during validation: ${errorMessage}`);
|
|
554
|
+
// Don't block execution on unexpected errors unless blockOnFailure is true
|
|
555
|
+
if (config.blockOnFailure) {
|
|
556
|
+
throw new Error(`Command blocked due to validation error: ${errorMessage} (command: ${commandSnippet})`);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
532
559
|
return;
|
|
533
|
-
const fileArgs = input.args;
|
|
534
|
-
if (fileArgs?.filePath && fileArgs.filePath.includes(".env")) {
|
|
535
|
-
debugLog("Warning - .env file access detected. Consider using 1Password for secrets management.");
|
|
536
560
|
}
|
|
561
|
+
// For other tools, do nothing
|
|
537
562
|
},
|
|
538
563
|
};
|
|
539
564
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command pattern matching utilities for determining which commands
|
|
3
|
+
* should be validated against 1Password secrets.
|
|
4
|
+
*
|
|
5
|
+
* Follows patterns from index.ts:
|
|
6
|
+
* - String manipulation pattern (normalizeProviderId at line 62-75)
|
|
7
|
+
* - Pattern generation with getAlternativeEnvVarNames (line 77-101)
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Determines if a command should be validated against 1Password secrets.
|
|
11
|
+
*
|
|
12
|
+
* Uses efficient regex matching with cached compiled patterns.
|
|
13
|
+
* Supports both default patterns (env var references like $VAR, ${VAR})
|
|
14
|
+
* and custom patterns from configuration.
|
|
15
|
+
*
|
|
16
|
+
* @param command - The shell command to check
|
|
17
|
+
* @param patterns - Optional custom patterns. Defaults to env var reference patterns
|
|
18
|
+
* @returns true if the command matches any of the patterns
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* shouldValidateCommand('echo $SECRET') // true - contains $VAR pattern
|
|
22
|
+
* shouldValidateCommand('ls -la') // false - no env var reference
|
|
23
|
+
* shouldValidateCommand('npm install', ['npm']) // true - custom pattern matches
|
|
24
|
+
*/
|
|
25
|
+
export declare function shouldValidateCommand(command: string, patterns?: string[]): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Clears the pattern cache. Useful for testing or when patterns change.
|
|
28
|
+
*/
|
|
29
|
+
export declare function clearPatternCache(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Gets the current cache size. Useful for debugging.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getPatternCacheSize(): number;
|
|
34
|
+
//# sourceMappingURL=command-matcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-matcher.d.ts","sourceRoot":"","sources":["../../src/command-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuHH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CA0CnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command pattern matching utilities for determining which commands
|
|
3
|
+
* should be validated against 1Password secrets.
|
|
4
|
+
*
|
|
5
|
+
* Follows patterns from index.ts:
|
|
6
|
+
* - String manipulation pattern (normalizeProviderId at line 62-75)
|
|
7
|
+
* - Pattern generation with getAlternativeEnvVarNames (line 77-101)
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Cache for compiled regex patterns for efficient matching.
|
|
11
|
+
* Using Map for O(1) lookups.
|
|
12
|
+
*/
|
|
13
|
+
const patternCache = new Map();
|
|
14
|
+
/**
|
|
15
|
+
* Default patterns for detecting environment variable references.
|
|
16
|
+
* These patterns match bash/shell env var syntax like $VAR and ${VAR}.
|
|
17
|
+
*/
|
|
18
|
+
const DEFAULT_ENV_VAR_PATTERNS = [
|
|
19
|
+
/\$[a-zA-Z_][a-zA-Z0-9_]*/g, // $VAR
|
|
20
|
+
/\$\{[^}]+\}/g, // ${VAR}
|
|
21
|
+
];
|
|
22
|
+
/**
|
|
23
|
+
* Compiles a pattern string into a RegExp and caches it.
|
|
24
|
+
* For special patterns like $ and ${, converts them to proper regex.
|
|
25
|
+
*/
|
|
26
|
+
function compilePattern(pattern) {
|
|
27
|
+
const cached = patternCache.get(pattern);
|
|
28
|
+
if (cached) {
|
|
29
|
+
return cached;
|
|
30
|
+
}
|
|
31
|
+
let regex;
|
|
32
|
+
// Handle default env var patterns specially
|
|
33
|
+
if (pattern === '$') {
|
|
34
|
+
// Match $ followed by valid identifier
|
|
35
|
+
regex = /\$[a-zA-Z_][a-zA-Z0-9_]*/g;
|
|
36
|
+
}
|
|
37
|
+
else if (pattern === '${') {
|
|
38
|
+
// Match ${...}
|
|
39
|
+
regex = /\$\{[^}]+\}/g;
|
|
40
|
+
}
|
|
41
|
+
else if (pattern.startsWith('${') && pattern.endsWith('}')) {
|
|
42
|
+
// Exact ${VAR} pattern - escape for regex but keep the structure
|
|
43
|
+
const inner = pattern.slice(2, -1);
|
|
44
|
+
regex = new RegExp(`\\$\\{${escapeRegex(inner)}\\}`, 'g');
|
|
45
|
+
}
|
|
46
|
+
else if (pattern.startsWith('$') && !pattern.startsWith('${')) {
|
|
47
|
+
// Exact $VAR pattern - escape for regex
|
|
48
|
+
const inner = pattern.slice(1);
|
|
49
|
+
regex = new RegExp(`\\$${escapeRegex(inner)}`, 'g');
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Custom pattern - escape for regex
|
|
53
|
+
regex = new RegExp(escapeRegex(pattern), 'g');
|
|
54
|
+
}
|
|
55
|
+
patternCache.set(pattern, regex);
|
|
56
|
+
return regex;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Escapes special regex characters in a string.
|
|
60
|
+
*/
|
|
61
|
+
function escapeRegex(str) {
|
|
62
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Alternative names for pattern matching - follows the same alternative
|
|
66
|
+
* generation pattern as getAlternativeEnvVarNames in index.ts.
|
|
67
|
+
*
|
|
68
|
+
* Generates variations of patterns for flexible matching:
|
|
69
|
+
* - Original (e.g., "$VAR")
|
|
70
|
+
* - Uppercase (e.g., "$VAR")
|
|
71
|
+
* - Underscore variant (e.g., "$VAR_NAME")
|
|
72
|
+
* - Combined variants
|
|
73
|
+
*/
|
|
74
|
+
function getAlternativePatternNames(pattern) {
|
|
75
|
+
const names = new Set();
|
|
76
|
+
// Original pattern
|
|
77
|
+
names.add(pattern);
|
|
78
|
+
// Handle ${VAR} style patterns
|
|
79
|
+
if (pattern.startsWith('${') && pattern.endsWith('}')) {
|
|
80
|
+
const inner = pattern.slice(2, -1); // Remove ${ and }
|
|
81
|
+
// Original inner (e.g., "API_KEY")
|
|
82
|
+
names.add(pattern);
|
|
83
|
+
// Uppercase inner (e.g., "${API_KEY}")
|
|
84
|
+
names.add(`\${${inner.toUpperCase()}}`);
|
|
85
|
+
// Lowercase inner (e.g., "${api_key}")
|
|
86
|
+
names.add(`\${${inner.toLowerCase()}}`);
|
|
87
|
+
// With underscores to hyphens (e.g., "${API-KEY}")
|
|
88
|
+
names.add(`\${${inner.replace(/_/g, '-')}}`);
|
|
89
|
+
// Hyphens to underscores (e.g., "${API_KEY}")
|
|
90
|
+
names.add(`\${${inner.replace(/-/g, '_')}}`);
|
|
91
|
+
}
|
|
92
|
+
// Handle $VAR style patterns
|
|
93
|
+
if (pattern.startsWith('$') && !pattern.startsWith('${')) {
|
|
94
|
+
const inner = pattern.slice(1); // Remove $
|
|
95
|
+
// Original (e.g., "$API_KEY")
|
|
96
|
+
names.add(pattern);
|
|
97
|
+
// Uppercase inner (e.g., "$API_KEY")
|
|
98
|
+
names.add(`$${inner.toUpperCase()}`);
|
|
99
|
+
// Lowercase inner (e.g., "$api_key")
|
|
100
|
+
names.add(`$${inner.toLowerCase()}`);
|
|
101
|
+
// With underscores to hyphens (e.g., "$API-KEY")
|
|
102
|
+
names.add(`$${inner.replace(/_/g, '-')}`);
|
|
103
|
+
// Hyphens to underscores (e.g., "$API_KEY")
|
|
104
|
+
names.add(`$${inner.replace(/-/g, '_')}`);
|
|
105
|
+
}
|
|
106
|
+
return Array.from(names);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Determines if a command should be validated against 1Password secrets.
|
|
110
|
+
*
|
|
111
|
+
* Uses efficient regex matching with cached compiled patterns.
|
|
112
|
+
* Supports both default patterns (env var references like $VAR, ${VAR})
|
|
113
|
+
* and custom patterns from configuration.
|
|
114
|
+
*
|
|
115
|
+
* @param command - The shell command to check
|
|
116
|
+
* @param patterns - Optional custom patterns. Defaults to env var reference patterns
|
|
117
|
+
* @returns true if the command matches any of the patterns
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* shouldValidateCommand('echo $SECRET') // true - contains $VAR pattern
|
|
121
|
+
* shouldValidateCommand('ls -la') // false - no env var reference
|
|
122
|
+
* shouldValidateCommand('npm install', ['npm']) // true - custom pattern matches
|
|
123
|
+
*/
|
|
124
|
+
export function shouldValidateCommand(command, patterns) {
|
|
125
|
+
// Handle empty command
|
|
126
|
+
if (!command || command.trim() === '') {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
// Use provided patterns or defaults
|
|
130
|
+
const activePatterns = patterns && patterns.length > 0 ? patterns : ['$', '${'];
|
|
131
|
+
// Collect all patterns to check (including alternatives)
|
|
132
|
+
const patternsToCheck = new Set();
|
|
133
|
+
for (const pattern of activePatterns) {
|
|
134
|
+
// Add the pattern itself
|
|
135
|
+
patternsToCheck.add(pattern);
|
|
136
|
+
// Add alternative variations following index.ts pattern generation
|
|
137
|
+
const alternatives = getAlternativePatternNames(pattern);
|
|
138
|
+
for (const alt of alternatives) {
|
|
139
|
+
patternsToCheck.add(alt);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Compile and cache all patterns
|
|
143
|
+
const compiledPatterns = [];
|
|
144
|
+
for (const p of patternsToCheck) {
|
|
145
|
+
compiledPatterns.push(compilePattern(p));
|
|
146
|
+
}
|
|
147
|
+
// Reset lastIndex on all regexes before testing
|
|
148
|
+
for (const regex of compiledPatterns) {
|
|
149
|
+
regex.lastIndex = 0;
|
|
150
|
+
}
|
|
151
|
+
// Test command against all patterns
|
|
152
|
+
for (const regex of compiledPatterns) {
|
|
153
|
+
if (regex.test(command)) {
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Clears the pattern cache. Useful for testing or when patterns change.
|
|
161
|
+
*/
|
|
162
|
+
export function clearPatternCache() {
|
|
163
|
+
patternCache.clear();
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Gets the current cache size. Useful for debugging.
|
|
167
|
+
*/
|
|
168
|
+
export function getPatternCacheSize() {
|
|
169
|
+
return patternCache.size;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=command-matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-matcher.js","sourceRoot":"","sources":["../../src/command-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE/C;;;GAGG;AACH,MAAM,wBAAwB,GAAG;IAC/B,2BAA2B,EAAG,OAAO;IACrC,cAAc,EAAkB,SAAS;CAC1C,CAAC;AAEF;;;GAGG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAa,CAAC;IAElB,4CAA4C;IAC5C,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,uCAAuC;QACvC,KAAK,GAAG,2BAA2B,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5B,eAAe;QACf,KAAK,GAAG,cAAc,CAAC;IACzB,CAAC;SAAM,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7D,iEAAiE;QACjE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;SAAM,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,wCAAwC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,oCAAoC;QACpC,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,0BAA0B,CAAC,OAAe;IACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,mBAAmB;IACnB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEnB,+BAA+B;IAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;QAEtD,mCAAmC;QACnC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEnB,uCAAuC;QACvC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAExC,uCAAuC;QACvC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAExC,mDAAmD;QACnD,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAE7C,8CAA8C;QAC9C,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;QAE3C,8BAA8B;QAC9B,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEnB,qCAAqC;QACrC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAErC,qCAAqC;QACrC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAErC,iDAAiD;QACjD,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAE1C,4CAA4C;QAC5C,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,QAAmB;IACxE,uBAAuB;IACvB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IACpC,MAAM,cAAc,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEhF,yDAAyD;IACzD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,yBAAyB;QACzB,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE7B,mEAAmE;QACnE,MAAM,YAAY,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACzD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,gDAAgD;IAChD,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,oCAAoC;IACpC,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,YAAY,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC,IAAI,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ValidationConfig {
|
|
2
|
+
validationEnabled: boolean;
|
|
3
|
+
blockOnFailure: boolean;
|
|
4
|
+
validationTimeout: number;
|
|
5
|
+
commandPatterns: string[];
|
|
6
|
+
}
|
|
7
|
+
export interface AgentHookConfig {
|
|
8
|
+
validationEnabled: boolean;
|
|
9
|
+
blockOnFailure: boolean;
|
|
10
|
+
validationTimeout: number;
|
|
11
|
+
commandPatterns: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare function parseConfig(): AgentHookConfig;
|
|
14
|
+
declare const config: AgentHookConfig;
|
|
15
|
+
export default config;
|
|
16
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AASD,wBAAgB,WAAW,IAAI,eAAe,CA2C7C;AAED,QAAA,MAAM,MAAM,iBAAgB,CAAC;AAC7B,eAAe,MAAM,CAAC"}
|