@sentropic/llm-mesh 0.32.1 → 0.32.3

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 (54) hide show
  1. package/dist/account-transports.d.ts +4 -2
  2. package/dist/account-transports.d.ts.map +1 -1
  3. package/dist/account-transports.js +10 -0
  4. package/dist/account-transports.js.map +1 -1
  5. package/dist/decision/descriptor-validation.js +2 -2
  6. package/dist/decision/descriptor-validation.js.map +1 -1
  7. package/dist/decision/descriptor.d.ts.map +1 -1
  8. package/dist/decision/descriptor.js +4 -2
  9. package/dist/decision/descriptor.js.map +1 -1
  10. package/dist/decision/openai-descriptor.d.ts +1 -1
  11. package/dist/decision/openai-descriptor.d.ts.map +1 -1
  12. package/dist/decision/openai-descriptor.js +4 -3
  13. package/dist/decision/openai-descriptor.js.map +1 -1
  14. package/dist/enrollment/agy-cli-import.d.ts +32 -0
  15. package/dist/enrollment/agy-cli-import.d.ts.map +1 -0
  16. package/dist/enrollment/agy-cli-import.js +61 -0
  17. package/dist/enrollment/agy-cli-import.js.map +1 -0
  18. package/dist/enrollment/cli-seat-import.d.ts +39 -0
  19. package/dist/enrollment/cli-seat-import.d.ts.map +1 -0
  20. package/dist/enrollment/cli-seat-import.js +111 -0
  21. package/dist/enrollment/cli-seat-import.js.map +1 -0
  22. package/dist/enrollment/index.d.ts +4 -0
  23. package/dist/enrollment/index.d.ts.map +1 -1
  24. package/dist/enrollment/index.js +2 -1
  25. package/dist/enrollment/index.js.map +1 -1
  26. package/dist/external-seat-marker.d.ts +21 -0
  27. package/dist/external-seat-marker.d.ts.map +1 -0
  28. package/dist/external-seat-marker.js +39 -0
  29. package/dist/external-seat-marker.js.map +1 -0
  30. package/dist/node/cli-seat-store-reader.d.ts +29 -0
  31. package/dist/node/cli-seat-store-reader.d.ts.map +1 -0
  32. package/dist/node/cli-seat-store-reader.js +75 -0
  33. package/dist/node/cli-seat-store-reader.js.map +1 -0
  34. package/dist/node/index.d.ts +6 -0
  35. package/dist/node/index.d.ts.map +1 -1
  36. package/dist/node/index.js +3 -0
  37. package/dist/node/index.js.map +1 -1
  38. package/dist/node/seat-sidecar-file-backend.d.ts +24 -0
  39. package/dist/node/seat-sidecar-file-backend.d.ts.map +1 -0
  40. package/dist/node/seat-sidecar-file-backend.js +79 -0
  41. package/dist/node/seat-sidecar-file-backend.js.map +1 -0
  42. package/dist/service/external-seat-authority.d.ts +16 -0
  43. package/dist/service/external-seat-authority.d.ts.map +1 -0
  44. package/dist/service/external-seat-authority.js +45 -0
  45. package/dist/service/external-seat-authority.js.map +1 -0
  46. package/dist/service/facade.d.ts +9 -0
  47. package/dist/service/facade.d.ts.map +1 -1
  48. package/dist/service/facade.js +3 -0
  49. package/dist/service/facade.js.map +1 -1
  50. package/dist/service/local-account-transport-service.d.ts +18 -0
  51. package/dist/service/local-account-transport-service.d.ts.map +1 -1
  52. package/dist/service/local-account-transport-service.js +130 -2
  53. package/dist/service/local-account-transport-service.js.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,39 @@
