secretless-ai 0.15.1 → 0.16.2
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 +12 -0
- package/dist/backends/factory.d.ts +35 -0
- package/dist/backends/factory.d.ts.map +1 -1
- package/dist/backends/factory.js +123 -10
- package/dist/backends/factory.js.map +1 -1
- package/dist/backends/index.d.ts +1 -1
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +4 -1
- package/dist/backends/index.js.map +1 -1
- package/dist/cli.js +84 -67
- package/dist/cli.js.map +1 -1
- package/dist/commands/backend.d.ts +3 -3
- package/dist/commands/backend.d.ts.map +1 -1
- package/dist/commands/backend.js +59 -47
- package/dist/commands/backend.js.map +1 -1
- package/dist/commands/broker.d.ts +1 -1
- package/dist/commands/broker.d.ts.map +1 -1
- package/dist/commands/broker.js +29 -30
- package/dist/commands/broker.js.map +1 -1
- package/dist/commands/core.d.ts +5 -5
- package/dist/commands/core.d.ts.map +1 -1
- package/dist/commands/core.js +13 -10
- package/dist/commands/core.js.map +1 -1
- package/dist/commands/env-run.d.ts +4 -4
- package/dist/commands/env-run.d.ts.map +1 -1
- package/dist/commands/env-run.js +49 -46
- package/dist/commands/env-run.js.map +1 -1
- package/dist/commands/git.d.ts +2 -2
- package/dist/commands/git.d.ts.map +1 -1
- package/dist/commands/git.js +10 -14
- package/dist/commands/git.js.map +1 -1
- package/dist/commands/mcp.d.ts +3 -3
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +14 -9
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/rules.d.ts +1 -1
- package/dist/commands/rules.d.ts.map +1 -1
- package/dist/commands/rules.js +9 -9
- package/dist/commands/rules.js.map +1 -1
- package/dist/commands/scope.d.ts +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +99 -93
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/secrets.d.ts +1 -1
- package/dist/commands/secrets.d.ts.map +1 -1
- package/dist/commands/secrets.js +94 -85
- package/dist/commands/secrets.js.map +1 -1
- package/dist/commands/session.d.ts +2 -2
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +17 -18
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/transcript.d.ts +4 -4
- package/dist/commands/transcript.d.ts.map +1 -1
- package/dist/commands/transcript.js +30 -24
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/vault.d.ts +1 -1
- package/dist/commands/vault.d.ts.map +1 -1
- package/dist/commands/vault.js +116 -76
- package/dist/commands/vault.js.map +1 -1
- package/dist/env.d.ts +1 -1
- package/dist/env.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -157,6 +157,18 @@ opena2a secrets init # Initialize secretless protection
|
|
|
157
157
|
npm run build && npm test # 809 tests
|
|
158
158
|
```
|
|
159
159
|
|
|
160
|
+
## Telemetry
|
|
161
|
+
|
|
162
|
+
Secretless sends anonymous tier-1 usage data to the OpenA2A Registry: tool name (`secretless-ai`), version, command name (`scan`, `protect`, etc.), success, duration, platform, Node major version, and a stable per-machine `install_id`. **No content is collected** — no scanned secrets, no file paths, no env-var values, no rule contents, no IPs.
|
|
163
|
+
|
|
164
|
+
- **Policy:** [opena2a.org/telemetry](https://opena2a.org/telemetry).
|
|
165
|
+
- **Status:** `secretless-ai telemetry status`.
|
|
166
|
+
- **Disable per-invocation:** `OPENA2A_TELEMETRY=off secretless-ai <anything>`.
|
|
167
|
+
- **Disable persistently:** `secretless-ai telemetry off`.
|
|
168
|
+
- **Audit every payload:** `OPENA2A_TELEMETRY_DEBUG=print secretless-ai <anything>` echoes each event to stderr in JSON.
|
|
169
|
+
|
|
170
|
+
Fire-and-forget with a 2-second timeout — telemetry never blocks Secretless.
|
|
171
|
+
|
|
160
172
|
## License
|
|
161
173
|
|
|
162
174
|
Apache-2.0
|
|
@@ -19,9 +19,39 @@ import type { SelectableBackendType } from './config';
|
|
|
19
19
|
* @param strict - If true, throw instead of falling back to local. Default: false.
|
|
20
20
|
*/
|
|
21
21
|
export declare function createBackend(type: SelectableBackendType, config?: Record<string, unknown>, strict?: boolean): WritableSecretBackend;
|
|
22
|
+
/**
|
|
23
|
+
* Cheap, prompt-free signal that the OS keychain is likely usable.
|
|
24
|
+
*
|
|
25
|
+
* Safe for read-only commands (`backend` with no subcommand, `status`,
|
|
26
|
+
* `--version`) and for the local-to-keychain upgrade in `createBackend`.
|
|
27
|
+
* NEVER shells out to a binary that could prompt for biometrics — on macOS
|
|
28
|
+
* even `security default-keychain` can trigger Touch ID under certain configs.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isKeychainLikely(): {
|
|
31
|
+
available: boolean;
|
|
32
|
+
platform: string;
|
|
33
|
+
message: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Cheap, prompt-free signal that the 1Password CLI is likely usable.
|
|
37
|
+
*
|
|
38
|
+
* Checks PATH for the `op` binary without invoking it. Safe for read-only
|
|
39
|
+
* commands. The active probe (`op account get`) triggers the
|
|
40
|
+
* "1Password Access Requested" dialog on Macs with the desktop app — only
|
|
41
|
+
* call `isOnePasswordAvailable()` from genuine pre-flight paths.
|
|
42
|
+
*/
|
|
43
|
+
export declare function isOnePasswordLikely(): {
|
|
44
|
+
available: boolean;
|
|
45
|
+
message: string;
|
|
46
|
+
};
|
|
22
47
|
/**
|
|
23
48
|
* Check if the OS keychain is available on the current platform.
|
|
24
49
|
* Returns a description of the keychain status.
|
|
50
|
+
*
|
|
51
|
+
* Note: on macOS this shells out to `security default-keychain`, which can
|
|
52
|
+
* trigger Touch ID under some configurations. Prefer `isKeychainLikely()`
|
|
53
|
+
* for read-only display paths; reserve this for genuine pre-flight checks
|
|
54
|
+
* (e.g. `backend set keychain`).
|
|
25
55
|
*/
|
|
26
56
|
export declare function isKeychainAvailable(): {
|
|
27
57
|
available: boolean;
|
|
@@ -31,6 +61,11 @@ export declare function isKeychainAvailable(): {
|
|
|
31
61
|
/**
|
|
32
62
|
* Check if the 1Password CLI (`op`) is available and authenticated.
|
|
33
63
|
* Returns availability status and an actionable message.
|
|
64
|
+
*
|
|
65
|
+
* Note: this calls `op account get`, which triggers a "1Password Access
|
|
66
|
+
* Requested" dialog on Macs with the 1Password desktop app integration
|
|
67
|
+
* enabled. Reserve for genuine pre-flight checks (e.g. `backend set
|
|
68
|
+
* 1password`); use `isOnePasswordLikely()` for read-only display paths.
|
|
34
69
|
*/
|
|
35
70
|
export declare function isOnePasswordAvailable(): {
|
|
36
71
|
available: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/backends/factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/backends/factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,qBAAqB,EAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,OAAO,GACf,qBAAqB,CA8EvB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAuB5F;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAQ7E;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA8B/F;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAsBhF"}
|
package/dist/backends/factory.js
CHANGED
|
@@ -6,10 +6,48 @@
|
|
|
6
6
|
* Dispatches '1password' to the OnePasswordBackend (requires `op` CLI).
|
|
7
7
|
* Falls back to 'local' on unsupported platforms with a console message.
|
|
8
8
|
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
9
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
43
|
exports.createBackend = createBackend;
|
|
44
|
+
exports.isKeychainLikely = isKeychainLikely;
|
|
45
|
+
exports.isOnePasswordLikely = isOnePasswordLikely;
|
|
11
46
|
exports.isKeychainAvailable = isKeychainAvailable;
|
|
12
47
|
exports.isOnePasswordAvailable = isOnePasswordAvailable;
|
|
48
|
+
const fs = __importStar(require("fs"));
|
|
49
|
+
const path = __importStar(require("path"));
|
|
50
|
+
const child_process_1 = require("child_process");
|
|
13
51
|
const local_1 = require("./local");
|
|
14
52
|
const keychain_macos_1 = require("./keychain-macos");
|
|
15
53
|
const keychain_linux_1 = require("./keychain-linux");
|
|
@@ -31,9 +69,12 @@ const config_1 = require("./config");
|
|
|
31
69
|
*/
|
|
32
70
|
function createBackend(type, config, strict) {
|
|
33
71
|
let backend;
|
|
34
|
-
// When callers request 'local', prefer keychain if the platform supports it
|
|
72
|
+
// When callers request 'local', prefer keychain if the platform supports it.
|
|
73
|
+
// Use the prompt-free Likely check here — this path runs from MCP wrappers,
|
|
74
|
+
// brokers, and resolvers that must not trigger Touch ID. Real auth happens
|
|
75
|
+
// lazily on the first secret read/write.
|
|
35
76
|
if (type === 'local' && !config?.key) {
|
|
36
|
-
const keychainStatus =
|
|
77
|
+
const keychainStatus = isKeychainLikely();
|
|
37
78
|
if (keychainStatus.available) {
|
|
38
79
|
try {
|
|
39
80
|
backend = createKeychainBackend(config);
|
|
@@ -102,16 +143,86 @@ function createBackend(type, config, strict) {
|
|
|
102
143
|
}
|
|
103
144
|
return backend;
|
|
104
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Cheap, prompt-free signal that the OS keychain is likely usable.
|
|
148
|
+
*
|
|
149
|
+
* Safe for read-only commands (`backend` with no subcommand, `status`,
|
|
150
|
+
* `--version`) and for the local-to-keychain upgrade in `createBackend`.
|
|
151
|
+
* NEVER shells out to a binary that could prompt for biometrics — on macOS
|
|
152
|
+
* even `security default-keychain` can trigger Touch ID under certain configs.
|
|
153
|
+
*/
|
|
154
|
+
function isKeychainLikely() {
|
|
155
|
+
const platform = process.platform;
|
|
156
|
+
if (platform === 'darwin') {
|
|
157
|
+
return { available: true, platform: 'macOS', message: 'macOS Keychain assumed available (not probed)' };
|
|
158
|
+
}
|
|
159
|
+
if (platform === 'linux') {
|
|
160
|
+
if (binaryOnPath('secret-tool')) {
|
|
161
|
+
return { available: true, platform: 'Linux', message: 'secret-tool found on PATH (not probed)' };
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
available: false,
|
|
165
|
+
platform: 'Linux',
|
|
166
|
+
message: 'secret-tool not found. Install libsecret-tools (Debian/Ubuntu) or libsecret (Fedora/RHEL).',
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
available: false,
|
|
171
|
+
platform: platform,
|
|
172
|
+
message: `OS keychain is not supported on ${platform}. Using local encrypted backend.`,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Cheap, prompt-free signal that the 1Password CLI is likely usable.
|
|
177
|
+
*
|
|
178
|
+
* Checks PATH for the `op` binary without invoking it. Safe for read-only
|
|
179
|
+
* commands. The active probe (`op account get`) triggers the
|
|
180
|
+
* "1Password Access Requested" dialog on Macs with the desktop app — only
|
|
181
|
+
* call `isOnePasswordAvailable()` from genuine pre-flight paths.
|
|
182
|
+
*/
|
|
183
|
+
function isOnePasswordLikely() {
|
|
184
|
+
if (binaryOnPath('op')) {
|
|
185
|
+
return { available: true, message: '1Password CLI (op) found on PATH (auth not probed)' };
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
available: false,
|
|
189
|
+
message: '1Password CLI (op) not found. Install from https://developer.1password.com/docs/cli',
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
function binaryOnPath(name) {
|
|
193
|
+
const PATH = process.env.PATH || '';
|
|
194
|
+
const sep = process.platform === 'win32' ? ';' : ':';
|
|
195
|
+
const exts = process.platform === 'win32' ? (process.env.PATHEXT || '.EXE').split(';') : [''];
|
|
196
|
+
for (const dir of PATH.split(sep)) {
|
|
197
|
+
if (!dir)
|
|
198
|
+
continue;
|
|
199
|
+
for (const ext of exts) {
|
|
200
|
+
try {
|
|
201
|
+
const candidate = path.join(dir, name + ext);
|
|
202
|
+
fs.accessSync(candidate, fs.constants.X_OK);
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
// not here, keep looking
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
105
212
|
/**
|
|
106
213
|
* Check if the OS keychain is available on the current platform.
|
|
107
214
|
* Returns a description of the keychain status.
|
|
215
|
+
*
|
|
216
|
+
* Note: on macOS this shells out to `security default-keychain`, which can
|
|
217
|
+
* trigger Touch ID under some configurations. Prefer `isKeychainLikely()`
|
|
218
|
+
* for read-only display paths; reserve this for genuine pre-flight checks
|
|
219
|
+
* (e.g. `backend set keychain`).
|
|
108
220
|
*/
|
|
109
221
|
function isKeychainAvailable() {
|
|
110
222
|
const platform = process.platform;
|
|
111
223
|
if (platform === 'darwin') {
|
|
112
224
|
try {
|
|
113
|
-
|
|
114
|
-
execFileSync('security', ['default-keychain'], { stdio: 'pipe' });
|
|
225
|
+
(0, child_process_1.execFileSync)('security', ['default-keychain'], { stdio: 'pipe' });
|
|
115
226
|
return { available: true, platform: 'macOS', message: 'macOS Keychain is available' };
|
|
116
227
|
}
|
|
117
228
|
catch {
|
|
@@ -120,8 +231,7 @@ function isKeychainAvailable() {
|
|
|
120
231
|
}
|
|
121
232
|
if (platform === 'linux') {
|
|
122
233
|
try {
|
|
123
|
-
|
|
124
|
-
execFileSync('which', ['secret-tool'], { stdio: 'pipe' });
|
|
234
|
+
(0, child_process_1.execFileSync)('which', ['secret-tool'], { stdio: 'pipe' });
|
|
125
235
|
return { available: true, platform: 'Linux', message: 'secret-tool is available (Linux Secret Service)' };
|
|
126
236
|
}
|
|
127
237
|
catch {
|
|
@@ -141,11 +251,15 @@ function isKeychainAvailable() {
|
|
|
141
251
|
/**
|
|
142
252
|
* Check if the 1Password CLI (`op`) is available and authenticated.
|
|
143
253
|
* Returns availability status and an actionable message.
|
|
254
|
+
*
|
|
255
|
+
* Note: this calls `op account get`, which triggers a "1Password Access
|
|
256
|
+
* Requested" dialog on Macs with the 1Password desktop app integration
|
|
257
|
+
* enabled. Reserve for genuine pre-flight checks (e.g. `backend set
|
|
258
|
+
* 1password`); use `isOnePasswordLikely()` for read-only display paths.
|
|
144
259
|
*/
|
|
145
260
|
function isOnePasswordAvailable() {
|
|
146
261
|
try {
|
|
147
|
-
|
|
148
|
-
execFileSync('op', ['--version'], { stdio: 'pipe' });
|
|
262
|
+
(0, child_process_1.execFileSync)('op', ['--version'], { stdio: 'pipe' });
|
|
149
263
|
}
|
|
150
264
|
catch {
|
|
151
265
|
return {
|
|
@@ -154,8 +268,7 @@ function isOnePasswordAvailable() {
|
|
|
154
268
|
};
|
|
155
269
|
}
|
|
156
270
|
try {
|
|
157
|
-
|
|
158
|
-
execFileSync('op', ['account', 'get', '--format', 'json'], { stdio: 'pipe' });
|
|
271
|
+
(0, child_process_1.execFileSync)('op', ['account', 'get', '--format', 'json'], { stdio: 'pipe' });
|
|
159
272
|
return {
|
|
160
273
|
available: true,
|
|
161
274
|
message: '1Password CLI installed and authenticated',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/backends/factory.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/backends/factory.ts"],"names":[],"mappings":"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"}
|
package/dist/backends/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { MacOSKeychainBackend } from './keychain-macos';
|
|
|
4
4
|
export { LinuxKeychainBackend } from './keychain-linux';
|
|
5
5
|
export { VaultBackend, type VaultBackendConfig } from './vault';
|
|
6
6
|
export { GCPSecretManagerBackend, isGCPAvailable, type GCPSecretManagerConfig } from './gcp-sm';
|
|
7
|
-
export { createBackend, isKeychainAvailable } from './factory';
|
|
7
|
+
export { createBackend, isKeychainAvailable, isKeychainLikely, isOnePasswordAvailable, isOnePasswordLikely } from './factory';
|
|
8
8
|
export { readBackendConfig, writeBackendConfig, resolveBackendType, readCacheTtl, writeCacheTtl, parseDuration, formatTtl, DEFAULT_CACHE_TTL_SECONDS, type SelectableBackendType } from './config';
|
|
9
9
|
export { CachedBackend, clearCacheFile } from './cache';
|
|
10
10
|
export { migrateSecrets, type MigrateOptions, type MigrateResult } from './migrate';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACjI,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACjI,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC9H,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,yBAAyB,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACnM,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/backends/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.migrateSecrets = exports.clearCacheFile = exports.CachedBackend = exports.DEFAULT_CACHE_TTL_SECONDS = exports.formatTtl = exports.parseDuration = exports.writeCacheTtl = exports.readCacheTtl = exports.resolveBackendType = exports.writeBackendConfig = exports.readBackendConfig = exports.isKeychainAvailable = exports.createBackend = exports.isGCPAvailable = exports.GCPSecretManagerBackend = exports.VaultBackend = exports.LinuxKeychainBackend = exports.MacOSKeychainBackend = exports.LocalBackend = void 0;
|
|
3
|
+
exports.migrateSecrets = exports.clearCacheFile = exports.CachedBackend = exports.DEFAULT_CACHE_TTL_SECONDS = exports.formatTtl = exports.parseDuration = exports.writeCacheTtl = exports.readCacheTtl = exports.resolveBackendType = exports.writeBackendConfig = exports.readBackendConfig = exports.isOnePasswordLikely = exports.isOnePasswordAvailable = exports.isKeychainLikely = exports.isKeychainAvailable = exports.createBackend = exports.isGCPAvailable = exports.GCPSecretManagerBackend = exports.VaultBackend = exports.LinuxKeychainBackend = exports.MacOSKeychainBackend = exports.LocalBackend = void 0;
|
|
4
4
|
var local_1 = require("./local");
|
|
5
5
|
Object.defineProperty(exports, "LocalBackend", { enumerable: true, get: function () { return local_1.LocalBackend; } });
|
|
6
6
|
var keychain_macos_1 = require("./keychain-macos");
|
|
@@ -15,6 +15,9 @@ Object.defineProperty(exports, "isGCPAvailable", { enumerable: true, get: functi
|
|
|
15
15
|
var factory_1 = require("./factory");
|
|
16
16
|
Object.defineProperty(exports, "createBackend", { enumerable: true, get: function () { return factory_1.createBackend; } });
|
|
17
17
|
Object.defineProperty(exports, "isKeychainAvailable", { enumerable: true, get: function () { return factory_1.isKeychainAvailable; } });
|
|
18
|
+
Object.defineProperty(exports, "isKeychainLikely", { enumerable: true, get: function () { return factory_1.isKeychainLikely; } });
|
|
19
|
+
Object.defineProperty(exports, "isOnePasswordAvailable", { enumerable: true, get: function () { return factory_1.isOnePasswordAvailable; } });
|
|
20
|
+
Object.defineProperty(exports, "isOnePasswordLikely", { enumerable: true, get: function () { return factory_1.isOnePasswordLikely; } });
|
|
18
21
|
var config_1 = require("./config");
|
|
19
22
|
Object.defineProperty(exports, "readBackendConfig", { enumerable: true, get: function () { return config_1.readBackendConfig; } });
|
|
20
23
|
Object.defineProperty(exports, "writeBackendConfig", { enumerable: true, get: function () { return config_1.writeBackendConfig; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":";;;AACA,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,mDAAwD;AAA/C,sHAAA,oBAAoB,OAAA;AAC7B,mDAAwD;AAA/C,sHAAA,oBAAoB,OAAA;AAC7B,iCAAgE;AAAvD,qGAAA,YAAY,OAAA;AACrB,mCAAgG;AAAvF,iHAAA,uBAAuB,OAAA;AAAE,wGAAA,cAAc,OAAA;AAChD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":";;;AACA,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,mDAAwD;AAA/C,sHAAA,oBAAoB,OAAA;AAC7B,mDAAwD;AAA/C,sHAAA,oBAAoB,OAAA;AAC7B,iCAAgE;AAAvD,qGAAA,YAAY,OAAA;AACrB,mCAAgG;AAAvF,iHAAA,uBAAuB,OAAA;AAAE,wGAAA,cAAc,OAAA;AAChD,qCAA8H;AAArH,wGAAA,aAAa,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,iHAAA,sBAAsB,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAC1G,mCAAmM;AAA1L,2GAAA,iBAAiB,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,mHAAA,yBAAyB,OAAA;AACpJ,iCAAwD;AAA/C,sGAAA,aAAa,OAAA;AAAE,uGAAA,cAAc,OAAA;AACtC,qCAAoF;AAA3E,yGAAA,cAAc,OAAA"}
|
package/dist/cli.js
CHANGED
|
@@ -40,6 +40,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
41
|
const path = __importStar(require("path"));
|
|
42
42
|
const utils_1 = require("./commands/utils");
|
|
43
|
+
// @opena2a/telemetry and @opena2a/cli-ui are pure ESM; this CLI is CommonJS,
|
|
44
|
+
// so they're loaded via dynamic import() inside the async main().
|
|
43
45
|
const core_1 = require("./commands/core");
|
|
44
46
|
const transcript_1 = require("./commands/transcript");
|
|
45
47
|
const secrets_1 = require("./commands/secrets");
|
|
@@ -53,9 +55,20 @@ const vault_1 = require("./commands/vault");
|
|
|
53
55
|
const scope_1 = require("./commands/scope");
|
|
54
56
|
const session_1 = require("./commands/session");
|
|
55
57
|
const help_1 = require("./commands/help");
|
|
56
|
-
|
|
58
|
+
const TOOL = 'secretless-ai';
|
|
59
|
+
// Subcommands we don't track: pure-help / pure-config calls don't represent
|
|
60
|
+
// the user actually using the tool, and tracking 'telemetry' itself creates
|
|
61
|
+
// confusing self-referential events.
|
|
62
|
+
const NON_TRACKED = new Set(['telemetry', '--version', '-v', '--help', '-h']);
|
|
63
|
+
async function main() {
|
|
57
64
|
const args = process.argv.slice(2);
|
|
58
65
|
const command = args[0];
|
|
66
|
+
// Tier-1 anonymous usage telemetry — default ON; opt-out via OPENA2A_TELEMETRY=off
|
|
67
|
+
// or `secretless-ai telemetry off`. See README §Telemetry. Disclosure surfaces:
|
|
68
|
+
// README, --version line, telemetry subcommand, opena2a.org/telemetry.
|
|
69
|
+
const tele = await import('@opena2a/telemetry');
|
|
70
|
+
const { versionLine, runTelemetryCommand } = await import('@opena2a/cli-ui');
|
|
71
|
+
await tele.init({ tool: TOOL, version: utils_1.VERSION });
|
|
59
72
|
// Intercept `--help` / `-h` anywhere in the args BEFORE dispatching. Subcommand
|
|
60
73
|
// runners do not parse per-subcommand help, so without this guard `scan --help`
|
|
61
74
|
// would actually run the scanner, `init --help` would create a literal `--help/`
|
|
@@ -63,128 +76,132 @@ function main() {
|
|
|
63
76
|
// help instead — a safe no-op. Regression: release-test 2026-04-14.
|
|
64
77
|
if (command && (args.includes('--help') || args.includes('-h'))) {
|
|
65
78
|
(0, help_1.printHelp)();
|
|
66
|
-
return;
|
|
79
|
+
return 0;
|
|
67
80
|
}
|
|
81
|
+
// --version: cli-ui versionLine helper appends the standard telemetry line.
|
|
82
|
+
if (command === '--version' || command === '-v') {
|
|
83
|
+
console.log(versionLine({ tool: TOOL, version: utils_1.VERSION, telemetry: tele.status() }));
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
86
|
+
// telemetry subcommand
|
|
87
|
+
if (command === 'telemetry') {
|
|
88
|
+
console.log(runTelemetryCommand(args[1], {
|
|
89
|
+
tool: TOOL,
|
|
90
|
+
getStatus: tele.status,
|
|
91
|
+
setOptOut: tele.setOptOut,
|
|
92
|
+
}));
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
const startedAt = Date.now();
|
|
96
|
+
let exitCode = 0;
|
|
97
|
+
try {
|
|
98
|
+
exitCode = await dispatch(args, command);
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
exitCode = 1;
|
|
102
|
+
if (command)
|
|
103
|
+
tele.error(command, err?.code || err?.name || 'UNKNOWN');
|
|
104
|
+
throw err;
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
if (command && !NON_TRACKED.has(command)) {
|
|
108
|
+
await tele.track(command, { success: exitCode === 0, durationMs: Date.now() - startedAt });
|
|
109
|
+
}
|
|
110
|
+
await tele.flush();
|
|
111
|
+
}
|
|
112
|
+
return exitCode;
|
|
113
|
+
}
|
|
114
|
+
async function dispatch(args, command) {
|
|
68
115
|
switch (command) {
|
|
69
116
|
case 'init': {
|
|
70
117
|
const dirArg = args[1];
|
|
71
118
|
const projectDir = dirArg ? path.resolve(dirArg) : process.cwd();
|
|
72
|
-
(0, core_1.runInit)(projectDir);
|
|
73
|
-
break;
|
|
119
|
+
return (0, core_1.runInit)(projectDir);
|
|
74
120
|
}
|
|
75
121
|
case 'scan': {
|
|
76
122
|
if (args.includes('--history')) {
|
|
77
|
-
(0, transcript_1.runScanHistory)();
|
|
78
|
-
break;
|
|
123
|
+
return (0, transcript_1.runScanHistory)();
|
|
79
124
|
}
|
|
80
125
|
const includeTests = args.includes('--include-tests');
|
|
81
126
|
const explain = args.includes('--explain');
|
|
82
127
|
const positionalArgs = args.slice(1).filter(a => !a.startsWith('--'));
|
|
83
128
|
const dirArg = positionalArgs[0];
|
|
84
129
|
const projectDir = dirArg ? path.resolve(dirArg) : process.cwd();
|
|
85
|
-
(0, core_1.runScan)(projectDir, { includeTests, explain });
|
|
86
|
-
break;
|
|
130
|
+
return (0, core_1.runScan)(projectDir, { includeTests, explain });
|
|
87
131
|
}
|
|
88
132
|
case 'status': {
|
|
89
133
|
const dirArg = args[1];
|
|
90
134
|
const projectDir = dirArg ? path.resolve(dirArg) : process.cwd();
|
|
91
|
-
(0, core_1.runStatus)(projectDir);
|
|
92
|
-
break;
|
|
135
|
+
return (0, core_1.runStatus)(projectDir);
|
|
93
136
|
}
|
|
94
137
|
case 'verify': {
|
|
95
138
|
const showAll = args.includes('--all');
|
|
96
139
|
const positional = args.slice(1).filter(a => a !== '--all');
|
|
97
140
|
const dirArg = positional[0];
|
|
98
141
|
const projectDir = dirArg ? path.resolve(dirArg) : process.cwd();
|
|
99
|
-
(0, core_1.runVerify)(projectDir, showAll);
|
|
100
|
-
break;
|
|
142
|
+
return (0, core_1.runVerify)(projectDir, showAll);
|
|
101
143
|
}
|
|
102
144
|
case 'doctor':
|
|
103
|
-
(0, core_1.runDoctor)(args.includes('--fix'));
|
|
104
|
-
break;
|
|
145
|
+
return (0, core_1.runDoctor)(args.includes('--fix'));
|
|
105
146
|
case 'clean':
|
|
106
|
-
(0, transcript_1.runClean)(args.slice(1));
|
|
107
|
-
break;
|
|
147
|
+
return (0, transcript_1.runClean)(args.slice(1));
|
|
108
148
|
case 'watch':
|
|
109
|
-
(0, transcript_1.runWatch)(args.slice(1));
|
|
110
|
-
break;
|
|
149
|
+
return (0, transcript_1.runWatch)(args.slice(1));
|
|
111
150
|
case 'rules':
|
|
112
|
-
(0, rules_1.runRules)(args.slice(1));
|
|
113
|
-
break;
|
|
151
|
+
return (0, rules_1.runRules)(args.slice(1));
|
|
114
152
|
case 'protect-mcp':
|
|
115
|
-
(0, mcp_1.runProtectMcp)(args.slice(1));
|
|
116
|
-
break;
|
|
153
|
+
return (0, mcp_1.runProtectMcp)(args.slice(1));
|
|
117
154
|
case 'mcp-status':
|
|
118
|
-
(0, mcp_1.runMcpStatus)();
|
|
119
|
-
break;
|
|
155
|
+
return (0, mcp_1.runMcpStatus)();
|
|
120
156
|
case 'mcp-unprotect':
|
|
121
|
-
(0, mcp_1.runMcpUnprotect)();
|
|
122
|
-
break;
|
|
157
|
+
return (0, mcp_1.runMcpUnprotect)();
|
|
123
158
|
case 'backend':
|
|
124
|
-
(0, backend_1.runBackend)(args.slice(1));
|
|
125
|
-
break;
|
|
159
|
+
return (0, backend_1.runBackend)(args.slice(1));
|
|
126
160
|
case 'migrate':
|
|
127
|
-
(0, backend_1.runMigrate)(args.slice(1));
|
|
128
|
-
break;
|
|
161
|
+
return (0, backend_1.runMigrate)(args.slice(1));
|
|
129
162
|
case 'secret':
|
|
130
|
-
(0, secrets_1.runSecret)(args.slice(1));
|
|
131
|
-
break;
|
|
163
|
+
return (0, secrets_1.runSecret)(args.slice(1));
|
|
132
164
|
case 'run':
|
|
133
|
-
(0, env_run_1.runRun)(args.slice(1));
|
|
134
|
-
break;
|
|
165
|
+
return (0, env_run_1.runRun)(args.slice(1));
|
|
135
166
|
case 'env':
|
|
136
|
-
(0, env_run_1.runEnv)(args.slice(1));
|
|
137
|
-
break;
|
|
167
|
+
return (0, env_run_1.runEnv)(args.slice(1));
|
|
138
168
|
case 'import':
|
|
139
|
-
(0, env_run_1.runImport)(args.slice(1));
|
|
140
|
-
break;
|
|
169
|
+
return (0, env_run_1.runImport)(args.slice(1));
|
|
141
170
|
case 'setup':
|
|
142
|
-
(0, env_run_1.runSetupCommand)(args.slice(1));
|
|
143
|
-
break;
|
|
171
|
+
return (0, env_run_1.runSetupCommand)(args.slice(1));
|
|
144
172
|
case 'hook':
|
|
145
|
-
(0, git_1.runHook)(args.slice(1));
|
|
146
|
-
break;
|
|
173
|
+
return (0, git_1.runHook)(args.slice(1));
|
|
147
174
|
case 'scan-staged':
|
|
148
|
-
(0, git_1.runScanStaged)();
|
|
149
|
-
break;
|
|
175
|
+
return (0, git_1.runScanStaged)();
|
|
150
176
|
case 'cache':
|
|
151
|
-
(0, backend_1.runCache)(args.slice(1));
|
|
152
|
-
break;
|
|
177
|
+
return (0, backend_1.runCache)(args.slice(1));
|
|
153
178
|
case 'broker':
|
|
154
|
-
(0, broker_1.runBroker)(args.slice(1));
|
|
155
|
-
break;
|
|
179
|
+
return (0, broker_1.runBroker)(args.slice(1));
|
|
156
180
|
case 'vault':
|
|
157
|
-
(0, vault_1.runVault)(args.slice(1));
|
|
158
|
-
break;
|
|
181
|
+
return (0, vault_1.runVault)(args.slice(1));
|
|
159
182
|
case 'scope':
|
|
160
|
-
(0, scope_1.runScope)(args.slice(1));
|
|
161
|
-
break;
|
|
183
|
+
return (0, scope_1.runScope)(args.slice(1));
|
|
162
184
|
case 'scan-history':
|
|
163
|
-
(0, transcript_1.runScanHistory)();
|
|
164
|
-
break;
|
|
185
|
+
return (0, transcript_1.runScanHistory)();
|
|
165
186
|
case 'clean-history':
|
|
166
|
-
(0, transcript_1.runCleanHistory)(args.includes('--dry-run'));
|
|
167
|
-
break;
|
|
187
|
+
return (0, transcript_1.runCleanHistory)(args.includes('--dry-run'));
|
|
168
188
|
case 'warm':
|
|
169
|
-
(0, session_1.runWarm)(args.slice(1));
|
|
170
|
-
break;
|
|
189
|
+
return (0, session_1.runWarm)(args.slice(1));
|
|
171
190
|
case 'install':
|
|
172
|
-
(0, session_1.runInstall)(args.slice(1));
|
|
173
|
-
break;
|
|
174
|
-
case '--version':
|
|
175
|
-
case '-v':
|
|
176
|
-
console.log(`secretless-ai ${utils_1.VERSION} \u2014 credential protection for AI coding tools`);
|
|
177
|
-
break;
|
|
191
|
+
return (0, session_1.runInstall)(args.slice(1));
|
|
178
192
|
case '--help':
|
|
179
193
|
case '-h':
|
|
180
194
|
case undefined:
|
|
181
195
|
(0, help_1.printHelp)();
|
|
182
|
-
|
|
196
|
+
return 0;
|
|
183
197
|
default:
|
|
184
198
|
console.error(`Unknown command: ${command}`);
|
|
185
199
|
(0, help_1.printHelp)();
|
|
186
|
-
|
|
200
|
+
return 1;
|
|
187
201
|
}
|
|
188
202
|
}
|
|
189
|
-
main()
|
|
203
|
+
main().then((code) => process.exit(code), (err) => {
|
|
204
|
+
console.error(err);
|
|
205
|
+
process.exit(1);
|
|
206
|
+
});
|
|
190
207
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAEA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function runBackend(args: string[]):
|
|
2
|
-
export declare function runMigrate(args: string[]):
|
|
3
|
-
export declare function runCache(args: string[]):
|
|
1
|
+
export declare function runBackend(args: string[]): Promise<number>;
|
|
2
|
+
export declare function runMigrate(args: string[]): Promise<number>;
|
|
3
|
+
export declare function runCache(args: string[]): number;
|
|
4
4
|
//# sourceMappingURL=backend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/commands/backend.ts"],"names":[],"mappings":"AAQA,
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/commands/backend.ts"],"names":[],"mappings":"AAQA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAqMhE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuGhE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CA8D/C"}
|