@sentropic/llm-mesh 0.34.1 → 0.36.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.
Files changed (46) hide show
  1. package/README.md +36 -0
  2. package/dist/catalog.d.ts +52 -0
  3. package/dist/catalog.d.ts.map +1 -1
  4. package/dist/catalog.js +20 -0
  5. package/dist/catalog.js.map +1 -1
  6. package/dist/enrollment/contracts.d.ts +1 -1
  7. package/dist/enrollment/contracts.d.ts.map +1 -1
  8. package/dist/generated-model-council.d.ts +2 -2
  9. package/dist/generated-model-council.d.ts.map +1 -1
  10. package/dist/generated-model-council.js +3 -1
  11. package/dist/generated-model-council.js.map +1 -1
  12. package/dist/node/cli/bin.d.ts +3 -0
  13. package/dist/node/cli/bin.d.ts.map +1 -0
  14. package/dist/node/cli/bin.js +15 -0
  15. package/dist/node/cli/bin.js.map +1 -0
  16. package/dist/node/cli/enroll-args.d.ts +41 -0
  17. package/dist/node/cli/enroll-args.d.ts.map +1 -0
  18. package/dist/node/cli/enroll-args.js +118 -0
  19. package/dist/node/cli/enroll-args.js.map +1 -0
  20. package/dist/node/cli/enroll-cli.d.ts +4 -0
  21. package/dist/node/cli/enroll-cli.d.ts.map +1 -0
  22. package/dist/node/cli/enroll-cli.js +124 -0
  23. package/dist/node/cli/enroll-cli.js.map +1 -0
  24. package/dist/node/cli/enroll-command.d.ts +3 -0
  25. package/dist/node/cli/enroll-command.d.ts.map +1 -0
  26. package/dist/node/cli/enroll-command.js +87 -0
  27. package/dist/node/cli/enroll-command.js.map +1 -0
  28. package/dist/node/index.d.ts +1 -1
  29. package/dist/node/index.d.ts.map +1 -1
  30. package/dist/node/index.js +1 -1
  31. package/dist/node/index.js.map +1 -1
  32. package/dist/node/keyring/encrypted-file-keyring.d.ts +7 -1
  33. package/dist/node/keyring/encrypted-file-keyring.d.ts.map +1 -1
  34. package/dist/node/keyring/encrypted-file-keyring.js +46 -1
  35. package/dist/node/keyring/encrypted-file-keyring.js.map +1 -1
  36. package/dist/providers.d.ts +4 -4
  37. package/dist/providers.d.ts.map +1 -1
  38. package/dist/providers.js +4 -2
  39. package/dist/providers.js.map +1 -1
  40. package/dist/routing-targets.d.ts.map +1 -1
  41. package/dist/routing-targets.js +39 -4
  42. package/dist/routing-targets.js.map +1 -1
  43. package/dist/service/local-account-transport-service.d.ts.map +1 -1
  44. package/dist/service/local-account-transport-service.js +2 -1
  45. package/dist/service/local-account-transport-service.js.map +1 -1
  46. package/package.json +4 -1