1
+ // @sentropic/llm-mesh/external-seat-marker.ts
2
+ //
3
+ // Leaf module for the trusted external-custody marker (no imports): the
4
+ // metadata key, the authority record, and the marker predicates. Both
5
+ // `account-transports.ts` (outcome classification) and
6
+ // `service/external-seat-authority.ts` (refresh policy) read from here so
7
+ // the base transport layer never imports the service layer.
8
+ /** Metadata key carrying the trusted external-custody marker. */
9
+ export const SEAT_EXTERNAL_AUTHORITY_KEY = 'seatExternalAuthority';
10
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
11
+ /** Read the trusted marker; malformed markers stay fail-closed (external). */
12
+ export function readExternalSeatAuthority(metadata) {
13
+ if (!metadata)
14
+ return null;
15
+ const marker = metadata[SEAT_EXTERNAL_AUTHORITY_KEY];
16
+ if (marker === undefined || marker === null)
17
+ return null;
18
+ if (!isRecord(marker)) {
19
+ return { seatRef: 'unknown', ownerScope: 'unknown', epoch: 0, generation: 0, operationId: 'unknown' };
20
+ }
21
+ const text = (key) => (typeof marker[key] === 'string' ? marker[key] : 'unknown');
22
+ const integer = (key) => typeof marker[key] === 'number' && Number.isInteger(marker[key]) ? marker[key] : 0;
23
+ return {
24
+ seatRef: text('seatRef'),
25
+ ownerScope: text('ownerScope'),
26
+ epoch: integer('epoch'),
27
+ generation: integer('generation'),
28
+ operationId: text('operationId'),
29
+ };
30
+ }
31
+ /** Attach the trusted marker; returns a new metadata record. */
32
+ export function markExternalSeatAuthority(metadata, authority) {
33
+ return { ...(metadata ?? {}), [SEAT_EXTERNAL_AUTHORITY_KEY]: { ...authority } };
34
+ }
35
+ /** True when the trusted import path marked this account externally held. */
36
+ export function isExternalSeatAccount(account) {
37
+ return readExternalSeatAuthority(account.metadata) !== null;
38
+ }
39
+ //# sourceMappingURL=external-seat-marker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-seat-marker.js","sourceRoot":"","sources":["../src/external-seat-marker.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,EAAE;AACF,wEAAwE;AACxE,sEAAsE;AACtE,uDAAuD;AACvD,0EAA0E;AAC1E,4DAA4D;AAE5D,iEAAiE;AACjE,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AAenE,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,8EAA8E;AAC9E,MAAM,UAAU,yBAAyB,CACvC,QAA6C;IAE7C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IACrD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IACxG,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAM,CAAC,GAAG,CAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9G,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE,CACtC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,GAAG,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;QAC9B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC;QACjC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,yBAAyB,CACvC,QAA6C,EAC7C,SAAgC;IAEhC,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC,2BAA2B,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC;AAClF,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACxD,OAAO,yBAAyB,CAAC,OAAO,CAAC,QAA+C,CAAC,KAAK,IAAI,CAAC;AACrG,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { SeatCli } from '../enrollment/seat-bundle.js';
2
+ /** Explicit lab-record selector; daily profiles are never a default. */
3
+ export interface SeatRecordSelector {
4
+ cli: SeatCli;
5
+ profileLabel: string;
6
+ }
7
+ /** Allowlisted categories only — no credential bytes, paths, or secrets. */
8
+ export interface SeatStoreRecordDescriptor {
9
+ cli: SeatCli;
10
+ profileLabel: string;
11
+ backend: 'keyring' | 'file' | 'credential-manager' | 'keychain' | 'synthetic';
12
+ schemaVersion: string | null;
13
+ credentialClass: 'renewable' | 'static-key' | 'access-only' | 'unknown';
14
+ refreshCapable: boolean | null;
15
+ supported: boolean;
16
+ reason?: string;
17
+ }
18
+ /** Injected backend adapter; tests supply synthetic backends. */
19
+ export interface SeatStoreBackend {
20
+ readonly cli: SeatCli;
21
+ readonly backend: SeatStoreRecordDescriptor['backend'];
22
+ readSelectedRecord(selector: SeatRecordSelector): Promise<Omit<SeatStoreRecordDescriptor, 'cli' | 'profileLabel' | 'backend'> | null>;
23
+ }
24
+ export declare class SeatStoreReadError extends Error {
25
+ constructor(message: string);
26
+ }
27
+ /** Inspect one explicitly selected lab record; no live-home fallback. */
28
+ export declare function inspectSeatStoreRecord(backends: readonly SeatStoreBackend[], selector: SeatRecordSelector): Promise<SeatStoreRecordDescriptor>;
29
+ //# sourceMappingURL=cli-seat-store-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-seat-store-reader.d.ts","sourceRoot":"","sources":["../../src/node/cli-seat-store-reader.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAE5D,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,oBAAoB,GAAG,UAAU,GAAG,WAAW,CAAC;IAC9E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC;IACxE,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACvD,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAC5D,yBAAyB,EAAE,KAAK,GAAG,cAAc,GAAG,SAAS,CAC9D,GAAG,IAAI,CAAC,CAAC;CACX;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAID,yEAAyE;AACzE,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,yBAAyB,CAAC,CAwDpC"}
@@ -0,0 +1,75 @@
1
+ // @sentropic/llm-mesh/node/cli-seat-store-reader.ts
2
+ //
3
+ // L1-local bounded reader for owner dry-run format inspection. It reads
4
+ // ONLY the explicitly selected lab record through an injected backend
5
+ // adapter and returns allowlisted schema/version/capability categories.
6
+ // It performs no refresh, mint, provider call, GitHub write, custody
7
+ // transfer, or activation, and never falls back to the live home, keyring,
8
+ // or environment. Unsupported fields and backends return an
9
+ // unverified/refused result, never raw values.
10
+ export class SeatStoreReadError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = 'SeatStoreReadError';
14
+ }
15
+ }
16
+ const CLIS = ['agy', 'codex', 'vibe', 'muse', 'claude'];
17
+ /** Inspect one explicitly selected lab record; no live-home fallback. */
18
+ export async function inspectSeatStoreRecord(backends, selector) {
19
+ if (!CLIS.includes(selector.cli)) {
20
+ throw new SeatStoreReadError(`unsupported CLI: ${String(selector.cli)}`);
21
+ }
22
+ if (typeof selector.profileLabel !== 'string' || selector.profileLabel.length === 0) {
23
+ throw new SeatStoreReadError('a non-empty lab profile label is required');
24
+ }
25
+ const backend = backends.find((candidate) => candidate.cli === selector.cli);
26
+ if (!backend) {
27
+ return {
28
+ cli: selector.cli,
29
+ profileLabel: selector.profileLabel,
30
+ backend: 'synthetic',
31
+ schemaVersion: null,
32
+ credentialClass: 'unknown',
33
+ refreshCapable: null,
34
+ supported: false,
35
+ reason: 'no backend registered for this CLI',
36
+ };
37
+ }
38
+ const record = await backend.readSelectedRecord(selector);
39
+ if (!record) {
40
+ return {
41
+ cli: selector.cli,
42
+ profileLabel: selector.profileLabel,
43
+ backend: backend.backend,
44
+ schemaVersion: null,
45
+ credentialClass: 'unknown',
46
+ refreshCapable: null,
47
+ supported: false,
48
+ reason: 'selected lab record not found',
49
+ };
50
+ }
51
+ // Forward allowlisted categories only; backend prose is never
52
+ // forwarded verbatim — a refusal carries the reader-fixed reason.
53
+ if (!record.supported) {
54
+ return {
55
+ cli: selector.cli,
56
+ profileLabel: selector.profileLabel,
57
+ backend: backend.backend,
58
+ schemaVersion: null,
59
+ credentialClass: 'unknown',
60
+ refreshCapable: null,
61
+ supported: false,
62
+ reason: 'backend refused the selected lab record',
63
+ };
64
+ }
65
+ return {
66
+ cli: selector.cli,
67
+ profileLabel: selector.profileLabel,
68
+ backend: backend.backend,
69
+ schemaVersion: record.schemaVersion,
70
+ credentialClass: record.credentialClass,
71
+ refreshCapable: record.refreshCapable,
72
+ supported: true,
73
+ };
74
+ }
75
+ //# sourceMappingURL=cli-seat-store-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-seat-store-reader.js","sourceRoot":"","sources":["../../src/node/cli-seat-store-reader.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,wEAAwE;AACxE,sEAAsE;AACtE,wEAAwE;AACxE,qEAAqE;AACrE,2EAA2E;AAC3E,4DAA4D;AAC5D,+CAA+C;AA+B/C,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,IAAI,GAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE5E,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAqC,EACrC,QAA4B;IAE5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,kBAAkB,CAAC,2CAA2C,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,OAAO,EAAE,WAAW;YACpB,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,SAAS;YAC1B,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,oCAAoC;SAC7C,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,SAAS;YAC1B,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,+BAA+B;SACxC,CAAC;IACJ,CAAC;IACD,8DAA8D;IAC9D,kEAAkE;IAClE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO;YACL,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,SAAS;YAC1B,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,yCAAyC;SAClD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC"}
@@ -1,6 +1,12 @@
1
1
  export type { KeyringAdapter } from '../service/facade.js';
