poe-code 15.0.21 → 15.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/metafile.json +1 -1
  2. package/package.json +1 -1
  3. package/packages/safe-bash/dist/chunks/{chunk-UO33SQJU.js → chunk-2PQ3XOCQ.js} +239 -2
  4. package/packages/safe-bash/dist/chunks/chunk-2PQ3XOCQ.js.map +7 -0
  5. package/packages/safe-bash/dist/chunks/{chunk-WISNTI7E.js → chunk-3Y5PKSHX.js} +7 -11
  6. package/packages/safe-bash/dist/chunks/{chunk-WISNTI7E.js.map → chunk-3Y5PKSHX.js.map} +1 -1
  7. package/packages/safe-bash/dist/chunks/{chunk-VY5N6O6I.js → chunk-BXVGCJXW.js} +108 -21
  8. package/packages/safe-bash/dist/chunks/chunk-BXVGCJXW.js.map +7 -0
  9. package/packages/safe-bash/dist/chunks/chunk-C7QNJ3D4.js +13 -0
  10. package/packages/safe-bash/dist/chunks/chunk-C7QNJ3D4.js.map +7 -0
  11. package/packages/safe-bash/dist/chunks/{chunk-AWP6Z3RR.js → chunk-E3NZKSTA.js} +8 -12
  12. package/packages/safe-bash/dist/chunks/{chunk-AWP6Z3RR.js.map → chunk-E3NZKSTA.js.map} +1 -1
  13. package/packages/safe-bash/dist/chunks/{chunk-WXUZXY35.js → chunk-FMTBJ7SG.js} +3 -3
  14. package/packages/safe-bash/dist/chunks/{chunk-QX2X5EC5.js → chunk-H6E6F5KJ.js} +7 -11
  15. package/packages/safe-bash/dist/chunks/{chunk-QX2X5EC5.js.map → chunk-H6E6F5KJ.js.map} +1 -1
  16. package/packages/safe-bash/dist/chunks/{chunk-IDJQT32M.js → chunk-HQCBEAFK.js} +7 -11
  17. package/packages/safe-bash/dist/chunks/{chunk-IDJQT32M.js.map → chunk-HQCBEAFK.js.map} +1 -1
  18. package/packages/safe-bash/dist/chunks/{chunk-4V3NGZAG.js → chunk-IYFB6VED.js} +6 -10
  19. package/packages/safe-bash/dist/chunks/{chunk-4V3NGZAG.js.map → chunk-IYFB6VED.js.map} +1 -1
  20. package/packages/safe-bash/dist/chunks/chunk-KJYVSFGF.js +284 -0
  21. package/packages/safe-bash/dist/chunks/chunk-KJYVSFGF.js.map +7 -0
  22. package/packages/safe-bash/dist/chunks/{chunk-O7BRWSKX.js → chunk-LHKAA57T.js} +60 -17
  23. package/packages/safe-bash/dist/chunks/chunk-LHKAA57T.js.map +7 -0
  24. package/packages/safe-bash/dist/chunks/chunk-LR32SJ3D.js +915 -0
  25. package/packages/safe-bash/dist/chunks/chunk-LR32SJ3D.js.map +7 -0
  26. package/packages/safe-bash/dist/chunks/{chunk-EUNOVYVT.js → chunk-OECKXHVJ.js} +2 -2
  27. package/packages/safe-bash/dist/chunks/{chunk-DKT746UJ.js → chunk-PE5NZIA2.js} +5 -9
  28. package/packages/safe-bash/dist/chunks/{chunk-DKT746UJ.js.map → chunk-PE5NZIA2.js.map} +1 -1
  29. package/packages/safe-bash/dist/chunks/{chunk-4JW32W4B.js → chunk-PMBBUNNN.js} +7 -11
  30. package/packages/safe-bash/dist/chunks/{chunk-4JW32W4B.js.map → chunk-PMBBUNNN.js.map} +1 -1
  31. package/packages/safe-bash/dist/chunks/{chunk-YFFFBLBC.js → chunk-TJVKGNKA.js} +6 -10
  32. package/packages/safe-bash/dist/chunks/{chunk-YFFFBLBC.js.map → chunk-TJVKGNKA.js.map} +1 -1
  33. package/packages/safe-bash/dist/chunks/{chunk-FIY2BMTU.js → chunk-W3TLNFDB.js} +8 -12
  34. package/packages/safe-bash/dist/chunks/{chunk-FIY2BMTU.js.map → chunk-W3TLNFDB.js.map} +1 -1
  35. package/packages/safe-bash/dist/chunks/{chunk-PPFWG34Y.js → chunk-XBLVOMEJ.js} +2 -2
  36. package/packages/safe-bash/dist/chunks/{chunk-WJWYJDQE.js → chunk-XYVCXUGM.js} +7 -11
  37. package/packages/safe-bash/dist/chunks/{chunk-WJWYJDQE.js.map → chunk-XYVCXUGM.js.map} +1 -1
  38. package/packages/safe-bash/dist/commands/csplit/index.browser.js +4 -6
  39. package/packages/safe-bash/dist/commands/factor/index.browser.js +3 -5
  40. package/packages/safe-bash/dist/commands/getopt/index.browser.js +3 -5
  41. package/packages/safe-bash/dist/commands/hexdump/index.browser.js +3 -5
  42. package/packages/safe-bash/dist/commands/iconv/index.browser.js +3 -5
  43. package/packages/safe-bash/dist/commands/line-endings/index.browser.js +4 -6
  44. package/packages/safe-bash/dist/commands/llm/command.d.ts +3 -2
  45. package/packages/safe-bash/dist/commands/llm/command.d.ts.map +1 -1
  46. package/packages/safe-bash/dist/commands/llm/command.js +260 -181
  47. package/packages/safe-bash/dist/commands/llm/command.js.map +1 -1
  48. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.d.ts +3 -0
  49. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.d.ts.map +1 -0
  50. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.js +118 -0
  51. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.js.map +1 -0
  52. package/packages/safe-bash/dist/commands/llm/elevenlabs.d.ts +16 -0
  53. package/packages/safe-bash/dist/commands/llm/elevenlabs.d.ts.map +1 -0
  54. package/packages/safe-bash/dist/commands/llm/elevenlabs.js +120 -0
  55. package/packages/safe-bash/dist/commands/llm/elevenlabs.js.map +1 -0
  56. package/packages/safe-bash/dist/commands/llm/index.browser.js +10 -4
  57. package/packages/safe-bash/dist/commands/llm/index.d.ts +5 -5
  58. package/packages/safe-bash/dist/commands/llm/index.d.ts.map +1 -1
  59. package/packages/safe-bash/dist/commands/llm/index.js +3 -11
  60. package/packages/safe-bash/dist/commands/llm/index.js.map +1 -1
  61. package/packages/safe-bash/dist/commands/llm/mime.d.ts +2 -1
  62. package/packages/safe-bash/dist/commands/llm/mime.d.ts.map +1 -1
  63. package/packages/safe-bash/dist/commands/llm/mime.js +125 -21
  64. package/packages/safe-bash/dist/commands/llm/mime.js.map +1 -1
  65. package/packages/safe-bash/dist/commands/llm/openai-http.d.ts +9 -0
  66. package/packages/safe-bash/dist/commands/llm/openai-http.d.ts.map +1 -0
  67. package/packages/safe-bash/dist/commands/llm/openai-http.js +144 -0
  68. package/packages/safe-bash/dist/commands/llm/openai-http.js.map +1 -0
  69. package/packages/safe-bash/dist/commands/llm/openai-sse.d.ts +3 -0
  70. package/packages/safe-bash/dist/commands/llm/openai-sse.d.ts.map +1 -0
  71. package/packages/safe-bash/dist/commands/llm/openai-sse.js +67 -0
  72. package/packages/safe-bash/dist/commands/llm/openai-sse.js.map +1 -0
  73. package/packages/safe-bash/dist/commands/llm/openai.d.ts +15 -0
  74. package/packages/safe-bash/dist/commands/llm/openai.d.ts.map +1 -0
  75. package/packages/safe-bash/dist/commands/llm/openai.js +203 -0
  76. package/packages/safe-bash/dist/commands/llm/openai.js.map +1 -0
  77. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.d.ts +1 -15
  78. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.d.ts.map +1 -1
  79. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.js +1 -50
  80. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.js.map +1 -1
  81. package/packages/safe-bash/dist/commands/llm/providers/index.browser.js +2 -4
  82. package/packages/safe-bash/dist/commands/llm/providers/openai.d.ts +1 -14
  83. package/packages/safe-bash/dist/commands/llm/providers/openai.d.ts.map +1 -1
  84. package/packages/safe-bash/dist/commands/llm/providers/openai.js +1 -77
  85. package/packages/safe-bash/dist/commands/llm/providers/openai.js.map +1 -1
  86. package/packages/safe-bash/dist/commands/llm/providers/shared.d.ts +4 -14
  87. package/packages/safe-bash/dist/commands/llm/providers/shared.d.ts.map +1 -1
  88. package/packages/safe-bash/dist/commands/llm/providers/shared.js +3 -156
  89. package/packages/safe-bash/dist/commands/llm/providers/shared.js.map +1 -1
  90. package/packages/safe-bash/dist/commands/network/index.browser.js +8 -13
  91. package/packages/safe-bash/dist/commands/pr/index.browser.js +3 -5
  92. package/packages/safe-bash/dist/commands/tsort/index.browser.js +3 -5
  93. package/packages/safe-bash/dist/commands/xml/index.browser.js +4 -7
  94. package/packages/safe-bash/dist/commands/yq/index.browser.js +5 -8
  95. package/packages/safe-bash/dist/core.browser.js +36 -43
  96. package/packages/safe-bash/dist/core.browser.js.map +1 -1
  97. package/packages/safe-bash/dist/chunks/chunk-BZUQJTOZ.js +0 -322
  98. package/packages/safe-bash/dist/chunks/chunk-BZUQJTOZ.js.map +0 -7
  99. package/packages/safe-bash/dist/chunks/chunk-EUTSYRNM.js +0 -111
  100. package/packages/safe-bash/dist/chunks/chunk-EUTSYRNM.js.map +0 -7
  101. package/packages/safe-bash/dist/chunks/chunk-F5AOPLRZ.js +0 -355
  102. package/packages/safe-bash/dist/chunks/chunk-F5AOPLRZ.js.map +0 -7
  103. package/packages/safe-bash/dist/chunks/chunk-FDGESHPB.js +0 -224
  104. package/packages/safe-bash/dist/chunks/chunk-FDGESHPB.js.map +0 -7
  105. package/packages/safe-bash/dist/chunks/chunk-KYU6MXVK.js +0 -58
  106. package/packages/safe-bash/dist/chunks/chunk-KYU6MXVK.js.map +0 -7
  107. package/packages/safe-bash/dist/chunks/chunk-O7BRWSKX.js.map +0 -7
  108. package/packages/safe-bash/dist/chunks/chunk-TTTOMUAY.js +0 -33
  109. package/packages/safe-bash/dist/chunks/chunk-TTTOMUAY.js.map +0 -7
  110. package/packages/safe-bash/dist/chunks/chunk-UO33SQJU.js.map +0 -7
  111. package/packages/safe-bash/dist/chunks/chunk-VY5N6O6I.js.map +0 -7
  112. /package/packages/safe-bash/dist/chunks/{chunk-WXUZXY35.js.map → chunk-FMTBJ7SG.js.map} +0 -0
  113. /package/packages/safe-bash/dist/chunks/{chunk-EUNOVYVT.js.map → chunk-OECKXHVJ.js.map} +0 -0
  114. /package/packages/safe-bash/dist/chunks/{chunk-PPFWG34Y.js.map → chunk-XBLVOMEJ.js.map} +0 -0
