@dharma-ai-labs/agent-fabric-secure-store 0.1.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.
@@ -0,0 +1,17 @@
1
+ export interface SecureSecretStore {
2
+ backend: 'windows-credential-manager' | 'macos-keychain' | 'linux-secret-service';
3
+ get(account: string): Promise<string | null>;
4
+ put(account: string, secret: string): Promise<void>;
5
+ delete(account: string): Promise<void>;
6
+ }
7
+ declare function windowsStore(command?: string): SecureSecretStore;
8
+ declare function linuxStore(): SecureSecretStore;
9
+ declare function macosStore(): SecureSecretStore;
10
+ export declare function createSystemSecureStore(): Promise<SecureSecretStore>;
11
+ export declare const secureStoreInternals: {
12
+ windowsStore: typeof windowsStore;
13
+ linuxStore: typeof linuxStore;
14
+ macosStore: typeof macosStore;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,4BAA4B,GAAG,gBAAgB,GAAG,sBAAsB,CAAC;IAClF,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AA2BD,iBAAS,YAAY,CAAC,OAAO,SAAoH,GAAG,iBAAiB,CAsBpK;AAED,iBAAS,UAAU,IAAI,iBAAiB,CAqBvC;AAED,iBAAS,UAAU,IAAI,iBAAiB,CAqBvC;AAOD,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAM1E;AAED,eAAO,MAAM,oBAAoB;;;;CAA2C,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,127 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { readFile } from 'node:fs/promises';
3
+ function run(command, argv, input) {
4
+ return new Promise((accept, reject) => {
5
+ const child = spawn(command, argv, { shell: false, windowsHide: true, stdio: ['pipe', 'pipe', 'pipe'] });
6
+ const stdout = [];
7
+ const stderr = [];
8
+ child.stdout.on('data', (chunk) => stdout.push(chunk));
9
+ child.stderr.on('data', (chunk) => stderr.push(chunk));
10
+ child.once('error', reject);
11
+ child.once('close', (code) => accept({ code, stdout: Buffer.concat(stdout).toString('utf8'), stderr: Buffer.concat(stderr).toString('utf8') }));
12
+ if (input !== undefined)
13
+ child.stdin.end(input);
14
+ else
15
+ child.stdin.end();
16
+ });
17
+ }
18
+ function assertAccount(account) {
19
+ if (!/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/.test(account))
20
+ throw new Error('Invalid secure-store account.');
21
+ }
22
+ const windowsPreamble = '$ErrorActionPreference="Stop"; Add-Type -AssemblyName System.Runtime.WindowsRuntime; $vault=[Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime]::new(); ';
23
+ const windowsRead = `${windowsPreamble}try {$credential=$vault.Retrieve("Dharma Agent Fabric",$args[0]); $credential.RetrievePassword(); [Console]::Out.Write($credential.Password)} catch {exit 3}`;
24
+ const windowsWrite = `${windowsPreamble}$value=[Console]::In.ReadToEnd(); try {$old=$vault.Retrieve("Dharma Agent Fabric",$args[0]); $vault.Remove($old)} catch {}; $credential=[Windows.Security.Credentials.PasswordCredential,Windows.Security.Credentials,ContentType=WindowsRuntime]::new("Dharma Agent Fabric",$args[0],$value); $vault.Add($credential)`;
25
+ const windowsDelete = `${windowsPreamble}try {$credential=$vault.Retrieve("Dharma Agent Fabric",$args[0]); $vault.Remove($credential)} catch {exit 3}`;
26
+ function windowsStore(command = process.platform === 'win32' ? 'powershell.exe' : '/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe') {
27
+ const invoke = (script, account, secret) => run(command, ['-NoProfile', '-NonInteractive', '-Command', `& { ${script} }`, account], secret);
28
+ return {
29
+ backend: 'windows-credential-manager',
30
+ async get(account) {
31
+ assertAccount(account);
32
+ const result = await invoke(windowsRead, account);
33
+ if (result.code === 3)
34
+ return null;
35
+ if (result.code !== 0)
36
+ throw new Error(`Windows Credential Manager failed: ${result.stderr.trim()}`);
37
+ return result.stdout;
38
+ },
39
+ async put(account, secret) {
40
+ assertAccount(account);
41
+ const result = await invoke(windowsWrite, account, secret);
42
+ if (result.code !== 0)
43
+ throw new Error(`Windows Credential Manager failed: ${result.stderr.trim()}`);
44
+ },
45
+ async delete(account) {
46
+ assertAccount(account);
47
+ const result = await invoke(windowsDelete, account);
48
+ if (result.code !== 0 && result.code !== 3)
49
+ throw new Error(`Windows Credential Manager failed: ${result.stderr.trim()}`);
50
+ },
51
+ };
52
+ }
53
+ function linuxStore() {
54
+ return {
55
+ backend: 'linux-secret-service',
56
+ async get(account) {
57
+ assertAccount(account);
58
+ const result = await run('secret-tool', ['lookup', 'service', 'dharma-agent-fabric', 'account', account]);
59
+ if (result.code === 1)
60
+ return null;
61
+ if (result.code !== 0)
62
+ throw new Error(`Linux Secret Service failed: ${result.stderr.trim()}`);
63
+ return result.stdout.trimEnd();
64
+ },
65
+ async put(account, secret) {
66
+ assertAccount(account);
67
+ const result = await run('secret-tool', ['store', '--label=Dharma Agent Fabric', 'service', 'dharma-agent-fabric', 'account', account], secret);
68
+ if (result.code !== 0)
69
+ throw new Error(`Linux Secret Service failed: ${result.stderr.trim()}`);
70
+ },
71
+ async delete(account) {
72
+ assertAccount(account);
73
+ const result = await run('secret-tool', ['clear', 'service', 'dharma-agent-fabric', 'account', account]);
74
+ if (result.code !== 0 && result.code !== 1)
75
+ throw new Error(`Linux Secret Service failed: ${result.stderr.trim()}`);
76
+ },
77
+ };
78
+ }
79
+ function macosStore() {
80
+ return {
81
+ backend: 'macos-keychain',
82
+ async get(account) {
83
+ assertAccount(account);
84
+ const result = await run('security', ['find-generic-password', '-s', 'Dharma Agent Fabric', '-a', account, '-w']);
85
+ if (result.code === 44)
86
+ return null;
87
+ if (result.code !== 0)
88
+ throw new Error(`macOS Keychain failed: ${result.stderr.trim()}`);
89
+ return result.stdout.trimEnd();
90
+ },
91
+ async put(account, secret) {
92
+ assertAccount(account);
93
+ const result = await run('security', ['add-generic-password', '-U', '-s', 'Dharma Agent Fabric', '-a', account, '-w', secret]);
94
+ if (result.code !== 0)
95
+ throw new Error(`macOS Keychain failed: ${result.stderr.trim()}`);
96
+ },
97
+ async delete(account) {
98
+ assertAccount(account);
99
+ const result = await run('security', ['delete-generic-password', '-s', 'Dharma Agent Fabric', '-a', account]);
100
+ if (result.code !== 0 && result.code !== 44)
101
+ throw new Error(`macOS Keychain failed: ${result.stderr.trim()}`);
102
+ },
103
+ };
104
+ }
105
+ async function isWsl() {
106
+ if (process.platform !== 'linux')
107
+ return false;
108
+ try {
109
+ return /microsoft|wsl/i.test(await readFile('/proc/version', 'utf8'));
110
+ }
111
+ catch {
112
+ return false;
113
+ }
114
+ }
115
+ export async function createSystemSecureStore() {
116
+ if (process.platform === 'win32')
117
+ return windowsStore();
118
+ if (process.platform === 'darwin')
119
+ return macosStore();
120
+ if (await isWsl())
121
+ return windowsStore();
122
+ if (process.platform === 'linux')
123
+ return linuxStore();
124
+ throw new Error(`No supported secure secret store for ${process.platform}.`);
125
+ }
126
+ export const secureStoreInternals = { windowsStore, linuxStore, macosStore };
127
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import assert from 'node:assert/strict';
2
+ import { test } from 'node:test';
3
+ import { secureStoreInternals } from './index.js';
4
+ test('secure-store rejects unsafe account interpolation', async () => {
5
+ const store = secureStoreInternals.windowsStore('does-not-run');
6
+ await assert.rejects(() => store.get('bad; account'), /Invalid secure-store account/);
7
+ });
8
+ test('platform backends identify their security boundary', () => {
9
+ assert.equal(secureStoreInternals.windowsStore().backend, 'windows-credential-manager');
10
+ assert.equal(secureStoreInternals.linuxStore().backend, 'linux-secret-service');
11
+ assert.equal(secureStoreInternals.macosStore().backend, 'macos-keychain');
12
+ });
13
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,IAAI,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;IACnE,MAAM,KAAK,GAAG,oBAAoB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAChE,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,CAAC;AACxF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAC9D,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;IACxF,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;IAChF,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "@dharma-ai-labs/agent-fabric-secure-store",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "repository": { "type": "git", "url": "git+https://github.com/dharma-ai-labs/dharma-agent-fabric.git", "directory": "packages/secure-store" },
8
+ "exports": { ".": "./dist/index.js" },
9
+ "files": ["dist"],
10
+ "publishConfig": { "access": "public", "provenance": true },
11
+ "scripts": { "test": "node --test dist/*.test.js" }
12
+ }