2
2
  export type { SeatAccessProjection, SeatAuthority, SeatBundleIdentity, SeatBundleLifecycle, SeatBundleProvenance, SeatBundleV1, SeatCanonicalMaterial, SeatCli, SeatCredentialClass, SeatLineageTuple, SeatReceipt, SeatRefreshAuthority, SeatTransition, SeatValidationCode, SeatValidationContext, SeatValidationResult, } from '../enrollment/seat-bundle.js';
3
3
  export { SEAT_AGY_APPLICATION_TUPLE, SEAT_BUNDLE_MAX_BYTES, SEAT_BUNDLE_SCHEMA_VERSION, SEAT_PACKAGE_PROVIDER_ID, classifyTransition, createReceipt, isIdempotentReimport, isStaleGeneration, resolveEffectiveAuthority, validateSeatBundle, } from '../enrollment/seat-bundle.js';
4
+ export type { SeatRecordSelector, SeatStoreBackend, SeatStoreRecordDescriptor, } from './cli-seat-store-reader.js';
5
+ export { inspectSeatStoreRecord, SeatStoreReadError } from './cli-seat-store-reader.js';
6
+ export type { SeatSidecar } from './seat-sidecar-file-backend.js';
7
+ export { SEAT_SIDECAR_MAX_BYTES, SeatSidecarFileBackend, parseSeatSidecar } from './seat-sidecar-file-backend.js';
8
+ export type { SeatExternalAuthority } from '../service/external-seat-authority.js';
9
+ export { SEAT_EXTERNAL_AUTHORITY_KEY, isDeviceFlowSeatAccount, isExternalSeatAccount, isExternalSeatUnavailable, markExternalSeatAuthority, readExternalSeatAuthority, } from '../service/external-seat-authority.js';
4
10
  export { EncryptedFileKeyring } from './keyring/encrypted-file-keyring.js';
