offrouter-core 0.2.0 → 0.2.2
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/dist/audit.d.ts +137 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +320 -0
- package/dist/audit.js.map +1 -0
- package/dist/auth/credential-chain.d.ts +84 -0
- package/dist/auth/credential-chain.d.ts.map +1 -0
- package/dist/auth/credential-chain.js +150 -0
- package/dist/auth/credential-chain.js.map +1 -0
- package/dist/auth/index.d.ts +10 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +7 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/keychain.d.ts +60 -0
- package/dist/auth/keychain.d.ts.map +1 -0
- package/dist/auth/keychain.js +104 -0
- package/dist/auth/keychain.js.map +1 -0
- package/dist/auth/oauth-pkce.d.ts +138 -0
- package/dist/auth/oauth-pkce.d.ts.map +1 -0
- package/dist/auth/oauth-pkce.js +375 -0
- package/dist/auth/oauth-pkce.js.map +1 -0
- package/dist/auth/oauth-server.d.ts +36 -0
- package/dist/auth/oauth-server.d.ts.map +1 -0
- package/dist/auth/oauth-server.js +210 -0
- package/dist/auth/oauth-server.js.map +1 -0
- package/dist/config.d.ts +76 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +355 -0
- package/dist/config.js.map +1 -0
- package/dist/delegation.d.ts +123 -0
- package/dist/delegation.d.ts.map +1 -0
- package/dist/delegation.js +455 -0
- package/dist/delegation.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/policy.d.ts +45 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +318 -0
- package/dist/policy.js.map +1 -0
- package/{src/protocol.ts → dist/protocol.d.ts} +2 -2
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +6 -0
- package/dist/protocol.js.map +1 -0
- package/dist/providers/adapter.d.ts +137 -0
- package/dist/providers/adapter.d.ts.map +1 -0
- package/dist/providers/adapter.js +163 -0
- package/dist/providers/adapter.js.map +1 -0
- package/dist/providers/catalog-data.d.ts +128 -0
- package/dist/providers/catalog-data.d.ts.map +1 -0
- package/dist/providers/catalog-data.js +397 -0
- package/dist/providers/catalog-data.js.map +1 -0
- package/dist/providers/catalog.d.ts +63 -0
- package/dist/providers/catalog.d.ts.map +1 -0
- package/dist/providers/catalog.js +394 -0
- package/dist/providers/catalog.js.map +1 -0
- package/dist/providers/fake.d.ts +46 -0
- package/dist/providers/fake.d.ts.map +1 -0
- package/dist/providers/fake.js +234 -0
- package/dist/providers/fake.js.map +1 -0
- package/dist/providers/openai-compatible.d.ts +65 -0
- package/dist/providers/openai-compatible.d.ts.map +1 -0
- package/dist/providers/openai-compatible.js +434 -0
- package/dist/providers/openai-compatible.js.map +1 -0
- package/dist/proxy/responses-mapper.d.ts +366 -0
- package/dist/proxy/responses-mapper.d.ts.map +1 -0
- package/dist/proxy/responses-mapper.js +517 -0
- package/dist/proxy/responses-mapper.js.map +1 -0
- package/dist/proxy/responses-server.d.ts +29 -0
- package/dist/proxy/responses-server.d.ts.map +1 -0
- package/dist/proxy/responses-server.js +360 -0
- package/dist/proxy/responses-server.js.map +1 -0
- package/dist/router.d.ts +18 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +296 -0
- package/dist/router.js.map +1 -0
- package/dist/schemas.d.ts +560 -0
- package/dist/schemas.d.ts.map +1 -0
- package/{src/schemas.ts → dist/schemas.js} +83 -103
- package/dist/schemas.js.map +1 -0
- package/dist/secrets.d.ts +112 -0
- package/dist/secrets.d.ts.map +1 -0
- package/dist/secrets.js +326 -0
- package/dist/secrets.js.map +1 -0
- package/dist/types.d.ts +117 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/usage-file.d.ts +59 -0
- package/dist/usage-file.d.ts.map +1 -0
- package/dist/usage-file.js +316 -0
- package/dist/usage-file.js.map +1 -0
- package/dist/usage.d.ts +235 -0
- package/dist/usage.d.ts.map +1 -0
- package/dist/usage.js +517 -0
- package/dist/usage.js.map +1 -0
- package/package.json +9 -4
- package/src/audit.test.ts +0 -302
- package/src/audit.ts +0 -553
- package/src/auth/credential-chain.test.ts +0 -326
- package/src/auth/credential-chain.ts +0 -235
- package/src/auth/index.ts +0 -45
- package/src/auth/keychain.test.ts +0 -265
- package/src/auth/keychain.ts +0 -168
- package/src/auth/oauth-pkce.test.ts +0 -329
- package/src/auth/oauth-pkce.ts +0 -571
- package/src/auth/oauth-server.test.ts +0 -83
- package/src/auth/oauth-server.ts +0 -296
- package/src/config.test.ts +0 -479
- package/src/config.ts +0 -505
- package/src/delegation.test.ts +0 -368
- package/src/delegation.ts +0 -605
- package/src/index.ts +0 -280
- package/src/policy.test.ts +0 -634
- package/src/policy.ts +0 -420
- package/src/providers/adapter.test.ts +0 -293
- package/src/providers/adapter.ts +0 -328
- package/src/providers/catalog-data.test.ts +0 -258
- package/src/providers/catalog-data.ts +0 -498
- package/src/providers/catalog.test.ts +0 -84
- package/src/providers/catalog.ts +0 -483
- package/src/providers/fake.ts +0 -312
- package/src/providers/openai-compatible.test.ts +0 -366
- package/src/providers/openai-compatible.ts +0 -554
- package/src/proxy/responses-mapper.test.ts +0 -290
- package/src/proxy/responses-mapper.ts +0 -736
- package/src/proxy/responses-server.test.ts +0 -322
- package/src/proxy/responses-server.ts +0 -469
- package/src/router.test.ts +0 -699
- package/src/router.ts +0 -352
- package/src/schemas.test.ts +0 -291
- package/src/secrets.test.ts +0 -271
- package/src/secrets.ts +0 -461
- package/src/types.ts +0 -173
- package/src/usage-file.test.ts +0 -243
- package/src/usage-file.ts +0 -435
- package/src/usage.test.ts +0 -335
- package/src/usage.ts +0 -859
- package/tsconfig.json +0 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/providers/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static built-in provider + model family metadata for offline routing.
|
|
3
|
+
*
|
|
4
|
+
* Metadata only: no network calls, no credential reads, no secrets. API-key
|
|
5
|
+
* presence is checked elsewhere by the adapter (checkAuth). Pricing hints are
|
|
6
|
+
* approximate public values in USD per 1M tokens; re-verify against vendor
|
|
7
|
+
* pricing before any billing-sensitive use. Unknown fields are left undefined;
|
|
8
|
+
* nothing here is invented.
|
|
9
|
+
*
|
|
10
|
+
* Subscription-first invariant: this catalog never auto-promotes an api-key
|
|
11
|
+
* candidate over a subscription candidate for the same logical family. The
|
|
12
|
+
* supportsSubscriptionRouting flag only documents which families expose an
|
|
13
|
+
* official subscription surface (official login, token helper, OAuth, or MCP
|
|
14
|
+
* login); subscription routing itself is handled by the harness adapters, not
|
|
15
|
+
* by these OpenAI-compatible provider entries.
|
|
16
|
+
*/
|
|
17
|
+
import { z } from "zod";
|
|
18
|
+
import type { AuthScope, AuthTier } from "../types.js";
|
|
19
|
+
import type { LogicalModelFamily } from "./catalog.js";
|
|
20
|
+
import type { OpenAiCompatibleFlavor } from "./openai-compatible.js";
|
|
21
|
+
/** Public pricing hint in USD per 1M tokens. Undefined when undocumented. */
|
|
22
|
+
export interface PricingHint {
|
|
23
|
+
/** USD per 1M input tokens, when publicly documented. */
|
|
24
|
+
inputPer1M?: number;
|
|
25
|
+
/** USD per 1M output tokens, when publicly documented. */
|
|
26
|
+
outputPer1M?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Known model family metadata. Optional fields are unknown, never invented.
|
|
30
|
+
* Local runtime models omit token/capability fields because they are
|
|
31
|
+
* discovered from the running server.
|
|
32
|
+
*/
|
|
33
|
+
export interface BuiltinModelFamily {
|
|
34
|
+
modelId: string;
|
|
35
|
+
displayName?: string;
|
|
36
|
+
/** Logical family used to group candidates across auth tiers. */
|
|
37
|
+
family: LogicalModelFamily;
|
|
38
|
+
contextWindowTokens?: number;
|
|
39
|
+
maxOutputTokens?: number;
|
|
40
|
+
supportsTools?: boolean;
|
|
41
|
+
supportsStreaming?: boolean;
|
|
42
|
+
supportsJson?: boolean;
|
|
43
|
+
supportsImages?: boolean;
|
|
44
|
+
/** Public pricing hint; undefined when undocumented. */
|
|
45
|
+
pricing?: PricingHint;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Static provider entry describing how to build its OpenAI-compatible adapter
|
|
49
|
+
* and which model families it exposes. No secrets.
|
|
50
|
+
*/
|
|
51
|
+
export interface BuiltinProviderEntry {
|
|
52
|
+
providerId: string;
|
|
53
|
+
displayName: string;
|
|
54
|
+
/** Default base URL for the OpenAI-compatible adapter. */
|
|
55
|
+
defaultBaseUrl: string;
|
|
56
|
+
/** Adapter flavor used to construct the OpenAI-compatible client. */
|
|
57
|
+
flavor: OpenAiCompatibleFlavor;
|
|
58
|
+
/** Default auth tier for candidates built from this provider. */
|
|
59
|
+
defaultAuthTier: AuthTier;
|
|
60
|
+
/** Default auth scope for candidates built from this provider. */
|
|
61
|
+
defaultAuthScope: AuthScope;
|
|
62
|
+
/**
|
|
63
|
+
* True only when an official subscription surface exists (official login,
|
|
64
|
+
* token helper, OAuth, or MCP login). Informational only; never promotes a
|
|
65
|
+
* tier. False for pure api-key and local providers.
|
|
66
|
+
*/
|
|
67
|
+
supportsSubscriptionRouting: boolean;
|
|
68
|
+
/** ASCII-only note on the official subscription surface, if any. */
|
|
69
|
+
subscriptionSurfaceNote?: string;
|
|
70
|
+
knownModels: readonly BuiltinModelFamily[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Per-provider catalog config mirroring the existing config providers map.
|
|
74
|
+
* Users enable/disable providers and override base URLs in TOML; this is not a
|
|
75
|
+
* new config file format.
|
|
76
|
+
*/
|
|
77
|
+
export interface ProviderCatalogConfig {
|
|
78
|
+
/** Whether the provider is enabled. Defaults to true. */
|
|
79
|
+
enabled?: boolean;
|
|
80
|
+
/** Override the built-in default base URL. */
|
|
81
|
+
baseUrl?: string;
|
|
82
|
+
}
|
|
83
|
+
/** Map of providerId to provider catalog config (mirrors config providers map). */
|
|
84
|
+
export type BuiltinCatalogConfig = Record<string, ProviderCatalogConfig>;
|
|
85
|
+
export declare const ProviderCatalogConfigSchema: z.ZodObject<{
|
|
86
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
87
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
88
|
+
}, "strict", z.ZodTypeAny, {
|
|
89
|
+
enabled?: boolean | undefined;
|
|
90
|
+
baseUrl?: string | undefined;
|
|
91
|
+
}, {
|
|
92
|
+
enabled?: boolean | undefined;
|
|
93
|
+
baseUrl?: string | undefined;
|
|
94
|
+
}>;
|
|
95
|
+
/** Record of providerId -> ProviderCatalogConfig. */
|
|
96
|
+
export declare const BuiltinCatalogConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
97
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
98
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
99
|
+
}, "strict", z.ZodTypeAny, {
|
|
100
|
+
enabled?: boolean | undefined;
|
|
101
|
+
baseUrl?: string | undefined;
|
|
102
|
+
}, {
|
|
103
|
+
enabled?: boolean | undefined;
|
|
104
|
+
baseUrl?: string | undefined;
|
|
105
|
+
}>>;
|
|
106
|
+
/**
|
|
107
|
+
* Parse and validate a BuiltinCatalogConfig, throwing on invalid input.
|
|
108
|
+
* Lets callers validate provider catalog overrides at runtime.
|
|
109
|
+
*/
|
|
110
|
+
export declare function parseBuiltinCatalogConfig(input: unknown): BuiltinCatalogConfig;
|
|
111
|
+
/**
|
|
112
|
+
* Built-in providers. Subscription-backed first-party login happens through the
|
|
113
|
+
* harness adapters (claude/codex/gemini/grok), not these api endpoints, so each
|
|
114
|
+
* api/local entry reports supportsSubscriptionRouting=false with a note.
|
|
115
|
+
*/
|
|
116
|
+
export declare const BUILTIN_PROVIDERS: readonly BuiltinProviderEntry[];
|
|
117
|
+
/** Provider ids covered by the built-in catalog. */
|
|
118
|
+
export declare const BUILTIN_PROVIDER_IDS: readonly string[];
|
|
119
|
+
/** Look up a built-in provider by id. */
|
|
120
|
+
export declare function getBuiltinProvider(providerId: string): BuiltinProviderEntry | undefined;
|
|
121
|
+
/**
|
|
122
|
+
* Resolve built-in providers applying enable/disable and base URL overrides.
|
|
123
|
+
* Returns copies so callers cannot mutate the static source. Disabled providers
|
|
124
|
+
* are excluded. This never adds or removes a subscription tier; it only filters
|
|
125
|
+
* api-key/local provider metadata, preserving the subscription-first invariant.
|
|
126
|
+
*/
|
|
127
|
+
export declare function selectBuiltinProviders(config?: BuiltinCatalogConfig): BuiltinProviderEntry[];
|
|
128
|
+
//# sourceMappingURL=catalog-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-data.d.ts","sourceRoot":"","sources":["../../src/providers/catalog-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wDAAwD;IACxD,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,MAAM,EAAE,sBAAsB,CAAC;IAC/B,iEAAiE;IACjE,eAAe,EAAE,QAAQ,CAAC;IAC1B,kEAAkE;IAClE,gBAAgB,EAAE,SAAS,CAAC;IAC5B;;;;OAIG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC5C;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,mFAAmF;AACnF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAazE,eAAO,MAAM,2BAA2B;;;;;;;;;EAE7B,CAAC;AAEZ,qDAAqD;AACrD,eAAO,MAAM,0BAA0B;;;;;;;;;GAGtC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb,oBAAoB,CAEtB;AAcD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,oBAAoB,EAgU5D,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAEjD,CAAC;AAEF,yCAAyC;AACzC,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,GACjB,oBAAoB,GAAG,SAAS,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,oBAAyB,GAChC,oBAAoB,EAAE,CAgBxB"}
|
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static built-in provider + model family metadata for offline routing.
|
|
3
|
+
*
|
|
4
|
+
* Metadata only: no network calls, no credential reads, no secrets. API-key
|
|
5
|
+
* presence is checked elsewhere by the adapter (checkAuth). Pricing hints are
|
|
6
|
+
* approximate public values in USD per 1M tokens; re-verify against vendor
|
|
7
|
+
* pricing before any billing-sensitive use. Unknown fields are left undefined;
|
|
8
|
+
* nothing here is invented.
|
|
9
|
+
*
|
|
10
|
+
* Subscription-first invariant: this catalog never auto-promotes an api-key
|
|
11
|
+
* candidate over a subscription candidate for the same logical family. The
|
|
12
|
+
* supportsSubscriptionRouting flag only documents which families expose an
|
|
13
|
+
* official subscription surface (official login, token helper, OAuth, or MCP
|
|
14
|
+
* login); subscription routing itself is handled by the harness adapters, not
|
|
15
|
+
* by these OpenAI-compatible provider entries.
|
|
16
|
+
*/
|
|
17
|
+
import { z } from "zod";
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// Runtime validation (Zod). Mirrors the config.ts pattern: a shape object plus
|
|
20
|
+
// a strict object schema so unknown keys are rejected. The TS interfaces above
|
|
21
|
+
// remain the source of truth for the catalog-data public types.
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
const ProviderCatalogConfigShape = {
|
|
24
|
+
enabled: z.boolean().optional(),
|
|
25
|
+
baseUrl: z.string().optional(),
|
|
26
|
+
};
|
|
27
|
+
export const ProviderCatalogConfigSchema = z
|
|
28
|
+
.object(ProviderCatalogConfigShape)
|
|
29
|
+
.strict();
|
|
30
|
+
/** Record of providerId -> ProviderCatalogConfig. */
|
|
31
|
+
export const BuiltinCatalogConfigSchema = z.record(z.string().min(1), ProviderCatalogConfigSchema);
|
|
32
|
+
/**
|
|
33
|
+
* Parse and validate a BuiltinCatalogConfig, throwing on invalid input.
|
|
34
|
+
* Lets callers validate provider catalog overrides at runtime.
|
|
35
|
+
*/
|
|
36
|
+
export function parseBuiltinCatalogConfig(input) {
|
|
37
|
+
return BuiltinCatalogConfigSchema.parse(input);
|
|
38
|
+
}
|
|
39
|
+
// TODO(catalog-config): wire base_url + enable/disable overrides declared in
|
|
40
|
+
// config.toml `[providers]` through BuiltinCatalogConfigSchema. config.ts only
|
|
41
|
+
// validates `enabled` today; integrating `baseUrl` there would change the
|
|
42
|
+
// config contract, so it is tracked as a follow-up (code-review finding 4).
|
|
43
|
+
/**
|
|
44
|
+
* Shared note for local runtime providers: model list and capabilities are
|
|
45
|
+
* discovered from the running server, not from this static metadata.
|
|
46
|
+
*/
|
|
47
|
+
const LOCAL_RUNTIME_SUBSCRIPTION_NOTE = "Local runtime; model list and capabilities are discovered from the running server.";
|
|
48
|
+
/**
|
|
49
|
+
* Built-in providers. Subscription-backed first-party login happens through the
|
|
50
|
+
* harness adapters (claude/codex/gemini/grok), not these api endpoints, so each
|
|
51
|
+
* api/local entry reports supportsSubscriptionRouting=false with a note.
|
|
52
|
+
*/
|
|
53
|
+
export const BUILTIN_PROVIDERS = [
|
|
54
|
+
{
|
|
55
|
+
providerId: "openai",
|
|
56
|
+
displayName: "OpenAI API",
|
|
57
|
+
defaultBaseUrl: "https://api.openai.com/v1",
|
|
58
|
+
flavor: "openai",
|
|
59
|
+
defaultAuthTier: "api-key",
|
|
60
|
+
defaultAuthScope: "first-party",
|
|
61
|
+
supportsSubscriptionRouting: false,
|
|
62
|
+
subscriptionSurfaceNote: "Subscription routing for first-party OpenAI models is handled by the codex harness adapter, not this api endpoint.",
|
|
63
|
+
knownModels: [
|
|
64
|
+
{
|
|
65
|
+
modelId: "gpt-4.1",
|
|
66
|
+
displayName: "GPT-4.1",
|
|
67
|
+
family: "frontier-coder",
|
|
68
|
+
contextWindowTokens: 1_047_576,
|
|
69
|
+
maxOutputTokens: 32_768,
|
|
70
|
+
supportsTools: true,
|
|
71
|
+
supportsStreaming: true,
|
|
72
|
+
supportsJson: true,
|
|
73
|
+
supportsImages: true,
|
|
74
|
+
pricing: { inputPer1M: 2.0, outputPer1M: 8.0 },
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
modelId: "gpt-4.1-mini",
|
|
78
|
+
displayName: "GPT-4.1 mini",
|
|
79
|
+
family: "fast-coder",
|
|
80
|
+
contextWindowTokens: 1_047_576,
|
|
81
|
+
maxOutputTokens: 32_768,
|
|
82
|
+
supportsTools: true,
|
|
83
|
+
supportsStreaming: true,
|
|
84
|
+
supportsJson: true,
|
|
85
|
+
supportsImages: true,
|
|
86
|
+
pricing: { inputPer1M: 0.4, outputPer1M: 1.6 },
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
modelId: "o3",
|
|
90
|
+
displayName: "o3",
|
|
91
|
+
family: "frontier-coder",
|
|
92
|
+
contextWindowTokens: 200_000,
|
|
93
|
+
maxOutputTokens: 100_000,
|
|
94
|
+
supportsTools: true,
|
|
95
|
+
supportsStreaming: true,
|
|
96
|
+
supportsJson: true,
|
|
97
|
+
supportsImages: true,
|
|
98
|
+
pricing: { inputPer1M: 2.0, outputPer1M: 8.0 },
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
providerId: "anthropic",
|
|
104
|
+
displayName: "Anthropic API (OpenAI-compatible)",
|
|
105
|
+
defaultBaseUrl: "https://api.anthropic.com/v1/openai",
|
|
106
|
+
flavor: "openai",
|
|
107
|
+
defaultAuthTier: "api-key",
|
|
108
|
+
defaultAuthScope: "first-party",
|
|
109
|
+
supportsSubscriptionRouting: false,
|
|
110
|
+
subscriptionSurfaceNote: "Subscription routing for first-party Anthropic models is handled by the claude harness adapter, not this api endpoint.",
|
|
111
|
+
knownModels: [
|
|
112
|
+
{
|
|
113
|
+
modelId: "claude-sonnet-4",
|
|
114
|
+
displayName: "Claude Sonnet 4",
|
|
115
|
+
family: "frontier-coder",
|
|
116
|
+
contextWindowTokens: 200_000,
|
|
117
|
+
maxOutputTokens: 32_000,
|
|
118
|
+
supportsTools: true,
|
|
119
|
+
supportsStreaming: true,
|
|
120
|
+
supportsJson: true,
|
|
121
|
+
supportsImages: true,
|
|
122
|
+
pricing: { inputPer1M: 3.0, outputPer1M: 15.0 },
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
modelId: "claude-opus-4",
|
|
126
|
+
displayName: "Claude Opus 4",
|
|
127
|
+
family: "frontier-coder",
|
|
128
|
+
contextWindowTokens: 200_000,
|
|
129
|
+
maxOutputTokens: 32_000,
|
|
130
|
+
supportsTools: true,
|
|
131
|
+
supportsStreaming: true,
|
|
132
|
+
supportsJson: true,
|
|
133
|
+
supportsImages: true,
|
|
134
|
+
pricing: { inputPer1M: 15.0, outputPer1M: 75.0 },
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
modelId: "claude-haiku-4",
|
|
138
|
+
displayName: "Claude Haiku 4",
|
|
139
|
+
family: "fast-coder",
|
|
140
|
+
contextWindowTokens: 200_000,
|
|
141
|
+
maxOutputTokens: 16_000,
|
|
142
|
+
supportsTools: true,
|
|
143
|
+
supportsStreaming: true,
|
|
144
|
+
supportsJson: true,
|
|
145
|
+
supportsImages: true,
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
providerId: "google",
|
|
151
|
+
displayName: "Google Gemini API (OpenAI-compatible)",
|
|
152
|
+
defaultBaseUrl: "https://generativelanguage.googleapis.com/v1beta/openai",
|
|
153
|
+
flavor: "openai",
|
|
154
|
+
defaultAuthTier: "api-key",
|
|
155
|
+
defaultAuthScope: "first-party",
|
|
156
|
+
supportsSubscriptionRouting: false,
|
|
157
|
+
subscriptionSurfaceNote: "Subscription routing for first-party Google models is handled by the gemini harness adapter, not this api endpoint.",
|
|
158
|
+
knownModels: [
|
|
159
|
+
{
|
|
160
|
+
modelId: "gemini-2.5-pro",
|
|
161
|
+
displayName: "Gemini 2.5 Pro",
|
|
162
|
+
family: "frontier-coder",
|
|
163
|
+
contextWindowTokens: 1_048_576,
|
|
164
|
+
maxOutputTokens: 65_536,
|
|
165
|
+
supportsTools: true,
|
|
166
|
+
supportsStreaming: true,
|
|
167
|
+
supportsJson: true,
|
|
168
|
+
supportsImages: true,
|
|
169
|
+
pricing: { inputPer1M: 1.25, outputPer1M: 10.0 },
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
modelId: "gemini-2.5-flash",
|
|
173
|
+
displayName: "Gemini 2.5 Flash",
|
|
174
|
+
family: "fast-coder",
|
|
175
|
+
contextWindowTokens: 1_048_576,
|
|
176
|
+
maxOutputTokens: 65_536,
|
|
177
|
+
supportsTools: true,
|
|
178
|
+
supportsStreaming: true,
|
|
179
|
+
supportsJson: true,
|
|
180
|
+
supportsImages: true,
|
|
181
|
+
pricing: { inputPer1M: 0.3, outputPer1M: 2.5 },
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
providerId: "xai",
|
|
187
|
+
displayName: "xAI Grok API",
|
|
188
|
+
defaultBaseUrl: "https://api.x.ai/v1",
|
|
189
|
+
flavor: "xai",
|
|
190
|
+
defaultAuthTier: "api-key",
|
|
191
|
+
defaultAuthScope: "first-party",
|
|
192
|
+
supportsSubscriptionRouting: false,
|
|
193
|
+
subscriptionSurfaceNote: "Subscription routing for first-party xAI models is handled by the grok harness adapter, not this api endpoint.",
|
|
194
|
+
knownModels: [
|
|
195
|
+
{
|
|
196
|
+
modelId: "grok-4",
|
|
197
|
+
displayName: "Grok 4",
|
|
198
|
+
family: "frontier-coder",
|
|
199
|
+
contextWindowTokens: 256_000,
|
|
200
|
+
maxOutputTokens: 32_768,
|
|
201
|
+
supportsTools: true,
|
|
202
|
+
supportsStreaming: true,
|
|
203
|
+
supportsJson: true,
|
|
204
|
+
supportsImages: true,
|
|
205
|
+
pricing: { inputPer1M: 3.0, outputPer1M: 15.0 },
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
modelId: "grok-code-fast-1",
|
|
209
|
+
displayName: "Grok Code Fast",
|
|
210
|
+
family: "fast-coder",
|
|
211
|
+
contextWindowTokens: 256_000,
|
|
212
|
+
maxOutputTokens: 16_384,
|
|
213
|
+
supportsTools: true,
|
|
214
|
+
supportsStreaming: true,
|
|
215
|
+
supportsJson: true,
|
|
216
|
+
supportsImages: false,
|
|
217
|
+
},
|
|
218
|
+
],
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
providerId: "openrouter",
|
|
222
|
+
displayName: "OpenRouter",
|
|
223
|
+
defaultBaseUrl: "https://openrouter.ai/api/v1",
|
|
224
|
+
flavor: "openrouter",
|
|
225
|
+
defaultAuthTier: "api-key",
|
|
226
|
+
defaultAuthScope: "third-party",
|
|
227
|
+
supportsSubscriptionRouting: false,
|
|
228
|
+
knownModels: [
|
|
229
|
+
{
|
|
230
|
+
modelId: "anthropic/claude-sonnet-4",
|
|
231
|
+
family: "frontier-coder",
|
|
232
|
+
supportsTools: true,
|
|
233
|
+
supportsStreaming: true,
|
|
234
|
+
supportsJson: true,
|
|
235
|
+
supportsImages: true,
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
modelId: "google/gemini-2.5-flash",
|
|
239
|
+
family: "fast-coder",
|
|
240
|
+
supportsTools: true,
|
|
241
|
+
supportsStreaming: true,
|
|
242
|
+
supportsJson: true,
|
|
243
|
+
supportsImages: true,
|
|
244
|
+
},
|
|
245
|
+
],
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
providerId: "zai",
|
|
249
|
+
displayName: "Z.ai GLM API",
|
|
250
|
+
defaultBaseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
251
|
+
flavor: "openai",
|
|
252
|
+
defaultAuthTier: "api-key",
|
|
253
|
+
defaultAuthScope: "first-party",
|
|
254
|
+
supportsSubscriptionRouting: false,
|
|
255
|
+
knownModels: [
|
|
256
|
+
{
|
|
257
|
+
modelId: "glm-4.6",
|
|
258
|
+
displayName: "GLM-4.6",
|
|
259
|
+
family: "fast-coder",
|
|
260
|
+
contextWindowTokens: 200_000,
|
|
261
|
+
maxOutputTokens: 16_000,
|
|
262
|
+
supportsTools: true,
|
|
263
|
+
supportsStreaming: true,
|
|
264
|
+
supportsJson: true,
|
|
265
|
+
supportsImages: false,
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
modelId: "glm-4.5",
|
|
269
|
+
displayName: "GLM-4.5",
|
|
270
|
+
family: "fast-coder",
|
|
271
|
+
supportsTools: true,
|
|
272
|
+
supportsStreaming: true,
|
|
273
|
+
supportsJson: true,
|
|
274
|
+
supportsImages: false,
|
|
275
|
+
},
|
|
276
|
+
],
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
providerId: "moonshot",
|
|
280
|
+
displayName: "Moonshot Kimi API",
|
|
281
|
+
defaultBaseUrl: "https://api.moonshot.cn/v1",
|
|
282
|
+
flavor: "openai",
|
|
283
|
+
defaultAuthTier: "api-key",
|
|
284
|
+
defaultAuthScope: "first-party",
|
|
285
|
+
supportsSubscriptionRouting: false,
|
|
286
|
+
knownModels: [
|
|
287
|
+
{
|
|
288
|
+
modelId: "kimi-k2",
|
|
289
|
+
displayName: "Kimi K2",
|
|
290
|
+
family: "fast-coder",
|
|
291
|
+
contextWindowTokens: 200_000,
|
|
292
|
+
maxOutputTokens: 8_192,
|
|
293
|
+
supportsTools: true,
|
|
294
|
+
supportsStreaming: true,
|
|
295
|
+
supportsJson: true,
|
|
296
|
+
supportsImages: false,
|
|
297
|
+
},
|
|
298
|
+
],
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
providerId: "ollama",
|
|
302
|
+
displayName: "Ollama (local)",
|
|
303
|
+
defaultBaseUrl: "http://localhost:11434/v1",
|
|
304
|
+
flavor: "ollama",
|
|
305
|
+
defaultAuthTier: "local",
|
|
306
|
+
defaultAuthScope: "first-party",
|
|
307
|
+
supportsSubscriptionRouting: false,
|
|
308
|
+
subscriptionSurfaceNote: LOCAL_RUNTIME_SUBSCRIPTION_NOTE,
|
|
309
|
+
knownModels: [
|
|
310
|
+
{
|
|
311
|
+
modelId: "qwen2.5-coder:32b",
|
|
312
|
+
family: "local-coder",
|
|
313
|
+
supportsTools: true,
|
|
314
|
+
supportsStreaming: true,
|
|
315
|
+
supportsJson: true,
|
|
316
|
+
supportsImages: false,
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
modelId: "llava:latest",
|
|
320
|
+
family: "vision-helper",
|
|
321
|
+
supportsTools: false,
|
|
322
|
+
supportsStreaming: true,
|
|
323
|
+
supportsJson: false,
|
|
324
|
+
supportsImages: true,
|
|
325
|
+
},
|
|
326
|
+
],
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
providerId: "lm-studio",
|
|
330
|
+
displayName: "LM Studio (local)",
|
|
331
|
+
defaultBaseUrl: "http://localhost:1234/v1",
|
|
332
|
+
flavor: "openai",
|
|
333
|
+
defaultAuthTier: "local",
|
|
334
|
+
defaultAuthScope: "first-party",
|
|
335
|
+
supportsSubscriptionRouting: false,
|
|
336
|
+
subscriptionSurfaceNote: LOCAL_RUNTIME_SUBSCRIPTION_NOTE,
|
|
337
|
+
knownModels: [
|
|
338
|
+
{
|
|
339
|
+
modelId: "local-coder",
|
|
340
|
+
family: "local-coder",
|
|
341
|
+
supportsTools: true,
|
|
342
|
+
supportsStreaming: true,
|
|
343
|
+
supportsJson: true,
|
|
344
|
+
supportsImages: false,
|
|
345
|
+
},
|
|
346
|
+
],
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
providerId: "custom",
|
|
350
|
+
displayName: "Custom OpenAI-compatible endpoint",
|
|
351
|
+
defaultBaseUrl: "",
|
|
352
|
+
flavor: "openai",
|
|
353
|
+
defaultAuthTier: "local",
|
|
354
|
+
defaultAuthScope: "unknown",
|
|
355
|
+
supportsSubscriptionRouting: false,
|
|
356
|
+
subscriptionSurfaceNote: "User-defined OpenAI-compatible gateway. base URL and model ids must be supplied via provider config.",
|
|
357
|
+
knownModels: [
|
|
358
|
+
{
|
|
359
|
+
modelId: "custom-model",
|
|
360
|
+
family: "local-coder",
|
|
361
|
+
supportsTools: true,
|
|
362
|
+
supportsStreaming: true,
|
|
363
|
+
supportsJson: true,
|
|
364
|
+
supportsImages: false,
|
|
365
|
+
},
|
|
366
|
+
],
|
|
367
|
+
},
|
|
368
|
+
];
|
|
369
|
+
/** Provider ids covered by the built-in catalog. */
|
|
370
|
+
export const BUILTIN_PROVIDER_IDS = BUILTIN_PROVIDERS.map((provider) => provider.providerId);
|
|
371
|
+
/** Look up a built-in provider by id. */
|
|
372
|
+
export function getBuiltinProvider(providerId) {
|
|
373
|
+
return BUILTIN_PROVIDERS.find((p) => p.providerId === providerId);
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Resolve built-in providers applying enable/disable and base URL overrides.
|
|
377
|
+
* Returns copies so callers cannot mutate the static source. Disabled providers
|
|
378
|
+
* are excluded. This never adds or removes a subscription tier; it only filters
|
|
379
|
+
* api-key/local provider metadata, preserving the subscription-first invariant.
|
|
380
|
+
*/
|
|
381
|
+
export function selectBuiltinProviders(config = {}) {
|
|
382
|
+
return BUILTIN_PROVIDERS.filter((provider) => {
|
|
383
|
+
const override = config[provider.providerId];
|
|
384
|
+
return override?.enabled ?? true;
|
|
385
|
+
}).map((provider) => {
|
|
386
|
+
const override = config[provider.providerId];
|
|
387
|
+
const overrideUrl = override?.baseUrl?.trim();
|
|
388
|
+
return {
|
|
389
|
+
...provider,
|
|
390
|
+
defaultBaseUrl: overrideUrl && overrideUrl.length > 0
|
|
391
|
+
? overrideUrl
|
|
392
|
+
: provider.defaultBaseUrl,
|
|
393
|
+
knownModels: provider.knownModels.map((model) => ({ ...model })),
|
|
394
|
+
};
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
//# sourceMappingURL=catalog-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-data.js","sourceRoot":"","sources":["../../src/providers/catalog-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static provider/model catalog for offline subscription-first routing tests.
|
|
3
|
+
* No credential scraping; entries describe discovery shapes only.
|
|
4
|
+
*/
|
|
5
|
+
import type { AuthScope, AuthTier, ProviderCandidate, ProviderHealth, SubscriptionStatus } from "../types.js";
|
|
6
|
+
import { type BuiltinCatalogConfig } from "./catalog-data.js";
|
|
7
|
+
/** Logical model family shared across auth tiers for preference testing. */
|
|
8
|
+
export type LogicalModelFamily = "frontier-coder" | "fast-coder" | "local-coder" | "vision-helper";
|
|
9
|
+
export interface CatalogEntry {
|
|
10
|
+
providerId: string;
|
|
11
|
+
modelId: string;
|
|
12
|
+
displayName: string;
|
|
13
|
+
family: LogicalModelFamily;
|
|
14
|
+
authTier: AuthTier;
|
|
15
|
+
authScope: AuthScope;
|
|
16
|
+
subscriptionStatus?: SubscriptionStatus;
|
|
17
|
+
health: ProviderHealth;
|
|
18
|
+
supportsTools: boolean;
|
|
19
|
+
supportsStreaming: boolean;
|
|
20
|
+
supportsJson: boolean;
|
|
21
|
+
supportsImages: boolean;
|
|
22
|
+
contextWindowTokens?: number;
|
|
23
|
+
maxOutputTokens?: number;
|
|
24
|
+
estimatedCostUsd?: number;
|
|
25
|
+
notes?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Built-in catalog: for several families, ship subscription + local + api-key
|
|
29
|
+
* candidates so routing prefers subscription without live credentials.
|
|
30
|
+
*/
|
|
31
|
+
export declare const STATIC_CATALOG: readonly CatalogEntry[];
|
|
32
|
+
export interface LoadCatalogOptions {
|
|
33
|
+
/** Optional filter by provider id. */
|
|
34
|
+
providerIds?: string[];
|
|
35
|
+
/** Optional filter by logical family. */
|
|
36
|
+
families?: LogicalModelFamily[];
|
|
37
|
+
/** Optional filter by auth tier. */
|
|
38
|
+
authTiers?: AuthTier[];
|
|
39
|
+
/** Include degraded/dead by default true. */
|
|
40
|
+
includeUnhealthy?: boolean;
|
|
41
|
+
}
|
|
42
|
+
export declare function loadStaticCatalog(options?: LoadCatalogOptions): CatalogEntry[];
|
|
43
|
+
export declare function catalogToCandidates(entries?: readonly CatalogEntry[]): ProviderCandidate[];
|
|
44
|
+
/** Families that must expose all three auth tiers for offline preference tests. */
|
|
45
|
+
export declare const MULTI_TIER_FAMILIES: readonly LogicalModelFamily[];
|
|
46
|
+
export declare function familyAuthTiers(family: LogicalModelFamily): Set<AuthTier>;
|
|
47
|
+
export interface LoadBuiltinCatalogOptions {
|
|
48
|
+
/** Per-provider overrides keyed by providerId (mirrors config providers map). */
|
|
49
|
+
providers?: BuiltinCatalogConfig;
|
|
50
|
+
/** Optional filter by logical family. */
|
|
51
|
+
families?: LogicalModelFamily[];
|
|
52
|
+
/** Optional filter by auth tier. */
|
|
53
|
+
authTiers?: AuthTier[];
|
|
54
|
+
/** Include degraded/dead by default true. */
|
|
55
|
+
includeUnhealthy?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Load the merged built-in catalog: static rows plus built-in provider
|
|
59
|
+
* metadata, with provider enable/disable and base URL overrides applied.
|
|
60
|
+
* Existing static loading behavior (loadStaticCatalog) is unchanged.
|
|
61
|
+
*/
|
|
62
|
+
export declare function loadBuiltinCatalog(options?: LoadBuiltinCatalogOptions): CatalogEntry[];
|
|
63
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/providers/catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,mBAAmB,CAAC;AAE3B,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAC5B,gBAAgB,GAAG,YAAY,GAAG,aAAa,GAAG,eAAe,CAAC;AAEpE,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAiQxC,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,oCAAoC;IACpC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,kBAAuB,GAC/B,YAAY,EAAE,CAoBhB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,SAAS,YAAY,EAAmB,GAChD,iBAAiB,EAAE,CAiBrB;AAED,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,EAAE,SAAS,kBAAkB,EAK5D,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,GAAG,CAAC,QAAQ,CAAC,CAMzE;AASD,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,oCAAoC;IACpC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AA6CD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,yBAA8B,GACtC,YAAY,EAAE,CAsChB"}
|