@poe-platform/safe-bash 0.1.554 → 0.1.556
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/safe-bash/chunks/{chunk-LR32SJ3D.js → chunk-PVJJFCGA.js} +4 -4
- package/dist/safe-bash/chunks/chunk-PVJJFCGA.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-KJYVSFGF.js → chunk-QAZN7SAN.js} +2 -2
- package/dist/safe-bash/commands/llm/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/openai-http.d.ts +1 -1
- package/dist/safe-bash/commands/llm/openai-http.d.ts.map +1 -1
- package/dist/safe-bash/commands/llm/openai-http.js +2 -2
- package/dist/safe-bash/commands/llm/openai-http.js.map +1 -1
- package/dist/safe-bash/commands/llm/openai.js +1 -1
- package/dist/safe-bash/commands/llm/openai.js.map +1 -1
- package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
- package/dist/safe-bash/core.browser.js +2 -2
- package/package.json +2 -2
- package/dist/safe-bash/chunks/chunk-LR32SJ3D.js.map +0 -7
- /package/dist/safe-bash/chunks/{chunk-KJYVSFGF.js.map → chunk-QAZN7SAN.js.map} +0 -0
|
@@ -82,7 +82,7 @@ function openAiError(value) {
|
|
|
82
82
|
if (openAiRecord(value) && typeof value.message === "string") return value.message.slice(0, 1024);
|
|
83
83
|
return void 0;
|
|
84
84
|
}
|
|
85
|
-
async function* openAiResponse(transport, input) {
|
|
85
|
+
async function* openAiResponse(transport, input, maxResponseBytes) {
|
|
86
86
|
input.signal.throwIfAborted();
|
|
87
87
|
const cleanups = /* @__PURE__ */ new Map();
|
|
88
88
|
let closed = false, failed = false;
|
|
@@ -118,7 +118,7 @@ async function* openAiResponse(transport, input) {
|
|
|
118
118
|
if (!Number.isInteger(response.status) || response.status < 200 || response.status >= 300) {
|
|
119
119
|
let detail;
|
|
120
120
|
try {
|
|
121
|
-
detail = openAiError((await openAiJson(response, input.signal, 64 * 1024)).error);
|
|
121
|
+
detail = openAiError((await openAiJson(response, input.signal, Math.min(64 * 1024, maxResponseBytes))).error);
|
|
122
122
|
} catch {
|
|
123
123
|
input.signal.throwIfAborted();
|
|
124
124
|
}
|
|
@@ -623,7 +623,7 @@ function createOpenAiProvider(options) {
|
|
|
623
623
|
signal: request.signal,
|
|
624
624
|
...body,
|
|
625
625
|
headers: [["authorization", `Bearer ${apiKey}`], ...body?.headers ?? []]
|
|
626
|
-
});
|
|
626
|
+
}, limits.maxResponseBytes);
|
|
627
627
|
if (model.endpoint === "chat") {
|
|
628
628
|
const messages = [];
|
|
629
629
|
if (request.system !== void 0) messages.push({ role: "system", content: request.system });
|
|
@@ -912,4 +912,4 @@ export {
|
|
|
912
912
|
createOpenAiProvider,
|
|
913
913
|
createElevenLabsProvider
|
|
914
914
|
};
|
|
915
|
-
//# sourceMappingURL=chunk-
|
|
915
|
+
//# sourceMappingURL=chunk-PVJJFCGA.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/commands/llm/openai.ts", "../../src/commands/llm/openai-http.ts", "../../src/commands/llm/openai-sse.ts", "../../src/commands/llm/mime.ts", "../../src/commands/file/classify.ts", "../../src/commands/llm/providers/shared.ts", "../../src/commands/llm/elevenlabs.ts", "../../src/commands/llm/elevenlabs-stream.ts"],
|
|
4
|
+
"sourcesContent": ["import type { HttpRequest, HttpTransport } from \"../network/types.js\";\nimport type { LlmModel, LlmProvider, LlmRequest } from \"./types.js\";\nimport { openAiBytes, openAiError, openAiJson, openAiRecord, openAiResponse } from \"./openai-http.js\";\nimport { openAiChat } from \"./openai-sse.js\";\nimport { acceptsMimeType } from \"./mime.js\";\nimport { credential, providerLimits, jsonBody, multipart, type LlmProviderLimits } from \"./providers/shared.js\";\n\nexport interface OpenAiModel extends LlmModel {\n readonly endpoint: \"chat\" | \"images\" | \"videos\";\n}\n\nexport interface OpenAiProviderOptions {\n readonly transport: HttpTransport;\n readonly apiKey: string;\n readonly baseUrl?: string;\n readonly models: readonly OpenAiModel[];\n readonly limits?: Partial<LlmProviderLimits>;\n}\n\nconst numericOptions = {\n chat: new Map([\n [\"temperature\", \"number\"], [\"top_p\", \"number\"],\n [\"frequency_penalty\", \"number\"], [\"presence_penalty\", \"number\"],\n [\"max_tokens\", \"integer\"], [\"max_completion_tokens\", \"integer\"],\n [\"n\", \"integer\"], [\"seed\", \"integer\"], [\"top_logprobs\", \"integer\"],\n ]),\n images: new Map([\n [\"n\", \"integer\"], [\"output_compression\", \"integer\"], [\"partial_images\", \"integer\"],\n ]),\n};\n\nfunction jsonOptions(options: LlmRequest[\"options\"], endpoint: \"chat\" | \"images\"): Record<string, string | number | boolean> {\n return Object.fromEntries(Object.entries(options).map(([key, value]) => {\n if ((endpoint === \"chat\" ? [\"store\", \"parallel_tool_calls\", \"logprobs\"] : [\"stream\"]).includes(key)) {\n if (value !== \"true\" && value !== \"false\") throw new Error(`Invalid OpenAI option ${key}: expected boolean`);\n return [key, value === \"true\"];\n }\n const type = numericOptions[endpoint].get(key);\n if (!type) return [key, value];\n const number = value.trim() ? Number(value) : NaN;\n if (!Number.isFinite(number) || type === \"integer\" && !Number.isSafeInteger(number)) {\n throw new Error(`Invalid OpenAI option ${key}: expected a finite ${type === \"integer\" ? \"safe integer\" : \"number\"}`);\n }\n return [key, number];\n }));\n}\n\nfunction base64(bytes: Uint8Array): string {\n let binary = \"\";\n for (let offset = 0; offset < bytes.length; offset += 8192) {\n binary += String.fromCharCode(...bytes.subarray(offset, offset + 8192));\n }\n return btoa(binary);\n}\n\nfunction imageBytes(value: unknown): Uint8Array {\n if (typeof value !== \"string\" || value.length === 0) throw new Error(\"OpenAI image response has no b64_json\");\n let decoded: string;\n try { decoded = atob(value); }\n catch { throw new Error(\"OpenAI image response contains invalid base64\"); }\n if (btoa(decoded) !== value) throw new Error(\"OpenAI image response contains non-canonical base64\");\n return Uint8Array.from(decoded, character => character.charCodeAt(0));\n}\n\nfunction waitForPoll(signal: AbortSignal, interval: number): Promise<void> {\n signal.throwIfAborted();\n return new Promise((resolve, reject) => {\n const abort = () => { clearTimeout(timer); signal.removeEventListener(\"abort\", abort); reject(signal.reason); };\n const timer = setTimeout(() => { signal.removeEventListener(\"abort\", abort); resolve(); }, interval);\n signal.addEventListener(\"abort\", abort, { once: true });\n if (signal.aborted) abort();\n });\n}\n\nfunction job(value: Record<string, unknown>, expectedId?: string): { id: string; status: string } {\n if (value.error != null) throw new Error(`OpenAI video failed: ${openAiError(value.error) ?? \"unknown error\"}`);\n if (typeof value.id !== \"string\" || value.id.length === 0 || value.id === \".\" || value.id === \"..\" || (expectedId !== undefined && value.id !== expectedId)) {\n throw new Error(\"OpenAI video response has an invalid job id\");\n }\n if (value.status !== \"queued\" && value.status !== \"in_progress\" && value.status !== \"completed\") {\n throw new Error(`OpenAI video failed: ${typeof value.status === \"string\" ? value.status : \"invalid status\"}`);\n }\n return { id: value.id, status: value.status };\n}\n\nexport function createOpenAiProvider(options: OpenAiProviderOptions): LlmProvider {\n const { transport, apiKey } = options;\n const limits = providerLimits(options.limits);\n if (typeof transport !== \"function\") throw new TypeError(\"OpenAI requires an injected HTTP transport\");\n if (typeof apiKey !== \"string\" || !apiKey.trim() || apiKey.includes(\"\\r\") || apiKey.includes(\"\\n\")) throw new TypeError(\"OpenAI requires a valid API key\");\n credential(apiKey);\n const base = new URL(options.baseUrl ?? \"https://api.openai.com/v1\");\n if ((base.protocol !== \"https:\" && base.protocol !== \"http:\") || base.username || base.password || base.search || base.hash) {\n throw new TypeError(\"OpenAI baseUrl must be an HTTP(S) URL without credentials, query or fragment\");\n }\n const baseUrl = base.href.endsWith(\"/\") ? base.href.slice(0, -1) : base.href;\n const configured = options.models.map(model => Object.freeze({\n ...model,\n ...(model.aliases === undefined ? {} : { aliases: Object.freeze([...model.aliases]) }),\n ...(model.attachmentTypes === undefined ? {} : { attachmentTypes: Object.freeze([...model.attachmentTypes]) }),\n }));\n const byId = new Map<string, OpenAiModel>();\n for (const model of configured) {\n if (!model.id || byId.has(model.id)) throw new TypeError(`OpenAI duplicate or empty model id: ${model.id}`);\n if (![\"chat\", \"images\", \"videos\"].includes(model.endpoint)) throw new TypeError(`OpenAI invalid endpoint for model: ${model.id}`);\n if (model.endpoint === \"images\" && !acceptsMimeType([\"image/png\", \"image/jpeg\", \"image/webp\"], model.outputType ?? \"\")) throw new TypeError(\"Image models require outputType image/png, image/jpeg or image/webp\");\n if (model.endpoint === \"videos\" && !acceptsMimeType([\"video/mp4\"], model.outputType ?? \"\")) throw new TypeError(\"Video models require outputType video/mp4\");\n if (model.endpoint === \"chat\" && model.outputType !== undefined && !acceptsMimeType([\"text/*\"], model.outputType)) throw new TypeError(\"Chat models require a text outputType\");\n byId.set(model.id, model);\n }\n return {\n name: \"openai\", models: Object.freeze(configured),\n async *complete(request) {\n request.signal.throwIfAborted();\n const model = byId.get(request.model);\n if (!model) throw new Error(`Unknown model: ${request.model}`);\n if (request.attachments.some(attachment => !acceptsMimeType([\"image/*\"], attachment.mimeType))) {\n throw new Error(`OpenAI ${model.endpoint} endpoint only supports image attachments`);\n }\n if (model.endpoint === \"videos\" && request.attachments.length > 1) throw new Error(\"OpenAI videos accepts only one input_reference image\");\n if (request.attachments.reduce((size, file) => size + file.bytes.byteLength, 0) > limits.maxRequestBytes) throw new RangeError(\"Provider request byte limit exceeded\");\n if (model.endpoint !== \"chat\" && request.system !== undefined) throw new TypeError(\"System prompts are supported only by chat models\");\n const reserved = model.endpoint === \"chat\" ? [\"model\", \"messages\", \"stream\"]\n : model.endpoint === \"images\" ? [\"model\", \"prompt\", \"image\", \"image[]\"] : [\"model\", \"prompt\", \"input_reference\"];\n for (const key of Object.keys(request.options)) {\n if (reserved.includes(key)) throw new Error(`OpenAI option ${key} is controlled by the provider`);\n }\n const send = (path: string, method: string, body?: Pick<HttpRequest, \"body\" | \"headers\">) => openAiResponse(transport, {\n url: `${baseUrl}${path}`, method, signal: request.signal,\n ...body, headers: [[\"authorization\", `Bearer ${apiKey}`], ...(body?.headers ?? [])],\n }, limits.maxResponseBytes);\n if (model.endpoint === \"chat\") {\n const messages: unknown[] = [];\n if (request.system !== undefined) messages.push({ role: \"system\", content: request.system });\n messages.push({ role: \"user\", content: request.attachments.length === 0 ? request.prompt : [\n { type: \"text\", text: request.prompt },\n ...request.attachments.map(attachment => ({ type: \"image_url\", image_url: { url: `data:${attachment.mimeType};base64,${base64(attachment.bytes)}` } })),\n ] });\n for await (const response of send(\"/chat/completions\", \"POST\", jsonBody({ ...jsonOptions(request.options, \"chat\"), model: request.model, messages, stream: true }, limits.maxRequestBytes))) {\n yield* openAiChat(response.body, request.signal, limits.maxEventBytes, limits.maxResponseBytes);\n }\n } else if (model.endpoint === \"images\") {\n const editing = request.attachments.length > 0;\n const outputFormat = model.outputType!.split(\";\", 1)[0]!.trim().toLowerCase().slice(\"image/\".length);\n if (request.options.output_format !== undefined && request.options.output_format !== outputFormat) throw new TypeError(\"output_format conflicts with model outputType\");\n const values: Record<string, string | number | boolean> = { ...jsonOptions(request.options, \"images\"), output_format: outputFormat, model: request.model, prompt: request.prompt };\n if (values.stream === true) throw new TypeError(\"Image event streaming is not supported by this reference provider\");\n const body = editing ? multipart({ ...values, ...request.options }, request.attachments.map(file => ({ ...file, field: \"image[]\" })), limits.maxRequestBytes) : jsonBody(values, limits.maxRequestBytes);\n for await (const response of send(editing ? \"/images/edits\" : \"/images/generations\", \"POST\", body)) {\n const value = await openAiJson(response, request.signal, limits.maxResponseBytes);\n if (value.error != null) throw new Error(`OpenAI: ${openAiError(value.error) ?? \"image generation failed\"}`);\n if (!Array.isArray(value.data) || value.data.length === 0) throw new Error(\"OpenAI image response has no images\");\n for (const item of value.data) {\n request.signal.throwIfAborted();\n if (!openAiRecord(item)) throw new Error(\"OpenAI image response contains a malformed image\");\n yield imageBytes(item.b64_json);\n }\n }\n } else {\n let current: { id: string; status: string } | undefined;\n for await (const response of send(\"/videos\", \"POST\", multipart({ ...request.options, model: request.model, prompt: request.prompt }, request.attachments.map(file => ({ ...file, field: \"input_reference\" })), limits.maxRequestBytes))) {\n current = job(await openAiJson(response, request.signal, limits.maxResponseBytes));\n }\n if (!current) throw new Error(\"OpenAI video creation returned no job\");\n const path = `/videos/${encodeURIComponent(current.id)}`;\n let polls = 0;\n while (current.status !== \"completed\") {\n if (polls++ >= limits.maxPolls) throw new RangeError(\"Provider video polling limit exceeded\");\n await waitForPoll(request.signal, limits.pollIntervalMs);\n for await (const response of send(path, \"GET\")) current = job(await openAiJson(response, request.signal, limits.maxResponseBytes), current.id);\n }\n for await (const response of send(`${path}/content`, \"GET\")) {\n const contentType = response.headers.find(([name]) => name.toLowerCase() === \"content-type\")?.[1].split(\";\")[0]?.trim().toLowerCase();\n if (contentType && contentType !== \"application/octet-stream\" && !contentType.startsWith(\"video/\")) {\n throw new Error(`OpenAI video download has unexpected content type: ${contentType}`);\n }\n let received = false;\n for await (const chunk of openAiBytes(response.body, request.signal, limits.maxResponseBytes)) {\n if (chunk.byteLength === 0) continue;\n received = true;\n yield chunk;\n }\n if (!received) throw new Error(\"OpenAI video download is empty\");\n }\n }\n },\n };\n}\n", "import type { ByteSource, InvocationCleanup } from \"../../contracts/index.js\";\nimport type { HttpRequest, HttpResponse, HttpTransport } from \"../network/types.js\";\n\nexport function openAiAbortable<Value>(pending: PromiseLike<Value>, signal: AbortSignal): Promise<Value> {\n return new Promise((resolve, reject) => {\n const abort = () => { signal.removeEventListener(\"abort\", abort); reject(signal.reason); };\n signal.addEventListener(\"abort\", abort, { once: true });\n Promise.resolve(pending).then(value => {\n signal.removeEventListener(\"abort\", abort);\n if (signal.aborted) reject(signal.reason);\n else resolve(value);\n }, error => {\n signal.removeEventListener(\"abort\", abort);\n reject(signal.aborted ? signal.reason : error);\n });\n if (signal.aborted) abort();\n });\n}\n\nexport async function* openAiBytes(source: ByteSource, signal: AbortSignal, limit = 64 * 1024 * 1024): ByteSource {\n signal.throwIfAborted();\n const iterator = source[Symbol.asyncIterator]();\n let failed = false, finished = false;\n let size = 0;\n try {\n while (true) {\n signal.throwIfAborted();\n const next = await openAiAbortable(iterator.next(), signal);\n if (next.done) { finished = true; return; }\n if (!(next.value instanceof Uint8Array)) throw new Error(\"OpenAI returned a non-byte response chunk\");\n size += next.value.byteLength;\n if (size > limit) throw new RangeError(\"Provider response byte limit exceeded\");\n yield Uint8Array.from(next.value);\n }\n } catch (error) {\n failed = true;\n throw signal.aborted ? signal.reason : error;\n } finally {\n if (!finished) {\n const returned = Promise.resolve().then(() => iterator.return?.());\n if (signal.aborted) void returned.catch(() => undefined);\n else await openAiAbortable(returned, signal).catch(error => { if (!failed) throw error; });\n }\n }\n}\n\nexport async function openAiJson(response: HttpResponse, signal: AbortSignal, maxBytes = 64 * 1024 * 1024): Promise<Record<string, unknown>> {\n const decoder = new TextDecoder(\"utf-8\", { fatal: true });\n let text = \"\", length = 0;\n for await (const chunk of openAiBytes(response.body, signal, maxBytes)) {\n length += chunk.byteLength;\n if (length > maxBytes) throw new Error(\"OpenAI JSON response exceeds buffer limit\");\n text += decoder.decode(chunk, { stream: true });\n }\n text += decoder.decode();\n let value: unknown;\n try { value = JSON.parse(text); }\n catch { throw new Error(\"OpenAI returned malformed JSON\"); }\n if (!openAiRecord(value)) throw new Error(\"OpenAI returned a non-object JSON response\");\n return value;\n}\n\nexport function openAiRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function openAiError(value: unknown): string | undefined {\n if (typeof value === \"string\" && value) return value.slice(0, 1024);\n if (openAiRecord(value) && typeof value.message === \"string\") return value.message.slice(0, 1024);\n return undefined;\n}\n\nexport async function* openAiResponse(transport: HttpTransport, input: HttpRequest, maxResponseBytes: number): AsyncIterable<HttpResponse> {\n input.signal.throwIfAborted();\n const cleanups = new Map<InvocationCleanup, { run: InvocationCleanup; pending?: Promise<void> }>();\n let closed = false, failed = false;\n const run = (cleanup: { run: InvocationCleanup; pending?: Promise<void> }): Promise<void> => {\n cleanup.pending ??= Promise.resolve().then(cleanup.run);\n return cleanup.pending;\n };\n const register = (cleanup: InvocationCleanup, receiver?: HttpResponse): void => {\n if (cleanups.has(cleanup)) return;\n const entry = { run: () => cleanup.call(receiver) };\n cleanups.set(cleanup, entry);\n if (closed) void run(entry).catch(() => undefined);\n };\n const close = async (): Promise<void> => {\n closed = true;\n const results = await Promise.allSettled([...cleanups.values()].map(run));\n const rejected = results.find(result => result.status === \"rejected\");\n if (rejected?.status === \"rejected\") throw rejected.reason;\n };\n const abort = () => { void close().catch(() => undefined); };\n input.signal.addEventListener(\"abort\", abort, { once: true });\n try {\n const pending = Promise.resolve().then(() => {\n input.signal.throwIfAborted();\n return transport({ ...input, registerCleanup: register });\n }).then(response => {\n register(response.dispose, response);\n return response;\n });\n const response = await openAiAbortable(pending, input.signal);\n if (!Number.isInteger(response.status) || response.status < 200 || response.status >= 300) {\n let detail: string | undefined;\n try { detail = openAiError((await openAiJson(response, input.signal, Math.min(64 * 1024, maxResponseBytes))).error); }\n catch { input.signal.throwIfAborted(); }\n throw new Error(`OpenAI HTTP ${response.status}${detail ? `: ${detail}` : \"\"}`);\n }\n yield response;\n } catch (error) {\n failed = true;\n throw input.signal.aborted ? input.signal.reason : error;\n } finally {\n input.signal.removeEventListener(\"abort\", abort);\n await close().catch(error => { if (!failed && !input.signal.aborted) throw error; });\n if (!failed) input.signal.throwIfAborted();\n }\n}\n", "import type { ByteSource } from \"../../contracts/index.js\";\nimport { openAiBytes, openAiError, openAiRecord } from \"./openai-http.js\";\n\nasync function* events(source: ByteSource, signal: AbortSignal, limit: number, responseLimit: number): AsyncIterable<string> {\n const decoder = new TextDecoder(\"utf-8\", { fatal: true });\n let line = \"\", data: string[] = [], size = 0, afterCarriageReturn = false;\n for await (const chunk of openAiBytes(source, signal, responseLimit)) {\n const text = decoder.decode(chunk, { stream: true });\n for (const character of text) {\n if (afterCarriageReturn && character === \"\\n\") { afterCarriageReturn = false; continue; }\n afterCarriageReturn = character === \"\\r\";\n const codePoint = character.codePointAt(0)!;\n size += codePoint < 0x80 ? 1 : codePoint < 0x800 ? 2 : codePoint < 0x10000 ? 3 : 4;\n if (size > limit) throw new Error(\"OpenAI SSE event exceeds buffer limit: event byte limit exceeded\");\n if (character !== \"\\n\" && character !== \"\\r\") {\n line += character;\n continue;\n }\n if (line === \"\") {\n if (data.length > 0) yield data.join(\"\\n\");\n data = [];\n size = 0;\n } else if (line === \"data\" || line.startsWith(\"data:\")) {\n const value = line.slice(5);\n data.push(value.startsWith(\" \") ? value.slice(1) : value);\n }\n line = \"\";\n }\n }\n decoder.decode();\n throw new Error(\"OpenAI chat stream ended before [DONE]\");\n}\n\nexport async function* openAiChat(source: ByteSource, signal: AbortSignal, limit = 1024 * 1024, responseLimit = 64 * 1024 * 1024): AsyncIterable<string> {\n for await (const data of events(source, signal, limit, responseLimit)) {\n signal.throwIfAborted();\n if (data.trim() === \"[DONE]\") return;\n let parsed: unknown;\n try { parsed = JSON.parse(data); }\n catch { throw new Error(\"OpenAI returned malformed SSE JSON\"); }\n if (!openAiRecord(parsed)) throw new Error(\"OpenAI returned a non-object SSE event\");\n if (parsed.error != null) throw new Error(`OpenAI: ${openAiError(parsed.error) ?? \"stream failed\"}`);\n if (!Array.isArray(parsed.choices)) throw new Error(\"OpenAI SSE event has no choices\");\n for (const choice of parsed.choices) {\n signal.throwIfAborted();\n if (!openAiRecord(choice) || !openAiRecord(choice.delta)) throw new Error(\"OpenAI SSE event has a malformed delta\");\n const content = choice.delta.content;\n if (content != null && typeof content !== \"string\") throw new Error(\"OpenAI SSE delta.content is not text\");\n if (typeof content === \"string\" && content.length > 0) yield content;\n }\n }\n}\n", "import { classify } from \"../file/classify.js\";\n\nconst extensions: Readonly<Record<string, string>> = {\n png: \"image/png\", jpg: \"image/jpeg\", jpeg: \"image/jpeg\", gif: \"image/gif\", webp: \"image/webp\",\n avif: \"image/avif\", heic: \"image/heic\", heif: \"image/heif\", bmp: \"image/bmp\", tif: \"image/tiff\", tiff: \"image/tiff\", svg: \"image/svg+xml\",\n mp3: \"audio/mpeg\", wav: \"audio/wav\", ogg: \"audio/ogg\", oga: \"audio/ogg\", opus: \"audio/ogg\", flac: \"audio/flac\", aac: \"audio/aac\", m4a: \"audio/mp4\", aiff: \"audio/aiff\",\n mp4: \"video/mp4\", m4v: \"video/mp4\", mov: \"video/quicktime\", webm: \"video/webm\", mkv: \"video/x-matroska\", avi: \"video/x-msvideo\", ogv: \"video/ogg\", mpeg: \"video/mpeg\", mpg: \"video/mpeg\",\n pdf: \"application/pdf\", json: \"application/json\", zip: \"application/zip\", gz: \"application/gzip\",\n txt: \"text/plain\", md: \"text/markdown\", csv: \"text/csv\", html: \"text/html\", xml: \"application/xml\",\n};\n\nfunction ebmlInteger(bytes: Uint8Array, offset: number, retainMarker = false): { value: number; width: number } | undefined {\n const first = bytes[offset];\n if (!first) return undefined;\n let marker = 128, width = 1;\n while (!(first & marker)) { marker >>= 1; width++; }\n if (offset + width > bytes.length) return undefined;\n let value = retainMarker ? first : first & (marker - 1);\n for (let index = 1; index < width; index++) value = value * 256 + bytes[offset + index]!;\n if (!Number.isSafeInteger(value) || !retainMarker && value === 2 ** (7 * width) - 1) return undefined;\n return { value, width };\n}\n\nfunction ebmlMimeType(bytes: Uint8Array): string | undefined {\n const header = ebmlInteger(bytes, 4);\n if (!header) return undefined;\n let offset = 4 + header.width;\n const end = Math.min(bytes.length, offset + header.value, 4096);\n while (offset < end) {\n const identifier = ebmlInteger(bytes, offset, true);\n if (!identifier) return undefined;\n offset += identifier.width;\n const size = ebmlInteger(bytes, offset);\n if (!size) return undefined;\n offset += size.width;\n if (size.value > end - offset) return undefined;\n if (identifier.value === 0x4282) {\n const docType = new TextDecoder().decode(bytes.subarray(offset, offset + size.value)).split(\"\\0\", 1)[0];\n if (docType === \"webm\") return \"video/webm\";\n if (docType === \"matroska\") return \"video/x-matroska\";\n return undefined;\n }\n offset += size.value;\n }\n return undefined;\n}\n\nexport function sniffMimeType(path: string, bytes: Uint8Array): string {\n const matches = (signature: readonly number[], offset = 0): boolean =>\n bytes.length >= offset + signature.length && signature.every((byte, index) => bytes[offset + index] === byte);\n const ascii = (offset: number, text: string): boolean =>\n bytes.length >= offset + text.length && [...text].every((character, index) => bytes[offset + index] === character.charCodeAt(0));\n if (matches([137, 80, 78, 71, 13, 10, 26, 10])) return \"image/png\";\n if (matches([255, 216, 255])) return \"image/jpeg\";\n if (ascii(0, \"GIF87a\") || ascii(0, \"GIF89a\")) return \"image/gif\";\n if (ascii(0, \"RIFF\")) {\n if (ascii(8, \"WEBP\")) return \"image/webp\";\n if (ascii(8, \"WAVE\")) return \"audio/wav\";\n if (ascii(8, \"AVI \")) return \"video/x-msvideo\";\n }\n if (ascii(0, \"fLaC\")) return \"audio/flac\";\n if (ascii(0, \"OggS\")) {\n const packet = 27 + (bytes[26] ?? 0);\n if (bytes[26] && bytes[packet] === 0x80 && ascii(packet + 1, \"theora\")) return \"video/ogg\";\n return \"audio/ogg\";\n }\n if (ascii(0, \"ID3\") || bytes.length >= 2 && bytes[0] === 255 && (bytes[1]! & 0xe0) === 0xe0 && (bytes[1]! & 0x06) !== 0) return \"audio/mpeg\";\n if (bytes.length >= 2 && bytes[0] === 255 && (bytes[1]! & 0xf6) === 0xf0) return \"audio/aac\";\n if (ascii(0, \"FORM\") && (ascii(8, \"AIFF\") || ascii(8, \"AIFC\"))) return \"audio/aiff\";\n if (ascii(4, \"ftyp\")) {\n if (ascii(8, \"avif\") || ascii(8, \"avis\")) return \"image/avif\";\n if (ascii(8, \"heic\") || ascii(8, \"heix\")) return \"image/heic\";\n if (ascii(8, \"mif1\") || ascii(8, \"msf1\")) return \"image/heif\";\n if (ascii(8, \"M4A \") || ascii(8, \"M4B \")) return \"audio/mp4\";\n if (ascii(8, \"qt \")) return \"video/quicktime\";\n return \"video/mp4\";\n }\n if (matches([0x1a, 0x45, 0xdf, 0xa3])) {\n const mimeType = ebmlMimeType(bytes);\n if (mimeType) return mimeType;\n }\n if (ascii(0, \"%PDF-\")) return \"application/pdf\";\n if (matches([0x50, 0x4b, 3, 4]) || matches([0x50, 0x4b, 5, 6])) return \"application/zip\";\n if (matches([0x1f, 0x8b])) return \"application/gzip\";\n if (matches([0x49, 0x49, 42, 0]) || matches([0x4d, 0x4d, 0, 42])) return \"image/tiff\";\n if (ascii(0, \"BM\")) return \"image/bmp\";\n const prefix = bytes.subarray(0, 512);\n const classified = classify(prefix, bytes.length <= prefix.length).mime;\n if (![\"application/octet-stream\", \"text/plain\", \"inode/x-empty\"].includes(classified)) return classified;\n const filename = path.slice(path.lastIndexOf(\"/\") + 1);\n const dot = filename.lastIndexOf(\".\");\n const extension = dot < 0 ? \"\" : filename.slice(dot + 1).toLowerCase();\n return Object.hasOwn(extensions, extension) ? extensions[extension]! : classified === \"inode/x-empty\" ? \"application/octet-stream\" : classified;\n}\n\nexport function acceptsMimeType(types: readonly string[], mimeType: string): boolean {\n if ([...mimeType].some(character => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127)) return false;\n const mime = mimeType.split(\";\", 1)[0]!.trim().toLowerCase();\n const parts = mime.split(\"/\");\n if (parts.length !== 2 || parts.some(part => !part || [...part].some(character =>\n !(character >= \"a\" && character <= \"z\" || character >= \"0\" && character <= \"9\" || \"!#$%&'+-.^_`|~\".includes(character))))) return false;\n return types.some(type => {\n const accepted = type.toLowerCase();\n return accepted === mime || accepted.endsWith(\"/*\") && accepted.slice(0, -2) === parts[0];\n });\n}\n", "export interface Classification {\n readonly description: string;\n readonly mime: string;\n readonly encoding: string;\n}\n\nexport const binary: Classification = { description: \"data\", mime: \"application/octet-stream\", encoding: \"binary\" };\n\nfunction result(description: string, mime: string, encoding = \"binary\"): Classification {\n return { description, mime, encoding };\n}\n\nfunction matches(bytes: Uint8Array, signature: readonly number[], offset = 0): boolean {\n return bytes.length >= offset + signature.length && signature.every((value, index) => bytes[offset + index] === value);\n}\n\nfunction ascii(bytes: Uint8Array, start: number, length: number): string {\n return String.fromCharCode(...bytes.subarray(start, start + length));\n}\n\nfunction magic(bytes: Uint8Array): Classification | undefined {\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n if (bytes.length >= 33 && matches(bytes, [137, 80, 78, 71, 13, 10, 26, 10]) && view.getUint32(8) === 13 && ascii(bytes, 12, 4) === \"IHDR\"\n && view.getUint32(16) > 0 && view.getUint32(20) > 0 && bytes[26] === 0 && bytes[27] === 0 && bytes[28]! <= 1) {\n const allowed: Record<number, readonly number[]> = { 0: [1, 2, 4, 8, 16], 2: [8, 16], 3: [1, 2, 4, 8], 4: [8, 16], 6: [8, 16] };\n if (allowed[bytes[25]!]?.includes(bytes[24]!)) return result(\"PNG image data\", \"image/png\");\n }\n if (bytes.length >= 13 && [\"GIF87a\", \"GIF89a\"].includes(ascii(bytes, 0, 6)) && view.getUint16(6, true) > 0 && view.getUint16(8, true) > 0) return result(\"GIF image data\", \"image/gif\");\n if (bytes.length >= 4 && matches(bytes, [255, 216, 255]) && bytes[3]! >= 192 && bytes[3]! <= 254) return result(\"JPEG image data\", \"image/jpeg\");\n if (bytes.length >= 20 && ascii(bytes, 0, 4) === \"RIFF\" && ascii(bytes, 8, 4) === \"WEBP\" && [\"VP8 \", \"VP8L\", \"VP8X\"].includes(ascii(bytes, 12, 4)) && view.getUint32(4, true) >= 12) return result(\"WebP image data\", \"image/webp\");\n if (bytes.length >= 8 && (matches(bytes, [73, 73, 42, 0]) || matches(bytes, [77, 77, 0, 42]))) return result(\"TIFF image data\", \"image/tiff\");\n if (bytes.length >= 26 && ascii(bytes, 0, 2) === \"BM\" && [12, 40, 52, 56, 108, 124].includes(view.getUint32(14, true))) return result(\"PC bitmap image data\", \"image/bmp\");\n if (bytes.length >= 22 && matches(bytes, [0, 0, 1, 0]) && view.getUint16(4, true) > 0) return result(\"MS Windows icon resource\", \"image/vnd.microsoft.icon\");\n if (/^%PDF-[12]\\.[0-9](?:\\r|\\n|\\s)/u.test(ascii(bytes, 0, 16))) return result(\"PDF document\", \"application/pdf\");\n if (bytes.length >= 10 && matches(bytes, [31, 139, 8]) && (bytes[3]! & 224) === 0) return result(\"gzip compressed data\", \"application/gzip\");\n if (bytes.length >= 10 && ascii(bytes, 0, 3) === \"BZh\" && bytes[3]! >= 49 && bytes[3]! <= 57 && (ascii(bytes, 4, 6) === \"1AY&SY\" || matches(bytes, [23, 114, 69, 56, 80, 144], 4))) return result(\"bzip2 compressed data\", \"application/x-bzip2\");\n if (bytes.length >= 12 && matches(bytes, [253, 55, 122, 88, 90, 0]) && bytes[6] === 0 && bytes[7]! <= 15) return result(\"XZ compressed data\", \"application/x-xz\");\n if (bytes.length >= 6 && matches(bytes, [40, 181, 47, 253]) && (bytes[4]! & 24) === 0) return result(\"Zstandard compressed data\", \"application/zstd\");\n if ((bytes.length >= 30 && matches(bytes, [80, 75, 3, 4])) || (bytes.length >= 22 && matches(bytes, [80, 75, 5, 6]))) return result(\"Zip archive data\", \"application/zip\");\n if (bytes.length >= 32 && matches(bytes, [55, 122, 188, 175, 39, 28])) return result(\"7-zip archive data\", \"application/x-7z-compressed\");\n if ((bytes.length >= 14 && matches(bytes, [82, 97, 114, 33, 26, 7, 0])) || (bytes.length >= 16 && matches(bytes, [82, 97, 114, 33, 26, 7, 1, 0]))) return result(\"RAR archive data\", \"application/x-rar\");\n if (bytes.length >= 512 && ascii(bytes, 257, 5) === \"ustar\") {\n const checksum = ascii(bytes, 148, 8).replace(/\\0.*$/u, \"\").trim();\n if (/^[0-7]+$/u.test(checksum)) {\n let total = 0;\n for (let index = 0; index < 512; index++) total += index >= 148 && index < 156 ? 32 : bytes[index]!;\n if (parseInt(checksum, 8) === total) return result(\"POSIX tar archive\", \"application/x-tar\");\n }\n }\n if (bytes.length >= 52 && matches(bytes, [127, 69, 76, 70]) && [1, 2].includes(bytes[4]!) && [1, 2].includes(bytes[5]!) && bytes[6] === 1 && (bytes[4] === 1 || bytes.length >= 64)) {\n const type = view.getUint16(16, bytes[5] === 1);\n const mime = type === 1 ? \"application/x-object\" : type === 2 ? \"application/x-executable\" : type === 3 ? \"application/x-sharedlib\" : \"application/octet-stream\";\n return result(`ELF ${bytes[4] === 1 ? \"32\" : \"64\"}-bit ${type === 2 ? \"executable\" : type === 3 ? \"shared object\" : \"object\"}`, mime);\n }\n if (bytes.length >= 64 && ascii(bytes, 0, 2) === \"MZ\") {\n const offset = view.getUint32(60, true);\n if (offset >= 64 && offset <= bytes.length - 24 && matches(bytes, [80, 69, 0, 0], offset)) return result(\"PE executable\", \"application/vnd.microsoft.portable-executable\");\n return result(\"DOS executable\", \"application/x-dosexec\");\n }\n if (bytes.length >= 8 && matches(bytes, [0, 97, 115, 109, 1, 0, 0, 0])) return result(\"WebAssembly binary module\", \"application/wasm\");\n if (bytes.length >= 100 && ascii(bytes, 0, 16) === \"SQLite format 3\\0\") {\n const size = view.getUint16(16);\n if ((size === 1 || (size >= 512 && size <= 32768 && (size & (size - 1)) === 0)) && [1, 2].includes(bytes[18]!) && [1, 2].includes(bytes[19]!) && matches(bytes, [64, 32, 32], 21)) return result(\"SQLite 3.x database\", \"application/vnd.sqlite3\");\n }\n if (bytes.length >= 512 && matches(bytes, [208, 207, 17, 224, 161, 177, 26, 225]) && matches(bytes, [254, 255], 28)) return result(\"OLE Compound Document\", \"application/x-ole-storage\");\n return undefined;\n}\n\nexport function classify(bytes: Uint8Array, complete: boolean): Classification {\n if (!bytes.length) return complete ? result(\"empty\", \"inode/x-empty\") : binary;\n const recognized = magic(bytes);\n if (recognized) return recognized;\n if (matches(bytes, [255, 254, 0, 0]) || matches(bytes, [0, 0, 254, 255])) return binary;\n let encoding = \"utf-8\";\n let bom = 0;\n if (matches(bytes, [239, 187, 191])) bom = 3;\n else if (matches(bytes, [255, 254])) { encoding = \"utf-16le\"; bom = 2; }\n else if (matches(bytes, [254, 255])) { encoding = \"utf-16be\"; bom = 2; }\n let text: string;\n try { text = new TextDecoder(encoding, { fatal: true }).decode(bytes, { stream: !complete }); }\n catch { return binary; }\n if (!text.length && bytes.length > bom) return binary;\n for (const character of text) {\n const code = character.codePointAt(0)!;\n if ((code < 32 && ![8, 9, 10, 12, 13, 27].includes(code)) || (code >= 127 && code <= 159)) return binary;\n }\n if (!bom && encoding === \"utf-8\" && bytes.every(value => value < 128)) encoding = \"us-ascii\";\n if (complete && /^[\\x20\\t\\r\\n]*(?:\\{|\\[)/u.test(text)) {\n try { JSON.parse(text); return result(\"JSON text data\", \"application/json\", encoding); } catch {}\n }\n const description = encoding === \"us-ascii\" ? \"ASCII text\" : encoding === \"utf-8\" ? \"Unicode text, UTF-8\" : `Unicode text, ${encoding === \"utf-16le\" ? \"UTF-16, little-endian\" : \"UTF-16, big-endian\"}`;\n return result(description, \"text/plain\", encoding);\n}\n", "import type { ByteSource } from \"../../../contracts/io.js\";\nimport type { HttpHeaders } from \"../../network/types.js\";\n\nexport interface LlmProviderLimits {\n readonly maxRequestBytes: number;\n readonly maxResponseBytes: number;\n readonly maxEventBytes: number;\n readonly maxPolls: number;\n readonly pollIntervalMs: number;\n}\n\nexport function providerLimits(input: Partial<LlmProviderLimits> = {}): LlmProviderLimits {\n const limits = { maxRequestBytes: 64 * 1024 * 1024, maxResponseBytes: 64 * 1024 * 1024, maxEventBytes: 1024 * 1024, maxPolls: 120, pollIntervalMs: 1000, ...input };\n for (const [name, value] of Object.entries(limits)) {\n if (!Number.isSafeInteger(value) || value < (name === \"maxPolls\" || name === \"pollIntervalMs\" ? 0 : 1)) throw new RangeError(`Invalid provider limit: ${name}`);\n }\n return Object.freeze(limits);\n}\n\nexport function credential(value: string): string {\n if (typeof value !== \"string\" || value.length === 0 || [...value].some(char => char.charCodeAt(0) < 32 || char.charCodeAt(0) === 127)) throw new TypeError(\"Invalid provider apiKey\");\n return value;\n}\n\nexport function jsonBody(value: unknown, limit: number): { body: ByteSource; headers: HttpHeaders } {\n const text = JSON.stringify(value);\n if (text.length > limit) throw new RangeError(\"Provider request byte limit exceeded\");\n const bytes = new TextEncoder().encode(text);\n if (bytes.length > limit) throw new RangeError(\"Provider request byte limit exceeded\");\n return { body: (async function* () { yield bytes; })(), headers: [[\"content-type\", \"application/json\"]] };\n}\n\nexport function multipart(options: Record<string, unknown>, files: readonly { field: string; mimeType: string; bytes: Uint8Array }[], limit: number): { body: ByteSource; headers: HttpHeaders } {\n const encoder = new TextEncoder();\n const parts: Uint8Array[] = [];\n const entries = Object.entries(options).map(([name, value]) => {\n if (![...name].every(char => \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\".includes(char))) throw new TypeError(\"Invalid multipart option name\");\n return [name, String(value)] as const;\n });\n let size = files.reduce((sum, file) => sum + file.bytes.length, 0);\n for (const [, value] of entries) {\n if (value.length > limit) throw new RangeError(\"Provider request byte limit exceeded\");\n size += encoder.encode(value).length;\n }\n if (size > limit) throw new RangeError(\"Provider request byte limit exceeded\");\n let boundary = \"safe-bash-llm-boundary\";\n const contains = (bytes: Uint8Array, needle: Uint8Array): boolean => {\n outer: for (let start = 0; start <= bytes.length - needle.length; start++) {\n for (let index = 0; index < needle.length; index++) if (bytes[start + index] !== needle[index]) continue outer;\n return true;\n }\n return false;\n };\n let attempts = 0;\n while (entries.some(([, value]) => value.includes(boundary)) || files.some(file => contains(file.bytes, encoder.encode(boundary)))) {\n if (attempts++ === 32) throw new RangeError(\"Provider multipart boundary collision limit exceeded\");\n boundary += \"x\";\n }\n for (const [name, value] of entries) parts.push(encoder.encode(`--${boundary}\\r\\nContent-Disposition: form-data; name=\"${name}\"\\r\\n\\r\\n${value}\\r\\n`));\n for (const [index, file] of files.entries()) {\n if ([...file.mimeType].some(char => char.charCodeAt(0) < 32 || char.charCodeAt(0) > 126)) throw new TypeError(\"Invalid attachment MIME type\");\n parts.push(encoder.encode(`--${boundary}\\r\\nContent-Disposition: form-data; name=\"${file.field}\"; filename=\"attachment-${index}\"\\r\\nContent-Type: ${file.mimeType}\\r\\n\\r\\n`), Uint8Array.from(file.bytes), encoder.encode(\"\\r\\n\"));\n }\n parts.push(encoder.encode(`--${boundary}--\\r\\n`));\n if (parts.reduce((sum, part) => sum + part.length, 0) > limit) throw new RangeError(\"Provider request byte limit exceeded\");\n return { body: (async function* () { yield* parts; })(), headers: [[\"content-type\", `multipart/form-data; boundary=${boundary}`]] };\n}\n", "import type { HttpTransport } from \"../network/types.js\";\nimport type { LlmModel, LlmProvider } from \"./types.js\";\nimport { streamElevenLabs } from \"./elevenlabs-stream.js\";\nimport { acceptsMimeType } from \"./mime.js\";\nimport { credential, providerLimits, jsonBody, type LlmProviderLimits } from \"./providers/shared.js\";\n\nexport interface ElevenLabsModel extends LlmModel {\n readonly endpoint: \"tts\" | \"music\";\n readonly defaultVoiceId?: string;\n}\n\nexport interface ElevenLabsProviderOptions {\n readonly transport: HttpTransport;\n readonly apiKey: string;\n readonly baseUrl?: string;\n readonly models: readonly ElevenLabsModel[];\n readonly limits?: Partial<LlmProviderLimits>;\n}\n\nconst outputFormats = new Map([\n [\"audio/mpeg\", \"mp3_44100_128\"],\n [\"audio/wav\", \"wav_44100\"],\n [\"audio/x-wav\", \"wav_44100\"],\n [\"audio/pcm\", \"pcm_44100\"],\n [\"audio/basic\", \"ulaw_8000\"],\n [\"audio/opus\", \"opus_48000_128\"],\n [\"audio/ogg\", \"opus_48000_128\"],\n]);\n\nconst optionTypes = {\n tts: new Map([\n [\"stability\", \"number\"], [\"similarity_boost\", \"number\"], [\"style\", \"number\"],\n [\"speed\", \"number\"], [\"use_speaker_boost\", \"boolean\"],\n ]),\n music: new Map([\n [\"music_length_ms\", \"integer\"], [\"seed\", \"integer\"], [\"force_instrumental\", \"boolean\"],\n [\"respect_sections_durations\", \"boolean\"], [\"store_for_inpainting\", \"boolean\"],\n [\"sign_with_c2pa\", \"boolean\"],\n ]),\n};\n\nfunction parseOptions(options: Readonly<Record<string, string>>, endpoint: ElevenLabsModel[\"endpoint\"]): Record<string, string | number | boolean> {\n return Object.fromEntries(Object.entries(options).map(([key, value]) => {\n const type = optionTypes[endpoint].get(key);\n if (!type) return [key, value];\n if (type === \"boolean\") {\n if (value === \"true\" || value === \"false\") return [key, value === \"true\"];\n } else {\n const number = value.trim() ? Number(value) : NaN;\n if (Number.isFinite(number) && (type !== \"integer\" || Number.isSafeInteger(number))) return [key, number];\n }\n throw new Error(`Invalid ElevenLabs option ${key}: expected ${type}`);\n }));\n}\n\nexport function createElevenLabsProvider(options: ElevenLabsProviderOptions): LlmProvider {\n const transport = options.transport;\n if (typeof transport !== \"function\") throw new TypeError(\"Provider transport is required\");\n const apiKey = credential(options.apiKey);\n const limits = providerLimits(options.limits);\n const baseUrl = new URL(options.baseUrl ?? \"https://api.elevenlabs.io\");\n if (![\"https:\", \"http:\"].includes(baseUrl.protocol) || baseUrl.username || baseUrl.password || baseUrl.search || baseUrl.hash) {\n throw new Error(\"Invalid ElevenLabs baseUrl: expected an HTTP(S) URL without credentials, query, or fragment\");\n }\n if (!baseUrl.pathname.endsWith(\"/\")) baseUrl.pathname += \"/\";\n const models = options.models.map(model => Object.freeze({\n ...model,\n ...(model.aliases === undefined ? {} : { aliases: Object.freeze([...model.aliases]) }),\n ...(model.attachmentTypes === undefined ? {} : { attachmentTypes: Object.freeze([...model.attachmentTypes]) }),\n }));\n const byId = new Map<string, { model: (typeof models)[number]; format: string }>();\n for (const model of models) {\n if (model.endpoint !== \"tts\" && model.endpoint !== \"music\") throw new Error(`Invalid ElevenLabs endpoint: ${model.endpoint}`);\n if (!model.outputType) throw new TypeError(\"ElevenLabs models require an audio outputType\");\n const mimeType = model.outputType.split(\";\", 1)[0]!.trim().toLowerCase();\n const format = outputFormats.get(mimeType);\n if (!format || !acceptsMimeType([mimeType], model.outputType) || (model.endpoint === \"music\" && format.startsWith(\"wav_\"))) {\n throw new Error(`Unsupported ElevenLabs outputType for ${model.endpoint}: ${model.outputType}`);\n }\n if (model.attachmentTypes?.length) throw new Error(`ElevenLabs model ${model.id} does not accept attachments`);\n if (!model.id || byId.has(model.id)) throw new Error(`Duplicate or empty ElevenLabs model: ${model.id}`);\n byId.set(model.id, { model, format });\n }\n return {\n name: \"elevenlabs\",\n models: Object.freeze(models),\n async *complete(request) {\n request.signal.throwIfAborted();\n const entry = byId.get(request.model);\n if (!entry) throw new Error(`Unknown model: ${request.model}`);\n const { model, format } = entry;\n if (request.attachments.length) throw new Error(`Model ${model.id} does not accept ${request.attachments[0]!.mimeType} attachments`);\n if (request.system !== undefined) throw new TypeError(\"ElevenLabs reference endpoints do not accept system prompts\");\n const { output_format: requestedFormat, ...requestOptions } = request.options;\n if (requestedFormat !== undefined && requestedFormat !== format) throw new TypeError(\"output_format conflicts with model outputType\");\n let path: string;\n let body: Record<string, unknown>;\n if (model.endpoint === \"tts\") {\n const { voice_id: suppliedVoice, ...settings } = requestOptions;\n const voice = suppliedVoice ?? model.defaultVoiceId;\n if (!voice?.trim()) throw new Error(`ElevenLabs model ${model.id} requires voice_id or a configured defaultVoiceId`);\n if (voice === \".\" || voice === \"..\") throw new Error(\"Invalid ElevenLabs voice_id: dot segments are not allowed\");\n path = `v1/text-to-speech/${encodeURIComponent(voice)}`;\n body = { text: request.prompt, model_id: model.id, voice_settings: parseOptions(settings, model.endpoint) };\n } else {\n path = \"v1/music\";\n body = { ...parseOptions(requestOptions, model.endpoint), prompt: request.prompt, model_id: model.id };\n }\n const url = new URL(path, baseUrl);\n url.searchParams.set(\"output_format\", format);\n const payload = jsonBody(body, limits.maxRequestBytes);\n yield* streamElevenLabs(transport, {\n url: url.href,\n method: \"POST\",\n headers: [[\"xi-api-key\", apiKey], ...payload.headers, [\"accept\", model.outputType!]],\n body: payload.body,\n signal: request.signal,\n }, limits.maxResponseBytes);\n },\n };\n}\n", "import type { HttpRequest, HttpResponse, HttpTransport } from \"../network/types.js\";\nimport type { InvocationCleanup } from \"../../contracts/index.js\";\n\nasync function abortable<Result>(operation: () => PromiseLike<Result>, signal: AbortSignal): Promise<Result> {\n signal.throwIfAborted();\n let onAbort!: () => void;\n const aborted = new Promise<never>((_resolve, reject) => {\n onAbort = () => reject(signal.reason);\n signal.addEventListener(\"abort\", onAbort, { once: true });\n });\n try {\n return await Promise.race([Promise.resolve().then(() => { signal.throwIfAborted(); return operation(); }), aborted]);\n } finally {\n signal.removeEventListener(\"abort\", onAbort);\n }\n}\n\nexport async function* streamElevenLabs(transport: HttpTransport, request: HttpRequest, limit = 64 * 1024 * 1024): AsyncGenerator<Uint8Array> {\n const { signal } = request;\n signal.throwIfAborted();\n let iterator: AsyncIterator<Uint8Array> | undefined;\n let finished = false;\n let failed = false;\n let closed = false;\n let size = 0;\n const cleanups = new Map<InvocationCleanup, { run: InvocationCleanup; pending?: Promise<void> }>();\n const runCleanup = (entry: { run: InvocationCleanup; pending?: Promise<void> }): Promise<void> => {\n return entry.pending ??= Promise.resolve().then(entry.run);\n };\n const register = (cleanup: InvocationCleanup, receiver?: HttpResponse): void => {\n if (cleanups.has(cleanup)) return;\n const entry = { run: () => cleanup.call(receiver) };\n cleanups.set(cleanup, entry);\n if (closed) void runCleanup(entry).catch(() => {});\n };\n const dispose = async (): Promise<void> => {\n closed = true;\n let seen = 0;\n const failures: unknown[] = [];\n while (seen < cleanups.size) {\n const entries = [...cleanups.values()].slice(seen);\n seen = cleanups.size;\n const results = await Promise.allSettled(entries.map(runCleanup));\n for (const result of results) if (result.status === \"rejected\") failures.push(result.reason);\n }\n if (failures.length) throw failures[0];\n };\n const close = async (): Promise<void> => {\n const failures: unknown[] = [];\n try { await dispose(); } catch (error) { failures.push(error); }\n if (!finished && iterator?.return) {\n const closing = Promise.resolve().then(() => iterator!.return!());\n if (signal.aborted) void closing.catch(() => {});\n else {\n try { await closing; } catch (error) { failures.push(error); }\n }\n }\n if (!failed) {\n signal.throwIfAborted();\n if (failures.length) throw failures[0];\n }\n };\n const onAbort = (): void => { void dispose().catch(() => {}); };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n try {\n const acquired = await abortable(async () => {\n signal.throwIfAborted();\n const response = await transport({ ...request, registerCleanup: register });\n register(response.dispose, response);\n if (signal.aborted) {\n await dispose();\n signal.throwIfAborted();\n }\n return response;\n }, signal);\n signal.throwIfAborted();\n if (acquired.status < 200 || acquired.status >= 300) throw new Error(`ElevenLabs HTTP ${acquired.status}: ${acquired.statusText}`);\n iterator = acquired.body[Symbol.asyncIterator]();\n while (true) {\n const next = await abortable(() => iterator!.next(), signal);\n signal.throwIfAborted();\n if (next.done) { finished = true; return; }\n if (!(next.value instanceof Uint8Array)) throw new TypeError(\"ElevenLabs audio stream must yield Uint8Array chunks\");\n size += next.value.byteLength;\n if (size > limit) throw new RangeError(\"Provider response byte limit exceeded\");\n yield Uint8Array.from(next.value);\n }\n } catch (error) {\n failed = true;\n throw error;\n } finally {\n signal.removeEventListener(\"abort\", onAbort);\n await close();\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["result", "response", "matches", "ascii", "binary", "result"]
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
acceptsMimeType,
|
|
3
3
|
sniffMimeType
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PVJJFCGA.js";
|
|
5
5
|
import {
|
|
6
6
|
pathOf,
|
|
7
7
|
writeDiagnostic
|
|
@@ -281,4 +281,4 @@ export {
|
|
|
281
281
|
createLlmCommands,
|
|
282
282
|
llmCommands
|
|
283
283
|
};
|
|
284
|
-
//# sourceMappingURL=chunk-
|
|
284
|
+
//# sourceMappingURL=chunk-QAZN7SAN.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createLlmCommands,
|
|
3
3
|
llmCommands
|
|
4
|
-
} from "../../chunks/chunk-
|
|
4
|
+
} from "../../chunks/chunk-QAZN7SAN.js";
|
|
5
5
|
import {
|
|
6
6
|
createElevenLabsProvider,
|
|
7
7
|
createOpenAiProvider
|
|
8
|
-
} from "../../chunks/chunk-
|
|
8
|
+
} from "../../chunks/chunk-PVJJFCGA.js";
|
|
9
9
|
import "../../chunks/chunk-LHKAA57T.js";
|
|
10
10
|
import "../../chunks/chunk-OECKXHVJ.js";
|
|
11
11
|
import "../../chunks/chunk-DPJWEGIX.js";
|
|
@@ -5,5 +5,5 @@ export declare function openAiBytes(source: ByteSource, signal: AbortSignal, lim
|
|
|
5
5
|
export declare function openAiJson(response: HttpResponse, signal: AbortSignal, maxBytes?: number): Promise<Record<string, unknown>>;
|
|
6
6
|
export declare function openAiRecord(value: unknown): value is Record<string, unknown>;
|
|
7
7
|
export declare function openAiError(value: unknown): string | undefined;
|
|
8
|
-
export declare function openAiResponse(transport: HttpTransport, input: HttpRequest): AsyncIterable<HttpResponse>;
|
|
8
|
+
export declare function openAiResponse(transport: HttpTransport, input: HttpRequest, maxResponseBytes: number): AsyncIterable<HttpResponse>;
|
|
9
9
|
//# sourceMappingURL=openai-http.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-http.d.ts","sourceRoot":"","sources":["../../../src/commands/llm/openai-http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAcvG;AAED,wBAAuB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,SAAmB,GAAG,UAAU,CAyBhH;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,SAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAc3I;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE7E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI9D;AAED,wBAAuB,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"openai-http.d.ts","sourceRoot":"","sources":["../../../src/commands/llm/openai-http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAcvG;AAED,wBAAuB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,SAAmB,GAAG,UAAU,CAyBhH;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,SAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAc3I;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE7E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI9D;AAED,wBAAuB,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,CA8CzI"}
|
|
@@ -83,7 +83,7 @@ export function openAiError(value) {
|
|
|
83
83
|
return value.message.slice(0, 1024);
|
|
84
84
|
return undefined;
|
|
85
85
|
}
|
|
86
|
-
export async function* openAiResponse(transport, input) {
|
|
86
|
+
export async function* openAiResponse(transport, input, maxResponseBytes) {
|
|
87
87
|
input.signal.throwIfAborted();
|
|
88
88
|
const cleanups = new Map();
|
|
89
89
|
let closed = false, failed = false;
|
|
@@ -120,7 +120,7 @@ export async function* openAiResponse(transport, input) {
|
|
|
120
120
|
if (!Number.isInteger(response.status) || response.status < 200 || response.status >= 300) {
|
|
121
121
|
let detail;
|
|
122
122
|
try {
|
|
123
|
-
detail = openAiError((await openAiJson(response, input.signal, 64 * 1024)).error);
|
|
123
|
+
detail = openAiError((await openAiJson(response, input.signal, Math.min(64 * 1024, maxResponseBytes))).error);
|
|
124
124
|
}
|
|
125
125
|
catch {
|
|
126
126
|
input.signal.throwIfAborted();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-http.js","sourceRoot":"","sources":["../../../src/commands/llm/openai-http.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"openai-http.js","sourceRoot":"","sources":["../../../src/commands/llm/openai-http.ts"],"names":[],"mappings":"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"}
|
|
@@ -129,7 +129,7 @@ export function createOpenAiProvider(options) {
|
|
|
129
129
|
const send = (path, method, body) => openAiResponse(transport, {
|
|
130
130
|
url: `${baseUrl}${path}`, method, signal: request.signal,
|
|
131
131
|
...body, headers: [["authorization", `Bearer ${apiKey}`], ...(body?.headers ?? [])],
|
|
132
|
-
});
|
|
132
|
+
}, limits.maxResponseBytes);
|
|
133
133
|
if (model.endpoint === "chat") {
|
|
134
134
|
const messages = [];
|
|
135
135
|
if (request.system !== undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/commands/llm/openai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/commands/llm/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import "../../../chunks/chunk-C7QNJ3D4.js";
|
|
|
2
2
|
import {
|
|
3
3
|
createElevenLabsProvider,
|
|
4
4
|
createOpenAiProvider
|
|
5
|
-
} from "../../../chunks/chunk-
|
|
5
|
+
} from "../../../chunks/chunk-PVJJFCGA.js";
|
|
6
6
|
import "../../../chunks/chunk-2KL6W6NB.js";
|
|
7
7
|
export {
|
|
8
8
|
createElevenLabsProvider,
|
|
@@ -33,13 +33,13 @@ import {
|
|
|
33
33
|
import {
|
|
34
34
|
createLlmCommands,
|
|
35
35
|
llmCommands
|
|
36
|
-
} from "./chunks/chunk-
|
|
36
|
+
} from "./chunks/chunk-QAZN7SAN.js";
|
|
37
37
|
import "./chunks/chunk-C7QNJ3D4.js";
|
|
38
38
|
import {
|
|
39
39
|
classify,
|
|
40
40
|
createElevenLabsProvider,
|
|
41
41
|
createOpenAiProvider
|
|
42
|
-
} from "./chunks/chunk-
|
|
42
|
+
} from "./chunks/chunk-PVJJFCGA.js";
|
|
43
43
|
import {
|
|
44
44
|
createXmlCommands,
|
|
45
45
|
defaultXmlQueryLimits,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@poe-platform/safe-bash",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.556",
|
|
4
4
|
"description": "Extensible virtual shell with pluggable filesystems and streaming commands",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -254,7 +254,7 @@
|
|
|
254
254
|
"access": "public"
|
|
255
255
|
},
|
|
256
256
|
"dependencies": {
|
|
257
|
-
"@poe-platform/safe-fs": "0.1.
|
|
257
|
+
"@poe-platform/safe-fs": "0.1.556",
|
|
258
258
|
"pako": "3.0.1",
|
|
259
259
|
"@noble/hashes": "2.4.0",
|
|
260
260
|
"@types/node": "^25.2.2"
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/commands/llm/openai.ts", "../../src/commands/llm/openai-http.ts", "../../src/commands/llm/openai-sse.ts", "../../src/commands/llm/mime.ts", "../../src/commands/file/classify.ts", "../../src/commands/llm/providers/shared.ts", "../../src/commands/llm/elevenlabs.ts", "../../src/commands/llm/elevenlabs-stream.ts"],
|
|
4
|
-
"sourcesContent": ["import type { HttpRequest, HttpTransport } from \"../network/types.js\";\nimport type { LlmModel, LlmProvider, LlmRequest } from \"./types.js\";\nimport { openAiBytes, openAiError, openAiJson, openAiRecord, openAiResponse } from \"./openai-http.js\";\nimport { openAiChat } from \"./openai-sse.js\";\nimport { acceptsMimeType } from \"./mime.js\";\nimport { credential, providerLimits, jsonBody, multipart, type LlmProviderLimits } from \"./providers/shared.js\";\n\nexport interface OpenAiModel extends LlmModel {\n readonly endpoint: \"chat\" | \"images\" | \"videos\";\n}\n\nexport interface OpenAiProviderOptions {\n readonly transport: HttpTransport;\n readonly apiKey: string;\n readonly baseUrl?: string;\n readonly models: readonly OpenAiModel[];\n readonly limits?: Partial<LlmProviderLimits>;\n}\n\nconst numericOptions = {\n chat: new Map([\n [\"temperature\", \"number\"], [\"top_p\", \"number\"],\n [\"frequency_penalty\", \"number\"], [\"presence_penalty\", \"number\"],\n [\"max_tokens\", \"integer\"], [\"max_completion_tokens\", \"integer\"],\n [\"n\", \"integer\"], [\"seed\", \"integer\"], [\"top_logprobs\", \"integer\"],\n ]),\n images: new Map([\n [\"n\", \"integer\"], [\"output_compression\", \"integer\"], [\"partial_images\", \"integer\"],\n ]),\n};\n\nfunction jsonOptions(options: LlmRequest[\"options\"], endpoint: \"chat\" | \"images\"): Record<string, string | number | boolean> {\n return Object.fromEntries(Object.entries(options).map(([key, value]) => {\n if ((endpoint === \"chat\" ? [\"store\", \"parallel_tool_calls\", \"logprobs\"] : [\"stream\"]).includes(key)) {\n if (value !== \"true\" && value !== \"false\") throw new Error(`Invalid OpenAI option ${key}: expected boolean`);\n return [key, value === \"true\"];\n }\n const type = numericOptions[endpoint].get(key);\n if (!type) return [key, value];\n const number = value.trim() ? Number(value) : NaN;\n if (!Number.isFinite(number) || type === \"integer\" && !Number.isSafeInteger(number)) {\n throw new Error(`Invalid OpenAI option ${key}: expected a finite ${type === \"integer\" ? \"safe integer\" : \"number\"}`);\n }\n return [key, number];\n }));\n}\n\nfunction base64(bytes: Uint8Array): string {\n let binary = \"\";\n for (let offset = 0; offset < bytes.length; offset += 8192) {\n binary += String.fromCharCode(...bytes.subarray(offset, offset + 8192));\n }\n return btoa(binary);\n}\n\nfunction imageBytes(value: unknown): Uint8Array {\n if (typeof value !== \"string\" || value.length === 0) throw new Error(\"OpenAI image response has no b64_json\");\n let decoded: string;\n try { decoded = atob(value); }\n catch { throw new Error(\"OpenAI image response contains invalid base64\"); }\n if (btoa(decoded) !== value) throw new Error(\"OpenAI image response contains non-canonical base64\");\n return Uint8Array.from(decoded, character => character.charCodeAt(0));\n}\n\nfunction waitForPoll(signal: AbortSignal, interval: number): Promise<void> {\n signal.throwIfAborted();\n return new Promise((resolve, reject) => {\n const abort = () => { clearTimeout(timer); signal.removeEventListener(\"abort\", abort); reject(signal.reason); };\n const timer = setTimeout(() => { signal.removeEventListener(\"abort\", abort); resolve(); }, interval);\n signal.addEventListener(\"abort\", abort, { once: true });\n if (signal.aborted) abort();\n });\n}\n\nfunction job(value: Record<string, unknown>, expectedId?: string): { id: string; status: string } {\n if (value.error != null) throw new Error(`OpenAI video failed: ${openAiError(value.error) ?? \"unknown error\"}`);\n if (typeof value.id !== \"string\" || value.id.length === 0 || value.id === \".\" || value.id === \"..\" || (expectedId !== undefined && value.id !== expectedId)) {\n throw new Error(\"OpenAI video response has an invalid job id\");\n }\n if (value.status !== \"queued\" && value.status !== \"in_progress\" && value.status !== \"completed\") {\n throw new Error(`OpenAI video failed: ${typeof value.status === \"string\" ? value.status : \"invalid status\"}`);\n }\n return { id: value.id, status: value.status };\n}\n\nexport function createOpenAiProvider(options: OpenAiProviderOptions): LlmProvider {\n const { transport, apiKey } = options;\n const limits = providerLimits(options.limits);\n if (typeof transport !== \"function\") throw new TypeError(\"OpenAI requires an injected HTTP transport\");\n if (typeof apiKey !== \"string\" || !apiKey.trim() || apiKey.includes(\"\\r\") || apiKey.includes(\"\\n\")) throw new TypeError(\"OpenAI requires a valid API key\");\n credential(apiKey);\n const base = new URL(options.baseUrl ?? \"https://api.openai.com/v1\");\n if ((base.protocol !== \"https:\" && base.protocol !== \"http:\") || base.username || base.password || base.search || base.hash) {\n throw new TypeError(\"OpenAI baseUrl must be an HTTP(S) URL without credentials, query or fragment\");\n }\n const baseUrl = base.href.endsWith(\"/\") ? base.href.slice(0, -1) : base.href;\n const configured = options.models.map(model => Object.freeze({\n ...model,\n ...(model.aliases === undefined ? {} : { aliases: Object.freeze([...model.aliases]) }),\n ...(model.attachmentTypes === undefined ? {} : { attachmentTypes: Object.freeze([...model.attachmentTypes]) }),\n }));\n const byId = new Map<string, OpenAiModel>();\n for (const model of configured) {\n if (!model.id || byId.has(model.id)) throw new TypeError(`OpenAI duplicate or empty model id: ${model.id}`);\n if (![\"chat\", \"images\", \"videos\"].includes(model.endpoint)) throw new TypeError(`OpenAI invalid endpoint for model: ${model.id}`);\n if (model.endpoint === \"images\" && !acceptsMimeType([\"image/png\", \"image/jpeg\", \"image/webp\"], model.outputType ?? \"\")) throw new TypeError(\"Image models require outputType image/png, image/jpeg or image/webp\");\n if (model.endpoint === \"videos\" && !acceptsMimeType([\"video/mp4\"], model.outputType ?? \"\")) throw new TypeError(\"Video models require outputType video/mp4\");\n if (model.endpoint === \"chat\" && model.outputType !== undefined && !acceptsMimeType([\"text/*\"], model.outputType)) throw new TypeError(\"Chat models require a text outputType\");\n byId.set(model.id, model);\n }\n return {\n name: \"openai\", models: Object.freeze(configured),\n async *complete(request) {\n request.signal.throwIfAborted();\n const model = byId.get(request.model);\n if (!model) throw new Error(`Unknown model: ${request.model}`);\n if (request.attachments.some(attachment => !acceptsMimeType([\"image/*\"], attachment.mimeType))) {\n throw new Error(`OpenAI ${model.endpoint} endpoint only supports image attachments`);\n }\n if (model.endpoint === \"videos\" && request.attachments.length > 1) throw new Error(\"OpenAI videos accepts only one input_reference image\");\n if (request.attachments.reduce((size, file) => size + file.bytes.byteLength, 0) > limits.maxRequestBytes) throw new RangeError(\"Provider request byte limit exceeded\");\n if (model.endpoint !== \"chat\" && request.system !== undefined) throw new TypeError(\"System prompts are supported only by chat models\");\n const reserved = model.endpoint === \"chat\" ? [\"model\", \"messages\", \"stream\"]\n : model.endpoint === \"images\" ? [\"model\", \"prompt\", \"image\", \"image[]\"] : [\"model\", \"prompt\", \"input_reference\"];\n for (const key of Object.keys(request.options)) {\n if (reserved.includes(key)) throw new Error(`OpenAI option ${key} is controlled by the provider`);\n }\n const send = (path: string, method: string, body?: Pick<HttpRequest, \"body\" | \"headers\">) => openAiResponse(transport, {\n url: `${baseUrl}${path}`, method, signal: request.signal,\n ...body, headers: [[\"authorization\", `Bearer ${apiKey}`], ...(body?.headers ?? [])],\n });\n if (model.endpoint === \"chat\") {\n const messages: unknown[] = [];\n if (request.system !== undefined) messages.push({ role: \"system\", content: request.system });\n messages.push({ role: \"user\", content: request.attachments.length === 0 ? request.prompt : [\n { type: \"text\", text: request.prompt },\n ...request.attachments.map(attachment => ({ type: \"image_url\", image_url: { url: `data:${attachment.mimeType};base64,${base64(attachment.bytes)}` } })),\n ] });\n for await (const response of send(\"/chat/completions\", \"POST\", jsonBody({ ...jsonOptions(request.options, \"chat\"), model: request.model, messages, stream: true }, limits.maxRequestBytes))) {\n yield* openAiChat(response.body, request.signal, limits.maxEventBytes, limits.maxResponseBytes);\n }\n } else if (model.endpoint === \"images\") {\n const editing = request.attachments.length > 0;\n const outputFormat = model.outputType!.split(\";\", 1)[0]!.trim().toLowerCase().slice(\"image/\".length);\n if (request.options.output_format !== undefined && request.options.output_format !== outputFormat) throw new TypeError(\"output_format conflicts with model outputType\");\n const values: Record<string, string | number | boolean> = { ...jsonOptions(request.options, \"images\"), output_format: outputFormat, model: request.model, prompt: request.prompt };\n if (values.stream === true) throw new TypeError(\"Image event streaming is not supported by this reference provider\");\n const body = editing ? multipart({ ...values, ...request.options }, request.attachments.map(file => ({ ...file, field: \"image[]\" })), limits.maxRequestBytes) : jsonBody(values, limits.maxRequestBytes);\n for await (const response of send(editing ? \"/images/edits\" : \"/images/generations\", \"POST\", body)) {\n const value = await openAiJson(response, request.signal, limits.maxResponseBytes);\n if (value.error != null) throw new Error(`OpenAI: ${openAiError(value.error) ?? \"image generation failed\"}`);\n if (!Array.isArray(value.data) || value.data.length === 0) throw new Error(\"OpenAI image response has no images\");\n for (const item of value.data) {\n request.signal.throwIfAborted();\n if (!openAiRecord(item)) throw new Error(\"OpenAI image response contains a malformed image\");\n yield imageBytes(item.b64_json);\n }\n }\n } else {\n let current: { id: string; status: string } | undefined;\n for await (const response of send(\"/videos\", \"POST\", multipart({ ...request.options, model: request.model, prompt: request.prompt }, request.attachments.map(file => ({ ...file, field: \"input_reference\" })), limits.maxRequestBytes))) {\n current = job(await openAiJson(response, request.signal, limits.maxResponseBytes));\n }\n if (!current) throw new Error(\"OpenAI video creation returned no job\");\n const path = `/videos/${encodeURIComponent(current.id)}`;\n let polls = 0;\n while (current.status !== \"completed\") {\n if (polls++ >= limits.maxPolls) throw new RangeError(\"Provider video polling limit exceeded\");\n await waitForPoll(request.signal, limits.pollIntervalMs);\n for await (const response of send(path, \"GET\")) current = job(await openAiJson(response, request.signal, limits.maxResponseBytes), current.id);\n }\n for await (const response of send(`${path}/content`, \"GET\")) {\n const contentType = response.headers.find(([name]) => name.toLowerCase() === \"content-type\")?.[1].split(\";\")[0]?.trim().toLowerCase();\n if (contentType && contentType !== \"application/octet-stream\" && !contentType.startsWith(\"video/\")) {\n throw new Error(`OpenAI video download has unexpected content type: ${contentType}`);\n }\n let received = false;\n for await (const chunk of openAiBytes(response.body, request.signal, limits.maxResponseBytes)) {\n if (chunk.byteLength === 0) continue;\n received = true;\n yield chunk;\n }\n if (!received) throw new Error(\"OpenAI video download is empty\");\n }\n }\n },\n };\n}\n", "import type { ByteSource, InvocationCleanup } from \"../../contracts/index.js\";\nimport type { HttpRequest, HttpResponse, HttpTransport } from \"../network/types.js\";\n\nexport function openAiAbortable<Value>(pending: PromiseLike<Value>, signal: AbortSignal): Promise<Value> {\n return new Promise((resolve, reject) => {\n const abort = () => { signal.removeEventListener(\"abort\", abort); reject(signal.reason); };\n signal.addEventListener(\"abort\", abort, { once: true });\n Promise.resolve(pending).then(value => {\n signal.removeEventListener(\"abort\", abort);\n if (signal.aborted) reject(signal.reason);\n else resolve(value);\n }, error => {\n signal.removeEventListener(\"abort\", abort);\n reject(signal.aborted ? signal.reason : error);\n });\n if (signal.aborted) abort();\n });\n}\n\nexport async function* openAiBytes(source: ByteSource, signal: AbortSignal, limit = 64 * 1024 * 1024): ByteSource {\n signal.throwIfAborted();\n const iterator = source[Symbol.asyncIterator]();\n let failed = false, finished = false;\n let size = 0;\n try {\n while (true) {\n signal.throwIfAborted();\n const next = await openAiAbortable(iterator.next(), signal);\n if (next.done) { finished = true; return; }\n if (!(next.value instanceof Uint8Array)) throw new Error(\"OpenAI returned a non-byte response chunk\");\n size += next.value.byteLength;\n if (size > limit) throw new RangeError(\"Provider response byte limit exceeded\");\n yield Uint8Array.from(next.value);\n }\n } catch (error) {\n failed = true;\n throw signal.aborted ? signal.reason : error;\n } finally {\n if (!finished) {\n const returned = Promise.resolve().then(() => iterator.return?.());\n if (signal.aborted) void returned.catch(() => undefined);\n else await openAiAbortable(returned, signal).catch(error => { if (!failed) throw error; });\n }\n }\n}\n\nexport async function openAiJson(response: HttpResponse, signal: AbortSignal, maxBytes = 64 * 1024 * 1024): Promise<Record<string, unknown>> {\n const decoder = new TextDecoder(\"utf-8\", { fatal: true });\n let text = \"\", length = 0;\n for await (const chunk of openAiBytes(response.body, signal, maxBytes)) {\n length += chunk.byteLength;\n if (length > maxBytes) throw new Error(\"OpenAI JSON response exceeds buffer limit\");\n text += decoder.decode(chunk, { stream: true });\n }\n text += decoder.decode();\n let value: unknown;\n try { value = JSON.parse(text); }\n catch { throw new Error(\"OpenAI returned malformed JSON\"); }\n if (!openAiRecord(value)) throw new Error(\"OpenAI returned a non-object JSON response\");\n return value;\n}\n\nexport function openAiRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function openAiError(value: unknown): string | undefined {\n if (typeof value === \"string\" && value) return value.slice(0, 1024);\n if (openAiRecord(value) && typeof value.message === \"string\") return value.message.slice(0, 1024);\n return undefined;\n}\n\nexport async function* openAiResponse(transport: HttpTransport, input: HttpRequest): AsyncIterable<HttpResponse> {\n input.signal.throwIfAborted();\n const cleanups = new Map<InvocationCleanup, { run: InvocationCleanup; pending?: Promise<void> }>();\n let closed = false, failed = false;\n const run = (cleanup: { run: InvocationCleanup; pending?: Promise<void> }): Promise<void> => {\n cleanup.pending ??= Promise.resolve().then(cleanup.run);\n return cleanup.pending;\n };\n const register = (cleanup: InvocationCleanup, receiver?: HttpResponse): void => {\n if (cleanups.has(cleanup)) return;\n const entry = { run: () => cleanup.call(receiver) };\n cleanups.set(cleanup, entry);\n if (closed) void run(entry).catch(() => undefined);\n };\n const close = async (): Promise<void> => {\n closed = true;\n const results = await Promise.allSettled([...cleanups.values()].map(run));\n const rejected = results.find(result => result.status === \"rejected\");\n if (rejected?.status === \"rejected\") throw rejected.reason;\n };\n const abort = () => { void close().catch(() => undefined); };\n input.signal.addEventListener(\"abort\", abort, { once: true });\n try {\n const pending = Promise.resolve().then(() => {\n input.signal.throwIfAborted();\n return transport({ ...input, registerCleanup: register });\n }).then(response => {\n register(response.dispose, response);\n return response;\n });\n const response = await openAiAbortable(pending, input.signal);\n if (!Number.isInteger(response.status) || response.status < 200 || response.status >= 300) {\n let detail: string | undefined;\n try { detail = openAiError((await openAiJson(response, input.signal, 64 * 1024)).error); }\n catch { input.signal.throwIfAborted(); }\n throw new Error(`OpenAI HTTP ${response.status}${detail ? `: ${detail}` : \"\"}`);\n }\n yield response;\n } catch (error) {\n failed = true;\n throw input.signal.aborted ? input.signal.reason : error;\n } finally {\n input.signal.removeEventListener(\"abort\", abort);\n await close().catch(error => { if (!failed && !input.signal.aborted) throw error; });\n if (!failed) input.signal.throwIfAborted();\n }\n}\n", "import type { ByteSource } from \"../../contracts/index.js\";\nimport { openAiBytes, openAiError, openAiRecord } from \"./openai-http.js\";\n\nasync function* events(source: ByteSource, signal: AbortSignal, limit: number, responseLimit: number): AsyncIterable<string> {\n const decoder = new TextDecoder(\"utf-8\", { fatal: true });\n let line = \"\", data: string[] = [], size = 0, afterCarriageReturn = false;\n for await (const chunk of openAiBytes(source, signal, responseLimit)) {\n const text = decoder.decode(chunk, { stream: true });\n for (const character of text) {\n if (afterCarriageReturn && character === \"\\n\") { afterCarriageReturn = false; continue; }\n afterCarriageReturn = character === \"\\r\";\n const codePoint = character.codePointAt(0)!;\n size += codePoint < 0x80 ? 1 : codePoint < 0x800 ? 2 : codePoint < 0x10000 ? 3 : 4;\n if (size > limit) throw new Error(\"OpenAI SSE event exceeds buffer limit: event byte limit exceeded\");\n if (character !== \"\\n\" && character !== \"\\r\") {\n line += character;\n continue;\n }\n if (line === \"\") {\n if (data.length > 0) yield data.join(\"\\n\");\n data = [];\n size = 0;\n } else if (line === \"data\" || line.startsWith(\"data:\")) {\n const value = line.slice(5);\n data.push(value.startsWith(\" \") ? value.slice(1) : value);\n }\n line = \"\";\n }\n }\n decoder.decode();\n throw new Error(\"OpenAI chat stream ended before [DONE]\");\n}\n\nexport async function* openAiChat(source: ByteSource, signal: AbortSignal, limit = 1024 * 1024, responseLimit = 64 * 1024 * 1024): AsyncIterable<string> {\n for await (const data of events(source, signal, limit, responseLimit)) {\n signal.throwIfAborted();\n if (data.trim() === \"[DONE]\") return;\n let parsed: unknown;\n try { parsed = JSON.parse(data); }\n catch { throw new Error(\"OpenAI returned malformed SSE JSON\"); }\n if (!openAiRecord(parsed)) throw new Error(\"OpenAI returned a non-object SSE event\");\n if (parsed.error != null) throw new Error(`OpenAI: ${openAiError(parsed.error) ?? \"stream failed\"}`);\n if (!Array.isArray(parsed.choices)) throw new Error(\"OpenAI SSE event has no choices\");\n for (const choice of parsed.choices) {\n signal.throwIfAborted();\n if (!openAiRecord(choice) || !openAiRecord(choice.delta)) throw new Error(\"OpenAI SSE event has a malformed delta\");\n const content = choice.delta.content;\n if (content != null && typeof content !== \"string\") throw new Error(\"OpenAI SSE delta.content is not text\");\n if (typeof content === \"string\" && content.length > 0) yield content;\n }\n }\n}\n", "import { classify } from \"../file/classify.js\";\n\nconst extensions: Readonly<Record<string, string>> = {\n png: \"image/png\", jpg: \"image/jpeg\", jpeg: \"image/jpeg\", gif: \"image/gif\", webp: \"image/webp\",\n avif: \"image/avif\", heic: \"image/heic\", heif: \"image/heif\", bmp: \"image/bmp\", tif: \"image/tiff\", tiff: \"image/tiff\", svg: \"image/svg+xml\",\n mp3: \"audio/mpeg\", wav: \"audio/wav\", ogg: \"audio/ogg\", oga: \"audio/ogg\", opus: \"audio/ogg\", flac: \"audio/flac\", aac: \"audio/aac\", m4a: \"audio/mp4\", aiff: \"audio/aiff\",\n mp4: \"video/mp4\", m4v: \"video/mp4\", mov: \"video/quicktime\", webm: \"video/webm\", mkv: \"video/x-matroska\", avi: \"video/x-msvideo\", ogv: \"video/ogg\", mpeg: \"video/mpeg\", mpg: \"video/mpeg\",\n pdf: \"application/pdf\", json: \"application/json\", zip: \"application/zip\", gz: \"application/gzip\",\n txt: \"text/plain\", md: \"text/markdown\", csv: \"text/csv\", html: \"text/html\", xml: \"application/xml\",\n};\n\nfunction ebmlInteger(bytes: Uint8Array, offset: number, retainMarker = false): { value: number; width: number } | undefined {\n const first = bytes[offset];\n if (!first) return undefined;\n let marker = 128, width = 1;\n while (!(first & marker)) { marker >>= 1; width++; }\n if (offset + width > bytes.length) return undefined;\n let value = retainMarker ? first : first & (marker - 1);\n for (let index = 1; index < width; index++) value = value * 256 + bytes[offset + index]!;\n if (!Number.isSafeInteger(value) || !retainMarker && value === 2 ** (7 * width) - 1) return undefined;\n return { value, width };\n}\n\nfunction ebmlMimeType(bytes: Uint8Array): string | undefined {\n const header = ebmlInteger(bytes, 4);\n if (!header) return undefined;\n let offset = 4 + header.width;\n const end = Math.min(bytes.length, offset + header.value, 4096);\n while (offset < end) {\n const identifier = ebmlInteger(bytes, offset, true);\n if (!identifier) return undefined;\n offset += identifier.width;\n const size = ebmlInteger(bytes, offset);\n if (!size) return undefined;\n offset += size.width;\n if (size.value > end - offset) return undefined;\n if (identifier.value === 0x4282) {\n const docType = new TextDecoder().decode(bytes.subarray(offset, offset + size.value)).split(\"\\0\", 1)[0];\n if (docType === \"webm\") return \"video/webm\";\n if (docType === \"matroska\") return \"video/x-matroska\";\n return undefined;\n }\n offset += size.value;\n }\n return undefined;\n}\n\nexport function sniffMimeType(path: string, bytes: Uint8Array): string {\n const matches = (signature: readonly number[], offset = 0): boolean =>\n bytes.length >= offset + signature.length && signature.every((byte, index) => bytes[offset + index] === byte);\n const ascii = (offset: number, text: string): boolean =>\n bytes.length >= offset + text.length && [...text].every((character, index) => bytes[offset + index] === character.charCodeAt(0));\n if (matches([137, 80, 78, 71, 13, 10, 26, 10])) return \"image/png\";\n if (matches([255, 216, 255])) return \"image/jpeg\";\n if (ascii(0, \"GIF87a\") || ascii(0, \"GIF89a\")) return \"image/gif\";\n if (ascii(0, \"RIFF\")) {\n if (ascii(8, \"WEBP\")) return \"image/webp\";\n if (ascii(8, \"WAVE\")) return \"audio/wav\";\n if (ascii(8, \"AVI \")) return \"video/x-msvideo\";\n }\n if (ascii(0, \"fLaC\")) return \"audio/flac\";\n if (ascii(0, \"OggS\")) {\n const packet = 27 + (bytes[26] ?? 0);\n if (bytes[26] && bytes[packet] === 0x80 && ascii(packet + 1, \"theora\")) return \"video/ogg\";\n return \"audio/ogg\";\n }\n if (ascii(0, \"ID3\") || bytes.length >= 2 && bytes[0] === 255 && (bytes[1]! & 0xe0) === 0xe0 && (bytes[1]! & 0x06) !== 0) return \"audio/mpeg\";\n if (bytes.length >= 2 && bytes[0] === 255 && (bytes[1]! & 0xf6) === 0xf0) return \"audio/aac\";\n if (ascii(0, \"FORM\") && (ascii(8, \"AIFF\") || ascii(8, \"AIFC\"))) return \"audio/aiff\";\n if (ascii(4, \"ftyp\")) {\n if (ascii(8, \"avif\") || ascii(8, \"avis\")) return \"image/avif\";\n if (ascii(8, \"heic\") || ascii(8, \"heix\")) return \"image/heic\";\n if (ascii(8, \"mif1\") || ascii(8, \"msf1\")) return \"image/heif\";\n if (ascii(8, \"M4A \") || ascii(8, \"M4B \")) return \"audio/mp4\";\n if (ascii(8, \"qt \")) return \"video/quicktime\";\n return \"video/mp4\";\n }\n if (matches([0x1a, 0x45, 0xdf, 0xa3])) {\n const mimeType = ebmlMimeType(bytes);\n if (mimeType) return mimeType;\n }\n if (ascii(0, \"%PDF-\")) return \"application/pdf\";\n if (matches([0x50, 0x4b, 3, 4]) || matches([0x50, 0x4b, 5, 6])) return \"application/zip\";\n if (matches([0x1f, 0x8b])) return \"application/gzip\";\n if (matches([0x49, 0x49, 42, 0]) || matches([0x4d, 0x4d, 0, 42])) return \"image/tiff\";\n if (ascii(0, \"BM\")) return \"image/bmp\";\n const prefix = bytes.subarray(0, 512);\n const classified = classify(prefix, bytes.length <= prefix.length).mime;\n if (![\"application/octet-stream\", \"text/plain\", \"inode/x-empty\"].includes(classified)) return classified;\n const filename = path.slice(path.lastIndexOf(\"/\") + 1);\n const dot = filename.lastIndexOf(\".\");\n const extension = dot < 0 ? \"\" : filename.slice(dot + 1).toLowerCase();\n return Object.hasOwn(extensions, extension) ? extensions[extension]! : classified === \"inode/x-empty\" ? \"application/octet-stream\" : classified;\n}\n\nexport function acceptsMimeType(types: readonly string[], mimeType: string): boolean {\n if ([...mimeType].some(character => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127)) return false;\n const mime = mimeType.split(\";\", 1)[0]!.trim().toLowerCase();\n const parts = mime.split(\"/\");\n if (parts.length !== 2 || parts.some(part => !part || [...part].some(character =>\n !(character >= \"a\" && character <= \"z\" || character >= \"0\" && character <= \"9\" || \"!#$%&'+-.^_`|~\".includes(character))))) return false;\n return types.some(type => {\n const accepted = type.toLowerCase();\n return accepted === mime || accepted.endsWith(\"/*\") && accepted.slice(0, -2) === parts[0];\n });\n}\n", "export interface Classification {\n readonly description: string;\n readonly mime: string;\n readonly encoding: string;\n}\n\nexport const binary: Classification = { description: \"data\", mime: \"application/octet-stream\", encoding: \"binary\" };\n\nfunction result(description: string, mime: string, encoding = \"binary\"): Classification {\n return { description, mime, encoding };\n}\n\nfunction matches(bytes: Uint8Array, signature: readonly number[], offset = 0): boolean {\n return bytes.length >= offset + signature.length && signature.every((value, index) => bytes[offset + index] === value);\n}\n\nfunction ascii(bytes: Uint8Array, start: number, length: number): string {\n return String.fromCharCode(...bytes.subarray(start, start + length));\n}\n\nfunction magic(bytes: Uint8Array): Classification | undefined {\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n if (bytes.length >= 33 && matches(bytes, [137, 80, 78, 71, 13, 10, 26, 10]) && view.getUint32(8) === 13 && ascii(bytes, 12, 4) === \"IHDR\"\n && view.getUint32(16) > 0 && view.getUint32(20) > 0 && bytes[26] === 0 && bytes[27] === 0 && bytes[28]! <= 1) {\n const allowed: Record<number, readonly number[]> = { 0: [1, 2, 4, 8, 16], 2: [8, 16], 3: [1, 2, 4, 8], 4: [8, 16], 6: [8, 16] };\n if (allowed[bytes[25]!]?.includes(bytes[24]!)) return result(\"PNG image data\", \"image/png\");\n }\n if (bytes.length >= 13 && [\"GIF87a\", \"GIF89a\"].includes(ascii(bytes, 0, 6)) && view.getUint16(6, true) > 0 && view.getUint16(8, true) > 0) return result(\"GIF image data\", \"image/gif\");\n if (bytes.length >= 4 && matches(bytes, [255, 216, 255]) && bytes[3]! >= 192 && bytes[3]! <= 254) return result(\"JPEG image data\", \"image/jpeg\");\n if (bytes.length >= 20 && ascii(bytes, 0, 4) === \"RIFF\" && ascii(bytes, 8, 4) === \"WEBP\" && [\"VP8 \", \"VP8L\", \"VP8X\"].includes(ascii(bytes, 12, 4)) && view.getUint32(4, true) >= 12) return result(\"WebP image data\", \"image/webp\");\n if (bytes.length >= 8 && (matches(bytes, [73, 73, 42, 0]) || matches(bytes, [77, 77, 0, 42]))) return result(\"TIFF image data\", \"image/tiff\");\n if (bytes.length >= 26 && ascii(bytes, 0, 2) === \"BM\" && [12, 40, 52, 56, 108, 124].includes(view.getUint32(14, true))) return result(\"PC bitmap image data\", \"image/bmp\");\n if (bytes.length >= 22 && matches(bytes, [0, 0, 1, 0]) && view.getUint16(4, true) > 0) return result(\"MS Windows icon resource\", \"image/vnd.microsoft.icon\");\n if (/^%PDF-[12]\\.[0-9](?:\\r|\\n|\\s)/u.test(ascii(bytes, 0, 16))) return result(\"PDF document\", \"application/pdf\");\n if (bytes.length >= 10 && matches(bytes, [31, 139, 8]) && (bytes[3]! & 224) === 0) return result(\"gzip compressed data\", \"application/gzip\");\n if (bytes.length >= 10 && ascii(bytes, 0, 3) === \"BZh\" && bytes[3]! >= 49 && bytes[3]! <= 57 && (ascii(bytes, 4, 6) === \"1AY&SY\" || matches(bytes, [23, 114, 69, 56, 80, 144], 4))) return result(\"bzip2 compressed data\", \"application/x-bzip2\");\n if (bytes.length >= 12 && matches(bytes, [253, 55, 122, 88, 90, 0]) && bytes[6] === 0 && bytes[7]! <= 15) return result(\"XZ compressed data\", \"application/x-xz\");\n if (bytes.length >= 6 && matches(bytes, [40, 181, 47, 253]) && (bytes[4]! & 24) === 0) return result(\"Zstandard compressed data\", \"application/zstd\");\n if ((bytes.length >= 30 && matches(bytes, [80, 75, 3, 4])) || (bytes.length >= 22 && matches(bytes, [80, 75, 5, 6]))) return result(\"Zip archive data\", \"application/zip\");\n if (bytes.length >= 32 && matches(bytes, [55, 122, 188, 175, 39, 28])) return result(\"7-zip archive data\", \"application/x-7z-compressed\");\n if ((bytes.length >= 14 && matches(bytes, [82, 97, 114, 33, 26, 7, 0])) || (bytes.length >= 16 && matches(bytes, [82, 97, 114, 33, 26, 7, 1, 0]))) return result(\"RAR archive data\", \"application/x-rar\");\n if (bytes.length >= 512 && ascii(bytes, 257, 5) === \"ustar\") {\n const checksum = ascii(bytes, 148, 8).replace(/\\0.*$/u, \"\").trim();\n if (/^[0-7]+$/u.test(checksum)) {\n let total = 0;\n for (let index = 0; index < 512; index++) total += index >= 148 && index < 156 ? 32 : bytes[index]!;\n if (parseInt(checksum, 8) === total) return result(\"POSIX tar archive\", \"application/x-tar\");\n }\n }\n if (bytes.length >= 52 && matches(bytes, [127, 69, 76, 70]) && [1, 2].includes(bytes[4]!) && [1, 2].includes(bytes[5]!) && bytes[6] === 1 && (bytes[4] === 1 || bytes.length >= 64)) {\n const type = view.getUint16(16, bytes[5] === 1);\n const mime = type === 1 ? \"application/x-object\" : type === 2 ? \"application/x-executable\" : type === 3 ? \"application/x-sharedlib\" : \"application/octet-stream\";\n return result(`ELF ${bytes[4] === 1 ? \"32\" : \"64\"}-bit ${type === 2 ? \"executable\" : type === 3 ? \"shared object\" : \"object\"}`, mime);\n }\n if (bytes.length >= 64 && ascii(bytes, 0, 2) === \"MZ\") {\n const offset = view.getUint32(60, true);\n if (offset >= 64 && offset <= bytes.length - 24 && matches(bytes, [80, 69, 0, 0], offset)) return result(\"PE executable\", \"application/vnd.microsoft.portable-executable\");\n return result(\"DOS executable\", \"application/x-dosexec\");\n }\n if (bytes.length >= 8 && matches(bytes, [0, 97, 115, 109, 1, 0, 0, 0])) return result(\"WebAssembly binary module\", \"application/wasm\");\n if (bytes.length >= 100 && ascii(bytes, 0, 16) === \"SQLite format 3\\0\") {\n const size = view.getUint16(16);\n if ((size === 1 || (size >= 512 && size <= 32768 && (size & (size - 1)) === 0)) && [1, 2].includes(bytes[18]!) && [1, 2].includes(bytes[19]!) && matches(bytes, [64, 32, 32], 21)) return result(\"SQLite 3.x database\", \"application/vnd.sqlite3\");\n }\n if (bytes.length >= 512 && matches(bytes, [208, 207, 17, 224, 161, 177, 26, 225]) && matches(bytes, [254, 255], 28)) return result(\"OLE Compound Document\", \"application/x-ole-storage\");\n return undefined;\n}\n\nexport function classify(bytes: Uint8Array, complete: boolean): Classification {\n if (!bytes.length) return complete ? result(\"empty\", \"inode/x-empty\") : binary;\n const recognized = magic(bytes);\n if (recognized) return recognized;\n if (matches(bytes, [255, 254, 0, 0]) || matches(bytes, [0, 0, 254, 255])) return binary;\n let encoding = \"utf-8\";\n let bom = 0;\n if (matches(bytes, [239, 187, 191])) bom = 3;\n else if (matches(bytes, [255, 254])) { encoding = \"utf-16le\"; bom = 2; }\n else if (matches(bytes, [254, 255])) { encoding = \"utf-16be\"; bom = 2; }\n let text: string;\n try { text = new TextDecoder(encoding, { fatal: true }).decode(bytes, { stream: !complete }); }\n catch { return binary; }\n if (!text.length && bytes.length > bom) return binary;\n for (const character of text) {\n const code = character.codePointAt(0)!;\n if ((code < 32 && ![8, 9, 10, 12, 13, 27].includes(code)) || (code >= 127 && code <= 159)) return binary;\n }\n if (!bom && encoding === \"utf-8\" && bytes.every(value => value < 128)) encoding = \"us-ascii\";\n if (complete && /^[\\x20\\t\\r\\n]*(?:\\{|\\[)/u.test(text)) {\n try { JSON.parse(text); return result(\"JSON text data\", \"application/json\", encoding); } catch {}\n }\n const description = encoding === \"us-ascii\" ? \"ASCII text\" : encoding === \"utf-8\" ? \"Unicode text, UTF-8\" : `Unicode text, ${encoding === \"utf-16le\" ? \"UTF-16, little-endian\" : \"UTF-16, big-endian\"}`;\n return result(description, \"text/plain\", encoding);\n}\n", "import type { ByteSource } from \"../../../contracts/io.js\";\nimport type { HttpHeaders } from \"../../network/types.js\";\n\nexport interface LlmProviderLimits {\n readonly maxRequestBytes: number;\n readonly maxResponseBytes: number;\n readonly maxEventBytes: number;\n readonly maxPolls: number;\n readonly pollIntervalMs: number;\n}\n\nexport function providerLimits(input: Partial<LlmProviderLimits> = {}): LlmProviderLimits {\n const limits = { maxRequestBytes: 64 * 1024 * 1024, maxResponseBytes: 64 * 1024 * 1024, maxEventBytes: 1024 * 1024, maxPolls: 120, pollIntervalMs: 1000, ...input };\n for (const [name, value] of Object.entries(limits)) {\n if (!Number.isSafeInteger(value) || value < (name === \"maxPolls\" || name === \"pollIntervalMs\" ? 0 : 1)) throw new RangeError(`Invalid provider limit: ${name}`);\n }\n return Object.freeze(limits);\n}\n\nexport function credential(value: string): string {\n if (typeof value !== \"string\" || value.length === 0 || [...value].some(char => char.charCodeAt(0) < 32 || char.charCodeAt(0) === 127)) throw new TypeError(\"Invalid provider apiKey\");\n return value;\n}\n\nexport function jsonBody(value: unknown, limit: number): { body: ByteSource; headers: HttpHeaders } {\n const text = JSON.stringify(value);\n if (text.length > limit) throw new RangeError(\"Provider request byte limit exceeded\");\n const bytes = new TextEncoder().encode(text);\n if (bytes.length > limit) throw new RangeError(\"Provider request byte limit exceeded\");\n return { body: (async function* () { yield bytes; })(), headers: [[\"content-type\", \"application/json\"]] };\n}\n\nexport function multipart(options: Record<string, unknown>, files: readonly { field: string; mimeType: string; bytes: Uint8Array }[], limit: number): { body: ByteSource; headers: HttpHeaders } {\n const encoder = new TextEncoder();\n const parts: Uint8Array[] = [];\n const entries = Object.entries(options).map(([name, value]) => {\n if (![...name].every(char => \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\".includes(char))) throw new TypeError(\"Invalid multipart option name\");\n return [name, String(value)] as const;\n });\n let size = files.reduce((sum, file) => sum + file.bytes.length, 0);\n for (const [, value] of entries) {\n if (value.length > limit) throw new RangeError(\"Provider request byte limit exceeded\");\n size += encoder.encode(value).length;\n }\n if (size > limit) throw new RangeError(\"Provider request byte limit exceeded\");\n let boundary = \"safe-bash-llm-boundary\";\n const contains = (bytes: Uint8Array, needle: Uint8Array): boolean => {\n outer: for (let start = 0; start <= bytes.length - needle.length; start++) {\n for (let index = 0; index < needle.length; index++) if (bytes[start + index] !== needle[index]) continue outer;\n return true;\n }\n return false;\n };\n let attempts = 0;\n while (entries.some(([, value]) => value.includes(boundary)) || files.some(file => contains(file.bytes, encoder.encode(boundary)))) {\n if (attempts++ === 32) throw new RangeError(\"Provider multipart boundary collision limit exceeded\");\n boundary += \"x\";\n }\n for (const [name, value] of entries) parts.push(encoder.encode(`--${boundary}\\r\\nContent-Disposition: form-data; name=\"${name}\"\\r\\n\\r\\n${value}\\r\\n`));\n for (const [index, file] of files.entries()) {\n if ([...file.mimeType].some(char => char.charCodeAt(0) < 32 || char.charCodeAt(0) > 126)) throw new TypeError(\"Invalid attachment MIME type\");\n parts.push(encoder.encode(`--${boundary}\\r\\nContent-Disposition: form-data; name=\"${file.field}\"; filename=\"attachment-${index}\"\\r\\nContent-Type: ${file.mimeType}\\r\\n\\r\\n`), Uint8Array.from(file.bytes), encoder.encode(\"\\r\\n\"));\n }\n parts.push(encoder.encode(`--${boundary}--\\r\\n`));\n if (parts.reduce((sum, part) => sum + part.length, 0) > limit) throw new RangeError(\"Provider request byte limit exceeded\");\n return { body: (async function* () { yield* parts; })(), headers: [[\"content-type\", `multipart/form-data; boundary=${boundary}`]] };\n}\n", "import type { HttpTransport } from \"../network/types.js\";\nimport type { LlmModel, LlmProvider } from \"./types.js\";\nimport { streamElevenLabs } from \"./elevenlabs-stream.js\";\nimport { acceptsMimeType } from \"./mime.js\";\nimport { credential, providerLimits, jsonBody, type LlmProviderLimits } from \"./providers/shared.js\";\n\nexport interface ElevenLabsModel extends LlmModel {\n readonly endpoint: \"tts\" | \"music\";\n readonly defaultVoiceId?: string;\n}\n\nexport interface ElevenLabsProviderOptions {\n readonly transport: HttpTransport;\n readonly apiKey: string;\n readonly baseUrl?: string;\n readonly models: readonly ElevenLabsModel[];\n readonly limits?: Partial<LlmProviderLimits>;\n}\n\nconst outputFormats = new Map([\n [\"audio/mpeg\", \"mp3_44100_128\"],\n [\"audio/wav\", \"wav_44100\"],\n [\"audio/x-wav\", \"wav_44100\"],\n [\"audio/pcm\", \"pcm_44100\"],\n [\"audio/basic\", \"ulaw_8000\"],\n [\"audio/opus\", \"opus_48000_128\"],\n [\"audio/ogg\", \"opus_48000_128\"],\n]);\n\nconst optionTypes = {\n tts: new Map([\n [\"stability\", \"number\"], [\"similarity_boost\", \"number\"], [\"style\", \"number\"],\n [\"speed\", \"number\"], [\"use_speaker_boost\", \"boolean\"],\n ]),\n music: new Map([\n [\"music_length_ms\", \"integer\"], [\"seed\", \"integer\"], [\"force_instrumental\", \"boolean\"],\n [\"respect_sections_durations\", \"boolean\"], [\"store_for_inpainting\", \"boolean\"],\n [\"sign_with_c2pa\", \"boolean\"],\n ]),\n};\n\nfunction parseOptions(options: Readonly<Record<string, string>>, endpoint: ElevenLabsModel[\"endpoint\"]): Record<string, string | number | boolean> {\n return Object.fromEntries(Object.entries(options).map(([key, value]) => {\n const type = optionTypes[endpoint].get(key);\n if (!type) return [key, value];\n if (type === \"boolean\") {\n if (value === \"true\" || value === \"false\") return [key, value === \"true\"];\n } else {\n const number = value.trim() ? Number(value) : NaN;\n if (Number.isFinite(number) && (type !== \"integer\" || Number.isSafeInteger(number))) return [key, number];\n }\n throw new Error(`Invalid ElevenLabs option ${key}: expected ${type}`);\n }));\n}\n\nexport function createElevenLabsProvider(options: ElevenLabsProviderOptions): LlmProvider {\n const transport = options.transport;\n if (typeof transport !== \"function\") throw new TypeError(\"Provider transport is required\");\n const apiKey = credential(options.apiKey);\n const limits = providerLimits(options.limits);\n const baseUrl = new URL(options.baseUrl ?? \"https://api.elevenlabs.io\");\n if (![\"https:\", \"http:\"].includes(baseUrl.protocol) || baseUrl.username || baseUrl.password || baseUrl.search || baseUrl.hash) {\n throw new Error(\"Invalid ElevenLabs baseUrl: expected an HTTP(S) URL without credentials, query, or fragment\");\n }\n if (!baseUrl.pathname.endsWith(\"/\")) baseUrl.pathname += \"/\";\n const models = options.models.map(model => Object.freeze({\n ...model,\n ...(model.aliases === undefined ? {} : { aliases: Object.freeze([...model.aliases]) }),\n ...(model.attachmentTypes === undefined ? {} : { attachmentTypes: Object.freeze([...model.attachmentTypes]) }),\n }));\n const byId = new Map<string, { model: (typeof models)[number]; format: string }>();\n for (const model of models) {\n if (model.endpoint !== \"tts\" && model.endpoint !== \"music\") throw new Error(`Invalid ElevenLabs endpoint: ${model.endpoint}`);\n if (!model.outputType) throw new TypeError(\"ElevenLabs models require an audio outputType\");\n const mimeType = model.outputType.split(\";\", 1)[0]!.trim().toLowerCase();\n const format = outputFormats.get(mimeType);\n if (!format || !acceptsMimeType([mimeType], model.outputType) || (model.endpoint === \"music\" && format.startsWith(\"wav_\"))) {\n throw new Error(`Unsupported ElevenLabs outputType for ${model.endpoint}: ${model.outputType}`);\n }\n if (model.attachmentTypes?.length) throw new Error(`ElevenLabs model ${model.id} does not accept attachments`);\n if (!model.id || byId.has(model.id)) throw new Error(`Duplicate or empty ElevenLabs model: ${model.id}`);\n byId.set(model.id, { model, format });\n }\n return {\n name: \"elevenlabs\",\n models: Object.freeze(models),\n async *complete(request) {\n request.signal.throwIfAborted();\n const entry = byId.get(request.model);\n if (!entry) throw new Error(`Unknown model: ${request.model}`);\n const { model, format } = entry;\n if (request.attachments.length) throw new Error(`Model ${model.id} does not accept ${request.attachments[0]!.mimeType} attachments`);\n if (request.system !== undefined) throw new TypeError(\"ElevenLabs reference endpoints do not accept system prompts\");\n const { output_format: requestedFormat, ...requestOptions } = request.options;\n if (requestedFormat !== undefined && requestedFormat !== format) throw new TypeError(\"output_format conflicts with model outputType\");\n let path: string;\n let body: Record<string, unknown>;\n if (model.endpoint === \"tts\") {\n const { voice_id: suppliedVoice, ...settings } = requestOptions;\n const voice = suppliedVoice ?? model.defaultVoiceId;\n if (!voice?.trim()) throw new Error(`ElevenLabs model ${model.id} requires voice_id or a configured defaultVoiceId`);\n if (voice === \".\" || voice === \"..\") throw new Error(\"Invalid ElevenLabs voice_id: dot segments are not allowed\");\n path = `v1/text-to-speech/${encodeURIComponent(voice)}`;\n body = { text: request.prompt, model_id: model.id, voice_settings: parseOptions(settings, model.endpoint) };\n } else {\n path = \"v1/music\";\n body = { ...parseOptions(requestOptions, model.endpoint), prompt: request.prompt, model_id: model.id };\n }\n const url = new URL(path, baseUrl);\n url.searchParams.set(\"output_format\", format);\n const payload = jsonBody(body, limits.maxRequestBytes);\n yield* streamElevenLabs(transport, {\n url: url.href,\n method: \"POST\",\n headers: [[\"xi-api-key\", apiKey], ...payload.headers, [\"accept\", model.outputType!]],\n body: payload.body,\n signal: request.signal,\n }, limits.maxResponseBytes);\n },\n };\n}\n", "import type { HttpRequest, HttpResponse, HttpTransport } from \"../network/types.js\";\nimport type { InvocationCleanup } from \"../../contracts/index.js\";\n\nasync function abortable<Result>(operation: () => PromiseLike<Result>, signal: AbortSignal): Promise<Result> {\n signal.throwIfAborted();\n let onAbort!: () => void;\n const aborted = new Promise<never>((_resolve, reject) => {\n onAbort = () => reject(signal.reason);\n signal.addEventListener(\"abort\", onAbort, { once: true });\n });\n try {\n return await Promise.race([Promise.resolve().then(() => { signal.throwIfAborted(); return operation(); }), aborted]);\n } finally {\n signal.removeEventListener(\"abort\", onAbort);\n }\n}\n\nexport async function* streamElevenLabs(transport: HttpTransport, request: HttpRequest, limit = 64 * 1024 * 1024): AsyncGenerator<Uint8Array> {\n const { signal } = request;\n signal.throwIfAborted();\n let iterator: AsyncIterator<Uint8Array> | undefined;\n let finished = false;\n let failed = false;\n let closed = false;\n let size = 0;\n const cleanups = new Map<InvocationCleanup, { run: InvocationCleanup; pending?: Promise<void> }>();\n const runCleanup = (entry: { run: InvocationCleanup; pending?: Promise<void> }): Promise<void> => {\n return entry.pending ??= Promise.resolve().then(entry.run);\n };\n const register = (cleanup: InvocationCleanup, receiver?: HttpResponse): void => {\n if (cleanups.has(cleanup)) return;\n const entry = { run: () => cleanup.call(receiver) };\n cleanups.set(cleanup, entry);\n if (closed) void runCleanup(entry).catch(() => {});\n };\n const dispose = async (): Promise<void> => {\n closed = true;\n let seen = 0;\n const failures: unknown[] = [];\n while (seen < cleanups.size) {\n const entries = [...cleanups.values()].slice(seen);\n seen = cleanups.size;\n const results = await Promise.allSettled(entries.map(runCleanup));\n for (const result of results) if (result.status === \"rejected\") failures.push(result.reason);\n }\n if (failures.length) throw failures[0];\n };\n const close = async (): Promise<void> => {\n const failures: unknown[] = [];\n try { await dispose(); } catch (error) { failures.push(error); }\n if (!finished && iterator?.return) {\n const closing = Promise.resolve().then(() => iterator!.return!());\n if (signal.aborted) void closing.catch(() => {});\n else {\n try { await closing; } catch (error) { failures.push(error); }\n }\n }\n if (!failed) {\n signal.throwIfAborted();\n if (failures.length) throw failures[0];\n }\n };\n const onAbort = (): void => { void dispose().catch(() => {}); };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n try {\n const acquired = await abortable(async () => {\n signal.throwIfAborted();\n const response = await transport({ ...request, registerCleanup: register });\n register(response.dispose, response);\n if (signal.aborted) {\n await dispose();\n signal.throwIfAborted();\n }\n return response;\n }, signal);\n signal.throwIfAborted();\n if (acquired.status < 200 || acquired.status >= 300) throw new Error(`ElevenLabs HTTP ${acquired.status}: ${acquired.statusText}`);\n iterator = acquired.body[Symbol.asyncIterator]();\n while (true) {\n const next = await abortable(() => iterator!.next(), signal);\n signal.throwIfAborted();\n if (next.done) { finished = true; return; }\n if (!(next.value instanceof Uint8Array)) throw new TypeError(\"ElevenLabs audio stream must yield Uint8Array chunks\");\n size += next.value.byteLength;\n if (size > limit) throw new RangeError(\"Provider response byte limit exceeded\");\n yield Uint8Array.from(next.value);\n }\n } catch (error) {\n failed = true;\n throw error;\n } finally {\n signal.removeEventListener(\"abort\", onAbort);\n await close();\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;AAAA;;;ACAA;AAGO,SAAS,gBAAuB,SAA6B,QAAqC;AACvG,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,QAAQ,MAAM;AAAE,aAAO,oBAAoB,SAAS,KAAK;AAAG,aAAO,OAAO,MAAM;AAAA,IAAG;AACzF,WAAO,iBAAiB,SAAS,OAAO,EAAE,MAAM,KAAK,CAAC;AACtD,YAAQ,QAAQ,OAAO,EAAE,KAAK,WAAS;AACrC,aAAO,oBAAoB,SAAS,KAAK;AACzC,UAAI,OAAO,QAAS,QAAO,OAAO,MAAM;AAAA,UACnC,SAAQ,KAAK;AAAA,IACpB,GAAG,WAAS;AACV,aAAO,oBAAoB,SAAS,KAAK;AACzC,aAAO,OAAO,UAAU,OAAO,SAAS,KAAK;AAAA,IAC/C,CAAC;AACD,QAAI,OAAO,QAAS,OAAM;AAAA,EAC5B,CAAC;AACH;AAEA,gBAAuB,YAAY,QAAoB,QAAqB,QAAQ,KAAK,OAAO,MAAkB;AAChH,SAAO,eAAe;AACtB,QAAM,WAAW,OAAO,OAAO,aAAa,EAAE;AAC9C,MAAI,SAAS,OAAO,WAAW;AAC/B,MAAI,OAAO;AACX,MAAI;AACF,WAAO,MAAM;AACX,aAAO,eAAe;AACtB,YAAM,OAAO,MAAM,gBAAgB,SAAS,KAAK,GAAG,MAAM;AAC1D,UAAI,KAAK,MAAM;AAAE,mBAAW;AAAM;AAAA,MAAQ;AAC1C,UAAI,EAAE,KAAK,iBAAiB,YAAa,OAAM,IAAI,MAAM,2CAA2C;AACpG,cAAQ,KAAK,MAAM;AACnB,UAAI,OAAO,MAAO,OAAM,IAAI,WAAW,uCAAuC;AAC9E,YAAM,WAAW,KAAK,KAAK,KAAK;AAAA,IAClC;AAAA,EACF,SAAS,OAAO;AACd,aAAS;AACT,UAAM,OAAO,UAAU,OAAO,SAAS;AAAA,EACzC,UAAE;AACA,QAAI,CAAC,UAAU;AACb,YAAM,WAAW,QAAQ,QAAQ,EAAE,KAAK,MAAM,SAAS,SAAS,CAAC;AACjE,UAAI,OAAO,QAAS,MAAK,SAAS,MAAM,MAAM,MAAS;AAAA,UAClD,OAAM,gBAAgB,UAAU,MAAM,EAAE,MAAM,WAAS;AAAE,YAAI,CAAC,OAAQ,OAAM;AAAA,MAAO,CAAC;AAAA,IAC3F;AAAA,EACF;AACF;AAEA,eAAsB,WAAW,UAAwB,QAAqB,WAAW,KAAK,OAAO,MAAwC;AAC3I,QAAM,UAAU,IAAI,YAAY,SAAS,EAAE,OAAO,KAAK,CAAC;AACxD,MAAI,OAAO,IAAI,SAAS;AACxB,mBAAiB,SAAS,YAAY,SAAS,MAAM,QAAQ,QAAQ,GAAG;AACtE,cAAU,MAAM;AAChB,QAAI,SAAS,SAAU,OAAM,IAAI,MAAM,2CAA2C;AAClF,YAAQ,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AAAA,EAChD;AACA,UAAQ,QAAQ,OAAO;AACvB,MAAI;AACJ,MAAI;AAAE,YAAQ,KAAK,MAAM,IAAI;AAAA,EAAG,QAC1B;AAAE,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAAG;AAC3D,MAAI,CAAC,aAAa,KAAK,EAAG,OAAM,IAAI,MAAM,4CAA4C;AACtF,SAAO;AACT;AAEO,SAAS,aAAa,OAAkD;AAC7E,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEO,SAAS,YAAY,OAAoC;AAC9D,MAAI,OAAO,UAAU,YAAY,MAAO,QAAO,MAAM,MAAM,GAAG,IAAI;AAClE,MAAI,aAAa,KAAK,KAAK,OAAO,MAAM,YAAY,SAAU,QAAO,MAAM,QAAQ,MAAM,GAAG,IAAI;AAChG,SAAO;AACT;AAEA,gBAAuB,eAAe,WAA0B,OAAiD;AAC/G,QAAM,OAAO,eAAe;AAC5B,QAAM,WAAW,oBAAI,IAA4E;AACjG,MAAI,SAAS,OAAO,SAAS;AAC7B,QAAM,MAAM,CAAC,YAAgF;AAC3F,YAAQ,YAAY,QAAQ,QAAQ,EAAE,KAAK,QAAQ,GAAG;AACtD,WAAO,QAAQ;AAAA,EACjB;AACA,QAAM,WAAW,CAAC,SAA4B,aAAkC;AAC9E,QAAI,SAAS,IAAI,OAAO,EAAG;AAC3B,UAAM,QAAQ,EAAE,KAAK,MAAM,QAAQ,KAAK,QAAQ,EAAE;AAClD,aAAS,IAAI,SAAS,KAAK;AAC3B,QAAI,OAAQ,MAAK,IAAI,KAAK,EAAE,MAAM,MAAM,MAAS;AAAA,EACnD;AACA,QAAM,QAAQ,YAA2B;AACvC,aAAS;AACT,UAAM,UAAU,MAAM,QAAQ,WAAW,CAAC,GAAG,SAAS,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC;AACxE,UAAM,WAAW,QAAQ,KAAK,CAAAA,YAAUA,QAAO,WAAW,UAAU;AACpE,QAAI,UAAU,WAAW,WAAY,OAAM,SAAS;AAAA,EACtD;AACA,QAAM,QAAQ,MAAM;AAAE,SAAK,MAAM,EAAE,MAAM,MAAM,MAAS;AAAA,EAAG;AAC3D,QAAM,OAAO,iBAAiB,SAAS,OAAO,EAAE,MAAM,KAAK,CAAC;AAC5D,MAAI;AACF,UAAM,UAAU,QAAQ,QAAQ,EAAE,KAAK,MAAM;AAC3C,YAAM,OAAO,eAAe;AAC5B,aAAO,UAAU,EAAE,GAAG,OAAO,iBAAiB,SAAS,CAAC;AAAA,IAC1D,CAAC,EAAE,KAAK,CAAAC,cAAY;AAClB,eAASA,UAAS,SAASA,SAAQ;AACnC,aAAOA;AAAA,IACT,CAAC;AACD,UAAM,WAAW,MAAM,gBAAgB,SAAS,MAAM,MAAM;AAC5D,QAAI,CAAC,OAAO,UAAU,SAAS,MAAM,KAAK,SAAS,SAAS,OAAO,SAAS,UAAU,KAAK;AACzF,UAAI;AACJ,UAAI;AAAE,iBAAS,aAAa,MAAM,WAAW,UAAU,MAAM,QAAQ,KAAK,IAAI,GAAG,KAAK;AAAA,MAAG,QACnF;AAAE,cAAM,OAAO,eAAe;AAAA,MAAG;AACvC,YAAM,IAAI,MAAM,eAAe,SAAS,MAAM,GAAG,SAAS,KAAK,MAAM,KAAK,EAAE,EAAE;AAAA,IAChF;AACA,UAAM;AAAA,EACR,SAAS,OAAO;AACd,aAAS;AACT,UAAM,MAAM,OAAO,UAAU,MAAM,OAAO,SAAS;AAAA,EACrD,UAAE;AACA,UAAM,OAAO,oBAAoB,SAAS,KAAK;AAC/C,UAAM,MAAM,EAAE,MAAM,WAAS;AAAE,UAAI,CAAC,UAAU,CAAC,MAAM,OAAO,QAAS,OAAM;AAAA,IAAO,CAAC;AACnF,QAAI,CAAC,OAAQ,OAAM,OAAO,eAAe;AAAA,EAC3C;AACF;;;ACtHA;AAGA,gBAAgB,OAAO,QAAoB,QAAqB,OAAe,eAA8C;AAC3H,QAAM,UAAU,IAAI,YAAY,SAAS,EAAE,OAAO,KAAK,CAAC;AACxD,MAAI,OAAO,IAAI,OAAiB,CAAC,GAAG,OAAO,GAAG,sBAAsB;AACpE,mBAAiB,SAAS,YAAY,QAAQ,QAAQ,aAAa,GAAG;AACpE,UAAM,OAAO,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AACnD,eAAW,aAAa,MAAM;AAC5B,UAAI,uBAAuB,cAAc,MAAM;AAAE,8BAAsB;AAAO;AAAA,MAAU;AACxF,4BAAsB,cAAc;AACpC,YAAM,YAAY,UAAU,YAAY,CAAC;AACzC,cAAQ,YAAY,MAAO,IAAI,YAAY,OAAQ,IAAI,YAAY,QAAU,IAAI;AACjF,UAAI,OAAO,MAAO,OAAM,IAAI,MAAM,kEAAkE;AACpG,UAAI,cAAc,QAAQ,cAAc,MAAM;AAC5C,gBAAQ;AACR;AAAA,MACF;AACA,UAAI,SAAS,IAAI;AACf,YAAI,KAAK,SAAS,EAAG,OAAM,KAAK,KAAK,IAAI;AACzC,eAAO,CAAC;AACR,eAAO;AAAA,MACT,WAAW,SAAS,UAAU,KAAK,WAAW,OAAO,GAAG;AACtD,cAAM,QAAQ,KAAK,MAAM,CAAC;AAC1B,aAAK,KAAK,MAAM,WAAW,GAAG,IAAI,MAAM,MAAM,CAAC,IAAI,KAAK;AAAA,MAC1D;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,UAAQ,OAAO;AACf,QAAM,IAAI,MAAM,wCAAwC;AAC1D;AAEA,gBAAuB,WAAW,QAAoB,QAAqB,QAAQ,OAAO,MAAM,gBAAgB,KAAK,OAAO,MAA6B;AACvJ,mBAAiB,QAAQ,OAAO,QAAQ,QAAQ,OAAO,aAAa,GAAG;AACrE,WAAO,eAAe;AACtB,QAAI,KAAK,KAAK,MAAM,SAAU;AAC9B,QAAI;AACJ,QAAI;AAAE,eAAS,KAAK,MAAM,IAAI;AAAA,IAAG,QAC3B;AAAE,YAAM,IAAI,MAAM,oCAAoC;AAAA,IAAG;AAC/D,QAAI,CAAC,aAAa,MAAM,EAAG,OAAM,IAAI,MAAM,wCAAwC;AACnF,QAAI,OAAO,SAAS,KAAM,OAAM,IAAI,MAAM,WAAW,YAAY,OAAO,KAAK,KAAK,eAAe,EAAE;AACnG,QAAI,CAAC,MAAM,QAAQ,OAAO,OAAO,EAAG,OAAM,IAAI,MAAM,iCAAiC;AACrF,eAAW,UAAU,OAAO,SAAS;AACnC,aAAO,eAAe;AACtB,UAAI,CAAC,aAAa,MAAM,KAAK,CAAC,aAAa,OAAO,KAAK,EAAG,OAAM,IAAI,MAAM,wCAAwC;AAClH,YAAM,UAAU,OAAO,MAAM;AAC7B,UAAI,WAAW,QAAQ,OAAO,YAAY,SAAU,OAAM,IAAI,MAAM,sCAAsC;AAC1G,UAAI,OAAO,YAAY,YAAY,QAAQ,SAAS,EAAG,OAAM;AAAA,IAC/D;AAAA,EACF;AACF;;;ACnDA;;;ACAA;AAMO,IAAM,SAAyB,EAAE,aAAa,QAAQ,MAAM,4BAA4B,UAAU,SAAS;AAElH,SAAS,OAAO,aAAqB,MAAc,WAAW,UAA0B;AACtF,SAAO,EAAE,aAAa,MAAM,SAAS;AACvC;AAEA,SAAS,QAAQ,OAAmB,WAA8B,SAAS,GAAY;AACrF,SAAO,MAAM,UAAU,SAAS,UAAU,UAAU,UAAU,MAAM,CAAC,OAAO,UAAU,MAAM,SAAS,KAAK,MAAM,KAAK;AACvH;AAEA,SAAS,MAAM,OAAmB,OAAe,QAAwB;AACvE,SAAO,OAAO,aAAa,GAAG,MAAM,SAAS,OAAO,QAAQ,MAAM,CAAC;AACrE;AAEA,SAAS,MAAM,OAA+C;AAC5D,QAAM,OAAO,IAAI,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU;AAC1E,MAAI,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,MAAM,MAAM,MAAM,OAAO,IAAI,CAAC,MAAM,UAC9H,KAAK,UAAU,EAAE,IAAI,KAAK,KAAK,UAAU,EAAE,IAAI,KAAK,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE,KAAM,GAAG;AAC9G,UAAM,UAA6C,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE;AAC9H,QAAI,QAAQ,MAAM,EAAE,CAAE,GAAG,SAAS,MAAM,EAAE,CAAE,EAAG,QAAO,OAAO,kBAAkB,WAAW;AAAA,EAC5F;AACA,MAAI,MAAM,UAAU,MAAM,CAAC,UAAU,QAAQ,EAAE,SAAS,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,UAAU,GAAG,IAAI,IAAI,KAAK,KAAK,UAAU,GAAG,IAAI,IAAI,EAAG,QAAO,OAAO,kBAAkB,WAAW;AACtL,MAAI,MAAM,UAAU,KAAK,QAAQ,OAAO,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,KAAM,OAAO,MAAM,CAAC,KAAM,IAAK,QAAO,OAAO,mBAAmB,YAAY;AAC/I,MAAI,MAAM,UAAU,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,UAAU,MAAM,OAAO,GAAG,CAAC,MAAM,UAAU,CAAC,QAAQ,QAAQ,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,GAAG,IAAI,KAAK,GAAI,QAAO,OAAO,mBAAmB,YAAY;AAClO,MAAI,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,QAAQ,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,GAAI,QAAO,OAAO,mBAAmB,YAAY;AAC5I,MAAI,MAAM,UAAU,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,EAAG,QAAO,OAAO,wBAAwB,WAAW;AACzK,MAAI,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,KAAK,UAAU,GAAG,IAAI,IAAI,EAAG,QAAO,OAAO,4BAA4B,0BAA0B;AAC3J,MAAI,iCAAiC,KAAK,MAAM,OAAO,GAAG,EAAE,CAAC,EAAG,QAAO,OAAO,gBAAgB,iBAAiB;AAC/G,MAAI,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,MAAM,CAAC,IAAK,SAAS,EAAG,QAAO,OAAO,wBAAwB,kBAAkB;AAC3I,MAAI,MAAM,UAAU,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,MAAM,CAAC,KAAM,MAAM,MAAM,CAAC,KAAM,OAAO,MAAM,OAAO,GAAG,CAAC,MAAM,YAAY,QAAQ,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,GAAI,QAAO,OAAO,yBAAyB,qBAAqB;AAChP,MAAI,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,KAAM,GAAI,QAAO,OAAO,sBAAsB,kBAAkB;AAChK,MAAI,MAAM,UAAU,KAAK,QAAQ,OAAO,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,IAAK,QAAQ,EAAG,QAAO,OAAO,6BAA6B,kBAAkB;AACpJ,MAAK,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,KAAO,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,EAAI,QAAO,OAAO,oBAAoB,iBAAiB;AACzK,MAAI,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,EAAG,QAAO,OAAO,sBAAsB,6BAA6B;AACxI,MAAK,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,KAAO,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,EAAI,QAAO,OAAO,oBAAoB,mBAAmB;AACxM,MAAI,MAAM,UAAU,OAAO,MAAM,OAAO,KAAK,CAAC,MAAM,SAAS;AAC3D,UAAM,WAAW,MAAM,OAAO,KAAK,CAAC,EAAE,QAAQ,UAAU,EAAE,EAAE,KAAK;AACjE,QAAI,YAAY,KAAK,QAAQ,GAAG;AAC9B,UAAI,QAAQ;AACZ,eAAS,QAAQ,GAAG,QAAQ,KAAK,QAAS,UAAS,SAAS,OAAO,QAAQ,MAAM,KAAK,MAAM,KAAK;AACjG,UAAI,SAAS,UAAU,CAAC,MAAM,MAAO,QAAO,OAAO,qBAAqB,mBAAmB;AAAA,IAC7F;AAAA,EACF;AACA,MAAI,MAAM,UAAU,MAAM,QAAQ,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,CAAC,CAAE,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,CAAC,CAAE,KAAK,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,MAAM,KAAK,MAAM,UAAU,KAAK;AACnL,UAAM,OAAO,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC;AAC9C,UAAM,OAAO,SAAS,IAAI,yBAAyB,SAAS,IAAI,6BAA6B,SAAS,IAAI,4BAA4B;AACtI,WAAO,OAAO,OAAO,MAAM,CAAC,MAAM,IAAI,OAAO,IAAI,QAAQ,SAAS,IAAI,eAAe,SAAS,IAAI,kBAAkB,QAAQ,IAAI,IAAI;AAAA,EACtI;AACA,MAAI,MAAM,UAAU,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM;AACrD,UAAM,SAAS,KAAK,UAAU,IAAI,IAAI;AACtC,QAAI,UAAU,MAAM,UAAU,MAAM,SAAS,MAAM,QAAQ,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,MAAM,EAAG,QAAO,OAAO,iBAAiB,+CAA+C;AACzK,WAAO,OAAO,kBAAkB,uBAAuB;AAAA,EACzD;AACA,MAAI,MAAM,UAAU,KAAK,QAAQ,OAAO,CAAC,GAAG,IAAI,KAAK,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,EAAG,QAAO,OAAO,6BAA6B,kBAAkB;AACrI,MAAI,MAAM,UAAU,OAAO,MAAM,OAAO,GAAG,EAAE,MAAM,qBAAqB;AACtE,UAAM,OAAO,KAAK,UAAU,EAAE;AAC9B,SAAK,SAAS,KAAM,QAAQ,OAAO,QAAQ,UAAU,OAAQ,OAAO,OAAQ,MAAO,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAE,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAE,KAAK,QAAQ,OAAO,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,EAAG,QAAO,OAAO,uBAAuB,yBAAyB;AAAA,EACnP;AACA,MAAI,MAAM,UAAU,OAAO,QAAQ,OAAO,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK,QAAQ,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,EAAG,QAAO,OAAO,yBAAyB,2BAA2B;AACvL,SAAO;AACT;AAEO,SAAS,SAAS,OAAmB,UAAmC;AAC7E,MAAI,CAAC,MAAM,OAAQ,QAAO,WAAW,OAAO,SAAS,eAAe,IAAI;AACxE,QAAM,aAAa,MAAM,KAAK;AAC9B,MAAI,WAAY,QAAO;AACvB,MAAI,QAAQ,OAAO,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,KAAK,QAAQ,OAAO,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,EAAG,QAAO;AACjF,MAAI,WAAW;AACf,MAAI,MAAM;AACV,MAAI,QAAQ,OAAO,CAAC,KAAK,KAAK,GAAG,CAAC,EAAG,OAAM;AAAA,WAClC,QAAQ,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG;AAAE,eAAW;AAAY,UAAM;AAAA,EAAG,WAC9D,QAAQ,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG;AAAE,eAAW;AAAY,UAAM;AAAA,EAAG;AACvE,MAAI;AACJ,MAAI;AAAE,WAAO,IAAI,YAAY,UAAU,EAAE,OAAO,KAAK,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;AAAA,EAAG,QACxF;AAAE,WAAO;AAAA,EAAQ;AACvB,MAAI,CAAC,KAAK,UAAU,MAAM,SAAS,IAAK,QAAO;AAC/C,aAAW,aAAa,MAAM;AAC5B,UAAM,OAAO,UAAU,YAAY,CAAC;AACpC,QAAK,OAAO,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,IAAI,KAAO,QAAQ,OAAO,QAAQ,IAAM,QAAO;AAAA,EACpG;AACA,MAAI,CAAC,OAAO,aAAa,WAAW,MAAM,MAAM,WAAS,QAAQ,GAAG,EAAG,YAAW;AAClF,MAAI,YAAY,2BAA2B,KAAK,IAAI,GAAG;AACrD,QAAI;AAAE,WAAK,MAAM,IAAI;AAAG,aAAO,OAAO,kBAAkB,oBAAoB,QAAQ;AAAA,IAAG,QAAQ;AAAA,IAAC;AAAA,EAClG;AACA,QAAM,cAAc,aAAa,aAAa,eAAe,aAAa,UAAU,wBAAwB,iBAAiB,aAAa,aAAa,0BAA0B,oBAAoB;AACrM,SAAO,OAAO,aAAa,cAAc,QAAQ;AACnD;;;AD1FA,IAAM,aAA+C;AAAA,EACnD,KAAK;AAAA,EAAa,KAAK;AAAA,EAAc,MAAM;AAAA,EAAc,KAAK;AAAA,EAAa,MAAM;AAAA,EACjF,MAAM;AAAA,EAAc,MAAM;AAAA,EAAc,MAAM;AAAA,EAAc,KAAK;AAAA,EAAa,KAAK;AAAA,EAAc,MAAM;AAAA,EAAc,KAAK;AAAA,EAC1H,KAAK;AAAA,EAAc,KAAK;AAAA,EAAa,KAAK;AAAA,EAAa,KAAK;AAAA,EAAa,MAAM;AAAA,EAAa,MAAM;AAAA,EAAc,KAAK;AAAA,EAAa,KAAK;AAAA,EAAa,MAAM;AAAA,EAC1J,KAAK;AAAA,EAAa,KAAK;AAAA,EAAa,KAAK;AAAA,EAAmB,MAAM;AAAA,EAAc,KAAK;AAAA,EAAoB,KAAK;AAAA,EAAmB,KAAK;AAAA,EAAa,MAAM;AAAA,EAAc,KAAK;AAAA,EAC5K,KAAK;AAAA,EAAmB,MAAM;AAAA,EAAoB,KAAK;AAAA,EAAmB,IAAI;AAAA,EAC9E,KAAK;AAAA,EAAc,IAAI;AAAA,EAAiB,KAAK;AAAA,EAAY,MAAM;AAAA,EAAa,KAAK;AACnF;AAEA,SAAS,YAAY,OAAmB,QAAgB,eAAe,OAAqD;AAC1H,QAAM,QAAQ,MAAM,MAAM;AAC1B,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,SAAS,KAAK,QAAQ;AAC1B,SAAO,EAAE,QAAQ,SAAS;AAAE,eAAW;AAAG;AAAA,EAAS;AACnD,MAAI,SAAS,QAAQ,MAAM,OAAQ,QAAO;AAC1C,MAAI,QAAQ,eAAe,QAAQ,QAAS,SAAS;AACrD,WAAS,QAAQ,GAAG,QAAQ,OAAO,QAAS,SAAQ,QAAQ,MAAM,MAAM,SAAS,KAAK;AACtF,MAAI,CAAC,OAAO,cAAc,KAAK,KAAK,CAAC,gBAAgB,UAAU,MAAM,IAAI,SAAS,EAAG,QAAO;AAC5F,SAAO,EAAE,OAAO,MAAM;AACxB;AAEA,SAAS,aAAa,OAAuC;AAC3D,QAAM,SAAS,YAAY,OAAO,CAAC;AACnC,MAAI,CAAC,OAAQ,QAAO;AACpB,MAAI,SAAS,IAAI,OAAO;AACxB,QAAM,MAAM,KAAK,IAAI,MAAM,QAAQ,SAAS,OAAO,OAAO,IAAI;AAC9D,SAAO,SAAS,KAAK;AACnB,UAAM,aAAa,YAAY,OAAO,QAAQ,IAAI;AAClD,QAAI,CAAC,WAAY,QAAO;AACxB,cAAU,WAAW;AACrB,UAAM,OAAO,YAAY,OAAO,MAAM;AACtC,QAAI,CAAC,KAAM,QAAO;AAClB,cAAU,KAAK;AACf,QAAI,KAAK,QAAQ,MAAM,OAAQ,QAAO;AACtC,QAAI,WAAW,UAAU,OAAQ;AAC/B,YAAM,UAAU,IAAI,YAAY,EAAE,OAAO,MAAM,SAAS,QAAQ,SAAS,KAAK,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC,EAAE,CAAC;AACtG,UAAI,YAAY,OAAQ,QAAO;AAC/B,UAAI,YAAY,WAAY,QAAO;AACnC,aAAO;AAAA,IACT;AACA,cAAU,KAAK;AAAA,EACjB;AACA,SAAO;AACT;AAEO,SAAS,cAAc,MAAc,OAA2B;AACrE,QAAMC,WAAU,CAAC,WAA8B,SAAS,MACtD,MAAM,UAAU,SAAS,UAAU,UAAU,UAAU,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS,KAAK,MAAM,IAAI;AAC9G,QAAMC,SAAQ,CAAC,QAAgB,SAC7B,MAAM,UAAU,SAAS,KAAK,UAAU,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,WAAW,UAAU,MAAM,SAAS,KAAK,MAAM,UAAU,WAAW,CAAC,CAAC;AACjI,MAAID,SAAQ,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,EAAG,QAAO;AACvD,MAAIA,SAAQ,CAAC,KAAK,KAAK,GAAG,CAAC,EAAG,QAAO;AACrC,MAAIC,OAAM,GAAG,QAAQ,KAAKA,OAAM,GAAG,QAAQ,EAAG,QAAO;AACrD,MAAIA,OAAM,GAAG,MAAM,GAAG;AACpB,QAAIA,OAAM,GAAG,MAAM,EAAG,QAAO;AAC7B,QAAIA,OAAM,GAAG,MAAM,EAAG,QAAO;AAC7B,QAAIA,OAAM,GAAG,MAAM,EAAG,QAAO;AAAA,EAC/B;AACA,MAAIA,OAAM,GAAG,MAAM,EAAG,QAAO;AAC7B,MAAIA,OAAM,GAAG,MAAM,GAAG;AACpB,UAAM,SAAS,MAAM,MAAM,EAAE,KAAK;AAClC,QAAI,MAAM,EAAE,KAAK,MAAM,MAAM,MAAM,OAAQA,OAAM,SAAS,GAAG,QAAQ,EAAG,QAAO;AAC/E,WAAO;AAAA,EACT;AACA,MAAIA,OAAM,GAAG,KAAK,KAAK,MAAM,UAAU,KAAK,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,IAAK,SAAU,QAAS,MAAM,CAAC,IAAK,OAAU,EAAG,QAAO;AAChI,MAAI,MAAM,UAAU,KAAK,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,IAAK,SAAU,IAAM,QAAO;AACjF,MAAIA,OAAM,GAAG,MAAM,MAAMA,OAAM,GAAG,MAAM,KAAKA,OAAM,GAAG,MAAM,GAAI,QAAO;AACvE,MAAIA,OAAM,GAAG,MAAM,GAAG;AACpB,QAAIA,OAAM,GAAG,MAAM,KAAKA,OAAM,GAAG,MAAM,EAAG,QAAO;AACjD,QAAIA,OAAM,GAAG,MAAM,KAAKA,OAAM,GAAG,MAAM,EAAG,QAAO;AACjD,QAAIA,OAAM,GAAG,MAAM,KAAKA,OAAM,GAAG,MAAM,EAAG,QAAO;AACjD,QAAIA,OAAM,GAAG,MAAM,KAAKA,OAAM,GAAG,MAAM,EAAG,QAAO;AACjD,QAAIA,OAAM,GAAG,MAAM,EAAG,QAAO;AAC7B,WAAO;AAAA,EACT;AACA,MAAID,SAAQ,CAAC,IAAM,IAAM,KAAM,GAAI,CAAC,GAAG;AACrC,UAAM,WAAW,aAAa,KAAK;AACnC,QAAI,SAAU,QAAO;AAAA,EACvB;AACA,MAAIC,OAAM,GAAG,OAAO,EAAG,QAAO;AAC9B,MAAID,SAAQ,CAAC,IAAM,IAAM,GAAG,CAAC,CAAC,KAAKA,SAAQ,CAAC,IAAM,IAAM,GAAG,CAAC,CAAC,EAAG,QAAO;AACvE,MAAIA,SAAQ,CAAC,IAAM,GAAI,CAAC,EAAG,QAAO;AAClC,MAAIA,SAAQ,CAAC,IAAM,IAAM,IAAI,CAAC,CAAC,KAAKA,SAAQ,CAAC,IAAM,IAAM,GAAG,EAAE,CAAC,EAAG,QAAO;AACzE,MAAIC,OAAM,GAAG,IAAI,EAAG,QAAO;AAC3B,QAAM,SAAS,MAAM,SAAS,GAAG,GAAG;AACpC,QAAM,aAAa,SAAS,QAAQ,MAAM,UAAU,OAAO,MAAM,EAAE;AACnE,MAAI,CAAC,CAAC,4BAA4B,cAAc,eAAe,EAAE,SAAS,UAAU,EAAG,QAAO;AAC9F,QAAM,WAAW,KAAK,MAAM,KAAK,YAAY,GAAG,IAAI,CAAC;AACrD,QAAM,MAAM,SAAS,YAAY,GAAG;AACpC,QAAM,YAAY,MAAM,IAAI,KAAK,SAAS,MAAM,MAAM,CAAC,EAAE,YAAY;AACrE,SAAO,OAAO,OAAO,YAAY,SAAS,IAAI,WAAW,SAAS,IAAK,eAAe,kBAAkB,6BAA6B;AACvI;AAEO,SAAS,gBAAgB,OAA0B,UAA2B;AACnF,MAAI,CAAC,GAAG,QAAQ,EAAE,KAAK,eAAa,UAAU,WAAW,CAAC,IAAI,MAAM,UAAU,WAAW,CAAC,MAAM,GAAG,EAAG,QAAO;AAC7G,QAAM,OAAO,SAAS,MAAM,KAAK,CAAC,EAAE,CAAC,EAAG,KAAK,EAAE,YAAY;AAC3D,QAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,MAAI,MAAM,WAAW,KAAK,MAAM,KAAK,UAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,KAAK,eACnE,EAAE,aAAa,OAAO,aAAa,OAAO,aAAa,OAAO,aAAa,OAAO,iBAAiB,SAAS,SAAS,EAAE,CAAC,EAAG,QAAO;AACpI,SAAO,MAAM,KAAK,UAAQ;AACxB,UAAM,WAAW,KAAK,YAAY;AAClC,WAAO,aAAa,QAAQ,SAAS,SAAS,IAAI,KAAK,SAAS,MAAM,GAAG,EAAE,MAAM,MAAM,CAAC;AAAA,EAC1F,CAAC;AACH;;;AEzGA;AAWO,SAAS,eAAe,QAAoC,CAAC,GAAsB;AACxF,QAAM,SAAS,EAAE,iBAAiB,KAAK,OAAO,MAAM,kBAAkB,KAAK,OAAO,MAAM,eAAe,OAAO,MAAM,UAAU,KAAK,gBAAgB,KAAM,GAAG,MAAM;AAClK,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AAClD,QAAI,CAAC,OAAO,cAAc,KAAK,KAAK,SAAS,SAAS,cAAc,SAAS,mBAAmB,IAAI,GAAI,OAAM,IAAI,WAAW,2BAA2B,IAAI,EAAE;AAAA,EAChK;AACA,SAAO,OAAO,OAAO,MAAM;AAC7B;AAEO,SAAS,WAAW,OAAuB;AAChD,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,KAAK,CAAC,GAAG,KAAK,EAAE,KAAK,UAAQ,KAAK,WAAW,CAAC,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,GAAG,EAAG,OAAM,IAAI,UAAU,yBAAyB;AACpL,SAAO;AACT;AAEO,SAAS,SAAS,OAAgB,OAA2D;AAClG,QAAM,OAAO,KAAK,UAAU,KAAK;AACjC,MAAI,KAAK,SAAS,MAAO,OAAM,IAAI,WAAW,sCAAsC;AACpF,QAAM,QAAQ,IAAI,YAAY,EAAE,OAAO,IAAI;AAC3C,MAAI,MAAM,SAAS,MAAO,OAAM,IAAI,WAAW,sCAAsC;AACrF,SAAO,EAAE,OAAO,mBAAmB;AAAE,UAAM;AAAA,EAAO,GAAG,GAAG,SAAS,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,EAAE;AAC1G;AAEO,SAAS,UAAU,SAAkC,OAA0E,OAA2D;AAC/L,QAAM,UAAU,IAAI,YAAY;AAChC,QAAM,QAAsB,CAAC;AAC7B,QAAM,UAAU,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;AAC7D,QAAI,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,UAAQ,mEAAmE,SAAS,IAAI,CAAC,EAAG,OAAM,IAAI,UAAU,+BAA+B;AACpK,WAAO,CAAC,MAAM,OAAO,KAAK,CAAC;AAAA,EAC7B,CAAC;AACD,MAAI,OAAO,MAAM,OAAO,CAAC,KAAK,SAAS,MAAM,KAAK,MAAM,QAAQ,CAAC;AACjE,aAAW,CAAC,EAAE,KAAK,KAAK,SAAS;AAC/B,QAAI,MAAM,SAAS,MAAO,OAAM,IAAI,WAAW,sCAAsC;AACrF,YAAQ,QAAQ,OAAO,KAAK,EAAE;AAAA,EAChC;AACA,MAAI,OAAO,MAAO,OAAM,IAAI,WAAW,sCAAsC;AAC7E,MAAI,WAAW;AACf,QAAM,WAAW,CAAC,OAAmB,WAAgC;AACnE,UAAO,UAAS,QAAQ,GAAG,SAAS,MAAM,SAAS,OAAO,QAAQ,SAAS;AACzE,eAAS,QAAQ,GAAG,QAAQ,OAAO,QAAQ,QAAS,KAAI,MAAM,QAAQ,KAAK,MAAM,OAAO,KAAK,EAAG,UAAS;AACzG,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,MAAI,WAAW;AACf,SAAO,QAAQ,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,MAAM,SAAS,QAAQ,CAAC,KAAK,MAAM,KAAK,UAAQ,SAAS,KAAK,OAAO,QAAQ,OAAO,QAAQ,CAAC,CAAC,GAAG;AAClI,QAAI,eAAe,GAAI,OAAM,IAAI,WAAW,sDAAsD;AAClG,gBAAY;AAAA,EACd;AACA,aAAW,CAAC,MAAM,KAAK,KAAK,QAAS,OAAM,KAAK,QAAQ,OAAO,KAAK,QAAQ;AAAA,wCAA6C,IAAI;AAAA;AAAA,EAAY,KAAK;AAAA,CAAM,CAAC;AACrJ,aAAW,CAAC,OAAO,IAAI,KAAK,MAAM,QAAQ,GAAG;AAC3C,QAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,KAAK,UAAQ,KAAK,WAAW,CAAC,IAAI,MAAM,KAAK,WAAW,CAAC,IAAI,GAAG,EAAG,OAAM,IAAI,UAAU,8BAA8B;AAC5I,UAAM,KAAK,QAAQ,OAAO,KAAK,QAAQ;AAAA,wCAA6C,KAAK,KAAK,2BAA2B,KAAK;AAAA,gBAAsB,KAAK,QAAQ;AAAA;AAAA,CAAU,GAAG,WAAW,KAAK,KAAK,KAAK,GAAG,QAAQ,OAAO,MAAM,CAAC;AAAA,EACnO;AACA,QAAM,KAAK,QAAQ,OAAO,KAAK,QAAQ;AAAA,CAAQ,CAAC;AAChD,MAAI,MAAM,OAAO,CAAC,KAAK,SAAS,MAAM,KAAK,QAAQ,CAAC,IAAI,MAAO,OAAM,IAAI,WAAW,sCAAsC;AAC1H,SAAO,EAAE,OAAO,mBAAmB;AAAE,WAAO;AAAA,EAAO,GAAG,GAAG,SAAS,CAAC,CAAC,gBAAgB,iCAAiC,QAAQ,EAAE,CAAC,EAAE;AACpI;;;AL/CA,IAAM,iBAAiB;AAAA,EACrB,MAAM,oBAAI,IAAI;AAAA,IACZ,CAAC,eAAe,QAAQ;AAAA,IAAG,CAAC,SAAS,QAAQ;AAAA,IAC7C,CAAC,qBAAqB,QAAQ;AAAA,IAAG,CAAC,oBAAoB,QAAQ;AAAA,IAC9D,CAAC,cAAc,SAAS;AAAA,IAAG,CAAC,yBAAyB,SAAS;AAAA,IAC9D,CAAC,KAAK,SAAS;AAAA,IAAG,CAAC,QAAQ,SAAS;AAAA,IAAG,CAAC,gBAAgB,SAAS;AAAA,EACnE,CAAC;AAAA,EACD,QAAQ,oBAAI,IAAI;AAAA,IACd,CAAC,KAAK,SAAS;AAAA,IAAG,CAAC,sBAAsB,SAAS;AAAA,IAAG,CAAC,kBAAkB,SAAS;AAAA,EACnF,CAAC;AACH;AAEA,SAAS,YAAY,SAAgC,UAAwE;AAC3H,SAAO,OAAO,YAAY,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACtE,SAAK,aAAa,SAAS,CAAC,SAAS,uBAAuB,UAAU,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,GAAG;AACnG,UAAI,UAAU,UAAU,UAAU,QAAS,OAAM,IAAI,MAAM,yBAAyB,GAAG,oBAAoB;AAC3G,aAAO,CAAC,KAAK,UAAU,MAAM;AAAA,IAC/B;AACA,UAAM,OAAO,eAAe,QAAQ,EAAE,IAAI,GAAG;AAC7C,QAAI,CAAC,KAAM,QAAO,CAAC,KAAK,KAAK;AAC7B,UAAM,SAAS,MAAM,KAAK,IAAI,OAAO,KAAK,IAAI;AAC9C,QAAI,CAAC,OAAO,SAAS,MAAM,KAAK,SAAS,aAAa,CAAC,OAAO,cAAc,MAAM,GAAG;AACnF,YAAM,IAAI,MAAM,yBAAyB,GAAG,uBAAuB,SAAS,YAAY,iBAAiB,QAAQ,EAAE;AAAA,IACrH;AACA,WAAO,CAAC,KAAK,MAAM;AAAA,EACrB,CAAC,CAAC;AACJ;AAEA,SAAS,OAAO,OAA2B;AACzC,MAAIC,UAAS;AACb,WAAS,SAAS,GAAG,SAAS,MAAM,QAAQ,UAAU,MAAM;AAC1D,IAAAA,WAAU,OAAO,aAAa,GAAG,MAAM,SAAS,QAAQ,SAAS,IAAI,CAAC;AAAA,EACxE;AACA,SAAO,KAAKA,OAAM;AACpB;AAEA,SAAS,WAAW,OAA4B;AAC9C,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,EAAG,OAAM,IAAI,MAAM,uCAAuC;AAC5G,MAAI;AACJ,MAAI;AAAE,cAAU,KAAK,KAAK;AAAA,EAAG,QACvB;AAAE,UAAM,IAAI,MAAM,+CAA+C;AAAA,EAAG;AAC1E,MAAI,KAAK,OAAO,MAAM,MAAO,OAAM,IAAI,MAAM,qDAAqD;AAClG,SAAO,WAAW,KAAK,SAAS,eAAa,UAAU,WAAW,CAAC,CAAC;AACtE;AAEA,SAAS,YAAY,QAAqB,UAAiC;AACzE,SAAO,eAAe;AACtB,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,QAAQ,MAAM;AAAE,mBAAa,KAAK;AAAG,aAAO,oBAAoB,SAAS,KAAK;AAAG,aAAO,OAAO,MAAM;AAAA,IAAG;AAC9G,UAAM,QAAQ,WAAW,MAAM;AAAE,aAAO,oBAAoB,SAAS,KAAK;AAAG,cAAQ;AAAA,IAAG,GAAG,QAAQ;AACnG,WAAO,iBAAiB,SAAS,OAAO,EAAE,MAAM,KAAK,CAAC;AACtD,QAAI,OAAO,QAAS,OAAM;AAAA,EAC5B,CAAC;AACH;AAEA,SAAS,IAAI,OAAgC,YAAqD;AAChG,MAAI,MAAM,SAAS,KAAM,OAAM,IAAI,MAAM,wBAAwB,YAAY,MAAM,KAAK,KAAK,eAAe,EAAE;AAC9G,MAAI,OAAO,MAAM,OAAO,YAAY,MAAM,GAAG,WAAW,KAAK,MAAM,OAAO,OAAO,MAAM,OAAO,QAAS,eAAe,UAAa,MAAM,OAAO,YAAa;AAC3J,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AACA,MAAI,MAAM,WAAW,YAAY,MAAM,WAAW,iBAAiB,MAAM,WAAW,aAAa;AAC/F,UAAM,IAAI,MAAM,wBAAwB,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS,gBAAgB,EAAE;AAAA,EAC9G;AACA,SAAO,EAAE,IAAI,MAAM,IAAI,QAAQ,MAAM,OAAO;AAC9C;AAEO,SAAS,qBAAqB,SAA6C;AAChF,QAAM,EAAE,WAAW,OAAO,IAAI;AAC9B,QAAM,SAAS,eAAe,QAAQ,MAAM;AAC5C,MAAI,OAAO,cAAc,WAAY,OAAM,IAAI,UAAU,4CAA4C;AACrG,MAAI,OAAO,WAAW,YAAY,CAAC,OAAO,KAAK,KAAK,OAAO,SAAS,IAAI,KAAK,OAAO,SAAS,IAAI,EAAG,OAAM,IAAI,UAAU,iCAAiC;AACzJ,aAAW,MAAM;AACjB,QAAM,OAAO,IAAI,IAAI,QAAQ,WAAW,2BAA2B;AACnE,MAAK,KAAK,aAAa,YAAY,KAAK,aAAa,WAAY,KAAK,YAAY,KAAK,YAAY,KAAK,UAAU,KAAK,MAAM;AAC3H,UAAM,IAAI,UAAU,8EAA8E;AAAA,EACpG;AACA,QAAM,UAAU,KAAK,KAAK,SAAS,GAAG,IAAI,KAAK,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK;AACxE,QAAM,aAAa,QAAQ,OAAO,IAAI,WAAS,OAAO,OAAO;AAAA,IAC3D,GAAG;AAAA,IACH,GAAI,MAAM,YAAY,SAAY,CAAC,IAAI,EAAE,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,EAAE;AAAA,IACpF,GAAI,MAAM,oBAAoB,SAAY,CAAC,IAAI,EAAE,iBAAiB,OAAO,OAAO,CAAC,GAAG,MAAM,eAAe,CAAC,EAAE;AAAA,EAC9G,CAAC,CAAC;AACF,QAAM,OAAO,oBAAI,IAAyB;AAC1C,aAAW,SAAS,YAAY;AAC9B,QAAI,CAAC,MAAM,MAAM,KAAK,IAAI,MAAM,EAAE,EAAG,OAAM,IAAI,UAAU,uCAAuC,MAAM,EAAE,EAAE;AAC1G,QAAI,CAAC,CAAC,QAAQ,UAAU,QAAQ,EAAE,SAAS,MAAM,QAAQ,EAAG,OAAM,IAAI,UAAU,sCAAsC,MAAM,EAAE,EAAE;AAChI,QAAI,MAAM,aAAa,YAAY,CAAC,gBAAgB,CAAC,aAAa,cAAc,YAAY,GAAG,MAAM,cAAc,EAAE,EAAG,OAAM,IAAI,UAAU,qEAAqE;AACjN,QAAI,MAAM,aAAa,YAAY,CAAC,gBAAgB,CAAC,WAAW,GAAG,MAAM,cAAc,EAAE,EAAG,OAAM,IAAI,UAAU,2CAA2C;AAC3J,QAAI,MAAM,aAAa,UAAU,MAAM,eAAe,UAAa,CAAC,gBAAgB,CAAC,QAAQ,GAAG,MAAM,UAAU,EAAG,OAAM,IAAI,UAAU,uCAAuC;AAC9K,SAAK,IAAI,MAAM,IAAI,KAAK;AAAA,EAC1B;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IAAU,QAAQ,OAAO,OAAO,UAAU;AAAA,IAChD,OAAO,SAAS,SAAS;AACvB,cAAQ,OAAO,eAAe;AAC9B,YAAM,QAAQ,KAAK,IAAI,QAAQ,KAAK;AACpC,UAAI,CAAC,MAAO,OAAM,IAAI,MAAM,kBAAkB,QAAQ,KAAK,EAAE;AAC7D,UAAI,QAAQ,YAAY,KAAK,gBAAc,CAAC,gBAAgB,CAAC,SAAS,GAAG,WAAW,QAAQ,CAAC,GAAG;AAC9F,cAAM,IAAI,MAAM,UAAU,MAAM,QAAQ,2CAA2C;AAAA,MACrF;AACA,UAAI,MAAM,aAAa,YAAY,QAAQ,YAAY,SAAS,EAAG,OAAM,IAAI,MAAM,sDAAsD;AACzI,UAAI,QAAQ,YAAY,OAAO,CAAC,MAAM,SAAS,OAAO,KAAK,MAAM,YAAY,CAAC,IAAI,OAAO,gBAAiB,OAAM,IAAI,WAAW,sCAAsC;AACrK,UAAI,MAAM,aAAa,UAAU,QAAQ,WAAW,OAAW,OAAM,IAAI,UAAU,kDAAkD;AACrI,YAAM,WAAW,MAAM,aAAa,SAAS,CAAC,SAAS,YAAY,QAAQ,IACvE,MAAM,aAAa,WAAW,CAAC,SAAS,UAAU,SAAS,SAAS,IAAI,CAAC,SAAS,UAAU,iBAAiB;AACjH,iBAAW,OAAO,OAAO,KAAK,QAAQ,OAAO,GAAG;AAC9C,YAAI,SAAS,SAAS,GAAG,EAAG,OAAM,IAAI,MAAM,iBAAiB,GAAG,gCAAgC;AAAA,MAClG;AACA,YAAM,OAAO,CAAC,MAAc,QAAgB,SAAiD,eAAe,WAAW;AAAA,QACrH,KAAK,GAAG,OAAO,GAAG,IAAI;AAAA,QAAI;AAAA,QAAQ,QAAQ,QAAQ;AAAA,QAClD,GAAG;AAAA,QAAM,SAAS,CAAC,CAAC,iBAAiB,UAAU,MAAM,EAAE,GAAG,GAAI,MAAM,WAAW,CAAC,CAAE;AAAA,MACpF,CAAC;AACD,UAAI,MAAM,aAAa,QAAQ;AAC7B,cAAM,WAAsB,CAAC;AAC7B,YAAI,QAAQ,WAAW,OAAW,UAAS,KAAK,EAAE,MAAM,UAAU,SAAS,QAAQ,OAAO,CAAC;AAC3F,iBAAS,KAAK,EAAE,MAAM,QAAQ,SAAS,QAAQ,YAAY,WAAW,IAAI,QAAQ,SAAS;AAAA,UACzF,EAAE,MAAM,QAAQ,MAAM,QAAQ,OAAO;AAAA,UACrC,GAAG,QAAQ,YAAY,IAAI,iBAAe,EAAE,MAAM,aAAa,WAAW,EAAE,KAAK,QAAQ,WAAW,QAAQ,WAAW,OAAO,WAAW,KAAK,CAAC,GAAG,EAAE,EAAE;AAAA,QACxJ,EAAE,CAAC;AACH,yBAAiB,YAAY,KAAK,qBAAqB,QAAQ,SAAS,EAAE,GAAG,YAAY,QAAQ,SAAS,MAAM,GAAG,OAAO,QAAQ,OAAO,UAAU,QAAQ,KAAK,GAAG,OAAO,eAAe,CAAC,GAAG;AAC3L,iBAAO,WAAW,SAAS,MAAM,QAAQ,QAAQ,OAAO,eAAe,OAAO,gBAAgB;AAAA,QAChG;AAAA,MACF,WAAW,MAAM,aAAa,UAAU;AACtC,cAAM,UAAU,QAAQ,YAAY,SAAS;AAC7C,cAAM,eAAe,MAAM,WAAY,MAAM,KAAK,CAAC,EAAE,CAAC,EAAG,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,MAAM;AACnG,YAAI,QAAQ,QAAQ,kBAAkB,UAAa,QAAQ,QAAQ,kBAAkB,aAAc,OAAM,IAAI,UAAU,+CAA+C;AACtK,cAAM,SAAoD,EAAE,GAAG,YAAY,QAAQ,SAAS,QAAQ,GAAG,eAAe,cAAc,OAAO,QAAQ,OAAO,QAAQ,QAAQ,OAAO;AACjL,YAAI,OAAO,WAAW,KAAM,OAAM,IAAI,UAAU,mEAAmE;AACnH,cAAM,OAAO,UAAU,UAAU,EAAE,GAAG,QAAQ,GAAG,QAAQ,QAAQ,GAAG,QAAQ,YAAY,IAAI,WAAS,EAAE,GAAG,MAAM,OAAO,UAAU,EAAE,GAAG,OAAO,eAAe,IAAI,SAAS,QAAQ,OAAO,eAAe;AACvM,yBAAiB,YAAY,KAAK,UAAU,kBAAkB,uBAAuB,QAAQ,IAAI,GAAG;AAClG,gBAAM,QAAQ,MAAM,WAAW,UAAU,QAAQ,QAAQ,OAAO,gBAAgB;AAChF,cAAI,MAAM,SAAS,KAAM,OAAM,IAAI,MAAM,WAAW,YAAY,MAAM,KAAK,KAAK,yBAAyB,EAAE;AAC3G,cAAI,CAAC,MAAM,QAAQ,MAAM,IAAI,KAAK,MAAM,KAAK,WAAW,EAAG,OAAM,IAAI,MAAM,qCAAqC;AAChH,qBAAW,QAAQ,MAAM,MAAM;AAC7B,oBAAQ,OAAO,eAAe;AAC9B,gBAAI,CAAC,aAAa,IAAI,EAAG,OAAM,IAAI,MAAM,kDAAkD;AAC3F,kBAAM,WAAW,KAAK,QAAQ;AAAA,UAChC;AAAA,QACF;AAAA,MACF,OAAO;AACL,YAAI;AACJ,yBAAiB,YAAY,KAAK,WAAW,QAAQ,UAAU,EAAE,GAAG,QAAQ,SAAS,OAAO,QAAQ,OAAO,QAAQ,QAAQ,OAAO,GAAG,QAAQ,YAAY,IAAI,WAAS,EAAE,GAAG,MAAM,OAAO,kBAAkB,EAAE,GAAG,OAAO,eAAe,CAAC,GAAG;AACvO,oBAAU,IAAI,MAAM,WAAW,UAAU,QAAQ,QAAQ,OAAO,gBAAgB,CAAC;AAAA,QACnF;AACA,YAAI,CAAC,QAAS,OAAM,IAAI,MAAM,uCAAuC;AACrE,cAAM,OAAO,WAAW,mBAAmB,QAAQ,EAAE,CAAC;AACtD,YAAI,QAAQ;AACZ,eAAO,QAAQ,WAAW,aAAa;AACrC,cAAI,WAAW,OAAO,SAAU,OAAM,IAAI,WAAW,uCAAuC;AAC5F,gBAAM,YAAY,QAAQ,QAAQ,OAAO,cAAc;AACvD,2BAAiB,YAAY,KAAK,MAAM,KAAK,EAAG,WAAU,IAAI,MAAM,WAAW,UAAU,QAAQ,QAAQ,OAAO,gBAAgB,GAAG,QAAQ,EAAE;AAAA,QAC/I;AACA,yBAAiB,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,GAAG;AAC3D,gBAAM,cAAc,SAAS,QAAQ,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,YAAY,MAAM,cAAc,IAAI,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,YAAY;AACpI,cAAI,eAAe,gBAAgB,8BAA8B,CAAC,YAAY,WAAW,QAAQ,GAAG;AAClG,kBAAM,IAAI,MAAM,sDAAsD,WAAW,EAAE;AAAA,UACrF;AACA,cAAI,WAAW;AACf,2BAAiB,SAAS,YAAY,SAAS,MAAM,QAAQ,QAAQ,OAAO,gBAAgB,GAAG;AAC7F,gBAAI,MAAM,eAAe,EAAG;AAC5B,uBAAW;AACX,kBAAM;AAAA,UACR;AACA,cAAI,CAAC,SAAU,OAAM,IAAI,MAAM,gCAAgC;AAAA,QACjE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AM3LA;;;ACAA;AAGA,eAAe,UAAkB,WAAsC,QAAsC;AAC3G,SAAO,eAAe;AACtB,MAAI;AACJ,QAAM,UAAU,IAAI,QAAe,CAAC,UAAU,WAAW;AACvD,cAAU,MAAM,OAAO,OAAO,MAAM;AACpC,WAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAAA,EAC1D,CAAC;AACD,MAAI;AACF,WAAO,MAAM,QAAQ,KAAK,CAAC,QAAQ,QAAQ,EAAE,KAAK,MAAM;AAAE,aAAO,eAAe;AAAG,aAAO,UAAU;AAAA,IAAG,CAAC,GAAG,OAAO,CAAC;AAAA,EACrH,UAAE;AACA,WAAO,oBAAoB,SAAS,OAAO;AAAA,EAC7C;AACF;AAEA,gBAAuB,iBAAiB,WAA0B,SAAsB,QAAQ,KAAK,OAAO,MAAkC;AAC5I,QAAM,EAAE,OAAO,IAAI;AACnB,SAAO,eAAe;AACtB,MAAI;AACJ,MAAI,WAAW;AACf,MAAI,SAAS;AACb,MAAI,SAAS;AACb,MAAI,OAAO;AACX,QAAM,WAAW,oBAAI,IAA4E;AACjG,QAAM,aAAa,CAAC,UAA8E;AAChG,WAAO,MAAM,YAAY,QAAQ,QAAQ,EAAE,KAAK,MAAM,GAAG;AAAA,EAC3D;AACA,QAAM,WAAW,CAAC,SAA4B,aAAkC;AAC9E,QAAI,SAAS,IAAI,OAAO,EAAG;AAC3B,UAAM,QAAQ,EAAE,KAAK,MAAM,QAAQ,KAAK,QAAQ,EAAE;AAClD,aAAS,IAAI,SAAS,KAAK;AAC3B,QAAI,OAAQ,MAAK,WAAW,KAAK,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EACnD;AACA,QAAM,UAAU,YAA2B;AACzC,aAAS;AACT,QAAI,OAAO;AACX,UAAM,WAAsB,CAAC;AAC7B,WAAO,OAAO,SAAS,MAAM;AAC3B,YAAM,UAAU,CAAC,GAAG,SAAS,OAAO,CAAC,EAAE,MAAM,IAAI;AACjD,aAAO,SAAS;AAChB,YAAM,UAAU,MAAM,QAAQ,WAAW,QAAQ,IAAI,UAAU,CAAC;AAChE,iBAAWC,WAAU,QAAS,KAAIA,QAAO,WAAW,WAAY,UAAS,KAAKA,QAAO,MAAM;AAAA,IAC7F;AACA,QAAI,SAAS,OAAQ,OAAM,SAAS,CAAC;AAAA,EACvC;AACA,QAAM,QAAQ,YAA2B;AACvC,UAAM,WAAsB,CAAC;AAC7B,QAAI;AAAE,YAAM,QAAQ;AAAA,IAAG,SAAS,OAAO;AAAE,eAAS,KAAK,KAAK;AAAA,IAAG;AAC/D,QAAI,CAAC,YAAY,UAAU,QAAQ;AACjC,YAAM,UAAU,QAAQ,QAAQ,EAAE,KAAK,MAAM,SAAU,OAAQ,CAAC;AAChE,UAAI,OAAO,QAAS,MAAK,QAAQ,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,WAC1C;AACH,YAAI;AAAE,gBAAM;AAAA,QAAS,SAAS,OAAO;AAAE,mBAAS,KAAK,KAAK;AAAA,QAAG;AAAA,MAC/D;AAAA,IACF;AACA,QAAI,CAAC,QAAQ;AACX,aAAO,eAAe;AACtB,UAAI,SAAS,OAAQ,OAAM,SAAS,CAAC;AAAA,IACvC;AAAA,EACF;AACA,QAAM,UAAU,MAAY;AAAE,SAAK,QAAQ,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EAAG;AAC9D,SAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACxD,MAAI;AACF,UAAM,WAAW,MAAM,UAAU,YAAY;AAC3C,aAAO,eAAe;AACtB,YAAM,WAAW,MAAM,UAAU,EAAE,GAAG,SAAS,iBAAiB,SAAS,CAAC;AAC1E,eAAS,SAAS,SAAS,QAAQ;AACnC,UAAI,OAAO,SAAS;AAClB,cAAM,QAAQ;AACd,eAAO,eAAe;AAAA,MACxB;AACA,aAAO;AAAA,IACT,GAAG,MAAM;AACT,WAAO,eAAe;AACtB,QAAI,SAAS,SAAS,OAAO,SAAS,UAAU,IAAK,OAAM,IAAI,MAAM,mBAAmB,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;AACjI,eAAW,SAAS,KAAK,OAAO,aAAa,EAAE;AAC/C,WAAO,MAAM;AACX,YAAM,OAAO,MAAM,UAAU,MAAM,SAAU,KAAK,GAAG,MAAM;AAC3D,aAAO,eAAe;AACtB,UAAI,KAAK,MAAM;AAAE,mBAAW;AAAM;AAAA,MAAQ;AAC1C,UAAI,EAAE,KAAK,iBAAiB,YAAa,OAAM,IAAI,UAAU,sDAAsD;AACnH,cAAQ,KAAK,MAAM;AACnB,UAAI,OAAO,MAAO,OAAM,IAAI,WAAW,uCAAuC;AAC9E,YAAM,WAAW,KAAK,KAAK,KAAK;AAAA,IAClC;AAAA,EACF,SAAS,OAAO;AACd,aAAS;AACT,UAAM;AAAA,EACR,UAAE;AACA,WAAO,oBAAoB,SAAS,OAAO;AAC3C,UAAM,MAAM;AAAA,EACd;AACF;;;AD3EA,IAAM,gBAAgB,oBAAI,IAAI;AAAA,EAC5B,CAAC,cAAc,eAAe;AAAA,EAC9B,CAAC,aAAa,WAAW;AAAA,EACzB,CAAC,eAAe,WAAW;AAAA,EAC3B,CAAC,aAAa,WAAW;AAAA,EACzB,CAAC,eAAe,WAAW;AAAA,EAC3B,CAAC,cAAc,gBAAgB;AAAA,EAC/B,CAAC,aAAa,gBAAgB;AAChC,CAAC;AAED,IAAM,cAAc;AAAA,EAClB,KAAK,oBAAI,IAAI;AAAA,IACX,CAAC,aAAa,QAAQ;AAAA,IAAG,CAAC,oBAAoB,QAAQ;AAAA,IAAG,CAAC,SAAS,QAAQ;AAAA,IAC3E,CAAC,SAAS,QAAQ;AAAA,IAAG,CAAC,qBAAqB,SAAS;AAAA,EACtD,CAAC;AAAA,EACD,OAAO,oBAAI,IAAI;AAAA,IACb,CAAC,mBAAmB,SAAS;AAAA,IAAG,CAAC,QAAQ,SAAS;AAAA,IAAG,CAAC,sBAAsB,SAAS;AAAA,IACrF,CAAC,8BAA8B,SAAS;AAAA,IAAG,CAAC,wBAAwB,SAAS;AAAA,IAC7E,CAAC,kBAAkB,SAAS;AAAA,EAC9B,CAAC;AACH;AAEA,SAAS,aAAa,SAA2C,UAAkF;AACjJ,SAAO,OAAO,YAAY,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACtE,UAAM,OAAO,YAAY,QAAQ,EAAE,IAAI,GAAG;AAC1C,QAAI,CAAC,KAAM,QAAO,CAAC,KAAK,KAAK;AAC7B,QAAI,SAAS,WAAW;AACtB,UAAI,UAAU,UAAU,UAAU,QAAS,QAAO,CAAC,KAAK,UAAU,MAAM;AAAA,IAC1E,OAAO;AACL,YAAM,SAAS,MAAM,KAAK,IAAI,OAAO,KAAK,IAAI;AAC9C,UAAI,OAAO,SAAS,MAAM,MAAM,SAAS,aAAa,OAAO,cAAc,MAAM,GAAI,QAAO,CAAC,KAAK,MAAM;AAAA,IAC1G;AACA,UAAM,IAAI,MAAM,6BAA6B,GAAG,cAAc,IAAI,EAAE;AAAA,EACtE,CAAC,CAAC;AACJ;AAEO,SAAS,yBAAyB,SAAiD;AACxF,QAAM,YAAY,QAAQ;AAC1B,MAAI,OAAO,cAAc,WAAY,OAAM,IAAI,UAAU,gCAAgC;AACzF,QAAM,SAAS,WAAW,QAAQ,MAAM;AACxC,QAAM,SAAS,eAAe,QAAQ,MAAM;AAC5C,QAAM,UAAU,IAAI,IAAI,QAAQ,WAAW,2BAA2B;AACtE,MAAI,CAAC,CAAC,UAAU,OAAO,EAAE,SAAS,QAAQ,QAAQ,KAAK,QAAQ,YAAY,QAAQ,YAAY,QAAQ,UAAU,QAAQ,MAAM;AAC7H,UAAM,IAAI,MAAM,6FAA6F;AAAA,EAC/G;AACA,MAAI,CAAC,QAAQ,SAAS,SAAS,GAAG,EAAG,SAAQ,YAAY;AACzD,QAAM,SAAS,QAAQ,OAAO,IAAI,WAAS,OAAO,OAAO;AAAA,IACvD,GAAG;AAAA,IACH,GAAI,MAAM,YAAY,SAAY,CAAC,IAAI,EAAE,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,EAAE;AAAA,IACpF,GAAI,MAAM,oBAAoB,SAAY,CAAC,IAAI,EAAE,iBAAiB,OAAO,OAAO,CAAC,GAAG,MAAM,eAAe,CAAC,EAAE;AAAA,EAC9G,CAAC,CAAC;AACF,QAAM,OAAO,oBAAI,IAAgE;AACjF,aAAW,SAAS,QAAQ;AAC1B,QAAI,MAAM,aAAa,SAAS,MAAM,aAAa,QAAS,OAAM,IAAI,MAAM,gCAAgC,MAAM,QAAQ,EAAE;AAC5H,QAAI,CAAC,MAAM,WAAY,OAAM,IAAI,UAAU,+CAA+C;AAC1F,UAAM,WAAW,MAAM,WAAW,MAAM,KAAK,CAAC,EAAE,CAAC,EAAG,KAAK,EAAE,YAAY;AACvE,UAAM,SAAS,cAAc,IAAI,QAAQ;AACzC,QAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,GAAG,MAAM,UAAU,KAAM,MAAM,aAAa,WAAW,OAAO,WAAW,MAAM,GAAI;AAC1H,YAAM,IAAI,MAAM,yCAAyC,MAAM,QAAQ,KAAK,MAAM,UAAU,EAAE;AAAA,IAChG;AACA,QAAI,MAAM,iBAAiB,OAAQ,OAAM,IAAI,MAAM,oBAAoB,MAAM,EAAE,8BAA8B;AAC7G,QAAI,CAAC,MAAM,MAAM,KAAK,IAAI,MAAM,EAAE,EAAG,OAAM,IAAI,MAAM,wCAAwC,MAAM,EAAE,EAAE;AACvG,SAAK,IAAI,MAAM,IAAI,EAAE,OAAO,OAAO,CAAC;AAAA,EACtC;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,OAAO,OAAO,MAAM;AAAA,IAC5B,OAAO,SAAS,SAAS;AACvB,cAAQ,OAAO,eAAe;AAC9B,YAAM,QAAQ,KAAK,IAAI,QAAQ,KAAK;AACpC,UAAI,CAAC,MAAO,OAAM,IAAI,MAAM,kBAAkB,QAAQ,KAAK,EAAE;AAC7D,YAAM,EAAE,OAAO,OAAO,IAAI;AAC1B,UAAI,QAAQ,YAAY,OAAQ,OAAM,IAAI,MAAM,SAAS,MAAM,EAAE,oBAAoB,QAAQ,YAAY,CAAC,EAAG,QAAQ,cAAc;AACnI,UAAI,QAAQ,WAAW,OAAW,OAAM,IAAI,UAAU,6DAA6D;AACnH,YAAM,EAAE,eAAe,iBAAiB,GAAG,eAAe,IAAI,QAAQ;AACtE,UAAI,oBAAoB,UAAa,oBAAoB,OAAQ,OAAM,IAAI,UAAU,+CAA+C;AACpI,UAAI;AACJ,UAAI;AACJ,UAAI,MAAM,aAAa,OAAO;AAC5B,cAAM,EAAE,UAAU,eAAe,GAAG,SAAS,IAAI;AACjD,cAAM,QAAQ,iBAAiB,MAAM;AACrC,YAAI,CAAC,OAAO,KAAK,EAAG,OAAM,IAAI,MAAM,oBAAoB,MAAM,EAAE,mDAAmD;AACnH,YAAI,UAAU,OAAO,UAAU,KAAM,OAAM,IAAI,MAAM,2DAA2D;AAChH,eAAO,qBAAqB,mBAAmB,KAAK,CAAC;AACrD,eAAO,EAAE,MAAM,QAAQ,QAAQ,UAAU,MAAM,IAAI,gBAAgB,aAAa,UAAU,MAAM,QAAQ,EAAE;AAAA,MAC5G,OAAO;AACL,eAAO;AACP,eAAO,EAAE,GAAG,aAAa,gBAAgB,MAAM,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,UAAU,MAAM,GAAG;AAAA,MACvG;AACA,YAAM,MAAM,IAAI,IAAI,MAAM,OAAO;AACjC,UAAI,aAAa,IAAI,iBAAiB,MAAM;AAC5C,YAAM,UAAU,SAAS,MAAM,OAAO,eAAe;AACrD,aAAO,iBAAiB,WAAW;AAAA,QACjC,KAAK,IAAI;AAAA,QACT,QAAQ;AAAA,QACR,SAAS,CAAC,CAAC,cAAc,MAAM,GAAG,GAAG,QAAQ,SAAS,CAAC,UAAU,MAAM,UAAW,CAAC;AAAA,QACnF,MAAM,QAAQ;AAAA,QACd,QAAQ,QAAQ;AAAA,MAClB,GAAG,OAAO,gBAAgB;AAAA,IAC5B;AAAA,EACF;AACF;",
|
|
6
|
-
"names": ["result", "response", "matches", "ascii", "binary", "result"]
|
|
7
|
-
}
|
|
File without changes
|