5
11
  export { EnvKeyring } from './keyring/env-keyring.js';
6
12
  export { InMemoryKeyring } from './keyring/in-memory-keyring.js';
@@ -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,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,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"}
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,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,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"}
@@ -1,4 +1,7 @@
1
1
  export { SEAT_AGY_APPLICATION_TUPLE, SEAT_BUNDLE_MAX_BYTES, SEAT_BUNDLE_SCHEMA_VERSION, SEAT_PACKAGE_PROVIDER_ID, classifyTransition, createReceipt, isIdempotentReimport, isStaleGeneration, resolveEffectiveAuthority, validateSeatBundle, } from '../enrollment/seat-bundle.js';
2
+ export { inspectSeatStoreRecord, SeatStoreReadError } from './cli-seat-store-reader.js';
3
+ export { SEAT_SIDECAR_MAX_BYTES, SeatSidecarFileBackend, parseSeatSidecar } from './seat-sidecar-file-backend.js';
4
+ export { SEAT_EXTERNAL_AUTHORITY_KEY, isDeviceFlowSeatAccount, isExternalSeatAccount, isExternalSeatUnavailable, markExternalSeatAuthority, readExternalSeatAuthority, } from '../service/external-seat-authority.js';
2
5
  export { EncryptedFileKeyring } from './keyring/encrypted-file-keyring.js';