@@ -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 });\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": "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",
6
+ "names": ["result", "response", "matches", "ascii", "binary", "result"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  outputFailure,
3
3
  writeBytes
4
- } from "./chunk-FDGESHPB.js";
4
+ } from "./chunk-2PQ3XOCQ.js";
5
5
  import {
6
6
  init_platform
7
7
  } from "./chunk-2KL6W6NB.js";
@@ -148,4 +148,4 @@ function createOutputOperation(context, destination) {
148
148
  export {
149
149
  createOutputOperation
150
150
  };
151
- //# sourceMappingURL=chunk-EUNOVYVT.js.map
151
+ //# sourceMappingURL=chunk-OECKXHVJ.js.map
@@ -1,17 +1,13 @@
1
1
  import {
2
2
  createOutputOperation
3
- } from "./chunk-EUNOVYVT.js";
4
- import {
5
- PublicDiagnostic
6
- } from "./chunk-TTTOMUAY.js";
3
+ } from "./chunk-OECKXHVJ.js";
7
4
  import {
5
+ PublicDiagnostic,
8
6
  getCommandArguments,
9
7
  shellValueByteLength,
10
- shellValueBytes
11
- } from "./chunk-UO33SQJU.js";
12
- import {
8
+ shellValueBytes,
13
9
  yieldTurn
14
- } from "./chunk-FDGESHPB.js";
10
+ } from "./chunk-2PQ3XOCQ.js";
15
11
  import {
16
12
  init_platform
17
13
  } from "./chunk-2KL6W6NB.js";
@@ -624,4 +620,4 @@ export {
624
620
  createGetoptCommands,
625
621
  getoptCommands
626
622
  };
