@sentropic/llm-mesh 0.34.0 → 0.35.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/README.md +36 -0
- package/dist/enrollment/contracts.d.ts +1 -1
- package/dist/enrollment/contracts.d.ts.map +1 -1
- package/dist/node/claude-code-cli-runner.d.ts +56 -0
- package/dist/node/claude-code-cli-runner.d.ts.map +1 -0
- package/dist/node/claude-code-cli-runner.js +590 -0
- package/dist/node/claude-code-cli-runner.js.map +1 -0
- package/dist/node/claude-code-cli-wire.d.ts +55 -0
- package/dist/node/claude-code-cli-wire.d.ts.map +1 -0
- package/dist/node/claude-code-cli-wire.js +144 -0
- package/dist/node/claude-code-cli-wire.js.map +1 -0
- package/dist/node/cli/bin.d.ts +3 -0
- package/dist/node/cli/bin.d.ts.map +1 -0
- package/dist/node/cli/bin.js +15 -0
- package/dist/node/cli/bin.js.map +1 -0
- package/dist/node/cli/enroll-args.d.ts +41 -0
- package/dist/node/cli/enroll-args.d.ts.map +1 -0
- package/dist/node/cli/enroll-args.js +118 -0
- package/dist/node/cli/enroll-args.js.map +1 -0
- package/dist/node/cli/enroll-cli.d.ts +4 -0
- package/dist/node/cli/enroll-cli.d.ts.map +1 -0
- package/dist/node/cli/enroll-cli.js +124 -0
- package/dist/node/cli/enroll-cli.js.map +1 -0
- package/dist/node/cli/enroll-command.d.ts +3 -0
- package/dist/node/cli/enroll-command.d.ts.map +1 -0
- package/dist/node/cli/enroll-command.js +87 -0
- package/dist/node/cli/enroll-command.js.map +1 -0
- package/dist/node/index.d.ts +6 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +4 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/keyring/encrypted-file-keyring.d.ts +7 -1
- package/dist/node/keyring/encrypted-file-keyring.d.ts.map +1 -1
- package/dist/node/keyring/encrypted-file-keyring.js +46 -1
- package/dist/node/keyring/encrypted-file-keyring.js.map +1 -1
- package/dist/service/local-account-transport-service.js +1 -1
- package/dist/service/local-account-transport-service.js.map +1 -1
- package/dist/transport/claude-code-runtime-client.d.ts +24 -0
- package/dist/transport/claude-code-runtime-client.d.ts.map +1 -1
- package/dist/transport/claude-code-runtime-client.js +66 -3
- package/dist/transport/claude-code-runtime-client.js.map +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// @sentropic/llm-mesh/node/cli/enroll-command.ts
|
|
2
|
+
//
|
|
3
|
+
// The `enroll` command: start a device flow, print only the grant, poll,
|
|
4
|
+
// then persist. stdout is a machine contract (one JSON object per line);
|
|
5
|
+
// progress goes to stderr; secrets never printed.
|
|
6
|
+
import { EncryptedFileKeyring } from '../keyring/encrypted-file-keyring.js';
|
|
7
|
+
import { defaultWriters, EXIT_CODES, fail, openService, resolveMasterKey, } from './enroll-args.js';
|
|
8
|
+
const sanitizeStatus = (error) => {
|
|
9
|
+
const status = error.status;
|
|
10
|
+
return typeof status === 'number' ? ` (status ${status})` : null;
|
|
11
|
+
};
|
|
12
|
+
const relabelAccount = async (keyringDir, masterKey, accountId, label) => {
|
|
13
|
+
try {
|
|
14
|
+
const keyring = new EncryptedFileKeyring(keyringDir, masterKey);
|
|
15
|
+
const key = `sentropic-llm-mesh:${accountId}:public`;
|
|
16
|
+
const raw = await keyring.getSecret(key);
|
|
17
|
+
if (!raw)
|
|
18
|
+
return label;
|
|
19
|
+
const record = JSON.parse(raw);
|
|
20
|
+
await keyring.setSecret(key, JSON.stringify({ ...record, accountLabel: label }));
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return label;
|
|
24
|
+
}
|
|
25
|
+
return label;
|
|
26
|
+
};
|
|
27
|
+
export const runEnroll = async (args, deps = {}) => {
|
|
28
|
+
const writers = deps.writers ?? defaultWriters();
|
|
29
|
+
const env = deps.env ?? process.env;
|
|
30
|
+
const fetchFn = deps.fetchFn ?? fetch;
|
|
31
|
+
if (args.provider !== 'muse-code' && args.provider !== 'codex') {
|
|
32
|
+
return fail(writers, EXIT_CODES.usage, `unknown provider '${args.provider}'; expected 'muse-code' or 'codex'`);
|
|
33
|
+
}
|
|
34
|
+
if (!args.keyringDir)
|
|
35
|
+
return fail(writers, EXIT_CODES.usage, 'missing --keyring-dir <dir>');
|
|
36
|
+
if (!args.ownerScope)
|
|
37
|
+
return fail(writers, EXIT_CODES.usage, 'missing --owner-scope <ref>');
|
|
38
|
+
const maxAttempts = args.maxAttempts ?? 60;
|
|
39
|
+
if (!Number.isInteger(maxAttempts) || maxAttempts < 1) {
|
|
40
|
+
return fail(writers, EXIT_CODES.usage, 'invalid --max-attempts <n>');
|
|
41
|
+
}
|
|
42
|
+
const resolved = resolveMasterKey(args.keyringKeyEnv, env);
|
|
43
|
+
if (!resolved.key)
|
|
44
|
+
return fail(writers, EXIT_CODES.keyringKey, resolved.error ?? 'key error');
|
|
45
|
+
const service = openService(args.keyringDir, resolved.key, fetchFn);
|
|
46
|
+
let session;
|
|
47
|
+
try {
|
|
48
|
+
session = await service.enroll(args.provider, {
|
|
49
|
+
configRef: 'default',
|
|
50
|
+
mode: 'cli',
|
|
51
|
+
redirectUri: 'http://127.0.0.1',
|
|
52
|
+
ownerScope: args.ownerScope,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
// Upstream bodies can echo tokens; relay only the status, never the body.
|
|
57
|
+
const suffix = sanitizeStatus(error) ?? '';
|
|
58
|
+
return fail(writers, EXIT_CODES.enrollmentFailed, `enrollment failed${suffix}`);
|
|
59
|
+
}
|
|
60
|
+
if (session.kind !== 'device-code') {
|
|
61
|
+
return fail(writers, EXIT_CODES.usage, `provider '${args.provider}' has no device flow`);
|
|
62
|
+
}
|
|
63
|
+
// First stdout line: the grant the owner approves. The user code and
|
|
64
|
+
// URL are public by device-flow design; no secret is printed.
|
|
65
|
+
writers.out(JSON.stringify({
|
|
66
|
+
verificationUrl: session.verificationUrl,
|
|
67
|
+
userCode: session.userCode,
|
|
68
|
+
expiresAt: session.expiresAt,
|
|
69
|
+
}));
|
|
70
|
+
writers.err('Waiting for the owner to approve the device login.');
|
|
71
|
+
try {
|
|
72
|
+
const completed = args.provider === 'muse-code'
|
|
73
|
+
? await service.completeMuseDeviceImport(session.enrollmentId, args.ownerScope, maxAttempts)
|
|
74
|
+
: await service.pollForCompletion(session.enrollmentId);
|
|
75
|
+
const label = args.label
|
|
76
|
+
? await relabelAccount(args.keyringDir, resolved.key, completed.accountId, args.label)
|
|
77
|
+
: completed.label;
|
|
78
|
+
// Last stdout line: the stored account only.
|
|
79
|
+
writers.out(JSON.stringify({ accountId: completed.accountId, label }));
|
|
80
|
+
return EXIT_CODES.ok;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
const suffix = sanitizeStatus(error) ?? '';
|
|
84
|
+
return fail(writers, EXIT_CODES.enrollmentFailed, `enrollment poll failed${suffix}`);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=enroll-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enroll-command.js","sourceRoot":"","sources":["../../../src/node/cli/enroll-command.ts"],"names":[],"mappings":"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"}
|
package/dist/node/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type { SeatSidecar } from './seat-sidecar-file-backend.js';
|
|
|
7
7
|
export { SEAT_SIDECAR_MAX_BYTES, SeatSidecarFileBackend, parseSeatSidecar } from './seat-sidecar-file-backend.js';
|
|
8
8
|
export type { SeatExternalAuthority } from '../service/external-seat-authority.js';
|
|
9
9
|
export { SEAT_EXTERNAL_AUTHORITY_KEY, isDeviceFlowSeatAccount, isExternalSeatAccount, isExternalSeatUnavailable, markExternalSeatAuthority, readExternalSeatAuthority, } from '../service/external-seat-authority.js';
|
|
10
|
-
export { EncryptedFileKeyring, KeyringInsecurePermissionsError, } from './keyring/encrypted-file-keyring.js';
|
|
10
|
+
export { deriveKeyringMasterKey, EncryptedFileKeyring, KeyringInsecurePermissionsError, resolveKeyringMasterKey, } from './keyring/encrypted-file-keyring.js';
|
|
11
11
|
export { EnvKeyring } from './keyring/env-keyring.js';
|
|
12
12
|
export { InMemoryKeyring } from './keyring/in-memory-keyring.js';
|
|
13
13
|
export { LinuxSecretstoreKeyring } from './keyring/linux-secretstore-keyring.js';
|
|
@@ -20,4 +20,9 @@ export type { SeatCellConfigDirs, SeatCellInput, SeatCellReceipt, SeatCellReceip
|
|
|
20
20
|
export { SEAT_RECORD_REL_PATH, eraseSeatHome, materialiseCellHome, materialiseSeatEnvelopes, } from './seat-onboarding-materialize.js';
|
|
21
21
|
export type { CodexMcpServerSpec, CodexSeatIntent } from '../enrollment/seat-onboarding-projections.js';
|
|
22
22
|
export { CODEX_TRUST_DIALOG_PROBE, projectClaudeOnboarding, projectCodexIntent, projectMuseTrust, renderCodexSeatConfig, } from '../enrollment/seat-onboarding-projections.js';
|
|
23
|
+
export type { ClaudeCodeCliProbeOptions, ClaudeSeatAnthropicClientOptions, NodeClaudeCodeCliRunnerOptions, } from './claude-code-cli-runner.js';
|
|
24
|
+
export { CLAUDE_CODE_OAUTH_ENV_VAR, CLAUDE_CODE_RESULT_TIMEOUT_MS, CLAUDE_CODE_STREAM_PROTOCOL, DEFAULT_CLAUDE_CODE_CLI_PATH, DEFAULT_CLAUDE_CODE_EFFORT, DEFAULT_CLAUDE_CODE_TIMEOUT_MS, NodeClaudeCodeCliRunner, createClaudeSeatAnthropicClient, probeClaudeCodeCliCapabilities, } from './claude-code-cli-runner.js';
|
|
25
|
+
export { ClaudeCliQuotaError } from '../transport/claude-code-runtime-client.js';
|
|
26
|
+
export type { ClaudeCodeLineOutcome, QuotaDiagnosis } from './claude-code-cli-wire.js';
|
|
27
|
+
export { diagnoseClaudeCodeQuota, parseClaudeCodeLine, renderClaudeCodeCliPrompt, } from './claude-code-cli-wire.js';
|
|
23
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/node/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,OAAO,EACP,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACxF,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClH,YAAY,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,+BAA+B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"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"}
|
package/dist/node/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export { SEAT_AGY_APPLICATION_TUPLE, SEAT_BUNDLE_MAX_BYTES, SEAT_BUNDLE_SCHEMA_V
|
|
|
2
2
|
export { inspectSeatStoreRecord, SeatStoreReadError } from './cli-seat-store-reader.js';
|
|
3
3
|
export { SEAT_SIDECAR_MAX_BYTES, SeatSidecarFileBackend, parseSeatSidecar } from './seat-sidecar-file-backend.js';
|
|
4
4
|
export { SEAT_EXTERNAL_AUTHORITY_KEY, isDeviceFlowSeatAccount, isExternalSeatAccount, isExternalSeatUnavailable, markExternalSeatAuthority, readExternalSeatAuthority, } from '../service/external-seat-authority.js';
|
|
5
|
-
export { EncryptedFileKeyring, KeyringInsecurePermissionsError, } from './keyring/encrypted-file-keyring.js';
|
|
5
|
+
export { deriveKeyringMasterKey, EncryptedFileKeyring, KeyringInsecurePermissionsError, resolveKeyringMasterKey, } from './keyring/encrypted-file-keyring.js';
|
|
6
6
|
export { EnvKeyring } from './keyring/env-keyring.js';
|
|
7
7
|
export { InMemoryKeyring } from './keyring/in-memory-keyring.js';
|
|
8
8
|
export { LinuxSecretstoreKeyring } from './keyring/linux-secretstore-keyring.js';
|
|
@@ -11,4 +11,7 @@ export { AGY_REQUIRED_COMPLETED_STEPS, CODEX_APPROVAL_POLICY_VALUES, MUSE_TRUST_
|
|
|
11
11
|
export { CAPTURE_SOURCES, captureSeatOnboarding } from './seat-onboarding-capture.js';
|
|
12
12
|
export { SEAT_RECORD_REL_PATH, eraseSeatHome, materialiseCellHome, materialiseSeatEnvelopes, } from './seat-onboarding-materialize.js';
|
|
13
13
|
export { CODEX_TRUST_DIALOG_PROBE, projectClaudeOnboarding, projectCodexIntent, projectMuseTrust, renderCodexSeatConfig, } from '../enrollment/seat-onboarding-projections.js';
|
|
14
|
+
export { CLAUDE_CODE_OAUTH_ENV_VAR, CLAUDE_CODE_RESULT_TIMEOUT_MS, CLAUDE_CODE_STREAM_PROTOCOL, DEFAULT_CLAUDE_CODE_CLI_PATH, DEFAULT_CLAUDE_CODE_EFFORT, DEFAULT_CLAUDE_CODE_TIMEOUT_MS, NodeClaudeCodeCliRunner, createClaudeSeatAnthropicClient, probeClaudeCodeCliCapabilities, } from './claude-code-cli-runner.js';
|
|
15
|
+
export { ClaudeCliQuotaError } from '../transport/claude-code-runtime-client.js';
|
|
16
|
+
export { diagnoseClaudeCodeQuota, parseClaudeCodeLine, renderClaudeCodeCliPrompt, } from './claude-code-cli-wire.js';
|
|
14
17
|
//# sourceMappingURL=index.js.map
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElH,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,+BAA+B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElH,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAgB3E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAiBtF,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,8CAA8C,CAAC;AAMtD,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEjF,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC"}
|
|
@@ -3,9 +3,15 @@ export declare class KeyringInsecurePermissionsError extends Error {
|
|
|
3
3
|
readonly code = "keyring_insecure_permissions";
|
|
4
4
|
constructor(target: string, expectedMode: number, actualMode: number);
|
|
5
5
|
}
|
|
6
|
+
export interface EncryptedFileKeyringOptions {
|
|
7
|
+
masterKey?: Buffer;
|
|
8
|
+
}
|
|
9
|
+
export declare const deriveKeyringMasterKey: (value: string) => Buffer;
|
|
10
|
+
export declare const resolveKeyringMasterKey: (envVarName: string) => Buffer;
|
|
6
11
|
export declare class EncryptedFileKeyring implements KeyringAdapter {
|
|
7
12
|
private readonly directory;
|
|
8
|
-
|
|
13
|
+
private readonly explicitMasterKey?;
|
|
14
|
+
constructor(directory?: string, masterKeyOrOptions?: Buffer | EncryptedFileKeyringOptions);
|
|
9
15
|
getSecret(key: string): Promise<string | null>;
|
|
10
16
|
setSecret(key: string, secret: string): Promise<void>;
|
|
11
17
|
setSecretIfAbsent(key: string, secret: string): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encrypted-file-keyring.d.ts","sourceRoot":"","sources":["../../../src/node/keyring/encrypted-file-keyring.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAe9D,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,IAAI,kCAAkC;gBAEnC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAOrE;AAED,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;
|
|
1
|
+
{"version":3,"file":"encrypted-file-keyring.d.ts","sourceRoot":"","sources":["../../../src/node/keyring/encrypted-file-keyring.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAe9D,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,IAAI,kCAAkC;gBAEnC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAOrE;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,sBAAsB,UAAW,MAAM,KAAG,MAiBtD,CAAC;AAEF,eAAO,MAAM,uBAAuB,eAAgB,MAAM,KAAG,MAU5D,CAAC;AAEF,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAS;gBAG1C,SAAS,SAE0C,EACnD,kBAAkB,CAAC,EAAE,MAAM,GAAG,2BAA2B;IAarD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0C9C,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBhE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,OAAO,CAAC,UAAU;YAKJ,aAAa;YAiBb,aAAa;YAoCb,qBAAqB;YA4BrB,kBAAkB;YAOlB,wBAAwB;YAQxB,eAAe;CAO9B"}
|
|
@@ -14,11 +14,51 @@ export class KeyringInsecurePermissionsError extends Error {
|
|
|
14
14
|
this.name = 'KeyringInsecurePermissionsError';
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
export const deriveKeyringMasterKey = (value) => {
|
|
18
|
+
const trimmed = value.trim();
|
|
19
|
+
if (/^[0-9a-fA-F]{64}$/.test(trimmed)) {
|
|
20
|
+
return Buffer.from(trimmed, 'hex');
|
|
21
|
+
}
|
|
22
|
+
if (/^[A-Za-z0-9+/]{43}=$/.test(trimmed) || /^[A-Za-z0-9+/]{44}$/.test(trimmed)) {
|
|
23
|
+
try {
|
|
24
|
+
const decoded = Buffer.from(trimmed, 'base64');
|
|
25
|
+
if (decoded.length === 32)
|
|
26
|
+
return decoded;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// Fall through to the refusal below.
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// No passphrase fallback: a human passphrase through one SHA-256 is
|
|
33
|
+
// offline-brute-forceable and protects long-lived refresh tokens.
|
|
34
|
+
// The key must be 32 bytes as 64 hex chars or 44/43-char base64.
|
|
35
|
+
throw new Error('keyring key must be 32 bytes as 64 hex chars or 44/43-char base64');
|
|
36
|
+
};
|
|
37
|
+
export const resolveKeyringMasterKey = (envVarName) => {
|
|
38
|
+
const name = envVarName.trim();
|
|
39
|
+
if (!name || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) {
|
|
40
|
+
throw new Error(`keyring key env var name is invalid: '${name}'`);
|
|
41
|
+
}
|
|
42
|
+
const value = process.env[name];
|
|
43
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
44
|
+
throw new Error(`keyring key env var '${name}' is missing or empty`);
|
|
45
|
+
}
|
|
46
|
+
return deriveKeyringMasterKey(value);
|
|
47
|
+
};
|
|
17
48
|
export class EncryptedFileKeyring {
|
|
18
49
|
directory;
|
|
50
|
+
explicitMasterKey;
|
|
19
51
|
constructor(directory = process.env.SENTROPIC_LLM_MESH_KEYRING_DIR ??
|
|
20
|
-
join(homedir(), '.sentropic', 'llm-mesh-keyring')) {
|
|
52
|
+
join(homedir(), '.sentropic', 'llm-mesh-keyring'), masterKeyOrOptions) {
|
|
21
53
|
this.directory = directory;
|
|
54
|
+
// The local Buffer stub has no isBuffer; narrow on the Uint8Array root.
|
|
55
|
+
const explicit = masterKeyOrOptions instanceof Uint8Array
|
|
56
|
+
? Buffer.from(masterKeyOrOptions)
|
|
57
|
+
: masterKeyOrOptions?.masterKey;
|
|
58
|
+
if (explicit !== undefined && explicit.length !== 32) {
|
|
59
|
+
throw new Error('Encrypted keyring master key must be 32 bytes');
|
|
60
|
+
}
|
|
61
|
+
this.explicitMasterKey = explicit;
|
|
22
62
|
}
|
|
23
63
|
async getSecret(key) {
|
|
24
64
|
let raw;
|
|
@@ -116,6 +156,11 @@ export class EncryptedFileKeyring {
|
|
|
116
156
|
};
|
|
117
157
|
}
|
|
118
158
|
async readMasterKey(create) {
|
|
159
|
+
if (this.explicitMasterKey) {
|
|
160
|
+
await mkdir(this.directory, { recursive: true, mode: 0o700 });
|
|
161
|
+
await this.setModeIfDifferent(this.directory, 0o700);
|
|
162
|
+
return this.explicitMasterKey;
|
|
163
|
+
}
|
|
119
164
|
const path = join(this.directory, '.key');
|
|
120
165
|
if (!create) {
|
|
121
166
|
return this.readExistingMasterKey(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encrypted-file-keyring.js","sourceRoot":"","sources":["../../../src/node/keyring/encrypted-file-keyring.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,MAAM,EACN,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAUjC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,IAAY,EAAW,EAAE,CAC5D,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,IAAI,KAAK;IACd,KAA4B,CAAC,IAAI,KAAK,IAAI,CAAC;AAE9C,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,IAAI,GAAG,8BAA8B,CAAC;IAE/C,YAAY,MAAc,EAAE,YAAoB,EAAE,UAAkB;QAClE,KAAK,CACH,qBAAqB,MAAM,6BAA6B;YACtD,cAAc,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CACtF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"encrypted-file-keyring.js","sourceRoot":"","sources":["../../../src/node/keyring/encrypted-file-keyring.ts"],"names":[],"mappings":"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"}
|
|
@@ -382,7 +382,7 @@ export class LocalAccountTransportService {
|
|
|
382
382
|
if (typeof provider.pollForCompletion !== 'function') {
|
|
383
383
|
throw new Error("Muse enrollment provider does not support device-flow polling");
|
|
384
384
|
}
|
|
385
|
-
const res = await provider.pollForCompletion(enrollmentId);
|
|
385
|
+
const res = await provider.pollForCompletion(enrollmentId, maxAttempts);
|
|
386
386
|
if (!res.credential) {
|
|
387
387
|
throw new Error(`Enrollment session ${enrollmentId} did not resolve a credential`);
|
|
388
388
|
}
|