3
6
  export { EnvKeyring } from './keyring/env-keyring.js';
4
7
  export { InMemoryKeyring } from './keyring/in-memory-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;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,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"}
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,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,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"}
@@ -0,0 +1,24 @@
1
+ import type { SeatCli } from '../enrollment/seat-bundle.js';
2
+ import { type SeatRecordSelector, type SeatStoreBackend, type SeatStoreRecordDescriptor } from './cli-seat-store-reader.js';
3
+ /** Documented sidecar format: categories only, never credential material. */
4
+ export interface SeatSidecar {
5
+ cli: SeatCli;
6
+ profileLabel: string;
7
+ schemaVersion: string;
8
+ credentialClass: 'renewable' | 'static-key' | 'access-only';
9
+ refreshCapable: boolean;
10
+ }
11
+ export declare const SEAT_SIDECAR_MAX_BYTES = 4096;
12
+ type Categories = Omit<SeatStoreRecordDescriptor, 'cli' | 'profileLabel' | 'backend'>;
13
+ /** Parse and validate sidecar categories; throws SeatStoreReadError without echoing content. */
14
+ export declare function parseSeatSidecar(raw: string): Categories;
15
+ /** File backend over one explicit owner-provided sidecar path. */
16
+ export declare class SeatSidecarFileBackend implements SeatStoreBackend {
17
+ readonly cli: SeatCli;
18
+ readonly backend: "file";
19
+ private readonly sidecarPath;
20
+ constructor(cli: SeatCli, sidecarPath: string);
21
+ readSelectedRecord(selector: SeatRecordSelector): Promise<Categories | null>;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=seat-sidecar-file-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat-sidecar-file-backend.d.ts","sourceRoot":"","sources":["../../src/node/seat-sidecar-file-backend.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC/B,MAAM,4BAA4B,CAAC;AAEpC,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC;IAC5D,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAK3C,KAAK,UAAU,GAAG,IAAI,CAAC,yBAAyB,EAAE,KAAK,GAAG,cAAc,GAAG,SAAS,CAAC,CAAC;AAEtF,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CA6BxD;AAED,kEAAkE;AAClE,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,OAAO,SAAmB;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM;IAMvC,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAmBnF"}
@@ -0,0 +1,79 @@
1
+ // @sentropic/llm-mesh/node/seat-sidecar-file-backend.ts
2
+ //
3
+ // L1 owner helper backend: reads an explicitly provided JSON sidecar file
4
+ // the owner exported for dry-run format inspection. No home probing, no
5
+ // default paths, no keyring or environment reads. Only allowlisted,
6
+ // bounded categories are returned; anything else is refused or unverified.
7
+ import { readFile } from 'node:fs/promises';
8
+ import { SeatStoreReadError, } from './cli-seat-store-reader.js';
9
+ export const SEAT_SIDECAR_MAX_BYTES = 4096;
10
+ // Schema versions are machine labels, not free text: no spaces, quotes,
11
+ // or control characters that could smuggle content through the category.
12
+ const SCHEMA_VERSION_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/;
13
+ /** Parse and validate sidecar categories; throws SeatStoreReadError without echoing content. */
14
+ export function parseSeatSidecar(raw) {
15
+ if (new TextEncoder().encode(raw).length > SEAT_SIDECAR_MAX_BYTES) {
16
+ throw new SeatStoreReadError('sidecar exceeds the bounded size');
17
+ }
18
+ let parsed;
19
+ try {
20
+ parsed = JSON.parse(raw);
21
+ }
22
+ catch {
23
+ throw new SeatStoreReadError('sidecar is not JSON');
24
+ }
25
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
26
+ throw new SeatStoreReadError('sidecar has no category record');
27
+ }
28
+ const record = parsed;
29
+ const rawSchemaVersion = record['schemaVersion'];
30
+ const schemaVersion = typeof rawSchemaVersion === 'string' && SCHEMA_VERSION_PATTERN.test(rawSchemaVersion)
31
+ ? rawSchemaVersion
32
+ : null;
33
+ const credentialClass = record['credentialClass'];
34
+ const refreshCapable = record['refreshCapable'];
35
+ if (!schemaVersion)
36
+ throw new SeatStoreReadError('sidecar has no bounded schema version');
37
+ if (credentialClass !== 'renewable' && credentialClass !== 'static-key' && credentialClass !== 'access-only') {
38
+ throw new SeatStoreReadError('sidecar has no known credential class');
39
+ }
40
+ if (typeof refreshCapable !== 'boolean') {
41
+ throw new SeatStoreReadError('sidecar has no refresh capability flag');
42
+ }
43
+ return { schemaVersion, credentialClass, refreshCapable, supported: true };
44
+ }
45
+ /** File backend over one explicit owner-provided sidecar path. */
46
+ export class SeatSidecarFileBackend {
47
+ cli;
48
+ backend = 'file';
49
+ sidecarPath;
50
+ constructor(cli, sidecarPath) {
51
+ if (!sidecarPath)
52
+ throw new SeatStoreReadError('an explicit sidecar path is required');
53
+ this.cli = cli;
54
+ this.sidecarPath = sidecarPath;
55
+ }
56
+ async readSelectedRecord(selector) {
57
+ let raw;
58
+ try {
59
+ raw = await readFile(this.sidecarPath, 'utf8');
60
+ }
61
+ catch {
62
+ return null;
63
+ }
64
+ if (new TextEncoder().encode(raw).length > SEAT_SIDECAR_MAX_BYTES) {
65
+ throw new SeatStoreReadError('sidecar exceeds the bounded size');
66
+ }
67
+ let sidecar;
68
+ try {
69
+ sidecar = JSON.parse(raw);
70
+ }
71
+ catch {
72
+ throw new SeatStoreReadError('sidecar is not JSON');
73
+ }
74
+ if (sidecar.cli !== selector.cli || sidecar.profileLabel !== selector.profileLabel)
75
+ return null;
76
+ return parseSeatSidecar(raw);
77
+ }
78
+ }
79
+ //# sourceMappingURL=seat-sidecar-file-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat-sidecar-file-backend.js","sourceRoot":"","sources":["../../src/node/seat-sidecar-file-backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type AccountTransportAccount } from '../account-transports.js';
2
+ export { isExternalSeatAccount, markExternalSeatAuthority, readExternalSeatAuthority, SEAT_EXTERNAL_AUTHORITY_KEY, type SeatExternalAuthority, } from '../external-seat-marker.js';
3
+ type AccountLike = Pick<AccountTransportAccount, 'accountId' | 'metadata'>;
4
+ /** True for a Muse device-flow grant, which owns no CLI-store refresh. */
5
+ export declare function isDeviceFlowSeatAccount(account: AccountLike): boolean;
6
+ /**
7
+ * True when an externally held seat must not be served: missing, empty, or
8
+ * unparseable expiry counts as unavailable, exactly like an elapsed one.
9
+ * Unknown expiry is not infinite validity.
10
+ */
11
+ export declare function isExternalSeatUnavailable(account: Pick<AccountTransportAccount, 'expiresAt'>, nowMs: number): boolean;
12
+ /** Refuse a renewal attempt for an externally held seat. */
13
+ export declare function throwExternalSeatUnavailable(account: AccountLike): never;
14
+ /** Refuse a renewal attempt for a device-flow Muse seat. */
15
+ export declare function throwDeviceFlowSeatUnavailable(account: AccountLike): never;
16
+ //# sourceMappingURL=external-seat-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-seat-authority.d.ts","sourceRoot":"","sources":["../../src/service/external-seat-authority.ts"],"names":[],"mappings":"AAWA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,4BAA4B,CAAC;AAGpC,KAAK,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC;AAK3E,0EAA0E;AAC1E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAGrE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC,EACnD,KAAK,EAAE,MAAM,GACZ,OAAO,CAKT;AAED,4DAA4D;AAC5D,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,WAAW,GAAG,KAAK,CAOxE;AAED,4DAA4D;AAC5D,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,WAAW,GAAG,KAAK,CAK1E"}
@@ -0,0 +1,45 @@
1
+ // @sentropic/llm-mesh/service/external-seat-authority.ts
2
+ //
3
+ // L1 external refresh policy for centrally custodied CI seats. An account
4
+ // carrying the trusted import marker is maintained by the custodian only:
5
+ // the mesh never renews it. On expiry or 401 it becomes `access-unavailable`
6
+ // and waits for the next imported projection. The marker never erases the
7
+ // owner claim and a missing refresh token alone is not authority.
8
+ //
9
+ // Device-flow Muse seats are routed the same way: their grant must never be
10
+ // refreshed by re-reading the CLI login store, which may hold another login.
11
+ import { AccountTransportAcquireError, } from '../account-transports.js';
12
+ // The marker key, record, and predicates live in the leaf module so the
13
+ // base transport layer can classify outcomes without importing services.
14
+ export { isExternalSeatAccount, markExternalSeatAuthority, readExternalSeatAuthority, SEAT_EXTERNAL_AUTHORITY_KEY, } from '../external-seat-marker.js';
15
+ import { readExternalSeatAuthority } from '../external-seat-marker.js';
16
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
17
+ /** True for a Muse device-flow grant, which owns no CLI-store refresh. */
18
+ export function isDeviceFlowSeatAccount(account) {
19
+ const metadata = account.metadata;
20
+ return isRecord(metadata) && metadata['auth_type'] === 'device-flow';
21
+ }
22
+ /**
23
+ * True when an externally held seat must not be served: missing, empty, or
24
+ * unparseable expiry counts as unavailable, exactly like an elapsed one.
25
+ * Unknown expiry is not infinite validity.
26
+ */
27
+ export function isExternalSeatUnavailable(account, nowMs) {
28
+ if (!account.expiresAt)
29
+ return true;
30
+ const expiresAtMs = new Date(account.expiresAt).getTime();
31
+ if (!Number.isFinite(expiresAtMs))
32
+ return true;
33
+ return expiresAtMs <= nowMs;
34
+ }
35
+ /** Refuse a renewal attempt for an externally held seat. */
36
+ export function throwExternalSeatUnavailable(account) {
37
+ const authority = readExternalSeatAuthority(account.metadata);
38
+ const seatRef = authority?.seatRef ?? account.accountId;
39
+ throw new AccountTransportAcquireError(`Seat ${seatRef} is access-unavailable; awaiting the next imported projection`, 'access-unavailable');
40
+ }
41
+ /** Refuse a renewal attempt for a device-flow Muse seat. */
42
+ export function throwDeviceFlowSeatUnavailable(account) {
43
+ throw new AccountTransportAcquireError(`Seat ${account.accountId} is access-unavailable; device grants never refresh from the CLI store`, 'access-unavailable');
44
+ }
45
+ //# sourceMappingURL=external-seat-authority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-seat-authority.js","sourceRoot":"","sources":["../../src/service/external-seat-authority.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAE7E,OAAO,EACL,4BAA4B,GAE7B,MAAM,0BAA0B,CAAC;AAElC,wEAAwE;AACxE,yEAAyE;AACzE,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,GAE5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,0EAA0E;AAC1E,MAAM,UAAU,uBAAuB,CAAC,OAAoB;IAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA+C,CAAC;IACzE,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,aAAa,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAmD,EACnD,KAAa;IAEb,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,WAAW,IAAI,KAAK,CAAC;AAC9B,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,4BAA4B,CAAC,OAAoB;IAC/D,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,QAA+C,CAAC,CAAC;IACrG,MAAM,OAAO,GAAG,SAAS,EAAE,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IACxD,MAAM,IAAI,4BAA4B,CACpC,QAAQ,OAAO,+DAA+D,EAC9E,oBAAoB,CACrB,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,8BAA8B,CAAC,OAAoB;IACjE,MAAM,IAAI,4BAA4B,CACpC,QAAQ,OAAO,CAAC,SAAS,wEAAwE,EACjG,oBAAoB,CACrB,CAAC;AACJ,CAAC"}
@@ -85,6 +85,15 @@ export interface LlmMeshFacade {
85
85
  completeMuseImport(enrollmentId: string, code: string, ownerScopeRef: string): Promise<EnrollmentCompletion>;
86
86
  completeMuseDirectImport(apiKey: string, ownerScopeRef: string): Promise<EnrollmentCompletion>;
87
87
  completeMuseDeviceImport(enrollmentId: string, ownerScopeRef: string, maxAttempts?: number): Promise<EnrollmentCompletion>;
88
+ importSeatBundle(input: {
89
+ bundle: unknown;
90
+ ownerScope: string;
91
+ }): Promise<{
92
+ accountId: string;
93
+ seatRef: string;
94
+ generation: number;
95
+ idempotent: boolean;
96
+ }>;
88
97
  cancel(enrollmentId: string): Promise<void>;
89
98
  acquire(input: AccountTransportAcquireInput): Promise<AccountTransportAcquisition>;
90
99
  release(acquisition: AccountTransportAcquisition): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../src/service/facade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../src/service/facade.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,9 @@ export function createLlmMeshFacade(options) {
55
55
  async completeMuseDeviceImport(enrollmentId, ownerScopeRef, maxAttempts) {
56
56
  return service.completeMuseDeviceImport(enrollmentId, ownerScopeRef, maxAttempts);
57
57
  },
58
+ async importSeatBundle(input) {
59
+ return service.importSeatBundle(input);
60
+ },
58
61
  async cancel(enrollmentId) {
59
62
  return service.cancel(enrollmentId);
60
63
  },
@@ -1 +1 @@
1
- {"version":3,"file":"facade.js","sourceRoot":"","sources":["../../src/service/facade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"facade.js","sourceRoot":"","sources":["../../src/service/facade.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,24 @@ export declare class LocalAccountTransportService {
31
31
  completeMuseImport(enrollmentId: string, code: string, ownerScopeRef: string): Promise<EnrollmentCompletion>;
32
32
  completeMuseDirectImport(apiKey: string, ownerScopeRef: string): Promise<EnrollmentCompletion>;
33
33
  completeMuseDeviceImport(enrollmentId: string, ownerScopeRef: string, maxAttempts?: number): Promise<EnrollmentCompletion>;
34
+ /**
35
+ * L1 trusted seat-bundle entry: the single mesh path from a custodian
36
+ * consumer projection to a registered, externally marked account. It
37
+ * validates the projection (consumer authority, owner binding, usable
38
+ * access material, required provider expiry), applies the stored
39
+ * lineage transition (idempotent N, refused stale N-1 and new epochs),
40
+ * and persists through the canonical register/persist path so restart
41
+ * restores the same externally marked account. No second registry.
42
+ */
43
+ importSeatBundle(input: {
44
+ bundle: unknown;
45
+ ownerScope: string;
46
+ }): Promise<{
47
+ accountId: string;
48
+ seatRef: string;
49
+ generation: number;
50
+ idempotent: boolean;
51
+ }>;
34
52
  private hasClaudeGrant;
35
53
  private persistClaudeCompletion;
36
54
  cancel(enrollmentId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"local-account-transport-service.d.ts","sourceRoot":"","sources":["../../src/service/local-account-transport-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-account-transport-service.d.ts","sourceRoot":"","sources":["../../src/service/local-account-transport-service.ts"],"names":[],"mappings":"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"}