627
- //# sourceMappingURL=chunk-DKT746UJ.js.map
623
+ //# sourceMappingURL=chunk-PE5NZIA2.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/commands/getopt/index.ts", "../../src/commands/getopt/command.ts", "../../src/commands/getopt/internal.ts", "../../src/commands/getopt/io.ts", "../../src/commands/getopt/parser.ts"],
4
4
  "sourcesContent": ["import type { CommandDefinition, VirtualShellPlugin } from \"../../contracts/index.js\";\nimport { createGetoptCommand } from \"./command.js\";\nimport type { GetoptCommandsOptions } from \"./internal.js\";\n\nexport { createGetoptCommand } from \"./command.js\";\nexport type { GetoptCommandsOptions, GetoptLimits } from \"./internal.js\";\n\nexport function createGetoptCommands(options: GetoptCommandsOptions = {}): readonly CommandDefinition[] {\n return [createGetoptCommand(options)];\n}\n\nexport function getoptCommands(options: GetoptCommandsOptions = {}): VirtualShellPlugin {\n const commands = createGetoptCommands(options);\n return { name: \"getopt-commands\", setup(host) {\n for (const command of commands) host.commands.register(command, { replace: options.replace ?? false });\n } };\n}\n", "import type { CommandDefinition } from \"../../contracts/index.js\";\nimport { createOutputOperation } from \"../../contracts/output.js\";\nimport { Budget, GetoptError, settings, type GetoptCommandsOptions } from \"./internal.js\";\nimport { Writer } from \"./io.js\";\nimport { Parser, addLongOptions, findShort, type LongOption } from \"./parser.js\";\n\nconst wrapperOptions: readonly LongOption[] = [\n { name: \"options\", argument: 1, code: \"o\" }, { name: \"longoptions\", argument: 1, code: \"l\" },\n { name: \"quiet\", argument: 0, code: \"q\" }, { name: \"quiet-output\", argument: 0, code: \"Q\" },\n { name: \"shell\", argument: 1, code: \"s\" }, { name: \"test\", argument: 0, code: \"T\" },\n { name: \"unquoted\", argument: 0, code: \"u\" }, { name: \"help\", argument: 0, code: \"h\" },\n { name: \"alternative\", argument: 0, code: \"a\" }, { name: \"name\", argument: 1, code: \"n\" },\n { name: \"version\", argument: 0, code: \"V\" },\n];\n\nexport function createGetoptCommand(options: GetoptCommandsOptions = {}): CommandDefinition {\n const limits = settings(options);\n return { name: \"getopt\", description: \"Parse short and long options and emit shell-quoted arguments\", async execute(context) {\n const output = createOutputOperation(context, context.stdout);\n const budget = new Budget(context, limits, output.signal);\n let writer: Writer | undefined;\n let failure: { reason: unknown } | undefined;\n let primary: { reason: unknown } | undefined;\n let exitCode = 0;\n try {\n writer = new Writer(budget, output);\n const args = await budget.arguments();\n const compatible = context.env.GETOPT_COMPATIBLE !== undefined;\n const posix = context.env.POSIXLY_CORRECT !== undefined;\n let specification: string | undefined;\n let parameters = args;\n const longOptions: LongOption[] = [];\n let quote = true, tcsh = false, quiet = false, quietOutput = false, alternative = false;\n let name = \"getopt\";\n let complete = false;\n if (!args.length) {\n if (!compatible) throw new GetoptError(\"missing optstring argument\", 2, true);\n await writer.send([\" --\\n\"]);\n complete = true;\n } else if (compatible || args[0]![0] !== \"-\") {\n let start = 0;\n while (args[0]![start] === \"+\" || args[0]![start] === \"-\") { await budget.step(); start++; }\n specification = args[0]!.slice(start);\n budget.schema(specification.length);\n parameters = args.slice(1);\n quote = false;\n } else {\n const wrapper = new Parser(args, \"+ao:l:n:qQs:TuhV\", wrapperOptions, false, posix, false, \"getopt\", budget, writer);\n for (;;) {\n const parsed = await wrapper.next();\n if (!parsed) break;\n if (parsed.kind === \"error\") { await writer.send([\"Try 'getopt --help' for more information.\\n\"], true); exitCode = 2; complete = true; break; }\n if (parsed.kind === \"operand\") throw new GetoptError(\"unexpected wrapper operand\");\n const option = parsed.kind === \"long\" ? parsed.option.code : parsed.option;\n switch (option) {\n case \"o\": specification = parsed.argument!; budget.schema(specification.length); break;\n case \"l\": await addLongOptions(parsed.argument!, longOptions, budget); break;\n case \"n\": name = parsed.argument!; break;\n case \"a\": alternative = true; break;\n case \"q\": quiet = true; break;\n case \"Q\": quietOutput = true; break;\n case \"u\": quote = false; break;\n case \"s\":\n if (parsed.argument === \"bash\" || parsed.argument === \"sh\") tcsh = false;\n else if (parsed.argument === \"tcsh\" || parsed.argument === \"csh\") tcsh = true;\n else throw new GetoptError(\"unknown shell after -s or --shell argument\", 2, true);\n break;\n case \"T\": exitCode = 4; complete = true; break;\n case \"V\": await writer.send([\"getopt (virtual-bash)\\n\"]); complete = true; break;\n case \"h\":\n await writer.send([\"Usage: getopt [OPTIONS] -o OPTSTRING [--] PARAMETERS...\\nParse short and long options and emit shell-quoted arguments.\\nOptions: -a, --alternative; -l, --longoptions; -n, --name; -o, --options;\\n -q, --quiet; -Q, --quiet-output; -s, --shell; -T, --test;\\n -u, --unquoted; -h, --help; -V, --version\\n\"]);\n complete = true; break;\n }\n if (complete) break;\n }\n if (!complete) {\n if (specification === undefined) {\n if (wrapper.index === args.length) throw new GetoptError(\"missing optstring argument\", 2, true);\n specification = args[wrapper.index++]!;\n budget.schema(specification.length);\n }\n parameters = args.slice(wrapper.index);\n }\n }\n if (!complete) {\n const parser = new Parser(parameters, specification!, longOptions, alternative, posix, quiet, name, budget, writer);\n for (;;) {\n const parsed = await parser.next();\n if (!parsed) break;\n if (parsed.kind === \"error\") { exitCode = 1; continue; }\n if (quietOutput) continue;\n if (parsed.kind === \"operand\") await writer.normalized(parsed.argument ?? \"\", quote, tcsh);\n else if (parsed.kind === \"long\") {\n await writer.send([\" --\", parsed.option.name]);\n if (parsed.option.argument) await writer.normalized(parsed.argument ?? \"\", quote, tcsh);\n } else {\n await writer.send([\" -\", parsed.option]);\n const offset = await findShort(specification!, parsed.option, 0, budget);\n if (offset >= 0 && specification![offset + 1] === \":\") await writer.normalized(parsed.argument ?? \"\", quote, tcsh);\n }\n }\n if (!quietOutput) {\n await writer.send([\" --\"]);\n for (const operand of parser.operands) await writer.normalized(operand, quote, tcsh);\n for (let index = parser.index; index < parameters.length; index++) await writer.normalized(parameters[index]!, quote, tcsh);\n await writer.send([\"\\n\"]);\n }\n }\n } catch (error) {\n primary = { reason: error };\n if (error instanceof GetoptError && !output.signal.aborted && writer) {\n exitCode = error.status;\n try { await writer.send([\"getopt: \", error.message, \"\\n\", error.usage ? \"Try 'getopt --help' for more information.\\n\" : \"\"], true); }\n catch (reporting) { failure = { reason: new AggregateError([error, reporting], \"getopt failure reporting failed\") }; }\n } else failure = { reason: error };\n }\n try { await output.close(); }\n catch (cleanup) {\n const previous = failure ?? primary;\n failure = { reason: previous ? new AggregateError([previous.reason, cleanup], \"getopt execution and cleanup failed\") : cleanup };\n }\n context.signal.throwIfAborted();\n output.signal.throwIfAborted();\n if (failure) throw failure.reason;\n return { exitCode };\n } };\n}\n", "import { getCommandArguments, type CommandContext } from \"../../contracts/index.js\";\nimport { shellValueByteLength, shellValueBytes } from \"../../contracts/value.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport { PublicDiagnostic } from \"../../diagnostics.js\";\n\nexport interface GetoptLimits {\n readonly maxArguments: number;\n readonly maxArgumentBytes: number;\n readonly maxInputBytes: number;\n readonly maxSchemaBytes: number;\n readonly maxLongOptions: number;\n readonly maxBufferedBytes: number;\n readonly maxOutputBytes: number;\n readonly maxDiagnosticBytes: number;\n readonly maxWork: number;\n}\n\nexport interface GetoptCommandsOptions {\n readonly replace?: boolean;\n readonly limits?: Partial<GetoptLimits>;\n}\n\nexport function settings(options: GetoptCommandsOptions): GetoptLimits {\n const limits: GetoptLimits = {\n maxArguments: 4096, maxArgumentBytes: 65_536, maxInputBytes: 1_048_576,\n maxSchemaBytes: 65_536, maxLongOptions: 4096, maxBufferedBytes: 4_194_304,\n maxOutputBytes: 8_388_608, maxDiagnosticBytes: 65_536, maxWork: 8_388_608,\n ...options.limits,\n };\n for (const [name, value] of Object.entries(limits)) {\n if (!Number.isSafeInteger(value) || value < 1) throw new RangeError(`Invalid getopt limit: ${name}`);\n }\n return Object.freeze(limits);\n}\n\nexport class GetoptError extends PublicDiagnostic {\n constructor(message: string, readonly status = 3, readonly usage = false) { super(message); }\n}\n\nexport class Budget {\n private work = 0;\n private quantum = 0;\n private retained = 0;\n private diagnosticRetained = 0;\n private schemaBytes = 0;\n private output = 0;\n private diagnostics = 0;\n constructor(readonly context: CommandContext, readonly limits: GetoptLimits, readonly signal: AbortSignal) {}\n check(value: number, maximum: number, label: string): void {\n if (!Number.isSafeInteger(value) || value < 0 || value > maximum) throw new GetoptError(`${label} limit exceeded`);\n }\n async step(amount = 1, diagnostic = false): Promise<void> {\n this.signal.throwIfAborted();\n if (!diagnostic) { this.check(this.work + amount, this.limits.maxWork, \"work\"); this.work += amount; }\n this.quantum += amount;\n if (this.quantum >= 1024) { this.quantum = 0; await yieldTurn(this.signal); }\n }\n retain(amount: number, diagnostic = false): void {\n if (diagnostic) {\n this.check(this.diagnosticRetained + amount, this.limits.maxDiagnosticBytes, \"diagnostic buffered bytes\");\n this.diagnosticRetained += amount;\n } else {\n this.check(this.retained + amount, this.limits.maxBufferedBytes, \"buffered bytes\");\n this.retained += amount;\n }\n }\n schema(amount: number): void {\n this.check(this.schemaBytes + amount, this.limits.maxSchemaBytes, \"schema bytes\");\n this.schemaBytes += amount;\n }\n room(amount: number, diagnostic = false): void {\n this.check((diagnostic ? this.diagnostics : this.output) + amount,\n diagnostic ? this.limits.maxDiagnosticBytes : this.limits.maxOutputBytes, diagnostic ? \"diagnostic bytes\" : \"output bytes\");\n }\n emitted(amount: number, diagnostic: boolean): void {\n this.room(amount, diagnostic);\n if (diagnostic) this.diagnostics += amount;\n else this.output += amount;\n }\n async arguments(): Promise<string[]> {\n const args = this.context.args;\n this.signal.throwIfAborted();\n this.check(args.length, this.limits.maxArguments, \"argument count\");\n let total = 0;\n for (const argument of args) {\n this.check(argument.length, this.limits.maxArgumentBytes, \"argument bytes\");\n total += argument.length;\n this.check(total, this.limits.maxInputBytes, \"input bytes\");\n for (let offset = 0; offset < argument.length; offset++) {\n await this.step();\n const unit = argument.charCodeAt(offset);\n if (unit >= 0xd800 && unit <= 0xdbff) {\n const next = argument.charCodeAt(++offset);\n if (!(next >= 0xdc00 && next <= 0xdfff)) throw new GetoptError(\"arguments must contain well-formed Unicode\", 2);\n } else if (unit >= 0xdc00 && unit <= 0xdfff) throw new GetoptError(\"arguments must contain well-formed Unicode\", 2);\n }\n }\n const values = this.context.argumentValues === undefined ? args : getCommandArguments(this.context).values;\n total = 0;\n for (const argument of values) {\n await this.step();\n const size = shellValueByteLength(argument);\n this.check(size, this.limits.maxArgumentBytes, \"argument bytes\");\n total += size;\n this.check(total, this.limits.maxInputBytes, \"input bytes\");\n }\n this.retain(total * 8 + args.length * 64 + 256);\n this.signal.throwIfAborted();\n const owned = getCommandArguments(this.context).values;\n const result: string[] = [];\n for (const argument of owned) {\n await this.step();\n const value = shellValueBytes(argument);\n let text = \"\";\n for (let offset = 0; offset < value.length; offset += 256) {\n const end = Math.min(offset + 256, value.length);\n for (let index = offset; index < end; index++) {\n await this.step();\n if (value[index] === 0) throw new GetoptError(\"NUL is not supported in arguments\", 2);\n }\n text += String.fromCharCode(...value.subarray(offset, end));\n }\n result.push(text);\n }\n return result;\n }\n}\n", "import type { OutputOperation } from \"../../contracts/output.js\";\nimport { Budget, GetoptError } from \"./internal.js\";\n\nexport class Writer {\n private readonly pending = new Set<Promise<unknown>>();\n private closing: Promise<void> | undefined;\n constructor(readonly budget: Budget, output: OutputOperation) { output.registerCleanup(() => this.close()); }\n assertOpen(): void {\n this.budget.signal.throwIfAborted();\n if (this.closing) throw new GetoptError(\"command is closed\");\n }\n close(): Promise<void> {\n return this.closing ??= Promise.resolve().then(async () => {\n while (this.pending.size) await Promise.allSettled([...this.pending]);\n });\n }\n private async publish(length: number, diagnostic: boolean, fill: (buffer: Uint8Array) => Promise<void>): Promise<void> {\n this.assertOpen();\n this.budget.emitted(length, diagnostic);\n this.budget.retain(length, diagnostic);\n const pending = Promise.resolve().then(async () => {\n this.assertOpen();\n const buffer = new Uint8Array(length);\n await fill(buffer);\n this.assertOpen();\n const sink = diagnostic ? this.budget.context.stderr : this.budget.context.stdout;\n this.assertOpen();\n const destination = sink.ownedOutput ?? sink;\n this.assertOpen();\n const write = destination.write;\n this.assertOpen();\n await Reflect.apply(write, destination, [buffer]);\n });\n this.pending.add(pending);\n try { await pending; this.assertOpen(); }\n finally { this.pending.delete(pending); this.budget.retain(-length, diagnostic); }\n }\n async send(parts: readonly string[], diagnostic = false): Promise<void> {\n let length = 0;\n for (const part of parts) { await this.budget.step(1, diagnostic); length += part.length; this.budget.room(length, diagnostic); }\n await this.publish(length, diagnostic, async buffer => {\n let offset = 0;\n for (const part of parts) for (let index = 0; index < part.length; index++) {\n await this.budget.step(1, diagnostic);\n buffer[offset++] = part.charCodeAt(index);\n }\n });\n }\n async normalized(value: string, quote: boolean, tcsh: boolean): Promise<void> {\n if (!quote) { await this.send([\" \", value]); return; }\n let length = 3;\n for (let offset = 0; offset < value.length; offset++) {\n await this.budget.step();\n const code = value.charCodeAt(offset);\n length += code === 39 || (tcsh && (code === 33 || code === 9 || code === 11 || code === 12 || code === 13 || code === 32)) ? 4\n : tcsh && (code === 92 || code === 10) ? 2 : 1;\n this.budget.room(length);\n }\n await this.publish(length, false, async buffer => {\n let offset = 0;\n buffer[offset++] = 32;\n buffer[offset++] = 39;\n for (let index = 0; index < value.length; index++) {\n const code = value.charCodeAt(index);\n await this.budget.step();\n if (code === 39 || (tcsh && (code === 33 || code === 9 || code === 11 || code === 12 || code === 13 || code === 32))) {\n buffer[offset++] = 39; buffer[offset++] = 92; buffer[offset++] = code; buffer[offset++] = 39;\n } else if (tcsh && (code === 92 || code === 10)) {\n buffer[offset++] = 92; buffer[offset++] = code === 10 ? 110 : 92;\n } else buffer[offset++] = code;\n }\n buffer[offset] = 39;\n });\n }\n}\n", "import { Budget, GetoptError } from \"./internal.js\";\nimport type { Writer } from \"./io.js\";\n\nexport interface LongOption { readonly name: string; readonly argument: 0 | 1 | 2; readonly code?: string; }\nexport type ParsedOption =\n | { readonly kind: \"short\"; readonly option: string; readonly argument: string | undefined }\n | { readonly kind: \"long\"; readonly option: LongOption; readonly argument: string | undefined }\n | { readonly kind: \"operand\"; readonly argument: string | undefined }\n | { readonly kind: \"error\" };\n\nexport async function findShort(specification: string, option: string, start: number, budget: Budget): Promise<number> {\n for (let offset = start; offset < specification.length; offset++) {\n await budget.step();\n if (specification[offset] === option) return offset;\n }\n return -1;\n}\n\nexport async function addLongOptions(value: string, options: LongOption[], budget: Budget): Promise<void> {\n budget.schema(value.length);\n let start = 0;\n for (let offset = 0; offset <= value.length; offset++) {\n await budget.step();\n const code = value.charCodeAt(offset);\n if (offset !== value.length && code !== 44 && code !== 32 && code !== 9 && code !== 10) continue;\n if (offset > start) {\n let end = offset;\n let argument: 0 | 1 | 2 = 0;\n if (value[end - 1] === \":\") { argument = 1; end--; if (end > start && value[end - 1] === \":\") { argument = 2; end--; } }\n if (end === start) throw new GetoptError(\"empty long option after -l or --long argument\", 2, true);\n budget.check(options.length + 1, budget.limits.maxLongOptions, \"long option count\");\n budget.retain((end - start) * 2 + 64);\n options.push({ name: value.slice(start, end), argument });\n }\n start = offset + 1;\n }\n}\n\nexport class Parser {\n index = 0;\n private offset = 0;\n private ended = false;\n readonly operands: string[] = [];\n private readonly start: number;\n private readonly order: \"require\" | \"return\" | \"permute\";\n private readonly silent: boolean;\n constructor(readonly args: readonly string[], readonly specification: string, readonly options: readonly LongOption[],\n readonly alternative: boolean, posix: boolean, quiet: boolean, readonly name: string, readonly budget: Budget,\n readonly writer: Writer) {\n this.start = specification[0] === \"+\" || specification[0] === \"-\" ? 1 : 0;\n this.order = specification[0] === \"-\" ? \"return\" : specification[0] === \"+\" || posix ? \"require\" : \"permute\";\n this.silent = quiet || specification[this.start] === \":\";\n }\n private async error(parts: readonly string[]): Promise<ParsedOption> {\n if (!this.silent) await this.writer.send([this.name, ...parts], true);\n return { kind: \"error\" };\n }\n private async long(value: string, prefix: string, fallback: boolean): Promise<ParsedOption | null> {\n let end = 0;\n while (end < value.length && value[end] !== \"=\") { await this.budget.step(); end++; }\n const lease = this.options.length * 64 + 128;\n this.budget.retain(lease);\n try {\n const matches: LongOption[] = [];\n let exact: LongOption | undefined;\n for (const option of this.options) {\n await this.budget.step();\n let matched = option.name.length >= end;\n for (let offset = 0; matched && offset < end; offset++) {\n await this.budget.step();\n if (option.name[offset] !== value[offset]) matched = false;\n }\n if (!matched) continue;\n if (option.name.length === end) { exact = option; break; }\n matches.push(option);\n }\n if (!exact && matches.length > 1) {\n this.index++; this.offset = 0;\n if (!this.silent) {\n const parts = [this.name, \": option '\", prefix, value, \"' is ambiguous; possibilities:\"];\n for (const option of matches) parts.push(\" '\", prefix, option.name, \"'\");\n parts.push(\"\\n\");\n await this.writer.send(parts, true);\n }\n return { kind: \"error\" };\n }\n const option = exact ?? matches[0];\n if (!option) {\n if (fallback && await findShort(this.specification, value[0] ?? \"\", this.start, this.budget) >= 0) return null;\n this.index++; this.offset = 0;\n return await this.error([\": unrecognized option '\", prefix, value, \"'\\n\"]);\n }\n this.index++; this.offset = 0;\n let argument: string | undefined;\n if (end < value.length) {\n if (!option.argument) return await this.error([\": option '\", prefix, option.name, \"' doesn't allow an argument\\n\"]);\n argument = value.slice(end + 1);\n } else if (option.argument === 1) {\n if (this.index === this.args.length) return await this.error([\": option '\", prefix, option.name, \"' requires an argument\\n\"]);\n argument = this.args[this.index++];\n }\n return { kind: \"long\", option, argument };\n } finally { this.budget.retain(-lease); }\n }\n async next(): Promise<ParsedOption | undefined> {\n await this.budget.step();\n if (this.ended) return undefined;\n if (!this.offset) {\n while (this.index < this.args.length) {\n await this.budget.step();\n const argument = this.args[this.index]!;\n if (argument === \"--\") { this.index++; this.ended = true; return undefined; }\n if (argument.length > 1 && argument[0] === \"-\") break;\n if (this.order === \"require\") { this.ended = true; return undefined; }\n this.index++;\n if (this.order === \"return\") return { kind: \"operand\", argument };\n this.budget.retain(8);\n this.operands.push(argument);\n }\n if (this.index === this.args.length) { this.ended = true; return undefined; }\n const argument = this.args[this.index]!;\n if (argument[1] === \"-\") return (await this.long(argument.slice(2), \"--\", false))!;\n if (this.alternative && (argument.length > 2 || await findShort(this.specification, argument[1]!, this.start, this.budget) < 0)) {\n const result = await this.long(argument.slice(1), \"-\", true);\n if (result) return result;\n }\n this.offset = 1;\n }\n const current = this.args[this.index]!;\n const option = current[this.offset++]!;\n if (this.offset === current.length) { this.offset = 0; this.index++; }\n const found = await findShort(this.specification, option, this.start, this.budget);\n if (found < 0 || option === \":\" || option === \";\") return this.error([\": invalid option -- '\", option, \"'\\n\"]);\n if (option === \"W\" && this.specification[found + 1] === \";\") {\n if (!this.offset && this.index === this.args.length) return this.error([\": option requires an argument -- 'W'\\n\"]);\n const value = this.offset ? current.slice(this.offset) : this.args[this.index]!;\n return (await this.long(value, \"-W \", false))!;\n }\n let argument: string | undefined;\n if (this.specification[found + 1] === \":\") {\n if (this.offset) { argument = current.slice(this.offset); this.index++; }\n else if (this.specification[found + 2] !== \":\") {\n if (this.index === this.args.length) return this.error([\": option requires an argument -- '\", option, \"'\\n\"]);\n argument = this.args[this.index++];\n }\n this.offset = 0;\n }\n if (option === \"?\") return { kind: \"error\" };\n if (option === \"\\x01\") return { kind: \"operand\", argument };\n if (option === \"\\xff\") {\n this.budget.retain(-this.operands.length * 8);\n this.operands.length = 0;\n this.ended = true;\n return undefined;\n }\n return { kind: \"short\", option, argument };\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;ACAA;;;ACAA;AAsBO,SAAS,SAAS,SAA8C;AACrE,QAAM,SAAuB;AAAA,IAC3B,cAAc;AAAA,IAAM,kBAAkB;AAAA,IAAQ,eAAe;AAAA,IAC7D,gBAAgB;AAAA,IAAQ,gBAAgB;AAAA,IAAM,kBAAkB;AAAA,IAChE,gBAAgB;AAAA,IAAW,oBAAoB;AAAA,IAAQ,SAAS;AAAA,IAChE,GAAG,QAAQ;AAAA,EACb;AACA,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AAClD,QAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,EAAG,OAAM,IAAI,WAAW,yBAAyB,IAAI,EAAE;AAAA,EACrG;AACA,SAAO,OAAO,OAAO,MAAM;AAC7B;AAEO,IAAM,cAAN,cAA0B,iBAAiB;AAAA,EAChD,YAAY,SAA0B,SAAS,GAAY,QAAQ,OAAO;AAAE,UAAM,OAAO;AAAnD;AAAqB;AAAA,EAAiC;AAAA,EAAtD;AAAA,EAAqB;AAC7D;AAEO,IAAM,SAAN,MAAa;AAAA,EAQlB,YAAqB,SAAkC,QAA+B,QAAqB;AAAtF;AAAkC;AAA+B;AAAA,EAAsB;AAAA,EAAvF;AAAA,EAAkC;AAAA,EAA+B;AAAA,EAP9E,OAAO;AAAA,EACP,UAAU;AAAA,EACV,WAAW;AAAA,EACX,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,SAAS;AAAA,EACT,cAAc;AAAA,EAEtB,MAAM,OAAe,SAAiB,OAAqB;AACzD,QAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,KAAK,QAAQ,QAAS,OAAM,IAAI,YAAY,GAAG,KAAK,iBAAiB;AAAA,EACnH;AAAA,EACA,MAAM,KAAK,SAAS,GAAG,aAAa,OAAsB;AACxD,SAAK,OAAO,eAAe;AAC3B,QAAI,CAAC,YAAY;AAAE,WAAK,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAO,SAAS,MAAM;AAAG,WAAK,QAAQ;AAAA,IAAQ;AACrG,SAAK,WAAW;AAChB,QAAI,KAAK,WAAW,MAAM;AAAE,WAAK,UAAU;AAAG,YAAM,UAAU,KAAK,MAAM;AAAA,IAAG;AAAA,EAC9E;AAAA,EACA,OAAO,QAAgB,aAAa,OAAa;AAC/C,QAAI,YAAY;AACd,WAAK,MAAM,KAAK,qBAAqB,QAAQ,KAAK,OAAO,oBAAoB,2BAA2B;AACxG,WAAK,sBAAsB;AAAA,IAC7B,OAAO;AACL,WAAK,MAAM,KAAK,WAAW,QAAQ,KAAK,OAAO,kBAAkB,gBAAgB;AACjF,WAAK,YAAY;AAAA,IACnB;AAAA,EACF;AAAA,EACA,OAAO,QAAsB;AAC3B,SAAK,MAAM,KAAK,cAAc,QAAQ,KAAK,OAAO,gBAAgB,cAAc;AAChF,SAAK,eAAe;AAAA,EACtB;AAAA,EACA,KAAK,QAAgB,aAAa,OAAa;AAC7C,SAAK;AAAA,OAAO,aAAa,KAAK,cAAc,KAAK,UAAU;AAAA,MACzD,aAAa,KAAK,OAAO,qBAAqB,KAAK,OAAO;AAAA,MAAgB,aAAa,qBAAqB;AAAA,IAAc;AAAA,EAC9H;AAAA,EACA,QAAQ,QAAgB,YAA2B;AACjD,SAAK,KAAK,QAAQ,UAAU;AAC5B,QAAI,WAAY,MAAK,eAAe;AAAA,QAC/B,MAAK,UAAU;AAAA,EACtB;AAAA,EACA,MAAM,YAA+B;AACnC,UAAM,OAAO,KAAK,QAAQ;AAC1B,SAAK,OAAO,eAAe;AAC3B,SAAK,MAAM,KAAK,QAAQ,KAAK,OAAO,cAAc,gBAAgB;AAClE,QAAI,QAAQ;AACZ,eAAW,YAAY,MAAM;AAC3B,WAAK,MAAM,SAAS,QAAQ,KAAK,OAAO,kBAAkB,gBAAgB;AAC1E,eAAS,SAAS;AAClB,WAAK,MAAM,OAAO,KAAK,OAAO,eAAe,aAAa;AAC1D,eAAS,SAAS,GAAG,SAAS,SAAS,QAAQ,UAAU;AACvD,cAAM,KAAK,KAAK;AAChB,cAAM,OAAO,SAAS,WAAW,MAAM;AACvC,YAAI,QAAQ,SAAU,QAAQ,OAAQ;AACpC,gBAAM,OAAO,SAAS,WAAW,EAAE,MAAM;AACzC,cAAI,EAAE,QAAQ,SAAU,QAAQ,OAAS,OAAM,IAAI,YAAY,8CAA8C,CAAC;AAAA,QAChH,WAAW,QAAQ,SAAU,QAAQ,MAAQ,OAAM,IAAI,YAAY,8CAA8C,CAAC;AAAA,MACpH;AAAA,IACF;AACA,UAAM,SAAS,KAAK,QAAQ,mBAAmB,SAAY,OAAO,oBAAoB,KAAK,OAAO,EAAE;AACpG,YAAQ;AACR,eAAW,YAAY,QAAQ;AAC7B,YAAM,KAAK,KAAK;AAChB,YAAM,OAAO,qBAAqB,QAAQ;AAC1C,WAAK,MAAM,MAAM,KAAK,OAAO,kBAAkB,gBAAgB;AAC/D,eAAS;AACT,WAAK,MAAM,OAAO,KAAK,OAAO,eAAe,aAAa;AAAA,IAC5D;AACA,SAAK,OAAO,QAAQ,IAAI,KAAK,SAAS,KAAK,GAAG;AAC9C,SAAK,OAAO,eAAe;AAC3B,UAAM,QAAQ,oBAAoB,KAAK,OAAO,EAAE;AAChD,UAAM,SAAmB,CAAC;AAC1B,eAAW,YAAY,OAAO;AAC5B,YAAM,KAAK,KAAK;AAChB,YAAM,QAAQ,gBAAgB,QAAQ;AACtC,UAAI,OAAO;AACX,eAAS,SAAS,GAAG,SAAS,MAAM,QAAQ,UAAU,KAAK;AACzD,cAAM,MAAM,KAAK,IAAI,SAAS,KAAK,MAAM,MAAM;AAC/C,iBAAS,QAAQ,QAAQ,QAAQ,KAAK,SAAS;AAC7C,gBAAM,KAAK,KAAK;AAChB,cAAI,MAAM,KAAK,MAAM,EAAG,OAAM,IAAI,YAAY,qCAAqC,CAAC;AAAA,QACtF;AACA,gBAAQ,OAAO,aAAa,GAAG,MAAM,SAAS,QAAQ,GAAG,CAAC;AAAA,MAC5D;AACA,aAAO,KAAK,IAAI;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AACF;;;AC9HA;AAGO,IAAM,SAAN,MAAa;AAAA,EAGlB,YAAqB,QAAgB,QAAyB;AAAzC;AAA2C,WAAO,gBAAgB,MAAM,KAAK,MAAM,CAAC;AAAA,EAAG;AAAA,EAAvF;AAAA,EAFJ,UAAU,oBAAI,IAAsB;AAAA,EAC7C;AAAA,EAER,aAAmB;AACjB,SAAK,OAAO,OAAO,eAAe;AAClC,QAAI,KAAK,QAAS,OAAM,IAAI,YAAY,mBAAmB;AAAA,EAC7D;AAAA,EACA,QAAuB;AACrB,WAAO,KAAK,YAAY,QAAQ,QAAQ,EAAE,KAAK,YAAY;AACzD,aAAO,KAAK,QAAQ,KAAM,OAAM,QAAQ,WAAW,CAAC,GAAG,KAAK,OAAO,CAAC;AAAA,IACtE,CAAC;AAAA,EACH;AAAA,EACA,MAAc,QAAQ,QAAgB,YAAqB,MAA4D;AACrH,SAAK,WAAW;AAChB,SAAK,OAAO,QAAQ,QAAQ,UAAU;AACtC,SAAK,OAAO,OAAO,QAAQ,UAAU;AACrC,UAAM,UAAU,QAAQ,QAAQ,EAAE,KAAK,YAAY;AACjD,WAAK,WAAW;AAChB,YAAM,SAAS,IAAI,WAAW,MAAM;AACpC,YAAM,KAAK,MAAM;AACjB,WAAK,WAAW;AAChB,YAAM,OAAO,aAAa,KAAK,OAAO,QAAQ,SAAS,KAAK,OAAO,QAAQ;AAC3E,WAAK,WAAW;AAChB,YAAM,cAAc,KAAK,eAAe;AACxC,WAAK,WAAW;AAChB,YAAM,QAAQ,YAAY;AAC1B,WAAK,WAAW;AAChB,YAAM,QAAQ,MAAM,OAAO,aAAa,CAAC,MAAM,CAAC;AAAA,IAClD,CAAC;AACD,SAAK,QAAQ,IAAI,OAAO;AACxB,QAAI;AAAE,YAAM;AAAS,WAAK,WAAW;AAAA,IAAG,UACxC;AAAU,WAAK,QAAQ,OAAO,OAAO;AAAG,WAAK,OAAO,OAAO,CAAC,QAAQ,UAAU;AAAA,IAAG;AAAA,EACnF;AAAA,EACA,MAAM,KAAK,OAA0B,aAAa,OAAsB;AACtE,QAAI,SAAS;AACb,eAAW,QAAQ,OAAO;AAAE,YAAM,KAAK,OAAO,KAAK,GAAG,UAAU;AAAG,gBAAU,KAAK;AAAQ,WAAK,OAAO,KAAK,QAAQ,UAAU;AAAA,IAAG;AAChI,UAAM,KAAK,QAAQ,QAAQ,YAAY,OAAM,WAAU;AACrD,UAAI,SAAS;AACb,iBAAW,QAAQ,MAAO,UAAS,QAAQ,GAAG,QAAQ,KAAK,QAAQ,SAAS;AAC1E,cAAM,KAAK,OAAO,KAAK,GAAG,UAAU;AACpC,eAAO,QAAQ,IAAI,KAAK,WAAW,KAAK;AAAA,MAC1C;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,MAAM,WAAW,OAAe,OAAgB,MAA8B;AAC5E,QAAI,CAAC,OAAO;AAAE,YAAM,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC;AAAG;AAAA,IAAQ;AACrD,QAAI,SAAS;AACb,aAAS,SAAS,GAAG,SAAS,MAAM,QAAQ,UAAU;AACpD,YAAM,KAAK,OAAO,KAAK;AACvB,YAAM,OAAO,MAAM,WAAW,MAAM;AACpC,gBAAU,SAAS,MAAO,SAAS,SAAS,MAAM,SAAS,KAAK,SAAS,MAAM,SAAS,MAAM,SAAS,MAAM,SAAS,MAAO,IACzH,SAAS,SAAS,MAAM,SAAS,MAAM,IAAI;AAC/C,WAAK,OAAO,KAAK,MAAM;AAAA,IACzB;AACA,UAAM,KAAK,QAAQ,QAAQ,OAAO,OAAM,WAAU;AAChD,UAAI,SAAS;AACb,aAAO,QAAQ,IAAI;AACnB,aAAO,QAAQ,IAAI;AACnB,eAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;AACjD,cAAM,OAAO,MAAM,WAAW,KAAK;AACnC,cAAM,KAAK,OAAO,KAAK;AACvB,YAAI,SAAS,MAAO,SAAS,SAAS,MAAM,SAAS,KAAK,SAAS,MAAM,SAAS,MAAM,SAAS,MAAM,SAAS,KAAM;AACpH,iBAAO,QAAQ,IAAI;AAAI,iBAAO,QAAQ,IAAI;AAAI,iBAAO,QAAQ,IAAI;AAAM,iBAAO,QAAQ,IAAI;AAAA,QAC5F,WAAW,SAAS,SAAS,MAAM,SAAS,KAAK;AAC/C,iBAAO,QAAQ,IAAI;AAAI,iBAAO,QAAQ,IAAI,SAAS,KAAK,MAAM;AAAA,QAChE,MAAO,QAAO,QAAQ,IAAI;AAAA,MAC5B;AACA,aAAO,MAAM,IAAI;AAAA,IACnB,CAAC;AAAA,EACH;AACF;;;AC1EA;AAUA,eAAsB,UAAU,eAAuB,QAAgB,OAAe,QAAiC;AACrH,WAAS,SAAS,OAAO,SAAS,cAAc,QAAQ,UAAU;AAChE,UAAM,OAAO,KAAK;AAClB,QAAI,cAAc,MAAM,MAAM,OAAQ,QAAO;AAAA,EAC/C;AACA,SAAO;AACT;AAEA,eAAsB,eAAe,OAAe,SAAuB,QAA+B;AACxG,SAAO,OAAO,MAAM,MAAM;AAC1B,MAAI,QAAQ;AACZ,WAAS,SAAS,GAAG,UAAU,MAAM,QAAQ,UAAU;AACrD,UAAM,OAAO,KAAK;AAClB,UAAM,OAAO,MAAM,WAAW,MAAM;AACpC,QAAI,WAAW,MAAM,UAAU,SAAS,MAAM,SAAS,MAAM,SAAS,KAAK,SAAS,GAAI;AACxF,QAAI,SAAS,OAAO;AAClB,UAAI,MAAM;AACV,UAAI,WAAsB;AAC1B,UAAI,MAAM,MAAM,CAAC,MAAM,KAAK;AAAE,mBAAW;AAAG;AAAO,YAAI,MAAM,SAAS,MAAM,MAAM,CAAC,MAAM,KAAK;AAAE,qBAAW;AAAG;AAAA,QAAO;AAAA,MAAE;AACvH,UAAI,QAAQ,MAAO,OAAM,IAAI,YAAY,iDAAiD,GAAG,IAAI;AACjG,aAAO,MAAM,QAAQ,SAAS,GAAG,OAAO,OAAO,gBAAgB,mBAAmB;AAClF,aAAO,QAAQ,MAAM,SAAS,IAAI,EAAE;AACpC,cAAQ,KAAK,EAAE,MAAM,MAAM,MAAM,OAAO,GAAG,GAAG,SAAS,CAAC;AAAA,IAC1D;AACA,YAAQ,SAAS;AAAA,EACnB;AACF;AAEO,IAAM,SAAN,MAAa;AAAA,EAQlB,YAAqB,MAAkC,eAAgC,SAC5E,aAAsB,OAAgB,OAAyB,MAAuB,QACtF,QAAgB;AAFN;AAAkC;AAAgC;AAC5E;AAA+D;AAAuB;AACtF;AACT,SAAK,QAAQ,cAAc,CAAC,MAAM,OAAO,cAAc,CAAC,MAAM,MAAM,IAAI;AACxE,SAAK,QAAQ,cAAc,CAAC,MAAM,MAAM,WAAW,cAAc,CAAC,MAAM,OAAO,QAAQ,YAAY;AACnG,SAAK,SAAS,SAAS,cAAc,KAAK,KAAK,MAAM;AAAA,EACvD;AAAA,EANqB;AAAA,EAAkC;AAAA,EAAgC;AAAA,EAC5E;AAAA,EAA+D;AAAA,EAAuB;AAAA,EACtF;AAAA,EATX,QAAQ;AAAA,EACA,SAAS;AAAA,EACT,QAAQ;AAAA,EACP,WAAqB,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EAQjB,MAAc,MAAM,OAAiD;AACnE,QAAI,CAAC,KAAK,OAAQ,OAAM,KAAK,OAAO,KAAK,CAAC,KAAK,MAAM,GAAG,KAAK,GAAG,IAAI;AACpE,WAAO,EAAE,MAAM,QAAQ;AAAA,EACzB;AAAA,EACA,MAAc,KAAK,OAAe,QAAgB,UAAiD;AACjG,QAAI,MAAM;AACV,WAAO,MAAM,MAAM,UAAU,MAAM,GAAG,MAAM,KAAK;AAAE,YAAM,KAAK,OAAO,KAAK;AAAG;AAAA,IAAO;AACpF,UAAM,QAAQ,KAAK,QAAQ,SAAS,KAAK;AACzC,SAAK,OAAO,OAAO,KAAK;AACxB,QAAI;AACF,YAAM,UAAwB,CAAC;AAC/B,UAAI;AACJ,iBAAWA,WAAU,KAAK,SAAS;AACjC,cAAM,KAAK,OAAO,KAAK;AACvB,YAAI,UAAUA,QAAO,KAAK,UAAU;AACpC,iBAAS,SAAS,GAAG,WAAW,SAAS,KAAK,UAAU;AACtD,gBAAM,KAAK,OAAO,KAAK;AACvB,cAAIA,QAAO,KAAK,MAAM,MAAM,MAAM,MAAM,EAAG,WAAU;AAAA,QACvD;AACA,YAAI,CAAC,QAAS;AACd,YAAIA,QAAO,KAAK,WAAW,KAAK;AAAE,kBAAQA;AAAQ;AAAA,QAAO;AACzD,gBAAQ,KAAKA,OAAM;AAAA,MACrB;AACA,UAAI,CAAC,SAAS,QAAQ,SAAS,GAAG;AAChC,aAAK;AAAS,aAAK,SAAS;AAC5B,YAAI,CAAC,KAAK,QAAQ;AAChB,gBAAM,QAAQ,CAAC,KAAK,MAAM,cAAc,QAAQ,OAAO,gCAAgC;AACvF,qBAAWA,WAAU,QAAS,OAAM,KAAK,MAAM,QAAQA,QAAO,MAAM,GAAG;AACvE,gBAAM,KAAK,IAAI;AACf,gBAAM,KAAK,OAAO,KAAK,OAAO,IAAI;AAAA,QACpC;AACA,eAAO,EAAE,MAAM,QAAQ;AAAA,MACzB;AACA,YAAM,SAAS,SAAS,QAAQ,CAAC;AACjC,UAAI,CAAC,QAAQ;AACX,YAAI,YAAY,MAAM,UAAU,KAAK,eAAe,MAAM,CAAC,KAAK,IAAI,KAAK,OAAO,KAAK,MAAM,KAAK,EAAG,QAAO;AAC1G,aAAK;AAAS,aAAK,SAAS;AAC5B,eAAO,MAAM,KAAK,MAAM,CAAC,2BAA2B,QAAQ,OAAO,KAAK,CAAC;AAAA,MAC3E;AACA,WAAK;AAAS,WAAK,SAAS;AAC5B,UAAI;AACJ,UAAI,MAAM,MAAM,QAAQ;AACtB,YAAI,CAAC,OAAO,SAAU,QAAO,MAAM,KAAK,MAAM,CAAC,cAAc,QAAQ,OAAO,MAAM,+BAA+B,CAAC;AAClH,mBAAW,MAAM,MAAM,MAAM,CAAC;AAAA,MAChC,WAAW,OAAO,aAAa,GAAG;AAChC,YAAI,KAAK,UAAU,KAAK,KAAK,OAAQ,QAAO,MAAM,KAAK,MAAM,CAAC,cAAc,QAAQ,OAAO,MAAM,0BAA0B,CAAC;AAC5H,mBAAW,KAAK,KAAK,KAAK,OAAO;AAAA,MACnC;AACA,aAAO,EAAE,MAAM,QAAQ,QAAQ,SAAS;AAAA,IAC1C,UAAE;AAAU,WAAK,OAAO,OAAO,CAAC,KAAK;AAAA,IAAG;AAAA,EAC1C;AAAA,EACA,MAAM,OAA0C;AAC9C,UAAM,KAAK,OAAO,KAAK;AACvB,QAAI,KAAK,MAAO,QAAO;AACvB,QAAI,CAAC,KAAK,QAAQ;AAChB,aAAO,KAAK,QAAQ,KAAK,KAAK,QAAQ;AACpC,cAAM,KAAK,OAAO,KAAK;AACvB,cAAMC,YAAW,KAAK,KAAK,KAAK,KAAK;AACrC,YAAIA,cAAa,MAAM;AAAE,eAAK;AAAS,eAAK,QAAQ;AAAM,iBAAO;AAAA,QAAW;AAC5E,YAAIA,UAAS,SAAS,KAAKA,UAAS,CAAC,MAAM,IAAK;AAChD,YAAI,KAAK,UAAU,WAAW;AAAE,eAAK,QAAQ;AAAM,iBAAO;AAAA,QAAW;AACrE,aAAK;AACL,YAAI,KAAK,UAAU,SAAU,QAAO,EAAE,MAAM,WAAW,UAAAA,UAAS;AAChE,aAAK,OAAO,OAAO,CAAC;AACpB,aAAK,SAAS,KAAKA,SAAQ;AAAA,MAC7B;AACA,UAAI,KAAK,UAAU,KAAK,KAAK,QAAQ;AAAE,aAAK,QAAQ;AAAM,eAAO;AAAA,MAAW;AAC5E,YAAMA,YAAW,KAAK,KAAK,KAAK,KAAK;AACrC,UAAIA,UAAS,CAAC,MAAM,IAAK,QAAQ,MAAM,KAAK,KAAKA,UAAS,MAAM,CAAC,GAAG,MAAM,KAAK;AAC/E,UAAI,KAAK,gBAAgBA,UAAS,SAAS,KAAK,MAAM,UAAU,KAAK,eAAeA,UAAS,CAAC,GAAI,KAAK,OAAO,KAAK,MAAM,IAAI,IAAI;AAC/H,cAAM,SAAS,MAAM,KAAK,KAAKA,UAAS,MAAM,CAAC,GAAG,KAAK,IAAI;AAC3D,YAAI,OAAQ,QAAO;AAAA,MACrB;AACA,WAAK,SAAS;AAAA,IAChB;AACA,UAAM,UAAU,KAAK,KAAK,KAAK,KAAK;AACpC,UAAM,SAAS,QAAQ,KAAK,QAAQ;AACpC,QAAI,KAAK,WAAW,QAAQ,QAAQ;AAAE,WAAK,SAAS;AAAG,WAAK;AAAA,IAAS;AACrE,UAAM,QAAQ,MAAM,UAAU,KAAK,eAAe,QAAQ,KAAK,OAAO,KAAK,MAAM;AACjF,QAAI,QAAQ,KAAK,WAAW,OAAO,WAAW,IAAK,QAAO,KAAK,MAAM,CAAC,yBAAyB,QAAQ,KAAK,CAAC;AAC7G,QAAI,WAAW,OAAO,KAAK,cAAc,QAAQ,CAAC,MAAM,KAAK;AAC3D,UAAI,CAAC,KAAK,UAAU,KAAK,UAAU,KAAK,KAAK,OAAQ,QAAO,KAAK,MAAM,CAAC,wCAAwC,CAAC;AACjH,YAAM,QAAQ,KAAK,SAAS,QAAQ,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK,KAAK;AAC7E,aAAQ,MAAM,KAAK,KAAK,OAAO,OAAO,KAAK;AAAA,IAC7C;AACA,QAAI;AACJ,QAAI,KAAK,cAAc,QAAQ,CAAC,MAAM,KAAK;AACzC,UAAI,KAAK,QAAQ;AAAE,mBAAW,QAAQ,MAAM,KAAK,MAAM;AAAG,aAAK;AAAA,MAAS,WAC/D,KAAK,cAAc,QAAQ,CAAC,MAAM,KAAK;AAC9C,YAAI,KAAK,UAAU,KAAK,KAAK,OAAQ,QAAO,KAAK,MAAM,CAAC,sCAAsC,QAAQ,KAAK,CAAC;AAC5G,mBAAW,KAAK,KAAK,KAAK,OAAO;AAAA,MACnC;AACA,WAAK,SAAS;AAAA,IAChB;AACA,QAAI,WAAW,IAAK,QAAO,EAAE,MAAM,QAAQ;AAC3C,QAAI,WAAW,IAAQ,QAAO,EAAE,MAAM,WAAW,SAAS;AAC1D,QAAI,WAAW,QAAQ;AACrB,WAAK,OAAO,OAAO,CAAC,KAAK,SAAS,SAAS,CAAC;AAC5C,WAAK,SAAS,SAAS;AACvB,WAAK,QAAQ;AACb,aAAO;AAAA,IACT;AACA,WAAO,EAAE,MAAM,SAAS,QAAQ,SAAS;AAAA,EAC3C;AACF;;;AHvJA,IAAM,iBAAwC;AAAA,EAC5C,EAAE,MAAM,WAAW,UAAU,GAAG,MAAM,IAAI;AAAA,EAAG,EAAE,MAAM,eAAe,UAAU,GAAG,MAAM,IAAI;AAAA,EAC3F,EAAE,MAAM,SAAS,UAAU,GAAG,MAAM,IAAI;AAAA,EAAG,EAAE,MAAM,gBAAgB,UAAU,GAAG,MAAM,IAAI;AAAA,EAC1F,EAAE,MAAM,SAAS,UAAU,GAAG,MAAM,IAAI;AAAA,EAAG,EAAE,MAAM,QAAQ,UAAU,GAAG,MAAM,IAAI;AAAA,EAClF,EAAE,MAAM,YAAY,UAAU,GAAG,MAAM,IAAI;AAAA,EAAG,EAAE,MAAM,QAAQ,UAAU,GAAG,MAAM,IAAI;AAAA,EACrF,EAAE,MAAM,eAAe,UAAU,GAAG,MAAM,IAAI;AAAA,EAAG,EAAE,MAAM,QAAQ,UAAU,GAAG,MAAM,IAAI;AAAA,EACxF,EAAE,MAAM,WAAW,UAAU,GAAG,MAAM,IAAI;AAC5C;AAEO,SAAS,oBAAoB,UAAiC,CAAC,GAAsB;AAC1F,QAAM,SAAS,SAAS,OAAO;AAC/B,SAAO,EAAE,MAAM,UAAU,aAAa,gEAAgE,MAAM,QAAQ,SAAS;AAC3H,UAAM,SAAS,sBAAsB,SAAS,QAAQ,MAAM;AAC5D,UAAM,SAAS,IAAI,OAAO,SAAS,QAAQ,OAAO,MAAM;AACxD,QAAI;AACJ,QAAI;AACJ,QAAI;AACJ,QAAI,WAAW;AACf,QAAI;AACF,eAAS,IAAI,OAAO,QAAQ,MAAM;AAClC,YAAM,OAAO,MAAM,OAAO,UAAU;AACpC,YAAM,aAAa,QAAQ,IAAI,sBAAsB;AACrD,YAAM,QAAQ,QAAQ,IAAI,oBAAoB;AAC9C,UAAI;AACJ,UAAI,aAAa;AACjB,YAAM,cAA4B,CAAC;AACnC,UAAI,QAAQ,MAAM,OAAO,OAAO,QAAQ,OAAO,cAAc,OAAO,cAAc;AAClF,UAAI,OAAO;AACX,UAAI,WAAW;AACf,UAAI,CAAC,KAAK,QAAQ;AAChB,YAAI,CAAC,WAAY,OAAM,IAAI,YAAY,8BAA8B,GAAG,IAAI;AAC5E,cAAM,OAAO,KAAK,CAAC,OAAO,CAAC;AAC3B,mBAAW;AAAA,MACb,WAAW,cAAc,KAAK,CAAC,EAAG,CAAC,MAAM,KAAK;AAC5C,YAAI,QAAQ;AACZ,eAAO,KAAK,CAAC,EAAG,KAAK,MAAM,OAAO,KAAK,CAAC,EAAG,KAAK,MAAM,KAAK;AAAE,gBAAM,OAAO,KAAK;AAAG;AAAA,QAAS;AAC3F,wBAAgB,KAAK,CAAC,EAAG,MAAM,KAAK;AACpC,eAAO,OAAO,cAAc,MAAM;AAClC,qBAAa,KAAK,MAAM,CAAC;AACzB,gBAAQ;AAAA,MACV,OAAO;AACL,cAAM,UAAU,IAAI,OAAO,MAAM,oBAAoB,gBAAgB,OAAO,OAAO,OAAO,UAAU,QAAQ,MAAM;AAClH,mBAAS;AACP,gBAAM,SAAS,MAAM,QAAQ,KAAK;AAClC,cAAI,CAAC,OAAQ;AACb,cAAI,OAAO,SAAS,SAAS;AAAE,kBAAM,OAAO,KAAK,CAAC,6CAA6C,GAAG,IAAI;AAAG,uBAAW;AAAG,uBAAW;AAAM;AAAA,UAAO;AAC/I,cAAI,OAAO,SAAS,UAAW,OAAM,IAAI,YAAY,4BAA4B;AACjF,gBAAM,SAAS,OAAO,SAAS,SAAS,OAAO,OAAO,OAAO,OAAO;AACpE,kBAAQ,QAAQ;AAAA,YACd,KAAK;AAAK,8BAAgB,OAAO;AAAW,qBAAO,OAAO,cAAc,MAAM;AAAG;AAAA,YACjF,KAAK;AAAK,oBAAM,eAAe,OAAO,UAAW,aAAa,MAAM;AAAG;AAAA,YACvE,KAAK;AAAK,qBAAO,OAAO;AAAW;AAAA,YACnC,KAAK;AAAK,4BAAc;AAAM;AAAA,YAC9B,KAAK;AAAK,sBAAQ;AAAM;AAAA,YACxB,KAAK;AAAK,4BAAc;AAAM;AAAA,YAC9B,KAAK;AAAK,sBAAQ;AAAO;AAAA,YACzB,KAAK;AACH,kBAAI,OAAO,aAAa,UAAU,OAAO,aAAa,KAAM,QAAO;AAAA,uBAC1D,OAAO,aAAa,UAAU,OAAO,aAAa,MAAO,QAAO;AAAA,kBACpE,OAAM,IAAI,YAAY,8CAA8C,GAAG,IAAI;AAChF;AAAA,YACF,KAAK;AAAK,yBAAW;AAAG,yBAAW;AAAM;AAAA,YACzC,KAAK;AAAK,oBAAM,OAAO,KAAK,CAAC,yBAAyB,CAAC;AAAG,yBAAW;AAAM;AAAA,YAC3E,KAAK;AACH,oBAAM,OAAO,KAAK,CAAC,6TAA6T,CAAC;AACjV,yBAAW;AAAM;AAAA,UACrB;AACA,cAAI,SAAU;AAAA,QAChB;AACA,YAAI,CAAC,UAAU;AACb,cAAI,kBAAkB,QAAW;AAC/B,gBAAI,QAAQ,UAAU,KAAK,OAAQ,OAAM,IAAI,YAAY,8BAA8B,GAAG,IAAI;AAC9F,4BAAgB,KAAK,QAAQ,OAAO;AACpC,mBAAO,OAAO,cAAc,MAAM;AAAA,UACpC;AACA,uBAAa,KAAK,MAAM,QAAQ,KAAK;AAAA,QACvC;AAAA,MACF;AACA,UAAI,CAAC,UAAU;AACb,cAAM,SAAS,IAAI,OAAO,YAAY,eAAgB,aAAa,aAAa,OAAO,OAAO,MAAM,QAAQ,MAAM;AAClH,mBAAS;AACP,gBAAM,SAAS,MAAM,OAAO,KAAK;AACjC,cAAI,CAAC,OAAQ;AACb,cAAI,OAAO,SAAS,SAAS;AAAE,uBAAW;AAAG;AAAA,UAAU;AACvD,cAAI,YAAa;AACjB,cAAI,OAAO,SAAS,UAAW,OAAM,OAAO,WAAW,OAAO,YAAY,IAAI,OAAO,IAAI;AAAA,mBAChF,OAAO,SAAS,QAAQ;AAC/B,kBAAM,OAAO,KAAK,CAAC,OAAO,OAAO,OAAO,IAAI,CAAC;AAC7C,gBAAI,OAAO,OAAO,SAAU,OAAM,OAAO,WAAW,OAAO,YAAY,IAAI,OAAO,IAAI;AAAA,UACxF,OAAO;AACL,kBAAM,OAAO,KAAK,CAAC,MAAM,OAAO,MAAM,CAAC;AACvC,kBAAM,SAAS,MAAM,UAAU,eAAgB,OAAO,QAAQ,GAAG,MAAM;AACvE,gBAAI,UAAU,KAAK,cAAe,SAAS,CAAC,MAAM,IAAK,OAAM,OAAO,WAAW,OAAO,YAAY,IAAI,OAAO,IAAI;AAAA,UACnH;AAAA,QACF;AACA,YAAI,CAAC,aAAa;AAChB,gBAAM,OAAO,KAAK,CAAC,KAAK,CAAC;AACzB,qBAAW,WAAW,OAAO,SAAU,OAAM,OAAO,WAAW,SAAS,OAAO,IAAI;AACnF,mBAAS,QAAQ,OAAO,OAAO,QAAQ,WAAW,QAAQ,QAAS,OAAM,OAAO,WAAW,WAAW,KAAK,GAAI,OAAO,IAAI;AAC1H,gBAAM,OAAO,KAAK,CAAC,IAAI,CAAC;AAAA,QAC1B;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,gBAAU,EAAE,QAAQ,MAAM;AAC1B,UAAI,iBAAiB,eAAe,CAAC,OAAO,OAAO,WAAW,QAAQ;AACpE,mBAAW,MAAM;AACjB,YAAI;AAAE,gBAAM,OAAO,KAAK,CAAC,YAAY,MAAM,SAAS,MAAM,MAAM,QAAQ,gDAAgD,EAAE,GAAG,IAAI;AAAA,QAAG,SAC7H,WAAW;AAAE,oBAAU,EAAE,QAAQ,IAAI,eAAe,CAAC,OAAO,SAAS,GAAG,iCAAiC,EAAE;AAAA,QAAG;AAAA,MACvH,MAAO,WAAU,EAAE,QAAQ,MAAM;AAAA,IACnC;AACA,QAAI;AAAE,YAAM,OAAO,MAAM;AAAA,IAAG,SACrB,SAAS;AACd,YAAM,WAAW,WAAW;AAC5B,gBAAU,EAAE,QAAQ,WAAW,IAAI,eAAe,CAAC,SAAS,QAAQ,OAAO,GAAG,qCAAqC,IAAI,QAAQ;AAAA,IACjI;AACA,YAAQ,OAAO,eAAe;AAC9B,WAAO,OAAO,eAAe;AAC7B,QAAI,QAAS,OAAM,QAAQ;AAC3B,WAAO,EAAE,SAAS;AAAA,EACpB,EAAE;AACJ;;;ADvHO,SAAS,qBAAqB,UAAiC,CAAC,GAAiC;AACtG,SAAO,CAAC,oBAAoB,OAAO,CAAC;AACtC;AAEO,SAAS,eAAe,UAAiC,CAAC,GAAuB;AACtF,QAAM,WAAW,qBAAqB,OAAO;AAC7C,SAAO,EAAE,MAAM,mBAAmB,MAAM,MAAM;AAC5C,eAAW,WAAW,SAAU,MAAK,SAAS,SAAS,SAAS,EAAE,SAAS,QAAQ,WAAW,MAAM,CAAC;AAAA,EACvG,EAAE;AACJ;",
5
+ "mappings": "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",
6
6
  "names": ["option", "argument"]
7
7
  }