@@ -0,0 +1,124 @@
1
+ // @sentropic/llm-mesh/node/cli/enroll-cli.ts
2
+ //
3
+ // Generic device-flow enrollment CLI (muse-code first):
4
+ // `enroll` stores a seat account, `probe` checks it with one minimal
5
+ // generate through MuseAdapter/MuseRuntimeClient. stdout is a machine
6
+ // contract (one JSON object per line); secrets never printed.
7
+ import { EncryptedFileKeyring } from '../keyring/encrypted-file-keyring.js';
8
+ import { defaultWriters, EXIT_CODES, fail, parseArgs, resolveMasterKey, usageText, } from './enroll-args.js';
9
+ import { runEnroll } from './enroll-command.js';
10
+ const KNOWN_EFFORTS = new Set(['none', 'low', 'medium', 'high', 'xhigh', 'max']);
11
+ export const runProbe = async (args, deps = {}) => {
12
+ const writers = deps.writers ?? defaultWriters();
13
+ const env = deps.env ?? process.env;
14
+ const fetchFn = deps.fetchFn ?? fetch;
15
+ if (args.provider !== 'muse-code') {
16
+ return fail(writers, EXIT_CODES.usage, `provider '${args.provider}' has no probe; only 'muse-code' is probed`);
17
+ }
18
+ if (!args.keyringDir)
19
+ return fail(writers, EXIT_CODES.usage, 'missing --keyring-dir <dir>');
20
+ if (!args.account)
21
+ return fail(writers, EXIT_CODES.usage, 'missing --account <id>');
22
+ const effort = args.effort ?? 'low';
23
+ if (!KNOWN_EFFORTS.has(effort)) {
24
+ return fail(writers, EXIT_CODES.usage, `unknown --effort '${effort}'`);
25
+ }
26
+ const resolved = resolveMasterKey(args.keyringKeyEnv, env);
27
+ if (!resolved.key)
28
+ return fail(writers, EXIT_CODES.keyringKey, resolved.error ?? 'key error');
29
+ const keyring = new EncryptedFileKeyring(args.keyringDir, resolved.key);
30
+ let raw;
31
+ let publicRaw;
32
+ try {
33
+ raw = await keyring.getSecret(`sentropic-llm-mesh:${args.account}:envelope`);
34
+ publicRaw = await keyring.getSecret(`sentropic-llm-mesh:${args.account}:public`);
35
+ }
36
+ catch {
37
+ return fail(writers, EXIT_CODES.keyringKey, 'keyring read failed; check the key and permissions');
38
+ }
39
+ if (!raw) {
40
+ return fail(writers, EXIT_CODES.accountNotFound, `account '${args.account}' not found`);
41
+ }
42
+ // The envelope carries no provider; the public record does. Refuse any
43
+ // non-muse account before any token leaves the keyring: a codex OAuth
44
+ // token must never reach api.meta.ai.
45
+ try {
46
+ const record = JSON.parse(publicRaw ?? '');
47
+ if (record.providerId !== 'muse')
48
+ throw new Error('bad provider');
49
+ }
50
+ catch {
51
+ return fail(writers, EXIT_CODES.accountNotFound, `account '${args.account}' is not a muse-code seat account`);
52
+ }
53
+ let accessToken;
54
+ try {
55
+ const envelope = JSON.parse(raw);
56
+ if (typeof envelope.accessToken !== 'string' || !envelope.accessToken)
57
+ throw new Error('bad');
58
+ accessToken = envelope.accessToken;
59
+ }
60
+ catch {
61
+ return fail(writers, EXIT_CODES.probeFailed, `account '${args.account}' credential record is corrupt`);
62
+ }
63
+ // The Muse Chat wire takes no reasoning controls (the client refuses a
64
+ // non-empty reasoning block), so --effort is validated for forward
65
+ // compatibility but not forwarded.
66
+ let adapter;
67
+ try {
68
+ const { MuseAdapter } = await import('../../adapters.js');
69
+ const { MuseRuntimeClient } = await import('../../transport/muse-runtime-client.js');
70
+ adapter = new MuseAdapter({ client: new MuseRuntimeClient({ fetch: fetchFn }) });
71
+ }
72
+ catch {
73
+ return fail(writers, EXIT_CODES.probeFailed, 'probe failed to load the muse runtime');
74
+ }
75
+ const modelId = args.model ?? 'muse-wonder-1.0';
76
+ const startedAt = Date.now();
77
+ try {
78
+ const response = await adapter.generate({ providerId: 'muse', modelId, messages: [{ role: 'user', content: 'probe' }], maxOutputTokens: 16 }, {
79
+ auth: {
80
+ material: { type: 'account-transport', provider: 'muse', accessToken, accountId: args.account },
81
+ descriptor: { sourceType: 'account-transport', accountProviderId: 'muse' },
82
+ },
83
+ });
84
+ // Status plus latency plus usage only; the model text stays out.
85
+ writers.out(JSON.stringify({
86
+ status: 'ok',
87
+ latencyMs: Date.now() - startedAt,
88
+ modelId: response.modelId,
89
+ ...(response.usage ? { usage: response.usage } : {}),
90
+ }));
91
+ return EXIT_CODES.ok;
92
+ }
93
+ catch (error) {
94
+ const status = error.status;
95
+ if (status === 402) {
96
+ // Measured non-seat wire: a raw MUSE_API_KEY import (muse.ts direct
97
+ // path) is not seat-billed, so serving refuses billing_not_configured.
98
+ // Seat-billed device-flow accounts (muse-code.ts) never hit this.
99
+ return fail(writers, EXIT_CODES.billingNotConfigured, 'billing_not_configured: non-seat muse.ts direct-key path; re-enroll a seat account');
100
+ }
101
+ if (typeof status === 'number') {
102
+ return fail(writers, EXIT_CODES.probeFailed, `probe failed (status ${status})`);
103
+ }
104
+ return fail(writers, EXIT_CODES.probeFailed, 'probe failed');
105
+ }
106
+ };
107
+ export const run = async (argv, deps = {}) => {
108
+ const writers = deps.writers ?? defaultWriters();
109
+ let args;
110
+ try {
111
+ args = parseArgs(argv);
112
+ }
113
+ catch (error) {
114
+ return fail(writers, EXIT_CODES.usage, error instanceof Error ? error.message : 'bad usage');
115
+ }
116
+ if (args.command === 'help') {
117
+ writers.out(usageText());
118
+ return EXIT_CODES.ok;
119
+ }
120
+ if (args.command === 'enroll')
121
+ return runEnroll(args, deps);
122
+ return runProbe(args, deps);
123
+ };
124
+ //# sourceMappingURL=enroll-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enroll-cli.js","sourceRoot":"","sources":["../../../src/node/cli/enroll-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type EnrollCliDeps, type ParsedArgs } from './enroll-args.js';
2
+ export declare const runEnroll: (args: ParsedArgs, deps?: EnrollCliDeps) => Promise<number>;
3
+ //# sourceMappingURL=enroll-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enroll-command.d.ts","sourceRoot":"","sources":["../../../src/node/cli/enroll-command.ts"],"names":[],"mappings":"AAOA,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AA0B1B,eAAO,MAAM,SAAS,SACd,UAAU,SACV,aAAa,KAClB,QAAQ,MAAM,CAsDhB,CAAC"}
@@ -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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"}
@@ -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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"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"}
@@ -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';
@@ -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,GAChC,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"}
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
- constructor(directory?: string);
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;gBAGjC,SAAS,SAE0C;IAK/C,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;YA+Bb,qBAAqB;YA4BrB,kBAAkB;YAOlB,wBAAwB;YAQxB,eAAe;CAO9B"}
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":"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"}
1
+ {"version":3,"file":"encrypted-file-keyring.js","sourceRoot":"","sources":["../../../src/node/keyring/encrypted-file-keyring.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,14 @@ export type ProviderStatus = 'ready' | 'planned';
4
4
  export type ProviderFamily = 'openai' | 'google' | 'anthropic' | 'mistral' | 'cohere' | 'meta' | 'typesafe';
5
5
  export type ReasoningTier = 'none' | 'light' | 'standard' | 'advanced';
6
6
  export type ModelTaskHint = 'chat' | 'structured' | 'summary' | 'doc';
7
- export declare const knownModelIds: readonly ["gpt-5.6-sol", "gpt-6-sol", "gpt-6.1-sol", "gpt-6-astra", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-6-luna", "gpt-5.5", "gpt-5.4-nano", "gpt-4.1-nano", "gemini-3.7-flash", "gemini-3.8-flash", "gemini-4-argon", "gemini-3.5-flash", "gemini-3.1-flash-lite", "claude-sonnet-5", "claude-opus-5", "claude-opus-4-8", "claude-fable-5", "claude-fable-5-1", "mistral-small-2603", "magistral-medium-2509", "mistral-large-4", "mistral-medium-3.5", "zai-glm-5-3", "command-a-03-2025", "command-a-reasoning-08-2025", "google/gemini-3.5-flash@gcp", "google/gemini-3.1-flash-lite@gcp", "anthropic/claude-sonnet-4-6@gcp", "anthropic/claude-opus-4-6@gcp", "laneformer-2b-it", "muse-spark-1.3", "muse-spark-1.3-contributor", "muse-wonder-1.0", "muse-wonder-full-1.0"];
7
+ export declare const knownModelIds: readonly ["gpt-5.6-sol", "gpt-6-sol", "gpt-6.1-sol", "gpt-6-astra", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-6-luna", "gpt-5.5", "gpt-5.4-nano", "gpt-4.1-nano", "gemini-3.7-flash", "gemini-3.8-flash", "gemini-4-argon", "gemini-4-carbon", "gemini-3.5-flash", "gemini-3.1-flash-lite", "claude-sonnet-5", "claude-opus-5", "claude-opus-4-8", "claude-fable-5", "claude-fable-5-1", "claude-fable-5-2", "mistral-small-2603", "magistral-medium-2509", "mistral-large-4", "mistral-medium-3.5", "zai-glm-5-3", "command-a-03-2025", "command-a-reasoning-08-2025", "google/gemini-3.5-flash@gcp", "google/gemini-3.1-flash-lite@gcp", "anthropic/claude-sonnet-4-6@gcp", "anthropic/claude-opus-4-6@gcp", "laneformer-2b-it", "muse-spark-1.3", "muse-spark-1.3-contributor", "muse-wonder-1.0", "muse-wonder-full-1.0"];
8
8
  export type KnownModelId = (typeof knownModelIds)[number];
9
9
  export type ModelId = KnownModelId | (string & {});
10
10
  export type QualifiedModelId = `${ProviderId}:${string}`;
11
11
  export declare const knownModelIdsByProvider: {
12
12
  readonly openai: readonly ["gpt-5.6-sol", "gpt-6-sol", "gpt-6.1-sol", "gpt-6-astra", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-6-luna", "gpt-5.5", "gpt-5.4-nano", "gpt-4.1-nano"];
13
- readonly gemini: readonly ["gemini-3.7-flash", "gemini-3.8-flash", "gemini-4-argon", "gemini-3.5-flash", "gemini-3.1-flash-lite"];
14
- readonly anthropic: readonly ["claude-sonnet-5", "claude-opus-5", "claude-opus-4-8", "claude-fable-5", "claude-fable-5-1"];
13
+ readonly gemini: readonly ["gemini-3.7-flash", "gemini-3.8-flash", "gemini-4-argon", "gemini-4-carbon", "gemini-3.5-flash", "gemini-3.1-flash-lite"];
14
+ readonly anthropic: readonly ["claude-sonnet-5", "claude-opus-5", "claude-opus-4-8", "claude-fable-5", "claude-fable-5-1", "claude-fable-5-2"];
15
15
  readonly mistral: readonly ["mistral-small-2603", "magistral-medium-2509", "mistral-large-4", "mistral-medium-3.5", "zai-glm-5-3"];
16
16
  readonly cohere: readonly ["command-a-03-2025", "command-a-reasoning-08-2025"];
17
17
  readonly gcp: readonly ["google/gemini-3.5-flash@gcp", "google/gemini-3.1-flash-lite@gcp", "anthropic/claude-sonnet-4-6@gcp", "anthropic/claude-opus-4-6@gcp"];
@@ -27,5 +27,5 @@ export declare const toQualifiedModelId: (model: ModelReference) => QualifiedMod
27
27
  export declare const antigravityModelFleet: readonly ["claude-sonnet-4-6", "claude-opus-4-6-thinking", "gemini-3-pro-high", "gemini-3-pro-low", "gpt-oss-120b-medium"];
28
28
  export type AntigravityFleetModelId = (typeof antigravityModelFleet)[number];
29
29
  export declare const isProviderId: (value: string) => value is "openai" | "gemini" | "anthropic" | "mistral" | "cohere" | "gcp" | "local" | "muse" | "typesafe";
30
- export declare const isKnownModelId: (value: string) => value is "gpt-5.6-sol" | "gpt-6-sol" | "gpt-6.1-sol" | "gpt-6-astra" | "gpt-5.6-terra" | "gpt-5.6-luna" | "gpt-6-luna" | "gpt-5.5" | "gpt-5.4-nano" | "gpt-4.1-nano" | "gemini-3.7-flash" | "gemini-3.8-flash" | "gemini-4-argon" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "claude-sonnet-5" | "claude-opus-5" | "claude-opus-4-8" | "claude-fable-5" | "claude-fable-5-1" | "mistral-small-2603" | "magistral-medium-2509" | "mistral-large-4" | "mistral-medium-3.5" | "zai-glm-5-3" | "command-a-03-2025" | "command-a-reasoning-08-2025" | "google/gemini-3.5-flash@gcp" | "google/gemini-3.1-flash-lite@gcp" | "anthropic/claude-sonnet-4-6@gcp" | "anthropic/claude-opus-4-6@gcp" | "laneformer-2b-it" | "muse-spark-1.3" | "muse-spark-1.3-contributor" | "muse-wonder-1.0" | "muse-wonder-full-1.0";
30
+ export declare const isKnownModelId: (value: string) => value is "gpt-5.6-sol" | "gpt-6-sol" | "gpt-6.1-sol" | "gpt-6-astra" | "gpt-5.6-terra" | "gpt-5.6-luna" | "gpt-6-luna" | "gpt-5.5" | "gpt-5.4-nano" | "gpt-4.1-nano" | "gemini-3.7-flash" | "gemini-3.8-flash" | "gemini-4-argon" | "gemini-4-carbon" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "claude-sonnet-5" | "claude-opus-5" | "claude-opus-4-8" | "claude-fable-5" | "claude-fable-5-1" | "claude-fable-5-2" | "mistral-small-2603" | "magistral-medium-2509" | "mistral-large-4" | "mistral-medium-3.5" | "zai-glm-5-3" | "command-a-03-2025" | "command-a-reasoning-08-2025" | "google/gemini-3.5-flash@gcp" | "google/gemini-3.1-flash-lite@gcp" | "anthropic/claude-sonnet-4-6@gcp" | "anthropic/claude-opus-4-6@gcp" | "laneformer-2b-it" | "muse-spark-1.3" | "muse-spark-1.3-contributor" | "muse-wonder-1.0" | "muse-wonder-full-1.0";
31
31
  //# sourceMappingURL=providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,qGAAsG,CAAC;AAE/H,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5G,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,KAAK,CAAC;AAEtE,eAAO,MAAM,aAAa,ovBAiEhB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG,GAAG,UAAU,IAAI,MAAM,EAAE,CAAC;AAEzD,eAAO,MAAM,uBAAuB;;;;;;;;;;CAqB4B,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,UAAW,cAAc,KAAG,gBAE1D,CAAC;AAUF,eAAO,MAAM,qBAAqB,4HAMxB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,eAAO,MAAM,YAAY,UAAW,MAAM,8GAEzC,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,MAAM,wxBAE3C,CAAC"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,qGAAsG,CAAC;AAE/H,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5G,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,KAAK,CAAC;AAEtE,eAAO,MAAM,aAAa,2xBAmEhB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG,GAAG,UAAU,IAAI,MAAM,EAAE,CAAC;AAEzD,eAAO,MAAM,uBAAuB;;;;;;;;;;CAqB4B,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,UAAW,cAAc,KAAG,gBAE1D,CAAC;AAUF,eAAO,MAAM,qBAAqB,4HAMxB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,eAAO,MAAM,YAAY,UAAW,MAAM,8GAEzC,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,MAAM,i0BAE3C,CAAC"}
package/dist/providers.js CHANGED
@@ -13,6 +13,7 @@ export const knownModelIds = [
13
13
  'gemini-3.7-flash',
14
14
  'gemini-3.8-flash',
15
15
  'gemini-4-argon',
16
+ 'gemini-4-carbon',
16
17
  'gemini-3.5-flash',
17
18
  'gemini-3.1-flash-lite',
18
19
  'claude-sonnet-5',
@@ -20,6 +21,7 @@ export const knownModelIds = [
20
21
  'claude-opus-4-8',
21
22
  'claude-fable-5',
22
23
  'claude-fable-5-1',
24
+ 'claude-fable-5-2',
23
25
  'mistral-small-2603',
24
26
  'magistral-medium-2509',
25
27
  // Mistral Large 4 ("Le Chonk", public preview 2026-10-06): 1.05T MoE, 52B
@@ -78,8 +80,8 @@ export const knownModelIdsByProvider = {
78
80
  'gpt-5.4-nano',
79
81
  'gpt-4.1-nano',
80
82
  ],
81
- gemini: ['gemini-3.7-flash', 'gemini-3.8-flash', 'gemini-4-argon', 'gemini-3.5-flash', 'gemini-3.1-flash-lite'],
82
- anthropic: ['claude-sonnet-5', 'claude-opus-5', 'claude-opus-4-8', 'claude-fable-5', 'claude-fable-5-1'],
83
+ gemini: ['gemini-3.7-flash', 'gemini-3.8-flash', 'gemini-4-argon', 'gemini-4-carbon', 'gemini-3.5-flash', 'gemini-3.1-flash-lite'],
84
+ anthropic: ['claude-sonnet-5', 'claude-opus-5', 'claude-opus-4-8', 'claude-fable-5', 'claude-fable-5-1', 'claude-fable-5-2'],
83
85
  mistral: ['mistral-small-2603', 'magistral-medium-2509', 'mistral-large-4', 'mistral-medium-3.5', 'zai-glm-5-3'],
84
86
  cohere: ['command-a-03-2025', 'command-a-reasoning-08-2025'],
85
87
  gcp: ['google/gemini-3.5-flash@gcp', 'google/gemini-3.1-flash-lite@gcp', 'anthropic/claude-sonnet-4-6@gcp', 'anthropic/claude-opus-4-6@gcp'],
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routing-targets.d.ts","sourceRoot":"","sources":["../src/routing-targets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing-targets.d.ts","sourceRoot":"","sources":["../src/routing-targets.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,9 @@ export const DEFAULT_TARGET_MAPPINGS = {
38
38
  'claude-fable-5-1': {
39
39
  providerId: 'anthropic', transportProviderId: 'claude-code', model: 'claude-fable-5-1',
40
40
  },
41
+ 'claude-fable-5-2': {
42
+ providerId: 'anthropic', transportProviderId: 'claude-code', model: 'claude-fable-5-2',
43
+ },
41
44
  'gpt-5.6-luna': {
42
45
  providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-luna',
43
46
  },
@@ -65,6 +68,9 @@ export const DEFAULT_TARGET_MAPPINGS = {
65
68
  'gemini-4-argon': {
66
69
  providerId: 'gemini', transportProviderId: 'cloud-code', model: 'gemini-4-argon',
67
70
  },
71
+ 'gemini-4-carbon': {
72
+ providerId: 'gemini', transportProviderId: 'cloud-code', model: 'gemini-4-carbon',
73
+ },
68
74
  'gpt-5.6-terra': {
69
75
  providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-terra',
70
76
  },
@@ -119,6 +125,15 @@ export const MUSE_ROUTE_MODEL = {
119
125
  'claude-fable-5-1-max': 'muse-wonder-1.0',
120
126
  'claude-fable-5-1-medium': 'muse-wonder-1.0',
121
127
  'claude-fable-5-1-low': 'muse-wonder-1.0',
128
+ // Owner mapping 2026-11-10: Fable 5.2 requests are served by Gemini 4
129
+ // Carbon. No `-contributor` Carbon variant exists in the catalog, so the
130
+ // mapped base/high/xhigh aliases carry no muse candidate (the profile
131
+ // guard filters a non-muse serving model) and the cloud slot below serves
132
+ // Carbon. The max/medium/low aliases keep the default contributor muse
133
+ // candidate like every other unlisted alias.
134
+ 'claude-fable-5-2': 'gemini-4-carbon',
135
+ 'claude-fable-5-2-high': 'gemini-4-carbon',
136
+ 'claude-fable-5-2-xhigh': 'gemini-4-carbon',
122
137
  };
123
138
  /**
124
139
  * Muse insertion effort per launch alias (BR75-D1). Aliases absent from this
@@ -137,6 +152,12 @@ export const MUSE_ROUTE_EFFORT = {
137
152
  'claude-fable-5-1-max': 'max',
138
153
  'claude-fable-5-1-medium': 'high',
139
154
  'claude-fable-5-1-low': 'medium',
155
+ 'claude-fable-5-2': 'max',
156
+ 'claude-fable-5-2-high': 'max',
157
+ 'claude-fable-5-2-xhigh': 'max',
158
+ 'claude-fable-5-2-max': 'max',
159
+ 'claude-fable-5-2-medium': 'high',
160
+ 'claude-fable-5-2-low': 'medium',
140
161
  'claude-opus-5': 'high',
141
162
  'claude-opus-5-high': 'xhigh',
142
163
  'claude-opus-5-xhigh': 'xhigh',
@@ -206,16 +227,24 @@ export const GLM_ROUTE_EFFORT = {
206
227
  'claude-fable-5-1-high': 'max',
207
228
  'claude-fable-5-1-xhigh': 'max',
208
229
  'claude-fable-5-1-max': 'max',
230
+ 'claude-fable-5-2': 'high',
231
+ 'claude-fable-5-2-low': 'high',
232
+ 'claude-fable-5-2-medium': 'high',
233
+ 'claude-fable-5-2-high': 'max',
234
+ 'claude-fable-5-2-xhigh': 'max',
235
+ 'claude-fable-5-2-max': 'max',
209
236
  };
210
237
  export const GLM_FALLBACK_MODEL = 'zai-glm-5-3';
211
238
  // Codex slot policy (BR-C55): GPT-6 Astra serves only claude-opus-5-5-max
212
- // and the claude-fable-5-1 family; every other row serves GPT-6.1 Sol at
213
- // +1 effort rung. Fable 5.1 keeps Astra with inherited effort.
239
+ // and the claude-fable-5-1 and claude-fable-5-2 families; every other row
240
+ // serves GPT-6.1 Sol at +1 effort rung. Fable 5.1 and 5.2 keep Astra with
241
+ // inherited effort.
214
242
  // Cloud slot policy (owner request 2026-10-15, Artificial Analysis
215
243
  // Intelligence Index read 2026-10-15, see the MUSE_ROUTE_MODEL note): Gemini 4
216
244
  // Argon at high effort serves the Opus 5.5 (base/medium/high/xhigh/max),
217
- // Sonnet 5.5 (high/xhigh/max) and Fable 5.1 rows; Opus 5.5 low and
218
- // Sonnet 5.5 medium keep Gemini 3.8 Flash high, Sonnet 5.5 low keeps
245
+ // Sonnet 5.5 (high/xhigh/max) and Fable 5.1 rows; Gemini 4 Carbon at high
246
+ // effort serves the Fable 5.2 rows (owner mapping 2026-11-10); Opus 5.5 low
247
+ // and Sonnet 5.5 medium keep Gemini 3.8 Flash high, Sonnet 5.5 low keeps
219
248
  // 3.8 Flash medium; every other row keeps 3.8 Flash high.
220
249
  export const STANDARD_ROUTE_DEFINITIONS = [
221
250
  { requestedId: 'claude-opus-5', codexModel: 'gpt-6.1-sol', cloudModel: 'gemini-3.8-flash', codexEffort: 'high', cloudEffort: 'high' },
@@ -246,6 +275,12 @@ export const STANDARD_ROUTE_DEFINITIONS = [
246
275
  { requestedId: 'claude-fable-5-1-max', codexModel: 'gpt-6-astra', cloudModel: 'gemini-4-argon', effort: 'max', cloudEffort: 'high' },
247
276
  { requestedId: 'claude-fable-5-1-medium', codexModel: 'gpt-6-astra', cloudModel: 'gemini-4-argon', effort: 'medium', cloudEffort: 'high' },
248
277
  { requestedId: 'claude-fable-5-1-low', codexModel: 'gpt-6-astra', cloudModel: 'gemini-4-argon', effort: 'low', cloudEffort: 'high' },
278
+ { requestedId: 'claude-fable-5-2', codexModel: 'gpt-6-astra', cloudModel: 'gemini-4-carbon', cloudEffort: 'high' },
279
+ { requestedId: 'claude-fable-5-2-high', codexModel: 'gpt-6-astra', cloudModel: 'gemini-4-carbon', effort: 'high', cloudEffort: 'high' },
280
+ { requestedId: 'claude-fable-5-2-xhigh', codexModel: 'gpt-6-astra', cloudModel: 'gemini-4-carbon', effort: 'xhigh', cloudEffort: 'high' },
281
+ { requestedId: 'claude-fable-5-2-max', codexModel: 'gpt-6-astra', cloudModel: 'gemini-4-carbon', effort: 'max', cloudEffort: 'high' },
282
+ { requestedId: 'claude-fable-5-2-medium', codexModel: 'gpt-6-astra', cloudModel: 'gemini-4-carbon', effort: 'medium', cloudEffort: 'high' },
283
+ { requestedId: 'claude-fable-5-2-low', codexModel: 'gpt-6-astra', cloudModel: 'gemini-4-carbon', effort: 'low', cloudEffort: 'high' },
249
284
  { requestedId: 'claude-opus-5-5', codexModel: 'gpt-6.1-sol', cloudModel: 'gemini-4-argon', codexEffort: 'high', cloudEffort: 'high' },
250
285
  { requestedId: 'claude-opus-5-5-high', codexModel: 'gpt-6.1-sol', cloudModel: 'gemini-4-argon', effort: 'high', codexEffort: 'xhigh', cloudEffort: 'high' },
251
286
  { requestedId: 'claude-opus-5-5-xhigh', codexModel: 'gpt-6.1-sol', cloudModel: 'gemini-4-argon', effort: 'xhigh', codexEffort: 'max', cloudEffort: 'high' },