@full-self-browsing/lattice 1.4.0 → 1.5.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/dist/agent-run-C6miAzwI.d.ts +45 -0
- package/dist/agent-run-C6miAzwI.d.ts.map +1 -0
- package/dist/agent-run-CgPVFl0Z.js +47 -0
- package/dist/agent-run-CgPVFl0Z.js.map +1 -0
- package/dist/agents.d.ts +5 -0
- package/dist/agents.js +6 -0
- package/dist/artifact-Bg6mJGnm.d.ts +125 -0
- package/dist/artifact-Bg6mJGnm.d.ts.map +1 -0
- package/dist/artifact-DOfpeXLb.js +140 -0
- package/dist/artifact-DOfpeXLb.js.map +1 -0
- package/dist/artifacts.d.ts +2 -0
- package/dist/artifacts.js +2 -0
- package/dist/audit.d.ts +3 -0
- package/dist/audit.js +4 -0
- package/dist/catalog-CAfYwB_-.js +91 -0
- package/dist/catalog-CAfYwB_-.js.map +1 -0
- package/dist/context-pack-Bz3GXmjv.js +99 -0
- package/dist/context-pack-Bz3GXmjv.js.map +1 -0
- package/dist/context.d.ts +2 -0
- package/dist/context.js +2 -0
- package/dist/contract-S3oJGlc9.d.ts +74 -0
- package/dist/contract-S3oJGlc9.d.ts.map +1 -0
- package/dist/core.d.ts +48 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +95 -0
- package/dist/core.js.map +1 -0
- package/dist/errors-eEuEIx6X.js +407 -0
- package/dist/errors-eEuEIx6X.js.map +1 -0
- package/dist/eval.d.ts +2 -0
- package/dist/eval.js +2 -0
- package/dist/fingerprint-DodDbQKN.js +34 -0
- package/dist/fingerprint-DodDbQKN.js.map +1 -0
- package/dist/index-DpnHGHVL.d.ts +53 -0
- package/dist/index-DpnHGHVL.d.ts.map +1 -0
- package/dist/index.d.ts +90 -3533
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -15968
- package/dist/index.js.map +1 -1
- package/dist/infer-DLqp5QIM.d.ts +96 -0
- package/dist/infer-DLqp5QIM.d.ts.map +1 -0
- package/dist/lineage-DBgoPWAZ.js +137 -0
- package/dist/lineage-DBgoPWAZ.js.map +1 -0
- package/dist/local-CXOGPJ1f.js +139 -0
- package/dist/local-CXOGPJ1f.js.map +1 -0
- package/dist/local-Dy--7peL.d.ts +10 -0
- package/dist/local-Dy--7peL.d.ts.map +1 -0
- package/dist/memory-CkQEW6m5.js +62 -0
- package/dist/memory-CkQEW6m5.js.map +1 -0
- package/dist/memory-DRig5EHV.d.ts +10 -0
- package/dist/memory-DRig5EHV.d.ts.map +1 -0
- package/dist/negotiate-ClD88hkc.js +10967 -0
- package/dist/negotiate-ClD88hkc.js.map +1 -0
- package/dist/otel-BgM4e55_.d.ts +421 -0
- package/dist/otel-BgM4e55_.d.ts.map +1 -0
- package/dist/permission-context-CUKMo79F.js +134 -0
- package/dist/permission-context-CUKMo79F.js.map +1 -0
- package/dist/plan-DFm8Llep.js +125 -0
- package/dist/plan-DFm8Llep.js.map +1 -0
- package/dist/preflight-DNHWuJ46.d.ts +64 -0
- package/dist/preflight-DNHWuJ46.d.ts.map +1 -0
- package/dist/provider-C2IfKsvz.d.ts +1178 -0
- package/dist/provider-C2IfKsvz.d.ts.map +1 -0
- package/dist/providers.d.ts +4 -0
- package/dist/providers.js +4 -0
- package/dist/rate-limit-group-nDsBJqSu.d.ts +235 -0
- package/dist/rate-limit-group-nDsBJqSu.d.ts.map +1 -0
- package/dist/receipt-FYouoPHv.js +205 -0
- package/dist/receipt-FYouoPHv.js.map +1 -0
- package/dist/replay-CtIhpLek.js +964 -0
- package/dist/replay-CtIhpLek.js.map +1 -0
- package/dist/result-DLEx2WvU.d.ts +38 -0
- package/dist/result-DLEx2WvU.d.ts.map +1 -0
- package/dist/router-DU4Z3pTd.js +314 -0
- package/dist/router-DU4Z3pTd.js.map +1 -0
- package/dist/router-Yo1-aDOv.d.ts +42 -0
- package/dist/router-Yo1-aDOv.d.ts.map +1 -0
- package/dist/routing.d.ts +6 -0
- package/dist/routing.js +4 -0
- package/dist/{run-crew-CKdBjh5P.js → run-crew-B2fQLmgB.js} +7 -136
- package/dist/run-crew-B2fQLmgB.js.map +1 -0
- package/dist/run-crew-Bnve5dyI.d.ts +721 -0
- package/dist/run-crew-Bnve5dyI.d.ts.map +1 -0
- package/dist/{runtime-D25ehzCj.js → runtime-Dxiet5YS.js} +98 -641
- package/dist/runtime-Dxiet5YS.js.map +1 -0
- package/dist/scaffolds-DKQrCRqh.d.ts +535 -0
- package/dist/scaffolds-DKQrCRqh.d.ts.map +1 -0
- package/dist/scaffolds-ekPIlBeU.js +3139 -0
- package/dist/scaffolds-ekPIlBeU.js.map +1 -0
- package/dist/schema-CNfa_VEy.d.ts +15 -0
- package/dist/schema-CNfa_VEy.d.ts.map +1 -0
- package/dist/storage-DJKmsaEI.d.ts +26 -0
- package/dist/storage-DJKmsaEI.d.ts.map +1 -0
- package/dist/storage.d.ts +10 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +4 -0
- package/dist/tool-call-validation-BFoXkwbf.js +107 -0
- package/dist/tool-call-validation-BFoXkwbf.js.map +1 -0
- package/dist/tools-C4wHgGKQ.js +49 -0
- package/dist/tools-C4wHgGKQ.js.map +1 -0
- package/dist/tools.d.ts +46 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +106 -0
- package/dist/tools.js.map +1 -0
- package/dist/validate-c7EL5uuH.js +224 -0
- package/dist/validate-c7EL5uuH.js.map +1 -0
- package/package.json +99 -2
- package/dist/run-crew-CKdBjh5P.js.map +0 -1
- package/dist/runtime-D25ehzCj.js.map +0 -1
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
import { $ as XaiQuirks, E as NegotiatedCapabilities, H as RecommendedPromptStrategy, J as LiteLLMQuirks, K as AnthropicQuirks, Q as OpenRouterQuirks, X as OpenAICompatQuirks, Y as LmStudioQuirks, Z as OpenAIQuirks, bn as RunEventSink, d as ProviderRunRequest, f as ProviderRunResponse, n as ModelCapability, nt as ValidateToolCallsOption, p as ProviderStream, q as GeminiQuirks, r as ProviderAdapter } from "./provider-C2IfKsvz.js";
|
|
2
|
+
import { b as GatewayPolicy, r as ArtifactInput } from "./artifact-Bg6mJGnm.js";
|
|
3
|
+
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
4
|
+
|
|
5
|
+
//#region src/sanitizers/sanitizers.d.ts
|
|
6
|
+
interface SanitizerContext {
|
|
7
|
+
readonly providerId: string;
|
|
8
|
+
readonly modelId?: string;
|
|
9
|
+
readonly outputName: string;
|
|
10
|
+
}
|
|
11
|
+
type SanitizerFn = (text: string, context: SanitizerContext) => string | Promise<string>;
|
|
12
|
+
type SanitizeOutputOption = SanitizerFn | readonly SanitizerFn[];
|
|
13
|
+
interface InternalEnvelopeOptions {
|
|
14
|
+
readonly field?: string;
|
|
15
|
+
readonly path?: string;
|
|
16
|
+
readonly schema?: StandardSchemaV1;
|
|
17
|
+
}
|
|
18
|
+
declare function stripReasoningTags(): SanitizerFn;
|
|
19
|
+
declare function stripChatTemplateArtifacts(): SanitizerFn;
|
|
20
|
+
declare function unwrapInternalEnvelope(schemaOrPath: string | InternalEnvelopeOptions | StandardSchemaV1): SanitizerFn;
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region src/providers/adapters.d.ts
|
|
23
|
+
interface OpenAICompatibleProviderOptions {
|
|
24
|
+
readonly id?: string;
|
|
25
|
+
readonly model: string;
|
|
26
|
+
readonly baseUrl: string;
|
|
27
|
+
readonly apiKey?: string;
|
|
28
|
+
readonly gateway?: GatewayPolicy;
|
|
29
|
+
readonly fetch?: typeof fetch;
|
|
30
|
+
/**
|
|
31
|
+
* Phase 7 addition: caller-supplied per-1k pricing. When provided, the
|
|
32
|
+
* adapter computes `normalizedUsage.costUsd` from the API-reported token
|
|
33
|
+
* counts. When omitted, `normalizedUsage.costUsd` is `null` so downstream
|
|
34
|
+
* consumers can distinguish "unmeasured" from "free" (per 07-CONTEXT.md).
|
|
35
|
+
*/
|
|
36
|
+
readonly pricing?: {
|
|
37
|
+
readonly inputPer1kTokens?: number;
|
|
38
|
+
readonly outputPer1kTokens?: number;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Phase 34 — D-05/D-06/D-08 — TTL for the per-instance models cache.
|
|
42
|
+
* Default 300_000ms (5 minutes). Set to 0 to disable caching.
|
|
43
|
+
* Set to Infinity for process-lifetime caching.
|
|
44
|
+
*
|
|
45
|
+
* NOTE: for createOpenAICompatibleProvider, this option is accepted for
|
|
46
|
+
* option-bag uniformity but is NOT USED — openai-compat has no /models
|
|
47
|
+
* endpoint (D-04). Document in JSDoc for consumers pointing at known servers.
|
|
48
|
+
*/
|
|
49
|
+
readonly modelsCacheTtlMs?: number;
|
|
50
|
+
/**
|
|
51
|
+
* Phase 34 — D-11 — Number of retry attempts on transient /models errors
|
|
52
|
+
* (5xx, network, timeout). Default 2. Set to 0 to disable retries.
|
|
53
|
+
*
|
|
54
|
+
* NOTE: for createOpenAICompatibleProvider, this option is accepted for
|
|
55
|
+
* option-bag uniformity but is NOT USED — openai-compat has no /models
|
|
56
|
+
* endpoint (D-04).
|
|
57
|
+
*/
|
|
58
|
+
readonly modelsRetryCount?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Phase 34 — D-12 — Optional RunEventSink for capability negotiation events.
|
|
61
|
+
* When provided, emits the "capabilities.negotiation.fallback" event on
|
|
62
|
+
* transient /models errors (5xx, network, timeout).
|
|
63
|
+
*
|
|
64
|
+
* NOTE: for createOpenAICompatibleProvider, this option is accepted for
|
|
65
|
+
* option-bag uniformity but the event is NOT FIRED for source: "registry"
|
|
66
|
+
* (the documented happy path for openai-compat). Emitting events for the
|
|
67
|
+
* intentional no-endpoint path would produce noisy false-positives.
|
|
68
|
+
*/
|
|
69
|
+
readonly runEventSink?: RunEventSink;
|
|
70
|
+
/**
|
|
71
|
+
* Phase 36 — Optional output sanitizer pipeline. When provided, string
|
|
72
|
+
* rawOutputs are transformed in order after provider text extraction and
|
|
73
|
+
* before the adapter returns.
|
|
74
|
+
*/
|
|
75
|
+
readonly sanitizeOutput?: SanitizeOutputOption;
|
|
76
|
+
/**
|
|
77
|
+
* Phase 37 — Optional returned tool-call validator. When provided, the
|
|
78
|
+
* adapter parses prompt-reencoded tool_calls envelopes and returns
|
|
79
|
+
* normalized validated calls without mutating rawOutputs or rawResponse.
|
|
80
|
+
*/
|
|
81
|
+
readonly validateToolCalls?: ValidateToolCallsOption;
|
|
82
|
+
}
|
|
83
|
+
interface SdkLikeProviderOptions {
|
|
84
|
+
readonly id?: string;
|
|
85
|
+
readonly model: string;
|
|
86
|
+
readonly generate: (input: {
|
|
87
|
+
readonly task: string;
|
|
88
|
+
readonly outputNames: readonly string[];
|
|
89
|
+
}) => Promise<ProviderRunResponse> | ProviderRunResponse;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Phase 34 — D-04 / QUIRK-02 — OpenAI-compatible provider factory.
|
|
93
|
+
*
|
|
94
|
+
* This factory is the prototypical "intentional no remote /models endpoint"
|
|
95
|
+
* adapter per D-04. The consumer points this adapter at any OpenAI-shaped
|
|
96
|
+
* endpoint (vLLM, TGI, Ollama, custom), and the factory returns conservative
|
|
97
|
+
* defaults for the quirks block because the server could be anything.
|
|
98
|
+
*
|
|
99
|
+
* The `negotiateCapabilities` method performs NO fetch; it returns
|
|
100
|
+
* synthesizeNegotiatedCapabilitiesFromRegistry with source: "registry"
|
|
101
|
+
* (the intentional-no-endpoint signal, as distinct from "registry-fallback"
|
|
102
|
+
* which signals a transient failure). Plan 34-05 (LM Studio) reuses this
|
|
103
|
+
* same pattern.
|
|
104
|
+
*
|
|
105
|
+
* D-04 citation: "consumer adapters without a /models endpoint skip the
|
|
106
|
+
* fetch layer entirely and delegate to synthesizeNegotiatedCapabilitiesFromRegistry."
|
|
107
|
+
*/
|
|
108
|
+
declare function createOpenAICompatibleProvider(options: OpenAICompatibleProviderOptions): ProviderAdapter & {
|
|
109
|
+
readonly quirks: OpenAICompatQuirks;
|
|
110
|
+
readonly negotiateCapabilities: (modelId: string) => Promise<NegotiatedCapabilities>;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Phase 34 — QUIRK-02 / NEG-01 / NEG-02 — OpenAI provider factory.
|
|
114
|
+
*
|
|
115
|
+
* Extends the base OpenAI-compat factory with:
|
|
116
|
+
* 1. `quirks: OpenAIQuirks` — verified per RESEARCH §Q6 OpenAI vocabulary.
|
|
117
|
+
* 2. `negotiateCapabilities(modelId)` — queries OpenAI /v1/models GET with
|
|
118
|
+
* Authorization: Bearer header; SPARSE response; intersects with Phase 33
|
|
119
|
+
* registry for supports.* (per RESEARCH §Anti-patterns — don't assume
|
|
120
|
+
* OpenAI /v1/models returns capability flags, it doesn't).
|
|
121
|
+
*
|
|
122
|
+
* The negotiate() pattern mirrors Plan 34-02 (Anthropic thick reference):
|
|
123
|
+
* - Per-instance TTL cache (modelsCacheTtlMs, default 300_000ms)
|
|
124
|
+
* - Single-flight inflight coalescing with .finally cleanup (Pitfall 4)
|
|
125
|
+
* - Retry with [0, 200, 1000]ms backoff (modelsRetryCount, default 2)
|
|
126
|
+
* - 401/403 throws NegotiationAuthError (D-10: no retry, no fallback, no event)
|
|
127
|
+
* - 5xx/network/timeout falls back to registry with source: "registry-fallback"
|
|
128
|
+
* - emitFallbackEvent fires the "capabilities.negotiation.fallback" RunEvent
|
|
129
|
+
*
|
|
130
|
+
* SECURITY (T-34-03-07): inflight Map MUST use .finally cleanup to prevent
|
|
131
|
+
* leak on rejection. Verifiable: grep `.finally` in this file.
|
|
132
|
+
*/
|
|
133
|
+
declare function createOpenAIProvider(options: OpenAICompatibleProviderOptions): ProviderAdapter & {
|
|
134
|
+
readonly quirks: OpenAIQuirks;
|
|
135
|
+
readonly negotiateCapabilities: (modelId: string) => Promise<NegotiatedCapabilities>;
|
|
136
|
+
};
|
|
137
|
+
declare function createAISdkProvider(options: SdkLikeProviderOptions): ProviderAdapter;
|
|
138
|
+
//#endregion
|
|
139
|
+
//#region src/providers/anthropic.d.ts
|
|
140
|
+
/**
|
|
141
|
+
* Options for {@link createAnthropicProvider}.
|
|
142
|
+
*
|
|
143
|
+
* Mirrors `OpenAICompatibleProviderOptions` ergonomics (Phase 7 pattern) but
|
|
144
|
+
* for the Anthropic Messages API at `/v1/messages` -- which uses a top-level
|
|
145
|
+
* `system` field and a `content[0].text` response shape that diverges from
|
|
146
|
+
* the OpenAI Chat Completions schema (see FSB v0.9.x `extension/ai/universal-provider.js`
|
|
147
|
+
* lines 280-297 + 566-573 for the production reference).
|
|
148
|
+
*
|
|
149
|
+
* SECURITY: `apiKey` is a runtime parameter -- do NOT hardcode or log it.
|
|
150
|
+
*
|
|
151
|
+
* STREAMING (Phase 44): supported through native Anthropic Messages SSE events.
|
|
152
|
+
*
|
|
153
|
+
* DEFERRED (Phase 4 carryforward notes):
|
|
154
|
+
* - prompt caching (Phase 39: opt-in via `ProviderRunRequest.cacheSystemPrefix` —
|
|
155
|
+
* emitted as a cache_control-marked system block when present)
|
|
156
|
+
* - resume-from-eviction -- see Phase 5 (MV3-survivability adapter contract)
|
|
157
|
+
*
|
|
158
|
+
* Ref: FSB v0.10.0-attempt-2 Phase 4 (D-02 + D-07: full custom adapter; preserve top-level `system`).
|
|
159
|
+
*/
|
|
160
|
+
interface AnthropicProviderOptions {
|
|
161
|
+
readonly id?: string;
|
|
162
|
+
readonly model: string;
|
|
163
|
+
readonly apiKey: string;
|
|
164
|
+
/** Defaults to `https://api.anthropic.com`. Override for proxies. */
|
|
165
|
+
readonly baseUrl?: string;
|
|
166
|
+
/** Defaults to `2023-06-01`. Override only if the consumer has tested a newer pinned version. */
|
|
167
|
+
readonly anthropicVersion?: string;
|
|
168
|
+
readonly fetch?: typeof fetch;
|
|
169
|
+
readonly pricing?: {
|
|
170
|
+
readonly inputPer1kTokens?: number;
|
|
171
|
+
readonly outputPer1kTokens?: number;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* D-08: Per-instance TTL for the /v1/models response cache (milliseconds).
|
|
175
|
+
* Default 300_000 (5 minutes). `0` disables caching (always re-fetch -- for testing).
|
|
176
|
+
* `Infinity` disables expiry (process-lifetime for the instance).
|
|
177
|
+
*/
|
|
178
|
+
readonly modelsCacheTtlMs?: number;
|
|
179
|
+
/**
|
|
180
|
+
* D-11: Number of retries for transient /v1/models fetch failures (5xx, network,
|
|
181
|
+
* timeout). Default 2 (3 total attempts). `0` disables retries.
|
|
182
|
+
* Backoff schedule: [0ms, 200ms, 1000ms].
|
|
183
|
+
*/
|
|
184
|
+
readonly modelsRetryCount?: number;
|
|
185
|
+
/**
|
|
186
|
+
* D-12: Optional RunEventSink for emitting `capabilities.negotiation.fallback`
|
|
187
|
+
* events when the /v1/models fetch falls back to the Phase 33 static registry.
|
|
188
|
+
* If absent, fallback emits no event (no-op). Auth errors (401/403) never emit
|
|
189
|
+
* the fallback event -- they throw `NegotiationAuthError` instead.
|
|
190
|
+
*/
|
|
191
|
+
readonly runEventSink?: RunEventSink;
|
|
192
|
+
readonly sanitizeOutput?: SanitizeOutputOption;
|
|
193
|
+
readonly validateToolCalls?: ValidateToolCallsOption;
|
|
194
|
+
}
|
|
195
|
+
declare function createAnthropicProvider(options: AnthropicProviderOptions): ProviderAdapter & {
|
|
196
|
+
readonly quirks: AnthropicQuirks;
|
|
197
|
+
readonly negotiateCapabilities: (modelId: string) => Promise<NegotiatedCapabilities>;
|
|
198
|
+
};
|
|
199
|
+
//#endregion
|
|
200
|
+
//#region src/providers/fake.d.ts
|
|
201
|
+
interface FakeProviderOptions {
|
|
202
|
+
readonly id?: string;
|
|
203
|
+
readonly modelId?: string;
|
|
204
|
+
readonly response?: ProviderRunResponse | ((request: ProviderRunRequest) => ProviderRunResponse | Promise<ProviderRunResponse>);
|
|
205
|
+
readonly artifacts?: readonly ArtifactInput[];
|
|
206
|
+
/**
|
|
207
|
+
* Phase 7 addition: when provided, REPLACES the default single-capability
|
|
208
|
+
* array so callers (notably Plan 07-04's modality/privacy reject tests)
|
|
209
|
+
* can construct a fake adapter with arbitrary
|
|
210
|
+
* `inputModalities` / `outputModalities` / `dataPolicy` / `pricing`
|
|
211
|
+
* without mutating the returned adapter's readonly `capabilities` array.
|
|
212
|
+
* When omitted, the existing default capability is used.
|
|
213
|
+
*/
|
|
214
|
+
readonly capabilities?: readonly ModelCapability[];
|
|
215
|
+
}
|
|
216
|
+
declare function createFakeProvider(options?: FakeProviderOptions): ProviderAdapter;
|
|
217
|
+
//#endregion
|
|
218
|
+
//#region src/providers/gemini.d.ts
|
|
219
|
+
/**
|
|
220
|
+
* Options for {@link createGeminiProvider}.
|
|
221
|
+
*
|
|
222
|
+
* Mirrors `OpenAICompatibleProviderOptions` ergonomics (Phase 7 pattern) but
|
|
223
|
+
* for Google's Generative Language API at
|
|
224
|
+
* `/v1beta/models/{model}:generateContent` -- which uses `contents[].parts[].text`
|
|
225
|
+
* (NOT OpenAI's `messages[]`), `role: "model"` for assistant turns (NOT
|
|
226
|
+
* `"assistant"`), authenticates via `?key=` query string for execute(), and applies a
|
|
227
|
+
* 4-category `safetySettings` block at `BLOCK_NONE` thresholds (FSB convention
|
|
228
|
+
* mirrored from `extension/ai/universal-provider.js:255-272`).
|
|
229
|
+
*
|
|
230
|
+
* SECURITY: `apiKey` is a runtime parameter -- do NOT hardcode or log it.
|
|
231
|
+
*
|
|
232
|
+
* STREAMING (Phase 44): supported through native `streamGenerateContent` SSE events.
|
|
233
|
+
*
|
|
234
|
+
* DEFERRED (Phase 4 carryforward notes):
|
|
235
|
+
* - multimodal (vision) -- deferred
|
|
236
|
+
* - resume-from-eviction -- see Phase 5 (MV3-survivability adapter contract)
|
|
237
|
+
*
|
|
238
|
+
* NOTE (Phase 34): negotiate() uses x-goog-api-key HEADER (preferred per RESEARCH §Q3).
|
|
239
|
+
* The existing execute() path uses ?key= query string -- execute() migration is out-of-scope
|
|
240
|
+
* for Phase 34 (additive only; T-34-04-01).
|
|
241
|
+
*
|
|
242
|
+
* Ref: FSB v0.10.0-attempt-2 Phase 4 (D-02 + D-07: full custom adapter; preserve role:"model").
|
|
243
|
+
*/
|
|
244
|
+
interface GeminiProviderOptions {
|
|
245
|
+
readonly id?: string;
|
|
246
|
+
readonly model: string;
|
|
247
|
+
readonly apiKey: string;
|
|
248
|
+
/** Defaults to `https://generativelanguage.googleapis.com`. */
|
|
249
|
+
readonly baseUrl?: string;
|
|
250
|
+
readonly fetch?: typeof fetch;
|
|
251
|
+
readonly pricing?: {
|
|
252
|
+
readonly inputPer1kTokens?: number;
|
|
253
|
+
readonly outputPer1kTokens?: number;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* D-08: TTL for per-instance /models response cache, in milliseconds.
|
|
257
|
+
* Default: 300_000ms (5 minutes). 0 = always refetch (tests). Infinity = process-lifetime.
|
|
258
|
+
*/
|
|
259
|
+
readonly modelsCacheTtlMs?: number;
|
|
260
|
+
/**
|
|
261
|
+
* D-11: Number of retries on transient /models fetch errors. Default: 2.
|
|
262
|
+
* Retry schedule: immediate + 200ms + 1000ms (3 total attempts at retryCount=2).
|
|
263
|
+
* 0 = no retries (1 attempt total).
|
|
264
|
+
*/
|
|
265
|
+
readonly modelsRetryCount?: number;
|
|
266
|
+
/**
|
|
267
|
+
* D-12: Optional event sink for observability. When provided, the adapter
|
|
268
|
+
* emits a "capabilities.negotiation.fallback" RunEvent on transient /models failure.
|
|
269
|
+
* If absent, no event is emitted (silent fallback).
|
|
270
|
+
*/
|
|
271
|
+
readonly runEventSink?: RunEventSink;
|
|
272
|
+
readonly sanitizeOutput?: SanitizeOutputOption;
|
|
273
|
+
readonly validateToolCalls?: ValidateToolCallsOption;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Phase 34 — D-03 / D-05..D-12 — Extended Gemini provider factory.
|
|
277
|
+
*
|
|
278
|
+
* Returns a `ProviderAdapter` narrowed to expose:
|
|
279
|
+
* - `quirks: GeminiQuirks` — static adapter capability flags
|
|
280
|
+
* - `negotiateCapabilities(modelId)` — live /v1beta/models fetch with medium-thick
|
|
281
|
+
* derivation (inputTokenLimit + thinking + supportedGenerationMethods from upstream)
|
|
282
|
+
* intersected with Phase 33 registry; TTL cache + inflight coalescing + retry +
|
|
283
|
+
* auth-throw + transient-fallback + event.
|
|
284
|
+
*
|
|
285
|
+
* NOTE on auth strategy (T-34-04-01): negotiate() uses x-goog-api-key HEADER
|
|
286
|
+
* (preferred per RESEARCH §Q3 -- avoids leaking the key in server-side logs that
|
|
287
|
+
* capture URL query strings). The existing execute() path uses ?key= query string
|
|
288
|
+
* and is NOT changed by Phase 34 (out-of-scope migration).
|
|
289
|
+
*/
|
|
290
|
+
declare function createGeminiProvider(options: GeminiProviderOptions): ProviderAdapter & {
|
|
291
|
+
readonly quirks: GeminiQuirks;
|
|
292
|
+
readonly negotiateCapabilities: (modelId: string) => Promise<NegotiatedCapabilities>;
|
|
293
|
+
};
|
|
294
|
+
//#endregion
|
|
295
|
+
//#region src/providers/litellm.d.ts
|
|
296
|
+
/**
|
|
297
|
+
* Options for {@link createLiteLLMProvider}.
|
|
298
|
+
*
|
|
299
|
+
* Thin wrapper around {@link createOpenAICompatibleProvider} pinned to the
|
|
300
|
+
* documented local LiteLLM proxy URL. LiteLLM is treated as an
|
|
301
|
+
* OpenAI-compatible gateway over HTTP; this helper does not start, embed, or
|
|
302
|
+
* depend on a LiteLLM gateway process.
|
|
303
|
+
*/
|
|
304
|
+
interface LiteLLMProviderOptions extends Omit<OpenAICompatibleProviderOptions, "id" | "baseUrl" | "gateway"> {
|
|
305
|
+
readonly id?: string;
|
|
306
|
+
/** Defaults to `http://localhost:4000`. Override for hosted proxies or `/v1` deployments. */
|
|
307
|
+
readonly baseUrl?: string;
|
|
308
|
+
readonly gateway?: GatewayPolicy;
|
|
309
|
+
}
|
|
310
|
+
declare function createLiteLLMProvider(options: LiteLLMProviderOptions): ProviderAdapter & {
|
|
311
|
+
readonly quirks: LiteLLMQuirks;
|
|
312
|
+
readonly negotiateCapabilities: (modelId: string) => Promise<NegotiatedCapabilities>;
|
|
313
|
+
};
|
|
314
|
+
//#endregion
|
|
315
|
+
//#region src/providers/lm-studio.d.ts
|
|
316
|
+
/**
|
|
317
|
+
* Options for {@link createLmStudioProvider}.
|
|
318
|
+
*
|
|
319
|
+
* Thin wrapper around {@link createOpenAICompatibleProvider} pinned to
|
|
320
|
+
* LM Studio's default local server URL `http://localhost:1234/v1`. Wire
|
|
321
|
+
* shape is OpenAI Chat Completions. LM Studio is no-auth by convention
|
|
322
|
+
* (CD-03): `apiKey` is OPTIONAL; when omitted, the underlying factory
|
|
323
|
+
* sends no `Authorization` header (see
|
|
324
|
+
* `lattice/packages/lattice/src/providers/adapters.ts:53` for the
|
|
325
|
+
* conditional auth-header wiring).
|
|
326
|
+
*
|
|
327
|
+
* Phase 34 additions:
|
|
328
|
+
* - `modelsCacheTtlMs` -- Reserved for future /models discovery; LM Studio
|
|
329
|
+
* currently has no remote /models endpoint. Accepted for option-bag
|
|
330
|
+
* uniformity but NOT USED (D-04 intentional no-endpoint pattern).
|
|
331
|
+
* - `runEventSink` -- Accepted for option-bag uniformity but NEVER fired
|
|
332
|
+
* because source: "registry" is the documented happy path for LM Studio
|
|
333
|
+
* (no event for intentional no-endpoint per RESEARCH Open Question 5).
|
|
334
|
+
*
|
|
335
|
+
* STREAMING (Phase 44): supported through the OpenAI-compatible stream path.
|
|
336
|
+
*
|
|
337
|
+
* DEFERRED (D-16 carryforward):
|
|
338
|
+
* - latency-tail diagnostics -- observability concern; LM Studio is
|
|
339
|
+
* the canary for latency tails (INV-03);
|
|
340
|
+
* diagnostics module deferred to a
|
|
341
|
+
* follow-on observability phase.
|
|
342
|
+
* - resume-from-eviction -- see Phase 5 (MV3-survivability adapter).
|
|
343
|
+
*
|
|
344
|
+
* Ref: FSB v0.10.0-attempt-2 Phase 4 (D-03: thin wrapper; D-16: latency-tail deferred; CD-03 no-opt-out).
|
|
345
|
+
*/
|
|
346
|
+
interface LmStudioProviderOptions extends Omit<OpenAICompatibleProviderOptions, "id" | "baseUrl" | "apiKey"> {
|
|
347
|
+
readonly id?: string;
|
|
348
|
+
/** Defaults to `http://localhost:1234/v1`. Override for non-localhost deployments. */
|
|
349
|
+
readonly baseUrl?: string;
|
|
350
|
+
/**
|
|
351
|
+
* Optional. LM Studio is no-auth by convention (CD-03 default).
|
|
352
|
+
* When provided, sent as `Authorization: Bearer <apiKey>` (matches the
|
|
353
|
+
* underlying OpenAI-compat factory). Use only for proxied LM Studio
|
|
354
|
+
* deployments that have a token gate in front.
|
|
355
|
+
*/
|
|
356
|
+
readonly apiKey?: string;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Phase 34 — D-04 / QUIRK-02 — LM Studio provider factory.
|
|
360
|
+
*
|
|
361
|
+
* LM Studio is the prototypical "intentional no remote /models endpoint"
|
|
362
|
+
* adapter per D-04 (alongside OpenAI-compat). The factory returns conservative
|
|
363
|
+
* defaults for the quirks block because LM Studio runs LOCAL quantized models
|
|
364
|
+
* whose capabilities vary wildly by chat template + model file.
|
|
365
|
+
*
|
|
366
|
+
* The `negotiateCapabilities` method performs NO fetch; it returns
|
|
367
|
+
* `synthesizeNegotiatedCapabilitiesFromRegistry` with source: "registry"
|
|
368
|
+
* (the intentional-no-endpoint signal, distinct from "registry-fallback"
|
|
369
|
+
* which signals a transient failure). Mirrors Plan 34-03 Task 2 (OpenAI-compat
|
|
370
|
+
* registry-only pattern) verbatim.
|
|
371
|
+
*
|
|
372
|
+
* D-04 citation: "consumer adapters without a /models endpoint skip the
|
|
373
|
+
* fetch layer entirely and delegate to synthesizeNegotiatedCapabilitiesFromRegistry."
|
|
374
|
+
*
|
|
375
|
+
* Open Question 5 (RESEARCH §): no event emitted for source: "registry" because
|
|
376
|
+
* this is the intentional happy path for LM Studio -- emitting a "fallback" event
|
|
377
|
+
* would produce false-positive noise for consumers monitoring the event stream.
|
|
378
|
+
*/
|
|
379
|
+
declare function createLmStudioProvider(options: LmStudioProviderOptions): ProviderAdapter & {
|
|
380
|
+
readonly quirks: LmStudioQuirks;
|
|
381
|
+
readonly negotiateCapabilities: (modelId: string) => Promise<NegotiatedCapabilities>;
|
|
382
|
+
};
|
|
383
|
+
//#endregion
|
|
384
|
+
//#region src/providers/openrouter.d.ts
|
|
385
|
+
/**
|
|
386
|
+
* Options for {@link createOpenRouterProvider}.
|
|
387
|
+
*
|
|
388
|
+
* Thin wrapper around {@link createOpenAICompatibleProvider} pinned to
|
|
389
|
+
* OpenRouter's base URL `https://openrouter.ai/api/v1`. Wire shape is
|
|
390
|
+
* OpenAI Chat Completions; no provider-specific quirks at the
|
|
391
|
+
* single-shot Promise contract level.
|
|
392
|
+
*
|
|
393
|
+
* SECURITY: `apiKey` is a runtime parameter -- do NOT hardcode or log it.
|
|
394
|
+
*
|
|
395
|
+
* STREAMING (Phase 44): supported through the OpenAI-compatible stream path.
|
|
396
|
+
*
|
|
397
|
+
* DEFERRED (D-17 carryforward; Phase 4 ships the named adapter as a
|
|
398
|
+
* first-class OpenAI-compat wrapper):
|
|
399
|
+
* - per-message routing -- deferred.
|
|
400
|
+
* - resume-from-eviction -- see Phase 5 (MV3-survivability adapter).
|
|
401
|
+
*
|
|
402
|
+
* Ref: FSB v0.10.0-attempt-2 Phase 4 (D-03: thin wrapper; D-17: model-routing deferred).
|
|
403
|
+
*/
|
|
404
|
+
interface OpenRouterProviderOptions extends Omit<OpenAICompatibleProviderOptions, "id" | "baseUrl"> {
|
|
405
|
+
readonly id?: string;
|
|
406
|
+
/** Defaults to `https://openrouter.ai/api/v1`. Override for proxies. */
|
|
407
|
+
readonly baseUrl?: string;
|
|
408
|
+
/**
|
|
409
|
+
* D-08: TTL for per-instance /models response cache, in milliseconds.
|
|
410
|
+
* Default: 300_000ms (5 minutes). 0 = always refetch (tests). Infinity = process-lifetime.
|
|
411
|
+
*/
|
|
412
|
+
readonly modelsCacheTtlMs?: number;
|
|
413
|
+
/**
|
|
414
|
+
* D-11: Number of retries on transient /models fetch errors. Default: 2.
|
|
415
|
+
* Retry schedule: immediate + 200ms + 1000ms (3 total attempts at retryCount=2).
|
|
416
|
+
* 0 = no retries (1 attempt total).
|
|
417
|
+
*/
|
|
418
|
+
readonly modelsRetryCount?: number;
|
|
419
|
+
/**
|
|
420
|
+
* D-12: Optional event sink for observability. When provided, the adapter
|
|
421
|
+
* emits a "capabilities.negotiation.fallback" RunEvent on transient /models failure.
|
|
422
|
+
* If absent, no event is emitted (silent fallback).
|
|
423
|
+
*/
|
|
424
|
+
readonly runEventSink?: RunEventSink;
|
|
425
|
+
/**
|
|
426
|
+
* Ordered OpenRouter model fallback candidates. The primary `model` remains
|
|
427
|
+
* the Lattice-selected route; these candidates serialize as OpenRouter's
|
|
428
|
+
* top-level `models` request field when non-empty.
|
|
429
|
+
*/
|
|
430
|
+
readonly fallbackModels?: readonly string[];
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Phase 34 — D-03 / D-05..D-12 — Extended OpenRouter provider factory.
|
|
434
|
+
*
|
|
435
|
+
* Returns a `ProviderAdapter` narrowed to expose:
|
|
436
|
+
* - `quirks: OpenRouterQuirks` — static adapter capability flags (8 booleans)
|
|
437
|
+
* - `negotiateCapabilities(modelId)` — live /api/v1/models fetch with rich /models
|
|
438
|
+
* intersection (supported_parameters -> nativeToolCalling + structuredOutputs,
|
|
439
|
+
* top_provider.context_length -> contextWindow) intersected with Phase 33 registry
|
|
440
|
+
* for knownFailureModes + recommendedSanitizers.
|
|
441
|
+
*
|
|
442
|
+
* CRITICAL for ANCHOR CASE STUDY (session_1780792387779):
|
|
443
|
+
* negotiate("openai/gpt-oss-120b:free") MUST resolve to:
|
|
444
|
+
* - result.knownFailureModes.includes("internal_envelope_leak") -> TRUE
|
|
445
|
+
* - result.recommendedSanitizers.includes("unwrapInternalEnvelope") -> TRUE
|
|
446
|
+
* - result.source === "live" -> TRUE
|
|
447
|
+
* This proves: live-fetch -> id suffix-strip via stripOpenRouterVariant
|
|
448
|
+
* -> registry intersection -> getRecommendedSanitizers derivation.
|
|
449
|
+
*
|
|
450
|
+
* Anti-pattern (RESEARCH §Anti-pattern, lines 534-535):
|
|
451
|
+
* The /api/v1/models endpoint is UNAUTHENTICATED (public discovery surface verified
|
|
452
|
+
* Phase 33). Do NOT send Authorization Bearer to this endpoint -- it is NOT required
|
|
453
|
+
* and would add unnecessary API key exposure surface in transit logs.
|
|
454
|
+
*/
|
|
455
|
+
declare function createOpenRouterProvider(options: OpenRouterProviderOptions): ProviderAdapter & {
|
|
456
|
+
readonly quirks: OpenRouterQuirks;
|
|
457
|
+
readonly negotiateCapabilities: (modelId: string) => Promise<NegotiatedCapabilities>;
|
|
458
|
+
};
|
|
459
|
+
//#endregion
|
|
460
|
+
//#region src/providers/xai.d.ts
|
|
461
|
+
/**
|
|
462
|
+
* Options for {@link createXaiProvider}.
|
|
463
|
+
*
|
|
464
|
+
* Thin wrapper around {@link createOpenAICompatibleProvider} pinned to
|
|
465
|
+
* xAI's base URL `https://api.x.ai/v1`. The wire shape is identical to
|
|
466
|
+
* OpenAI Chat Completions, with one provider-specific quirk preserved:
|
|
467
|
+
* `response.usage.completion_tokens_details.reasoning_tokens` (xAI's
|
|
468
|
+
* separate reasoning-token accounting; see FSB
|
|
469
|
+
* `extension/ai/universal-provider.js:585-594` for the production reference).
|
|
470
|
+
*
|
|
471
|
+
* SECURITY: `apiKey` is a runtime parameter -- do NOT hardcode or log it.
|
|
472
|
+
*
|
|
473
|
+
* STREAMING (Phase 44): supported through the OpenAI-compatible stream path.
|
|
474
|
+
*
|
|
475
|
+
* DEFERRED (Phase 4 carryforward notes):
|
|
476
|
+
* - tool-streaming -- deferred
|
|
477
|
+
* - resume-from-eviction -- see Phase 5 (MV3-survivability adapter contract)
|
|
478
|
+
*
|
|
479
|
+
* Ref: FSB v0.10.0-attempt-2 Phase 4 (D-03 + D-07: thin wrapper; reasoning_tokens quirk preserved).
|
|
480
|
+
*
|
|
481
|
+
* Phase 34 additions:
|
|
482
|
+
* - `modelsCacheTtlMs?` — D-05/D-06/D-08; default 300_000ms; 0 disables; Infinity = process-lifetime
|
|
483
|
+
* - `modelsRetryCount?` — D-11; default 2; 0 disables retry
|
|
484
|
+
* - `runEventSink?` — D-12; fires "capabilities.negotiation.fallback" on transient errors
|
|
485
|
+
*/
|
|
486
|
+
interface XaiProviderOptions extends Omit<OpenAICompatibleProviderOptions, "id" | "baseUrl"> {
|
|
487
|
+
readonly id?: string;
|
|
488
|
+
/** Defaults to `https://api.x.ai/v1`. Override for proxies. */
|
|
489
|
+
readonly baseUrl?: string;
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Phase 34 — QUIRK-02 / NEG-01 / NEG-02 — xAI provider factory.
|
|
493
|
+
*
|
|
494
|
+
* Extends the base OpenAI-compat execution wrapper with:
|
|
495
|
+
* 1. `quirks: XaiQuirks` — verified per RESEARCH §Q6 xAI vocabulary.
|
|
496
|
+
* 2. `negotiateCapabilities(modelId)` — queries xAI /v1/models GET with
|
|
497
|
+
* Authorization: Bearer header; LENIENT-PARSE sparse OpenAI-shaped
|
|
498
|
+
* response; intersects with Phase 33 registry for supports.*.
|
|
499
|
+
*
|
|
500
|
+
* CITED: RESEARCH §Q4 (INFERRED) — xAI /v1/models shape is undocumented;
|
|
501
|
+
* assumed OpenAI-compatible based on the chat completions wire format.
|
|
502
|
+
*
|
|
503
|
+
* CITED: RESEARCH §A1 — Pitfall 1 lenient parse: if xAI publishes a
|
|
504
|
+
* different /models shape, only the parsing logic updates; the contract
|
|
505
|
+
* (source values, NegotiatedCapabilities shape) holds.
|
|
506
|
+
*
|
|
507
|
+
* The negotiate() pattern mirrors Plan 34-02 (Anthropic thick reference):
|
|
508
|
+
* - Per-instance TTL cache (modelsCacheTtlMs, default 300_000ms)
|
|
509
|
+
* - Single-flight inflight coalescing with .finally cleanup (Pitfall 4)
|
|
510
|
+
* - Retry with [0, 200, 1000]ms backoff (modelsRetryCount, default 2)
|
|
511
|
+
* - 401/403 throws NegotiationAuthError with adapter: "xai" (D-10)
|
|
512
|
+
* - 5xx/network/timeout falls back to registry + emits fallback event
|
|
513
|
+
*
|
|
514
|
+
* SECURITY (T-34-03-07): inflight Map MUST use .finally cleanup to prevent
|
|
515
|
+
* leak on rejection. Verifiable: grep `.finally` in this file.
|
|
516
|
+
*/
|
|
517
|
+
declare function createXaiProvider(options: XaiProviderOptions): ProviderAdapter & {
|
|
518
|
+
readonly quirks: XaiQuirks;
|
|
519
|
+
readonly negotiateCapabilities: (modelId: string) => Promise<NegotiatedCapabilities>;
|
|
520
|
+
};
|
|
521
|
+
//#endregion
|
|
522
|
+
//#region src/providers/streaming.d.ts
|
|
523
|
+
interface CollectStreamOptions {
|
|
524
|
+
readonly defaultOutput?: string;
|
|
525
|
+
}
|
|
526
|
+
declare function collectStream(stream: ProviderStream, options?: CollectStreamOptions): Promise<ProviderRunResponse>;
|
|
527
|
+
//#endregion
|
|
528
|
+
//#region src/prompts/scaffolds.d.ts
|
|
529
|
+
declare const PROMPT_SCAFFOLD_VERSION: "lattice.prompt-scaffold/v1";
|
|
530
|
+
declare const PROMPT_STRATEGIES: readonly ["frontier", "mid_tier", "open_weight", "reasoning", "local"];
|
|
531
|
+
declare function getStructuredOutputContract(strategy: RecommendedPromptStrategy, schema: unknown): string;
|
|
532
|
+
declare function getToolUseContract(strategy: RecommendedPromptStrategy, tools: unknown): string;
|
|
533
|
+
//#endregion
|
|
534
|
+
export { stripChatTemplateArtifacts as A, createAISdkProvider as C, SanitizeOutputOption as D, InternalEnvelopeOptions as E, unwrapInternalEnvelope as M, SanitizerContext as O, SdkLikeProviderOptions as S, createOpenAIProvider as T, FakeProviderOptions as _, CollectStreamOptions as a, createAnthropicProvider as b, createXaiProvider as c, LmStudioProviderOptions as d, createLmStudioProvider as f, createGeminiProvider as g, GeminiProviderOptions as h, getToolUseContract as i, stripReasoningTags as j, SanitizerFn as k, OpenRouterProviderOptions as l, createLiteLLMProvider as m, PROMPT_STRATEGIES as n, collectStream as o, LiteLLMProviderOptions as p, getStructuredOutputContract as r, XaiProviderOptions as s, PROMPT_SCAFFOLD_VERSION as t, createOpenRouterProvider as u, createFakeProvider as v, createOpenAICompatibleProvider as w, OpenAICompatibleProviderOptions as x, AnthropicProviderOptions as y };
|
|
535
|
+
//# sourceMappingURL=scaffolds-DKQrCRqh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffolds-DKQrCRqh.d.ts","names":[],"sources":["../src/sanitizers/sanitizers.ts","../src/providers/adapters.ts","../src/providers/anthropic.ts","../src/providers/fake.ts","../src/providers/gemini.ts","../src/providers/litellm.ts","../src/providers/lm-studio.ts","../src/providers/openrouter.ts","../src/providers/xai.ts","../src/providers/streaming.ts","../src/prompts/scaffolds.ts"],"mappings":";;;;;UAEiB,gBAAA;EAAA,SACN,UAAA;EAAA,SACA,OAAA;EAAA,SACA,UAAA;AAAA;AAAA,KAGC,WAAA,IACV,IAAA,UACA,OAAA,EAAS,gBAAA,cACG,OAAA;AAAA,KAEF,oBAAA,GAAuB,WAAA,YAAuB,WAAA;AAAA,UAEzC,uBAAA;EAAA,SACN,KAAA;EAAA,SACA,IAAA;EAAA,SACA,MAAA,GAAS,gBAAA;AAAA;AAAA,iBAoCJ,kBAAA,CAAA,GAAsB,WAAA;AAAA,iBAgBtB,0BAAA,CAAA,GAA8B,WAAA;AAAA,iBAc9B,sBAAA,CACd,YAAA,WAAuB,uBAAA,GAA0B,gBAAA,GAChD,WAAA;;;UC/Cc,+BAAA;EAAA,SACN,EAAA;EAAA,SACA,KAAA;EAAA,SACA,OAAA;EAAA,SACA,MAAA;EAAA,SACA,OAAA,GAAU,aAAA;EAAA,SACV,KAAA,UAAe,KAAA;EDrCd;;;;;;EAAA,SC4CD,OAAA;IAAA,SACE,gBAAA;IAAA,SACA,iBAAA;EAAA;EDzCD;;;;;AAEZ;;;;EAFY,SCoDD,gBAAA;EDhDA;;;;;AAqCX;;;EArCW,SCyDA,gBAAA;EDpBsC;AAgBjD;;;;;AAcA;;;;EA9BiD,SC+BtC,YAAA,GAAe,YAAA;EDCvB;;;;;EAAA,SCKQ,cAAA,GAAiB,oBAAA;EDLzB;;;;;EAAA,SCWQ,iBAAA,GAAoB,uBAAA;AAAA;AAAA,UAGd,sBAAA;EAAA,SACN,EAAA;EAAA,SACA,KAAA;EAAA,SACA,QAAA,GAAW,KAAA;IAAA,SACT,IAAA;IAAA,SACA,WAAA;EAAA,MACL,OAAA,CAAQ,mBAAA,IAAuB,mBAAA;AAAA;;;;;;;;;;;;;;;;;;iBAgVvB,8BAAA,CACd,OAAA,EAAS,+BAAA,GACR,eAAA;EAAA,SACQ,MAAA,EAAQ,kBAAA;EAAA,SACR,qBAAA,GAAwB,OAAA,aAAoB,OAAA,CAAQ,sBAAA;AAAA;;AA1V/D;;;;;;;;;;;;;;;;;;;AAsVA;iBA2sBgB,oBAAA,CACd,OAAA,EAAS,+BAAA,GACR,eAAA;EAAA,SACQ,MAAA,EAAQ,YAAA;EAAA,SACR,qBAAA,GAAwB,OAAA,aAAoB,OAAA,CAAQ,sBAAA;AAAA;AAAA,iBA6H/C,mBAAA,CAAoB,OAAA,EAAS,sBAAA,GAAyB,eAAA;;;;;;;;;;;AD9vCtE;;;;;;;;;;AAKA;;UE+CiB,wBAAA;EAAA,SACN,EAAA;EAAA,SACA,KAAA;EAAA,SACA,MAAA;EFhD6B;EAAA,SEkD7B,OAAA;EF/CyB;EAAA,SEiDzB,gBAAA;EAAA,SACA,KAAA,UAAe,KAAA;EAAA,SACf,OAAA;IAAA,SACE,gBAAA;IAAA,SACA,iBAAA;EAAA;EFjBG;;;;;EAAA,SEwBL,gBAAA;EFR+B;;;;AAc1C;EAd0C,SEc/B,gBAAA;;;;;;;WAOA,YAAA,GAAe,YAAA;EAAA,SACf,cAAA,GAAiB,oBAAA;EAAA,SACjB,iBAAA,GAAoB,uBAAA;AAAA;AAAA,iBAoLf,uBAAA,CAAwB,OAAA,EAAS,wBAAA,GAA2B,eAAA;EAAA,SACjE,MAAA,EAAQ,eAAA;EAAA,SACR,qBAAA,GAAwB,OAAA,aAAoB,OAAA,CAAQ,sBAAA;AAAA;;;UCzQ9C,mBAAA;EAAA,SACN,EAAA;EAAA,SACA,OAAA;EAAA,SACA,QAAA,GACL,mBAAA,KACE,OAAA,EAAS,kBAAA,KAAuB,mBAAA,GAAsB,OAAA,CAAQ,mBAAA;EAAA,SAC3D,SAAA,YAAqB,aAAA;;;;;;;;AHRhC;WGiBW,YAAA,YAAwB,eAAA;AAAA;AAAA,iBASnB,kBAAA,CAAmB,OAAA,GAAS,mBAAA,GAA2B,eAAA;;;;;;;;;;;AH1BvE;;;;;;;;;;AAKA;;;;;AAEA;;UIqDiB,qBAAA;EAAA,SACN,EAAA;EAAA,SACA,KAAA;EAAA,SACA,MAAA;EJrDA;EAAA,SIuDA,OAAA;EAAA,SACA,KAAA,UAAe,KAAA;EAAA,SACf,OAAA;IAAA,SACE,gBAAA;IAAA,SACA,iBAAA;EAAA;EJvByB;;AAgBtC;;EAhBsC,SI6B3B,gBAAA;EJbmC;;AAc9C;;;EAd8C,SImBnC,gBAAA;EJJwC;;;;;EAAA,SIUxC,YAAA,GAAe,YAAA;EAAA,SACf,cAAA,GAAiB,oBAAA;EAAA,SACjB,iBAAA,GAAoB,uBAAA;AAAA;;;;;AH1D/B;;;;;;;;;;;iBGuRgB,oBAAA,CACd,OAAA,EAAS,qBAAA,GACR,eAAA;EAAA,SACQ,MAAA,EAAQ,YAAA;EAAA,SACR,qBAAA,GAAwB,OAAA,aAAoB,OAAA,CAAQ,sBAAA;AAAA;;;AJhU/D;;;;;;;;AAAA,UKaiB,sBAAA,SACP,IAAA,CAAK,+BAAA;EAAA,SACJ,EAAA;ELTY;EAAA,SKWZ,OAAA;EAAA,SACA,OAAA,GAAU,aAAA;AAAA;AAAA,iBAKL,qBAAA,CACd,OAAA,EAAS,sBAAA,GACR,eAAA;EAAA,SACQ,MAAA,EAAQ,aAAA;EAAA,SACR,qBAAA,GAAwB,OAAA,aAAoB,OAAA,CAAQ,sBAAA;AAAA;;;;AL3B/D;;;;;;;;;AAMA;;;;;;;;;;AAKA;;;;;AAEA;;;;;UMqBiB,uBAAA,SACP,IAAA,CAAK,+BAAA;EAAA,SACJ,EAAA;ENpBS;EAAA,SMsBT,OAAA;ENtByB;AAoCpC;;;;;EApCoC,SM6BzB,MAAA;AAAA;;;;ANqCX;;;;;;;;;;;;;;;;;AC7CA;iBKkCgB,sBAAA,CACd,OAAA,EAAS,uBAAA,GACR,eAAA;EAAA,SACQ,MAAA,EAAQ,cAAA;EAAA,SACR,qBAAA,GAAwB,OAAA,aAAoB,OAAA,CAAQ,sBAAA;AAAA;;;AN3E/D;;;;;;;;;AAMA;;;;;;;;;;AANA,UO8BiB,yBAAA,SACP,IAAA,CAAK,+BAAA;EAAA,SACJ,EAAA;;WAEA,OAAA;EPvB0D;AAErE;;;EAFqE,SO4B1D,gBAAA;EPzBA;;;;;EAAA,SO+BA,gBAAA;EPOK;;;;;EAAA,SODL,YAAA,GAAe,YAAA;EPiBgB;;;;AAc1C;EAd0C,SOX/B,cAAA;AAAA;;;;;;;;;;;;;;;ANpBX;;;;;;;;;iBMoFgB,wBAAA,CACd,OAAA,EAAS,yBAAA,GACR,eAAA;EAAA,SACQ,MAAA,EAAQ,gBAAA;EAAA,SACR,qBAAA,GAAwB,OAAA,aAAoB,OAAA,CAAQ,sBAAA;AAAA;;;;AP7H/D;;;;;;;;;AAMA;;;;;;;;;;AAKA;;;;;UQyBiB,kBAAA,SAA2B,IAAA,CAAK,+BAAA;EAAA,SACtC,EAAA;;WAEA,OAAA;AAAA;;;;;;ARaX;;;;;AAgBA;;;;;AAcA;;;;;;;;;;;iBQ2GgB,iBAAA,CACd,OAAA,EAAS,kBAAA,GACR,eAAA;EAAA,SACQ,MAAA,EAAQ,SAAA;EAAA,SACR,qBAAA,GAAwB,OAAA,aAAoB,OAAA,CAAQ,sBAAA;AAAA;;;UCxL9C,oBAAA;EAAA,SACN,aAAA;AAAA;AAAA,iBAGW,aAAA,CACpB,MAAA,EAAQ,cAAA,EACR,OAAA,GAAS,oBAAA,GACR,OAAA,CAAQ,mBAAA;;;cCdE,uBAAA;AAAA,cAEA,iBAAA;AAAA,iBA0HG,2BAAA,CACd,QAAA,EAAU,yBAAA,EACV,MAAA;AAAA,iBAWc,kBAAA,CACd,QAAA,EAAU,yBAAA,EACV,KAAA"}
|