@@ -1,24 +1,20 @@
1
1
  import {
2
2
  writeFileOutput
3
- } from "./chunk-WXUZXY35.js";
4
- import {
5
- PublicDiagnostic,
6
- publicDiagnosticMessage
7
- } from "./chunk-TTTOMUAY.js";
3
+ } from "./chunk-FMTBJ7SG.js";
8
4
  import {
9
5
  dirname,
10
6
  resolvePath
11
7
  } from "./chunk-DPJWEGIX.js";
12
8
  import {
9
+ FsError,
10
+ PublicDiagnostic,
13
11
  getCommandArguments,
12
+ publicDiagnosticMessage,
14
13
  shellValueByteLength,
15
- shellValueBytes
16
- } from "./chunk-UO33SQJU.js";
17
- import {
18
- FsError,
14
+ shellValueBytes,
19
15
  writeBytes,
20
16
  yieldTurn
21
- } from "./chunk-FDGESHPB.js";
17
+ } from "./chunk-2PQ3XOCQ.js";
22
18
  import {
23
19
  init_platform
24
20
  } from "./chunk-2KL6W6NB.js";
@@ -12158,4 +12154,4 @@ export {
12158
12154
  createCsplitCommands,
12159
12155
  csplitCommands
12160
12156
  };
12161
- //# sourceMappingURL=chunk-4JW32W4B.js.map
12157
+ //# sourceMappingURL=chunk-PMBBUNNN.js.map