@centient/secrets 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/messages.d.ts +60 -0
- package/dist/cli/messages.d.ts.map +1 -0
- package/dist/cli/messages.js +63 -0
- package/dist/cli/messages.js.map +1 -0
- package/dist/cli/secrets-cli.d.ts +38 -0
- package/dist/cli/secrets-cli.d.ts.map +1 -0
- package/dist/cli/secrets-cli.js +532 -0
- package/dist/cli/secrets-cli.js.map +1 -0
- package/dist/crypto/vault-common.d.ts +63 -0
- package/dist/crypto/vault-common.d.ts.map +1 -0
- package/dist/crypto/vault-common.js +180 -0
- package/dist/crypto/vault-common.js.map +1 -0
- package/dist/environment/EnvironmentManager.d.ts +171 -0
- package/dist/environment/EnvironmentManager.d.ts.map +1 -0
- package/dist/environment/EnvironmentManager.js +604 -0
- package/dist/environment/EnvironmentManager.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/platform/agent-detect.d.ts +15 -0
- package/dist/platform/agent-detect.d.ts.map +1 -0
- package/dist/platform/agent-detect.js +22 -0
- package/dist/platform/agent-detect.js.map +1 -0
- package/dist/platform/platform.d.ts +51 -0
- package/dist/platform/platform.d.ts.map +1 -0
- package/dist/platform/platform.js +141 -0
- package/dist/platform/platform.js.map +1 -0
- package/dist/vault/types.d.ts +54 -0
- package/dist/vault/types.d.ts.map +1 -0
- package/dist/vault/types.js +12 -0
- package/dist/vault/types.js.map +1 -0
- package/dist/vault/vault-env.d.ts +58 -0
- package/dist/vault/vault-env.d.ts.map +1 -0
- package/dist/vault/vault-env.js +73 -0
- package/dist/vault/vault-env.js.map +1 -0
- package/dist/vault/vault-gpg.d.ts +40 -0
- package/dist/vault/vault-gpg.d.ts.map +1 -0
- package/dist/vault/vault-gpg.js +149 -0
- package/dist/vault/vault-gpg.js.map +1 -0
- package/dist/vault/vault-libsecret.d.ts +51 -0
- package/dist/vault/vault-libsecret.d.ts.map +1 -0
- package/dist/vault/vault-libsecret.js +115 -0
- package/dist/vault/vault-libsecret.js.map +1 -0
- package/dist/vault/vault-utils.d.ts +12 -0
- package/dist/vault/vault-utils.d.ts.map +1 -0
- package/dist/vault/vault-utils.js +16 -0
- package/dist/vault/vault-utils.js.map +1 -0
- package/dist/vault/vault-windows.d.ts +71 -0
- package/dist/vault/vault-windows.d.ts.map +1 -0
- package/dist/vault/vault-windows.js +186 -0
- package/dist/vault/vault-windows.js.map +1 -0
- package/dist/vault/vault.d.ts +53 -0
- package/dist/vault/vault.d.ts.map +1 -0
- package/dist/vault/vault.js +132 -0
- package/dist/vault/vault.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth Module - Centralized Message Strings
|
|
3
|
+
*
|
|
4
|
+
* All user-visible strings for the auth module are defined here.
|
|
5
|
+
* This module is i18n-ready: message values do not contain interpolated
|
|
6
|
+
* strings — template functions accept parameters and return formatted strings.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* import { AUTH_MESSAGES } from './messages.js';
|
|
10
|
+
* process.stderr.write(AUTH_MESSAGES.error.vaultWriteFailed + '\n');
|
|
11
|
+
* process.stderr.write(AUTH_MESSAGES.info.loginPrompt('https://auth.example.com') + '\n');
|
|
12
|
+
*/
|
|
13
|
+
export declare const AUTH_MESSAGES: {
|
|
14
|
+
readonly success: {
|
|
15
|
+
readonly loggedIn: "Authentication successful. You are now logged in.";
|
|
16
|
+
readonly loggedOut: "Logged out successfully. Credentials removed.";
|
|
17
|
+
readonly tokenStored: "Token stored securely in vault.";
|
|
18
|
+
readonly tokenRefreshed: "Token refreshed successfully.";
|
|
19
|
+
readonly apiKeyStored: "API key stored securely in vault.";
|
|
20
|
+
readonly revokeComplete: "Token revoked on server.";
|
|
21
|
+
};
|
|
22
|
+
readonly error: {
|
|
23
|
+
readonly vaultWriteFailed: "Failed to write credentials to vault.";
|
|
24
|
+
readonly vaultReadFailed: "Failed to read credentials from vault.";
|
|
25
|
+
readonly vaultDeleteFailed: "Failed to delete credentials from vault.";
|
|
26
|
+
readonly deviceFlowFailed: "Device authorization flow failed.";
|
|
27
|
+
readonly deviceFlowTimeout: "Device authorization timed out. Please try again.";
|
|
28
|
+
readonly deviceFlowAccessDenied: "Access denied. Authorization was rejected.";
|
|
29
|
+
readonly deviceFlowExpired: "Device code expired. Please run login again.";
|
|
30
|
+
readonly tokenExpired: "Your session has expired. Please run `centient login`.";
|
|
31
|
+
readonly tokenInvalid: "Invalid token format.";
|
|
32
|
+
readonly tokenMalformed: "Could not decode token — unexpected format.";
|
|
33
|
+
readonly networkError: "Network error during authentication.";
|
|
34
|
+
readonly refreshFailed: "Token refresh failed. Please run `centient login` again.";
|
|
35
|
+
readonly revokeFailed: "Token revocation failed (server may be unreachable).";
|
|
36
|
+
readonly apiKeyInvalidFormat: (key: string) => string;
|
|
37
|
+
readonly agentEnvironmentBlocked: "This command is not available in agent environments.";
|
|
38
|
+
readonly unknownSubcommand: (cmd: string) => string;
|
|
39
|
+
};
|
|
40
|
+
readonly warning: {
|
|
41
|
+
readonly tokenExpiringSoon: (minutes: number) => string;
|
|
42
|
+
readonly revokeNetworkFailure: "Could not reach server to revoke token — local credentials have been removed.";
|
|
43
|
+
readonly noCredentialsFound: "No stored credentials found. Run `centient login` to authenticate.";
|
|
44
|
+
readonly sessionExpiredIdle: "Session expired due to inactivity.";
|
|
45
|
+
readonly envVaultNoStorage: "No secure credential storage available. Install libsecret (Linux: apt install libsecret-tools) or GPG for persistent storage. Using ENGRAM_API_KEY environment variable only.";
|
|
46
|
+
};
|
|
47
|
+
readonly info: {
|
|
48
|
+
readonly loginPrompt: (verificationUri: string) => string;
|
|
49
|
+
readonly userCodeDisplay: (userCode: string) => string;
|
|
50
|
+
readonly pollingWait: (seconds: number) => string;
|
|
51
|
+
readonly loginRecoveryHint: "If login fails, set ENGRAM_API_KEY in your environment for headless/CI usage.";
|
|
52
|
+
readonly authStatusAuthenticated: (expiresIn: string) => string;
|
|
53
|
+
readonly authStatusUnauthenticated: "Not authenticated. Run `centient login`.";
|
|
54
|
+
readonly authStatusExpiringSoon: (minutes: number) => string;
|
|
55
|
+
readonly vaultType: (vaultType: string) => string;
|
|
56
|
+
readonly logoutStarting: "Logging out...";
|
|
57
|
+
readonly loginStarting: "Starting device authorization flow...";
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/cli/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;4CAwBK,MAAM,KAAG,MAAM;;0CAIjB,MAAM,KAAG,MAAM;;;8CAKX,MAAM,KAAG,MAAM;;;;;;;gDAYb,MAAM,KAAG,MAAM;6CAElB,MAAM,KAAG,MAAM;wCAEpB,MAAM,KAAG,MAAM;;sDAID,MAAM,KAAG,MAAM;;mDAGlB,MAAM,KAAG,MAAM;wCAE1B,MAAM,KAAG,MAAM;;;;CAIhC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth Module - Centralized Message Strings
|
|
3
|
+
*
|
|
4
|
+
* All user-visible strings for the auth module are defined here.
|
|
5
|
+
* This module is i18n-ready: message values do not contain interpolated
|
|
6
|
+
* strings — template functions accept parameters and return formatted strings.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* import { AUTH_MESSAGES } from './messages.js';
|
|
10
|
+
* process.stderr.write(AUTH_MESSAGES.error.vaultWriteFailed + '\n');
|
|
11
|
+
* process.stderr.write(AUTH_MESSAGES.info.loginPrompt('https://auth.example.com') + '\n');
|
|
12
|
+
*/
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Message catalog
|
|
15
|
+
// =============================================================================
|
|
16
|
+
export const AUTH_MESSAGES = {
|
|
17
|
+
success: {
|
|
18
|
+
loggedIn: "Authentication successful. You are now logged in.",
|
|
19
|
+
loggedOut: "Logged out successfully. Credentials removed.",
|
|
20
|
+
tokenStored: "Token stored securely in vault.",
|
|
21
|
+
tokenRefreshed: "Token refreshed successfully.",
|
|
22
|
+
apiKeyStored: "API key stored securely in vault.",
|
|
23
|
+
revokeComplete: "Token revoked on server.",
|
|
24
|
+
},
|
|
25
|
+
error: {
|
|
26
|
+
vaultWriteFailed: "Failed to write credentials to vault.",
|
|
27
|
+
vaultReadFailed: "Failed to read credentials from vault.",
|
|
28
|
+
vaultDeleteFailed: "Failed to delete credentials from vault.",
|
|
29
|
+
deviceFlowFailed: "Device authorization flow failed.",
|
|
30
|
+
deviceFlowTimeout: "Device authorization timed out. Please try again.",
|
|
31
|
+
deviceFlowAccessDenied: "Access denied. Authorization was rejected.",
|
|
32
|
+
deviceFlowExpired: "Device code expired. Please run login again.",
|
|
33
|
+
tokenExpired: "Your session has expired. Please run `centient login`.",
|
|
34
|
+
tokenInvalid: "Invalid token format.",
|
|
35
|
+
tokenMalformed: "Could not decode token — unexpected format.",
|
|
36
|
+
networkError: "Network error during authentication.",
|
|
37
|
+
refreshFailed: "Token refresh failed. Please run `centient login` again.",
|
|
38
|
+
revokeFailed: "Token revocation failed (server may be unreachable).",
|
|
39
|
+
apiKeyInvalidFormat: (key) => `Invalid API key format: '${key}'. API keys must start with 'eng_'.`,
|
|
40
|
+
agentEnvironmentBlocked: "This command is not available in agent environments.",
|
|
41
|
+
unknownSubcommand: (cmd) => `Unknown subcommand: '${cmd}'. Run \`centient auth --help\` for usage.`,
|
|
42
|
+
},
|
|
43
|
+
warning: {
|
|
44
|
+
tokenExpiringSoon: (minutes) => `Your token expires in ${minutes} minute${minutes === 1 ? "" : "s"}. Run \`centient login\` to refresh.`,
|
|
45
|
+
revokeNetworkFailure: "Could not reach server to revoke token — local credentials have been removed.",
|
|
46
|
+
noCredentialsFound: "No stored credentials found. Run `centient login` to authenticate.",
|
|
47
|
+
sessionExpiredIdle: "Session expired due to inactivity.",
|
|
48
|
+
envVaultNoStorage: "No secure credential storage available. Install libsecret (Linux: apt install libsecret-tools) or GPG for persistent storage. Using ENGRAM_API_KEY environment variable only.",
|
|
49
|
+
},
|
|
50
|
+
info: {
|
|
51
|
+
loginPrompt: (verificationUri) => `Visit the following URL to authorize this device:\n ${verificationUri}`,
|
|
52
|
+
userCodeDisplay: (userCode) => `Enter this code when prompted:\n ${userCode}`,
|
|
53
|
+
pollingWait: (seconds) => `Waiting for authorization... (${seconds}s remaining)`,
|
|
54
|
+
loginRecoveryHint: "If login fails, set ENGRAM_API_KEY in your environment for headless/CI usage.",
|
|
55
|
+
authStatusAuthenticated: (expiresIn) => `Authenticated. Token expires in ${expiresIn}.`,
|
|
56
|
+
authStatusUnauthenticated: "Not authenticated. Run `centient login`.",
|
|
57
|
+
authStatusExpiringSoon: (minutes) => `Authenticated (expiring in ${minutes} minute${minutes === 1 ? "" : "s"}).`,
|
|
58
|
+
vaultType: (vaultType) => `Vault: ${vaultType}`,
|
|
59
|
+
logoutStarting: "Logging out...",
|
|
60
|
+
loginStarting: "Starting device authorization flow...",
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/cli/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE;QACP,QAAQ,EAAE,mDAAmD;QAC7D,SAAS,EAAE,+CAA+C;QAC1D,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE,+BAA+B;QAC/C,YAAY,EAAE,mCAAmC;QACjD,cAAc,EAAE,0BAA0B;KAC3C;IAED,KAAK,EAAE;QACL,gBAAgB,EAAE,uCAAuC;QACzD,eAAe,EAAE,wCAAwC;QACzD,iBAAiB,EAAE,0CAA0C;QAC7D,gBAAgB,EAAE,mCAAmC;QACrD,iBAAiB,EAAE,mDAAmD;QACtE,sBAAsB,EAAE,4CAA4C;QACpE,iBAAiB,EAAE,8CAA8C;QACjE,YAAY,EAAE,wDAAwD;QACtE,YAAY,EAAE,uBAAuB;QACrC,cAAc,EAAE,6CAA6C;QAC7D,YAAY,EAAE,sCAAsC;QACpD,aAAa,EAAE,0DAA0D;QACzE,YAAY,EAAE,sDAAsD;QACpE,mBAAmB,EAAE,CAAC,GAAW,EAAU,EAAE,CAC3C,4BAA4B,GAAG,qCAAqC;QACtE,uBAAuB,EACrB,sDAAsD;QACxD,iBAAiB,EAAE,CAAC,GAAW,EAAU,EAAE,CACzC,wBAAwB,GAAG,4CAA4C;KAC1E;IAED,OAAO,EAAE;QACP,iBAAiB,EAAE,CAAC,OAAe,EAAU,EAAE,CAC7C,yBAAyB,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,sCAAsC;QAC1G,oBAAoB,EAClB,+EAA+E;QACjF,kBAAkB,EAChB,oEAAoE;QACtE,kBAAkB,EAAE,oCAAoC;QACxD,iBAAiB,EACf,+KAA+K;KAClL;IAED,IAAI,EAAE;QACJ,WAAW,EAAE,CAAC,eAAuB,EAAU,EAAE,CAC/C,wDAAwD,eAAe,EAAE;QAC3E,eAAe,EAAE,CAAC,QAAgB,EAAU,EAAE,CAC5C,qCAAqC,QAAQ,EAAE;QACjD,WAAW,EAAE,CAAC,OAAe,EAAU,EAAE,CACvC,iCAAiC,OAAO,cAAc;QACxD,iBAAiB,EACf,+EAA+E;QACjF,uBAAuB,EAAE,CAAC,SAAiB,EAAU,EAAE,CACrD,mCAAmC,SAAS,GAAG;QACjD,yBAAyB,EAAE,0CAA0C;QACrE,sBAAsB,EAAE,CAAC,OAAe,EAAU,EAAE,CAClD,8BAA8B,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI;QAC7E,SAAS,EAAE,CAAC,SAAiB,EAAU,EAAE,CAAC,UAAU,SAAS,EAAE;QAC/D,cAAc,EAAE,gBAAgB;QAChC,aAAa,EAAE,uCAAuC;KACvD;CACO,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secrets CLI Commands
|
|
3
|
+
*
|
|
4
|
+
* CLI commands for managing the encrypted secrets vault and environments.
|
|
5
|
+
* These commands are only available to human operators (blocked from AI agents).
|
|
6
|
+
*
|
|
7
|
+
* Vault Commands:
|
|
8
|
+
* centient secrets init Initialize a new encrypted vault
|
|
9
|
+
* centient secrets unlock Unlock the vault (prompts biometric)
|
|
10
|
+
* centient secrets lock Lock the vault
|
|
11
|
+
* centient secrets list List secret names (not values)
|
|
12
|
+
* centient secrets set <name> Add/update a secret (prompts for value)
|
|
13
|
+
* centient secrets get <name> Get a secret value
|
|
14
|
+
* centient secrets delete <name> Delete a secret
|
|
15
|
+
* centient secrets status Show vault status
|
|
16
|
+
*
|
|
17
|
+
* Environment Commands:
|
|
18
|
+
* centient secrets env-list List all environments
|
|
19
|
+
* centient secrets env-switch <name> Switch to an environment
|
|
20
|
+
* centient secrets env-create <name> Create a new environment
|
|
21
|
+
* centient secrets env-current Show current environment
|
|
22
|
+
*
|
|
23
|
+
* Security:
|
|
24
|
+
* - All commands check for AI agent environment and refuse to run
|
|
25
|
+
* - Vault is encrypted with AES-256-GCM
|
|
26
|
+
* - Key stored in macOS Keychain (requires biometric/PIN)
|
|
27
|
+
* - 4-hour session timeout, 30-minute idle timeout
|
|
28
|
+
*/
|
|
29
|
+
export interface SecretsOptions {
|
|
30
|
+
command: "init" | "unlock" | "lock" | "list" | "set" | "get" | "delete" | "status" | "env-list" | "env-switch" | "env-create" | "env-current";
|
|
31
|
+
secretName?: string;
|
|
32
|
+
secretValue?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Run secrets command
|
|
36
|
+
*/
|
|
37
|
+
export declare function runSecrets(options: SecretsOptions): Promise<void>;
|
|
38
|
+
//# sourceMappingURL=secrets-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets-cli.d.ts","sourceRoot":"","sources":["../../src/cli/secrets-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAWH,MAAM,WAAW,cAAc;IAC7B,OAAO,EACH,MAAM,GACN,QAAQ,GACR,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,aAAa,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAyhBD;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDvE"}
|