@sentropic/llm-mesh 0.13.0 → 0.14.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 +105 -6
- package/dist/account-transports.d.ts +14 -1
- package/dist/account-transports.d.ts.map +1 -1
- package/dist/account-transports.js +37 -3
- package/dist/account-transports.js.map +1 -1
- package/dist/codex.d.ts +43 -0
- package/dist/codex.d.ts.map +1 -0
- package/dist/codex.js +62 -0
- package/dist/codex.js.map +1 -0
- package/dist/enrollment/cloud-code.d.ts +6 -1
- package/dist/enrollment/cloud-code.d.ts.map +1 -1
- package/dist/enrollment/cloud-code.js +53 -25
- package/dist/enrollment/cloud-code.js.map +1 -1
- package/dist/enrollment/codex.d.ts +1 -0
- package/dist/enrollment/codex.d.ts.map +1 -1
- package/dist/enrollment/codex.js +1 -0
- package/dist/enrollment/codex.js.map +1 -1
- package/dist/enrollment/contracts.d.ts +10 -0
- package/dist/enrollment/contracts.d.ts.map +1 -1
- package/dist/equivalence-council.d.ts +61 -0
- package/dist/equivalence-council.d.ts.map +1 -0
- package/dist/equivalence-council.js +119 -0
- package/dist/equivalence-council.js.map +1 -0
- package/dist/generated-model-council.d.ts +10 -0
- package/dist/generated-model-council.d.ts.map +1 -0
- package/dist/generated-model-council.js +32 -0
- package/dist/generated-model-council.js.map +1 -0
- package/dist/generation.d.ts +3 -0
- package/dist/generation.d.ts.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/messages.d.ts +8 -1
- package/dist/messages.d.ts.map +1 -1
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/keyring/encrypted-file-keyring.d.ts +13 -0
- package/dist/node/keyring/encrypted-file-keyring.d.ts.map +1 -0
- package/dist/node/keyring/encrypted-file-keyring.js +134 -0
- package/dist/node/keyring/encrypted-file-keyring.js.map +1 -0
- package/dist/route-attempt.d.ts +18 -0
- package/dist/route-attempt.d.ts.map +1 -0
- package/dist/route-attempt.js +70 -0
- package/dist/route-attempt.js.map +1 -0
- package/dist/route-health.d.ts +14 -0
- package/dist/route-health.d.ts.map +1 -0
- package/dist/route-health.js +69 -0
- package/dist/route-health.js.map +1 -0
- package/dist/route-planner-state.d.ts +37 -0
- package/dist/route-planner-state.d.ts.map +1 -0
- package/dist/route-planner-state.js +27 -0
- package/dist/route-planner-state.js.map +1 -0
- package/dist/route-planner.d.ts +48 -0
- package/dist/route-planner.d.ts.map +1 -0
- package/dist/route-planner.js +327 -0
- package/dist/route-planner.js.map +1 -0
- package/dist/route-selection.d.ts +17 -0
- package/dist/route-selection.d.ts.map +1 -0
- package/dist/route-selection.js +127 -0
- package/dist/route-selection.js.map +1 -0
- package/dist/routing-contracts.d.ts +130 -0
- package/dist/routing-contracts.d.ts.map +1 -0
- package/dist/routing-contracts.js +2 -0
- package/dist/routing-contracts.js.map +1 -0
- package/dist/routing-policy.d.ts +68 -0
- package/dist/routing-policy.d.ts.map +1 -0
- package/dist/routing-policy.js +93 -0
- package/dist/routing-policy.js.map +1 -0
- package/dist/routing-targets.d.ts +25 -0
- package/dist/routing-targets.d.ts.map +1 -0
- package/dist/routing-targets.js +48 -0
- package/dist/routing-targets.js.map +1 -0
- package/dist/service/facade.d.ts +31 -0
- package/dist/service/facade.d.ts.map +1 -1
- package/dist/service/facade.js +11 -2
- package/dist/service/facade.js.map +1 -1
- package/dist/service/local-account-transport-service.d.ts +15 -2
- package/dist/service/local-account-transport-service.d.ts.map +1 -1
- package/dist/service/local-account-transport-service.js +279 -17
- package/dist/service/local-account-transport-service.js.map +1 -1
- package/dist/transport/cloud-code-runtime-client.d.ts +22 -0
- package/dist/transport/cloud-code-runtime-client.d.ts.map +1 -0
- package/dist/transport/cloud-code-runtime-client.js +306 -0
- package/dist/transport/cloud-code-runtime-client.js.map +1 -0
- package/dist/transport/cloud-code-transport.d.ts +3 -0
- package/dist/transport/cloud-code-transport.d.ts.map +1 -1
- package/dist/transport/cloud-code-transport.js +39 -10
- package/dist/transport/cloud-code-transport.js.map +1 -1
- package/dist/transport/codex-runtime-client.d.ts +17 -0
- package/dist/transport/codex-runtime-client.d.ts.map +1 -0
- package/dist/transport/codex-runtime-client.js +121 -0
- package/dist/transport/codex-runtime-client.js.map +1 -0
- package/dist/transport/codex-runtime-wire.d.ts +5 -0
- package/dist/transport/codex-runtime-wire.d.ts.map +1 -0
- package/dist/transport/codex-runtime-wire.js +144 -0
- package/dist/transport/codex-runtime-wire.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-contracts.d.ts","sourceRoot":"","sources":["../src/routing-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-contracts.js","sourceRoot":"","sources":["../src/routing-contracts.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type CapabilityRequirement } from './equivalence-council.js';
|
|
2
|
+
import type { RoutePlanInput } from './routing-contracts.js';
|
|
3
|
+
export interface RouteSelector {
|
|
4
|
+
readonly providerId?: string;
|
|
5
|
+
readonly modelId?: string;
|
|
6
|
+
readonly alias?: string;
|
|
7
|
+
readonly transportProviderId?: string;
|
|
8
|
+
readonly diagnosticAccountRef?: string;
|
|
9
|
+
}
|
|
10
|
+
export type RouteStrategy = {
|
|
11
|
+
readonly kind: 'last-enrolled';
|
|
12
|
+
} | {
|
|
13
|
+
readonly kind: 'ordered';
|
|
14
|
+
readonly preferences: readonly RouteSelector[];
|
|
15
|
+
} | {
|
|
16
|
+
readonly kind: 'round-robin';
|
|
17
|
+
readonly scope: 'new-affinity';
|
|
18
|
+
};
|
|
19
|
+
export interface RouteRule {
|
|
20
|
+
readonly match: {
|
|
21
|
+
readonly requestedModel?: string;
|
|
22
|
+
readonly alias?: string;
|
|
23
|
+
readonly intent?: 'coding' | 'general' | 'reasoning' | 'fast';
|
|
24
|
+
readonly capabilities?: readonly CapabilityRequirement[];
|
|
25
|
+
};
|
|
26
|
+
readonly strategy?: RouteStrategy;
|
|
27
|
+
readonly preferences?: readonly RouteSelector[];
|
|
28
|
+
readonly fallback?: {
|
|
29
|
+
readonly fallbackMode?: RoutePolicy['fallbackMode'];
|
|
30
|
+
readonly allowEquivalentModels?: boolean;
|
|
31
|
+
readonly rotateEquivalentAccounts?: boolean;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface RoutePolicy {
|
|
35
|
+
readonly strategy: RouteStrategy;
|
|
36
|
+
readonly rules: readonly RouteRule[];
|
|
37
|
+
readonly fallbackMode: 'retest-preferred' | 'one-way';
|
|
38
|
+
readonly negativeCacheTtlMs: number;
|
|
39
|
+
readonly maxAttempts: number;
|
|
40
|
+
readonly preferSameTransport: boolean;
|
|
41
|
+
readonly stickyAccount: boolean;
|
|
42
|
+
readonly rotateEquivalentAccounts: boolean;
|
|
43
|
+
readonly allowEquivalentModels: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface RoutePolicyProfile {
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly revision: string;
|
|
48
|
+
readonly policy: RoutePolicy;
|
|
49
|
+
}
|
|
50
|
+
export declare const DEFAULT_ROUTE_POLICY: RoutePolicy;
|
|
51
|
+
export declare class RoutePolicyError extends Error {
|
|
52
|
+
readonly issues: readonly string[];
|
|
53
|
+
constructor(issues: readonly string[]);
|
|
54
|
+
}
|
|
55
|
+
export declare const validateRoutePolicy: (policy: RoutePolicy) => void;
|
|
56
|
+
export declare const describeRoutePolicy: (policy: RoutePolicy) => string;
|
|
57
|
+
export declare const resolveRoutePolicy: (policy: RoutePolicy, input: RoutePlanInput) => RoutePolicy;
|
|
58
|
+
export declare const resolveRouteStrategy: (policy: RoutePolicy, input: RoutePlanInput) => RouteStrategy;
|
|
59
|
+
export declare class InMemoryRoutePolicyProfiles {
|
|
60
|
+
private readonly profiles;
|
|
61
|
+
private activeName?;
|
|
62
|
+
constructor(profiles?: readonly RoutePolicyProfile[]);
|
|
63
|
+
set(profile: RoutePolicyProfile): void;
|
|
64
|
+
list(): readonly RoutePolicyProfile[];
|
|
65
|
+
activate(name: string, expectedRevision?: string): RoutePolicyProfile;
|
|
66
|
+
active(): RoutePolicyProfile | undefined;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=routing-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-policy.d.ts","sourceRoot":"","sources":["../src/routing-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACwB,KAAK,qBAAqB,EACxD,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACxC;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAErE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;QAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;KAC1D,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;QACpD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;QACzC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;KAC7C,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,eAAO,MAAM,oBAAoB,EAAE,WAUlC,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,KAAK;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE;gBAAzB,MAAM,EAAE,SAAS,MAAM,EAAE;CAI/C;AAWD,eAAO,MAAM,mBAAmB,WAAY,WAAW,KAAG,IAczD,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAAY,WAAW,KAAG,MAClC,CAAC;AAEzB,eAAO,MAAM,kBAAkB,WACrB,WAAW,SACZ,cAAc,KACpB,WAWF,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,WAAW,SACZ,cAAc,KACpB,aAaF,CAAC;AAEF,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;IAClE,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,QAAQ,GAAE,SAAS,kBAAkB,EAAO;IAIxD,GAAG,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKtC,IAAI,IAAI,SAAS,kBAAkB,EAAE;IAIrC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAUrE,MAAM,IAAI,kBAAkB,GAAG,SAAS;CAGzC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { capabilityRequirementEquals, } from './equivalence-council.js';
|
|
2
|
+
export const DEFAULT_ROUTE_POLICY = {
|
|
3
|
+
strategy: { kind: 'last-enrolled' },
|
|
4
|
+
rules: [],
|
|
5
|
+
fallbackMode: 'retest-preferred',
|
|
6
|
+
negativeCacheTtlMs: 300_000,
|
|
7
|
+
maxAttempts: 3,
|
|
8
|
+
preferSameTransport: true,
|
|
9
|
+
stickyAccount: true,
|
|
10
|
+
rotateEquivalentAccounts: false,
|
|
11
|
+
allowEquivalentModels: true,
|
|
12
|
+
};
|
|
13
|
+
export class RoutePolicyError extends Error {
|
|
14
|
+
issues;
|
|
15
|
+
constructor(issues) {
|
|
16
|
+
super(issues.join('; '));
|
|
17
|
+
this.issues = issues;
|
|
18
|
+
this.name = 'RoutePolicyError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const validateStrategy = (strategy, path, issues) => {
|
|
22
|
+
if (strategy.kind === 'ordered' && strategy.preferences.length === 0) {
|
|
23
|
+
issues.push(`${path}.preferences must not be empty`);
|
|
24
|
+
}
|
|
25
|
+
if (strategy.kind === 'round-robin' && strategy.scope !== 'new-affinity') {
|
|
26
|
+
issues.push(`${path}.scope must be new-affinity`);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export const validateRoutePolicy = (policy) => {
|
|
30
|
+
const issues = [];
|
|
31
|
+
if (policy.negativeCacheTtlMs < 1_000 || policy.negativeCacheTtlMs > 3_600_000) {
|
|
32
|
+
issues.push('negativeCacheTtlMs must be between 1000 and 3600000');
|
|
33
|
+
}
|
|
34
|
+
if (!Number.isInteger(policy.maxAttempts) || policy.maxAttempts < 1 || policy.maxAttempts > 8) {
|
|
35
|
+
issues.push('maxAttempts must be an integer between 1 and 8');
|
|
36
|
+
}
|
|
37
|
+
validateStrategy(policy.strategy, 'strategy', issues);
|
|
38
|
+
policy.rules.forEach((rule, index) => {
|
|
39
|
+
if (Object.keys(rule.match).length === 0)
|
|
40
|
+
issues.push(`rules[${index}].match must not be empty`);
|
|
41
|
+
if (rule.strategy)
|
|
42
|
+
validateStrategy(rule.strategy, `rules[${index}].strategy`, issues);
|
|
43
|
+
});
|
|
44
|
+
if (issues.length > 0)
|
|
45
|
+
throw new RoutePolicyError(issues);
|
|
46
|
+
};
|
|
47
|
+
export const describeRoutePolicy = (policy) => JSON.stringify(policy);
|
|
48
|
+
export const resolveRoutePolicy = (policy, input) => {
|
|
49
|
+
const rule = policy.rules.find((candidate) => (!candidate.match.requestedModel || candidate.match.requestedModel === input.requestedModel)
|
|
50
|
+
&& (!candidate.match.alias || candidate.match.alias === input.requestedModel)
|
|
51
|
+
&& (!candidate.match.intent || candidate.match.intent === input.intent)
|
|
52
|
+
&& (!candidate.match.capabilities || candidate.match.capabilities.every((capability) => input.requiredCapabilities?.some((required) => capabilityRequirementEquals(required, capability)))));
|
|
53
|
+
return rule?.fallback ? { ...policy, ...rule.fallback } : policy;
|
|
54
|
+
};
|
|
55
|
+
export const resolveRouteStrategy = (policy, input) => {
|
|
56
|
+
const rule = policy.rules.find((candidate) => (!candidate.match.requestedModel || candidate.match.requestedModel === input.requestedModel)
|
|
57
|
+
&& (!candidate.match.alias || candidate.match.alias === input.requestedModel)
|
|
58
|
+
&& (!candidate.match.intent || candidate.match.intent === input.intent)
|
|
59
|
+
&& (!candidate.match.capabilities || candidate.match.capabilities.every((capability) => input.requiredCapabilities?.some((required) => capabilityRequirementEquals(required, capability)))));
|
|
60
|
+
if (rule?.strategy)
|
|
61
|
+
return rule.strategy;
|
|
62
|
+
if (rule?.preferences)
|
|
63
|
+
return { kind: 'ordered', preferences: rule.preferences };
|
|
64
|
+
return policy.strategy;
|
|
65
|
+
};
|
|
66
|
+
export class InMemoryRoutePolicyProfiles {
|
|
67
|
+
profiles = new Map();
|
|
68
|
+
activeName;
|
|
69
|
+
constructor(profiles = []) {
|
|
70
|
+
profiles.forEach((profile) => this.set(profile));
|
|
71
|
+
}
|
|
72
|
+
set(profile) {
|
|
73
|
+
validateRoutePolicy(profile.policy);
|
|
74
|
+
this.profiles.set(profile.name, profile);
|
|
75
|
+
}
|
|
76
|
+
list() {
|
|
77
|
+
return [...this.profiles.values()].sort((a, b) => a.name.localeCompare(b.name));
|
|
78
|
+
}
|
|
79
|
+
activate(name, expectedRevision) {
|
|
80
|
+
const profile = this.profiles.get(name);
|
|
81
|
+
if (!profile)
|
|
82
|
+
throw new RoutePolicyError([`unknown profile: ${name}`]);
|
|
83
|
+
if (expectedRevision && profile.revision !== expectedRevision) {
|
|
84
|
+
throw new RoutePolicyError([`profile revision changed: ${name}`]);
|
|
85
|
+
}
|
|
86
|
+
this.activeName = name;
|
|
87
|
+
return profile;
|
|
88
|
+
}
|
|
89
|
+
active() {
|
|
90
|
+
return this.activeName ? this.profiles.get(this.activeName) : undefined;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=routing-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-policy.js","sourceRoot":"","sources":["../src/routing-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface TargetMapping {
|
|
2
|
+
readonly providerId: string;
|
|
3
|
+
readonly transportProviderId: string;
|
|
4
|
+
readonly model: string;
|
|
5
|
+
readonly effort?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LaunchAliasDefinition extends TargetMapping {
|
|
8
|
+
readonly alias: string;
|
|
9
|
+
}
|
|
10
|
+
export interface TargetRouteDescription extends TargetMapping {
|
|
11
|
+
readonly requestedId: string;
|
|
12
|
+
readonly kind: 'faithful' | 'alias';
|
|
13
|
+
}
|
|
14
|
+
export type ModelTargetResolver = (model: string) => TargetMapping | undefined;
|
|
15
|
+
export declare const defineLaunchAliases: (definitions: readonly LaunchAliasDefinition[]) => Readonly<Record<string, TargetMapping>>;
|
|
16
|
+
export declare const DEFAULT_TARGET_MAPPINGS: Readonly<Record<string, TargetMapping>>;
|
|
17
|
+
export declare const LAUNCH_ALIAS_TARGET_MAPPINGS: Readonly<Record<string, TargetMapping>>;
|
|
18
|
+
export declare const CANONICAL_TARGET_MAPPINGS: Readonly<Record<string, TargetMapping>>;
|
|
19
|
+
export declare const createStaticTargetResolver: (options: {
|
|
20
|
+
readonly mappings: Readonly<Record<string, TargetMapping>>;
|
|
21
|
+
}) => ModelTargetResolver;
|
|
22
|
+
export declare const createCanonicalTargetResolver: () => ModelTargetResolver;
|
|
23
|
+
export declare const describeTargetRoutes: (mappings: Readonly<Record<string, TargetMapping>>) => readonly TargetRouteDescription[];
|
|
24
|
+
export declare const describeCanonicalTargetRoutes: () => readonly TargetRouteDescription[];
|
|
25
|
+
//# sourceMappingURL=routing-targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-targets.d.ts","sourceRoot":"","sources":["../src/routing-targets.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;CACrC;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;AAE/E,eAAO,MAAM,mBAAmB,gBACjB,SAAS,qBAAqB,EAAE,KAC5C,SAAS,OAAO,MAAM,EAAE,aAAa,CAAC,CAExC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAsB3E,CAAC;AAEF,eAAO,MAAM,4BAA4B,yCAQvC,CAAC;AAEH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAG7E,CAAC;AAEF,eAAO,MAAM,0BAA0B,YAAa;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;CAC5D,KAAG,mBAAyD,CAAC;AAE9D,eAAO,MAAM,6BAA6B,QAAO,mBACoB,CAAC;AAEtE,eAAO,MAAM,oBAAoB,aACrB,SAAS,OAAO,MAAM,EAAE,aAAa,CAAC,CAAC,KAChD,SAAS,sBAAsB,EAMyC,CAAC;AAE5E,eAAO,MAAM,6BAA6B,QAAO,SAAS,sBAAsB,EAC/B,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export const defineLaunchAliases = (definitions) => Object.fromEntries(definitions.map(({ alias, ...target }) => [alias, target]));
|
|
2
|
+
export const DEFAULT_TARGET_MAPPINGS = {
|
|
3
|
+
'claude-sonnet-5': {
|
|
4
|
+
providerId: 'anthropic', transportProviderId: 'claude-code', model: 'claude-sonnet-5',
|
|
5
|
+
},
|
|
6
|
+
'claude-opus-5': {
|
|
7
|
+
providerId: 'anthropic', transportProviderId: 'claude-code', model: 'claude-opus-5',
|
|
8
|
+
},
|
|
9
|
+
'claude-opus-4-8': {
|
|
10
|
+
providerId: 'anthropic', transportProviderId: 'claude-code', model: 'claude-opus-4-8',
|
|
11
|
+
},
|
|
12
|
+
'claude-fable-5': {
|
|
13
|
+
providerId: 'anthropic', transportProviderId: 'claude-code', model: 'claude-fable-5',
|
|
14
|
+
},
|
|
15
|
+
'gpt-5.6-luna': {
|
|
16
|
+
providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-luna',
|
|
17
|
+
},
|
|
18
|
+
'gpt-5.6-sol': {
|
|
19
|
+
providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-sol',
|
|
20
|
+
},
|
|
21
|
+
'gpt-5.6-terra': {
|
|
22
|
+
providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-terra',
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
export const LAUNCH_ALIAS_TARGET_MAPPINGS = defineLaunchAliases([
|
|
26
|
+
{ alias: 'claude-opus-5-high', providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-terra', effort: 'high' },
|
|
27
|
+
{ alias: 'claude-opus-5-xhigh', providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-terra', effort: 'xhigh' },
|
|
28
|
+
{ alias: 'claude-opus-4-8-xhigh', providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-terra', effort: 'xhigh' },
|
|
29
|
+
{ alias: 'claude-fable-5-high', providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-sol', effort: 'high' },
|
|
30
|
+
{ alias: 'claude-fable-5-xhigh', providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-sol', effort: 'xhigh' },
|
|
31
|
+
{ alias: 'claude-fable-5-max', providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-sol', effort: 'max' },
|
|
32
|
+
{ alias: 'claude-sonnet-5-xhigh', providerId: 'openai', transportProviderId: 'codex', model: 'gpt-5.6-luna', effort: 'xhigh' },
|
|
33
|
+
]);
|
|
34
|
+
export const CANONICAL_TARGET_MAPPINGS = {
|
|
35
|
+
...DEFAULT_TARGET_MAPPINGS,
|
|
36
|
+
...LAUNCH_ALIAS_TARGET_MAPPINGS,
|
|
37
|
+
};
|
|
38
|
+
export const createStaticTargetResolver = (options) => (model) => options.mappings[model];
|
|
39
|
+
export const createCanonicalTargetResolver = () => createStaticTargetResolver({ mappings: CANONICAL_TARGET_MAPPINGS });
|
|
40
|
+
export const describeTargetRoutes = (mappings) => Object.entries(mappings)
|
|
41
|
+
.map(([requestedId, target]) => ({
|
|
42
|
+
requestedId,
|
|
43
|
+
...target,
|
|
44
|
+
kind: requestedId === target.model ? 'faithful' : 'alias',
|
|
45
|
+
}))
|
|
46
|
+
.sort((left, right) => left.requestedId.localeCompare(right.requestedId));
|
|
47
|
+
export const describeCanonicalTargetRoutes = () => describeTargetRoutes(CANONICAL_TARGET_MAPPINGS);
|
|
48
|
+
//# sourceMappingURL=routing-targets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-targets.js","sourceRoot":"","sources":["../src/routing-targets.ts"],"names":[],"mappings":"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"}
|
package/dist/service/facade.d.ts
CHANGED
|
@@ -1,21 +1,49 @@
|
|
|
1
1
|
import type { AccountTransportAcquireInput, AccountTransportAcquisition } from '../account-transports.js';
|
|
2
2
|
import type { AccountTransportProviderId } from '../auth.js';
|
|
3
3
|
import type { EnrollmentSession, StartEnrollmentInput } from '../enrollment/contracts.js';
|
|
4
|
+
import type { LlmMesh } from '../mesh.js';
|
|
5
|
+
import { type InMemoryRoutePlannerOptions } from '../route-planner.js';
|
|
6
|
+
import type { RoutePlanner } from '../routing-contracts.js';
|
|
4
7
|
export interface ProviderRequest {
|
|
5
8
|
modelId: string;
|
|
6
9
|
contents: unknown[];
|
|
7
10
|
generationConfig?: unknown;
|
|
11
|
+
systemInstruction?: unknown;
|
|
12
|
+
tools?: unknown[];
|
|
13
|
+
toolConfig?: unknown;
|
|
14
|
+
diagnostics?: readonly {
|
|
15
|
+
code: string;
|
|
16
|
+
message: string;
|
|
17
|
+
metadata?: Record<string, unknown>;
|
|
18
|
+
}[];
|
|
8
19
|
}
|
|
9
20
|
export type ProviderEvent = {
|
|
10
21
|
kind: 'content';
|
|
11
22
|
delta: string;
|
|
23
|
+
} | {
|
|
24
|
+
kind: 'reasoning';
|
|
25
|
+
delta: string;
|
|
26
|
+
} | {
|
|
27
|
+
kind: 'tool-call';
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
arguments: unknown;
|
|
31
|
+
metadata?: Record<string, unknown>;
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'diagnostic';
|
|
34
|
+
code: string;
|
|
35
|
+
message: string;
|
|
36
|
+
metadata?: Record<string, unknown>;
|
|
12
37
|
} | {
|
|
13
38
|
kind: 'done';
|
|
14
39
|
usage: unknown;
|
|
40
|
+
finishReason?: string;
|
|
15
41
|
} | {
|
|
16
42
|
kind: 'error';
|
|
17
43
|
code: string;
|
|
18
44
|
message: string;
|
|
45
|
+
statusCode?: number;
|
|
46
|
+
retryAfterMs?: number;
|
|
19
47
|
};
|
|
20
48
|
export interface ProviderAdapter {
|
|
21
49
|
execute(acquisition: AccountTransportAcquisition, request: ProviderRequest, signal: AbortSignal): AsyncIterable<ProviderEvent>;
|
|
@@ -32,6 +60,8 @@ export interface FacadeOptions {
|
|
|
32
60
|
configResolver: ConfigResolver;
|
|
33
61
|
keyring?: KeyringAdapter;
|
|
34
62
|
mode: 'cli' | 'portal';
|
|
63
|
+
/** Explicit owner used only to bind pre-ownerScope local keyring records. */
|
|
64
|
+
legacyAccountOwnerScopeRef?: string;
|
|
35
65
|
}
|
|
36
66
|
export interface LlmMeshFacade {
|
|
37
67
|
enroll(providerId: AccountTransportProviderId, input: StartEnrollmentInput): Promise<EnrollmentSession>;
|
|
@@ -47,6 +77,7 @@ export interface LlmMeshFacade {
|
|
|
47
77
|
acquire(input: AccountTransportAcquireInput): Promise<AccountTransportAcquisition>;
|
|
48
78
|
release(acquisition: AccountTransportAcquisition): Promise<void>;
|
|
49
79
|
getAdapter(providerId: AccountTransportProviderId): ProviderAdapter;
|
|
80
|
+
createRoutePlanner(runtime: Pick<LlmMesh, 'generate' | 'stream'>, options?: Omit<InMemoryRoutePlannerOptions, 'directory'>): RoutePlanner;
|
|
50
81
|
}
|
|
51
82
|
export declare function createLlmMeshFacade(options: FacadeOptions): LlmMeshFacade;
|
|
52
83
|
//# sourceMappingURL=facade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../src/service/facade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAEV,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AAQpC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../src/service/facade.ts"],"names":[],"mappings":"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"}
|
package/dist/service/facade.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ClaudeCodeEnrollmentProvider } from '../enrollment/claude-code.js';
|
|
2
2
|
import { CloudCodeEnrollmentProvider } from '../enrollment/cloud-code.js';
|
|
3
3
|
import { CodexEnrollmentProvider } from '../enrollment/codex.js';
|
|
4
|
+
import { EncryptedFileKeyring } from '../node/keyring/encrypted-file-keyring.js';
|
|
4
5
|
import { InMemoryKeyring } from '../node/keyring/in-memory-keyring.js';
|
|
5
6
|
import { CloudCodeProviderAdapter } from '../transport/cloud-code-transport.js';
|
|
6
7
|
import { LocalAccountTransportService } from './local-account-transport-service.js';
|
|
8
|
+
import { InMemoryRoutePlanner, } from '../route-planner.js';
|
|
7
9
|
export function createLlmMeshFacade(options) {
|
|
8
10
|
if (!options) {
|
|
9
11
|
throw new Error('LlmMeshFacade: options is required');
|
|
@@ -11,7 +13,8 @@ export function createLlmMeshFacade(options) {
|
|
|
11
13
|
if (!options.configResolver) {
|
|
12
14
|
throw new Error('configResolver is required');
|
|
13
15
|
}
|
|
14
|
-
const keyring = options.keyring ??
|
|
16
|
+
const keyring = options.keyring ??
|
|
17
|
+
(options.mode === 'cli' ? new EncryptedFileKeyring() : new InMemoryKeyring());
|
|
15
18
|
const providers = new Map([
|
|
16
19
|
[
|
|
17
20
|
'cloud-code',
|
|
@@ -20,7 +23,7 @@ export function createLlmMeshFacade(options) {
|
|
|
20
23
|
['codex', new CodexEnrollmentProvider({ configResolver: options.configResolver })],
|
|
21
24
|
['claude-code', new ClaudeCodeEnrollmentProvider()],
|
|
22
25
|
]);
|
|
23
|
-
const service = new LocalAccountTransportService(keyring, providers, options.configResolver);
|
|
26
|
+
const service = new LocalAccountTransportService(keyring, providers, options.configResolver, options.legacyAccountOwnerScopeRef);
|
|
24
27
|
return {
|
|
25
28
|
async enroll(providerId, input) {
|
|
26
29
|
return service.enroll(providerId, input);
|
|
@@ -46,6 +49,12 @@ export function createLlmMeshFacade(options) {
|
|
|
46
49
|
}
|
|
47
50
|
throw new Error(`Adapter for ${providerId} not available locally`);
|
|
48
51
|
},
|
|
52
|
+
createRoutePlanner(runtime, routeOptions = {}) {
|
|
53
|
+
return new InMemoryRoutePlanner({
|
|
54
|
+
...routeOptions,
|
|
55
|
+
directory: service.createRouteDirectory(runtime),
|
|
56
|
+
});
|
|
57
|
+
},
|
|
49
58
|
};
|
|
50
59
|
}
|
|
51
60
|
//# sourceMappingURL=facade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../../src/service/facade.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../../src/service/facade.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEpF,OAAO,EACL,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAkF7B,MAAM,UAAU,mBAAmB,CAAC,OAAsB;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;QACf,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,IAAI,GAAG,CAA6B;QACpD;YACE,YAAY;YACZ,IAAI,2BAA2B,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;SAC5E;QACD,CAAC,OAAO,EAAE,IAAI,uBAAuB,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAClF,CAAC,aAAa,EAAE,IAAI,4BAA4B,EAAE,CAAC;KACpD,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,4BAA4B,CAC9C,OAAO,EACP,SAAS,EACT,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,0BAA0B,CACnC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK;YAC5B,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,YAAY;YAChC,OAAO,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,YAAY;YAClC,OAAO,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACjD,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,YAAY;YACvB,OAAO,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,KAAK;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,WAAW;YACvB,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,UAAU,CAAC,UAAU;YACnB,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;gBAChC,OAAO,IAAI,wBAAwB,EAAE,CAAC;YACxC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,wBAAwB,CAAC,CAAC;QACrE,CAAC;QACD,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,EAAE;YAC3C,OAAO,IAAI,oBAAoB,CAAC;gBAC9B,GAAG,YAAY;gBACf,SAAS,EAAE,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC;aACjD,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import { type AccountTransportAccount, type AccountTransportAcquireInput, type AccountTransportAcquisition } from '../account-transports.js';
|
|
2
2
|
import type { EnrollmentProvider, EnrollmentSession, StartEnrollmentInput } from '../enrollment/contracts.js';
|
|
3
3
|
import type { ConfigResolver, KeyringAdapter } from './facade.js';
|
|
4
|
+
import type { LlmMesh } from '../mesh.js';
|
|
5
|
+
import type { AccountDirectoryPort } from '../routing-contracts.js';
|
|
4
6
|
export declare class LocalAccountTransportService {
|
|
5
7
|
private readonly keyring;
|
|
6
8
|
private readonly providers;
|
|
7
9
|
private readonly configResolver;
|
|
10
|
+
private readonly legacyAccountOwnerScopeRef?;
|
|
11
|
+
private static readonly accountIndexKey;
|
|
8
12
|
private readonly coordinator;
|
|
9
13
|
private readonly accountsMap;
|
|
10
14
|
private readonly credentialVersions;
|
|
11
15
|
private readonly refreshInFlight;
|
|
12
|
-
|
|
16
|
+
private routeAttemptSequence;
|
|
17
|
+
constructor(keyring: KeyringAdapter, providers: Map<string, EnrollmentProvider>, configResolver: ConfigResolver, legacyAccountOwnerScopeRef?: string | undefined);
|
|
13
18
|
enroll(providerId: string, input: StartEnrollmentInput): Promise<EnrollmentSession>;
|
|
14
19
|
waitForCallback(enrollmentId: string): Promise<{
|
|
15
20
|
accountId: string;
|
|
@@ -22,10 +27,18 @@ export declare class LocalAccountTransportService {
|
|
|
22
27
|
cancel(enrollmentId: string): Promise<void>;
|
|
23
28
|
registerAccount(account: AccountTransportAccount, configVersion?: string): void;
|
|
24
29
|
acquire(input: AccountTransportAcquireInput): Promise<AccountTransportAcquisition>;
|
|
25
|
-
release(
|
|
30
|
+
release(acquisition: AccountTransportAcquisition): Promise<void>;
|
|
31
|
+
createRouteDirectory(runtime: Pick<LlmMesh, 'generate' | 'stream'>): AccountDirectoryPort;
|
|
32
|
+
private listRouteDiagnostics;
|
|
33
|
+
private listRouteAccounts;
|
|
34
|
+
private routeAttempt;
|
|
35
|
+
private diagnosticAccountRef;
|
|
26
36
|
private completeEnrollment;
|
|
27
37
|
private refreshToken;
|
|
28
38
|
private persistCredential;
|
|
39
|
+
private persistAccountState;
|
|
40
|
+
private parseAccountIndex;
|
|
41
|
+
private restorePersistedAccounts;
|
|
29
42
|
private markReauthRequired;
|
|
30
43
|
}
|
|
31
44
|
//# sourceMappingURL=local-account-transport-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-account-transport-service.d.ts","sourceRoot":"","sources":["../../src/service/local-account-transport-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EACjC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAIV,kBAAkB,EAClB,iBAAiB,EAGjB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElE,qBAAa,4BAA4B;
|
|
1
|
+
{"version":3,"file":"local-account-transport-service.d.ts","sourceRoot":"","sources":["../../src/service/local-account-transport-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EACjC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAIV,kBAAkB,EAClB,iBAAiB,EAGjB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,yBAAyB,CAAC;AA2BjC,qBAAa,4BAA4B;IASrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAX9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAuC;IAC9E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;IAC1E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkD;IAClF,OAAO,CAAC,oBAAoB,CAAK;gBAGd,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC1C,cAAc,EAAE,cAAc,EAC9B,0BAA0B,CAAC,oBAAQ;IAMhD,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQnF,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA4CpF,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA6CtF,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD,eAAe,CAAC,OAAO,EAAE,uBAAuB,EAAE,aAAa,SAAW,GAAG,IAAI;IAO3E,OAAO,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IA4ElF,OAAO,CAAC,WAAW,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC,GAAG,oBAAoB;YAsB3E,oBAAoB;YA0BpB,iBAAiB;IA8B/B,OAAO,CAAC,YAAY;IAgDpB,OAAO,CAAC,oBAAoB;YAOd,kBAAkB;YAIlB,YAAY;YA0BZ,iBAAiB;YA4BjB,mBAAmB;IAwBjC,OAAO,CAAC,iBAAiB;YAYX,wBAAwB;YA6CxB,kBAAkB;CAOjC"}
|