@sylphx/flow 0.2.13 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +185 -0
- package/LOOP_MODE.md +446 -0
- package/package.json +44 -93
- package/README.md +0 -625
- package/assets/agents/coder.md +0 -32
- package/assets/agents/orchestrator.md +0 -36
- package/assets/agents/reviewer.md +0 -30
- package/assets/agents/writer.md +0 -30
- package/assets/knowledge/data/sql.md +0 -216
- package/assets/knowledge/guides/saas-template.md +0 -85
- package/assets/knowledge/guides/system-prompt.md +0 -344
- package/assets/knowledge/guides/tech-stack.md +0 -92
- package/assets/knowledge/guides/ui-ux.md +0 -44
- package/assets/knowledge/stacks/nextjs-app.md +0 -165
- package/assets/knowledge/stacks/node-api.md +0 -220
- package/assets/knowledge/stacks/react-app.md +0 -232
- package/assets/knowledge/universal/deployment.md +0 -109
- package/assets/knowledge/universal/performance.md +0 -121
- package/assets/knowledge/universal/security.md +0 -79
- package/assets/knowledge/universal/testing.md +0 -111
- package/assets/output-styles/silent.md +0 -23
- package/assets/rules/core.md +0 -197
- package/assets/slash-commands/commit.md +0 -23
- package/assets/slash-commands/context.md +0 -112
- package/assets/slash-commands/explain.md +0 -35
- package/assets/slash-commands/mep.md +0 -63
- package/assets/slash-commands/review.md +0 -39
- package/assets/slash-commands/test.md +0 -30
- package/dist/assets/agents/coder.md +0 -32
- package/dist/assets/agents/orchestrator.md +0 -36
- package/dist/assets/agents/reviewer.md +0 -30
- package/dist/assets/agents/writer.md +0 -30
- package/dist/assets/knowledge/data/sql.md +0 -216
- package/dist/assets/knowledge/guides/saas-template.md +0 -85
- package/dist/assets/knowledge/guides/system-prompt.md +0 -344
- package/dist/assets/knowledge/guides/tech-stack.md +0 -92
- package/dist/assets/knowledge/guides/ui-ux.md +0 -44
- package/dist/assets/knowledge/stacks/nextjs-app.md +0 -165
- package/dist/assets/knowledge/stacks/node-api.md +0 -220
- package/dist/assets/knowledge/stacks/react-app.md +0 -232
- package/dist/assets/knowledge/universal/deployment.md +0 -109
- package/dist/assets/knowledge/universal/performance.md +0 -121
- package/dist/assets/knowledge/universal/security.md +0 -79
- package/dist/assets/knowledge/universal/testing.md +0 -111
- package/dist/assets/output-styles/silent.md +0 -23
- package/dist/assets/rules/core.md +0 -197
- package/dist/assets/slash-commands/commit.md +0 -23
- package/dist/assets/slash-commands/context.md +0 -112
- package/dist/assets/slash-commands/explain.md +0 -35
- package/dist/assets/slash-commands/mep.md +0 -63
- package/dist/assets/slash-commands/review.md +0 -39
- package/dist/assets/slash-commands/test.md +0 -30
- package/dist/chunk-01gv4qey.js +0 -4
- package/dist/chunk-01gv4qey.js.map +0 -11
- package/dist/chunk-1e8xf3f6.js +0 -27
- package/dist/chunk-1e8xf3f6.js.map +0 -23
- package/dist/chunk-3m9whg4q.js +0 -4
- package/dist/chunk-3m9whg4q.js.map +0 -9
- package/dist/chunk-3qxj0zy3.js +0 -23
- package/dist/chunk-3qxj0zy3.js.map +0 -11
- package/dist/chunk-3w6pd43t.js +0 -25
- package/dist/chunk-3w6pd43t.js.map +0 -61
- package/dist/chunk-4e5g3df9.js +0 -105
- package/dist/chunk-4e5g3df9.js.map +0 -27
- package/dist/chunk-4nm4ere4.js +0 -4
- package/dist/chunk-4nm4ere4.js.map +0 -11
- package/dist/chunk-4vrj3f8r.js +0 -26
- package/dist/chunk-4vrj3f8r.js.map +0 -75
- package/dist/chunk-5njgv5k5.js +0 -161
- package/dist/chunk-5njgv5k5.js.map +0 -83
- package/dist/chunk-67n29s4q.js +0 -7
- package/dist/chunk-67n29s4q.js.map +0 -10
- package/dist/chunk-7yyg008s.js +0 -27
- package/dist/chunk-7yyg008s.js.map +0 -14
- package/dist/chunk-86ce45n6.js +0 -3
- package/dist/chunk-86ce45n6.js.map +0 -10
- package/dist/chunk-99pz5wm0.js +0 -75
- package/dist/chunk-99pz5wm0.js.map +0 -12
- package/dist/chunk-cv1nhr27.js +0 -2
- package/dist/chunk-cv1nhr27.js.map +0 -9
- package/dist/chunk-g4baca7p.js +0 -10
- package/dist/chunk-g4baca7p.js.map +0 -23
- package/dist/chunk-gc66xe7z.js +0 -4
- package/dist/chunk-gc66xe7z.js.map +0 -11
- package/dist/chunk-hj6qtsqp.js +0 -15
- package/dist/chunk-hj6qtsqp.js.map +0 -10
- package/dist/chunk-jbd95k1f.js +0 -14
- package/dist/chunk-jbd95k1f.js.map +0 -20
- package/dist/chunk-jk1ebfqn.js +0 -23
- package/dist/chunk-jk1ebfqn.js.map +0 -132
- package/dist/chunk-kn908zkk.js +0 -4
- package/dist/chunk-kn908zkk.js.map +0 -10
- package/dist/chunk-mw13a082.js +0 -4
- package/dist/chunk-mw13a082.js.map +0 -10
- package/dist/chunk-n8vzewr3.js +0 -4
- package/dist/chunk-n8vzewr3.js.map +0 -12
- package/dist/chunk-nke51f3c.js +0 -4
- package/dist/chunk-nke51f3c.js.map +0 -10
- package/dist/chunk-ns5atzyz.js +0 -3
- package/dist/chunk-ns5atzyz.js.map +0 -10
- package/dist/chunk-q4nh3vst.js +0 -54
- package/dist/chunk-q4nh3vst.js.map +0 -53
- package/dist/chunk-q5gqgs0p.js +0 -4
- package/dist/chunk-q5gqgs0p.js.map +0 -10
- package/dist/chunk-qpej66sh.js +0 -6
- package/dist/chunk-qpej66sh.js.map +0 -11
- package/dist/chunk-s9bsh0gp.js +0 -4
- package/dist/chunk-s9bsh0gp.js.map +0 -10
- package/dist/chunk-waemzsf4.js +0 -4
- package/dist/chunk-waemzsf4.js.map +0 -10
- package/dist/chunk-wnhhwtsy.js +0 -19
- package/dist/chunk-wnhhwtsy.js.map +0 -11
- package/dist/chunk-xs370t8p.js +0 -119
- package/dist/chunk-xs370t8p.js.map +0 -26
- package/dist/chunk-xtrn4wn0.js +0 -3
- package/dist/chunk-xtrn4wn0.js.map +0 -10
- package/dist/index.js +0 -854
- package/dist/index.js.map +0 -920
- package/drizzle/0000_wooden_lady_bullseye.sql +0 -52
- package/drizzle/0001_material_pyro.sql +0 -85
- package/drizzle/0002_lyrical_random.sql +0 -2
- package/drizzle/0003_romantic_lockjaw.sql +0 -4
- package/drizzle/0004_blushing_meteorite.sql +0 -6
- package/drizzle/meta/0000_snapshot.json +0 -310
- package/drizzle/meta/0001_snapshot.json +0 -906
- package/drizzle/meta/0002_snapshot.json +0 -920
- package/drizzle/meta/0003_snapshot.json +0 -920
- package/drizzle/meta/0004_snapshot.json +0 -921
- package/drizzle/meta/_journal.json +0 -41
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../node_modules/@ai-sdk/anthropic/dist/index.mjs", "../src/utils/models-dev.ts", "../src/providers/anthropic-provider.ts", "../node_modules/@ai-sdk/openai/dist/index.mjs", "../src/providers/openai-provider.ts", "../node_modules/@ai-sdk/google/dist/index.mjs", "../src/providers/google-provider.ts", "../node_modules/@openrouter/ai-sdk-provider/dist/index.mjs", "../src/providers/openrouter-provider.ts", "../node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs", "../src/providers/text-based-tools.ts", "../src/providers/streaming-xml-parser.ts", "../src/providers/claude-code-language-model.ts", "../src/providers/claude-code-provider.ts", "../node_modules/@ai-sdk/openai-compatible/dist/index.mjs", "../src/providers/zai-provider.ts", "../src/providers/index.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"// src/anthropic-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n generateId as generateId2,\n loadApiKey,\n loadOptionalSetting,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"2.0.40\" : \"0.0.0-test\";\n\n// src/anthropic-messages-language-model.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError3\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi,\n resolve\n} from \"@ai-sdk/provider-utils\";\n\n// src/anthropic-error.ts\nimport {\n createJsonErrorResponseHandler,\n lazySchema,\n zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar anthropicErrorDataSchema = lazySchema(\n () => zodSchema(\n z.object({\n type: z.literal(\"error\"),\n error: z.object({\n type: z.string(),\n message: z.string()\n })\n })\n )\n);\nvar anthropicFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: anthropicErrorDataSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/anthropic-messages-api.ts\nimport { lazySchema as lazySchema2, zodSchema as zodSchema2 } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar anthropicMessagesResponseSchema = lazySchema2(\n () => zodSchema2(\n z2.object({\n type: z2.literal(\"message\"),\n id: z2.string().nullish(),\n model: z2.string().nullish(),\n content: z2.array(\n z2.discriminatedUnion(\"type\", [\n z2.object({\n type: z2.literal(\"text\"),\n text: z2.string(),\n citations: z2.array(\n z2.discriminatedUnion(\"type\", [\n z2.object({\n type: z2.literal(\"web_search_result_location\"),\n cited_text: z2.string(),\n url: z2.string(),\n title: z2.string(),\n encrypted_index: z2.string()\n }),\n z2.object({\n type: z2.literal(\"page_location\"),\n cited_text: z2.string(),\n document_index: z2.number(),\n document_title: z2.string().nullable(),\n start_page_number: z2.number(),\n end_page_number: z2.number()\n }),\n z2.object({\n type: z2.literal(\"char_location\"),\n cited_text: z2.string(),\n document_index: z2.number(),\n document_title: z2.string().nullable(),\n start_char_index: z2.number(),\n end_char_index: z2.number()\n })\n ])\n ).optional()\n }),\n z2.object({\n type: z2.literal(\"thinking\"),\n thinking: z2.string(),\n signature: z2.string()\n }),\n z2.object({\n type: z2.literal(\"redacted_thinking\"),\n data: z2.string()\n }),\n z2.object({\n type: z2.literal(\"tool_use\"),\n id: z2.string(),\n name: z2.string(),\n input: z2.unknown()\n }),\n z2.object({\n type: z2.literal(\"server_tool_use\"),\n id: z2.string(),\n name: z2.string(),\n input: z2.record(z2.string(), z2.unknown()).nullish()\n }),\n z2.object({\n type: z2.literal(\"web_fetch_tool_result\"),\n tool_use_id: z2.string(),\n content: z2.union([\n z2.object({\n type: z2.literal(\"web_fetch_result\"),\n url: z2.string(),\n retrieved_at: z2.string(),\n content: z2.object({\n type: z2.literal(\"document\"),\n title: z2.string().nullable(),\n citations: z2.object({ enabled: z2.boolean() }).optional(),\n source: z2.object({\n type: z2.literal(\"text\"),\n media_type: z2.string(),\n data: z2.string()\n })\n })\n }),\n z2.object({\n type: z2.literal(\"web_fetch_tool_result_error\"),\n error_code: z2.string()\n })\n ])\n }),\n z2.object({\n type: z2.literal(\"web_search_tool_result\"),\n tool_use_id: z2.string(),\n content: z2.union([\n z2.array(\n z2.object({\n type: z2.literal(\"web_search_result\"),\n url: z2.string(),\n title: z2.string(),\n encrypted_content: z2.string(),\n page_age: z2.string().nullish()\n })\n ),\n z2.object({\n type: z2.literal(\"web_search_tool_result_error\"),\n error_code: z2.string()\n })\n ])\n }),\n // code execution results for code_execution_20250522 tool:\n z2.object({\n type: z2.literal(\"code_execution_tool_result\"),\n tool_use_id: z2.string(),\n content: z2.union([\n z2.object({\n type: z2.literal(\"code_execution_result\"),\n stdout: z2.string(),\n stderr: z2.string(),\n return_code: z2.number()\n }),\n z2.object({\n type: z2.literal(\"code_execution_tool_result_error\"),\n error_code: z2.string()\n })\n ])\n }),\n // bash code execution results for code_execution_20250825 tool:\n z2.object({\n type: z2.literal(\"bash_code_execution_tool_result\"),\n tool_use_id: z2.string(),\n content: z2.discriminatedUnion(\"type\", [\n z2.object({\n type: z2.literal(\"bash_code_execution_result\"),\n content: z2.array(\n z2.object({\n type: z2.literal(\"bash_code_execution_output\"),\n file_id: z2.string()\n })\n ),\n stdout: z2.string(),\n stderr: z2.string(),\n return_code: z2.number()\n }),\n z2.object({\n type: z2.literal(\"bash_code_execution_tool_result_error\"),\n error_code: z2.string()\n })\n ])\n }),\n // text editor code execution results for code_execution_20250825 tool:\n z2.object({\n type: z2.literal(\"text_editor_code_execution_tool_result\"),\n tool_use_id: z2.string(),\n content: z2.discriminatedUnion(\"type\", [\n z2.object({\n type: z2.literal(\"text_editor_code_execution_tool_result_error\"),\n error_code: z2.string()\n }),\n z2.object({\n type: z2.literal(\"text_editor_code_execution_view_result\"),\n content: z2.string(),\n file_type: z2.string(),\n num_lines: z2.number().nullable(),\n start_line: z2.number().nullable(),\n total_lines: z2.number().nullable()\n }),\n z2.object({\n type: z2.literal(\"text_editor_code_execution_create_result\"),\n is_file_update: z2.boolean()\n }),\n z2.object({\n type: z2.literal(\n \"text_editor_code_execution_str_replace_result\"\n ),\n lines: z2.array(z2.string()).nullable(),\n new_lines: z2.number().nullable(),\n new_start: z2.number().nullable(),\n old_lines: z2.number().nullable(),\n old_start: z2.number().nullable()\n })\n ])\n })\n ])\n ),\n stop_reason: z2.string().nullish(),\n stop_sequence: z2.string().nullish(),\n usage: z2.looseObject({\n input_tokens: z2.number(),\n output_tokens: z2.number(),\n cache_creation_input_tokens: z2.number().nullish(),\n cache_read_input_tokens: z2.number().nullish()\n }),\n container: z2.object({\n expires_at: z2.string(),\n id: z2.string(),\n skills: z2.array(\n z2.object({\n type: z2.union([z2.literal(\"anthropic\"), z2.literal(\"custom\")]),\n skill_id: z2.string(),\n version: z2.string()\n })\n ).nullish()\n }).nullish()\n })\n )\n);\nvar anthropicMessagesChunkSchema = lazySchema2(\n () => zodSchema2(\n z2.discriminatedUnion(\"type\", [\n z2.object({\n type: z2.literal(\"message_start\"),\n message: z2.object({\n id: z2.string().nullish(),\n model: z2.string().nullish(),\n usage: z2.looseObject({\n input_tokens: z2.number(),\n cache_creation_input_tokens: z2.number().nullish(),\n cache_read_input_tokens: z2.number().nullish()\n })\n })\n }),\n z2.object({\n type: z2.literal(\"content_block_start\"),\n index: z2.number(),\n content_block: z2.discriminatedUnion(\"type\", [\n z2.object({\n type: z2.literal(\"text\"),\n text: z2.string()\n }),\n z2.object({\n type: z2.literal(\"thinking\"),\n thinking: z2.string()\n }),\n z2.object({\n type: z2.literal(\"tool_use\"),\n id: z2.string(),\n name: z2.string()\n }),\n z2.object({\n type: z2.literal(\"redacted_thinking\"),\n data: z2.string()\n }),\n z2.object({\n type: z2.literal(\"server_tool_use\"),\n id: z2.string(),\n name: z2.string(),\n input: z2.record(z2.string(), z2.unknown()).nullish()\n }),\n z2.object({\n type: z2.literal(\"web_fetch_tool_result\"),\n tool_use_id: z2.string(),\n content: z2.union([\n z2.object({\n type: z2.literal(\"web_fetch_result\"),\n url: z2.string(),\n retrieved_at: z2.string(),\n content: z2.object({\n type: z2.literal(\"document\"),\n title: z2.string().nullable(),\n citations: z2.object({ enabled: z2.boolean() }).optional(),\n source: z2.object({\n type: z2.literal(\"text\"),\n media_type: z2.string(),\n data: z2.string()\n })\n })\n }),\n z2.object({\n type: z2.literal(\"web_fetch_tool_result_error\"),\n error_code: z2.string()\n })\n ])\n }),\n z2.object({\n type: z2.literal(\"web_search_tool_result\"),\n tool_use_id: z2.string(),\n content: z2.union([\n z2.array(\n z2.object({\n type: z2.literal(\"web_search_result\"),\n url: z2.string(),\n title: z2.string(),\n encrypted_content: z2.string(),\n page_age: z2.string().nullish()\n })\n ),\n z2.object({\n type: z2.literal(\"web_search_tool_result_error\"),\n error_code: z2.string()\n })\n ])\n }),\n // code execution results for code_execution_20250522 tool:\n z2.object({\n type: z2.literal(\"code_execution_tool_result\"),\n tool_use_id: z2.string(),\n content: z2.union([\n z2.object({\n type: z2.literal(\"code_execution_result\"),\n stdout: z2.string(),\n stderr: z2.string(),\n return_code: z2.number()\n }),\n z2.object({\n type: z2.literal(\"code_execution_tool_result_error\"),\n error_code: z2.string()\n })\n ])\n }),\n // bash code execution results for code_execution_20250825 tool:\n z2.object({\n type: z2.literal(\"bash_code_execution_tool_result\"),\n tool_use_id: z2.string(),\n content: z2.discriminatedUnion(\"type\", [\n z2.object({\n type: z2.literal(\"bash_code_execution_result\"),\n content: z2.array(\n z2.object({\n type: z2.literal(\"bash_code_execution_output\"),\n file_id: z2.string()\n })\n ),\n stdout: z2.string(),\n stderr: z2.string(),\n return_code: z2.number()\n }),\n z2.object({\n type: z2.literal(\"bash_code_execution_tool_result_error\"),\n error_code: z2.string()\n })\n ])\n }),\n // text editor code execution results for code_execution_20250825 tool:\n z2.object({\n type: z2.literal(\"text_editor_code_execution_tool_result\"),\n tool_use_id: z2.string(),\n content: z2.discriminatedUnion(\"type\", [\n z2.object({\n type: z2.literal(\"text_editor_code_execution_tool_result_error\"),\n error_code: z2.string()\n }),\n z2.object({\n type: z2.literal(\"text_editor_code_execution_view_result\"),\n content: z2.string(),\n file_type: z2.string(),\n num_lines: z2.number().nullable(),\n start_line: z2.number().nullable(),\n total_lines: z2.number().nullable()\n }),\n z2.object({\n type: z2.literal(\"text_editor_code_execution_create_result\"),\n is_file_update: z2.boolean()\n }),\n z2.object({\n type: z2.literal(\n \"text_editor_code_execution_str_replace_result\"\n ),\n lines: z2.array(z2.string()).nullable(),\n new_lines: z2.number().nullable(),\n new_start: z2.number().nullable(),\n old_lines: z2.number().nullable(),\n old_start: z2.number().nullable()\n })\n ])\n })\n ])\n }),\n z2.object({\n type: z2.literal(\"content_block_delta\"),\n index: z2.number(),\n delta: z2.discriminatedUnion(\"type\", [\n z2.object({\n type: z2.literal(\"input_json_delta\"),\n partial_json: z2.string()\n }),\n z2.object({\n type: z2.literal(\"text_delta\"),\n text: z2.string()\n }),\n z2.object({\n type: z2.literal(\"thinking_delta\"),\n thinking: z2.string()\n }),\n z2.object({\n type: z2.literal(\"signature_delta\"),\n signature: z2.string()\n }),\n z2.object({\n type: z2.literal(\"citations_delta\"),\n citation: z2.discriminatedUnion(\"type\", [\n z2.object({\n type: z2.literal(\"web_search_result_location\"),\n cited_text: z2.string(),\n url: z2.string(),\n title: z2.string(),\n encrypted_index: z2.string()\n }),\n z2.object({\n type: z2.literal(\"page_location\"),\n cited_text: z2.string(),\n document_index: z2.number(),\n document_title: z2.string().nullable(),\n start_page_number: z2.number(),\n end_page_number: z2.number()\n }),\n z2.object({\n type: z2.literal(\"char_location\"),\n cited_text: z2.string(),\n document_index: z2.number(),\n document_title: z2.string().nullable(),\n start_char_index: z2.number(),\n end_char_index: z2.number()\n })\n ])\n })\n ])\n }),\n z2.object({\n type: z2.literal(\"content_block_stop\"),\n index: z2.number()\n }),\n z2.object({\n type: z2.literal(\"error\"),\n error: z2.object({\n type: z2.string(),\n message: z2.string()\n })\n }),\n z2.object({\n type: z2.literal(\"message_delta\"),\n delta: z2.object({\n stop_reason: z2.string().nullish(),\n stop_sequence: z2.string().nullish(),\n container: z2.object({\n expires_at: z2.string(),\n id: z2.string(),\n skills: z2.array(\n z2.object({\n type: z2.union([\n z2.literal(\"anthropic\"),\n z2.literal(\"custom\")\n ]),\n skill_id: z2.string(),\n version: z2.string()\n })\n ).nullish()\n }).nullish()\n }),\n usage: z2.looseObject({\n output_tokens: z2.number(),\n cache_creation_input_tokens: z2.number().nullish()\n })\n }),\n z2.object({\n type: z2.literal(\"message_stop\")\n }),\n z2.object({\n type: z2.literal(\"ping\")\n })\n ])\n )\n);\nvar anthropicReasoningMetadataSchema = lazySchema2(\n () => zodSchema2(\n z2.object({\n signature: z2.string().optional(),\n redactedData: z2.string().optional()\n })\n )\n);\n\n// src/anthropic-messages-options.ts\nimport { z as z3 } from \"zod/v4\";\nvar anthropicFilePartProviderOptions = z3.object({\n /**\n * Citation configuration for this document.\n * When enabled, this document will generate citations in the response.\n */\n citations: z3.object({\n /**\n * Enable citations for this document\n */\n enabled: z3.boolean()\n }).optional(),\n /**\n * Custom title for the document.\n * If not provided, the filename will be used.\n */\n title: z3.string().optional(),\n /**\n * Context about the document that will be passed to the model\n * but not used towards cited content.\n * Useful for storing document metadata as text or stringified JSON.\n */\n context: z3.string().optional()\n});\nvar anthropicProviderOptions = z3.object({\n sendReasoning: z3.boolean().optional(),\n thinking: z3.object({\n type: z3.union([z3.literal(\"enabled\"), z3.literal(\"disabled\")]),\n budgetTokens: z3.number().optional()\n }).optional(),\n /**\n * Whether to disable parallel function calling during tool use. Default is false.\n * When set to true, Claude will use at most one tool per response.\n */\n disableParallelToolUse: z3.boolean().optional(),\n /**\n * Cache control settings for this message.\n * See https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching\n */\n cacheControl: z3.object({\n type: z3.literal(\"ephemeral\"),\n ttl: z3.union([z3.literal(\"5m\"), z3.literal(\"1h\")]).optional()\n }).optional(),\n /**\n * Agent Skills configuration. Skills enable Claude to perform specialized tasks\n * like document processing (PPTX, DOCX, PDF, XLSX) and data analysis.\n * Requires code execution tool to be enabled.\n */\n container: z3.object({\n id: z3.string().optional(),\n skills: z3.array(\n z3.object({\n type: z3.union([z3.literal(\"anthropic\"), z3.literal(\"custom\")]),\n skillId: z3.string(),\n version: z3.string().optional()\n })\n ).optional()\n }).optional()\n});\n\n// src/anthropic-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\n\n// src/get-cache-control.ts\nvar MAX_CACHE_BREAKPOINTS = 4;\nfunction getCacheControl(providerMetadata) {\n var _a;\n const anthropic2 = providerMetadata == null ? void 0 : providerMetadata.anthropic;\n const cacheControlValue = (_a = anthropic2 == null ? void 0 : anthropic2.cacheControl) != null ? _a : anthropic2 == null ? void 0 : anthropic2.cache_control;\n return cacheControlValue;\n}\nvar CacheControlValidator = class {\n constructor() {\n this.breakpointCount = 0;\n this.warnings = [];\n }\n getCacheControl(providerMetadata, context) {\n const cacheControlValue = getCacheControl(providerMetadata);\n if (!cacheControlValue) {\n return void 0;\n }\n if (!context.canCache) {\n this.warnings.push({\n type: \"unsupported-setting\",\n setting: \"cacheControl\",\n details: `cache_control cannot be set on ${context.type}. It will be ignored.`\n });\n return void 0;\n }\n this.breakpointCount++;\n if (this.breakpointCount > MAX_CACHE_BREAKPOINTS) {\n this.warnings.push({\n type: \"unsupported-setting\",\n setting: \"cacheControl\",\n details: `Maximum ${MAX_CACHE_BREAKPOINTS} cache breakpoints exceeded (found ${this.breakpointCount}). This breakpoint will be ignored.`\n });\n return void 0;\n }\n return cacheControlValue;\n }\n getWarnings() {\n return this.warnings;\n }\n};\n\n// src/tool/text-editor_20250728.ts\nimport { createProviderDefinedToolFactory } from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nimport { lazySchema as lazySchema3, zodSchema as zodSchema3 } from \"@ai-sdk/provider-utils\";\nvar textEditor_20250728ArgsSchema = lazySchema3(\n () => zodSchema3(\n z4.object({\n maxCharacters: z4.number().optional()\n })\n )\n);\nvar textEditor_20250728InputSchema = lazySchema3(\n () => zodSchema3(\n z4.object({\n command: z4.enum([\"view\", \"create\", \"str_replace\", \"insert\"]),\n path: z4.string(),\n file_text: z4.string().optional(),\n insert_line: z4.number().int().optional(),\n new_str: z4.string().optional(),\n old_str: z4.string().optional(),\n view_range: z4.array(z4.number().int()).optional()\n })\n )\n);\nvar factory = createProviderDefinedToolFactory({\n id: \"anthropic.text_editor_20250728\",\n name: \"str_replace_based_edit_tool\",\n inputSchema: textEditor_20250728InputSchema\n});\nvar textEditor_20250728 = (args = {}) => {\n return factory(args);\n};\n\n// src/tool/web-search_20250305.ts\nimport {\n createProviderDefinedToolFactoryWithOutputSchema,\n lazySchema as lazySchema4,\n zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\nvar webSearch_20250305ArgsSchema = lazySchema4(\n () => zodSchema4(\n z5.object({\n maxUses: z5.number().optional(),\n allowedDomains: z5.array(z5.string()).optional(),\n blockedDomains: z5.array(z5.string()).optional(),\n userLocation: z5.object({\n type: z5.literal(\"approximate\"),\n city: z5.string().optional(),\n region: z5.string().optional(),\n country: z5.string().optional(),\n timezone: z5.string().optional()\n }).optional()\n })\n )\n);\nvar webSearch_20250305OutputSchema = lazySchema4(\n () => zodSchema4(\n z5.array(\n z5.object({\n url: z5.string(),\n title: z5.string(),\n pageAge: z5.string().nullable(),\n encryptedContent: z5.string(),\n type: z5.literal(\"web_search_result\")\n })\n )\n )\n);\nvar webSearch_20250305InputSchema = lazySchema4(\n () => zodSchema4(\n z5.object({\n query: z5.string()\n })\n )\n);\nvar factory2 = createProviderDefinedToolFactoryWithOutputSchema({\n id: \"anthropic.web_search_20250305\",\n name: \"web_search\",\n inputSchema: webSearch_20250305InputSchema,\n outputSchema: webSearch_20250305OutputSchema\n});\nvar webSearch_20250305 = (args = {}) => {\n return factory2(args);\n};\n\n// src/tool/web-fetch-20250910.ts\nimport {\n createProviderDefinedToolFactoryWithOutputSchema as createProviderDefinedToolFactoryWithOutputSchema2,\n lazySchema as lazySchema5,\n zodSchema as zodSchema5\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar webFetch_20250910ArgsSchema = lazySchema5(\n () => zodSchema5(\n z6.object({\n maxUses: z6.number().optional(),\n allowedDomains: z6.array(z6.string()).optional(),\n blockedDomains: z6.array(z6.string()).optional(),\n citations: z6.object({ enabled: z6.boolean() }).optional(),\n maxContentTokens: z6.number().optional()\n })\n )\n);\nvar webFetch_20250910OutputSchema = lazySchema5(\n () => zodSchema5(\n z6.object({\n type: z6.literal(\"web_fetch_result\"),\n url: z6.string(),\n content: z6.object({\n type: z6.literal(\"document\"),\n title: z6.string(),\n citations: z6.object({ enabled: z6.boolean() }).optional(),\n source: z6.union([\n z6.object({\n type: z6.literal(\"base64\"),\n mediaType: z6.literal(\"application/pdf\"),\n data: z6.string()\n }),\n z6.object({\n type: z6.literal(\"text\"),\n mediaType: z6.literal(\"text/plain\"),\n data: z6.string()\n })\n ])\n }),\n retrievedAt: z6.string().nullable()\n })\n )\n);\nvar webFetch_20250910InputSchema = lazySchema5(\n () => zodSchema5(\n z6.object({\n url: z6.string()\n })\n )\n);\nvar factory3 = createProviderDefinedToolFactoryWithOutputSchema2({\n id: \"anthropic.web_fetch_20250910\",\n name: \"web_fetch\",\n inputSchema: webFetch_20250910InputSchema,\n outputSchema: webFetch_20250910OutputSchema\n});\nvar webFetch_20250910 = (args = {}) => {\n return factory3(args);\n};\n\n// src/anthropic-prepare-tools.ts\nimport { validateTypes } from \"@ai-sdk/provider-utils\";\nasync function prepareTools({\n tools,\n toolChoice,\n disableParallelToolUse,\n cacheControlValidator\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n const betas = /* @__PURE__ */ new Set();\n const validator = cacheControlValidator || new CacheControlValidator();\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings, betas };\n }\n const anthropicTools2 = [];\n for (const tool of tools) {\n switch (tool.type) {\n case \"function\": {\n const cacheControl = validator.getCacheControl(tool.providerOptions, {\n type: \"tool definition\",\n canCache: true\n });\n anthropicTools2.push({\n name: tool.name,\n description: tool.description,\n input_schema: tool.inputSchema,\n cache_control: cacheControl\n });\n break;\n }\n case \"provider-defined\": {\n switch (tool.id) {\n case \"anthropic.code_execution_20250522\": {\n betas.add(\"code-execution-2025-05-22\");\n anthropicTools2.push({\n type: \"code_execution_20250522\",\n name: \"code_execution\",\n cache_control: void 0\n });\n break;\n }\n case \"anthropic.code_execution_20250825\": {\n betas.add(\"code-execution-2025-08-25\");\n anthropicTools2.push({\n type: \"code_execution_20250825\",\n name: \"code_execution\"\n });\n break;\n }\n case \"anthropic.computer_20250124\": {\n betas.add(\"computer-use-2025-01-24\");\n anthropicTools2.push({\n name: \"computer\",\n type: \"computer_20250124\",\n display_width_px: tool.args.displayWidthPx,\n display_height_px: tool.args.displayHeightPx,\n display_number: tool.args.displayNumber,\n cache_control: void 0\n });\n break;\n }\n case \"anthropic.computer_20241022\": {\n betas.add(\"computer-use-2024-10-22\");\n anthropicTools2.push({\n name: \"computer\",\n type: \"computer_20241022\",\n display_width_px: tool.args.displayWidthPx,\n display_height_px: tool.args.displayHeightPx,\n display_number: tool.args.displayNumber,\n cache_control: void 0\n });\n break;\n }\n case \"anthropic.text_editor_20250124\": {\n betas.add(\"computer-use-2025-01-24\");\n anthropicTools2.push({\n name: \"str_replace_editor\",\n type: \"text_editor_20250124\",\n cache_control: void 0\n });\n break;\n }\n case \"anthropic.text_editor_20241022\": {\n betas.add(\"computer-use-2024-10-22\");\n anthropicTools2.push({\n name: \"str_replace_editor\",\n type: \"text_editor_20241022\",\n cache_control: void 0\n });\n break;\n }\n case \"anthropic.text_editor_20250429\": {\n betas.add(\"computer-use-2025-01-24\");\n anthropicTools2.push({\n name: \"str_replace_based_edit_tool\",\n type: \"text_editor_20250429\",\n cache_control: void 0\n });\n break;\n }\n case \"anthropic.text_editor_20250728\": {\n const args = await validateTypes({\n value: tool.args,\n schema: textEditor_20250728ArgsSchema\n });\n anthropicTools2.push({\n name: \"str_replace_based_edit_tool\",\n type: \"text_editor_20250728\",\n max_characters: args.maxCharacters,\n cache_control: void 0\n });\n break;\n }\n case \"anthropic.bash_20250124\": {\n betas.add(\"computer-use-2025-01-24\");\n anthropicTools2.push({\n name: \"bash\",\n type: \"bash_20250124\",\n cache_control: void 0\n });\n break;\n }\n case \"anthropic.bash_20241022\": {\n betas.add(\"computer-use-2024-10-22\");\n anthropicTools2.push({\n name: \"bash\",\n type: \"bash_20241022\",\n cache_control: void 0\n });\n break;\n }\n case \"anthropic.memory_20250818\": {\n betas.add(\"context-management-2025-06-27\");\n anthropicTools2.push({\n name: \"memory\",\n type: \"memory_20250818\"\n });\n break;\n }\n case \"anthropic.web_fetch_20250910\": {\n betas.add(\"web-fetch-2025-09-10\");\n const args = await validateTypes({\n value: tool.args,\n schema: webFetch_20250910ArgsSchema\n });\n anthropicTools2.push({\n type: \"web_fetch_20250910\",\n name: \"web_fetch\",\n max_uses: args.maxUses,\n allowed_domains: args.allowedDomains,\n blocked_domains: args.blockedDomains,\n citations: args.citations,\n max_content_tokens: args.maxContentTokens,\n cache_control: void 0\n });\n break;\n }\n case \"anthropic.web_search_20250305\": {\n const args = await validateTypes({\n value: tool.args,\n schema: webSearch_20250305ArgsSchema\n });\n anthropicTools2.push({\n type: \"web_search_20250305\",\n name: \"web_search\",\n max_uses: args.maxUses,\n allowed_domains: args.allowedDomains,\n blocked_domains: args.blockedDomains,\n user_location: args.userLocation,\n cache_control: void 0\n });\n break;\n }\n default: {\n toolWarnings.push({ type: \"unsupported-tool\", tool });\n break;\n }\n }\n break;\n }\n default: {\n toolWarnings.push({ type: \"unsupported-tool\", tool });\n break;\n }\n }\n }\n if (toolChoice == null) {\n return {\n tools: anthropicTools2,\n toolChoice: disableParallelToolUse ? { type: \"auto\", disable_parallel_tool_use: disableParallelToolUse } : void 0,\n toolWarnings,\n betas\n };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n return {\n tools: anthropicTools2,\n toolChoice: {\n type: \"auto\",\n disable_parallel_tool_use: disableParallelToolUse\n },\n toolWarnings,\n betas\n };\n case \"required\":\n return {\n tools: anthropicTools2,\n toolChoice: {\n type: \"any\",\n disable_parallel_tool_use: disableParallelToolUse\n },\n toolWarnings,\n betas\n };\n case \"none\":\n return { tools: void 0, toolChoice: void 0, toolWarnings, betas };\n case \"tool\":\n return {\n tools: anthropicTools2,\n toolChoice: {\n type: \"tool\",\n name: toolChoice.toolName,\n disable_parallel_tool_use: disableParallelToolUse\n },\n toolWarnings,\n betas\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/convert-to-anthropic-messages-prompt.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nimport {\n convertToBase64,\n parseProviderOptions,\n validateTypes as validateTypes2\n} from \"@ai-sdk/provider-utils\";\n\n// src/tool/code-execution_20250522.ts\nimport {\n createProviderDefinedToolFactoryWithOutputSchema as createProviderDefinedToolFactoryWithOutputSchema3,\n lazySchema as lazySchema6,\n zodSchema as zodSchema6\n} from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\nvar codeExecution_20250522OutputSchema = lazySchema6(\n () => zodSchema6(\n z7.object({\n type: z7.literal(\"code_execution_result\"),\n stdout: z7.string(),\n stderr: z7.string(),\n return_code: z7.number()\n })\n )\n);\nvar codeExecution_20250522InputSchema = lazySchema6(\n () => zodSchema6(\n z7.object({\n code: z7.string()\n })\n )\n);\nvar factory4 = createProviderDefinedToolFactoryWithOutputSchema3({\n id: \"anthropic.code_execution_20250522\",\n name: \"code_execution\",\n inputSchema: codeExecution_20250522InputSchema,\n outputSchema: codeExecution_20250522OutputSchema\n});\nvar codeExecution_20250522 = (args = {}) => {\n return factory4(args);\n};\n\n// src/tool/code-execution_20250825.ts\nimport {\n createProviderDefinedToolFactoryWithOutputSchema as createProviderDefinedToolFactoryWithOutputSchema4,\n lazySchema as lazySchema7,\n zodSchema as zodSchema7\n} from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar codeExecution_20250825OutputSchema = lazySchema7(\n () => zodSchema7(\n z8.discriminatedUnion(\"type\", [\n z8.object({\n type: z8.literal(\"bash_code_execution_result\"),\n content: z8.array(\n z8.object({\n type: z8.literal(\"bash_code_execution_output\"),\n file_id: z8.string()\n })\n ),\n stdout: z8.string(),\n stderr: z8.string(),\n return_code: z8.number()\n }),\n z8.object({\n type: z8.literal(\"bash_code_execution_tool_result_error\"),\n error_code: z8.string()\n }),\n z8.object({\n type: z8.literal(\"text_editor_code_execution_tool_result_error\"),\n error_code: z8.string()\n }),\n z8.object({\n type: z8.literal(\"text_editor_code_execution_view_result\"),\n content: z8.string(),\n file_type: z8.string(),\n num_lines: z8.number().nullable(),\n start_line: z8.number().nullable(),\n total_lines: z8.number().nullable()\n }),\n z8.object({\n type: z8.literal(\"text_editor_code_execution_create_result\"),\n is_file_update: z8.boolean()\n }),\n z8.object({\n type: z8.literal(\"text_editor_code_execution_str_replace_result\"),\n lines: z8.array(z8.string()).nullable(),\n new_lines: z8.number().nullable(),\n new_start: z8.number().nullable(),\n old_lines: z8.number().nullable(),\n old_start: z8.number().nullable()\n })\n ])\n )\n);\nvar codeExecution_20250825InputSchema = lazySchema7(\n () => zodSchema7(\n z8.discriminatedUnion(\"type\", [\n z8.object({\n type: z8.literal(\"bash_code_execution\"),\n command: z8.string()\n }),\n z8.discriminatedUnion(\"command\", [\n z8.object({\n type: z8.literal(\"text_editor_code_execution\"),\n command: z8.literal(\"view\"),\n path: z8.string()\n }),\n z8.object({\n type: z8.literal(\"text_editor_code_execution\"),\n command: z8.literal(\"create\"),\n path: z8.string(),\n file_text: z8.string().nullish()\n }),\n z8.object({\n type: z8.literal(\"text_editor_code_execution\"),\n command: z8.literal(\"str_replace\"),\n path: z8.string(),\n old_str: z8.string(),\n new_str: z8.string()\n })\n ])\n ])\n )\n);\nvar factory5 = createProviderDefinedToolFactoryWithOutputSchema4({\n id: \"anthropic.code_execution_20250825\",\n name: \"code_execution\",\n inputSchema: codeExecution_20250825InputSchema,\n outputSchema: codeExecution_20250825OutputSchema\n});\nvar codeExecution_20250825 = (args = {}) => {\n return factory5(args);\n};\n\n// src/convert-to-anthropic-messages-prompt.ts\nfunction convertToString(data) {\n if (typeof data === \"string\") {\n return Buffer.from(data, \"base64\").toString(\"utf-8\");\n }\n if (data instanceof Uint8Array) {\n return new TextDecoder().decode(data);\n }\n if (data instanceof URL) {\n throw new UnsupportedFunctionalityError2({\n functionality: \"URL-based text documents are not supported for citations\"\n });\n }\n throw new UnsupportedFunctionalityError2({\n functionality: `unsupported data type for text documents: ${typeof data}`\n });\n}\nasync function convertToAnthropicMessagesPrompt({\n prompt,\n sendReasoning,\n warnings,\n cacheControlValidator\n}) {\n var _a, _b, _c, _d, _e;\n const betas = /* @__PURE__ */ new Set();\n const blocks = groupIntoBlocks(prompt);\n const validator = cacheControlValidator || new CacheControlValidator();\n let system = void 0;\n const messages = [];\n async function shouldEnableCitations(providerMetadata) {\n var _a2, _b2;\n const anthropicOptions = await parseProviderOptions({\n provider: \"anthropic\",\n providerOptions: providerMetadata,\n schema: anthropicFilePartProviderOptions\n });\n return (_b2 = (_a2 = anthropicOptions == null ? void 0 : anthropicOptions.citations) == null ? void 0 : _a2.enabled) != null ? _b2 : false;\n }\n async function getDocumentMetadata(providerMetadata) {\n const anthropicOptions = await parseProviderOptions({\n provider: \"anthropic\",\n providerOptions: providerMetadata,\n schema: anthropicFilePartProviderOptions\n });\n return {\n title: anthropicOptions == null ? void 0 : anthropicOptions.title,\n context: anthropicOptions == null ? void 0 : anthropicOptions.context\n };\n }\n for (let i = 0; i < blocks.length; i++) {\n const block = blocks[i];\n const isLastBlock = i === blocks.length - 1;\n const type = block.type;\n switch (type) {\n case \"system\": {\n if (system != null) {\n throw new UnsupportedFunctionalityError2({\n functionality: \"Multiple system messages that are separated by user/assistant messages\"\n });\n }\n system = block.messages.map(({ content, providerOptions }) => ({\n type: \"text\",\n text: content,\n cache_control: validator.getCacheControl(providerOptions, {\n type: \"system message\",\n canCache: true\n })\n }));\n break;\n }\n case \"user\": {\n const anthropicContent = [];\n for (const message of block.messages) {\n const { role, content } = message;\n switch (role) {\n case \"user\": {\n for (let j = 0; j < content.length; j++) {\n const part = content[j];\n const isLastPart = j === content.length - 1;\n const cacheControl = (_a = validator.getCacheControl(part.providerOptions, {\n type: \"user message part\",\n canCache: true\n })) != null ? _a : isLastPart ? validator.getCacheControl(message.providerOptions, {\n type: \"user message\",\n canCache: true\n }) : void 0;\n switch (part.type) {\n case \"text\": {\n anthropicContent.push({\n type: \"text\",\n text: part.text,\n cache_control: cacheControl\n });\n break;\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n anthropicContent.push({\n type: \"image\",\n source: part.data instanceof URL ? {\n type: \"url\",\n url: part.data.toString()\n } : {\n type: \"base64\",\n media_type: part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType,\n data: convertToBase64(part.data)\n },\n cache_control: cacheControl\n });\n } else if (part.mediaType === \"application/pdf\") {\n betas.add(\"pdfs-2024-09-25\");\n const enableCitations = await shouldEnableCitations(\n part.providerOptions\n );\n const metadata = await getDocumentMetadata(\n part.providerOptions\n );\n anthropicContent.push({\n type: \"document\",\n source: part.data instanceof URL ? {\n type: \"url\",\n url: part.data.toString()\n } : {\n type: \"base64\",\n media_type: \"application/pdf\",\n data: convertToBase64(part.data)\n },\n title: (_b = metadata.title) != null ? _b : part.filename,\n ...metadata.context && { context: metadata.context },\n ...enableCitations && {\n citations: { enabled: true }\n },\n cache_control: cacheControl\n });\n } else if (part.mediaType === \"text/plain\") {\n const enableCitations = await shouldEnableCitations(\n part.providerOptions\n );\n const metadata = await getDocumentMetadata(\n part.providerOptions\n );\n anthropicContent.push({\n type: \"document\",\n source: part.data instanceof URL ? {\n type: \"url\",\n url: part.data.toString()\n } : {\n type: \"text\",\n media_type: \"text/plain\",\n data: convertToString(part.data)\n },\n title: (_c = metadata.title) != null ? _c : part.filename,\n ...metadata.context && { context: metadata.context },\n ...enableCitations && {\n citations: { enabled: true }\n },\n cache_control: cacheControl\n });\n } else {\n throw new UnsupportedFunctionalityError2({\n functionality: `media type: ${part.mediaType}`\n });\n }\n break;\n }\n }\n }\n break;\n }\n case \"tool\": {\n for (let i2 = 0; i2 < content.length; i2++) {\n const part = content[i2];\n const isLastPart = i2 === content.length - 1;\n const cacheControl = (_d = validator.getCacheControl(part.providerOptions, {\n type: \"tool result part\",\n canCache: true\n })) != null ? _d : isLastPart ? validator.getCacheControl(message.providerOptions, {\n type: \"tool result message\",\n canCache: true\n }) : void 0;\n const output = part.output;\n let contentValue;\n switch (output.type) {\n case \"content\":\n contentValue = output.value.map((contentPart) => {\n switch (contentPart.type) {\n case \"text\":\n return {\n type: \"text\",\n text: contentPart.text\n };\n case \"media\": {\n if (contentPart.mediaType.startsWith(\"image/\")) {\n return {\n type: \"image\",\n source: {\n type: \"base64\",\n media_type: contentPart.mediaType,\n data: contentPart.data\n }\n };\n }\n if (contentPart.mediaType === \"application/pdf\") {\n betas.add(\"pdfs-2024-09-25\");\n return {\n type: \"document\",\n source: {\n type: \"base64\",\n media_type: contentPart.mediaType,\n data: contentPart.data\n }\n };\n }\n throw new UnsupportedFunctionalityError2({\n functionality: `media type: ${contentPart.mediaType}`\n });\n }\n }\n });\n break;\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"json\":\n case \"error-json\":\n default:\n contentValue = JSON.stringify(output.value);\n break;\n }\n anthropicContent.push({\n type: \"tool_result\",\n tool_use_id: part.toolCallId,\n content: contentValue,\n is_error: output.type === \"error-text\" || output.type === \"error-json\" ? true : void 0,\n cache_control: cacheControl\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n messages.push({ role: \"user\", content: anthropicContent });\n break;\n }\n case \"assistant\": {\n const anthropicContent = [];\n for (let j = 0; j < block.messages.length; j++) {\n const message = block.messages[j];\n const isLastMessage = j === block.messages.length - 1;\n const { content } = message;\n for (let k = 0; k < content.length; k++) {\n const part = content[k];\n const isLastContentPart = k === content.length - 1;\n const cacheControl = (_e = validator.getCacheControl(part.providerOptions, {\n type: \"assistant message part\",\n canCache: true\n })) != null ? _e : isLastContentPart ? validator.getCacheControl(message.providerOptions, {\n type: \"assistant message\",\n canCache: true\n }) : void 0;\n switch (part.type) {\n case \"text\": {\n anthropicContent.push({\n type: \"text\",\n text: (\n // trim the last text part if it's the last message in the block\n // because Anthropic does not allow trailing whitespace\n // in pre-filled assistant responses\n isLastBlock && isLastMessage && isLastContentPart ? part.text.trim() : part.text\n ),\n cache_control: cacheControl\n });\n break;\n }\n case \"reasoning\": {\n if (sendReasoning) {\n const reasoningMetadata = await parseProviderOptions({\n provider: \"anthropic\",\n providerOptions: part.providerOptions,\n schema: anthropicReasoningMetadataSchema\n });\n if (reasoningMetadata != null) {\n if (reasoningMetadata.signature != null) {\n validator.getCacheControl(part.providerOptions, {\n type: \"thinking block\",\n canCache: false\n });\n anthropicContent.push({\n type: \"thinking\",\n thinking: part.text,\n signature: reasoningMetadata.signature\n });\n } else if (reasoningMetadata.redactedData != null) {\n validator.getCacheControl(part.providerOptions, {\n type: \"redacted thinking block\",\n canCache: false\n });\n anthropicContent.push({\n type: \"redacted_thinking\",\n data: reasoningMetadata.redactedData\n });\n } else {\n warnings.push({\n type: \"other\",\n message: \"unsupported reasoning metadata\"\n });\n }\n } else {\n warnings.push({\n type: \"other\",\n message: \"unsupported reasoning metadata\"\n });\n }\n } else {\n warnings.push({\n type: \"other\",\n message: \"sending reasoning content is disabled for this model\"\n });\n }\n break;\n }\n case \"tool-call\": {\n if (part.providerExecuted) {\n if (part.toolName === \"code_execution\" && part.input != null && typeof part.input === \"object\" && \"type\" in part.input && typeof part.input.type === \"string\" && (part.input.type === \"bash_code_execution\" || part.input.type === \"text_editor_code_execution\")) {\n anthropicContent.push({\n type: \"server_tool_use\",\n id: part.toolCallId,\n name: part.input.type,\n // map back to subtool name\n input: part.input,\n cache_control: cacheControl\n });\n } else if (part.toolName === \"code_execution\" || // code execution 20250522\n part.toolName === \"web_fetch\" || part.toolName === \"web_search\") {\n anthropicContent.push({\n type: \"server_tool_use\",\n id: part.toolCallId,\n name: part.toolName,\n input: part.input,\n cache_control: cacheControl\n });\n } else {\n warnings.push({\n type: \"other\",\n message: `provider executed tool call for tool ${part.toolName} is not supported`\n });\n }\n break;\n }\n anthropicContent.push({\n type: \"tool_use\",\n id: part.toolCallId,\n name: part.toolName,\n input: part.input,\n cache_control: cacheControl\n });\n break;\n }\n case \"tool-result\": {\n if (part.toolName === \"code_execution\") {\n const output = part.output;\n if (output.type !== \"json\") {\n warnings.push({\n type: \"other\",\n message: `provider executed tool result output type ${output.type} for tool ${part.toolName} is not supported`\n });\n break;\n }\n if (output.value == null || typeof output.value !== \"object\" || !(\"type\" in output.value) || typeof output.value.type !== \"string\") {\n warnings.push({\n type: \"other\",\n message: `provider executed tool result output value is not a valid code execution result for tool ${part.toolName}`\n });\n break;\n }\n if (output.value.type === \"code_execution_result\") {\n const codeExecutionOutput = await validateTypes2({\n value: output.value,\n schema: codeExecution_20250522OutputSchema\n });\n anthropicContent.push({\n type: \"code_execution_tool_result\",\n tool_use_id: part.toolCallId,\n content: {\n type: codeExecutionOutput.type,\n stdout: codeExecutionOutput.stdout,\n stderr: codeExecutionOutput.stderr,\n return_code: codeExecutionOutput.return_code\n },\n cache_control: cacheControl\n });\n } else {\n const codeExecutionOutput = await validateTypes2({\n value: output.value,\n schema: codeExecution_20250825OutputSchema\n });\n anthropicContent.push(\n codeExecutionOutput.type === \"bash_code_execution_result\" || codeExecutionOutput.type === \"bash_code_execution_tool_result_error\" ? {\n type: \"bash_code_execution_tool_result\",\n tool_use_id: part.toolCallId,\n cache_control: cacheControl,\n content: codeExecutionOutput\n } : {\n type: \"text_editor_code_execution_tool_result\",\n tool_use_id: part.toolCallId,\n cache_control: cacheControl,\n content: codeExecutionOutput\n }\n );\n }\n break;\n }\n if (part.toolName === \"web_fetch\") {\n const output = part.output;\n if (output.type !== \"json\") {\n warnings.push({\n type: \"other\",\n message: `provider executed tool result output type ${output.type} for tool ${part.toolName} is not supported`\n });\n break;\n }\n const webFetchOutput = await validateTypes2({\n value: output.value,\n schema: webFetch_20250910OutputSchema\n });\n anthropicContent.push({\n type: \"web_fetch_tool_result\",\n tool_use_id: part.toolCallId,\n content: {\n type: \"web_fetch_result\",\n url: webFetchOutput.url,\n retrieved_at: webFetchOutput.retrievedAt,\n content: {\n type: \"document\",\n title: webFetchOutput.content.title,\n citations: webFetchOutput.content.citations,\n source: {\n type: webFetchOutput.content.source.type,\n media_type: webFetchOutput.content.source.mediaType,\n data: webFetchOutput.content.source.data\n }\n }\n },\n cache_control: cacheControl\n });\n break;\n }\n if (part.toolName === \"web_search\") {\n const output = part.output;\n if (output.type !== \"json\") {\n warnings.push({\n type: \"other\",\n message: `provider executed tool result output type ${output.type} for tool ${part.toolName} is not supported`\n });\n break;\n }\n const webSearchOutput = await validateTypes2({\n value: output.value,\n schema: webSearch_20250305OutputSchema\n });\n anthropicContent.push({\n type: \"web_search_tool_result\",\n tool_use_id: part.toolCallId,\n content: webSearchOutput.map((result) => ({\n url: result.url,\n title: result.title,\n page_age: result.pageAge,\n encrypted_content: result.encryptedContent,\n type: result.type\n })),\n cache_control: cacheControl\n });\n break;\n }\n warnings.push({\n type: \"other\",\n message: `provider executed tool result for tool ${part.toolName} is not supported`\n });\n break;\n }\n }\n }\n }\n messages.push({ role: \"assistant\", content: anthropicContent });\n break;\n }\n default: {\n const _exhaustiveCheck = type;\n throw new Error(`content type: ${_exhaustiveCheck}`);\n }\n }\n }\n return {\n prompt: { system, messages },\n betas\n };\n}\nfunction groupIntoBlocks(prompt) {\n const blocks = [];\n let currentBlock = void 0;\n for (const message of prompt) {\n const { role } = message;\n switch (role) {\n case \"system\": {\n if ((currentBlock == null ? void 0 : currentBlock.type) !== \"system\") {\n currentBlock = { type: \"system\", messages: [] };\n blocks.push(currentBlock);\n }\n currentBlock.messages.push(message);\n break;\n }\n case \"assistant\": {\n if ((currentBlock == null ? void 0 : currentBlock.type) !== \"assistant\") {\n currentBlock = { type: \"assistant\", messages: [] };\n blocks.push(currentBlock);\n }\n currentBlock.messages.push(message);\n break;\n }\n case \"user\": {\n if ((currentBlock == null ? void 0 : currentBlock.type) !== \"user\") {\n currentBlock = { type: \"user\", messages: [] };\n blocks.push(currentBlock);\n }\n currentBlock.messages.push(message);\n break;\n }\n case \"tool\": {\n if ((currentBlock == null ? void 0 : currentBlock.type) !== \"user\") {\n currentBlock = { type: \"user\", messages: [] };\n blocks.push(currentBlock);\n }\n currentBlock.messages.push(message);\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return blocks;\n}\n\n// src/map-anthropic-stop-reason.ts\nfunction mapAnthropicStopReason({\n finishReason,\n isJsonResponseFromTool\n}) {\n switch (finishReason) {\n case \"pause_turn\":\n case \"end_turn\":\n case \"stop_sequence\":\n return \"stop\";\n case \"refusal\":\n return \"content-filter\";\n case \"tool_use\":\n return isJsonResponseFromTool ? \"stop\" : \"tool-calls\";\n case \"max_tokens\":\n return \"length\";\n default:\n return \"unknown\";\n }\n}\n\n// src/anthropic-messages-language-model.ts\nfunction createCitationSource(citation, citationDocuments, generateId3) {\n var _a;\n if (citation.type !== \"page_location\" && citation.type !== \"char_location\") {\n return;\n }\n const documentInfo = citationDocuments[citation.document_index];\n if (!documentInfo) {\n return;\n }\n return {\n type: \"source\",\n sourceType: \"document\",\n id: generateId3(),\n mediaType: documentInfo.mediaType,\n title: (_a = citation.document_title) != null ? _a : documentInfo.title,\n filename: documentInfo.filename,\n providerMetadata: {\n anthropic: citation.type === \"page_location\" ? {\n citedText: citation.cited_text,\n startPageNumber: citation.start_page_number,\n endPageNumber: citation.end_page_number\n } : {\n citedText: citation.cited_text,\n startCharIndex: citation.start_char_index,\n endCharIndex: citation.end_char_index\n }\n }\n };\n}\nvar AnthropicMessagesLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v2\";\n var _a;\n this.modelId = modelId;\n this.config = config;\n this.generateId = (_a = config.generateId) != null ? _a : generateId;\n }\n supportsUrl(url) {\n return url.protocol === \"https:\";\n }\n get provider() {\n return this.config.provider;\n }\n get supportedUrls() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.config).supportedUrls) == null ? void 0 : _b.call(_a)) != null ? _c : {};\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n tools,\n toolChoice,\n providerOptions\n }) {\n var _a, _b, _c, _d;\n const warnings = [];\n if (frequencyPenalty != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"frequencyPenalty\"\n });\n }\n if (presencePenalty != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"presencePenalty\"\n });\n }\n if (seed != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"seed\"\n });\n }\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\") {\n if (responseFormat.schema == null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"responseFormat\",\n details: \"JSON response format requires a schema. The response format is ignored.\"\n });\n } else if (tools != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"tools\",\n details: \"JSON response format does not support tools. The provided tools are ignored.\"\n });\n }\n }\n const jsonResponseTool = (responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null ? {\n type: \"function\",\n name: \"json\",\n description: \"Respond with a JSON object.\",\n inputSchema: responseFormat.schema\n } : void 0;\n const anthropicOptions = await parseProviderOptions2({\n provider: \"anthropic\",\n providerOptions,\n schema: anthropicProviderOptions\n });\n const cacheControlValidator = new CacheControlValidator();\n const { prompt: messagesPrompt, betas } = await convertToAnthropicMessagesPrompt({\n prompt,\n sendReasoning: (_a = anthropicOptions == null ? void 0 : anthropicOptions.sendReasoning) != null ? _a : true,\n warnings,\n cacheControlValidator\n });\n const isThinking = ((_b = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _b.type) === \"enabled\";\n const thinkingBudget = (_c = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _c.budgetTokens;\n const { maxOutputTokens: maxOutputTokensForModel, knownModel } = getMaxOutputTokensForModel(this.modelId);\n const maxTokens = maxOutputTokens != null ? maxOutputTokens : maxOutputTokensForModel;\n const baseArgs = {\n // model id:\n model: this.modelId,\n // standardized settings:\n max_tokens: maxTokens,\n temperature,\n top_k: topK,\n top_p: topP,\n stop_sequences: stopSequences,\n // provider specific settings:\n ...isThinking && {\n thinking: { type: \"enabled\", budget_tokens: thinkingBudget }\n },\n // container with agent skills:\n ...(anthropicOptions == null ? void 0 : anthropicOptions.container) && {\n container: {\n id: anthropicOptions.container.id,\n skills: (_d = anthropicOptions.container.skills) == null ? void 0 : _d.map((skill) => ({\n type: skill.type,\n skill_id: skill.skillId,\n version: skill.version\n }))\n }\n },\n // prompt:\n system: messagesPrompt.system,\n messages: messagesPrompt.messages\n };\n if (isThinking) {\n if (thinkingBudget == null) {\n throw new UnsupportedFunctionalityError3({\n functionality: \"thinking requires a budget\"\n });\n }\n if (baseArgs.temperature != null) {\n baseArgs.temperature = void 0;\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"temperature\",\n details: \"temperature is not supported when thinking is enabled\"\n });\n }\n if (topK != null) {\n baseArgs.top_k = void 0;\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"topK\",\n details: \"topK is not supported when thinking is enabled\"\n });\n }\n if (topP != null) {\n baseArgs.top_p = void 0;\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"topP\",\n details: \"topP is not supported when thinking is enabled\"\n });\n }\n baseArgs.max_tokens = maxTokens + thinkingBudget;\n }\n if (knownModel && baseArgs.max_tokens > maxOutputTokensForModel) {\n if (maxOutputTokens != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"maxOutputTokens\",\n details: `${baseArgs.max_tokens} (maxOutputTokens + thinkingBudget) is greater than ${this.modelId} ${maxOutputTokensForModel} max output tokens. The max output tokens have been limited to ${maxOutputTokensForModel}.`\n });\n }\n baseArgs.max_tokens = maxOutputTokensForModel;\n }\n if ((anthropicOptions == null ? void 0 : anthropicOptions.container) && anthropicOptions.container.skills && anthropicOptions.container.skills.length > 0) {\n betas.add(\"code-execution-2025-08-25\");\n betas.add(\"skills-2025-10-02\");\n betas.add(\"files-api-2025-04-14\");\n if (!(tools == null ? void 0 : tools.some(\n (tool) => tool.type === \"provider-defined\" && tool.id === \"anthropic.code_execution_20250825\"\n ))) {\n warnings.push({\n type: \"other\",\n message: \"code execution tool is required when using skills\"\n });\n }\n }\n const {\n tools: anthropicTools2,\n toolChoice: anthropicToolChoice,\n toolWarnings,\n betas: toolsBetas\n } = await prepareTools(\n jsonResponseTool != null ? {\n tools: [jsonResponseTool],\n toolChoice: { type: \"tool\", toolName: jsonResponseTool.name },\n disableParallelToolUse: true,\n cacheControlValidator\n } : {\n tools: tools != null ? tools : [],\n toolChoice,\n disableParallelToolUse: anthropicOptions == null ? void 0 : anthropicOptions.disableParallelToolUse,\n cacheControlValidator\n }\n );\n const cacheWarnings = cacheControlValidator.getWarnings();\n return {\n args: {\n ...baseArgs,\n tools: anthropicTools2,\n tool_choice: anthropicToolChoice\n },\n warnings: [...warnings, ...toolWarnings, ...cacheWarnings],\n betas: /* @__PURE__ */ new Set([...betas, ...toolsBetas]),\n usesJsonResponseTool: jsonResponseTool != null\n };\n }\n async getHeaders({\n betas,\n headers\n }) {\n return combineHeaders(\n await resolve(this.config.headers),\n betas.size > 0 ? { \"anthropic-beta\": Array.from(betas).join(\",\") } : {},\n headers\n );\n }\n buildRequestUrl(isStreaming) {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.config).buildRequestUrl) == null ? void 0 : _b.call(_a, this.config.baseURL, isStreaming)) != null ? _c : `${this.config.baseURL}/messages`;\n }\n transformRequestBody(args) {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.config).transformRequestBody) == null ? void 0 : _b.call(_a, args)) != null ? _c : args;\n }\n extractCitationDocuments(prompt) {\n const isCitationPart = (part) => {\n var _a, _b;\n if (part.type !== \"file\") {\n return false;\n }\n if (part.mediaType !== \"application/pdf\" && part.mediaType !== \"text/plain\") {\n return false;\n }\n const anthropic2 = (_a = part.providerOptions) == null ? void 0 : _a.anthropic;\n const citationsConfig = anthropic2 == null ? void 0 : anthropic2.citations;\n return (_b = citationsConfig == null ? void 0 : citationsConfig.enabled) != null ? _b : false;\n };\n return prompt.filter((message) => message.role === \"user\").flatMap((message) => message.content).filter(isCitationPart).map((part) => {\n var _a;\n const filePart = part;\n return {\n title: (_a = filePart.filename) != null ? _a : \"Untitled Document\",\n filename: filePart.filename,\n mediaType: filePart.mediaType\n };\n });\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const { args, warnings, betas, usesJsonResponseTool } = await this.getArgs(options);\n const citationDocuments = this.extractCitationDocuments(options.prompt);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: this.buildRequestUrl(false),\n headers: await this.getHeaders({ betas, headers: options.headers }),\n body: this.transformRequestBody(args),\n failedResponseHandler: anthropicFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n anthropicMessagesResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const content = [];\n for (const part of response.content) {\n switch (part.type) {\n case \"text\": {\n if (!usesJsonResponseTool) {\n content.push({ type: \"text\", text: part.text });\n if (part.citations) {\n for (const citation of part.citations) {\n const source = createCitationSource(\n citation,\n citationDocuments,\n this.generateId\n );\n if (source) {\n content.push(source);\n }\n }\n }\n }\n break;\n }\n case \"thinking\": {\n content.push({\n type: \"reasoning\",\n text: part.thinking,\n providerMetadata: {\n anthropic: {\n signature: part.signature\n }\n }\n });\n break;\n }\n case \"redacted_thinking\": {\n content.push({\n type: \"reasoning\",\n text: \"\",\n providerMetadata: {\n anthropic: {\n redactedData: part.data\n }\n }\n });\n break;\n }\n case \"tool_use\": {\n content.push(\n // when a json response tool is used, the tool call becomes the text:\n usesJsonResponseTool ? {\n type: \"text\",\n text: JSON.stringify(part.input)\n } : {\n type: \"tool-call\",\n toolCallId: part.id,\n toolName: part.name,\n input: JSON.stringify(part.input)\n }\n );\n break;\n }\n case \"server_tool_use\": {\n if (part.name === \"text_editor_code_execution\" || part.name === \"bash_code_execution\") {\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName: \"code_execution\",\n input: JSON.stringify({ type: part.name, ...part.input }),\n providerExecuted: true\n });\n } else if (part.name === \"web_search\" || part.name === \"code_execution\" || part.name === \"web_fetch\") {\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName: part.name,\n input: JSON.stringify(part.input),\n providerExecuted: true\n });\n }\n break;\n }\n case \"web_fetch_tool_result\": {\n if (part.content.type === \"web_fetch_result\") {\n content.push({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"web_fetch\",\n result: {\n type: \"web_fetch_result\",\n url: part.content.url,\n retrievedAt: part.content.retrieved_at,\n content: {\n type: part.content.content.type,\n title: part.content.content.title,\n citations: part.content.content.citations,\n source: {\n type: part.content.content.source.type,\n mediaType: part.content.content.source.media_type,\n data: part.content.content.source.data\n }\n }\n },\n providerExecuted: true\n });\n } else if (part.content.type === \"web_fetch_tool_result_error\") {\n content.push({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"web_fetch\",\n isError: true,\n result: {\n type: \"web_fetch_tool_result_error\",\n errorCode: part.content.error_code\n },\n providerExecuted: true\n });\n }\n break;\n }\n case \"web_search_tool_result\": {\n if (Array.isArray(part.content)) {\n content.push({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"web_search\",\n result: part.content.map((result) => {\n var _a2;\n return {\n url: result.url,\n title: result.title,\n pageAge: (_a2 = result.page_age) != null ? _a2 : null,\n encryptedContent: result.encrypted_content,\n type: result.type\n };\n }),\n providerExecuted: true\n });\n for (const result of part.content) {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: this.generateId(),\n url: result.url,\n title: result.title,\n providerMetadata: {\n anthropic: {\n pageAge: (_a = result.page_age) != null ? _a : null\n }\n }\n });\n }\n } else {\n content.push({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"web_search\",\n isError: true,\n result: {\n type: \"web_search_tool_result_error\",\n errorCode: part.content.error_code\n },\n providerExecuted: true\n });\n }\n break;\n }\n // code execution 20250522:\n case \"code_execution_tool_result\": {\n if (part.content.type === \"code_execution_result\") {\n content.push({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"code_execution\",\n result: {\n type: part.content.type,\n stdout: part.content.stdout,\n stderr: part.content.stderr,\n return_code: part.content.return_code\n },\n providerExecuted: true\n });\n } else if (part.content.type === \"code_execution_tool_result_error\") {\n content.push({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"code_execution\",\n isError: true,\n result: {\n type: \"code_execution_tool_result_error\",\n errorCode: part.content.error_code\n },\n providerExecuted: true\n });\n }\n break;\n }\n // code execution 20250825:\n case \"bash_code_execution_tool_result\":\n case \"text_editor_code_execution_tool_result\": {\n content.push({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"code_execution\",\n result: part.content,\n providerExecuted: true\n });\n break;\n }\n }\n }\n return {\n content,\n finishReason: mapAnthropicStopReason({\n finishReason: response.stop_reason,\n isJsonResponseFromTool: usesJsonResponseTool\n }),\n usage: {\n inputTokens: response.usage.input_tokens,\n outputTokens: response.usage.output_tokens,\n totalTokens: response.usage.input_tokens + response.usage.output_tokens,\n cachedInputTokens: (_b = response.usage.cache_read_input_tokens) != null ? _b : void 0\n },\n request: { body: args },\n response: {\n id: (_c = response.id) != null ? _c : void 0,\n modelId: (_d = response.model) != null ? _d : void 0,\n headers: responseHeaders,\n body: rawResponse\n },\n warnings,\n providerMetadata: {\n anthropic: {\n usage: response.usage,\n cacheCreationInputTokens: (_e = response.usage.cache_creation_input_tokens) != null ? _e : null,\n stopSequence: (_f = response.stop_sequence) != null ? _f : null,\n container: response.container ? {\n expiresAt: response.container.expires_at,\n id: response.container.id,\n skills: (_h = (_g = response.container.skills) == null ? void 0 : _g.map((skill) => ({\n type: skill.type,\n skillId: skill.skill_id,\n version: skill.version\n }))) != null ? _h : null\n } : null\n }\n }\n };\n }\n async doStream(options) {\n const { args, warnings, betas, usesJsonResponseTool } = await this.getArgs(options);\n const citationDocuments = this.extractCitationDocuments(options.prompt);\n const body = { ...args, stream: true };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.buildRequestUrl(true),\n headers: await this.getHeaders({ betas, headers: options.headers }),\n body: this.transformRequestBody(body),\n failedResponseHandler: anthropicFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n anthropicMessagesChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = \"unknown\";\n const usage = {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0\n };\n const contentBlocks = {};\n let rawUsage = void 0;\n let cacheCreationInputTokens = null;\n let stopSequence = null;\n let container = null;\n let blockType = void 0;\n const generateId3 = this.generateId;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n switch (value.type) {\n case \"ping\": {\n return;\n }\n case \"content_block_start\": {\n const contentBlockType = value.content_block.type;\n blockType = contentBlockType;\n switch (contentBlockType) {\n case \"text\": {\n contentBlocks[value.index] = { type: \"text\" };\n controller.enqueue({\n type: \"text-start\",\n id: String(value.index)\n });\n return;\n }\n case \"thinking\": {\n contentBlocks[value.index] = { type: \"reasoning\" };\n controller.enqueue({\n type: \"reasoning-start\",\n id: String(value.index)\n });\n return;\n }\n case \"redacted_thinking\": {\n contentBlocks[value.index] = { type: \"reasoning\" };\n controller.enqueue({\n type: \"reasoning-start\",\n id: String(value.index),\n providerMetadata: {\n anthropic: {\n redactedData: value.content_block.data\n }\n }\n });\n return;\n }\n case \"tool_use\": {\n contentBlocks[value.index] = usesJsonResponseTool ? { type: \"text\" } : {\n type: \"tool-call\",\n toolCallId: value.content_block.id,\n toolName: value.content_block.name,\n input: \"\",\n firstDelta: true\n };\n controller.enqueue(\n usesJsonResponseTool ? { type: \"text-start\", id: String(value.index) } : {\n type: \"tool-input-start\",\n id: value.content_block.id,\n toolName: value.content_block.name\n }\n );\n return;\n }\n case \"server_tool_use\": {\n if ([\n \"web_fetch\",\n \"web_search\",\n // code execution 20250825:\n \"code_execution\",\n // code execution 20250825 text editor:\n \"text_editor_code_execution\",\n // code execution 20250825 bash:\n \"bash_code_execution\"\n ].includes(value.content_block.name)) {\n contentBlocks[value.index] = {\n type: \"tool-call\",\n toolCallId: value.content_block.id,\n toolName: value.content_block.name,\n input: \"\",\n providerExecuted: true,\n firstDelta: true\n };\n const mappedToolName = value.content_block.name === \"text_editor_code_execution\" || value.content_block.name === \"bash_code_execution\" ? \"code_execution\" : value.content_block.name;\n controller.enqueue({\n type: \"tool-input-start\",\n id: value.content_block.id,\n toolName: mappedToolName,\n providerExecuted: true\n });\n }\n return;\n }\n case \"web_fetch_tool_result\": {\n const part = value.content_block;\n if (part.content.type === \"web_fetch_result\") {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"web_fetch\",\n result: {\n type: \"web_fetch_result\",\n url: part.content.url,\n retrievedAt: part.content.retrieved_at,\n content: {\n type: part.content.content.type,\n title: part.content.content.title,\n citations: part.content.content.citations,\n source: {\n type: part.content.content.source.type,\n mediaType: part.content.content.source.media_type,\n data: part.content.content.source.data\n }\n }\n }\n });\n } else if (part.content.type === \"web_fetch_tool_result_error\") {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"web_fetch\",\n isError: true,\n result: {\n type: \"web_fetch_tool_result_error\",\n errorCode: part.content.error_code\n },\n providerExecuted: true\n });\n }\n return;\n }\n case \"web_search_tool_result\": {\n const part = value.content_block;\n if (Array.isArray(part.content)) {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"web_search\",\n result: part.content.map((result) => {\n var _a2;\n return {\n url: result.url,\n title: result.title,\n pageAge: (_a2 = result.page_age) != null ? _a2 : null,\n encryptedContent: result.encrypted_content,\n type: result.type\n };\n }),\n providerExecuted: true\n });\n for (const result of part.content) {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: result.url,\n title: result.title,\n providerMetadata: {\n anthropic: {\n pageAge: (_a = result.page_age) != null ? _a : null\n }\n }\n });\n }\n } else {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"web_search\",\n isError: true,\n result: {\n type: \"web_search_tool_result_error\",\n errorCode: part.content.error_code\n },\n providerExecuted: true\n });\n }\n return;\n }\n // code execution 20250522:\n case \"code_execution_tool_result\": {\n const part = value.content_block;\n if (part.content.type === \"code_execution_result\") {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"code_execution\",\n result: {\n type: part.content.type,\n stdout: part.content.stdout,\n stderr: part.content.stderr,\n return_code: part.content.return_code\n },\n providerExecuted: true\n });\n } else if (part.content.type === \"code_execution_tool_result_error\") {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"code_execution\",\n isError: true,\n result: {\n type: \"code_execution_tool_result_error\",\n errorCode: part.content.error_code\n },\n providerExecuted: true\n });\n }\n return;\n }\n // code execution 20250825:\n case \"bash_code_execution_tool_result\":\n case \"text_editor_code_execution_tool_result\": {\n const part = value.content_block;\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.tool_use_id,\n toolName: \"code_execution\",\n result: part.content,\n providerExecuted: true\n });\n return;\n }\n default: {\n const _exhaustiveCheck = contentBlockType;\n throw new Error(\n `Unsupported content block type: ${_exhaustiveCheck}`\n );\n }\n }\n }\n case \"content_block_stop\": {\n if (contentBlocks[value.index] != null) {\n const contentBlock = contentBlocks[value.index];\n switch (contentBlock.type) {\n case \"text\": {\n controller.enqueue({\n type: \"text-end\",\n id: String(value.index)\n });\n break;\n }\n case \"reasoning\": {\n controller.enqueue({\n type: \"reasoning-end\",\n id: String(value.index)\n });\n break;\n }\n case \"tool-call\":\n if (!usesJsonResponseTool) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: contentBlock.toolCallId\n });\n const toolName = contentBlock.toolName === \"text_editor_code_execution\" || contentBlock.toolName === \"bash_code_execution\" ? \"code_execution\" : contentBlock.toolName;\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: contentBlock.toolCallId,\n toolName,\n input: contentBlock.input,\n providerExecuted: contentBlock.providerExecuted\n });\n }\n break;\n }\n delete contentBlocks[value.index];\n }\n blockType = void 0;\n return;\n }\n case \"content_block_delta\": {\n const deltaType = value.delta.type;\n switch (deltaType) {\n case \"text_delta\": {\n if (usesJsonResponseTool) {\n return;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: String(value.index),\n delta: value.delta.text\n });\n return;\n }\n case \"thinking_delta\": {\n controller.enqueue({\n type: \"reasoning-delta\",\n id: String(value.index),\n delta: value.delta.thinking\n });\n return;\n }\n case \"signature_delta\": {\n if (blockType === \"thinking\") {\n controller.enqueue({\n type: \"reasoning-delta\",\n id: String(value.index),\n delta: \"\",\n providerMetadata: {\n anthropic: {\n signature: value.delta.signature\n }\n }\n });\n }\n return;\n }\n case \"input_json_delta\": {\n const contentBlock = contentBlocks[value.index];\n let delta = value.delta.partial_json;\n if (delta.length === 0) {\n return;\n }\n if (usesJsonResponseTool) {\n if ((contentBlock == null ? void 0 : contentBlock.type) !== \"text\") {\n return;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: String(value.index),\n delta\n });\n } else {\n if ((contentBlock == null ? void 0 : contentBlock.type) !== \"tool-call\") {\n return;\n }\n if (contentBlock.firstDelta && (contentBlock.toolName === \"bash_code_execution\" || contentBlock.toolName === \"text_editor_code_execution\")) {\n delta = `{\"type\": \"${contentBlock.toolName}\",${delta.substring(1)}`;\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: contentBlock.toolCallId,\n delta\n });\n contentBlock.input += delta;\n contentBlock.firstDelta = false;\n }\n return;\n }\n case \"citations_delta\": {\n const citation = value.delta.citation;\n const source = createCitationSource(\n citation,\n citationDocuments,\n generateId3\n );\n if (source) {\n controller.enqueue(source);\n }\n return;\n }\n default: {\n const _exhaustiveCheck = deltaType;\n throw new Error(\n `Unsupported delta type: ${_exhaustiveCheck}`\n );\n }\n }\n }\n case \"message_start\": {\n usage.inputTokens = value.message.usage.input_tokens;\n usage.cachedInputTokens = (_b = value.message.usage.cache_read_input_tokens) != null ? _b : void 0;\n rawUsage = {\n ...value.message.usage\n };\n cacheCreationInputTokens = (_c = value.message.usage.cache_creation_input_tokens) != null ? _c : null;\n controller.enqueue({\n type: \"response-metadata\",\n id: (_d = value.message.id) != null ? _d : void 0,\n modelId: (_e = value.message.model) != null ? _e : void 0\n });\n return;\n }\n case \"message_delta\": {\n usage.outputTokens = value.usage.output_tokens;\n usage.totalTokens = ((_f = usage.inputTokens) != null ? _f : 0) + ((_g = value.usage.output_tokens) != null ? _g : 0);\n finishReason = mapAnthropicStopReason({\n finishReason: value.delta.stop_reason,\n isJsonResponseFromTool: usesJsonResponseTool\n });\n stopSequence = (_h = value.delta.stop_sequence) != null ? _h : null;\n container = value.delta.container != null ? {\n expiresAt: value.delta.container.expires_at,\n id: value.delta.container.id,\n skills: (_j = (_i = value.delta.container.skills) == null ? void 0 : _i.map((skill) => ({\n type: skill.type,\n skillId: skill.skill_id,\n version: skill.version\n }))) != null ? _j : null\n } : null;\n rawUsage = {\n ...rawUsage,\n ...value.usage\n };\n return;\n }\n case \"message_stop\": {\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage,\n providerMetadata: {\n anthropic: {\n usage: rawUsage != null ? rawUsage : null,\n cacheCreationInputTokens,\n stopSequence,\n container\n }\n }\n });\n return;\n }\n case \"error\": {\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n default: {\n const _exhaustiveCheck = value;\n throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);\n }\n }\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction getMaxOutputTokensForModel(modelId) {\n if (modelId.includes(\"claude-sonnet-4-\") || modelId.includes(\"claude-3-7-sonnet\") || modelId.includes(\"claude-haiku-4-5\")) {\n return { maxOutputTokens: 64e3, knownModel: true };\n } else if (modelId.includes(\"claude-opus-4-\")) {\n return { maxOutputTokens: 32e3, knownModel: true };\n } else if (modelId.includes(\"claude-3-5-haiku\")) {\n return { maxOutputTokens: 8192, knownModel: true };\n } else if (modelId.includes(\"claude-3-haiku\")) {\n return { maxOutputTokens: 4096, knownModel: true };\n } else {\n return { maxOutputTokens: 4096, knownModel: false };\n }\n}\n\n// src/tool/bash_20241022.ts\nimport {\n createProviderDefinedToolFactory as createProviderDefinedToolFactory2,\n lazySchema as lazySchema8,\n zodSchema as zodSchema8\n} from \"@ai-sdk/provider-utils\";\nimport { z as z9 } from \"zod/v4\";\nvar bash_20241022InputSchema = lazySchema8(\n () => zodSchema8(\n z9.object({\n command: z9.string(),\n restart: z9.boolean().optional()\n })\n )\n);\nvar bash_20241022 = createProviderDefinedToolFactory2({\n id: \"anthropic.bash_20241022\",\n name: \"bash\",\n inputSchema: bash_20241022InputSchema\n});\n\n// src/tool/bash_20250124.ts\nimport {\n createProviderDefinedToolFactory as createProviderDefinedToolFactory3,\n lazySchema as lazySchema9,\n zodSchema as zodSchema9\n} from \"@ai-sdk/provider-utils\";\nimport { z as z10 } from \"zod/v4\";\nvar bash_20250124InputSchema = lazySchema9(\n () => zodSchema9(\n z10.object({\n command: z10.string(),\n restart: z10.boolean().optional()\n })\n )\n);\nvar bash_20250124 = createProviderDefinedToolFactory3({\n id: \"anthropic.bash_20250124\",\n name: \"bash\",\n inputSchema: bash_20250124InputSchema\n});\n\n// src/tool/computer_20241022.ts\nimport {\n createProviderDefinedToolFactory as createProviderDefinedToolFactory4,\n lazySchema as lazySchema10,\n zodSchema as zodSchema10\n} from \"@ai-sdk/provider-utils\";\nimport { z as z11 } from \"zod/v4\";\nvar computer_20241022InputSchema = lazySchema10(\n () => zodSchema10(\n z11.object({\n action: z11.enum([\n \"key\",\n \"type\",\n \"mouse_move\",\n \"left_click\",\n \"left_click_drag\",\n \"right_click\",\n \"middle_click\",\n \"double_click\",\n \"screenshot\",\n \"cursor_position\"\n ]),\n coordinate: z11.array(z11.number().int()).optional(),\n text: z11.string().optional()\n })\n )\n);\nvar computer_20241022 = createProviderDefinedToolFactory4({\n id: \"anthropic.computer_20241022\",\n name: \"computer\",\n inputSchema: computer_20241022InputSchema\n});\n\n// src/tool/computer_20250124.ts\nimport {\n createProviderDefinedToolFactory as createProviderDefinedToolFactory5,\n lazySchema as lazySchema11,\n zodSchema as zodSchema11\n} from \"@ai-sdk/provider-utils\";\nimport { z as z12 } from \"zod/v4\";\nvar computer_20250124InputSchema = lazySchema11(\n () => zodSchema11(\n z12.object({\n action: z12.enum([\n \"key\",\n \"hold_key\",\n \"type\",\n \"cursor_position\",\n \"mouse_move\",\n \"left_mouse_down\",\n \"left_mouse_up\",\n \"left_click\",\n \"left_click_drag\",\n \"right_click\",\n \"middle_click\",\n \"double_click\",\n \"triple_click\",\n \"scroll\",\n \"wait\",\n \"screenshot\"\n ]),\n coordinate: z12.tuple([z12.number().int(), z12.number().int()]).optional(),\n duration: z12.number().optional(),\n scroll_amount: z12.number().optional(),\n scroll_direction: z12.enum([\"up\", \"down\", \"left\", \"right\"]).optional(),\n start_coordinate: z12.tuple([z12.number().int(), z12.number().int()]).optional(),\n text: z12.string().optional()\n })\n )\n);\nvar computer_20250124 = createProviderDefinedToolFactory5({\n id: \"anthropic.computer_20250124\",\n name: \"computer\",\n inputSchema: computer_20250124InputSchema\n});\n\n// src/tool/memory_20250818.ts\nimport {\n createProviderDefinedToolFactory as createProviderDefinedToolFactory6,\n lazySchema as lazySchema12,\n zodSchema as zodSchema12\n} from \"@ai-sdk/provider-utils\";\nimport { z as z13 } from \"zod/v4\";\nvar memory_20250818InputSchema = lazySchema12(\n () => zodSchema12(\n z13.discriminatedUnion(\"command\", [\n z13.object({\n command: z13.literal(\"view\"),\n path: z13.string(),\n view_range: z13.tuple([z13.number(), z13.number()]).optional()\n }),\n z13.object({\n command: z13.literal(\"create\"),\n path: z13.string(),\n file_text: z13.string()\n }),\n z13.object({\n command: z13.literal(\"str_replace\"),\n path: z13.string(),\n old_str: z13.string(),\n new_str: z13.string()\n }),\n z13.object({\n command: z13.literal(\"insert\"),\n path: z13.string(),\n insert_line: z13.number(),\n insert_text: z13.string()\n }),\n z13.object({\n command: z13.literal(\"delete\"),\n path: z13.string()\n }),\n z13.object({\n command: z13.literal(\"rename\"),\n old_path: z13.string(),\n new_path: z13.string()\n })\n ])\n )\n);\nvar memory_20250818 = createProviderDefinedToolFactory6({\n id: \"anthropic.memory_20250818\",\n name: \"memory\",\n inputSchema: memory_20250818InputSchema\n});\n\n// src/tool/text-editor_20241022.ts\nimport {\n createProviderDefinedToolFactory as createProviderDefinedToolFactory7,\n lazySchema as lazySchema13,\n zodSchema as zodSchema13\n} from \"@ai-sdk/provider-utils\";\nimport { z as z14 } from \"zod/v4\";\nvar textEditor_20241022InputSchema = lazySchema13(\n () => zodSchema13(\n z14.object({\n command: z14.enum([\"view\", \"create\", \"str_replace\", \"insert\", \"undo_edit\"]),\n path: z14.string(),\n file_text: z14.string().optional(),\n insert_line: z14.number().int().optional(),\n new_str: z14.string().optional(),\n old_str: z14.string().optional(),\n view_range: z14.array(z14.number().int()).optional()\n })\n )\n);\nvar textEditor_20241022 = createProviderDefinedToolFactory7({\n id: \"anthropic.text_editor_20241022\",\n name: \"str_replace_editor\",\n inputSchema: textEditor_20241022InputSchema\n});\n\n// src/tool/text-editor_20250124.ts\nimport {\n createProviderDefinedToolFactory as createProviderDefinedToolFactory8,\n lazySchema as lazySchema14,\n zodSchema as zodSchema14\n} from \"@ai-sdk/provider-utils\";\nimport { z as z15 } from \"zod/v4\";\nvar textEditor_20250124InputSchema = lazySchema14(\n () => zodSchema14(\n z15.object({\n command: z15.enum([\"view\", \"create\", \"str_replace\", \"insert\", \"undo_edit\"]),\n path: z15.string(),\n file_text: z15.string().optional(),\n insert_line: z15.number().int().optional(),\n new_str: z15.string().optional(),\n old_str: z15.string().optional(),\n view_range: z15.array(z15.number().int()).optional()\n })\n )\n);\nvar textEditor_20250124 = createProviderDefinedToolFactory8({\n id: \"anthropic.text_editor_20250124\",\n name: \"str_replace_editor\",\n inputSchema: textEditor_20250124InputSchema\n});\n\n// src/tool/text-editor_20250429.ts\nimport {\n createProviderDefinedToolFactory as createProviderDefinedToolFactory9,\n lazySchema as lazySchema15,\n zodSchema as zodSchema15\n} from \"@ai-sdk/provider-utils\";\nimport { z as z16 } from \"zod/v4\";\nvar textEditor_20250429InputSchema = lazySchema15(\n () => zodSchema15(\n z16.object({\n command: z16.enum([\"view\", \"create\", \"str_replace\", \"insert\"]),\n path: z16.string(),\n file_text: z16.string().optional(),\n insert_line: z16.number().int().optional(),\n new_str: z16.string().optional(),\n old_str: z16.string().optional(),\n view_range: z16.array(z16.number().int()).optional()\n })\n )\n);\nvar textEditor_20250429 = createProviderDefinedToolFactory9({\n id: \"anthropic.text_editor_20250429\",\n name: \"str_replace_based_edit_tool\",\n inputSchema: textEditor_20250429InputSchema\n});\n\n// src/anthropic-tools.ts\nvar anthropicTools = {\n /**\n * The bash tool enables Claude to execute shell commands in a persistent bash session,\n * allowing system operations, script execution, and command-line automation.\n *\n * Image results are supported.\n *\n * Tool name must be `bash`.\n */\n bash_20241022,\n /**\n * The bash tool enables Claude to execute shell commands in a persistent bash session,\n * allowing system operations, script execution, and command-line automation.\n *\n * Image results are supported.\n *\n * Tool name must be `bash`.\n */\n bash_20250124,\n /**\n * Claude can analyze data, create visualizations, perform complex calculations,\n * run system commands, create and edit files, and process uploaded files directly within\n * the API conversation.\n *\n * The code execution tool allows Claude to run Bash commands and manipulate files,\n * including writing code, in a secure, sandboxed environment.\n *\n * Tool name must be `code_execution`.\n */\n codeExecution_20250522,\n /**\n * Claude can analyze data, create visualizations, perform complex calculations,\n * run system commands, create and edit files, and process uploaded files directly within\n * the API conversation.\n *\n * The code execution tool allows Claude to run both Python and Bash commands and manipulate files,\n * including writing code, in a secure, sandboxed environment.\n *\n * This is the latest version with enhanced Bash support and file operations.\n *\n * Tool name must be `code_execution`.\n */\n codeExecution_20250825,\n /**\n * Claude can interact with computer environments through the computer use tool, which\n * provides screenshot capabilities and mouse/keyboard control for autonomous desktop interaction.\n *\n * Image results are supported.\n *\n * Tool name must be `computer`.\n *\n * @param displayWidthPx - The width of the display being controlled by the model in pixels.\n * @param displayHeightPx - The height of the display being controlled by the model in pixels.\n * @param displayNumber - The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n */\n computer_20241022,\n /**\n * Claude can interact with computer environments through the computer use tool, which\n * provides screenshot capabilities and mouse/keyboard control for autonomous desktop interaction.\n *\n * Image results are supported.\n *\n * Tool name must be `computer`.\n *\n * @param displayWidthPx - The width of the display being controlled by the model in pixels.\n * @param displayHeightPx - The height of the display being controlled by the model in pixels.\n * @param displayNumber - The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n */\n computer_20250124,\n /**\n * The memory tool enables Claude to store and retrieve information across conversations through a memory file directory.\n * Claude can create, read, update, and delete files that persist between sessions,\n * allowing it to build knowledge over time without keeping everything in the context window.\n * The memory tool operates client-side—you control where and how the data is stored through your own infrastructure.\n *\n * Supported models: Claude Sonnet 4.5, Claude Sonnet 4, Claude Opus 4.1, Claude Opus 4.\n *\n * Tool name must be `memory`.\n */\n memory_20250818,\n /**\n * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n * helping you debug, fix, and improve your code or other text documents. This allows Claude\n * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n *\n * Supported models: Claude Sonnet 3.5\n *\n * Tool name must be `str_replace_editor`.\n */\n textEditor_20241022,\n /**\n * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n * helping you debug, fix, and improve your code or other text documents. This allows Claude\n * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n *\n * Supported models: Claude Sonnet 3.7\n *\n * Tool name must be `str_replace_editor`.\n */\n textEditor_20250124,\n /**\n * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n * helping you debug, fix, and improve your code or other text documents. This allows Claude\n * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n *\n * Note: This version does not support the \"undo_edit\" command.\n *\n * Tool name must be `str_replace_based_edit_tool`.\n *\n * @deprecated Use textEditor_20250728 instead\n */\n textEditor_20250429,\n /**\n * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n * helping you debug, fix, and improve your code or other text documents. This allows Claude\n * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n *\n * Note: This version does not support the \"undo_edit\" command and adds optional max_characters parameter.\n *\n * Supported models: Claude Sonnet 4, Opus 4, and Opus 4.1\n *\n * Tool name must be `str_replace_based_edit_tool`.\n *\n * @param maxCharacters - Optional maximum number of characters to view in the file\n */\n textEditor_20250728,\n /**\n * Creates a web fetch tool that gives Claude direct access to real-time web content.\n *\n * Tool name must be `web_fetch`.\n *\n * @param maxUses - The max_uses parameter limits the number of web fetches performed\n * @param allowedDomains - Only fetch from these domains\n * @param blockedDomains - Never fetch from these domains\n * @param citations - Unlike web search where citations are always enabled, citations are optional for web fetch. Set \"citations\": {\"enabled\": true} to enable Claude to cite specific passages from fetched documents.\n * @param maxContentTokens - The max_content_tokens parameter limits the amount of content that will be included in the context.\n */\n webFetch_20250910,\n /**\n * Creates a web search tool that gives Claude direct access to real-time web content.\n *\n * Tool name must be `web_search`.\n *\n * @param maxUses - Maximum number of web searches Claude can perform during the conversation.\n * @param allowedDomains - Optional list of domains that Claude is allowed to search.\n * @param blockedDomains - Optional list of domains that Claude should avoid when searching.\n * @param userLocation - Optional user location information to provide geographically relevant search results.\n */\n webSearch_20250305\n};\n\n// src/anthropic-provider.ts\nfunction createAnthropic(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(\n loadOptionalSetting({\n settingValue: options.baseURL,\n environmentVariableName: \"ANTHROPIC_BASE_URL\"\n })\n )) != null ? _a : \"https://api.anthropic.com/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n \"anthropic-version\": \"2023-06-01\",\n \"x-api-key\": loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"ANTHROPIC_API_KEY\",\n description: \"Anthropic\"\n }),\n ...options.headers\n },\n `ai-sdk/anthropic/${VERSION}`\n );\n const createChatModel = (modelId) => {\n var _a2;\n return new AnthropicMessagesLanguageModel(modelId, {\n provider: \"anthropic.messages\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n generateId: (_a2 = options.generateId) != null ? _a2 : generateId2,\n supportedUrls: () => ({\n \"image/*\": [/^https?:\\/\\/.*$/]\n })\n });\n };\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Anthropic model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.messages = createChatModel;\n provider.textEmbeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"textEmbeddingModel\" });\n };\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n provider.tools = anthropicTools;\n return provider;\n}\nvar anthropic = createAnthropic();\nexport {\n VERSION,\n anthropic,\n createAnthropic\n};\n//# sourceMappingURL=index.mjs.map",
|
|
6
|
-
"/**\n * Models.dev API Integration\n * Fetch model metadata as fallback source\n */\n\nexport interface ModelMetadata {\n id: string;\n name?: string;\n contextLength?: number;\n maxOutput?: number;\n inputPrice?: number;\n outputPrice?: number;\n provider?: string;\n description?: string;\n}\n\ninterface ModelsDevResponse {\n models: Array<{\n id: string;\n name?: string;\n context_length?: number;\n max_output?: number;\n pricing?: {\n input?: number;\n output?: number;\n };\n provider?: string;\n description?: string;\n }>;\n}\n\nlet cachedModels: Map<string, ModelMetadata> | null = null;\n\n/**\n * Fetch model metadata from models.dev\n */\nexport async function fetchModelsMetadata(): Promise<Map<string, ModelMetadata>> {\n if (cachedModels) {\n return cachedModels;\n }\n\n try {\n const response = await fetch('https://models.dev/api.json', {\n headers: {\n 'User-Agent': 'sylphx-flow/1.0',\n },\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch models.dev: ${response.status}`);\n }\n\n const data = (await response.json()) as ModelsDevResponse;\n\n const models = new Map<string, ModelMetadata>();\n\n for (const model of data.models) {\n models.set(model.id, {\n id: model.id,\n name: model.name,\n contextLength: model.context_length,\n maxOutput: model.max_output,\n inputPrice: model.pricing?.input,\n outputPrice: model.pricing?.output,\n provider: model.provider,\n description: model.description,\n });\n }\n\n cachedModels = models;\n return models;\n } catch (error) {\n console.error('Failed to fetch models.dev:', error);\n return new Map();\n }\n}\n\n/**\n * Get metadata for a specific model\n */\nexport async function getModelMetadata(modelId: string): Promise<ModelMetadata | null> {\n const models = await fetchModelsMetadata();\n return models.get(modelId) || null;\n}\n\n/**\n * Clear cache (for testing or forcing refresh)\n */\nexport function clearModelsCache(): void {\n cachedModels = null;\n}\n",
|
|
7
|
-
"/**\n * Anthropic Provider\n */\n\nimport { anthropic } from '@ai-sdk/anthropic';\nimport type { LanguageModelV1 } from 'ai';\nimport type { AIProvider, ProviderModelDetails, ConfigField, ProviderConfig, ModelInfo } from './base-provider.js';\n\nimport { getModelMetadata } from '../utils/models-dev.js';\n\nconst ANTHROPIC_MODELS: ModelInfo[] = [\n { id: 'claude-3-5-sonnet-20241022', name: 'Claude 3.5 Sonnet (Latest)' },\n { id: 'claude-3-5-haiku-20241022', name: 'Claude 3.5 Haiku' },\n { id: 'claude-3-opus-20240229', name: 'Claude 3 Opus' },\n { id: 'claude-3-sonnet-20240229', name: 'Claude 3 Sonnet' },\n { id: 'claude-3-haiku-20240307', name: 'Claude 3 Haiku' },\n];\n\nconst MODEL_DETAILS: Record<string, ProviderModelDetails> = {\n 'claude-3-5-sonnet-20241022': {\n contextLength: 200000,\n maxOutput: 8192,\n },\n 'claude-3-5-haiku-20241022': {\n contextLength: 200000,\n maxOutput: 8192,\n },\n 'claude-3-opus-20240229': {\n contextLength: 200000,\n maxOutput: 4096,\n },\n 'claude-3-sonnet-20240229': {\n contextLength: 200000,\n maxOutput: 4096,\n },\n 'claude-3-haiku-20240307': {\n contextLength: 200000,\n maxOutput: 4096,\n },\n};\n\nexport class AnthropicProvider implements AIProvider {\n readonly id = 'anthropic' as const;\n readonly name = 'Anthropic';\n\n getConfigSchema(): ConfigField[] {\n return [\n {\n key: 'api-key',\n label: 'API Key',\n type: 'string',\n required: true,\n secret: true,\n description: 'Get your API key from https://console.anthropic.com',\n placeholder: 'sk-ant-...',\n },\n ];\n }\n\n isConfigured(config: ProviderConfig): boolean {\n return !!config['api-key'];\n }\n\n async fetchModels(_config: ProviderConfig): Promise<ModelInfo[]> {\n return ANTHROPIC_MODELS;\n }\n\n async getModelDetails(modelId: string, _config?: ProviderConfig): Promise<ProviderModelDetails | null> {\n // Try provider knowledge first\n if (MODEL_DETAILS[modelId]) {\n return MODEL_DETAILS[modelId];\n }\n\n // Fall back to models.dev\n const metadata = await getModelMetadata(modelId);\n if (metadata) {\n return {\n contextLength: metadata.contextLength,\n maxOutput: metadata.maxOutput,\n inputPrice: metadata.inputPrice,\n outputPrice: metadata.outputPrice,\n };\n }\n\n return null;\n }\n\n createClient(config: ProviderConfig, modelId: string): LanguageModelV1 {\n return anthropic(modelId, { apiKey: config['api-key'] as string });\n }\n}\n",
|
|
8
|
-
"// src/openai-provider.ts\nimport {\n loadApiKey,\n loadOptionalSetting,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/chat/openai-chat-language-model.ts\nimport {\n InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n isParsableJson,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\n\n// src/openai-error.ts\nimport { z } from \"zod/v4\";\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nvar openaiErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n // The additional information below is handled loosely to support\n // OpenAI-compatible providers that have slightly different error\n // responses:\n type: z.string().nullish(),\n param: z.any().nullish(),\n code: z.union([z.string(), z.number()]).nullish()\n })\n});\nvar openaiFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: openaiErrorDataSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/chat/convert-to-openai-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction convertToOpenAIChatMessages({\n prompt,\n systemMessageMode = \"system\"\n}) {\n const messages = [];\n const warnings = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n switch (systemMessageMode) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"developer\": {\n messages.push({ role: \"developer\", content });\n break;\n }\n case \"remove\": {\n warnings.push({\n type: \"other\",\n message: \"system messages are removed for this model\"\n });\n break;\n }\n default: {\n const _exhaustiveCheck = systemMessageMode;\n throw new Error(\n `Unsupported system message mode: ${_exhaustiveCheck}`\n );\n }\n }\n break;\n }\n case \"user\": {\n if (content.length === 1 && content[0].type === \"text\") {\n messages.push({ role: \"user\", content: content[0].text });\n break;\n }\n messages.push({\n role: \"user\",\n content: content.map((part, index) => {\n var _a, _b, _c;\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: {\n url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`,\n // OpenAI specific extension: image detail\n detail: (_b = (_a = part.providerOptions) == null ? void 0 : _a.openai) == null ? void 0 : _b.imageDetail\n }\n };\n } else if (part.mediaType.startsWith(\"audio/\")) {\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality: \"audio file parts with URLs\"\n });\n }\n switch (part.mediaType) {\n case \"audio/wav\": {\n return {\n type: \"input_audio\",\n input_audio: {\n data: convertToBase64(part.data),\n format: \"wav\"\n }\n };\n }\n case \"audio/mp3\":\n case \"audio/mpeg\": {\n return {\n type: \"input_audio\",\n input_audio: {\n data: convertToBase64(part.data),\n format: \"mp3\"\n }\n };\n }\n default: {\n throw new UnsupportedFunctionalityError({\n functionality: `audio content parts with media type ${part.mediaType}`\n });\n }\n }\n } else if (part.mediaType === \"application/pdf\") {\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality: \"PDF file parts with URLs\"\n });\n }\n return {\n type: \"file\",\n file: typeof part.data === \"string\" && part.data.startsWith(\"file-\") ? { file_id: part.data } : {\n filename: (_c = part.filename) != null ? _c : `part-${index}.pdf`,\n file_data: `data:application/pdf;base64,${convertToBase64(part.data)}`\n }\n };\n } else {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`\n });\n }\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return { messages, warnings };\n}\n\n// src/chat/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/chat/map-openai-finish-reason.ts\nfunction mapOpenAIFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"unknown\";\n }\n}\n\n// src/chat/openai-chat-api.ts\nimport {\n lazyValidator,\n zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar openaiChatResponseSchema = lazyValidator(\n () => zodSchema(\n z2.object({\n id: z2.string().nullish(),\n created: z2.number().nullish(),\n model: z2.string().nullish(),\n choices: z2.array(\n z2.object({\n message: z2.object({\n role: z2.literal(\"assistant\").nullish(),\n content: z2.string().nullish(),\n tool_calls: z2.array(\n z2.object({\n id: z2.string().nullish(),\n type: z2.literal(\"function\"),\n function: z2.object({\n name: z2.string(),\n arguments: z2.string()\n })\n })\n ).nullish(),\n annotations: z2.array(\n z2.object({\n type: z2.literal(\"url_citation\"),\n start_index: z2.number(),\n end_index: z2.number(),\n url: z2.string(),\n title: z2.string()\n })\n ).nullish()\n }),\n index: z2.number(),\n logprobs: z2.object({\n content: z2.array(\n z2.object({\n token: z2.string(),\n logprob: z2.number(),\n top_logprobs: z2.array(\n z2.object({\n token: z2.string(),\n logprob: z2.number()\n })\n )\n })\n ).nullish()\n }).nullish(),\n finish_reason: z2.string().nullish()\n })\n ),\n usage: z2.object({\n prompt_tokens: z2.number().nullish(),\n completion_tokens: z2.number().nullish(),\n total_tokens: z2.number().nullish(),\n prompt_tokens_details: z2.object({\n cached_tokens: z2.number().nullish()\n }).nullish(),\n completion_tokens_details: z2.object({\n reasoning_tokens: z2.number().nullish(),\n accepted_prediction_tokens: z2.number().nullish(),\n rejected_prediction_tokens: z2.number().nullish()\n }).nullish()\n }).nullish()\n })\n )\n);\nvar openaiChatChunkSchema = lazyValidator(\n () => zodSchema(\n z2.union([\n z2.object({\n id: z2.string().nullish(),\n created: z2.number().nullish(),\n model: z2.string().nullish(),\n choices: z2.array(\n z2.object({\n delta: z2.object({\n role: z2.enum([\"assistant\"]).nullish(),\n content: z2.string().nullish(),\n tool_calls: z2.array(\n z2.object({\n index: z2.number(),\n id: z2.string().nullish(),\n type: z2.literal(\"function\").nullish(),\n function: z2.object({\n name: z2.string().nullish(),\n arguments: z2.string().nullish()\n })\n })\n ).nullish(),\n annotations: z2.array(\n z2.object({\n type: z2.literal(\"url_citation\"),\n start_index: z2.number(),\n end_index: z2.number(),\n url: z2.string(),\n title: z2.string()\n })\n ).nullish()\n }).nullish(),\n logprobs: z2.object({\n content: z2.array(\n z2.object({\n token: z2.string(),\n logprob: z2.number(),\n top_logprobs: z2.array(\n z2.object({\n token: z2.string(),\n logprob: z2.number()\n })\n )\n })\n ).nullish()\n }).nullish(),\n finish_reason: z2.string().nullish(),\n index: z2.number()\n })\n ),\n usage: z2.object({\n prompt_tokens: z2.number().nullish(),\n completion_tokens: z2.number().nullish(),\n total_tokens: z2.number().nullish(),\n prompt_tokens_details: z2.object({\n cached_tokens: z2.number().nullish()\n }).nullish(),\n completion_tokens_details: z2.object({\n reasoning_tokens: z2.number().nullish(),\n accepted_prediction_tokens: z2.number().nullish(),\n rejected_prediction_tokens: z2.number().nullish()\n }).nullish()\n }).nullish()\n }),\n openaiErrorDataSchema\n ])\n )\n);\n\n// src/chat/openai-chat-options.ts\nimport {\n lazyValidator as lazyValidator2,\n zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\nvar openaiChatLanguageModelOptions = lazyValidator2(\n () => zodSchema2(\n z3.object({\n /**\n * Modify the likelihood of specified tokens appearing in the completion.\n *\n * Accepts a JSON object that maps tokens (specified by their token ID in\n * the GPT tokenizer) to an associated bias value from -100 to 100.\n */\n logitBias: z3.record(z3.coerce.number(), z3.number()).optional(),\n /**\n * Return the log probabilities of the tokens.\n *\n * Setting to true will return the log probabilities of the tokens that\n * were generated.\n *\n * Setting to a number will return the log probabilities of the top n\n * tokens that were generated.\n */\n logprobs: z3.union([z3.boolean(), z3.number()]).optional(),\n /**\n * Whether to enable parallel function calling during tool use. Default to true.\n */\n parallelToolCalls: z3.boolean().optional(),\n /**\n * A unique identifier representing your end-user, which can help OpenAI to\n * monitor and detect abuse.\n */\n user: z3.string().optional(),\n /**\n * Reasoning effort for reasoning models. Defaults to `medium`.\n */\n reasoningEffort: z3.enum([\"minimal\", \"low\", \"medium\", \"high\"]).optional(),\n /**\n * Maximum number of completion tokens to generate. Useful for reasoning models.\n */\n maxCompletionTokens: z3.number().optional(),\n /**\n * Whether to enable persistence in responses API.\n */\n store: z3.boolean().optional(),\n /**\n * Metadata to associate with the request.\n */\n metadata: z3.record(z3.string().max(64), z3.string().max(512)).optional(),\n /**\n * Parameters for prediction mode.\n */\n prediction: z3.record(z3.string(), z3.any()).optional(),\n /**\n * Whether to use structured outputs.\n *\n * @default true\n */\n structuredOutputs: z3.boolean().optional(),\n /**\n * Service tier for the request.\n * - 'auto': Default service tier. The request will be processed with the service tier configured in the\n * Project settings. Unless otherwise configured, the Project will use 'default'.\n * - 'flex': 50% cheaper processing at the cost of increased latency. Only available for o3 and o4-mini models.\n * - 'priority': Higher-speed processing with predictably low latency at premium cost. Available for Enterprise customers.\n * - 'default': The request will be processed with the standard pricing and performance for the selected model.\n *\n * @default 'auto'\n */\n serviceTier: z3.enum([\"auto\", \"flex\", \"priority\", \"default\"]).optional(),\n /**\n * Whether to use strict JSON schema validation.\n *\n * @default false\n */\n strictJsonSchema: z3.boolean().optional(),\n /**\n * Controls the verbosity of the model's responses.\n * Lower values will result in more concise responses, while higher values will result in more verbose responses.\n */\n textVerbosity: z3.enum([\"low\", \"medium\", \"high\"]).optional(),\n /**\n * A cache key for prompt caching. Allows manual control over prompt caching behavior.\n * Useful for improving cache hit rates and working around automatic caching issues.\n */\n promptCacheKey: z3.string().optional(),\n /**\n * A stable identifier used to help detect users of your application\n * that may be violating OpenAI's usage policies. The IDs should be a\n * string that uniquely identifies each user. We recommend hashing their\n * username or email address, in order to avoid sending us any identifying\n * information.\n */\n safetyIdentifier: z3.string().optional()\n })\n )\n);\n\n// src/chat/openai-chat-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareChatTools({\n tools,\n toolChoice,\n structuredOutputs,\n strictJsonSchema\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const openaiTools2 = [];\n for (const tool of tools) {\n switch (tool.type) {\n case \"function\":\n openaiTools2.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n strict: structuredOutputs ? strictJsonSchema : void 0\n }\n });\n break;\n default:\n toolWarnings.push({ type: \"unsupported-tool\", tool });\n break;\n }\n }\n if (toolChoice == null) {\n return { tools: openaiTools2, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: openaiTools2, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: openaiTools2,\n toolChoice: {\n type: \"function\",\n function: {\n name: toolChoice.toolName\n }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/chat/openai-chat-language-model.ts\nvar OpenAIChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v2\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n tools,\n toolChoice,\n providerOptions\n }) {\n var _a, _b, _c, _d;\n const warnings = [];\n const openaiOptions = (_a = await parseProviderOptions({\n provider: \"openai\",\n providerOptions,\n schema: openaiChatLanguageModelOptions\n })) != null ? _a : {};\n const structuredOutputs = (_b = openaiOptions.structuredOutputs) != null ? _b : true;\n if (topK != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"topK\"\n });\n }\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && !structuredOutputs) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"responseFormat\",\n details: \"JSON response format schema is only supported with structuredOutputs\"\n });\n }\n const { messages, warnings: messageWarnings } = convertToOpenAIChatMessages(\n {\n prompt,\n systemMessageMode: getSystemMessageMode(this.modelId)\n }\n );\n warnings.push(...messageWarnings);\n const strictJsonSchema = (_c = openaiOptions.strictJsonSchema) != null ? _c : false;\n const baseArgs = {\n // model id:\n model: this.modelId,\n // model specific settings:\n logit_bias: openaiOptions.logitBias,\n logprobs: openaiOptions.logprobs === true || typeof openaiOptions.logprobs === \"number\" ? true : void 0,\n top_logprobs: typeof openaiOptions.logprobs === \"number\" ? openaiOptions.logprobs : typeof openaiOptions.logprobs === \"boolean\" ? openaiOptions.logprobs ? 0 : void 0 : void 0,\n user: openaiOptions.user,\n parallel_tool_calls: openaiOptions.parallelToolCalls,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? structuredOutputs && responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: strictJsonSchema,\n name: (_d = responseFormat.name) != null ? _d : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n stop: stopSequences,\n seed,\n verbosity: openaiOptions.textVerbosity,\n // openai specific settings:\n // TODO AI SDK 6: remove, we auto-map maxOutputTokens now\n max_completion_tokens: openaiOptions.maxCompletionTokens,\n store: openaiOptions.store,\n metadata: openaiOptions.metadata,\n prediction: openaiOptions.prediction,\n reasoning_effort: openaiOptions.reasoningEffort,\n service_tier: openaiOptions.serviceTier,\n prompt_cache_key: openaiOptions.promptCacheKey,\n safety_identifier: openaiOptions.safetyIdentifier,\n // messages:\n messages\n };\n if (isReasoningModel(this.modelId)) {\n if (baseArgs.temperature != null) {\n baseArgs.temperature = void 0;\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"temperature\",\n details: \"temperature is not supported for reasoning models\"\n });\n }\n if (baseArgs.top_p != null) {\n baseArgs.top_p = void 0;\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"topP\",\n details: \"topP is not supported for reasoning models\"\n });\n }\n if (baseArgs.frequency_penalty != null) {\n baseArgs.frequency_penalty = void 0;\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"frequencyPenalty\",\n details: \"frequencyPenalty is not supported for reasoning models\"\n });\n }\n if (baseArgs.presence_penalty != null) {\n baseArgs.presence_penalty = void 0;\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"presencePenalty\",\n details: \"presencePenalty is not supported for reasoning models\"\n });\n }\n if (baseArgs.logit_bias != null) {\n baseArgs.logit_bias = void 0;\n warnings.push({\n type: \"other\",\n message: \"logitBias is not supported for reasoning models\"\n });\n }\n if (baseArgs.logprobs != null) {\n baseArgs.logprobs = void 0;\n warnings.push({\n type: \"other\",\n message: \"logprobs is not supported for reasoning models\"\n });\n }\n if (baseArgs.top_logprobs != null) {\n baseArgs.top_logprobs = void 0;\n warnings.push({\n type: \"other\",\n message: \"topLogprobs is not supported for reasoning models\"\n });\n }\n if (baseArgs.max_tokens != null) {\n if (baseArgs.max_completion_tokens == null) {\n baseArgs.max_completion_tokens = baseArgs.max_tokens;\n }\n baseArgs.max_tokens = void 0;\n }\n } else if (this.modelId.startsWith(\"gpt-4o-search-preview\") || this.modelId.startsWith(\"gpt-4o-mini-search-preview\")) {\n if (baseArgs.temperature != null) {\n baseArgs.temperature = void 0;\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"temperature\",\n details: \"temperature is not supported for the search preview models and has been removed.\"\n });\n }\n }\n if (openaiOptions.serviceTier === \"flex\" && !supportsFlexProcessing(this.modelId)) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"serviceTier\",\n details: \"flex processing is only available for o3, o4-mini, and gpt-5 models\"\n });\n baseArgs.service_tier = void 0;\n }\n if (openaiOptions.serviceTier === \"priority\" && !supportsPriorityProcessing(this.modelId)) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"serviceTier\",\n details: \"priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported\"\n });\n baseArgs.service_tier = void 0;\n }\n const {\n tools: openaiTools2,\n toolChoice: openaiToolChoice,\n toolWarnings\n } = prepareChatTools({\n tools,\n toolChoice,\n structuredOutputs,\n strictJsonSchema\n });\n return {\n args: {\n ...baseArgs,\n tools: openaiTools2,\n tool_choice: openaiToolChoice\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n const { args: body, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: openaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n openaiChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n for (const toolCall of (_a = choice.message.tool_calls) != null ? _a : []) {\n content.push({\n type: \"tool-call\",\n toolCallId: (_b = toolCall.id) != null ? _b : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n for (const annotation of (_c = choice.message.annotations) != null ? _c : []) {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId(),\n url: annotation.url,\n title: annotation.title\n });\n }\n const completionTokenDetails = (_d = response.usage) == null ? void 0 : _d.completion_tokens_details;\n const promptTokenDetails = (_e = response.usage) == null ? void 0 : _e.prompt_tokens_details;\n const providerMetadata = { openai: {} };\n if ((completionTokenDetails == null ? void 0 : completionTokenDetails.accepted_prediction_tokens) != null) {\n providerMetadata.openai.acceptedPredictionTokens = completionTokenDetails == null ? void 0 : completionTokenDetails.accepted_prediction_tokens;\n }\n if ((completionTokenDetails == null ? void 0 : completionTokenDetails.rejected_prediction_tokens) != null) {\n providerMetadata.openai.rejectedPredictionTokens = completionTokenDetails == null ? void 0 : completionTokenDetails.rejected_prediction_tokens;\n }\n if (((_f = choice.logprobs) == null ? void 0 : _f.content) != null) {\n providerMetadata.openai.logprobs = choice.logprobs.content;\n }\n return {\n content,\n finishReason: mapOpenAIFinishReason(choice.finish_reason),\n usage: {\n inputTokens: (_h = (_g = response.usage) == null ? void 0 : _g.prompt_tokens) != null ? _h : void 0,\n outputTokens: (_j = (_i = response.usage) == null ? void 0 : _i.completion_tokens) != null ? _j : void 0,\n totalTokens: (_l = (_k = response.usage) == null ? void 0 : _k.total_tokens) != null ? _l : void 0,\n reasoningTokens: (_m = completionTokenDetails == null ? void 0 : completionTokenDetails.reasoning_tokens) != null ? _m : void 0,\n cachedInputTokens: (_n = promptTokenDetails == null ? void 0 : promptTokenDetails.cached_tokens) != null ? _n : void 0\n },\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings,\n providerMetadata\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const body = {\n ...args,\n stream: true,\n stream_options: {\n include_usage: true\n }\n };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: openaiFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n openaiChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const toolCalls = [];\n let finishReason = \"unknown\";\n const usage = {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0\n };\n let isFirstChunk = true;\n let isActiveText = false;\n const providerMetadata = { openai: {} };\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (value.usage != null) {\n usage.inputTokens = (_a = value.usage.prompt_tokens) != null ? _a : void 0;\n usage.outputTokens = (_b = value.usage.completion_tokens) != null ? _b : void 0;\n usage.totalTokens = (_c = value.usage.total_tokens) != null ? _c : void 0;\n usage.reasoningTokens = (_e = (_d = value.usage.completion_tokens_details) == null ? void 0 : _d.reasoning_tokens) != null ? _e : void 0;\n usage.cachedInputTokens = (_g = (_f = value.usage.prompt_tokens_details) == null ? void 0 : _f.cached_tokens) != null ? _g : void 0;\n if (((_h = value.usage.completion_tokens_details) == null ? void 0 : _h.accepted_prediction_tokens) != null) {\n providerMetadata.openai.acceptedPredictionTokens = (_i = value.usage.completion_tokens_details) == null ? void 0 : _i.accepted_prediction_tokens;\n }\n if (((_j = value.usage.completion_tokens_details) == null ? void 0 : _j.rejected_prediction_tokens) != null) {\n providerMetadata.openai.rejectedPredictionTokens = (_k = value.usage.completion_tokens_details) == null ? void 0 : _k.rejected_prediction_tokens;\n }\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = mapOpenAIFinishReason(choice.finish_reason);\n }\n if (((_l = choice == null ? void 0 : choice.logprobs) == null ? void 0 : _l.content) != null) {\n providerMetadata.openai.logprobs = choice.logprobs.content;\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n if (delta.content != null) {\n if (!isActiveText) {\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n isActiveText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: delta.content\n });\n }\n if (delta.tool_calls != null) {\n for (const toolCallDelta of delta.tool_calls) {\n const index = toolCallDelta.index;\n if (toolCalls[index] == null) {\n if (toolCallDelta.type !== \"function\") {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function' type.`\n });\n }\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_m = toolCallDelta.function) == null ? void 0 : _m.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallDelta.id,\n toolName: toolCallDelta.function.name\n });\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_n = toolCallDelta.function.arguments) != null ? _n : \"\"\n },\n hasFinished: false\n };\n const toolCall2 = toolCalls[index];\n if (((_o = toolCall2.function) == null ? void 0 : _o.name) != null && ((_p = toolCall2.function) == null ? void 0 : _p.arguments) != null) {\n if (toolCall2.function.arguments.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n }\n if (isParsableJson(toolCall2.function.arguments)) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall2.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_q = toolCall2.id) != null ? _q : generateId(),\n toolName: toolCall2.function.name,\n input: toolCall2.function.arguments\n });\n toolCall2.hasFinished = true;\n }\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall.hasFinished) {\n continue;\n }\n if (((_r = toolCallDelta.function) == null ? void 0 : _r.arguments) != null) {\n toolCall.function.arguments += (_t = (_s = toolCallDelta.function) == null ? void 0 : _s.arguments) != null ? _t : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_u = toolCallDelta.function.arguments) != null ? _u : \"\"\n });\n if (((_v = toolCall.function) == null ? void 0 : _v.name) != null && ((_w = toolCall.function) == null ? void 0 : _w.arguments) != null && isParsableJson(toolCall.function.arguments)) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_x = toolCall.id) != null ? _x : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n toolCall.hasFinished = true;\n }\n }\n }\n if (delta.annotations != null) {\n for (const annotation of delta.annotations) {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: generateId(),\n url: annotation.url,\n title: annotation.title\n });\n }\n }\n },\n flush(controller) {\n if (isActiveText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage,\n ...providerMetadata != null ? { providerMetadata } : {}\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction isReasoningModel(modelId) {\n return (modelId.startsWith(\"o\") || modelId.startsWith(\"gpt-5\")) && !modelId.startsWith(\"gpt-5-chat\");\n}\nfunction supportsFlexProcessing(modelId) {\n return modelId.startsWith(\"o3\") || modelId.startsWith(\"o4-mini\") || modelId.startsWith(\"gpt-5\") && !modelId.startsWith(\"gpt-5-chat\");\n}\nfunction supportsPriorityProcessing(modelId) {\n return modelId.startsWith(\"gpt-4\") || modelId.startsWith(\"gpt-5-mini\") || modelId.startsWith(\"gpt-5\") && !modelId.startsWith(\"gpt-5-nano\") && !modelId.startsWith(\"gpt-5-chat\") || modelId.startsWith(\"o3\") || modelId.startsWith(\"o4-mini\");\n}\nfunction getSystemMessageMode(modelId) {\n var _a, _b;\n if (!isReasoningModel(modelId)) {\n return \"system\";\n }\n return (_b = (_a = reasoningModels[modelId]) == null ? void 0 : _a.systemMessageMode) != null ? _b : \"developer\";\n}\nvar reasoningModels = {\n \"o1-mini\": {\n systemMessageMode: \"remove\"\n },\n \"o1-mini-2024-09-12\": {\n systemMessageMode: \"remove\"\n },\n \"o1-preview\": {\n systemMessageMode: \"remove\"\n },\n \"o1-preview-2024-09-12\": {\n systemMessageMode: \"remove\"\n },\n o3: {\n systemMessageMode: \"developer\"\n },\n \"o3-2025-04-16\": {\n systemMessageMode: \"developer\"\n },\n \"o3-mini\": {\n systemMessageMode: \"developer\"\n },\n \"o3-mini-2025-01-31\": {\n systemMessageMode: \"developer\"\n },\n \"o4-mini\": {\n systemMessageMode: \"developer\"\n },\n \"o4-mini-2025-04-16\": {\n systemMessageMode: \"developer\"\n }\n};\n\n// src/completion/openai-completion-language-model.ts\nimport {\n combineHeaders as combineHeaders2,\n createEventSourceResponseHandler as createEventSourceResponseHandler2,\n createJsonResponseHandler as createJsonResponseHandler2,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\n\n// src/completion/convert-to-openai-completion-prompt.ts\nimport {\n InvalidPromptError,\n UnsupportedFunctionalityError as UnsupportedFunctionalityError3\n} from \"@ai-sdk/provider\";\nfunction convertToOpenAICompletionPrompt({\n prompt,\n user = \"user\",\n assistant = \"assistant\"\n}) {\n let text = \"\";\n if (prompt[0].role === \"system\") {\n text += `${prompt[0].content}\n\n`;\n prompt = prompt.slice(1);\n }\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n throw new InvalidPromptError({\n message: \"Unexpected system message in prompt: ${content}\",\n prompt\n });\n }\n case \"user\": {\n const userMessage = content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n }\n }).filter(Boolean).join(\"\");\n text += `${user}:\n${userMessage}\n\n`;\n break;\n }\n case \"assistant\": {\n const assistantMessage = content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n case \"tool-call\": {\n throw new UnsupportedFunctionalityError3({\n functionality: \"tool-call messages\"\n });\n }\n }\n }).join(\"\");\n text += `${assistant}:\n${assistantMessage}\n\n`;\n break;\n }\n case \"tool\": {\n throw new UnsupportedFunctionalityError3({\n functionality: \"tool messages\"\n });\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n text += `${assistant}:\n`;\n return {\n prompt: text,\n stopSequences: [`\n${user}:`]\n };\n}\n\n// src/completion/get-response-metadata.ts\nfunction getResponseMetadata2({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/completion/map-openai-finish-reason.ts\nfunction mapOpenAIFinishReason2(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"unknown\";\n }\n}\n\n// src/completion/openai-completion-api.ts\nimport { z as z4 } from \"zod/v4\";\nimport {\n lazyValidator as lazyValidator3,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nvar openaiCompletionResponseSchema = lazyValidator3(\n () => zodSchema3(\n z4.object({\n id: z4.string().nullish(),\n created: z4.number().nullish(),\n model: z4.string().nullish(),\n choices: z4.array(\n z4.object({\n text: z4.string(),\n finish_reason: z4.string(),\n logprobs: z4.object({\n tokens: z4.array(z4.string()),\n token_logprobs: z4.array(z4.number()),\n top_logprobs: z4.array(z4.record(z4.string(), z4.number())).nullish()\n }).nullish()\n })\n ),\n usage: z4.object({\n prompt_tokens: z4.number(),\n completion_tokens: z4.number(),\n total_tokens: z4.number()\n }).nullish()\n })\n )\n);\nvar openaiCompletionChunkSchema = lazyValidator3(\n () => zodSchema3(\n z4.union([\n z4.object({\n id: z4.string().nullish(),\n created: z4.number().nullish(),\n model: z4.string().nullish(),\n choices: z4.array(\n z4.object({\n text: z4.string(),\n finish_reason: z4.string().nullish(),\n index: z4.number(),\n logprobs: z4.object({\n tokens: z4.array(z4.string()),\n token_logprobs: z4.array(z4.number()),\n top_logprobs: z4.array(z4.record(z4.string(), z4.number())).nullish()\n }).nullish()\n })\n ),\n usage: z4.object({\n prompt_tokens: z4.number(),\n completion_tokens: z4.number(),\n total_tokens: z4.number()\n }).nullish()\n }),\n openaiErrorDataSchema\n ])\n )\n);\n\n// src/completion/openai-completion-options.ts\nimport {\n lazyValidator as lazyValidator4,\n zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\nvar openaiCompletionProviderOptions = lazyValidator4(\n () => zodSchema4(\n z5.object({\n /**\n Echo back the prompt in addition to the completion.\n */\n echo: z5.boolean().optional(),\n /**\n Modify the likelihood of specified tokens appearing in the completion.\n \n Accepts a JSON object that maps tokens (specified by their token ID in\n the GPT tokenizer) to an associated bias value from -100 to 100. You\n can use this tokenizer tool to convert text to token IDs. Mathematically,\n the bias is added to the logits generated by the model prior to sampling.\n The exact effect will vary per model, but values between -1 and 1 should\n decrease or increase likelihood of selection; values like -100 or 100\n should result in a ban or exclusive selection of the relevant token.\n \n As an example, you can pass {\"50256\": -100} to prevent the <|endoftext|>\n token from being generated.\n */\n logitBias: z5.record(z5.string(), z5.number()).optional(),\n /**\n The suffix that comes after a completion of inserted text.\n */\n suffix: z5.string().optional(),\n /**\n A unique identifier representing your end-user, which can help OpenAI to\n monitor and detect abuse. Learn more.\n */\n user: z5.string().optional(),\n /**\n Return the log probabilities of the tokens. Including logprobs will increase\n the response size and can slow down response times. However, it can\n be useful to better understand how the model is behaving.\n Setting to true will return the log probabilities of the tokens that\n were generated.\n Setting to a number will return the log probabilities of the top n\n tokens that were generated.\n */\n logprobs: z5.union([z5.boolean(), z5.number()]).optional()\n })\n )\n);\n\n// src/completion/openai-completion-language-model.ts\nvar OpenAICompletionLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v2\";\n this.supportedUrls = {\n // No URLs are supported for completion models.\n };\n this.modelId = modelId;\n this.config = config;\n }\n get providerOptionsName() {\n return this.config.provider.split(\".\")[0].trim();\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences: userStopSequences,\n responseFormat,\n tools,\n toolChoice,\n seed,\n providerOptions\n }) {\n const warnings = [];\n const openaiOptions = {\n ...await parseProviderOptions2({\n provider: \"openai\",\n providerOptions,\n schema: openaiCompletionProviderOptions\n }),\n ...await parseProviderOptions2({\n provider: this.providerOptionsName,\n providerOptions,\n schema: openaiCompletionProviderOptions\n })\n };\n if (topK != null) {\n warnings.push({ type: \"unsupported-setting\", setting: \"topK\" });\n }\n if (tools == null ? void 0 : tools.length) {\n warnings.push({ type: \"unsupported-setting\", setting: \"tools\" });\n }\n if (toolChoice != null) {\n warnings.push({ type: \"unsupported-setting\", setting: \"toolChoice\" });\n }\n if (responseFormat != null && responseFormat.type !== \"text\") {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"responseFormat\",\n details: \"JSON response format is not supported.\"\n });\n }\n const { prompt: completionPrompt, stopSequences } = convertToOpenAICompletionPrompt({ prompt });\n const stop = [...stopSequences != null ? stopSequences : [], ...userStopSequences != null ? userStopSequences : []];\n return {\n args: {\n // model id:\n model: this.modelId,\n // model specific settings:\n echo: openaiOptions.echo,\n logit_bias: openaiOptions.logitBias,\n logprobs: (openaiOptions == null ? void 0 : openaiOptions.logprobs) === true ? 0 : (openaiOptions == null ? void 0 : openaiOptions.logprobs) === false ? void 0 : openaiOptions == null ? void 0 : openaiOptions.logprobs,\n suffix: openaiOptions.suffix,\n user: openaiOptions.user,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n seed,\n // prompt:\n prompt: completionPrompt,\n // stop sequences:\n stop: stop.length > 0 ? stop : void 0\n },\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c;\n const { args, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi2({\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders2(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: openaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n openaiCompletionResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const providerMetadata = { openai: {} };\n if (choice.logprobs != null) {\n providerMetadata.openai.logprobs = choice.logprobs;\n }\n return {\n content: [{ type: \"text\", text: choice.text }],\n usage: {\n inputTokens: (_a = response.usage) == null ? void 0 : _a.prompt_tokens,\n outputTokens: (_b = response.usage) == null ? void 0 : _b.completion_tokens,\n totalTokens: (_c = response.usage) == null ? void 0 : _c.total_tokens\n },\n finishReason: mapOpenAIFinishReason2(choice.finish_reason),\n request: { body: args },\n response: {\n ...getResponseMetadata2(response),\n headers: responseHeaders,\n body: rawResponse\n },\n providerMetadata,\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const body = {\n ...args,\n stream: true,\n stream_options: {\n include_usage: true\n }\n };\n const { responseHeaders, value: response } = await postJsonToApi2({\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders2(this.config.headers(), options.headers),\n body,\n failedResponseHandler: openaiFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler2(\n openaiCompletionChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = \"unknown\";\n const providerMetadata = { openai: {} };\n const usage = {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0\n };\n let isFirstChunk = true;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata2(value)\n });\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n }\n if (value.usage != null) {\n usage.inputTokens = value.usage.prompt_tokens;\n usage.outputTokens = value.usage.completion_tokens;\n usage.totalTokens = value.usage.total_tokens;\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = mapOpenAIFinishReason2(choice.finish_reason);\n }\n if ((choice == null ? void 0 : choice.logprobs) != null) {\n providerMetadata.openai.logprobs = choice.logprobs;\n }\n if ((choice == null ? void 0 : choice.text) != null && choice.text.length > 0) {\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: choice.text\n });\n }\n },\n flush(controller) {\n if (!isFirstChunk) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n providerMetadata,\n usage\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\n\n// src/embedding/openai-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders3,\n createJsonResponseHandler as createJsonResponseHandler3,\n parseProviderOptions as parseProviderOptions3,\n postJsonToApi as postJsonToApi3\n} from \"@ai-sdk/provider-utils\";\n\n// src/embedding/openai-embedding-options.ts\nimport {\n lazyValidator as lazyValidator5,\n zodSchema as zodSchema5\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar openaiEmbeddingProviderOptions = lazyValidator5(\n () => zodSchema5(\n z6.object({\n /**\n The number of dimensions the resulting output embeddings should have.\n Only supported in text-embedding-3 and later models.\n */\n dimensions: z6.number().optional(),\n /**\n A unique identifier representing your end-user, which can help OpenAI to\n monitor and detect abuse. Learn more.\n */\n user: z6.string().optional()\n })\n )\n);\n\n// src/embedding/openai-embedding-api.ts\nimport { lazyValidator as lazyValidator6, zodSchema as zodSchema6 } from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\nvar openaiTextEmbeddingResponseSchema = lazyValidator6(\n () => zodSchema6(\n z7.object({\n data: z7.array(z7.object({ embedding: z7.array(z7.number()) })),\n usage: z7.object({ prompt_tokens: z7.number() }).nullish()\n })\n )\n);\n\n// src/embedding/openai-embedding-model.ts\nvar OpenAIEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v2\";\n this.maxEmbeddingsPerCall = 2048;\n this.supportsParallelCalls = true;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions\n }) {\n var _a;\n if (values.length > this.maxEmbeddingsPerCall) {\n throw new TooManyEmbeddingValuesForCallError({\n provider: this.provider,\n modelId: this.modelId,\n maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n values\n });\n }\n const openaiOptions = (_a = await parseProviderOptions3({\n provider: \"openai\",\n providerOptions,\n schema: openaiEmbeddingProviderOptions\n })) != null ? _a : {};\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi3({\n url: this.config.url({\n path: \"/embeddings\",\n modelId: this.modelId\n }),\n headers: combineHeaders3(this.config.headers(), headers),\n body: {\n model: this.modelId,\n input: values,\n encoding_format: \"float\",\n dimensions: openaiOptions.dimensions,\n user: openaiOptions.user\n },\n failedResponseHandler: openaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler3(\n openaiTextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n embeddings: response.data.map((item) => item.embedding),\n usage: response.usage ? { tokens: response.usage.prompt_tokens } : void 0,\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\n\n// src/image/openai-image-model.ts\nimport {\n combineHeaders as combineHeaders4,\n createJsonResponseHandler as createJsonResponseHandler4,\n postJsonToApi as postJsonToApi4\n} from \"@ai-sdk/provider-utils\";\n\n// src/image/openai-image-api.ts\nimport { lazyValidator as lazyValidator7, zodSchema as zodSchema7 } from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar openaiImageResponseSchema = lazyValidator7(\n () => zodSchema7(\n z8.object({\n data: z8.array(\n z8.object({\n b64_json: z8.string(),\n revised_prompt: z8.string().nullish()\n })\n )\n })\n )\n);\n\n// src/image/openai-image-options.ts\nvar modelMaxImagesPerCall = {\n \"dall-e-3\": 1,\n \"dall-e-2\": 10,\n \"gpt-image-1\": 10,\n \"gpt-image-1-mini\": 10\n};\nvar hasDefaultResponseFormat = /* @__PURE__ */ new Set([\n \"gpt-image-1\",\n \"gpt-image-1-mini\"\n]);\n\n// src/image/openai-image-model.ts\nvar OpenAIImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v2\";\n }\n get maxImagesPerCall() {\n var _a;\n return (_a = modelMaxImagesPerCall[this.modelId]) != null ? _a : 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal\n }) {\n var _a, _b, _c, _d;\n const warnings = [];\n if (aspectRatio != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"aspectRatio\",\n details: \"This model does not support aspect ratio. Use `size` instead.\"\n });\n }\n if (seed != null) {\n warnings.push({ type: \"unsupported-setting\", setting: \"seed\" });\n }\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const { value: response, responseHeaders } = await postJsonToApi4({\n url: this.config.url({\n path: \"/images/generations\",\n modelId: this.modelId\n }),\n headers: combineHeaders4(this.config.headers(), headers),\n body: {\n model: this.modelId,\n prompt,\n n,\n size,\n ...(_d = providerOptions.openai) != null ? _d : {},\n ...!hasDefaultResponseFormat.has(this.modelId) ? { response_format: \"b64_json\" } : {}\n },\n failedResponseHandler: openaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler4(\n openaiImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.data.map((item) => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n },\n providerMetadata: {\n openai: {\n images: response.data.map(\n (item) => item.revised_prompt ? {\n revisedPrompt: item.revised_prompt\n } : null\n )\n }\n }\n };\n }\n};\n\n// src/tool/code-interpreter.ts\nimport {\n createProviderDefinedToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema as zodSchema8\n} from \"@ai-sdk/provider-utils\";\nimport { z as z9 } from \"zod/v4\";\nvar codeInterpreterInputSchema = lazySchema(\n () => zodSchema8(\n z9.object({\n code: z9.string().nullish(),\n containerId: z9.string()\n })\n )\n);\nvar codeInterpreterOutputSchema = lazySchema(\n () => zodSchema8(\n z9.object({\n outputs: z9.array(\n z9.discriminatedUnion(\"type\", [\n z9.object({ type: z9.literal(\"logs\"), logs: z9.string() }),\n z9.object({ type: z9.literal(\"image\"), url: z9.string() })\n ])\n ).nullish()\n })\n )\n);\nvar codeInterpreterArgsSchema = lazySchema(\n () => zodSchema8(\n z9.object({\n container: z9.union([\n z9.string(),\n z9.object({\n fileIds: z9.array(z9.string()).optional()\n })\n ]).optional()\n })\n )\n);\nvar codeInterpreterToolFactory = createProviderDefinedToolFactoryWithOutputSchema({\n id: \"openai.code_interpreter\",\n name: \"code_interpreter\",\n inputSchema: codeInterpreterInputSchema,\n outputSchema: codeInterpreterOutputSchema\n});\nvar codeInterpreter = (args = {}) => {\n return codeInterpreterToolFactory(args);\n};\n\n// src/tool/file-search.ts\nimport {\n createProviderDefinedToolFactoryWithOutputSchema as createProviderDefinedToolFactoryWithOutputSchema2,\n lazySchema as lazySchema2,\n zodSchema as zodSchema9\n} from \"@ai-sdk/provider-utils\";\nimport { z as z10 } from \"zod/v4\";\nvar comparisonFilterSchema = z10.object({\n key: z10.string(),\n type: z10.enum([\"eq\", \"ne\", \"gt\", \"gte\", \"lt\", \"lte\"]),\n value: z10.union([z10.string(), z10.number(), z10.boolean()])\n});\nvar compoundFilterSchema = z10.object({\n type: z10.enum([\"and\", \"or\"]),\n filters: z10.array(\n z10.union([comparisonFilterSchema, z10.lazy(() => compoundFilterSchema)])\n )\n});\nvar fileSearchArgsSchema = lazySchema2(\n () => zodSchema9(\n z10.object({\n vectorStoreIds: z10.array(z10.string()),\n maxNumResults: z10.number().optional(),\n ranking: z10.object({\n ranker: z10.string().optional(),\n scoreThreshold: z10.number().optional()\n }).optional(),\n filters: z10.union([comparisonFilterSchema, compoundFilterSchema]).optional()\n })\n )\n);\nvar fileSearchOutputSchema = lazySchema2(\n () => zodSchema9(\n z10.object({\n queries: z10.array(z10.string()),\n results: z10.array(\n z10.object({\n attributes: z10.record(z10.string(), z10.unknown()),\n fileId: z10.string(),\n filename: z10.string(),\n score: z10.number(),\n text: z10.string()\n })\n ).nullable()\n })\n )\n);\nvar fileSearch = createProviderDefinedToolFactoryWithOutputSchema2({\n id: \"openai.file_search\",\n name: \"file_search\",\n inputSchema: z10.object({}),\n outputSchema: fileSearchOutputSchema\n});\n\n// src/tool/image-generation.ts\nimport {\n createProviderDefinedToolFactoryWithOutputSchema as createProviderDefinedToolFactoryWithOutputSchema3,\n lazySchema as lazySchema3,\n zodSchema as zodSchema10\n} from \"@ai-sdk/provider-utils\";\nimport { z as z11 } from \"zod/v4\";\nvar imageGenerationArgsSchema = lazySchema3(\n () => zodSchema10(\n z11.object({\n background: z11.enum([\"auto\", \"opaque\", \"transparent\"]).optional(),\n inputFidelity: z11.enum([\"low\", \"high\"]).optional(),\n inputImageMask: z11.object({\n fileId: z11.string().optional(),\n imageUrl: z11.string().optional()\n }).optional(),\n model: z11.string().optional(),\n moderation: z11.enum([\"auto\"]).optional(),\n outputCompression: z11.number().int().min(0).max(100).optional(),\n outputFormat: z11.enum([\"png\", \"jpeg\", \"webp\"]).optional(),\n partialImages: z11.number().int().min(0).max(3).optional(),\n quality: z11.enum([\"auto\", \"low\", \"medium\", \"high\"]).optional(),\n size: z11.enum([\"1024x1024\", \"1024x1536\", \"1536x1024\", \"auto\"]).optional()\n }).strict()\n )\n);\nvar imageGenerationInputSchema = lazySchema3(() => zodSchema10(z11.object({})));\nvar imageGenerationOutputSchema = lazySchema3(\n () => zodSchema10(z11.object({ result: z11.string() }))\n);\nvar imageGenerationToolFactory = createProviderDefinedToolFactoryWithOutputSchema3({\n id: \"openai.image_generation\",\n name: \"image_generation\",\n inputSchema: imageGenerationInputSchema,\n outputSchema: imageGenerationOutputSchema\n});\nvar imageGeneration = (args = {}) => {\n return imageGenerationToolFactory(args);\n};\n\n// src/tool/local-shell.ts\nimport {\n createProviderDefinedToolFactoryWithOutputSchema as createProviderDefinedToolFactoryWithOutputSchema4,\n lazySchema as lazySchema4,\n zodSchema as zodSchema11\n} from \"@ai-sdk/provider-utils\";\nimport { z as z12 } from \"zod/v4\";\nvar localShellInputSchema = lazySchema4(\n () => zodSchema11(\n z12.object({\n action: z12.object({\n type: z12.literal(\"exec\"),\n command: z12.array(z12.string()),\n timeoutMs: z12.number().optional(),\n user: z12.string().optional(),\n workingDirectory: z12.string().optional(),\n env: z12.record(z12.string(), z12.string()).optional()\n })\n })\n )\n);\nvar localShellOutputSchema = lazySchema4(\n () => zodSchema11(z12.object({ output: z12.string() }))\n);\nvar localShell = createProviderDefinedToolFactoryWithOutputSchema4({\n id: \"openai.local_shell\",\n name: \"local_shell\",\n inputSchema: localShellInputSchema,\n outputSchema: localShellOutputSchema\n});\n\n// src/tool/web-search.ts\nimport {\n createProviderDefinedToolFactoryWithOutputSchema as createProviderDefinedToolFactoryWithOutputSchema5,\n lazySchema as lazySchema5,\n zodSchema as zodSchema12\n} from \"@ai-sdk/provider-utils\";\nimport { z as z13 } from \"zod/v4\";\nvar webSearchArgsSchema = lazySchema5(\n () => zodSchema12(\n z13.object({\n filters: z13.object({ allowedDomains: z13.array(z13.string()).optional() }).optional(),\n searchContextSize: z13.enum([\"low\", \"medium\", \"high\"]).optional(),\n userLocation: z13.object({\n type: z13.literal(\"approximate\"),\n country: z13.string().optional(),\n city: z13.string().optional(),\n region: z13.string().optional(),\n timezone: z13.string().optional()\n }).optional()\n })\n )\n);\nvar webSearchInputSchema = lazySchema5(() => zodSchema12(z13.object({})));\nvar webSearchOutputSchema = lazySchema5(\n () => zodSchema12(\n z13.object({\n action: z13.discriminatedUnion(\"type\", [\n z13.object({\n type: z13.literal(\"search\"),\n query: z13.string().optional()\n }),\n z13.object({\n type: z13.literal(\"openPage\"),\n url: z13.string()\n }),\n z13.object({\n type: z13.literal(\"find\"),\n url: z13.string(),\n pattern: z13.string()\n })\n ]),\n sources: z13.array(z13.object({ type: z13.literal(\"url\"), url: z13.string() })).optional()\n })\n )\n);\nvar webSearchToolFactory = createProviderDefinedToolFactoryWithOutputSchema5({\n id: \"openai.web_search\",\n name: \"web_search\",\n inputSchema: webSearchInputSchema,\n outputSchema: webSearchOutputSchema\n});\nvar webSearch = (args = {}) => webSearchToolFactory(args);\n\n// src/tool/web-search-preview.ts\nimport {\n createProviderDefinedToolFactoryWithOutputSchema as createProviderDefinedToolFactoryWithOutputSchema6,\n lazySchema as lazySchema6,\n zodSchema as zodSchema13\n} from \"@ai-sdk/provider-utils\";\nimport { z as z14 } from \"zod/v4\";\nvar webSearchPreviewArgsSchema = lazySchema6(\n () => zodSchema13(\n z14.object({\n searchContextSize: z14.enum([\"low\", \"medium\", \"high\"]).optional(),\n userLocation: z14.object({\n type: z14.literal(\"approximate\"),\n country: z14.string().optional(),\n city: z14.string().optional(),\n region: z14.string().optional(),\n timezone: z14.string().optional()\n }).optional()\n })\n )\n);\nvar webSearchPreviewInputSchema = lazySchema6(\n () => zodSchema13(z14.object({}))\n);\nvar webSearchPreviewOutputSchema = lazySchema6(\n () => zodSchema13(\n z14.object({\n action: z14.discriminatedUnion(\"type\", [\n z14.object({\n type: z14.literal(\"search\"),\n query: z14.string().optional()\n }),\n z14.object({\n type: z14.literal(\"openPage\"),\n url: z14.string()\n }),\n z14.object({\n type: z14.literal(\"find\"),\n url: z14.string(),\n pattern: z14.string()\n })\n ])\n })\n )\n);\nvar webSearchPreview = createProviderDefinedToolFactoryWithOutputSchema6({\n id: \"openai.web_search_preview\",\n name: \"web_search_preview\",\n inputSchema: webSearchPreviewInputSchema,\n outputSchema: webSearchPreviewOutputSchema\n});\n\n// src/openai-tools.ts\nvar openaiTools = {\n /**\n * The Code Interpreter tool allows models to write and run Python code in a\n * sandboxed environment to solve complex problems in domains like data analysis,\n * coding, and math.\n *\n * @param container - The container to use for the code interpreter.\n *\n * Must have name `code_interpreter`.\n */\n codeInterpreter,\n /**\n * File search is a tool available in the Responses API. It enables models to\n * retrieve information in a knowledge base of previously uploaded files through\n * semantic and keyword search.\n *\n * Must have name `file_search`.\n *\n * @param vectorStoreIds - The vector store IDs to use for the file search.\n * @param maxNumResults - The maximum number of results to return.\n * @param ranking - The ranking options to use for the file search.\n * @param filters - The filters to use for the file search.\n */\n fileSearch,\n /**\n * The image generation tool allows you to generate images using a text prompt,\n * and optionally image inputs. It leverages the GPT Image model,\n * and automatically optimizes text inputs for improved performance.\n *\n * Must have name `image_generation`.\n *\n * @param size - Image dimensions (e.g., 1024x1024, 1024x1536)\n * @param quality - Rendering quality (e.g. low, medium, high)\n * @param format - File output format\n * @param compression - Compression level (0-100%) for JPEG and WebP formats\n * @param background - Transparent or opaque\n */\n imageGeneration,\n /**\n * Local shell is a tool that allows agents to run shell commands locally\n * on a machine you or the user provides.\n *\n * Supported models: `gpt-5-codex` and `codex-mini-latest`\n *\n * Must have name `local_shell`.\n */\n localShell,\n /**\n * Web search allows models to access up-to-date information from the internet\n * and provide answers with sourced citations.\n *\n * Must have name `web_search_preview`.\n *\n * @param searchContextSize - The search context size to use for the web search.\n * @param userLocation - The user location to use for the web search.\n *\n * @deprecated Use `webSearch` instead.\n */\n webSearchPreview,\n /**\n * Web search allows models to access up-to-date information from the internet\n * and provide answers with sourced citations.\n *\n * Must have name `web_search`.\n *\n * @param filters - The filters to use for the web search.\n * @param searchContextSize - The search context size to use for the web search.\n * @param userLocation - The user location to use for the web search.\n */\n webSearch\n};\n\n// src/responses/openai-responses-language-model.ts\nimport {\n APICallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders5,\n createEventSourceResponseHandler as createEventSourceResponseHandler3,\n createJsonResponseHandler as createJsonResponseHandler5,\n generateId as generateId2,\n parseProviderOptions as parseProviderOptions5,\n postJsonToApi as postJsonToApi5\n} from \"@ai-sdk/provider-utils\";\n\n// src/responses/convert-to-openai-responses-input.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError4\n} from \"@ai-sdk/provider\";\nimport {\n convertToBase64 as convertToBase642,\n parseProviderOptions as parseProviderOptions4,\n validateTypes\n} from \"@ai-sdk/provider-utils\";\nimport { z as z15 } from \"zod/v4\";\nfunction isFileId(data, prefixes) {\n if (!prefixes) return false;\n return prefixes.some((prefix) => data.startsWith(prefix));\n}\nasync function convertToOpenAIResponsesInput({\n prompt,\n systemMessageMode,\n fileIdPrefixes,\n store,\n hasLocalShellTool = false\n}) {\n var _a, _b, _c, _d;\n const input = [];\n const warnings = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n switch (systemMessageMode) {\n case \"system\": {\n input.push({ role: \"system\", content });\n break;\n }\n case \"developer\": {\n input.push({ role: \"developer\", content });\n break;\n }\n case \"remove\": {\n warnings.push({\n type: \"other\",\n message: \"system messages are removed for this model\"\n });\n break;\n }\n default: {\n const _exhaustiveCheck = systemMessageMode;\n throw new Error(\n `Unsupported system message mode: ${_exhaustiveCheck}`\n );\n }\n }\n break;\n }\n case \"user\": {\n input.push({\n role: \"user\",\n content: content.map((part, index) => {\n var _a2, _b2, _c2;\n switch (part.type) {\n case \"text\": {\n return { type: \"input_text\", text: part.text };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"input_image\",\n ...part.data instanceof URL ? { image_url: part.data.toString() } : typeof part.data === \"string\" && isFileId(part.data, fileIdPrefixes) ? { file_id: part.data } : {\n image_url: `data:${mediaType};base64,${convertToBase642(part.data)}`\n },\n detail: (_b2 = (_a2 = part.providerOptions) == null ? void 0 : _a2.openai) == null ? void 0 : _b2.imageDetail\n };\n } else if (part.mediaType === \"application/pdf\") {\n if (part.data instanceof URL) {\n return {\n type: \"input_file\",\n file_url: part.data.toString()\n };\n }\n return {\n type: \"input_file\",\n ...typeof part.data === \"string\" && isFileId(part.data, fileIdPrefixes) ? { file_id: part.data } : {\n filename: (_c2 = part.filename) != null ? _c2 : `part-${index}.pdf`,\n file_data: `data:application/pdf;base64,${convertToBase642(part.data)}`\n }\n };\n } else {\n throw new UnsupportedFunctionalityError4({\n functionality: `file part media type ${part.mediaType}`\n });\n }\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n const reasoningMessages = {};\n const toolCallParts = {};\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n const id = (_b = (_a = part.providerOptions) == null ? void 0 : _a.openai) == null ? void 0 : _b.itemId;\n if (store && id != null) {\n input.push({ type: \"item_reference\", id });\n break;\n }\n input.push({\n role: \"assistant\",\n content: [{ type: \"output_text\", text: part.text }],\n id\n });\n break;\n }\n case \"tool-call\": {\n toolCallParts[part.toolCallId] = part;\n if (part.providerExecuted) {\n break;\n }\n const id = (_d = (_c = part.providerOptions) == null ? void 0 : _c.openai) == null ? void 0 : _d.itemId;\n if (store && id != null) {\n input.push({ type: \"item_reference\", id });\n break;\n }\n if (hasLocalShellTool && part.toolName === \"local_shell\") {\n const parsedInput = await validateTypes({\n value: part.input,\n schema: localShellInputSchema\n });\n input.push({\n type: \"local_shell_call\",\n call_id: part.toolCallId,\n id,\n action: {\n type: \"exec\",\n command: parsedInput.action.command,\n timeout_ms: parsedInput.action.timeoutMs,\n user: parsedInput.action.user,\n working_directory: parsedInput.action.workingDirectory,\n env: parsedInput.action.env\n }\n });\n break;\n }\n input.push({\n type: \"function_call\",\n call_id: part.toolCallId,\n name: part.toolName,\n arguments: JSON.stringify(part.input),\n id\n });\n break;\n }\n // assistant tool result parts are from provider-executed tools:\n case \"tool-result\": {\n if (store) {\n input.push({ type: \"item_reference\", id: part.toolCallId });\n } else {\n warnings.push({\n type: \"other\",\n message: `Results for OpenAI tool ${part.toolName} are not sent to the API when store is false`\n });\n }\n break;\n }\n case \"reasoning\": {\n const providerOptions = await parseProviderOptions4({\n provider: \"openai\",\n providerOptions: part.providerOptions,\n schema: openaiResponsesReasoningProviderOptionsSchema\n });\n const reasoningId = providerOptions == null ? void 0 : providerOptions.itemId;\n if (reasoningId != null) {\n const reasoningMessage = reasoningMessages[reasoningId];\n if (store) {\n if (reasoningMessage === void 0) {\n input.push({ type: \"item_reference\", id: reasoningId });\n reasoningMessages[reasoningId] = {\n type: \"reasoning\",\n id: reasoningId,\n summary: []\n };\n }\n } else {\n const summaryParts = [];\n if (part.text.length > 0) {\n summaryParts.push({\n type: \"summary_text\",\n text: part.text\n });\n } else if (reasoningMessage !== void 0) {\n warnings.push({\n type: \"other\",\n message: `Cannot append empty reasoning part to existing reasoning sequence. Skipping reasoning part: ${JSON.stringify(part)}.`\n });\n }\n if (reasoningMessage === void 0) {\n reasoningMessages[reasoningId] = {\n type: \"reasoning\",\n id: reasoningId,\n encrypted_content: providerOptions == null ? void 0 : providerOptions.reasoningEncryptedContent,\n summary: summaryParts\n };\n input.push(reasoningMessages[reasoningId]);\n } else {\n reasoningMessage.summary.push(...summaryParts);\n if ((providerOptions == null ? void 0 : providerOptions.reasoningEncryptedContent) != null) {\n reasoningMessage.encrypted_content = providerOptions.reasoningEncryptedContent;\n }\n }\n }\n } else {\n warnings.push({\n type: \"other\",\n message: `Non-OpenAI reasoning parts are not supported. Skipping reasoning part: ${JSON.stringify(part)}.`\n });\n }\n break;\n }\n }\n }\n break;\n }\n case \"tool\": {\n for (const part of content) {\n const output = part.output;\n if (hasLocalShellTool && part.toolName === \"local_shell\" && output.type === \"json\") {\n const parsedOutput = await validateTypes({\n value: output.value,\n schema: localShellOutputSchema\n });\n input.push({\n type: \"local_shell_call_output\",\n call_id: part.toolCallId,\n output: parsedOutput.output\n });\n break;\n }\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n case \"content\":\n contentValue = output.value.map((item) => {\n switch (item.type) {\n case \"text\": {\n return { type: \"input_text\", text: item.text };\n }\n case \"media\": {\n return item.mediaType.startsWith(\"image/\") ? {\n type: \"input_image\",\n image_url: `data:${item.mediaType};base64,${item.data}`\n } : {\n type: \"input_file\",\n filename: \"data\",\n file_data: `data:${item.mediaType};base64,${item.data}`\n };\n }\n }\n });\n break;\n }\n input.push({\n type: \"function_call_output\",\n call_id: part.toolCallId,\n output: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return { input, warnings };\n}\nvar openaiResponsesReasoningProviderOptionsSchema = z15.object({\n itemId: z15.string().nullish(),\n reasoningEncryptedContent: z15.string().nullish()\n});\n\n// src/responses/map-openai-responses-finish-reason.ts\nfunction mapOpenAIResponseFinishReason({\n finishReason,\n hasFunctionCall\n}) {\n switch (finishReason) {\n case void 0:\n case null:\n return hasFunctionCall ? \"tool-calls\" : \"stop\";\n case \"max_output_tokens\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n default:\n return hasFunctionCall ? \"tool-calls\" : \"unknown\";\n }\n}\n\n// src/responses/openai-responses-api.ts\nimport {\n lazyValidator as lazyValidator8,\n zodSchema as zodSchema14\n} from \"@ai-sdk/provider-utils\";\nimport { z as z16 } from \"zod/v4\";\nvar openaiResponsesChunkSchema = lazyValidator8(\n () => zodSchema14(\n z16.union([\n z16.object({\n type: z16.literal(\"response.output_text.delta\"),\n item_id: z16.string(),\n delta: z16.string(),\n logprobs: z16.array(\n z16.object({\n token: z16.string(),\n logprob: z16.number(),\n top_logprobs: z16.array(\n z16.object({\n token: z16.string(),\n logprob: z16.number()\n })\n )\n })\n ).nullish()\n }),\n z16.object({\n type: z16.enum([\"response.completed\", \"response.incomplete\"]),\n response: z16.object({\n incomplete_details: z16.object({ reason: z16.string() }).nullish(),\n usage: z16.object({\n input_tokens: z16.number(),\n input_tokens_details: z16.object({ cached_tokens: z16.number().nullish() }).nullish(),\n output_tokens: z16.number(),\n output_tokens_details: z16.object({ reasoning_tokens: z16.number().nullish() }).nullish()\n }),\n service_tier: z16.string().nullish()\n })\n }),\n z16.object({\n type: z16.literal(\"response.created\"),\n response: z16.object({\n id: z16.string(),\n created_at: z16.number(),\n model: z16.string(),\n service_tier: z16.string().nullish()\n })\n }),\n z16.object({\n type: z16.literal(\"response.output_item.added\"),\n output_index: z16.number(),\n item: z16.discriminatedUnion(\"type\", [\n z16.object({\n type: z16.literal(\"message\"),\n id: z16.string()\n }),\n z16.object({\n type: z16.literal(\"reasoning\"),\n id: z16.string(),\n encrypted_content: z16.string().nullish()\n }),\n z16.object({\n type: z16.literal(\"function_call\"),\n id: z16.string(),\n call_id: z16.string(),\n name: z16.string(),\n arguments: z16.string()\n }),\n z16.object({\n type: z16.literal(\"web_search_call\"),\n id: z16.string(),\n status: z16.string()\n }),\n z16.object({\n type: z16.literal(\"computer_call\"),\n id: z16.string(),\n status: z16.string()\n }),\n z16.object({\n type: z16.literal(\"file_search_call\"),\n id: z16.string()\n }),\n z16.object({\n type: z16.literal(\"image_generation_call\"),\n id: z16.string()\n }),\n z16.object({\n type: z16.literal(\"code_interpreter_call\"),\n id: z16.string(),\n container_id: z16.string(),\n code: z16.string().nullable(),\n outputs: z16.array(\n z16.discriminatedUnion(\"type\", [\n z16.object({ type: z16.literal(\"logs\"), logs: z16.string() }),\n z16.object({ type: z16.literal(\"image\"), url: z16.string() })\n ])\n ).nullable(),\n status: z16.string()\n })\n ])\n }),\n z16.object({\n type: z16.literal(\"response.output_item.done\"),\n output_index: z16.number(),\n item: z16.discriminatedUnion(\"type\", [\n z16.object({\n type: z16.literal(\"message\"),\n id: z16.string()\n }),\n z16.object({\n type: z16.literal(\"reasoning\"),\n id: z16.string(),\n encrypted_content: z16.string().nullish()\n }),\n z16.object({\n type: z16.literal(\"function_call\"),\n id: z16.string(),\n call_id: z16.string(),\n name: z16.string(),\n arguments: z16.string(),\n status: z16.literal(\"completed\")\n }),\n z16.object({\n type: z16.literal(\"code_interpreter_call\"),\n id: z16.string(),\n code: z16.string().nullable(),\n container_id: z16.string(),\n outputs: z16.array(\n z16.discriminatedUnion(\"type\", [\n z16.object({ type: z16.literal(\"logs\"), logs: z16.string() }),\n z16.object({ type: z16.literal(\"image\"), url: z16.string() })\n ])\n ).nullable()\n }),\n z16.object({\n type: z16.literal(\"image_generation_call\"),\n id: z16.string(),\n result: z16.string()\n }),\n z16.object({\n type: z16.literal(\"web_search_call\"),\n id: z16.string(),\n status: z16.string(),\n action: z16.discriminatedUnion(\"type\", [\n z16.object({\n type: z16.literal(\"search\"),\n query: z16.string().nullish(),\n sources: z16.array(z16.object({ type: z16.literal(\"url\"), url: z16.string() })).nullish()\n }),\n z16.object({\n type: z16.literal(\"open_page\"),\n url: z16.string()\n }),\n z16.object({\n type: z16.literal(\"find\"),\n url: z16.string(),\n pattern: z16.string()\n })\n ])\n }),\n z16.object({\n type: z16.literal(\"file_search_call\"),\n id: z16.string(),\n queries: z16.array(z16.string()),\n results: z16.array(\n z16.object({\n attributes: z16.record(z16.string(), z16.unknown()),\n file_id: z16.string(),\n filename: z16.string(),\n score: z16.number(),\n text: z16.string()\n })\n ).nullish()\n }),\n z16.object({\n type: z16.literal(\"local_shell_call\"),\n id: z16.string(),\n call_id: z16.string(),\n action: z16.object({\n type: z16.literal(\"exec\"),\n command: z16.array(z16.string()),\n timeout_ms: z16.number().optional(),\n user: z16.string().optional(),\n working_directory: z16.string().optional(),\n env: z16.record(z16.string(), z16.string()).optional()\n })\n }),\n z16.object({\n type: z16.literal(\"computer_call\"),\n id: z16.string(),\n status: z16.literal(\"completed\")\n })\n ])\n }),\n z16.object({\n type: z16.literal(\"response.function_call_arguments.delta\"),\n item_id: z16.string(),\n output_index: z16.number(),\n delta: z16.string()\n }),\n z16.object({\n type: z16.literal(\"response.image_generation_call.partial_image\"),\n item_id: z16.string(),\n output_index: z16.number(),\n partial_image_b64: z16.string()\n }),\n z16.object({\n type: z16.literal(\"response.code_interpreter_call_code.delta\"),\n item_id: z16.string(),\n output_index: z16.number(),\n delta: z16.string()\n }),\n z16.object({\n type: z16.literal(\"response.code_interpreter_call_code.done\"),\n item_id: z16.string(),\n output_index: z16.number(),\n code: z16.string()\n }),\n z16.object({\n type: z16.literal(\"response.output_text.annotation.added\"),\n annotation: z16.discriminatedUnion(\"type\", [\n z16.object({\n type: z16.literal(\"url_citation\"),\n url: z16.string(),\n title: z16.string()\n }),\n z16.object({\n type: z16.literal(\"file_citation\"),\n file_id: z16.string(),\n filename: z16.string().nullish(),\n index: z16.number().nullish(),\n start_index: z16.number().nullish(),\n end_index: z16.number().nullish(),\n quote: z16.string().nullish()\n })\n ])\n }),\n z16.object({\n type: z16.literal(\"response.reasoning_summary_part.added\"),\n item_id: z16.string(),\n summary_index: z16.number()\n }),\n z16.object({\n type: z16.literal(\"response.reasoning_summary_text.delta\"),\n item_id: z16.string(),\n summary_index: z16.number(),\n delta: z16.string()\n }),\n z16.object({\n type: z16.literal(\"response.reasoning_summary_part.done\"),\n item_id: z16.string(),\n summary_index: z16.number()\n }),\n z16.object({\n type: z16.literal(\"error\"),\n code: z16.string(),\n message: z16.string(),\n param: z16.string().nullish(),\n sequence_number: z16.number()\n }),\n z16.object({ type: z16.string() }).loose().transform((value) => ({\n type: \"unknown_chunk\",\n message: value.type\n }))\n // fallback for unknown chunks\n ])\n )\n);\nvar openaiResponsesResponseSchema = lazyValidator8(\n () => zodSchema14(\n z16.object({\n id: z16.string(),\n created_at: z16.number(),\n error: z16.object({\n code: z16.string(),\n message: z16.string()\n }).nullish(),\n model: z16.string(),\n output: z16.array(\n z16.discriminatedUnion(\"type\", [\n z16.object({\n type: z16.literal(\"message\"),\n role: z16.literal(\"assistant\"),\n id: z16.string(),\n content: z16.array(\n z16.object({\n type: z16.literal(\"output_text\"),\n text: z16.string(),\n logprobs: z16.array(\n z16.object({\n token: z16.string(),\n logprob: z16.number(),\n top_logprobs: z16.array(\n z16.object({\n token: z16.string(),\n logprob: z16.number()\n })\n )\n })\n ).nullish(),\n annotations: z16.array(\n z16.discriminatedUnion(\"type\", [\n z16.object({\n type: z16.literal(\"url_citation\"),\n start_index: z16.number(),\n end_index: z16.number(),\n url: z16.string(),\n title: z16.string()\n }),\n z16.object({\n type: z16.literal(\"file_citation\"),\n file_id: z16.string(),\n filename: z16.string().nullish(),\n index: z16.number().nullish(),\n start_index: z16.number().nullish(),\n end_index: z16.number().nullish(),\n quote: z16.string().nullish()\n }),\n z16.object({\n type: z16.literal(\"container_file_citation\")\n })\n ])\n )\n })\n )\n }),\n z16.object({\n type: z16.literal(\"web_search_call\"),\n id: z16.string(),\n status: z16.string(),\n action: z16.discriminatedUnion(\"type\", [\n z16.object({\n type: z16.literal(\"search\"),\n query: z16.string().nullish(),\n sources: z16.array(z16.object({ type: z16.literal(\"url\"), url: z16.string() })).nullish()\n }),\n z16.object({\n type: z16.literal(\"open_page\"),\n url: z16.string()\n }),\n z16.object({\n type: z16.literal(\"find\"),\n url: z16.string(),\n pattern: z16.string()\n })\n ])\n }),\n z16.object({\n type: z16.literal(\"file_search_call\"),\n id: z16.string(),\n queries: z16.array(z16.string()),\n results: z16.array(\n z16.object({\n attributes: z16.record(z16.string(), z16.unknown()),\n file_id: z16.string(),\n filename: z16.string(),\n score: z16.number(),\n text: z16.string()\n })\n ).nullish()\n }),\n z16.object({\n type: z16.literal(\"code_interpreter_call\"),\n id: z16.string(),\n code: z16.string().nullable(),\n container_id: z16.string(),\n outputs: z16.array(\n z16.discriminatedUnion(\"type\", [\n z16.object({ type: z16.literal(\"logs\"), logs: z16.string() }),\n z16.object({ type: z16.literal(\"image\"), url: z16.string() })\n ])\n ).nullable()\n }),\n z16.object({\n type: z16.literal(\"image_generation_call\"),\n id: z16.string(),\n result: z16.string()\n }),\n z16.object({\n type: z16.literal(\"local_shell_call\"),\n id: z16.string(),\n call_id: z16.string(),\n action: z16.object({\n type: z16.literal(\"exec\"),\n command: z16.array(z16.string()),\n timeout_ms: z16.number().optional(),\n user: z16.string().optional(),\n working_directory: z16.string().optional(),\n env: z16.record(z16.string(), z16.string()).optional()\n })\n }),\n z16.object({\n type: z16.literal(\"function_call\"),\n call_id: z16.string(),\n name: z16.string(),\n arguments: z16.string(),\n id: z16.string()\n }),\n z16.object({\n type: z16.literal(\"computer_call\"),\n id: z16.string(),\n status: z16.string().optional()\n }),\n z16.object({\n type: z16.literal(\"reasoning\"),\n id: z16.string(),\n encrypted_content: z16.string().nullish(),\n summary: z16.array(\n z16.object({\n type: z16.literal(\"summary_text\"),\n text: z16.string()\n })\n )\n })\n ])\n ),\n service_tier: z16.string().nullish(),\n incomplete_details: z16.object({ reason: z16.string() }).nullish(),\n usage: z16.object({\n input_tokens: z16.number(),\n input_tokens_details: z16.object({ cached_tokens: z16.number().nullish() }).nullish(),\n output_tokens: z16.number(),\n output_tokens_details: z16.object({ reasoning_tokens: z16.number().nullish() }).nullish()\n })\n })\n )\n);\n\n// src/responses/openai-responses-options.ts\nimport {\n lazyValidator as lazyValidator9,\n zodSchema as zodSchema15\n} from \"@ai-sdk/provider-utils\";\nimport { z as z17 } from \"zod/v4\";\nvar TOP_LOGPROBS_MAX = 20;\nvar openaiResponsesReasoningModelIds = [\n \"o1\",\n \"o1-2024-12-17\",\n \"o3-mini\",\n \"o3-mini-2025-01-31\",\n \"o3\",\n \"o3-2025-04-16\",\n \"o4-mini\",\n \"o4-mini-2025-04-16\",\n \"codex-mini-latest\",\n \"computer-use-preview\",\n \"gpt-5\",\n \"gpt-5-2025-08-07\",\n \"gpt-5-codex\",\n \"gpt-5-mini\",\n \"gpt-5-mini-2025-08-07\",\n \"gpt-5-nano\",\n \"gpt-5-nano-2025-08-07\",\n \"gpt-5-pro\",\n \"gpt-5-pro-2025-10-06\"\n];\nvar openaiResponsesModelIds = [\n \"gpt-4.1\",\n \"gpt-4.1-2025-04-14\",\n \"gpt-4.1-mini\",\n \"gpt-4.1-mini-2025-04-14\",\n \"gpt-4.1-nano\",\n \"gpt-4.1-nano-2025-04-14\",\n \"gpt-4o\",\n \"gpt-4o-2024-05-13\",\n \"gpt-4o-2024-08-06\",\n \"gpt-4o-2024-11-20\",\n \"gpt-4o-audio-preview\",\n \"gpt-4o-audio-preview-2024-10-01\",\n \"gpt-4o-audio-preview-2024-12-17\",\n \"gpt-4o-search-preview\",\n \"gpt-4o-search-preview-2025-03-11\",\n \"gpt-4o-mini-search-preview\",\n \"gpt-4o-mini-search-preview-2025-03-11\",\n \"gpt-4o-mini\",\n \"gpt-4o-mini-2024-07-18\",\n \"gpt-4-turbo\",\n \"gpt-4-turbo-2024-04-09\",\n \"gpt-4-turbo-preview\",\n \"gpt-4-0125-preview\",\n \"gpt-4-1106-preview\",\n \"gpt-4\",\n \"gpt-4-0613\",\n \"gpt-4.5-preview\",\n \"gpt-4.5-preview-2025-02-27\",\n \"gpt-3.5-turbo-0125\",\n \"gpt-3.5-turbo\",\n \"gpt-3.5-turbo-1106\",\n \"chatgpt-4o-latest\",\n \"gpt-5-chat-latest\",\n ...openaiResponsesReasoningModelIds\n];\nvar openaiResponsesProviderOptionsSchema = lazyValidator9(\n () => zodSchema15(\n z17.object({\n include: z17.array(\n z17.enum([\n \"reasoning.encrypted_content\",\n // handled internally by default, only needed for unknown reasoning models\n \"file_search_call.results\",\n \"message.output_text.logprobs\"\n ])\n ).nullish(),\n instructions: z17.string().nullish(),\n /**\n * Return the log probabilities of the tokens.\n *\n * Setting to true will return the log probabilities of the tokens that\n * were generated.\n *\n * Setting to a number will return the log probabilities of the top n\n * tokens that were generated.\n *\n * @see https://platform.openai.com/docs/api-reference/responses/create\n * @see https://cookbook.openai.com/examples/using_logprobs\n */\n logprobs: z17.union([z17.boolean(), z17.number().min(1).max(TOP_LOGPROBS_MAX)]).optional(),\n /**\n * The maximum number of total calls to built-in tools that can be processed in a response.\n * This maximum number applies across all built-in tool calls, not per individual tool.\n * Any further attempts to call a tool by the model will be ignored.\n */\n maxToolCalls: z17.number().nullish(),\n metadata: z17.any().nullish(),\n parallelToolCalls: z17.boolean().nullish(),\n previousResponseId: z17.string().nullish(),\n promptCacheKey: z17.string().nullish(),\n reasoningEffort: z17.string().nullish(),\n reasoningSummary: z17.string().nullish(),\n safetyIdentifier: z17.string().nullish(),\n serviceTier: z17.enum([\"auto\", \"flex\", \"priority\", \"default\"]).nullish(),\n store: z17.boolean().nullish(),\n strictJsonSchema: z17.boolean().nullish(),\n textVerbosity: z17.enum([\"low\", \"medium\", \"high\"]).nullish(),\n truncation: z17.enum([\"auto\", \"disabled\"]).nullish(),\n user: z17.string().nullish()\n })\n )\n);\n\n// src/responses/openai-responses-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError5\n} from \"@ai-sdk/provider\";\nimport { validateTypes as validateTypes2 } from \"@ai-sdk/provider-utils\";\nasync function prepareResponsesTools({\n tools,\n toolChoice,\n strictJsonSchema\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const openaiTools2 = [];\n for (const tool of tools) {\n switch (tool.type) {\n case \"function\":\n openaiTools2.push({\n type: \"function\",\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n strict: strictJsonSchema\n });\n break;\n case \"provider-defined\": {\n switch (tool.id) {\n case \"openai.file_search\": {\n const args = await validateTypes2({\n value: tool.args,\n schema: fileSearchArgsSchema\n });\n openaiTools2.push({\n type: \"file_search\",\n vector_store_ids: args.vectorStoreIds,\n max_num_results: args.maxNumResults,\n ranking_options: args.ranking ? {\n ranker: args.ranking.ranker,\n score_threshold: args.ranking.scoreThreshold\n } : void 0,\n filters: args.filters\n });\n break;\n }\n case \"openai.local_shell\": {\n openaiTools2.push({\n type: \"local_shell\"\n });\n break;\n }\n case \"openai.web_search_preview\": {\n const args = await validateTypes2({\n value: tool.args,\n schema: webSearchPreviewArgsSchema\n });\n openaiTools2.push({\n type: \"web_search_preview\",\n search_context_size: args.searchContextSize,\n user_location: args.userLocation\n });\n break;\n }\n case \"openai.web_search\": {\n const args = await validateTypes2({\n value: tool.args,\n schema: webSearchArgsSchema\n });\n openaiTools2.push({\n type: \"web_search\",\n filters: args.filters != null ? { allowed_domains: args.filters.allowedDomains } : void 0,\n search_context_size: args.searchContextSize,\n user_location: args.userLocation\n });\n break;\n }\n case \"openai.code_interpreter\": {\n const args = await validateTypes2({\n value: tool.args,\n schema: codeInterpreterArgsSchema\n });\n openaiTools2.push({\n type: \"code_interpreter\",\n container: args.container == null ? { type: \"auto\", file_ids: void 0 } : typeof args.container === \"string\" ? args.container : { type: \"auto\", file_ids: args.container.fileIds }\n });\n break;\n }\n case \"openai.image_generation\": {\n const args = await validateTypes2({\n value: tool.args,\n schema: imageGenerationArgsSchema\n });\n openaiTools2.push({\n type: \"image_generation\",\n background: args.background,\n input_fidelity: args.inputFidelity,\n input_image_mask: args.inputImageMask ? {\n file_id: args.inputImageMask.fileId,\n image_url: args.inputImageMask.imageUrl\n } : void 0,\n model: args.model,\n size: args.size,\n quality: args.quality,\n moderation: args.moderation,\n output_format: args.outputFormat,\n output_compression: args.outputCompression\n });\n break;\n }\n }\n break;\n }\n default:\n toolWarnings.push({ type: \"unsupported-tool\", tool });\n break;\n }\n }\n if (toolChoice == null) {\n return { tools: openaiTools2, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: openaiTools2, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: openaiTools2,\n toolChoice: toolChoice.toolName === \"code_interpreter\" || toolChoice.toolName === \"file_search\" || toolChoice.toolName === \"image_generation\" || toolChoice.toolName === \"web_search_preview\" || toolChoice.toolName === \"web_search\" ? { type: toolChoice.toolName } : { type: \"function\", name: toolChoice.toolName },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError5({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/responses/openai-responses-language-model.ts\nvar OpenAIResponsesLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v2\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/],\n \"application/pdf\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n maxOutputTokens,\n temperature,\n stopSequences,\n topP,\n topK,\n presencePenalty,\n frequencyPenalty,\n seed,\n prompt,\n providerOptions,\n tools,\n toolChoice,\n responseFormat\n }) {\n var _a, _b, _c, _d;\n const warnings = [];\n const modelConfig = getResponsesModelConfig(this.modelId);\n if (topK != null) {\n warnings.push({ type: \"unsupported-setting\", setting: \"topK\" });\n }\n if (seed != null) {\n warnings.push({ type: \"unsupported-setting\", setting: \"seed\" });\n }\n if (presencePenalty != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"presencePenalty\"\n });\n }\n if (frequencyPenalty != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"frequencyPenalty\"\n });\n }\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported-setting\", setting: \"stopSequences\" });\n }\n const openaiOptions = await parseProviderOptions5({\n provider: \"openai\",\n providerOptions,\n schema: openaiResponsesProviderOptionsSchema\n });\n const { input, warnings: inputWarnings } = await convertToOpenAIResponsesInput({\n prompt,\n systemMessageMode: modelConfig.systemMessageMode,\n fileIdPrefixes: this.config.fileIdPrefixes,\n store: (_a = openaiOptions == null ? void 0 : openaiOptions.store) != null ? _a : true,\n hasLocalShellTool: hasOpenAITool(\"openai.local_shell\")\n });\n warnings.push(...inputWarnings);\n const strictJsonSchema = (_b = openaiOptions == null ? void 0 : openaiOptions.strictJsonSchema) != null ? _b : false;\n let include = openaiOptions == null ? void 0 : openaiOptions.include;\n function addInclude(key) {\n if (include == null) {\n include = [key];\n } else if (!include.includes(key)) {\n include = [...include, key];\n }\n }\n function hasOpenAITool(id) {\n return (tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider-defined\" && tool.id === id\n )) != null;\n }\n const topLogprobs = typeof (openaiOptions == null ? void 0 : openaiOptions.logprobs) === \"number\" ? openaiOptions == null ? void 0 : openaiOptions.logprobs : (openaiOptions == null ? void 0 : openaiOptions.logprobs) === true ? TOP_LOGPROBS_MAX : void 0;\n if (topLogprobs) {\n addInclude(\"message.output_text.logprobs\");\n }\n const webSearchToolName = (_c = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider-defined\" && (tool.id === \"openai.web_search\" || tool.id === \"openai.web_search_preview\")\n )) == null ? void 0 : _c.name;\n if (webSearchToolName) {\n addInclude(\"web_search_call.action.sources\");\n }\n if (hasOpenAITool(\"openai.code_interpreter\")) {\n addInclude(\"code_interpreter_call.outputs\");\n }\n const store = openaiOptions == null ? void 0 : openaiOptions.store;\n if (store === false && modelConfig.isReasoningModel) {\n addInclude(\"reasoning.encrypted_content\");\n }\n const baseArgs = {\n model: this.modelId,\n input,\n temperature,\n top_p: topP,\n max_output_tokens: maxOutputTokens,\n ...((responseFormat == null ? void 0 : responseFormat.type) === \"json\" || (openaiOptions == null ? void 0 : openaiOptions.textVerbosity)) && {\n text: {\n ...(responseFormat == null ? void 0 : responseFormat.type) === \"json\" && {\n format: responseFormat.schema != null ? {\n type: \"json_schema\",\n strict: strictJsonSchema,\n name: (_d = responseFormat.name) != null ? _d : \"response\",\n description: responseFormat.description,\n schema: responseFormat.schema\n } : { type: \"json_object\" }\n },\n ...(openaiOptions == null ? void 0 : openaiOptions.textVerbosity) && {\n verbosity: openaiOptions.textVerbosity\n }\n }\n },\n // provider options:\n max_tool_calls: openaiOptions == null ? void 0 : openaiOptions.maxToolCalls,\n metadata: openaiOptions == null ? void 0 : openaiOptions.metadata,\n parallel_tool_calls: openaiOptions == null ? void 0 : openaiOptions.parallelToolCalls,\n previous_response_id: openaiOptions == null ? void 0 : openaiOptions.previousResponseId,\n store,\n user: openaiOptions == null ? void 0 : openaiOptions.user,\n instructions: openaiOptions == null ? void 0 : openaiOptions.instructions,\n service_tier: openaiOptions == null ? void 0 : openaiOptions.serviceTier,\n include,\n prompt_cache_key: openaiOptions == null ? void 0 : openaiOptions.promptCacheKey,\n safety_identifier: openaiOptions == null ? void 0 : openaiOptions.safetyIdentifier,\n top_logprobs: topLogprobs,\n truncation: openaiOptions == null ? void 0 : openaiOptions.truncation,\n // model-specific settings:\n ...modelConfig.isReasoningModel && ((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null) && {\n reasoning: {\n ...(openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null && {\n effort: openaiOptions.reasoningEffort\n },\n ...(openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null && {\n summary: openaiOptions.reasoningSummary\n }\n }\n }\n };\n if (modelConfig.isReasoningModel) {\n if (baseArgs.temperature != null) {\n baseArgs.temperature = void 0;\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"temperature\",\n details: \"temperature is not supported for reasoning models\"\n });\n }\n if (baseArgs.top_p != null) {\n baseArgs.top_p = void 0;\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"topP\",\n details: \"topP is not supported for reasoning models\"\n });\n }\n } else {\n if ((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"reasoningEffort\",\n details: \"reasoningEffort is not supported for non-reasoning models\"\n });\n }\n if ((openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"reasoningSummary\",\n details: \"reasoningSummary is not supported for non-reasoning models\"\n });\n }\n }\n if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === \"flex\" && !modelConfig.supportsFlexProcessing) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"serviceTier\",\n details: \"flex processing is only available for o3, o4-mini, and gpt-5 models\"\n });\n delete baseArgs.service_tier;\n }\n if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === \"priority\" && !modelConfig.supportsPriorityProcessing) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"serviceTier\",\n details: \"priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported\"\n });\n delete baseArgs.service_tier;\n }\n const {\n tools: openaiTools2,\n toolChoice: openaiToolChoice,\n toolWarnings\n } = await prepareResponsesTools({\n tools,\n toolChoice,\n strictJsonSchema\n });\n return {\n webSearchToolName,\n args: {\n ...baseArgs,\n tools: openaiTools2,\n tool_choice: openaiToolChoice\n },\n warnings: [...warnings, ...toolWarnings],\n store\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;\n const {\n args: body,\n warnings,\n webSearchToolName\n } = await this.getArgs(options);\n const url = this.config.url({\n path: \"/responses\",\n modelId: this.modelId\n });\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi5({\n url,\n headers: combineHeaders5(this.config.headers(), options.headers),\n body,\n failedResponseHandler: openaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler5(\n openaiResponsesResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n if (response.error) {\n throw new APICallError({\n message: response.error.message,\n url,\n requestBodyValues: body,\n statusCode: 400,\n responseHeaders,\n responseBody: rawResponse,\n isRetryable: false\n });\n }\n const content = [];\n const logprobs = [];\n let hasFunctionCall = false;\n for (const part of response.output) {\n switch (part.type) {\n case \"reasoning\": {\n if (part.summary.length === 0) {\n part.summary.push({ type: \"summary_text\", text: \"\" });\n }\n for (const summary of part.summary) {\n content.push({\n type: \"reasoning\",\n text: summary.text,\n providerMetadata: {\n openai: {\n itemId: part.id,\n reasoningEncryptedContent: (_a = part.encrypted_content) != null ? _a : null\n }\n }\n });\n }\n break;\n }\n case \"image_generation_call\": {\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName: \"image_generation\",\n input: \"{}\",\n providerExecuted: true\n });\n content.push({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName: \"image_generation\",\n result: {\n result: part.result\n },\n providerExecuted: true\n });\n break;\n }\n case \"local_shell_call\": {\n content.push({\n type: \"tool-call\",\n toolCallId: part.call_id,\n toolName: \"local_shell\",\n input: JSON.stringify({\n action: part.action\n }),\n providerMetadata: {\n openai: {\n itemId: part.id\n }\n }\n });\n break;\n }\n case \"message\": {\n for (const contentPart of part.content) {\n if (((_c = (_b = options.providerOptions) == null ? void 0 : _b.openai) == null ? void 0 : _c.logprobs) && contentPart.logprobs) {\n logprobs.push(contentPart.logprobs);\n }\n content.push({\n type: \"text\",\n text: contentPart.text,\n providerMetadata: {\n openai: {\n itemId: part.id\n }\n }\n });\n for (const annotation of contentPart.annotations) {\n if (annotation.type === \"url_citation\") {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: (_f = (_e = (_d = this.config).generateId) == null ? void 0 : _e.call(_d)) != null ? _f : generateId2(),\n url: annotation.url,\n title: annotation.title\n });\n } else if (annotation.type === \"file_citation\") {\n content.push({\n type: \"source\",\n sourceType: \"document\",\n id: (_i = (_h = (_g = this.config).generateId) == null ? void 0 : _h.call(_g)) != null ? _i : generateId2(),\n mediaType: \"text/plain\",\n title: (_k = (_j = annotation.quote) != null ? _j : annotation.filename) != null ? _k : \"Document\",\n filename: (_l = annotation.filename) != null ? _l : annotation.file_id,\n ...annotation.file_id ? {\n providerMetadata: {\n openai: {\n fileId: annotation.file_id\n }\n }\n } : {}\n });\n }\n }\n }\n break;\n }\n case \"function_call\": {\n hasFunctionCall = true;\n content.push({\n type: \"tool-call\",\n toolCallId: part.call_id,\n toolName: part.name,\n input: part.arguments,\n providerMetadata: {\n openai: {\n itemId: part.id\n }\n }\n });\n break;\n }\n case \"web_search_call\": {\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName: webSearchToolName != null ? webSearchToolName : \"web_search\",\n input: JSON.stringify({}),\n providerExecuted: true\n });\n content.push({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName: webSearchToolName != null ? webSearchToolName : \"web_search\",\n result: mapWebSearchOutput(part.action),\n providerExecuted: true\n });\n break;\n }\n case \"computer_call\": {\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName: \"computer_use\",\n input: \"\",\n providerExecuted: true\n });\n content.push({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName: \"computer_use\",\n result: {\n type: \"computer_use_tool_result\",\n status: part.status || \"completed\"\n },\n providerExecuted: true\n });\n break;\n }\n case \"file_search_call\": {\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName: \"file_search\",\n input: \"{}\",\n providerExecuted: true\n });\n content.push({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName: \"file_search\",\n result: {\n queries: part.queries,\n results: (_n = (_m = part.results) == null ? void 0 : _m.map((result) => ({\n attributes: result.attributes,\n fileId: result.file_id,\n filename: result.filename,\n score: result.score,\n text: result.text\n }))) != null ? _n : null\n },\n providerExecuted: true\n });\n break;\n }\n case \"code_interpreter_call\": {\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName: \"code_interpreter\",\n input: JSON.stringify({\n code: part.code,\n containerId: part.container_id\n }),\n providerExecuted: true\n });\n content.push({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName: \"code_interpreter\",\n result: {\n outputs: part.outputs\n },\n providerExecuted: true\n });\n break;\n }\n }\n }\n const providerMetadata = {\n openai: { responseId: response.id }\n };\n if (logprobs.length > 0) {\n providerMetadata.openai.logprobs = logprobs;\n }\n if (typeof response.service_tier === \"string\") {\n providerMetadata.openai.serviceTier = response.service_tier;\n }\n return {\n content,\n finishReason: mapOpenAIResponseFinishReason({\n finishReason: (_o = response.incomplete_details) == null ? void 0 : _o.reason,\n hasFunctionCall\n }),\n usage: {\n inputTokens: response.usage.input_tokens,\n outputTokens: response.usage.output_tokens,\n totalTokens: response.usage.input_tokens + response.usage.output_tokens,\n reasoningTokens: (_q = (_p = response.usage.output_tokens_details) == null ? void 0 : _p.reasoning_tokens) != null ? _q : void 0,\n cachedInputTokens: (_s = (_r = response.usage.input_tokens_details) == null ? void 0 : _r.cached_tokens) != null ? _s : void 0\n },\n request: { body },\n response: {\n id: response.id,\n timestamp: new Date(response.created_at * 1e3),\n modelId: response.model,\n headers: responseHeaders,\n body: rawResponse\n },\n providerMetadata,\n warnings\n };\n }\n async doStream(options) {\n const {\n args: body,\n warnings,\n webSearchToolName,\n store\n } = await this.getArgs(options);\n const { responseHeaders, value: response } = await postJsonToApi5({\n url: this.config.url({\n path: \"/responses\",\n modelId: this.modelId\n }),\n headers: combineHeaders5(this.config.headers(), options.headers),\n body: {\n ...body,\n stream: true\n },\n failedResponseHandler: openaiFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler3(\n openaiResponsesChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const self = this;\n let finishReason = \"unknown\";\n const usage = {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0\n };\n const logprobs = [];\n let responseId = null;\n const ongoingToolCalls = {};\n let hasFunctionCall = false;\n const activeReasoning = {};\n let serviceTier;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isResponseOutputItemAddedChunk(value)) {\n if (value.item.type === \"function_call\") {\n ongoingToolCalls[value.output_index] = {\n toolName: value.item.name,\n toolCallId: value.item.call_id\n };\n controller.enqueue({\n type: \"tool-input-start\",\n id: value.item.call_id,\n toolName: value.item.name\n });\n } else if (value.item.type === \"web_search_call\") {\n ongoingToolCalls[value.output_index] = {\n toolName: webSearchToolName != null ? webSearchToolName : \"web_search\",\n toolCallId: value.item.id\n };\n controller.enqueue({\n type: \"tool-input-start\",\n id: value.item.id,\n toolName: webSearchToolName != null ? webSearchToolName : \"web_search\",\n providerExecuted: true\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: value.item.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: value.item.id,\n toolName: \"web_search\",\n input: JSON.stringify({}),\n providerExecuted: true\n });\n } else if (value.item.type === \"computer_call\") {\n ongoingToolCalls[value.output_index] = {\n toolName: \"computer_use\",\n toolCallId: value.item.id\n };\n controller.enqueue({\n type: \"tool-input-start\",\n id: value.item.id,\n toolName: \"computer_use\",\n providerExecuted: true\n });\n } else if (value.item.type === \"code_interpreter_call\") {\n ongoingToolCalls[value.output_index] = {\n toolName: \"code_interpreter\",\n toolCallId: value.item.id,\n codeInterpreter: {\n containerId: value.item.container_id\n }\n };\n controller.enqueue({\n type: \"tool-input-start\",\n id: value.item.id,\n toolName: \"code_interpreter\",\n providerExecuted: true\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: value.item.id,\n delta: `{\"containerId\":\"${value.item.container_id}\",\"code\":\"`\n });\n } else if (value.item.type === \"file_search_call\") {\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: value.item.id,\n toolName: \"file_search\",\n input: \"{}\",\n providerExecuted: true\n });\n } else if (value.item.type === \"image_generation_call\") {\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: value.item.id,\n toolName: \"image_generation\",\n input: \"{}\",\n providerExecuted: true\n });\n } else if (value.item.type === \"message\") {\n controller.enqueue({\n type: \"text-start\",\n id: value.item.id,\n providerMetadata: {\n openai: {\n itemId: value.item.id\n }\n }\n });\n } else if (isResponseOutputItemAddedChunk(value) && value.item.type === \"reasoning\") {\n activeReasoning[value.item.id] = {\n encryptedContent: value.item.encrypted_content,\n summaryParts: { 0: \"active\" }\n };\n controller.enqueue({\n type: \"reasoning-start\",\n id: `${value.item.id}:0`,\n providerMetadata: {\n openai: {\n itemId: value.item.id,\n reasoningEncryptedContent: (_a = value.item.encrypted_content) != null ? _a : null\n }\n }\n });\n }\n } else if (isResponseOutputItemDoneChunk(value)) {\n if (value.item.type === \"function_call\") {\n ongoingToolCalls[value.output_index] = void 0;\n hasFunctionCall = true;\n controller.enqueue({\n type: \"tool-input-end\",\n id: value.item.call_id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: value.item.call_id,\n toolName: value.item.name,\n input: value.item.arguments,\n providerMetadata: {\n openai: {\n itemId: value.item.id\n }\n }\n });\n } else if (value.item.type === \"web_search_call\") {\n ongoingToolCalls[value.output_index] = void 0;\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: value.item.id,\n toolName: \"web_search\",\n result: mapWebSearchOutput(value.item.action),\n providerExecuted: true\n });\n } else if (value.item.type === \"computer_call\") {\n ongoingToolCalls[value.output_index] = void 0;\n controller.enqueue({\n type: \"tool-input-end\",\n id: value.item.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: value.item.id,\n toolName: \"computer_use\",\n input: \"\",\n providerExecuted: true\n });\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: value.item.id,\n toolName: \"computer_use\",\n result: {\n type: \"computer_use_tool_result\",\n status: value.item.status || \"completed\"\n },\n providerExecuted: true\n });\n } else if (value.item.type === \"file_search_call\") {\n ongoingToolCalls[value.output_index] = void 0;\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: value.item.id,\n toolName: \"file_search\",\n result: {\n queries: value.item.queries,\n results: (_c = (_b = value.item.results) == null ? void 0 : _b.map((result) => ({\n attributes: result.attributes,\n fileId: result.file_id,\n filename: result.filename,\n score: result.score,\n text: result.text\n }))) != null ? _c : null\n },\n providerExecuted: true\n });\n } else if (value.item.type === \"code_interpreter_call\") {\n ongoingToolCalls[value.output_index] = void 0;\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: value.item.id,\n toolName: \"code_interpreter\",\n result: {\n outputs: value.item.outputs\n },\n providerExecuted: true\n });\n } else if (value.item.type === \"image_generation_call\") {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: value.item.id,\n toolName: \"image_generation\",\n result: {\n result: value.item.result\n },\n providerExecuted: true\n });\n } else if (value.item.type === \"local_shell_call\") {\n ongoingToolCalls[value.output_index] = void 0;\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: value.item.call_id,\n toolName: \"local_shell\",\n input: JSON.stringify({\n action: {\n type: \"exec\",\n command: value.item.action.command,\n timeoutMs: value.item.action.timeout_ms,\n user: value.item.action.user,\n workingDirectory: value.item.action.working_directory,\n env: value.item.action.env\n }\n }),\n providerMetadata: {\n openai: { itemId: value.item.id }\n }\n });\n } else if (value.item.type === \"message\") {\n controller.enqueue({\n type: \"text-end\",\n id: value.item.id\n });\n } else if (value.item.type === \"reasoning\") {\n const activeReasoningPart = activeReasoning[value.item.id];\n const summaryPartIndices = Object.entries(\n activeReasoningPart.summaryParts\n ).filter(\n ([_, status]) => status === \"active\" || status === \"can-conclude\"\n ).map(([summaryIndex]) => summaryIndex);\n for (const summaryIndex of summaryPartIndices) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: `${value.item.id}:${summaryIndex}`,\n providerMetadata: {\n openai: {\n itemId: value.item.id,\n reasoningEncryptedContent: (_d = value.item.encrypted_content) != null ? _d : null\n }\n }\n });\n }\n delete activeReasoning[value.item.id];\n }\n } else if (isResponseFunctionCallArgumentsDeltaChunk(value)) {\n const toolCall = ongoingToolCalls[value.output_index];\n if (toolCall != null) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.toolCallId,\n delta: value.delta\n });\n }\n } else if (isResponseCodeInterpreterCallCodeDeltaChunk(value)) {\n const toolCall = ongoingToolCalls[value.output_index];\n if (toolCall != null) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.toolCallId,\n // The delta is code, which is embedding in a JSON string.\n // To escape it, we use JSON.stringify and slice to remove the outer quotes.\n delta: JSON.stringify(value.delta).slice(1, -1)\n });\n }\n } else if (isResponseCodeInterpreterCallCodeDoneChunk(value)) {\n const toolCall = ongoingToolCalls[value.output_index];\n if (toolCall != null) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.toolCallId,\n delta: '\"}'\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.toolCallId\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall.toolCallId,\n toolName: \"code_interpreter\",\n input: JSON.stringify({\n code: value.code,\n containerId: toolCall.codeInterpreter.containerId\n }),\n providerExecuted: true\n });\n }\n } else if (isResponseCreatedChunk(value)) {\n responseId = value.response.id;\n controller.enqueue({\n type: \"response-metadata\",\n id: value.response.id,\n timestamp: new Date(value.response.created_at * 1e3),\n modelId: value.response.model\n });\n } else if (isTextDeltaChunk(value)) {\n controller.enqueue({\n type: \"text-delta\",\n id: value.item_id,\n delta: value.delta\n });\n if (((_f = (_e = options.providerOptions) == null ? void 0 : _e.openai) == null ? void 0 : _f.logprobs) && value.logprobs) {\n logprobs.push(value.logprobs);\n }\n } else if (value.type === \"response.reasoning_summary_part.added\") {\n if (value.summary_index > 0) {\n const activeReasoningPart = activeReasoning[value.item_id];\n activeReasoningPart.summaryParts[value.summary_index] = \"active\";\n for (const summaryIndex of Object.keys(\n activeReasoningPart.summaryParts\n )) {\n if (activeReasoningPart.summaryParts[summaryIndex] === \"can-conclude\") {\n controller.enqueue({\n type: \"reasoning-end\",\n id: `${value.item_id}:${summaryIndex}`,\n providerMetadata: { openai: { itemId: value.item_id } }\n });\n activeReasoningPart.summaryParts[summaryIndex] = \"concluded\";\n }\n }\n controller.enqueue({\n type: \"reasoning-start\",\n id: `${value.item_id}:${value.summary_index}`,\n providerMetadata: {\n openai: {\n itemId: value.item_id,\n reasoningEncryptedContent: (_h = (_g = activeReasoning[value.item_id]) == null ? void 0 : _g.encryptedContent) != null ? _h : null\n }\n }\n });\n }\n } else if (value.type === \"response.reasoning_summary_text.delta\") {\n controller.enqueue({\n type: \"reasoning-delta\",\n id: `${value.item_id}:${value.summary_index}`,\n delta: value.delta,\n providerMetadata: {\n openai: {\n itemId: value.item_id\n }\n }\n });\n } else if (value.type === \"response.reasoning_summary_part.done\") {\n if (store) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: `${value.item_id}:${value.summary_index}`,\n providerMetadata: {\n openai: { itemId: value.item_id }\n }\n });\n activeReasoning[value.item_id].summaryParts[value.summary_index] = \"concluded\";\n } else {\n activeReasoning[value.item_id].summaryParts[value.summary_index] = \"can-conclude\";\n }\n } else if (isResponseFinishedChunk(value)) {\n finishReason = mapOpenAIResponseFinishReason({\n finishReason: (_i = value.response.incomplete_details) == null ? void 0 : _i.reason,\n hasFunctionCall\n });\n usage.inputTokens = value.response.usage.input_tokens;\n usage.outputTokens = value.response.usage.output_tokens;\n usage.totalTokens = value.response.usage.input_tokens + value.response.usage.output_tokens;\n usage.reasoningTokens = (_k = (_j = value.response.usage.output_tokens_details) == null ? void 0 : _j.reasoning_tokens) != null ? _k : void 0;\n usage.cachedInputTokens = (_m = (_l = value.response.usage.input_tokens_details) == null ? void 0 : _l.cached_tokens) != null ? _m : void 0;\n if (typeof value.response.service_tier === \"string\") {\n serviceTier = value.response.service_tier;\n }\n } else if (isResponseAnnotationAddedChunk(value)) {\n if (value.annotation.type === \"url_citation\") {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: (_p = (_o = (_n = self.config).generateId) == null ? void 0 : _o.call(_n)) != null ? _p : generateId2(),\n url: value.annotation.url,\n title: value.annotation.title\n });\n } else if (value.annotation.type === \"file_citation\") {\n controller.enqueue({\n type: \"source\",\n sourceType: \"document\",\n id: (_s = (_r = (_q = self.config).generateId) == null ? void 0 : _r.call(_q)) != null ? _s : generateId2(),\n mediaType: \"text/plain\",\n title: (_u = (_t = value.annotation.quote) != null ? _t : value.annotation.filename) != null ? _u : \"Document\",\n filename: (_v = value.annotation.filename) != null ? _v : value.annotation.file_id,\n ...value.annotation.file_id ? {\n providerMetadata: {\n openai: {\n fileId: value.annotation.file_id\n }\n }\n } : {}\n });\n }\n } else if (isErrorChunk(value)) {\n controller.enqueue({ type: \"error\", error: value });\n }\n },\n flush(controller) {\n const providerMetadata = {\n openai: {\n responseId\n }\n };\n if (logprobs.length > 0) {\n providerMetadata.openai.logprobs = logprobs;\n }\n if (serviceTier !== void 0) {\n providerMetadata.openai.serviceTier = serviceTier;\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage,\n providerMetadata\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction isTextDeltaChunk(chunk) {\n return chunk.type === \"response.output_text.delta\";\n}\nfunction isResponseOutputItemDoneChunk(chunk) {\n return chunk.type === \"response.output_item.done\";\n}\nfunction isResponseFinishedChunk(chunk) {\n return chunk.type === \"response.completed\" || chunk.type === \"response.incomplete\";\n}\nfunction isResponseCreatedChunk(chunk) {\n return chunk.type === \"response.created\";\n}\nfunction isResponseFunctionCallArgumentsDeltaChunk(chunk) {\n return chunk.type === \"response.function_call_arguments.delta\";\n}\nfunction isResponseCodeInterpreterCallCodeDeltaChunk(chunk) {\n return chunk.type === \"response.code_interpreter_call_code.delta\";\n}\nfunction isResponseCodeInterpreterCallCodeDoneChunk(chunk) {\n return chunk.type === \"response.code_interpreter_call_code.done\";\n}\nfunction isResponseOutputItemAddedChunk(chunk) {\n return chunk.type === \"response.output_item.added\";\n}\nfunction isResponseAnnotationAddedChunk(chunk) {\n return chunk.type === \"response.output_text.annotation.added\";\n}\nfunction isErrorChunk(chunk) {\n return chunk.type === \"error\";\n}\nfunction getResponsesModelConfig(modelId) {\n const supportsFlexProcessing2 = modelId.startsWith(\"o3\") || modelId.startsWith(\"o4-mini\") || modelId.startsWith(\"gpt-5\") && !modelId.startsWith(\"gpt-5-chat\");\n const supportsPriorityProcessing2 = modelId.startsWith(\"gpt-4\") || modelId.startsWith(\"gpt-5-mini\") || modelId.startsWith(\"gpt-5\") && !modelId.startsWith(\"gpt-5-nano\") && !modelId.startsWith(\"gpt-5-chat\") || modelId.startsWith(\"o3\") || modelId.startsWith(\"o4-mini\");\n const defaults = {\n systemMessageMode: \"system\",\n supportsFlexProcessing: supportsFlexProcessing2,\n supportsPriorityProcessing: supportsPriorityProcessing2\n };\n if (modelId.startsWith(\"gpt-5-chat\")) {\n return {\n ...defaults,\n isReasoningModel: false\n };\n }\n if (modelId.startsWith(\"o\") || modelId.startsWith(\"gpt-5\") || modelId.startsWith(\"codex-\") || modelId.startsWith(\"computer-use\")) {\n if (modelId.startsWith(\"o1-mini\") || modelId.startsWith(\"o1-preview\")) {\n return {\n ...defaults,\n isReasoningModel: true,\n systemMessageMode: \"remove\"\n };\n }\n return {\n ...defaults,\n isReasoningModel: true,\n systemMessageMode: \"developer\"\n };\n }\n return {\n ...defaults,\n isReasoningModel: false\n };\n}\nfunction mapWebSearchOutput(action) {\n var _a;\n switch (action.type) {\n case \"search\":\n return {\n action: { type: \"search\", query: (_a = action.query) != null ? _a : void 0 },\n // include sources when provided by the Responses API (behind include flag)\n ...action.sources != null && { sources: action.sources }\n };\n case \"open_page\":\n return { action: { type: \"openPage\", url: action.url } };\n case \"find\":\n return {\n action: { type: \"find\", url: action.url, pattern: action.pattern }\n };\n }\n}\n\n// src/speech/openai-speech-model.ts\nimport {\n combineHeaders as combineHeaders6,\n createBinaryResponseHandler,\n parseProviderOptions as parseProviderOptions6,\n postJsonToApi as postJsonToApi6\n} from \"@ai-sdk/provider-utils\";\n\n// src/speech/openai-speech-options.ts\nimport {\n lazyValidator as lazyValidator10,\n zodSchema as zodSchema16\n} from \"@ai-sdk/provider-utils\";\nimport { z as z18 } from \"zod/v4\";\nvar openaiSpeechProviderOptionsSchema = lazyValidator10(\n () => zodSchema16(\n z18.object({\n instructions: z18.string().nullish(),\n speed: z18.number().min(0.25).max(4).default(1).nullish()\n })\n )\n);\n\n// src/speech/openai-speech-model.ts\nvar OpenAISpeechModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v2\";\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n text,\n voice = \"alloy\",\n outputFormat = \"mp3\",\n speed,\n instructions,\n language,\n providerOptions\n }) {\n const warnings = [];\n const openAIOptions = await parseProviderOptions6({\n provider: \"openai\",\n providerOptions,\n schema: openaiSpeechProviderOptionsSchema\n });\n const requestBody = {\n model: this.modelId,\n input: text,\n voice,\n response_format: \"mp3\",\n speed,\n instructions\n };\n if (outputFormat) {\n if ([\"mp3\", \"opus\", \"aac\", \"flac\", \"wav\", \"pcm\"].includes(outputFormat)) {\n requestBody.response_format = outputFormat;\n } else {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"outputFormat\",\n details: `Unsupported output format: ${outputFormat}. Using mp3 instead.`\n });\n }\n }\n if (openAIOptions) {\n const speechModelOptions = {};\n for (const key in speechModelOptions) {\n const value = speechModelOptions[key];\n if (value !== void 0) {\n requestBody[key] = value;\n }\n }\n }\n if (language) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"language\",\n details: `OpenAI speech models do not support language selection. Language parameter \"${language}\" was ignored.`\n });\n }\n return {\n requestBody,\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const { requestBody, warnings } = await this.getArgs(options);\n const {\n value: audio,\n responseHeaders,\n rawValue: rawResponse\n } = await postJsonToApi6({\n url: this.config.url({\n path: \"/audio/speech\",\n modelId: this.modelId\n }),\n headers: combineHeaders6(this.config.headers(), options.headers),\n body: requestBody,\n failedResponseHandler: openaiFailedResponseHandler,\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n return {\n audio,\n warnings,\n request: {\n body: JSON.stringify(requestBody)\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse\n }\n };\n }\n};\n\n// src/transcription/openai-transcription-model.ts\nimport {\n combineHeaders as combineHeaders7,\n convertBase64ToUint8Array,\n createJsonResponseHandler as createJsonResponseHandler6,\n mediaTypeToExtension,\n parseProviderOptions as parseProviderOptions7,\n postFormDataToApi\n} from \"@ai-sdk/provider-utils\";\n\n// src/transcription/openai-transcription-api.ts\nimport { lazyValidator as lazyValidator11, zodSchema as zodSchema17 } from \"@ai-sdk/provider-utils\";\nimport { z as z19 } from \"zod/v4\";\nvar openaiTranscriptionResponseSchema = lazyValidator11(\n () => zodSchema17(\n z19.object({\n text: z19.string(),\n language: z19.string().nullish(),\n duration: z19.number().nullish(),\n words: z19.array(\n z19.object({\n word: z19.string(),\n start: z19.number(),\n end: z19.number()\n })\n ).nullish(),\n segments: z19.array(\n z19.object({\n id: z19.number(),\n seek: z19.number(),\n start: z19.number(),\n end: z19.number(),\n text: z19.string(),\n tokens: z19.array(z19.number()),\n temperature: z19.number(),\n avg_logprob: z19.number(),\n compression_ratio: z19.number(),\n no_speech_prob: z19.number()\n })\n ).nullish()\n })\n )\n);\n\n// src/transcription/openai-transcription-options.ts\nimport {\n lazyValidator as lazyValidator12,\n zodSchema as zodSchema18\n} from \"@ai-sdk/provider-utils\";\nimport { z as z20 } from \"zod/v4\";\nvar openAITranscriptionProviderOptions = lazyValidator12(\n () => zodSchema18(\n z20.object({\n /**\n * Additional information to include in the transcription response.\n */\n include: z20.array(z20.string()).optional(),\n /**\n * The language of the input audio in ISO-639-1 format.\n */\n language: z20.string().optional(),\n /**\n * An optional text to guide the model's style or continue a previous audio segment.\n */\n prompt: z20.string().optional(),\n /**\n * The sampling temperature, between 0 and 1.\n * @default 0\n */\n temperature: z20.number().min(0).max(1).default(0).optional(),\n /**\n * The timestamp granularities to populate for this transcription.\n * @default ['segment']\n */\n timestampGranularities: z20.array(z20.enum([\"word\", \"segment\"])).default([\"segment\"]).optional()\n })\n )\n);\n\n// src/transcription/openai-transcription-model.ts\nvar languageMap = {\n afrikaans: \"af\",\n arabic: \"ar\",\n armenian: \"hy\",\n azerbaijani: \"az\",\n belarusian: \"be\",\n bosnian: \"bs\",\n bulgarian: \"bg\",\n catalan: \"ca\",\n chinese: \"zh\",\n croatian: \"hr\",\n czech: \"cs\",\n danish: \"da\",\n dutch: \"nl\",\n english: \"en\",\n estonian: \"et\",\n finnish: \"fi\",\n french: \"fr\",\n galician: \"gl\",\n german: \"de\",\n greek: \"el\",\n hebrew: \"he\",\n hindi: \"hi\",\n hungarian: \"hu\",\n icelandic: \"is\",\n indonesian: \"id\",\n italian: \"it\",\n japanese: \"ja\",\n kannada: \"kn\",\n kazakh: \"kk\",\n korean: \"ko\",\n latvian: \"lv\",\n lithuanian: \"lt\",\n macedonian: \"mk\",\n malay: \"ms\",\n marathi: \"mr\",\n maori: \"mi\",\n nepali: \"ne\",\n norwegian: \"no\",\n persian: \"fa\",\n polish: \"pl\",\n portuguese: \"pt\",\n romanian: \"ro\",\n russian: \"ru\",\n serbian: \"sr\",\n slovak: \"sk\",\n slovenian: \"sl\",\n spanish: \"es\",\n swahili: \"sw\",\n swedish: \"sv\",\n tagalog: \"tl\",\n tamil: \"ta\",\n thai: \"th\",\n turkish: \"tr\",\n ukrainian: \"uk\",\n urdu: \"ur\",\n vietnamese: \"vi\",\n welsh: \"cy\"\n};\nvar OpenAITranscriptionModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v2\";\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n audio,\n mediaType,\n providerOptions\n }) {\n const warnings = [];\n const openAIOptions = await parseProviderOptions7({\n provider: \"openai\",\n providerOptions,\n schema: openAITranscriptionProviderOptions\n });\n const formData = new FormData();\n const blob = audio instanceof Uint8Array ? new Blob([audio]) : new Blob([convertBase64ToUint8Array(audio)]);\n formData.append(\"model\", this.modelId);\n const fileExtension = mediaTypeToExtension(mediaType);\n formData.append(\n \"file\",\n new File([blob], \"audio\", { type: mediaType }),\n `audio.${fileExtension}`\n );\n if (openAIOptions) {\n const transcriptionModelOptions = {\n include: openAIOptions.include,\n language: openAIOptions.language,\n prompt: openAIOptions.prompt,\n // https://platform.openai.com/docs/api-reference/audio/createTranscription#audio_createtranscription-response_format\n // prefer verbose_json to get segments for models that support it\n response_format: [\n \"gpt-4o-transcribe\",\n \"gpt-4o-mini-transcribe\"\n ].includes(this.modelId) ? \"json\" : \"verbose_json\",\n temperature: openAIOptions.temperature,\n timestamp_granularities: openAIOptions.timestampGranularities\n };\n for (const [key, value] of Object.entries(transcriptionModelOptions)) {\n if (value != null) {\n if (Array.isArray(value)) {\n for (const item of value) {\n formData.append(`${key}[]`, String(item));\n }\n } else {\n formData.append(key, String(value));\n }\n }\n }\n }\n return {\n formData,\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const { formData, warnings } = await this.getArgs(options);\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse\n } = await postFormDataToApi({\n url: this.config.url({\n path: \"/audio/transcriptions\",\n modelId: this.modelId\n }),\n headers: combineHeaders7(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: openaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler6(\n openaiTranscriptionResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const language = response.language != null && response.language in languageMap ? languageMap[response.language] : void 0;\n return {\n text: response.text,\n segments: (_g = (_f = (_d = response.segments) == null ? void 0 : _d.map((segment) => ({\n text: segment.text,\n startSecond: segment.start,\n endSecond: segment.end\n }))) != null ? _f : (_e = response.words) == null ? void 0 : _e.map((word) => ({\n text: word.word,\n startSecond: word.start,\n endSecond: word.end\n }))) != null ? _g : [],\n language,\n durationInSeconds: (_h = response.duration) != null ? _h : void 0,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse\n }\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"2.0.59\" : \"0.0.0-test\";\n\n// src/openai-provider.ts\nfunction createOpenAI(options = {}) {\n var _a, _b;\n const baseURL = (_a = withoutTrailingSlash(\n loadOptionalSetting({\n settingValue: options.baseURL,\n environmentVariableName: \"OPENAI_BASE_URL\"\n })\n )) != null ? _a : \"https://api.openai.com/v1\";\n const providerName = (_b = options.name) != null ? _b : \"openai\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"OPENAI_API_KEY\",\n description: \"OpenAI\"\n })}`,\n \"OpenAI-Organization\": options.organization,\n \"OpenAI-Project\": options.project,\n ...options.headers\n },\n `ai-sdk/openai/${VERSION}`\n );\n const createChatModel = (modelId) => new OpenAIChatLanguageModel(modelId, {\n provider: `${providerName}.chat`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createCompletionModel = (modelId) => new OpenAICompletionLanguageModel(modelId, {\n provider: `${providerName}.completion`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createEmbeddingModel = (modelId) => new OpenAIEmbeddingModel(modelId, {\n provider: `${providerName}.embedding`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createImageModel = (modelId) => new OpenAIImageModel(modelId, {\n provider: `${providerName}.image`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createTranscriptionModel = (modelId) => new OpenAITranscriptionModel(modelId, {\n provider: `${providerName}.transcription`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createSpeechModel = (modelId) => new OpenAISpeechModel(modelId, {\n provider: `${providerName}.speech`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createLanguageModel = (modelId) => {\n if (new.target) {\n throw new Error(\n \"The OpenAI model function cannot be called with the new keyword.\"\n );\n }\n return createResponsesModel(modelId);\n };\n const createResponsesModel = (modelId) => {\n return new OpenAIResponsesLanguageModel(modelId, {\n provider: `${providerName}.responses`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n fileIdPrefixes: [\"file-\"]\n });\n };\n const provider = function(modelId) {\n return createLanguageModel(modelId);\n };\n provider.languageModel = createLanguageModel;\n provider.chat = createChatModel;\n provider.completion = createCompletionModel;\n provider.responses = createResponsesModel;\n provider.embedding = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n provider.speech = createSpeechModel;\n provider.speechModel = createSpeechModel;\n provider.tools = openaiTools;\n return provider;\n}\nvar openai = createOpenAI();\nexport {\n VERSION,\n createOpenAI,\n openai\n};\n//# sourceMappingURL=index.mjs.map",
|
|
9
|
-
"/**\n * OpenAI Provider\n */\n\nimport { openai } from '@ai-sdk/openai';\nimport type { LanguageModelV1 } from 'ai';\nimport type { AIProvider, ProviderModelDetails, ConfigField, ProviderConfig, ModelInfo } from './base-provider.js';\n\nimport { getModelMetadata } from '../utils/models-dev.js';\n\nconst OPENAI_MODELS: ModelInfo[] = [\n { id: 'gpt-4o', name: 'GPT-4o' },\n { id: 'gpt-4o-mini', name: 'GPT-4o Mini' },\n { id: 'gpt-4-turbo', name: 'GPT-4 Turbo' },\n { id: 'gpt-4', name: 'GPT-4' },\n { id: 'gpt-3.5-turbo', name: 'GPT-3.5 Turbo' },\n];\n\nconst MODEL_DETAILS: Record<string, ProviderModelDetails> = {\n 'gpt-4o': {\n contextLength: 128000,\n maxOutput: 16384,\n },\n 'gpt-4o-mini': {\n contextLength: 128000,\n maxOutput: 16384,\n },\n 'gpt-4-turbo': {\n contextLength: 128000,\n maxOutput: 4096,\n },\n 'gpt-4': {\n contextLength: 8192,\n maxOutput: 8192,\n },\n 'gpt-3.5-turbo': {\n contextLength: 16384,\n maxOutput: 4096,\n },\n};\n\nexport class OpenAIProvider implements AIProvider {\n readonly id = 'openai' as const;\n readonly name = 'OpenAI';\n\n getConfigSchema(): ConfigField[] {\n return [\n {\n key: 'api-key',\n label: 'API Key',\n type: 'string',\n required: true,\n secret: true,\n description: 'Get your API key from https://platform.openai.com',\n placeholder: 'sk-...',\n },\n {\n key: 'base-url',\n label: 'Base URL',\n type: 'string',\n required: false,\n description: 'Custom API endpoint (for Azure OpenAI, etc.)',\n placeholder: 'https://api.openai.com/v1',\n },\n ];\n }\n\n isConfigured(config: ProviderConfig): boolean {\n return !!config['api-key'];\n }\n\n async fetchModels(config: ProviderConfig): Promise<ModelInfo[]> {\n const apiKey = config['api-key'] as string | undefined;\n if (!apiKey) {\n // No API key - return known models (can't fetch from API without auth)\n return OPENAI_MODELS;\n }\n\n const baseUrl = (config['base-url'] as string) || 'https://api.openai.com/v1';\n const response = await fetch(`${baseUrl}/models`, {\n headers: { Authorization: `Bearer ${apiKey}` },\n signal: AbortSignal.timeout(10000),\n });\n\n if (!response.ok) {\n throw new Error(`OpenAI API returned ${response.status}: ${response.statusText}`);\n }\n\n const data = (await response.json()) as { data: Array<{ id: string }> };\n const models = data.data\n .filter((model) => model.id.startsWith('gpt-'))\n .map((model) => ({\n id: model.id,\n name: model.id,\n }));\n\n if (models.length === 0) {\n throw new Error('No GPT models found in OpenAI API response');\n }\n\n return models;\n }\n\n async getModelDetails(modelId: string, _config?: ProviderConfig): Promise<ProviderModelDetails | null> {\n // Try provider knowledge first\n if (MODEL_DETAILS[modelId]) {\n return MODEL_DETAILS[modelId];\n }\n\n // Fall back to models.dev\n const metadata = await getModelMetadata(modelId);\n if (metadata) {\n return {\n contextLength: metadata.contextLength,\n maxOutput: metadata.maxOutput,\n inputPrice: metadata.inputPrice,\n outputPrice: metadata.outputPrice,\n };\n }\n\n return null;\n }\n\n createClient(config: ProviderConfig, modelId: string): LanguageModelV1 {\n const apiKey = config['api-key'] as string;\n const baseUrl = config['base-url'] as string | undefined;\n return openai(modelId, { apiKey, baseURL: baseUrl });\n }\n}\n",
|
|
10
|
-
"// src/google-provider.ts\nimport {\n generateId as generateId2,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"2.0.26\" : \"0.0.0-test\";\n\n// src/google-generative-ai-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createJsonResponseHandler,\n lazySchema as lazySchema3,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/google-error.ts\nimport {\n createJsonErrorResponseHandler,\n lazySchema,\n zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar googleErrorDataSchema = lazySchema(\n () => zodSchema(\n z.object({\n error: z.object({\n code: z.number().nullable(),\n message: z.string(),\n status: z.string()\n })\n })\n )\n);\nvar googleFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: googleErrorDataSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/google-generative-ai-embedding-options.ts\nimport {\n lazySchema as lazySchema2,\n zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar googleGenerativeAIEmbeddingProviderOptions = lazySchema2(\n () => zodSchema2(\n z2.object({\n /**\n * Optional. Optional reduced dimension for the output embedding.\n * If set, excessive values in the output embedding are truncated from the end.\n */\n outputDimensionality: z2.number().optional(),\n /**\n * Optional. Specifies the task type for generating embeddings.\n * Supported task types:\n * - SEMANTIC_SIMILARITY: Optimized for text similarity.\n * - CLASSIFICATION: Optimized for text classification.\n * - CLUSTERING: Optimized for clustering texts based on similarity.\n * - RETRIEVAL_DOCUMENT: Optimized for document retrieval.\n * - RETRIEVAL_QUERY: Optimized for query-based retrieval.\n * - QUESTION_ANSWERING: Optimized for answering questions.\n * - FACT_VERIFICATION: Optimized for verifying factual information.\n * - CODE_RETRIEVAL_QUERY: Optimized for retrieving code blocks based on natural language queries.\n */\n taskType: z2.enum([\n \"SEMANTIC_SIMILARITY\",\n \"CLASSIFICATION\",\n \"CLUSTERING\",\n \"RETRIEVAL_DOCUMENT\",\n \"RETRIEVAL_QUERY\",\n \"QUESTION_ANSWERING\",\n \"FACT_VERIFICATION\",\n \"CODE_RETRIEVAL_QUERY\"\n ]).optional()\n })\n )\n);\n\n// src/google-generative-ai-embedding-model.ts\nvar GoogleGenerativeAIEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v2\";\n this.maxEmbeddingsPerCall = 2048;\n this.supportsParallelCalls = true;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions\n }) {\n const googleOptions = await parseProviderOptions({\n provider: \"google\",\n providerOptions,\n schema: googleGenerativeAIEmbeddingProviderOptions\n });\n if (values.length > this.maxEmbeddingsPerCall) {\n throw new TooManyEmbeddingValuesForCallError({\n provider: this.provider,\n modelId: this.modelId,\n maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n values\n });\n }\n const mergedHeaders = combineHeaders(\n await resolve(this.config.headers),\n headers\n );\n if (values.length === 1) {\n const {\n responseHeaders: responseHeaders2,\n value: response2,\n rawValue: rawValue2\n } = await postJsonToApi({\n url: `${this.config.baseURL}/models/${this.modelId}:embedContent`,\n headers: mergedHeaders,\n body: {\n model: `models/${this.modelId}`,\n content: {\n parts: [{ text: values[0] }]\n },\n outputDimensionality: googleOptions == null ? void 0 : googleOptions.outputDimensionality,\n taskType: googleOptions == null ? void 0 : googleOptions.taskType\n },\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n googleGenerativeAISingleEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n embeddings: [response2.embedding.values],\n usage: void 0,\n response: { headers: responseHeaders2, body: rawValue2 }\n };\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi({\n url: `${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,\n headers: mergedHeaders,\n body: {\n requests: values.map((value) => ({\n model: `models/${this.modelId}`,\n content: { role: \"user\", parts: [{ text: value }] },\n outputDimensionality: googleOptions == null ? void 0 : googleOptions.outputDimensionality,\n taskType: googleOptions == null ? void 0 : googleOptions.taskType\n }))\n },\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n googleGenerativeAITextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n embeddings: response.embeddings.map((item) => item.values),\n usage: void 0,\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar googleGenerativeAITextEmbeddingResponseSchema = lazySchema3(\n () => zodSchema3(\n z3.object({\n embeddings: z3.array(z3.object({ values: z3.array(z3.number()) }))\n })\n )\n);\nvar googleGenerativeAISingleEmbeddingResponseSchema = lazySchema3(\n () => zodSchema3(\n z3.object({\n embedding: z3.object({ values: z3.array(z3.number()) })\n })\n )\n);\n\n// src/google-generative-ai-language-model.ts\nimport {\n combineHeaders as combineHeaders2,\n createEventSourceResponseHandler,\n createJsonResponseHandler as createJsonResponseHandler2,\n generateId,\n lazySchema as lazySchema5,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2,\n resolve as resolve2,\n zodSchema as zodSchema5\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/convert-json-schema-to-openapi-schema.ts\nfunction convertJSONSchemaToOpenAPISchema(jsonSchema) {\n if (jsonSchema == null || isEmptyObjectSchema(jsonSchema)) {\n return void 0;\n }\n if (typeof jsonSchema === \"boolean\") {\n return { type: \"boolean\", properties: {} };\n }\n const {\n type,\n description,\n required,\n properties,\n items,\n allOf,\n anyOf,\n oneOf,\n format,\n const: constValue,\n minLength,\n enum: enumValues\n } = jsonSchema;\n const result = {};\n if (description) result.description = description;\n if (required) result.required = required;\n if (format) result.format = format;\n if (constValue !== void 0) {\n result.enum = [constValue];\n }\n if (type) {\n if (Array.isArray(type)) {\n if (type.includes(\"null\")) {\n result.type = type.filter((t) => t !== \"null\")[0];\n result.nullable = true;\n } else {\n result.type = type;\n }\n } else if (type === \"null\") {\n result.type = \"null\";\n } else {\n result.type = type;\n }\n }\n if (enumValues !== void 0) {\n result.enum = enumValues;\n }\n if (properties != null) {\n result.properties = Object.entries(properties).reduce(\n (acc, [key, value]) => {\n acc[key] = convertJSONSchemaToOpenAPISchema(value);\n return acc;\n },\n {}\n );\n }\n if (items) {\n result.items = Array.isArray(items) ? items.map(convertJSONSchemaToOpenAPISchema) : convertJSONSchemaToOpenAPISchema(items);\n }\n if (allOf) {\n result.allOf = allOf.map(convertJSONSchemaToOpenAPISchema);\n }\n if (anyOf) {\n if (anyOf.some(\n (schema) => typeof schema === \"object\" && (schema == null ? void 0 : schema.type) === \"null\"\n )) {\n const nonNullSchemas = anyOf.filter(\n (schema) => !(typeof schema === \"object\" && (schema == null ? void 0 : schema.type) === \"null\")\n );\n if (nonNullSchemas.length === 1) {\n const converted = convertJSONSchemaToOpenAPISchema(nonNullSchemas[0]);\n if (typeof converted === \"object\") {\n result.nullable = true;\n Object.assign(result, converted);\n }\n } else {\n result.anyOf = nonNullSchemas.map(convertJSONSchemaToOpenAPISchema);\n result.nullable = true;\n }\n } else {\n result.anyOf = anyOf.map(convertJSONSchemaToOpenAPISchema);\n }\n }\n if (oneOf) {\n result.oneOf = oneOf.map(convertJSONSchemaToOpenAPISchema);\n }\n if (minLength !== void 0) {\n result.minLength = minLength;\n }\n return result;\n}\nfunction isEmptyObjectSchema(jsonSchema) {\n return jsonSchema != null && typeof jsonSchema === \"object\" && jsonSchema.type === \"object\" && (jsonSchema.properties == null || Object.keys(jsonSchema.properties).length === 0) && !jsonSchema.additionalProperties;\n}\n\n// src/convert-to-google-generative-ai-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction convertToGoogleGenerativeAIMessages(prompt, options) {\n var _a;\n const systemInstructionParts = [];\n const contents = [];\n let systemMessagesAllowed = true;\n const isGemmaModel = (_a = options == null ? void 0 : options.isGemmaModel) != null ? _a : false;\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n if (!systemMessagesAllowed) {\n throw new UnsupportedFunctionalityError({\n functionality: \"system messages are only supported at the beginning of the conversation\"\n });\n }\n systemInstructionParts.push({ text: content });\n break;\n }\n case \"user\": {\n systemMessagesAllowed = false;\n const parts = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n parts.push({ text: part.text });\n break;\n }\n case \"file\": {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n parts.push(\n part.data instanceof URL ? {\n fileData: {\n mimeType: mediaType,\n fileUri: part.data.toString()\n }\n } : {\n inlineData: {\n mimeType: mediaType,\n data: convertToBase64(part.data)\n }\n }\n );\n break;\n }\n }\n }\n contents.push({ role: \"user\", parts });\n break;\n }\n case \"assistant\": {\n systemMessagesAllowed = false;\n contents.push({\n role: \"model\",\n parts: content.map((part) => {\n var _a2, _b, _c, _d, _e, _f;\n switch (part.type) {\n case \"text\": {\n return part.text.length === 0 ? void 0 : {\n text: part.text,\n thoughtSignature: (_b = (_a2 = part.providerOptions) == null ? void 0 : _a2.google) == null ? void 0 : _b.thoughtSignature\n };\n }\n case \"reasoning\": {\n return part.text.length === 0 ? void 0 : {\n text: part.text,\n thought: true,\n thoughtSignature: (_d = (_c = part.providerOptions) == null ? void 0 : _c.google) == null ? void 0 : _d.thoughtSignature\n };\n }\n case \"file\": {\n if (part.mediaType !== \"image/png\") {\n throw new UnsupportedFunctionalityError({\n functionality: \"Only PNG images are supported in assistant messages\"\n });\n }\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality: \"File data URLs in assistant messages are not supported\"\n });\n }\n return {\n inlineData: {\n mimeType: part.mediaType,\n data: convertToBase64(part.data)\n }\n };\n }\n case \"tool-call\": {\n return {\n functionCall: {\n name: part.toolName,\n args: part.input\n },\n thoughtSignature: (_f = (_e = part.providerOptions) == null ? void 0 : _e.google) == null ? void 0 : _f.thoughtSignature\n };\n }\n }\n }).filter((part) => part !== void 0)\n });\n break;\n }\n case \"tool\": {\n systemMessagesAllowed = false;\n const parts = [];\n for (const part of content) {\n const output = part.output;\n if (output.type === \"content\") {\n for (const contentPart of output.value) {\n switch (contentPart.type) {\n case \"text\":\n parts.push({\n functionResponse: {\n name: part.toolName,\n response: {\n name: part.toolName,\n content: contentPart.text\n }\n }\n });\n break;\n case \"media\":\n parts.push(\n {\n inlineData: {\n mimeType: contentPart.mediaType,\n data: contentPart.data\n }\n },\n {\n text: \"Tool executed successfully and returned this image as a response\"\n }\n );\n break;\n default:\n parts.push({ text: JSON.stringify(contentPart) });\n break;\n }\n }\n } else {\n parts.push({\n functionResponse: {\n name: part.toolName,\n response: {\n name: part.toolName,\n content: output.value\n }\n }\n });\n }\n }\n contents.push({\n role: \"user\",\n parts\n });\n break;\n }\n }\n }\n if (isGemmaModel && systemInstructionParts.length > 0 && contents.length > 0 && contents[0].role === \"user\") {\n const systemText = systemInstructionParts.map((part) => part.text).join(\"\\n\\n\");\n contents[0].parts.unshift({ text: systemText + \"\\n\\n\" });\n }\n return {\n systemInstruction: systemInstructionParts.length > 0 && !isGemmaModel ? { parts: systemInstructionParts } : void 0,\n contents\n };\n}\n\n// src/get-model-path.ts\nfunction getModelPath(modelId) {\n return modelId.includes(\"/\") ? modelId : `models/${modelId}`;\n}\n\n// src/google-generative-ai-options.ts\nimport {\n lazySchema as lazySchema4,\n zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar googleGenerativeAIProviderOptions = lazySchema4(\n () => zodSchema4(\n z4.object({\n responseModalities: z4.array(z4.enum([\"TEXT\", \"IMAGE\"])).optional(),\n thinkingConfig: z4.object({\n thinkingBudget: z4.number().optional(),\n includeThoughts: z4.boolean().optional()\n }).optional(),\n /**\n * Optional.\n * The name of the cached content used as context to serve the prediction.\n * Format: cachedContents/{cachedContent}\n */\n cachedContent: z4.string().optional(),\n /**\n * Optional. Enable structured output. Default is true.\n *\n * This is useful when the JSON Schema contains elements that are\n * not supported by the OpenAPI schema version that\n * Google Generative AI uses. You can use this to disable\n * structured outputs if you need to.\n */\n structuredOutputs: z4.boolean().optional(),\n /**\n * Optional. A list of unique safety settings for blocking unsafe content.\n */\n safetySettings: z4.array(\n z4.object({\n category: z4.enum([\n \"HARM_CATEGORY_UNSPECIFIED\",\n \"HARM_CATEGORY_HATE_SPEECH\",\n \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n \"HARM_CATEGORY_HARASSMENT\",\n \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n \"HARM_CATEGORY_CIVIC_INTEGRITY\"\n ]),\n threshold: z4.enum([\n \"HARM_BLOCK_THRESHOLD_UNSPECIFIED\",\n \"BLOCK_LOW_AND_ABOVE\",\n \"BLOCK_MEDIUM_AND_ABOVE\",\n \"BLOCK_ONLY_HIGH\",\n \"BLOCK_NONE\",\n \"OFF\"\n ])\n })\n ).optional(),\n threshold: z4.enum([\n \"HARM_BLOCK_THRESHOLD_UNSPECIFIED\",\n \"BLOCK_LOW_AND_ABOVE\",\n \"BLOCK_MEDIUM_AND_ABOVE\",\n \"BLOCK_ONLY_HIGH\",\n \"BLOCK_NONE\",\n \"OFF\"\n ]).optional(),\n /**\n * Optional. Enables timestamp understanding for audio-only files.\n *\n * https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/audio-understanding\n */\n audioTimestamp: z4.boolean().optional(),\n /**\n * Optional. Defines labels used in billing reports. Available on Vertex AI only.\n *\n * https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/add-labels-to-api-calls\n */\n labels: z4.record(z4.string(), z4.string()).optional(),\n /**\n * Optional. If specified, the media resolution specified will be used.\n *\n * https://ai.google.dev/api/generate-content#MediaResolution\n */\n mediaResolution: z4.enum([\n \"MEDIA_RESOLUTION_UNSPECIFIED\",\n \"MEDIA_RESOLUTION_LOW\",\n \"MEDIA_RESOLUTION_MEDIUM\",\n \"MEDIA_RESOLUTION_HIGH\"\n ]).optional(),\n /**\n * Optional. Configures the image generation aspect ratio for Gemini models.\n *\n * https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios\n */\n imageConfig: z4.object({\n aspectRatio: z4.enum([\n \"1:1\",\n \"2:3\",\n \"3:2\",\n \"3:4\",\n \"4:3\",\n \"4:5\",\n \"5:4\",\n \"9:16\",\n \"16:9\",\n \"21:9\"\n ]).optional()\n }).optional()\n })\n )\n);\n\n// src/google-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice,\n modelId\n}) {\n var _a;\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n const isGemini2 = modelId.includes(\"gemini-2\");\n const supportsDynamicRetrieval = modelId.includes(\"gemini-1.5-flash\") && !modelId.includes(\"-8b\");\n if (tools == null) {\n return { tools: void 0, toolConfig: void 0, toolWarnings };\n }\n const hasFunctionTools = tools.some((tool) => tool.type === \"function\");\n const hasProviderDefinedTools = tools.some(\n (tool) => tool.type === \"provider-defined\"\n );\n if (hasFunctionTools && hasProviderDefinedTools) {\n toolWarnings.push({\n type: \"unsupported-tool\",\n tool: tools.find((tool) => tool.type === \"function\"),\n details: \"Cannot mix function tools with provider-defined tools in the same request. Please use either function tools or provider-defined tools, but not both.\"\n });\n }\n if (hasProviderDefinedTools) {\n const googleTools2 = [];\n const providerDefinedTools = tools.filter(\n (tool) => tool.type === \"provider-defined\"\n );\n providerDefinedTools.forEach((tool) => {\n switch (tool.id) {\n case \"google.google_search\":\n if (isGemini2) {\n googleTools2.push({ googleSearch: {} });\n } else if (supportsDynamicRetrieval) {\n googleTools2.push({\n googleSearchRetrieval: {\n dynamicRetrievalConfig: {\n mode: tool.args.mode,\n dynamicThreshold: tool.args.dynamicThreshold\n }\n }\n });\n } else {\n googleTools2.push({ googleSearchRetrieval: {} });\n }\n break;\n case \"google.url_context\":\n if (isGemini2) {\n googleTools2.push({ urlContext: {} });\n } else {\n toolWarnings.push({\n type: \"unsupported-tool\",\n tool,\n details: \"The URL context tool is not supported with other Gemini models than Gemini 2.\"\n });\n }\n break;\n case \"google.code_execution\":\n if (isGemini2) {\n googleTools2.push({ codeExecution: {} });\n } else {\n toolWarnings.push({\n type: \"unsupported-tool\",\n tool,\n details: \"The code execution tools is not supported with other Gemini models than Gemini 2.\"\n });\n }\n break;\n default:\n toolWarnings.push({ type: \"unsupported-tool\", tool });\n break;\n }\n });\n return {\n tools: googleTools2.length > 0 ? googleTools2 : void 0,\n toolConfig: void 0,\n toolWarnings\n };\n }\n const functionDeclarations = [];\n for (const tool of tools) {\n switch (tool.type) {\n case \"function\":\n functionDeclarations.push({\n name: tool.name,\n description: (_a = tool.description) != null ? _a : \"\",\n parameters: convertJSONSchemaToOpenAPISchema(tool.inputSchema)\n });\n break;\n default:\n toolWarnings.push({ type: \"unsupported-tool\", tool });\n break;\n }\n }\n if (toolChoice == null) {\n return {\n tools: { functionDeclarations },\n toolConfig: void 0,\n toolWarnings\n };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n return {\n tools: { functionDeclarations },\n toolConfig: { functionCallingConfig: { mode: \"AUTO\" } },\n toolWarnings\n };\n case \"none\":\n return {\n tools: { functionDeclarations },\n toolConfig: { functionCallingConfig: { mode: \"NONE\" } },\n toolWarnings\n };\n case \"required\":\n return {\n tools: { functionDeclarations },\n toolConfig: { functionCallingConfig: { mode: \"ANY\" } },\n toolWarnings\n };\n case \"tool\":\n return {\n tools: { functionDeclarations },\n toolConfig: {\n functionCallingConfig: {\n mode: \"ANY\",\n allowedFunctionNames: [toolChoice.toolName]\n }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/map-google-generative-ai-finish-reason.ts\nfunction mapGoogleGenerativeAIFinishReason({\n finishReason,\n hasToolCalls\n}) {\n switch (finishReason) {\n case \"STOP\":\n return hasToolCalls ? \"tool-calls\" : \"stop\";\n case \"MAX_TOKENS\":\n return \"length\";\n case \"IMAGE_SAFETY\":\n case \"RECITATION\":\n case \"SAFETY\":\n case \"BLOCKLIST\":\n case \"PROHIBITED_CONTENT\":\n case \"SPII\":\n return \"content-filter\";\n case \"FINISH_REASON_UNSPECIFIED\":\n case \"OTHER\":\n return \"other\";\n case \"MALFORMED_FUNCTION_CALL\":\n return \"error\";\n default:\n return \"unknown\";\n }\n}\n\n// src/google-generative-ai-language-model.ts\nvar GoogleGenerativeAILanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v2\";\n var _a;\n this.modelId = modelId;\n this.config = config;\n this.generateId = (_a = config.generateId) != null ? _a : generateId;\n }\n get provider() {\n return this.config.provider;\n }\n get supportedUrls() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.config).supportedUrls) == null ? void 0 : _b.call(_a)) != null ? _c : {};\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n tools,\n toolChoice,\n providerOptions\n }) {\n var _a, _b;\n const warnings = [];\n const googleOptions = await parseProviderOptions2({\n provider: \"google\",\n providerOptions,\n schema: googleGenerativeAIProviderOptions\n });\n if (((_a = googleOptions == null ? void 0 : googleOptions.thinkingConfig) == null ? void 0 : _a.includeThoughts) === true && !this.config.provider.startsWith(\"google.vertex.\")) {\n warnings.push({\n type: \"other\",\n message: `The 'includeThoughts' option is only supported with the Google Vertex provider and might not be supported or could behave unexpectedly with the current Google provider (${this.config.provider}).`\n });\n }\n const isGemmaModel = this.modelId.toLowerCase().startsWith(\"gemma-\");\n const { contents, systemInstruction } = convertToGoogleGenerativeAIMessages(\n prompt,\n { isGemmaModel }\n );\n const {\n tools: googleTools2,\n toolConfig: googleToolConfig,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice,\n modelId: this.modelId\n });\n return {\n args: {\n generationConfig: {\n // standardized settings:\n maxOutputTokens,\n temperature,\n topK,\n topP,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n seed,\n // response format:\n responseMimeType: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? \"application/json\" : void 0,\n responseSchema: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && // Google GenAI does not support all OpenAPI Schema features,\n // so this is needed as an escape hatch:\n // TODO convert into provider option\n ((_b = googleOptions == null ? void 0 : googleOptions.structuredOutputs) != null ? _b : true) ? convertJSONSchemaToOpenAPISchema(responseFormat.schema) : void 0,\n ...(googleOptions == null ? void 0 : googleOptions.audioTimestamp) && {\n audioTimestamp: googleOptions.audioTimestamp\n },\n // provider options:\n responseModalities: googleOptions == null ? void 0 : googleOptions.responseModalities,\n thinkingConfig: googleOptions == null ? void 0 : googleOptions.thinkingConfig,\n ...(googleOptions == null ? void 0 : googleOptions.imageConfig) && {\n imageConfig: googleOptions.imageConfig\n },\n ...(googleOptions == null ? void 0 : googleOptions.mediaResolution) && {\n mediaResolution: googleOptions.mediaResolution\n }\n },\n contents,\n systemInstruction: isGemmaModel ? void 0 : systemInstruction,\n safetySettings: googleOptions == null ? void 0 : googleOptions.safetySettings,\n tools: googleTools2,\n toolConfig: googleToolConfig,\n cachedContent: googleOptions == null ? void 0 : googleOptions.cachedContent,\n labels: googleOptions == null ? void 0 : googleOptions.labels\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;\n const { args, warnings } = await this.getArgs(options);\n const body = JSON.stringify(args);\n const mergedHeaders = combineHeaders2(\n await resolve2(this.config.headers),\n options.headers\n );\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi2({\n url: `${this.config.baseURL}/${getModelPath(\n this.modelId\n )}:generateContent`,\n headers: mergedHeaders,\n body: args,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(responseSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const candidate = response.candidates[0];\n const content = [];\n const parts = (_b = (_a = candidate.content) == null ? void 0 : _a.parts) != null ? _b : [];\n const usageMetadata = response.usageMetadata;\n let lastCodeExecutionToolCallId;\n for (const part of parts) {\n if (\"executableCode\" in part && ((_c = part.executableCode) == null ? void 0 : _c.code)) {\n const toolCallId = this.config.generateId();\n lastCodeExecutionToolCallId = toolCallId;\n content.push({\n type: \"tool-call\",\n toolCallId,\n toolName: \"code_execution\",\n input: JSON.stringify(part.executableCode),\n providerExecuted: true\n });\n } else if (\"codeExecutionResult\" in part && part.codeExecutionResult) {\n content.push({\n type: \"tool-result\",\n // Assumes a result directly follows its corresponding call part.\n toolCallId: lastCodeExecutionToolCallId,\n toolName: \"code_execution\",\n result: {\n outcome: part.codeExecutionResult.outcome,\n output: part.codeExecutionResult.output\n },\n providerExecuted: true\n });\n lastCodeExecutionToolCallId = void 0;\n } else if (\"text\" in part && part.text != null && part.text.length > 0) {\n content.push({\n type: part.thought === true ? \"reasoning\" : \"text\",\n text: part.text,\n providerMetadata: part.thoughtSignature ? { google: { thoughtSignature: part.thoughtSignature } } : void 0\n });\n } else if (\"functionCall\" in part) {\n content.push({\n type: \"tool-call\",\n toolCallId: this.config.generateId(),\n toolName: part.functionCall.name,\n input: JSON.stringify(part.functionCall.args),\n providerMetadata: part.thoughtSignature ? { google: { thoughtSignature: part.thoughtSignature } } : void 0\n });\n } else if (\"inlineData\" in part) {\n content.push({\n type: \"file\",\n data: part.inlineData.data,\n mediaType: part.inlineData.mimeType\n });\n }\n }\n const sources = (_d = extractSources({\n groundingMetadata: candidate.groundingMetadata,\n generateId: this.config.generateId\n })) != null ? _d : [];\n for (const source of sources) {\n content.push(source);\n }\n return {\n content,\n finishReason: mapGoogleGenerativeAIFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls: content.some((part) => part.type === \"tool-call\")\n }),\n usage: {\n inputTokens: (_e = usageMetadata == null ? void 0 : usageMetadata.promptTokenCount) != null ? _e : void 0,\n outputTokens: (_f = usageMetadata == null ? void 0 : usageMetadata.candidatesTokenCount) != null ? _f : void 0,\n totalTokens: (_g = usageMetadata == null ? void 0 : usageMetadata.totalTokenCount) != null ? _g : void 0,\n reasoningTokens: (_h = usageMetadata == null ? void 0 : usageMetadata.thoughtsTokenCount) != null ? _h : void 0,\n cachedInputTokens: (_i = usageMetadata == null ? void 0 : usageMetadata.cachedContentTokenCount) != null ? _i : void 0\n },\n warnings,\n providerMetadata: {\n google: {\n promptFeedback: (_j = response.promptFeedback) != null ? _j : null,\n groundingMetadata: (_k = candidate.groundingMetadata) != null ? _k : null,\n urlContextMetadata: (_l = candidate.urlContextMetadata) != null ? _l : null,\n safetyRatings: (_m = candidate.safetyRatings) != null ? _m : null,\n usageMetadata: usageMetadata != null ? usageMetadata : null\n }\n },\n request: { body },\n response: {\n // TODO timestamp, model id, id\n headers: responseHeaders,\n body: rawResponse\n }\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const body = JSON.stringify(args);\n const headers = combineHeaders2(\n await resolve2(this.config.headers),\n options.headers\n );\n const { responseHeaders, value: response } = await postJsonToApi2({\n url: `${this.config.baseURL}/${getModelPath(\n this.modelId\n )}:streamGenerateContent?alt=sse`,\n headers,\n body: args,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(chunkSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = \"unknown\";\n const usage = {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0\n };\n let providerMetadata = void 0;\n const generateId3 = this.config.generateId;\n let hasToolCalls = false;\n let currentTextBlockId = null;\n let currentReasoningBlockId = null;\n let blockCounter = 0;\n const emittedSourceUrls = /* @__PURE__ */ new Set();\n let lastCodeExecutionToolCallId;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n const usageMetadata = value.usageMetadata;\n if (usageMetadata != null) {\n usage.inputTokens = (_a = usageMetadata.promptTokenCount) != null ? _a : void 0;\n usage.outputTokens = (_b = usageMetadata.candidatesTokenCount) != null ? _b : void 0;\n usage.totalTokens = (_c = usageMetadata.totalTokenCount) != null ? _c : void 0;\n usage.reasoningTokens = (_d = usageMetadata.thoughtsTokenCount) != null ? _d : void 0;\n usage.cachedInputTokens = (_e = usageMetadata.cachedContentTokenCount) != null ? _e : void 0;\n }\n const candidate = (_f = value.candidates) == null ? void 0 : _f[0];\n if (candidate == null) {\n return;\n }\n const content = candidate.content;\n const sources = extractSources({\n groundingMetadata: candidate.groundingMetadata,\n generateId: generateId3\n });\n if (sources != null) {\n for (const source of sources) {\n if (source.sourceType === \"url\" && !emittedSourceUrls.has(source.url)) {\n emittedSourceUrls.add(source.url);\n controller.enqueue(source);\n }\n }\n }\n if (content != null) {\n const parts = (_g = content.parts) != null ? _g : [];\n for (const part of parts) {\n if (\"executableCode\" in part && ((_h = part.executableCode) == null ? void 0 : _h.code)) {\n const toolCallId = generateId3();\n lastCodeExecutionToolCallId = toolCallId;\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName: \"code_execution\",\n input: JSON.stringify(part.executableCode),\n providerExecuted: true\n });\n hasToolCalls = true;\n } else if (\"codeExecutionResult\" in part && part.codeExecutionResult) {\n const toolCallId = lastCodeExecutionToolCallId;\n if (toolCallId) {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId,\n toolName: \"code_execution\",\n result: {\n outcome: part.codeExecutionResult.outcome,\n output: part.codeExecutionResult.output\n },\n providerExecuted: true\n });\n lastCodeExecutionToolCallId = void 0;\n }\n } else if (\"text\" in part && part.text != null && part.text.length > 0) {\n if (part.thought === true) {\n if (currentTextBlockId !== null) {\n controller.enqueue({\n type: \"text-end\",\n id: currentTextBlockId\n });\n currentTextBlockId = null;\n }\n if (currentReasoningBlockId === null) {\n currentReasoningBlockId = String(blockCounter++);\n controller.enqueue({\n type: \"reasoning-start\",\n id: currentReasoningBlockId,\n providerMetadata: part.thoughtSignature ? {\n google: {\n thoughtSignature: part.thoughtSignature\n }\n } : void 0\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: currentReasoningBlockId,\n delta: part.text,\n providerMetadata: part.thoughtSignature ? {\n google: { thoughtSignature: part.thoughtSignature }\n } : void 0\n });\n } else {\n if (currentReasoningBlockId !== null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: currentReasoningBlockId\n });\n currentReasoningBlockId = null;\n }\n if (currentTextBlockId === null) {\n currentTextBlockId = String(blockCounter++);\n controller.enqueue({\n type: \"text-start\",\n id: currentTextBlockId,\n providerMetadata: part.thoughtSignature ? {\n google: {\n thoughtSignature: part.thoughtSignature\n }\n } : void 0\n });\n }\n controller.enqueue({\n type: \"text-delta\",\n id: currentTextBlockId,\n delta: part.text,\n providerMetadata: part.thoughtSignature ? {\n google: { thoughtSignature: part.thoughtSignature }\n } : void 0\n });\n }\n }\n }\n const inlineDataParts = getInlineDataParts(content.parts);\n if (inlineDataParts != null) {\n for (const part of inlineDataParts) {\n controller.enqueue({\n type: \"file\",\n mediaType: part.inlineData.mimeType,\n data: part.inlineData.data\n });\n }\n }\n const toolCallDeltas = getToolCallsFromParts({\n parts: content.parts,\n generateId: generateId3\n });\n if (toolCallDeltas != null) {\n for (const toolCall of toolCallDeltas) {\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCall.toolCallId,\n toolName: toolCall.toolName,\n providerMetadata: toolCall.providerMetadata\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.toolCallId,\n delta: toolCall.args,\n providerMetadata: toolCall.providerMetadata\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.toolCallId,\n providerMetadata: toolCall.providerMetadata\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: toolCall.args,\n providerMetadata: toolCall.providerMetadata\n });\n hasToolCalls = true;\n }\n }\n }\n if (candidate.finishReason != null) {\n finishReason = mapGoogleGenerativeAIFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls\n });\n providerMetadata = {\n google: {\n promptFeedback: (_i = value.promptFeedback) != null ? _i : null,\n groundingMetadata: (_j = candidate.groundingMetadata) != null ? _j : null,\n urlContextMetadata: (_k = candidate.urlContextMetadata) != null ? _k : null,\n safetyRatings: (_l = candidate.safetyRatings) != null ? _l : null\n }\n };\n if (usageMetadata != null) {\n providerMetadata.google.usageMetadata = usageMetadata;\n }\n }\n },\n flush(controller) {\n if (currentTextBlockId !== null) {\n controller.enqueue({\n type: \"text-end\",\n id: currentTextBlockId\n });\n }\n if (currentReasoningBlockId !== null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: currentReasoningBlockId\n });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage,\n providerMetadata\n });\n }\n })\n ),\n response: { headers: responseHeaders },\n request: { body }\n };\n }\n};\nfunction getToolCallsFromParts({\n parts,\n generateId: generateId3\n}) {\n const functionCallParts = parts == null ? void 0 : parts.filter(\n (part) => \"functionCall\" in part\n );\n return functionCallParts == null || functionCallParts.length === 0 ? void 0 : functionCallParts.map((part) => ({\n type: \"tool-call\",\n toolCallId: generateId3(),\n toolName: part.functionCall.name,\n args: JSON.stringify(part.functionCall.args),\n providerMetadata: part.thoughtSignature ? { google: { thoughtSignature: part.thoughtSignature } } : void 0\n }));\n}\nfunction getInlineDataParts(parts) {\n return parts == null ? void 0 : parts.filter(\n (part) => \"inlineData\" in part\n );\n}\nfunction extractSources({\n groundingMetadata,\n generateId: generateId3\n}) {\n var _a;\n return (_a = groundingMetadata == null ? void 0 : groundingMetadata.groundingChunks) == null ? void 0 : _a.filter(\n (chunk) => chunk.web != null\n ).map((chunk) => ({\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: chunk.web.uri,\n title: chunk.web.title\n }));\n}\nvar getGroundingMetadataSchema = () => z5.object({\n webSearchQueries: z5.array(z5.string()).nullish(),\n retrievalQueries: z5.array(z5.string()).nullish(),\n searchEntryPoint: z5.object({ renderedContent: z5.string() }).nullish(),\n groundingChunks: z5.array(\n z5.object({\n web: z5.object({ uri: z5.string(), title: z5.string() }).nullish(),\n retrievedContext: z5.object({ uri: z5.string(), title: z5.string() }).nullish()\n })\n ).nullish(),\n groundingSupports: z5.array(\n z5.object({\n segment: z5.object({\n startIndex: z5.number().nullish(),\n endIndex: z5.number().nullish(),\n text: z5.string().nullish()\n }),\n segment_text: z5.string().nullish(),\n groundingChunkIndices: z5.array(z5.number()).nullish(),\n supportChunkIndices: z5.array(z5.number()).nullish(),\n confidenceScores: z5.array(z5.number()).nullish(),\n confidenceScore: z5.array(z5.number()).nullish()\n })\n ).nullish(),\n retrievalMetadata: z5.union([\n z5.object({\n webDynamicRetrievalScore: z5.number()\n }),\n z5.object({})\n ]).nullish()\n});\nvar getContentSchema = () => z5.object({\n parts: z5.array(\n z5.union([\n // note: order matters since text can be fully empty\n z5.object({\n functionCall: z5.object({\n name: z5.string(),\n args: z5.unknown()\n }),\n thoughtSignature: z5.string().nullish()\n }),\n z5.object({\n inlineData: z5.object({\n mimeType: z5.string(),\n data: z5.string()\n })\n }),\n z5.object({\n executableCode: z5.object({\n language: z5.string(),\n code: z5.string()\n }).nullish(),\n codeExecutionResult: z5.object({\n outcome: z5.string(),\n output: z5.string()\n }).nullish(),\n text: z5.string().nullish(),\n thought: z5.boolean().nullish(),\n thoughtSignature: z5.string().nullish()\n })\n ])\n ).nullish()\n});\nvar getSafetyRatingSchema = () => z5.object({\n category: z5.string().nullish(),\n probability: z5.string().nullish(),\n probabilityScore: z5.number().nullish(),\n severity: z5.string().nullish(),\n severityScore: z5.number().nullish(),\n blocked: z5.boolean().nullish()\n});\nvar usageSchema = z5.object({\n cachedContentTokenCount: z5.number().nullish(),\n thoughtsTokenCount: z5.number().nullish(),\n promptTokenCount: z5.number().nullish(),\n candidatesTokenCount: z5.number().nullish(),\n totalTokenCount: z5.number().nullish()\n});\nvar getUrlContextMetadataSchema = () => z5.object({\n urlMetadata: z5.array(\n z5.object({\n retrievedUrl: z5.string(),\n urlRetrievalStatus: z5.string()\n })\n )\n});\nvar responseSchema = lazySchema5(\n () => zodSchema5(\n z5.object({\n candidates: z5.array(\n z5.object({\n content: getContentSchema().nullish().or(z5.object({}).strict()),\n finishReason: z5.string().nullish(),\n safetyRatings: z5.array(getSafetyRatingSchema()).nullish(),\n groundingMetadata: getGroundingMetadataSchema().nullish(),\n urlContextMetadata: getUrlContextMetadataSchema().nullish()\n })\n ),\n usageMetadata: usageSchema.nullish(),\n promptFeedback: z5.object({\n blockReason: z5.string().nullish(),\n safetyRatings: z5.array(getSafetyRatingSchema()).nullish()\n }).nullish()\n })\n )\n);\nvar chunkSchema = lazySchema5(\n () => zodSchema5(\n z5.object({\n candidates: z5.array(\n z5.object({\n content: getContentSchema().nullish(),\n finishReason: z5.string().nullish(),\n safetyRatings: z5.array(getSafetyRatingSchema()).nullish(),\n groundingMetadata: getGroundingMetadataSchema().nullish(),\n urlContextMetadata: getUrlContextMetadataSchema().nullish()\n })\n ).nullish(),\n usageMetadata: usageSchema.nullish(),\n promptFeedback: z5.object({\n blockReason: z5.string().nullish(),\n safetyRatings: z5.array(getSafetyRatingSchema()).nullish()\n }).nullish()\n })\n )\n);\n\n// src/tool/code-execution.ts\nimport { createProviderDefinedToolFactoryWithOutputSchema } from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar codeExecution = createProviderDefinedToolFactoryWithOutputSchema({\n id: \"google.code_execution\",\n name: \"code_execution\",\n inputSchema: z6.object({\n language: z6.string().describe(\"The programming language of the code.\"),\n code: z6.string().describe(\"The code to be executed.\")\n }),\n outputSchema: z6.object({\n outcome: z6.string().describe('The outcome of the execution (e.g., \"OUTCOME_OK\").'),\n output: z6.string().describe(\"The output from the code execution.\")\n })\n});\n\n// src/tool/google-search.ts\nimport {\n createProviderDefinedToolFactory,\n lazySchema as lazySchema6,\n zodSchema as zodSchema6\n} from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\nvar googleSearch = createProviderDefinedToolFactory({\n id: \"google.google_search\",\n name: \"google_search\",\n inputSchema: lazySchema6(\n () => zodSchema6(\n z7.object({\n mode: z7.enum([\"MODE_DYNAMIC\", \"MODE_UNSPECIFIED\"]).default(\"MODE_UNSPECIFIED\"),\n dynamicThreshold: z7.number().default(1)\n })\n )\n )\n});\n\n// src/tool/url-context.ts\nimport {\n createProviderDefinedToolFactory as createProviderDefinedToolFactory2,\n lazySchema as lazySchema7,\n zodSchema as zodSchema7\n} from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar urlContext = createProviderDefinedToolFactory2({\n id: \"google.url_context\",\n name: \"url_context\",\n inputSchema: lazySchema7(() => zodSchema7(z8.object({})))\n});\n\n// src/google-tools.ts\nvar googleTools = {\n /**\n * Creates a Google search tool that gives Google direct access to real-time web content.\n * Must have name \"google_search\".\n */\n googleSearch,\n /**\n * Creates a URL context tool that gives Google direct access to real-time web content.\n * Must have name \"url_context\".\n */\n urlContext,\n /**\n * A tool that enables the model to generate and run Python code.\n * Must have name \"code_execution\".\n *\n * @note Ensure the selected model supports Code Execution.\n * Multi-tool usage with the code execution tool is typically compatible with Gemini >=2 models.\n *\n * @see https://ai.google.dev/gemini-api/docs/code-execution (Google AI)\n * @see https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/code-execution-api (Vertex AI)\n */\n codeExecution\n};\n\n// src/google-generative-ai-image-model.ts\nimport {\n combineHeaders as combineHeaders3,\n createJsonResponseHandler as createJsonResponseHandler3,\n lazySchema as lazySchema8,\n parseProviderOptions as parseProviderOptions3,\n postJsonToApi as postJsonToApi3,\n resolve as resolve3,\n zodSchema as zodSchema8\n} from \"@ai-sdk/provider-utils\";\nimport { z as z9 } from \"zod/v4\";\nvar GoogleGenerativeAIImageModel = class {\n constructor(modelId, settings, config) {\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n this.specificationVersion = \"v2\";\n }\n get maxImagesPerCall() {\n var _a;\n return (_a = this.settings.maxImagesPerCall) != null ? _a : 4;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate(options) {\n var _a, _b, _c;\n const {\n prompt,\n n = 1,\n size = \"1024x1024\",\n aspectRatio = \"1:1\",\n seed,\n providerOptions,\n headers,\n abortSignal\n } = options;\n const warnings = [];\n if (size != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"size\",\n details: \"This model does not support the `size` option. Use `aspectRatio` instead.\"\n });\n }\n if (seed != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"seed\",\n details: \"This model does not support the `seed` option through this provider.\"\n });\n }\n const googleOptions = await parseProviderOptions3({\n provider: \"google\",\n providerOptions,\n schema: googleImageProviderOptionsSchema\n });\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const parameters = {\n sampleCount: n\n };\n if (aspectRatio != null) {\n parameters.aspectRatio = aspectRatio;\n }\n if (googleOptions) {\n Object.assign(parameters, googleOptions);\n }\n const body = {\n instances: [{ prompt }],\n parameters\n };\n const { responseHeaders, value: response } = await postJsonToApi3({\n url: `${this.config.baseURL}/models/${this.modelId}:predict`,\n headers: combineHeaders3(await resolve3(this.config.headers), headers),\n body,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler3(\n googleImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.predictions.map(\n (p) => p.bytesBase64Encoded\n ),\n warnings: warnings != null ? warnings : [],\n providerMetadata: {\n google: {\n images: response.predictions.map((prediction) => ({\n // Add any prediction-specific metadata here\n }))\n }\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n};\nvar googleImageResponseSchema = lazySchema8(\n () => zodSchema8(\n z9.object({\n predictions: z9.array(z9.object({ bytesBase64Encoded: z9.string() })).default([])\n })\n )\n);\nvar googleImageProviderOptionsSchema = lazySchema8(\n () => zodSchema8(\n z9.object({\n personGeneration: z9.enum([\"dont_allow\", \"allow_adult\", \"allow_all\"]).nullish(),\n aspectRatio: z9.enum([\"1:1\", \"3:4\", \"4:3\", \"9:16\", \"16:9\"]).nullish()\n })\n )\n);\n\n// src/google-provider.ts\nfunction createGoogleGenerativeAI(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://generativelanguage.googleapis.com/v1beta\";\n const getHeaders = () => withUserAgentSuffix(\n {\n \"x-goog-api-key\": loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"GOOGLE_GENERATIVE_AI_API_KEY\",\n description: \"Google Generative AI\"\n }),\n ...options.headers\n },\n `ai-sdk/google/${VERSION}`\n );\n const createChatModel = (modelId) => {\n var _a2;\n return new GoogleGenerativeAILanguageModel(modelId, {\n provider: \"google.generative-ai\",\n baseURL,\n headers: getHeaders,\n generateId: (_a2 = options.generateId) != null ? _a2 : generateId2,\n supportedUrls: () => ({\n \"*\": [\n // Google Generative Language \"files\" endpoint\n // e.g. https://generativelanguage.googleapis.com/v1beta/files/...\n new RegExp(`^${baseURL}/files/.*$`),\n // YouTube URLs (public or unlisted videos)\n new RegExp(\n `^https://(?:www\\\\.)?youtube\\\\.com/watch\\\\?v=[\\\\w-]+(?:&[\\\\w=&.-]*)?$`\n ),\n new RegExp(`^https://youtu\\\\.be/[\\\\w-]+(?:\\\\?[\\\\w=&.-]*)?$`)\n ]\n }),\n fetch: options.fetch\n });\n };\n const createEmbeddingModel = (modelId) => new GoogleGenerativeAIEmbeddingModel(modelId, {\n provider: \"google.generative-ai\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createImageModel = (modelId, settings = {}) => new GoogleGenerativeAIImageModel(modelId, settings, {\n provider: \"google.generative-ai\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Google Generative AI model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.generativeAI = createChatModel;\n provider.embedding = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.tools = googleTools;\n return provider;\n}\nvar google = createGoogleGenerativeAI();\nexport {\n VERSION,\n createGoogleGenerativeAI,\n google\n};\n//# sourceMappingURL=index.mjs.map",
|
|
11
|
-
"/**\n * Google Provider\n * Supports both AI Studio (apiKey) and Vertex AI (projectId + location)\n */\n\nimport { google } from '@ai-sdk/google';\nimport type { LanguageModelV1 } from 'ai';\nimport type { AIProvider, ProviderModelDetails, ConfigField, ProviderConfig, ModelInfo } from './base-provider.js';\n\nimport { getModelMetadata } from '../utils/models-dev.js';\n\nconst GOOGLE_MODELS: ModelInfo[] = [\n { id: 'gemini-2.0-flash-exp', name: 'Gemini 2.0 Flash (Experimental)' },\n { id: 'gemini-1.5-pro', name: 'Gemini 1.5 Pro' },\n { id: 'gemini-1.5-flash', name: 'Gemini 1.5 Flash' },\n];\n\nconst MODEL_DETAILS: Record<string, ProviderModelDetails> = {\n 'gemini-2.0-flash-exp': {\n contextLength: 1000000,\n maxOutput: 8192,\n },\n 'gemini-1.5-pro': {\n contextLength: 2000000,\n maxOutput: 8192,\n },\n 'gemini-1.5-flash': {\n contextLength: 1000000,\n maxOutput: 8192,\n },\n};\n\nexport class GoogleProvider implements AIProvider {\n readonly id = 'google' as const;\n readonly name = 'Google';\n\n getConfigSchema(): ConfigField[] {\n return [\n {\n key: 'api-key',\n label: 'API Key (AI Studio)',\n type: 'string',\n required: false,\n secret: true,\n description: 'Get your API key from https://aistudio.google.com',\n placeholder: 'AIza...',\n },\n {\n key: 'project-id',\n label: 'Project ID (Vertex AI)',\n type: 'string',\n required: false,\n description: 'Google Cloud project ID for Vertex AI',\n placeholder: 'my-project-123',\n },\n {\n key: 'location',\n label: 'Location (Vertex AI)',\n type: 'string',\n required: false,\n description: 'Vertex AI location (default: us-central1)',\n placeholder: 'us-central1',\n },\n ];\n }\n\n isConfigured(config: ProviderConfig): boolean {\n // Either AI Studio (api-key) OR Vertex AI (project-id + location)\n const hasAIStudio = !!config['api-key'];\n const hasVertexAI = !!config['project-id'] && !!config.location;\n return hasAIStudio || hasVertexAI;\n }\n\n async fetchModels(_config: ProviderConfig): Promise<ModelInfo[]> {\n return GOOGLE_MODELS;\n }\n\n async getModelDetails(modelId: string, _config?: ProviderConfig): Promise<ProviderModelDetails | null> {\n // Try provider knowledge first\n if (MODEL_DETAILS[modelId]) {\n return MODEL_DETAILS[modelId];\n }\n\n // Fall back to models.dev\n const metadata = await getModelMetadata(modelId);\n if (metadata) {\n return {\n contextLength: metadata.contextLength,\n maxOutput: metadata.maxOutput,\n inputPrice: metadata.inputPrice,\n outputPrice: metadata.outputPrice,\n };\n }\n\n return null;\n }\n\n createClient(config: ProviderConfig, modelId: string): LanguageModelV1 {\n const apiKey = config['api-key'] as string | undefined;\n const projectId = config['project-id'] as string | undefined;\n const location = (config.location as string | undefined) || 'us-central1';\n\n if (apiKey) {\n // AI Studio mode\n return google(modelId, { apiKey });\n } else if (projectId) {\n // Vertex AI mode\n return google(modelId, {\n vertexai: { projectId, location }\n });\n } else {\n throw new Error('Google provider requires either api-key or project-id');\n }\n }\n}\n",
|
|
12
|
-
"var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n\n// node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/dist/index.mjs\nvar marker = \"vercel.ai.error\";\nvar symbol = Symbol.for(marker);\nvar _a;\nvar _AISDKError = class _AISDKError2 extends Error {\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name: name14,\n message,\n cause\n }) {\n super(message);\n this[_a] = true;\n this.name = name14;\n this.cause = cause;\n }\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error) {\n return _AISDKError2.hasMarker(error, marker);\n }\n static hasMarker(error, marker15) {\n const markerSymbol = Symbol.for(marker15);\n return error != null && typeof error === \"object\" && markerSymbol in error && typeof error[markerSymbol] === \"boolean\" && error[markerSymbol] === true;\n }\n};\n_a = symbol;\nvar AISDKError = _AISDKError;\nvar name = \"AI_APICallError\";\nvar marker2 = `vercel.ai.error.${name}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2;\nvar APICallError = class extends AISDKError {\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null && (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500),\n // server error\n data\n }) {\n super({ name, message, cause });\n this[_a2] = true;\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker2);\n }\n};\n_a2 = symbol2;\nvar name2 = \"AI_EmptyResponseBodyError\";\nvar marker3 = `vercel.ai.error.${name2}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3;\nvar EmptyResponseBodyError = class extends AISDKError {\n // used in isInstance\n constructor({ message = \"Empty response body\" } = {}) {\n super({ name: name2, message });\n this[_a3] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker3);\n }\n};\n_a3 = symbol3;\nfunction getErrorMessage(error) {\n if (error == null) {\n return \"unknown error\";\n }\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return JSON.stringify(error);\n}\nvar name3 = \"AI_InvalidArgumentError\";\nvar marker4 = `vercel.ai.error.${name3}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4;\nvar InvalidArgumentError = class extends AISDKError {\n constructor({\n message,\n cause,\n argument\n }) {\n super({ name: name3, message, cause });\n this[_a4] = true;\n this.argument = argument;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker4);\n }\n};\n_a4 = symbol4;\nvar name4 = \"AI_InvalidPromptError\";\nvar marker5 = `vercel.ai.error.${name4}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5;\nvar InvalidPromptError = class extends AISDKError {\n constructor({\n prompt,\n message,\n cause\n }) {\n super({ name: name4, message: `Invalid prompt: ${message}`, cause });\n this[_a5] = true;\n this.prompt = prompt;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker5);\n }\n};\n_a5 = symbol5;\nvar name5 = \"AI_InvalidResponseDataError\";\nvar marker6 = `vercel.ai.error.${name5}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6;\nvar InvalidResponseDataError = class extends AISDKError {\n constructor({\n data,\n message = `Invalid response data: ${JSON.stringify(data)}.`\n }) {\n super({ name: name5, message });\n this[_a6] = true;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker6);\n }\n};\n_a6 = symbol6;\nvar name6 = \"AI_JSONParseError\";\nvar marker7 = `vercel.ai.error.${name6}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7;\nvar JSONParseError = class extends AISDKError {\n constructor({ text, cause }) {\n super({\n name: name6,\n message: `JSON parsing failed: Text: ${text}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a7] = true;\n this.text = text;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker7);\n }\n};\n_a7 = symbol7;\nvar name7 = \"AI_LoadAPIKeyError\";\nvar marker8 = `vercel.ai.error.${name7}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8;\nvar LoadAPIKeyError = class extends AISDKError {\n // used in isInstance\n constructor({ message }) {\n super({ name: name7, message });\n this[_a8] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker8);\n }\n};\n_a8 = symbol8;\nvar name8 = \"AI_LoadSettingError\";\nvar marker9 = `vercel.ai.error.${name8}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9;\n_a9 = symbol9;\nvar name9 = \"AI_NoContentGeneratedError\";\nvar marker10 = `vercel.ai.error.${name9}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10;\n_a10 = symbol10;\nvar name10 = \"AI_NoSuchModelError\";\nvar marker11 = `vercel.ai.error.${name10}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11;\n_a11 = symbol11;\nvar name11 = \"AI_TooManyEmbeddingValuesForCallError\";\nvar marker12 = `vercel.ai.error.${name11}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12;\n_a12 = symbol12;\nvar name12 = \"AI_TypeValidationError\";\nvar marker13 = `vercel.ai.error.${name12}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13;\nvar _TypeValidationError = class _TypeValidationError2 extends AISDKError {\n constructor({ value, cause }) {\n super({\n name: name12,\n message: `Type validation failed: Value: ${JSON.stringify(value)}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a13] = true;\n this.value = value;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker13);\n }\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause\n }) {\n return _TypeValidationError2.isInstance(cause) && cause.value === value ? cause : new _TypeValidationError2({ value, cause });\n }\n};\n_a13 = symbol13;\nvar TypeValidationError = _TypeValidationError;\nvar name13 = \"AI_UnsupportedFunctionalityError\";\nvar marker14 = `vercel.ai.error.${name13}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14;\nvar UnsupportedFunctionalityError = class extends AISDKError {\n constructor({\n functionality,\n message = `'${functionality}' functionality not supported.`\n }) {\n super({ name: name13, message });\n this[_a14] = true;\n this.functionality = functionality;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker14);\n }\n};\n_a14 = symbol14;\n\n// node_modules/.pnpm/eventsource-parser@3.0.3/node_modules/eventsource-parser/dist/index.js\nvar ParseError = class extends Error {\n constructor(message, options) {\n super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n }\n};\nfunction noop(_arg) {\n}\nfunction createParser(callbacks) {\n if (typeof callbacks == \"function\")\n throw new TypeError(\n \"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\"\n );\n const { onEvent = noop, onError = noop, onRetry = noop, onComment } = callbacks;\n let incompleteLine = \"\", isFirstChunk = true, id, data = \"\", eventType = \"\";\n function feed(newChunk) {\n const chunk = isFirstChunk ? newChunk.replace(/^\\xEF\\xBB\\xBF/, \"\") : newChunk, [complete, incomplete] = splitLines(`${incompleteLine}${chunk}`);\n for (const line of complete)\n parseLine(line);\n incompleteLine = incomplete, isFirstChunk = false;\n }\n function parseLine(line) {\n if (line === \"\") {\n dispatchEvent();\n return;\n }\n if (line.startsWith(\":\")) {\n onComment && onComment(line.slice(line.startsWith(\": \") ? 2 : 1));\n return;\n }\n const fieldSeparatorIndex = line.indexOf(\":\");\n if (fieldSeparatorIndex !== -1) {\n const field = line.slice(0, fieldSeparatorIndex), offset = line[fieldSeparatorIndex + 1] === \" \" ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n processField(field, value, line);\n return;\n }\n processField(line, \"\", line);\n }\n function processField(field, value, line) {\n switch (field) {\n case \"event\":\n eventType = value;\n break;\n case \"data\":\n data = `${data}${value}\n`;\n break;\n case \"id\":\n id = value.includes(\"\\0\") ? void 0 : value;\n break;\n case \"retry\":\n /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: \"invalid-retry\",\n value,\n line\n })\n );\n break;\n default:\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n { type: \"unknown-field\", field, value, line }\n )\n );\n break;\n }\n }\n function dispatchEvent() {\n data.length > 0 && onEvent({\n id,\n event: eventType || void 0,\n // If the data buffer's last character is a U+000A LINE FEED (LF) character,\n // then remove the last character from the data buffer.\n data: data.endsWith(`\n`) ? data.slice(0, -1) : data\n }), id = void 0, data = \"\", eventType = \"\";\n }\n function reset(options = {}) {\n incompleteLine && options.consume && parseLine(incompleteLine), isFirstChunk = true, id = void 0, data = \"\", eventType = \"\", incompleteLine = \"\";\n }\n return { feed, reset };\n}\nfunction splitLines(chunk) {\n const lines = [];\n let incompleteLine = \"\", searchIndex = 0;\n for (; searchIndex < chunk.length; ) {\n const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n let lineEnd = -1;\n if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = Math.min(crIndex, lfIndex) : crIndex !== -1 ? lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1) {\n incompleteLine = chunk.slice(searchIndex);\n break;\n } else {\n const line = chunk.slice(searchIndex, lineEnd);\n lines.push(line), searchIndex = lineEnd + 1, chunk[searchIndex - 1] === \"\\r\" && chunk[searchIndex] === `\n` && searchIndex++;\n }\n }\n return [lines, incompleteLine];\n}\n\n// node_modules/.pnpm/eventsource-parser@3.0.3/node_modules/eventsource-parser/dist/stream.js\nvar EventSourceParserStream = class extends TransformStream {\n constructor({ onError, onRetry, onComment } = {}) {\n let parser;\n super({\n start(controller) {\n parser = createParser({\n onEvent: (event) => {\n controller.enqueue(event);\n },\n onError(error) {\n onError === \"terminate\" ? controller.error(error) : typeof onError == \"function\" && onError(error);\n },\n onRetry,\n onComment\n });\n },\n transform(chunk) {\n parser.feed(chunk);\n }\n });\n }\n};\n\n// node_modules/.pnpm/@ai-sdk+provider-utils@3.0.1_zod@3.25.76/node_modules/@ai-sdk/provider-utils/dist/index.mjs\nimport * as z4 from \"zod/v4\";\n\n// node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js\nvar ignoreOverride = Symbol(\"Let zodToJsonSchema decide on which parser to use\");\n\n// node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js\nimport { ZodFirstPartyTypeKind as ZodFirstPartyTypeKind3 } from \"zod\";\n\n// node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js\nimport { ZodFirstPartyTypeKind } from \"zod\";\n\n// node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js\nimport { ZodFirstPartyTypeKind as ZodFirstPartyTypeKind2 } from \"zod\";\n\n// node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js\nvar ALPHA_NUMERIC = new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\n\n// node_modules/.pnpm/@ai-sdk+provider-utils@3.0.1_zod@3.25.76/node_modules/@ai-sdk/provider-utils/dist/index.mjs\nfunction combineHeaders(...headers) {\n return headers.reduce(\n (combinedHeaders, currentHeaders) => __spreadValues(__spreadValues({}, combinedHeaders), currentHeaders != null ? currentHeaders : {}),\n {}\n );\n}\nfunction extractResponseHeaders(response) {\n return Object.fromEntries([...response.headers]);\n}\nvar createIdGenerator = ({\n prefix,\n size = 16,\n alphabet = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n separator = \"-\"\n} = {}) => {\n const generator = () => {\n const alphabetLength = alphabet.length;\n const chars = new Array(size);\n for (let i = 0; i < size; i++) {\n chars[i] = alphabet[Math.random() * alphabetLength | 0];\n }\n return chars.join(\"\");\n };\n if (prefix == null) {\n return generator;\n }\n if (alphabet.includes(separator)) {\n throw new InvalidArgumentError({\n argument: \"separator\",\n message: `The separator \"${separator}\" must not be part of the alphabet \"${alphabet}\".`\n });\n }\n return () => `${prefix}${separator}${generator()}`;\n};\nvar generateId = createIdGenerator();\nfunction isAbortError(error) {\n return (error instanceof Error || error instanceof DOMException) && (error.name === \"AbortError\" || error.name === \"ResponseAborted\" || // Next.js\n error.name === \"TimeoutError\");\n}\nvar FETCH_FAILED_ERROR_MESSAGES = [\"fetch failed\", \"failed to fetch\"];\nfunction handleFetchError({\n error,\n url,\n requestBodyValues\n}) {\n if (isAbortError(error)) {\n return error;\n }\n if (error instanceof TypeError && FETCH_FAILED_ERROR_MESSAGES.includes(error.message.toLowerCase())) {\n const cause = error.cause;\n if (cause != null) {\n return new APICallError({\n message: `Cannot connect to API: ${cause.message}`,\n cause,\n url,\n requestBodyValues,\n isRetryable: true\n // retry when network error\n });\n }\n }\n return error;\n}\nfunction removeUndefinedEntries(record) {\n return Object.fromEntries(\n Object.entries(record).filter(([_key, value]) => value != null)\n );\n}\nfunction loadApiKey({\n apiKey,\n environmentVariableName,\n apiKeyParameterName = \"apiKey\",\n description\n}) {\n if (typeof apiKey === \"string\") {\n return apiKey;\n }\n if (apiKey != null) {\n throw new LoadAPIKeyError({\n message: `${description} API key must be a string.`\n });\n }\n if (typeof process === \"undefined\") {\n throw new LoadAPIKeyError({\n message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter. Environment variables is not supported in this environment.`\n });\n }\n apiKey = process.env[environmentVariableName];\n if (apiKey == null) {\n throw new LoadAPIKeyError({\n message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter or the ${environmentVariableName} environment variable.`\n });\n }\n if (typeof apiKey !== \"string\") {\n throw new LoadAPIKeyError({\n message: `${description} API key must be a string. The value of the ${environmentVariableName} environment variable is not a string.`\n });\n }\n return apiKey;\n}\nvar suspectProtoRx = /\"__proto__\"\\s*:/;\nvar suspectConstructorRx = /\"constructor\"\\s*:/;\nfunction _parse(text) {\n const obj = JSON.parse(text);\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n if (suspectProtoRx.test(text) === false && suspectConstructorRx.test(text) === false) {\n return obj;\n }\n return filter(obj);\n}\nfunction filter(obj) {\n let next = [obj];\n while (next.length) {\n const nodes = next;\n next = [];\n for (const node of nodes) {\n if (Object.prototype.hasOwnProperty.call(node, \"__proto__\")) {\n throw new SyntaxError(\"Object contains forbidden prototype property\");\n }\n if (Object.prototype.hasOwnProperty.call(node, \"constructor\") && Object.prototype.hasOwnProperty.call(node.constructor, \"prototype\")) {\n throw new SyntaxError(\"Object contains forbidden prototype property\");\n }\n for (const key in node) {\n const value = node[key];\n if (value && typeof value === \"object\") {\n next.push(value);\n }\n }\n }\n }\n return obj;\n}\nfunction secureJsonParse(text) {\n const { stackTraceLimit } = Error;\n Error.stackTraceLimit = 0;\n try {\n return _parse(text);\n } finally {\n Error.stackTraceLimit = stackTraceLimit;\n }\n}\nvar validatorSymbol = Symbol.for(\"vercel.ai.validator\");\nfunction validator(validate) {\n return { [validatorSymbol]: true, validate };\n}\nfunction isValidator(value) {\n return typeof value === \"object\" && value !== null && validatorSymbol in value && value[validatorSymbol] === true && \"validate\" in value;\n}\nfunction asValidator(value) {\n return isValidator(value) ? value : standardSchemaValidator(value);\n}\nfunction standardSchemaValidator(standardSchema) {\n return validator(async (value) => {\n const result = await standardSchema[\"~standard\"].validate(value);\n return result.issues == null ? { success: true, value: result.value } : {\n success: false,\n error: new TypeValidationError({\n value,\n cause: result.issues\n })\n };\n });\n}\nasync function validateTypes({\n value,\n schema\n}) {\n const result = await safeValidateTypes({ value, schema });\n if (!result.success) {\n throw TypeValidationError.wrap({ value, cause: result.error });\n }\n return result.value;\n}\nasync function safeValidateTypes({\n value,\n schema\n}) {\n const validator2 = asValidator(schema);\n try {\n if (validator2.validate == null) {\n return { success: true, value, rawValue: value };\n }\n const result = await validator2.validate(value);\n if (result.success) {\n return { success: true, value: result.value, rawValue: value };\n }\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: result.error }),\n rawValue: value\n };\n } catch (error) {\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: error }),\n rawValue: value\n };\n }\n}\nasync function parseJSON({\n text,\n schema\n}) {\n try {\n const value = secureJsonParse(text);\n if (schema == null) {\n return value;\n }\n return validateTypes({ value, schema });\n } catch (error) {\n if (JSONParseError.isInstance(error) || TypeValidationError.isInstance(error)) {\n throw error;\n }\n throw new JSONParseError({ text, cause: error });\n }\n}\nasync function safeParseJSON({\n text,\n schema\n}) {\n try {\n const value = secureJsonParse(text);\n if (schema == null) {\n return { success: true, value, rawValue: value };\n }\n return await safeValidateTypes({ value, schema });\n } catch (error) {\n return {\n success: false,\n error: JSONParseError.isInstance(error) ? error : new JSONParseError({ text, cause: error }),\n rawValue: void 0\n };\n }\n}\nfunction isParsableJson(input) {\n try {\n secureJsonParse(input);\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction parseJsonEventStream({\n stream,\n schema\n}) {\n return stream.pipeThrough(new TextDecoderStream()).pipeThrough(new EventSourceParserStream()).pipeThrough(\n new TransformStream({\n async transform({ data }, controller) {\n if (data === \"[DONE]\") {\n return;\n }\n controller.enqueue(await safeParseJSON({ text: data, schema }));\n }\n })\n );\n}\nvar getOriginalFetch2 = () => globalThis.fetch;\nvar postJsonToApi = async ({\n url,\n headers,\n body,\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch\n}) => postToApi({\n url,\n headers: __spreadValues({\n \"Content-Type\": \"application/json\"\n }, headers),\n body: {\n content: JSON.stringify(body),\n values: body\n },\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch\n});\nvar postToApi = async ({\n url,\n headers = {},\n body,\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch = getOriginalFetch2()\n}) => {\n try {\n const response = await fetch(url, {\n method: \"POST\",\n headers: removeUndefinedEntries(headers),\n body: body.content,\n signal: abortSignal\n });\n const responseHeaders = extractResponseHeaders(response);\n if (!response.ok) {\n let errorInformation;\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: body.values\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n throw new APICallError({\n message: \"Failed to process error response\",\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values\n });\n }\n throw errorInformation.value;\n }\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: body.values\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n throw new APICallError({\n message: \"Failed to process successful response\",\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values\n });\n }\n } catch (error) {\n throw handleFetchError({ error, url, requestBodyValues: body.values });\n }\n};\nvar createJsonErrorResponseHandler = ({\n errorSchema,\n errorToMessage,\n isRetryable\n}) => async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n const responseHeaders = extractResponseHeaders(response);\n if (responseBody.trim() === \"\") {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable == null ? void 0 : isRetryable(response)\n })\n };\n }\n try {\n const parsedError = await parseJSON({\n text: responseBody,\n schema: errorSchema\n });\n return {\n responseHeaders,\n value: new APICallError({\n message: errorToMessage(parsedError),\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n data: parsedError,\n isRetryable: isRetryable == null ? void 0 : isRetryable(response, parsedError)\n })\n };\n } catch (parseError) {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable == null ? void 0 : isRetryable(response)\n })\n };\n }\n};\nvar createEventSourceResponseHandler = (chunkSchema) => async ({ response }) => {\n const responseHeaders = extractResponseHeaders(response);\n if (response.body == null) {\n throw new EmptyResponseBodyError({});\n }\n return {\n responseHeaders,\n value: parseJsonEventStream({\n stream: response.body,\n schema: chunkSchema\n })\n };\n};\nvar createJsonResponseHandler = (responseSchema) => async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n const parsedResult = await safeParseJSON({\n text: responseBody,\n schema: responseSchema\n });\n const responseHeaders = extractResponseHeaders(response);\n if (!parsedResult.success) {\n throw new APICallError({\n message: \"Invalid JSON response\",\n cause: parsedResult.error,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n url,\n requestBodyValues\n });\n }\n return {\n responseHeaders,\n value: parsedResult.value,\n rawValue: parsedResult.rawValue\n };\n};\nvar schemaSymbol = Symbol.for(\"vercel.ai.schema\");\nvar { btoa, atob } = globalThis;\nfunction convertUint8ArrayToBase64(array) {\n let latin1string = \"\";\n for (let i = 0; i < array.length; i++) {\n latin1string += String.fromCodePoint(array[i]);\n }\n return btoa(latin1string);\n}\nfunction withoutTrailingSlash(url) {\n return url == null ? void 0 : url.replace(/\\/$/, \"\");\n}\n\n// src/schemas/reasoning-details.ts\nimport { z } from \"zod/v4\";\nvar ReasoningDetailSummarySchema = z.object({\n type: z.literal(\"reasoning.summary\" /* Summary */),\n summary: z.string()\n});\nvar ReasoningDetailEncryptedSchema = z.object({\n type: z.literal(\"reasoning.encrypted\" /* Encrypted */),\n data: z.string()\n});\nvar ReasoningDetailTextSchema = z.object({\n type: z.literal(\"reasoning.text\" /* Text */),\n text: z.string().nullish(),\n signature: z.string().nullish()\n});\nvar ReasoningDetailUnionSchema = z.union([\n ReasoningDetailSummarySchema,\n ReasoningDetailEncryptedSchema,\n ReasoningDetailTextSchema\n]);\nvar ReasoningDetailsWithUnknownSchema = z.union([\n ReasoningDetailUnionSchema,\n z.unknown().transform(() => null)\n]);\nvar ReasoningDetailArraySchema = z.array(ReasoningDetailsWithUnknownSchema).transform((d) => d.filter((d2) => !!d2));\n\n// src/schemas/error-response.ts\nimport { z as z2 } from \"zod/v4\";\nvar OpenRouterErrorResponseSchema = z2.object({\n error: z2.object({\n code: z2.union([z2.string(), z2.number()]).nullable().optional().default(null),\n message: z2.string(),\n type: z2.string().nullable().optional().default(null),\n param: z2.any().nullable().optional().default(null)\n })\n});\nvar openrouterFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: OpenRouterErrorResponseSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/utils/map-finish-reason.ts\nfunction mapOpenRouterFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"unknown\";\n }\n}\n\n// src/chat/is-url.ts\nfunction isUrl({\n url,\n protocols\n}) {\n try {\n const urlObj = new URL(url);\n return protocols.has(urlObj.protocol);\n } catch (_) {\n return false;\n }\n}\n\n// src/chat/file-url-utils.ts\nfunction getFileUrl({\n part,\n defaultMediaType\n}) {\n var _a15, _b;\n if (part.data instanceof Uint8Array) {\n const base64 = convertUint8ArrayToBase64(part.data);\n return `data:${(_a15 = part.mediaType) != null ? _a15 : defaultMediaType};base64,${base64}`;\n }\n const stringUrl = part.data.toString();\n if (isUrl({\n url: stringUrl,\n protocols: /* @__PURE__ */ new Set([\"http:\", \"https:\"])\n })) {\n return stringUrl;\n }\n return stringUrl.startsWith(\"data:\") ? stringUrl : `data:${(_b = part.mediaType) != null ? _b : defaultMediaType};base64,${stringUrl}`;\n}\nfunction getMediaType(dataUrl, defaultMediaType) {\n var _a15;\n const match = dataUrl.match(/^data:([^;]+)/);\n return match ? (_a15 = match[1]) != null ? _a15 : defaultMediaType : defaultMediaType;\n}\nfunction getBase64FromDataUrl(dataUrl) {\n const match = dataUrl.match(/^data:[^;]*;base64,(.+)$/);\n return match ? match[1] : dataUrl;\n}\n\n// src/chat/convert-to-openrouter-chat-messages.ts\nfunction getCacheControl(providerMetadata) {\n var _a15, _b, _c;\n const anthropic = providerMetadata == null ? void 0 : providerMetadata.anthropic;\n const openrouter2 = providerMetadata == null ? void 0 : providerMetadata.openrouter;\n return (_c = (_b = (_a15 = openrouter2 == null ? void 0 : openrouter2.cacheControl) != null ? _a15 : openrouter2 == null ? void 0 : openrouter2.cache_control) != null ? _b : anthropic == null ? void 0 : anthropic.cacheControl) != null ? _c : anthropic == null ? void 0 : anthropic.cache_control;\n}\nfunction convertToOpenRouterChatMessages(prompt) {\n var _a15, _b, _c;\n const messages = [];\n for (const { role, content, providerOptions } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({\n role: \"system\",\n content,\n cache_control: getCacheControl(providerOptions)\n });\n break;\n }\n case \"user\": {\n if (content.length === 1 && ((_a15 = content[0]) == null ? void 0 : _a15.type) === \"text\") {\n const cacheControl = (_b = getCacheControl(providerOptions)) != null ? _b : getCacheControl(content[0].providerOptions);\n const contentWithCacheControl = cacheControl ? [\n {\n type: \"text\",\n text: content[0].text,\n cache_control: cacheControl\n }\n ] : content[0].text;\n messages.push({\n role: \"user\",\n content: contentWithCacheControl\n });\n break;\n }\n const messageCacheControl = getCacheControl(providerOptions);\n const contentParts = content.map(\n (part) => {\n var _a16, _b2, _c2, _d, _e, _f;\n const cacheControl = (_a16 = getCacheControl(part.providerOptions)) != null ? _a16 : messageCacheControl;\n switch (part.type) {\n case \"text\":\n return {\n type: \"text\",\n text: part.text,\n // For text parts, only use part-specific cache control\n cache_control: cacheControl\n };\n case \"file\": {\n if ((_b2 = part.mediaType) == null ? void 0 : _b2.startsWith(\"image/\")) {\n const url = getFileUrl({\n part,\n defaultMediaType: \"image/jpeg\"\n });\n return {\n type: \"image_url\",\n image_url: {\n url\n },\n // For image parts, use part-specific or message-level cache control\n cache_control: cacheControl\n };\n }\n const fileName = String(\n (_f = (_e = (_d = (_c2 = part.providerOptions) == null ? void 0 : _c2.openrouter) == null ? void 0 : _d.filename) != null ? _e : part.filename) != null ? _f : \"\"\n );\n const fileData = getFileUrl({\n part,\n defaultMediaType: \"application/pdf\"\n });\n if (isUrl({\n url: fileData,\n protocols: /* @__PURE__ */ new Set([\"http:\", \"https:\"])\n })) {\n return {\n type: \"file\",\n file: {\n filename: fileName,\n file_data: fileData\n }\n };\n }\n return {\n type: \"file\",\n file: {\n filename: fileName,\n file_data: fileData\n },\n cache_control: cacheControl\n };\n }\n default: {\n return {\n type: \"text\",\n text: \"\",\n cache_control: cacheControl\n };\n }\n }\n }\n );\n messages.push({\n role: \"user\",\n content: contentParts\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning = \"\";\n const reasoningDetails = [];\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n case \"reasoning\": {\n reasoning += part.text;\n reasoningDetails.push({\n type: \"reasoning.text\" /* Text */,\n text: part.text\n });\n break;\n }\n case \"file\":\n break;\n default: {\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0,\n reasoning: reasoning || void 0,\n reasoning_details: reasoningDetails.length > 0 ? reasoningDetails : void 0,\n cache_control: getCacheControl(providerOptions)\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n const content2 = getToolResultContent(toolResponse);\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: content2,\n cache_control: (_c = getCacheControl(providerOptions)) != null ? _c : getCacheControl(toolResponse.providerOptions)\n });\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n return messages;\n}\nfunction getToolResultContent(input) {\n return input.output.type === \"text\" ? input.output.value : JSON.stringify(input.output.value);\n}\n\n// src/chat/get-tool-choice.ts\nimport { z as z3 } from \"zod/v4\";\nvar ChatCompletionToolChoiceSchema = z3.union([\n z3.literal(\"auto\"),\n z3.literal(\"none\"),\n z3.literal(\"required\"),\n z3.object({\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string()\n })\n })\n]);\nfunction getChatCompletionToolChoice(toolChoice) {\n switch (toolChoice.type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return toolChoice.type;\n case \"tool\": {\n return {\n type: \"function\",\n function: { name: toolChoice.toolName }\n };\n }\n default: {\n toolChoice;\n throw new Error(`Invalid tool choice type: ${toolChoice}`);\n }\n }\n}\n\n// src/chat/schemas.ts\nimport { z as z6 } from \"zod/v4\";\n\n// src/schemas/image.ts\nimport { z as z5 } from \"zod/v4\";\nvar ImageResponseSchema = z5.object({\n type: z5.literal(\"image_url\"),\n image_url: z5.object({\n url: z5.string()\n })\n});\nvar ImageResponseWithUnknownSchema = z5.union([\n ImageResponseSchema,\n z5.unknown().transform(() => null)\n]);\nvar ImageResponseArraySchema = z5.array(ImageResponseWithUnknownSchema).transform((d) => d.filter((d2) => !!d2));\n\n// src/chat/schemas.ts\nvar OpenRouterChatCompletionBaseResponseSchema = z6.object({\n id: z6.string().optional(),\n model: z6.string().optional(),\n provider: z6.string().optional(),\n usage: z6.object({\n prompt_tokens: z6.number(),\n prompt_tokens_details: z6.object({\n cached_tokens: z6.number()\n }).nullish(),\n completion_tokens: z6.number(),\n completion_tokens_details: z6.object({\n reasoning_tokens: z6.number()\n }).nullish(),\n total_tokens: z6.number(),\n cost: z6.number().optional(),\n cost_details: z6.object({\n upstream_inference_cost: z6.number().nullish()\n }).nullish()\n }).nullish()\n});\nvar OpenRouterNonStreamChatCompletionResponseSchema = OpenRouterChatCompletionBaseResponseSchema.extend({\n choices: z6.array(\n z6.object({\n message: z6.object({\n role: z6.literal(\"assistant\"),\n content: z6.string().nullable().optional(),\n reasoning: z6.string().nullable().optional(),\n reasoning_details: ReasoningDetailArraySchema.nullish(),\n images: ImageResponseArraySchema.nullish(),\n tool_calls: z6.array(\n z6.object({\n id: z6.string().optional().nullable(),\n type: z6.literal(\"function\"),\n function: z6.object({\n name: z6.string(),\n arguments: z6.string()\n })\n })\n ).optional(),\n annotations: z6.array(\n z6.object({\n type: z6.enum([\"url_citation\"]),\n url_citation: z6.object({\n end_index: z6.number(),\n start_index: z6.number(),\n title: z6.string(),\n url: z6.string(),\n content: z6.string().optional()\n })\n })\n ).nullish()\n }),\n index: z6.number().nullish(),\n logprobs: z6.object({\n content: z6.array(\n z6.object({\n token: z6.string(),\n logprob: z6.number(),\n top_logprobs: z6.array(\n z6.object({\n token: z6.string(),\n logprob: z6.number()\n })\n )\n })\n ).nullable()\n }).nullable().optional(),\n finish_reason: z6.string().optional().nullable()\n })\n )\n});\nvar OpenRouterStreamChatCompletionChunkSchema = z6.union([\n OpenRouterChatCompletionBaseResponseSchema.extend({\n choices: z6.array(\n z6.object({\n delta: z6.object({\n role: z6.enum([\"assistant\"]).optional(),\n content: z6.string().nullish(),\n reasoning: z6.string().nullish().optional(),\n reasoning_details: ReasoningDetailArraySchema.nullish(),\n images: ImageResponseArraySchema.nullish(),\n tool_calls: z6.array(\n z6.object({\n index: z6.number().nullish(),\n id: z6.string().nullish(),\n type: z6.literal(\"function\").optional(),\n function: z6.object({\n name: z6.string().nullish(),\n arguments: z6.string().nullish()\n })\n })\n ).nullish(),\n annotations: z6.array(\n z6.object({\n type: z6.enum([\"url_citation\"]),\n url_citation: z6.object({\n end_index: z6.number(),\n start_index: z6.number(),\n title: z6.string(),\n url: z6.string(),\n content: z6.string().optional()\n })\n })\n ).nullish()\n }).nullish(),\n logprobs: z6.object({\n content: z6.array(\n z6.object({\n token: z6.string(),\n logprob: z6.number(),\n top_logprobs: z6.array(\n z6.object({\n token: z6.string(),\n logprob: z6.number()\n })\n )\n })\n ).nullable()\n }).nullish(),\n finish_reason: z6.string().nullable().optional(),\n index: z6.number().nullish()\n })\n )\n }),\n OpenRouterErrorResponseSchema\n]);\n\n// src/chat/index.ts\nvar OpenRouterChatLanguageModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v2\";\n this.provider = \"openrouter\";\n this.defaultObjectGenerationMode = \"tool\";\n this.supportedUrls = {\n \"image/*\": [\n /^data:image\\/[a-zA-Z]+;base64,/,\n /^https?:\\/\\/.+\\.(jpg|jpeg|png|gif|webp)$/i\n ],\n // 'text/*': [/^data:text\\//, /^https?:\\/\\/.+$/],\n \"application/*\": [/^data:application\\//, /^https?:\\/\\/.+$/]\n };\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n frequencyPenalty,\n presencePenalty,\n seed,\n stopSequences,\n responseFormat,\n topK,\n tools,\n toolChoice\n }) {\n var _a15;\n const baseArgs = __spreadValues(__spreadValues({\n // model id:\n model: this.modelId,\n models: this.settings.models,\n // model specific settings:\n logit_bias: this.settings.logitBias,\n logprobs: this.settings.logprobs === true || typeof this.settings.logprobs === \"number\" ? true : void 0,\n top_logprobs: typeof this.settings.logprobs === \"number\" ? this.settings.logprobs : typeof this.settings.logprobs === \"boolean\" ? this.settings.logprobs ? 0 : void 0 : void 0,\n user: this.settings.user,\n parallel_tool_calls: this.settings.parallelToolCalls,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n seed,\n stop: stopSequences,\n response_format: responseFormat,\n top_k: topK,\n // messages:\n messages: convertToOpenRouterChatMessages(prompt),\n // OpenRouter specific settings:\n include_reasoning: this.settings.includeReasoning,\n reasoning: this.settings.reasoning,\n usage: this.settings.usage,\n // Web search settings:\n plugins: this.settings.plugins,\n web_search_options: this.settings.web_search_options,\n // Provider routing settings:\n provider: this.settings.provider\n }, this.config.extraBody), this.settings.extraBody);\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null) {\n return __spreadProps(__spreadValues({}, baseArgs), {\n response_format: {\n type: \"json_schema\",\n json_schema: __spreadValues({\n schema: responseFormat.schema,\n strict: true,\n name: (_a15 = responseFormat.name) != null ? _a15 : \"response\"\n }, responseFormat.description && {\n description: responseFormat.description\n })\n }\n });\n }\n if (tools && tools.length > 0) {\n const mappedTools = tools.filter((tool) => tool.type === \"function\").map((tool) => ({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema\n }\n }));\n return __spreadProps(__spreadValues({}, baseArgs), {\n tools: mappedTools,\n tool_choice: toolChoice ? getChatCompletionToolChoice(toolChoice) : void 0\n });\n }\n return baseArgs;\n }\n async doGenerate(options) {\n var _a15, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions);\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenRouterNonStreamChatCompletionResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n if (!choice) {\n throw new Error(\"No choice in response\");\n }\n const usageInfo = response.usage ? {\n inputTokens: (_a15 = response.usage.prompt_tokens) != null ? _a15 : 0,\n outputTokens: (_b = response.usage.completion_tokens) != null ? _b : 0,\n totalTokens: ((_c = response.usage.prompt_tokens) != null ? _c : 0) + ((_d = response.usage.completion_tokens) != null ? _d : 0),\n reasoningTokens: (_f = (_e = response.usage.completion_tokens_details) == null ? void 0 : _e.reasoning_tokens) != null ? _f : 0,\n cachedInputTokens: (_h = (_g = response.usage.prompt_tokens_details) == null ? void 0 : _g.cached_tokens) != null ? _h : 0\n } : {\n inputTokens: 0,\n outputTokens: 0,\n totalTokens: 0,\n reasoningTokens: 0,\n cachedInputTokens: 0\n };\n const reasoningDetails = (_i = choice.message.reasoning_details) != null ? _i : [];\n const reasoning = reasoningDetails.length > 0 ? reasoningDetails.map((detail) => {\n switch (detail.type) {\n case \"reasoning.text\" /* Text */: {\n if (detail.text) {\n return {\n type: \"reasoning\",\n text: detail.text\n };\n }\n break;\n }\n case \"reasoning.summary\" /* Summary */: {\n if (detail.summary) {\n return {\n type: \"reasoning\",\n text: detail.summary\n };\n }\n break;\n }\n case \"reasoning.encrypted\" /* Encrypted */: {\n if (detail.data) {\n return {\n type: \"reasoning\",\n text: \"[REDACTED]\"\n };\n }\n break;\n }\n default: {\n detail;\n }\n }\n return null;\n }).filter((p) => p !== null) : choice.message.reasoning ? [\n {\n type: \"reasoning\",\n text: choice.message.reasoning\n }\n ] : [];\n const content = [];\n content.push(...reasoning);\n if (choice.message.content) {\n content.push({\n type: \"text\",\n text: choice.message.content\n });\n }\n if (choice.message.tool_calls) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: (_j = toolCall.id) != null ? _j : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n if (choice.message.images) {\n for (const image of choice.message.images) {\n content.push({\n type: \"file\",\n mediaType: getMediaType(image.image_url.url, \"image/jpeg\"),\n data: getBase64FromDataUrl(image.image_url.url)\n });\n }\n }\n if (choice.message.annotations) {\n for (const annotation of choice.message.annotations) {\n if (annotation.type === \"url_citation\") {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: annotation.url_citation.url,\n url: annotation.url_citation.url,\n title: annotation.url_citation.title,\n providerMetadata: {\n openrouter: {\n content: annotation.url_citation.content || \"\"\n }\n }\n });\n }\n }\n }\n return {\n content,\n finishReason: mapOpenRouterFinishReason(choice.finish_reason),\n usage: usageInfo,\n warnings: [],\n providerMetadata: {\n openrouter: {\n provider: (_k = response.provider) != null ? _k : \"\",\n usage: {\n promptTokens: (_l = usageInfo.inputTokens) != null ? _l : 0,\n completionTokens: (_m = usageInfo.outputTokens) != null ? _m : 0,\n totalTokens: (_n = usageInfo.totalTokens) != null ? _n : 0,\n cost: (_o = response.usage) == null ? void 0 : _o.cost,\n promptTokensDetails: {\n cachedTokens: (_r = (_q = (_p = response.usage) == null ? void 0 : _p.prompt_tokens_details) == null ? void 0 : _q.cached_tokens) != null ? _r : 0\n },\n completionTokensDetails: {\n reasoningTokens: (_u = (_t = (_s = response.usage) == null ? void 0 : _s.completion_tokens_details) == null ? void 0 : _t.reasoning_tokens) != null ? _u : 0\n },\n costDetails: {\n upstreamInferenceCost: (_x = (_w = (_v = response.usage) == null ? void 0 : _v.cost_details) == null ? void 0 : _w.upstream_inference_cost) != null ? _x : 0\n }\n }\n }\n },\n request: { body: args },\n response: {\n id: response.id,\n modelId: response.model,\n headers: responseHeaders\n }\n };\n }\n async doStream(options) {\n var _a15;\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions);\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: __spreadProps(__spreadValues({}, args), {\n stream: true,\n // only include stream_options when in strict compatibility mode:\n stream_options: this.config.compatibility === \"strict\" ? __spreadValues({\n include_usage: true\n }, ((_a15 = this.settings.usage) == null ? void 0 : _a15.include) ? { include_usage: true } : {}) : void 0\n }),\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n OpenRouterStreamChatCompletionChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const toolCalls = [];\n let finishReason = \"other\";\n const usage = {\n inputTokens: Number.NaN,\n outputTokens: Number.NaN,\n totalTokens: Number.NaN,\n reasoningTokens: Number.NaN,\n cachedInputTokens: Number.NaN\n };\n const openrouterUsage = {};\n let textStarted = false;\n let reasoningStarted = false;\n let textId;\n let reasoningId;\n let openrouterResponseId;\n let provider;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n var _a16, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n if (!chunk.success) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (value.provider) {\n provider = value.provider;\n }\n if (value.id) {\n openrouterResponseId = value.id;\n controller.enqueue({\n type: \"response-metadata\",\n id: value.id\n });\n }\n if (value.model) {\n controller.enqueue({\n type: \"response-metadata\",\n modelId: value.model\n });\n }\n if (value.usage != null) {\n usage.inputTokens = value.usage.prompt_tokens;\n usage.outputTokens = value.usage.completion_tokens;\n usage.totalTokens = value.usage.prompt_tokens + value.usage.completion_tokens;\n openrouterUsage.promptTokens = value.usage.prompt_tokens;\n if (value.usage.prompt_tokens_details) {\n const cachedInputTokens = (_a16 = value.usage.prompt_tokens_details.cached_tokens) != null ? _a16 : 0;\n usage.cachedInputTokens = cachedInputTokens;\n openrouterUsage.promptTokensDetails = {\n cachedTokens: cachedInputTokens\n };\n }\n openrouterUsage.completionTokens = value.usage.completion_tokens;\n if (value.usage.completion_tokens_details) {\n const reasoningTokens = (_b = value.usage.completion_tokens_details.reasoning_tokens) != null ? _b : 0;\n usage.reasoningTokens = reasoningTokens;\n openrouterUsage.completionTokensDetails = {\n reasoningTokens\n };\n }\n openrouterUsage.cost = value.usage.cost;\n openrouterUsage.totalTokens = value.usage.total_tokens;\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = mapOpenRouterFinishReason(choice.finish_reason);\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const emitReasoningChunk = (chunkText) => {\n if (!reasoningStarted) {\n reasoningId = openrouterResponseId || generateId();\n controller.enqueue({\n type: \"reasoning-start\",\n id: reasoningId\n });\n reasoningStarted = true;\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n delta: chunkText,\n id: reasoningId || generateId()\n });\n };\n if (delta.reasoning_details && delta.reasoning_details.length > 0) {\n for (const detail of delta.reasoning_details) {\n switch (detail.type) {\n case \"reasoning.text\" /* Text */: {\n if (detail.text) {\n emitReasoningChunk(detail.text);\n }\n break;\n }\n case \"reasoning.encrypted\" /* Encrypted */: {\n if (detail.data) {\n emitReasoningChunk(\"[REDACTED]\");\n }\n break;\n }\n case \"reasoning.summary\" /* Summary */: {\n if (detail.summary) {\n emitReasoningChunk(detail.summary);\n }\n break;\n }\n default: {\n detail;\n break;\n }\n }\n }\n } else if (delta.reasoning) {\n emitReasoningChunk(delta.reasoning);\n }\n if (delta.content) {\n if (reasoningStarted && !textStarted) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: reasoningId || generateId()\n });\n reasoningStarted = false;\n }\n if (!textStarted) {\n textId = openrouterResponseId || generateId();\n controller.enqueue({\n type: \"text-start\",\n id: textId\n });\n textStarted = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n delta: delta.content,\n id: textId || generateId()\n });\n }\n if (delta.annotations) {\n for (const annotation of delta.annotations) {\n if (annotation.type === \"url_citation\") {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: annotation.url_citation.url,\n url: annotation.url_citation.url,\n title: annotation.url_citation.title,\n providerMetadata: {\n openrouter: {\n content: annotation.url_citation.content || \"\"\n }\n }\n });\n }\n }\n }\n if (delta.tool_calls != null) {\n for (const toolCallDelta of delta.tool_calls) {\n const index = (_c = toolCallDelta.index) != null ? _c : toolCalls.length - 1;\n if (toolCalls[index] == null) {\n if (toolCallDelta.type !== \"function\") {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function' type.`\n });\n }\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_d = toolCallDelta.function) == null ? void 0 : _d.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_e = toolCallDelta.function.arguments) != null ? _e : \"\"\n },\n inputStarted: false,\n sent: false\n };\n const toolCall2 = toolCalls[index];\n if (toolCall2 == null) {\n throw new Error(\"Tool call is missing\");\n }\n if (((_f = toolCall2.function) == null ? void 0 : _f.name) != null && ((_g = toolCall2.function) == null ? void 0 : _g.arguments) != null && isParsableJson(toolCall2.function.arguments)) {\n toolCall2.inputStarted = true;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCall2.id,\n toolName: toolCall2.function.name\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall2.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall2.id,\n toolName: toolCall2.function.name,\n input: toolCall2.function.arguments\n });\n toolCall2.sent = true;\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall == null) {\n throw new Error(\"Tool call is missing\");\n }\n if (!toolCall.inputStarted) {\n toolCall.inputStarted = true;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCall.id,\n toolName: toolCall.function.name\n });\n }\n if (((_h = toolCallDelta.function) == null ? void 0 : _h.arguments) != null) {\n toolCall.function.arguments += (_j = (_i = toolCallDelta.function) == null ? void 0 : _i.arguments) != null ? _j : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_k = toolCallDelta.function.arguments) != null ? _k : \"\"\n });\n if (((_l = toolCall.function) == null ? void 0 : _l.name) != null && ((_m = toolCall.function) == null ? void 0 : _m.arguments) != null && isParsableJson(toolCall.function.arguments)) {\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_n = toolCall.id) != null ? _n : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n toolCall.sent = true;\n }\n }\n }\n if (delta.images != null) {\n for (const image of delta.images) {\n controller.enqueue({\n type: \"file\",\n mediaType: getMediaType(image.image_url.url, \"image/jpeg\"),\n data: getBase64FromDataUrl(image.image_url.url)\n });\n }\n }\n },\n flush(controller) {\n var _a16;\n if (finishReason === \"tool-calls\") {\n for (const toolCall of toolCalls) {\n if (toolCall && !toolCall.sent) {\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_a16 = toolCall.id) != null ? _a16 : generateId(),\n toolName: toolCall.function.name,\n // Coerce invalid arguments to an empty JSON object\n input: isParsableJson(toolCall.function.arguments) ? toolCall.function.arguments : \"{}\"\n });\n toolCall.sent = true;\n }\n }\n }\n if (reasoningStarted) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: reasoningId || generateId()\n });\n }\n if (textStarted) {\n controller.enqueue({\n type: \"text-end\",\n id: textId || generateId()\n });\n }\n const openrouterMetadata = {\n usage: openrouterUsage\n };\n if (provider !== void 0) {\n openrouterMetadata.provider = provider;\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage,\n providerMetadata: {\n openrouter: openrouterMetadata\n }\n });\n }\n })\n ),\n warnings: [],\n request: { body: args },\n response: { headers: responseHeaders }\n };\n }\n};\n\n// src/completion/convert-to-openrouter-completion-prompt.ts\nfunction convertToOpenRouterCompletionPrompt({\n prompt,\n inputFormat,\n user = \"user\",\n assistant = \"assistant\"\n}) {\n if (inputFormat === \"prompt\" && prompt.length === 1 && prompt[0] && prompt[0].role === \"user\" && prompt[0].content.length === 1 && prompt[0].content[0] && prompt[0].content[0].type === \"text\") {\n return { prompt: prompt[0].content[0].text };\n }\n let text = \"\";\n if (prompt[0] && prompt[0].role === \"system\") {\n text += `${prompt[0].content}\n\n`;\n prompt = prompt.slice(1);\n }\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n throw new InvalidPromptError({\n message: `Unexpected system message in prompt: ${content}`,\n prompt\n });\n }\n case \"user\": {\n const userMessage = content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n case \"file\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"file attachments\"\n });\n }\n default: {\n return \"\";\n }\n }\n }).join(\"\");\n text += `${user}:\n${userMessage}\n\n`;\n break;\n }\n case \"assistant\": {\n const assistantMessage = content.map(\n (part) => {\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n case \"tool-call\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"tool-call messages\"\n });\n }\n case \"tool-result\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"tool-result messages\"\n });\n }\n case \"reasoning\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"reasoning messages\"\n });\n }\n case \"file\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"file attachments\"\n });\n }\n default: {\n return \"\";\n }\n }\n }\n ).join(\"\");\n text += `${assistant}:\n${assistantMessage}\n\n`;\n break;\n }\n case \"tool\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"tool messages\"\n });\n }\n default: {\n break;\n }\n }\n }\n text += `${assistant}:\n`;\n return {\n prompt: text\n };\n}\n\n// src/completion/schemas.ts\nimport { z as z7 } from \"zod/v4\";\nvar OpenRouterCompletionChunkSchema = z7.union([\n z7.object({\n id: z7.string().optional(),\n model: z7.string().optional(),\n choices: z7.array(\n z7.object({\n text: z7.string(),\n reasoning: z7.string().nullish().optional(),\n reasoning_details: ReasoningDetailArraySchema.nullish(),\n finish_reason: z7.string().nullish(),\n index: z7.number().nullish(),\n logprobs: z7.object({\n tokens: z7.array(z7.string()),\n token_logprobs: z7.array(z7.number()),\n top_logprobs: z7.array(z7.record(z7.string(), z7.number())).nullable()\n }).nullable().optional()\n })\n ),\n usage: z7.object({\n prompt_tokens: z7.number(),\n prompt_tokens_details: z7.object({\n cached_tokens: z7.number()\n }).nullish(),\n completion_tokens: z7.number(),\n completion_tokens_details: z7.object({\n reasoning_tokens: z7.number()\n }).nullish(),\n total_tokens: z7.number(),\n cost: z7.number().optional()\n }).nullish()\n }),\n OpenRouterErrorResponseSchema\n]);\n\n// src/completion/index.ts\nvar OpenRouterCompletionLanguageModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v2\";\n this.provider = \"openrouter\";\n this.supportedUrls = {\n \"image/*\": [\n /^data:image\\/[a-zA-Z]+;base64,/,\n /^https?:\\/\\/.+\\.(jpg|jpeg|png|gif|webp)$/i\n ],\n \"text/*\": [/^data:text\\//, /^https?:\\/\\/.+$/],\n \"application/*\": [/^data:application\\//, /^https?:\\/\\/.+$/]\n };\n this.defaultObjectGenerationMode = void 0;\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n frequencyPenalty,\n presencePenalty,\n seed,\n responseFormat,\n topK,\n stopSequences,\n tools,\n toolChoice\n }) {\n const { prompt: completionPrompt } = convertToOpenRouterCompletionPrompt({\n prompt,\n inputFormat: \"prompt\"\n });\n if (tools == null ? void 0 : tools.length) {\n throw new UnsupportedFunctionalityError({\n functionality: \"tools\"\n });\n }\n if (toolChoice) {\n throw new UnsupportedFunctionalityError({\n functionality: \"toolChoice\"\n });\n }\n return __spreadValues(__spreadValues({\n // model id:\n model: this.modelId,\n models: this.settings.models,\n // model specific settings:\n logit_bias: this.settings.logitBias,\n logprobs: typeof this.settings.logprobs === \"number\" ? this.settings.logprobs : typeof this.settings.logprobs === \"boolean\" ? this.settings.logprobs ? 0 : void 0 : void 0,\n suffix: this.settings.suffix,\n user: this.settings.user,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n seed,\n stop: stopSequences,\n response_format: responseFormat,\n top_k: topK,\n // prompt:\n prompt: completionPrompt,\n // OpenRouter specific settings:\n include_reasoning: this.settings.includeReasoning,\n reasoning: this.settings.reasoning\n }, this.config.extraBody), this.settings.extraBody);\n }\n async doGenerate(options) {\n var _a15, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions);\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenRouterCompletionChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n if (\"error\" in response) {\n throw new Error(`${response.error.message}`);\n }\n const choice = response.choices[0];\n if (!choice) {\n throw new Error(\"No choice in OpenRouter completion response\");\n }\n return {\n content: [\n {\n type: \"text\",\n text: (_a15 = choice.text) != null ? _a15 : \"\"\n }\n ],\n finishReason: mapOpenRouterFinishReason(choice.finish_reason),\n usage: {\n inputTokens: (_c = (_b = response.usage) == null ? void 0 : _b.prompt_tokens) != null ? _c : 0,\n outputTokens: (_e = (_d = response.usage) == null ? void 0 : _d.completion_tokens) != null ? _e : 0,\n totalTokens: ((_g = (_f = response.usage) == null ? void 0 : _f.prompt_tokens) != null ? _g : 0) + ((_i = (_h = response.usage) == null ? void 0 : _h.completion_tokens) != null ? _i : 0),\n reasoningTokens: (_l = (_k = (_j = response.usage) == null ? void 0 : _j.completion_tokens_details) == null ? void 0 : _k.reasoning_tokens) != null ? _l : 0,\n cachedInputTokens: (_o = (_n = (_m = response.usage) == null ? void 0 : _m.prompt_tokens_details) == null ? void 0 : _n.cached_tokens) != null ? _o : 0\n },\n warnings: [],\n response: {\n headers: responseHeaders\n }\n };\n }\n async doStream(options) {\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions);\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: __spreadProps(__spreadValues({}, args), {\n stream: true,\n // only include stream_options when in strict compatibility mode:\n stream_options: this.config.compatibility === \"strict\" ? { include_usage: true } : void 0\n }),\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n OpenRouterCompletionChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = \"other\";\n const usage = {\n inputTokens: Number.NaN,\n outputTokens: Number.NaN,\n totalTokens: Number.NaN,\n reasoningTokens: Number.NaN,\n cachedInputTokens: Number.NaN\n };\n const openrouterUsage = {};\n return {\n stream: response.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n var _a15, _b;\n if (!chunk.success) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (value.usage != null) {\n usage.inputTokens = value.usage.prompt_tokens;\n usage.outputTokens = value.usage.completion_tokens;\n usage.totalTokens = value.usage.prompt_tokens + value.usage.completion_tokens;\n openrouterUsage.promptTokens = value.usage.prompt_tokens;\n if (value.usage.prompt_tokens_details) {\n const cachedInputTokens = (_a15 = value.usage.prompt_tokens_details.cached_tokens) != null ? _a15 : 0;\n usage.cachedInputTokens = cachedInputTokens;\n openrouterUsage.promptTokensDetails = {\n cachedTokens: cachedInputTokens\n };\n }\n openrouterUsage.completionTokens = value.usage.completion_tokens;\n if (value.usage.completion_tokens_details) {\n const reasoningTokens = (_b = value.usage.completion_tokens_details.reasoning_tokens) != null ? _b : 0;\n usage.reasoningTokens = reasoningTokens;\n openrouterUsage.completionTokensDetails = {\n reasoningTokens\n };\n }\n openrouterUsage.cost = value.usage.cost;\n openrouterUsage.totalTokens = value.usage.total_tokens;\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = mapOpenRouterFinishReason(choice.finish_reason);\n }\n if ((choice == null ? void 0 : choice.text) != null) {\n controller.enqueue({\n type: \"text-delta\",\n delta: choice.text,\n id: generateId()\n });\n }\n },\n flush(controller) {\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage,\n providerMetadata: {\n openrouter: {\n usage: openrouterUsage\n }\n }\n });\n }\n })\n ),\n response: {\n headers: responseHeaders\n }\n };\n }\n};\n\n// src/facade.ts\nvar OpenRouter = class {\n /**\n * Creates a new OpenRouter provider instance.\n */\n constructor(options = {}) {\n var _a15, _b;\n this.baseURL = (_b = withoutTrailingSlash((_a15 = options.baseURL) != null ? _a15 : options.baseUrl)) != null ? _b : \"https://openrouter.ai/api/v1\";\n this.apiKey = options.apiKey;\n this.headers = options.headers;\n }\n get baseConfig() {\n return {\n baseURL: this.baseURL,\n headers: () => __spreadValues({\n Authorization: `Bearer ${loadApiKey({\n apiKey: this.apiKey,\n environmentVariableName: \"OPENROUTER_API_KEY\",\n description: \"OpenRouter\"\n })}`\n }, this.headers)\n };\n }\n chat(modelId, settings = {}) {\n return new OpenRouterChatLanguageModel(modelId, settings, __spreadProps(__spreadValues({\n provider: \"openrouter.chat\"\n }, this.baseConfig), {\n compatibility: \"strict\",\n url: ({ path }) => `${this.baseURL}${path}`\n }));\n }\n completion(modelId, settings = {}) {\n return new OpenRouterCompletionLanguageModel(modelId, settings, __spreadProps(__spreadValues({\n provider: \"openrouter.completion\"\n }, this.baseConfig), {\n compatibility: \"strict\",\n url: ({ path }) => `${this.baseURL}${path}`\n }));\n }\n};\n\n// src/provider.ts\nfunction createOpenRouter(options = {}) {\n var _a15, _b, _c;\n const baseURL = (_b = withoutTrailingSlash((_a15 = options.baseURL) != null ? _a15 : options.baseUrl)) != null ? _b : \"https://openrouter.ai/api/v1\";\n const compatibility = (_c = options.compatibility) != null ? _c : \"compatible\";\n const getHeaders = () => __spreadValues({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"OPENROUTER_API_KEY\",\n description: \"OpenRouter\"\n })}`\n }, options.headers);\n const createChatModel = (modelId, settings = {}) => new OpenRouterChatLanguageModel(modelId, settings, {\n provider: \"openrouter.chat\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n compatibility,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createCompletionModel = (modelId, settings = {}) => new OpenRouterCompletionLanguageModel(modelId, settings, {\n provider: \"openrouter.completion\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n compatibility,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createLanguageModel = (modelId, settings) => {\n if (new.target) {\n throw new Error(\n \"The OpenRouter model function cannot be called with the new keyword.\"\n );\n }\n if (modelId === \"openai/gpt-3.5-turbo-instruct\") {\n return createCompletionModel(\n modelId,\n settings\n );\n }\n return createChatModel(modelId, settings);\n };\n const provider = (modelId, settings) => createLanguageModel(modelId, settings);\n provider.languageModel = createLanguageModel;\n provider.chat = createChatModel;\n provider.completion = createCompletionModel;\n return provider;\n}\nvar openrouter = createOpenRouter({\n compatibility: \"strict\"\n // strict for OpenRouter API\n});\nexport {\n OpenRouter,\n createOpenRouter,\n openrouter\n};\n//# sourceMappingURL=index.mjs.map",
|
|
13
|
-
"/**\n * OpenRouter Provider\n */\n\nimport { createOpenRouter } from '@openrouter/ai-sdk-provider';\nimport type { LanguageModelV1 } from 'ai';\nimport type { AIProvider, ProviderModelDetails, ConfigField, ProviderConfig, ModelInfo } from './base-provider.js';\n\nimport { getModelMetadata } from '../utils/models-dev.js';\n\nexport class OpenRouterProvider implements AIProvider {\n readonly id = 'openrouter' as const;\n readonly name = 'OpenRouter';\n\n getConfigSchema(): ConfigField[] {\n return [\n {\n key: 'api-key',\n label: 'API Key',\n type: 'string',\n required: true,\n secret: true,\n description: 'Get your API key from https://openrouter.ai',\n placeholder: 'sk-or-...',\n },\n ];\n }\n\n isConfigured(config: ProviderConfig): boolean {\n return !!config['api-key'];\n }\n\n async fetchModels(config: ProviderConfig): Promise<ModelInfo[]> {\n const apiKey = config['api-key'] as string | undefined;\n\n // Retry logic for transient network issues\n const maxRetries = 2;\n let lastError: Error | unknown;\n\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n try {\n const response = await fetch('https://openrouter.ai/api/v1/models', {\n headers: apiKey ? { Authorization: `Bearer ${apiKey}` } : {},\n signal: AbortSignal.timeout(10000), // 10s timeout\n });\n\n if (!response.ok) {\n throw new Error(`API returned ${response.status}: ${response.statusText}`);\n }\n\n const data = (await response.json()) as {\n data: Array<{\n id: string;\n name: string;\n context_length?: number;\n pricing?: {\n prompt: string;\n completion: string;\n };\n }>;\n };\n\n return data.data.map((model) => ({\n id: model.id,\n name: model.name || model.id,\n }));\n } catch (error) {\n lastError = error;\n // Wait before retry (exponential backoff)\n if (attempt < maxRetries) {\n await new Promise(resolve => setTimeout(resolve, 100 * Math.pow(2, attempt)));\n }\n }\n }\n\n // All retries failed - throw detailed error\n const errorMsg = lastError instanceof Error ? lastError.message : String(lastError);\n throw new Error(`Failed to fetch models after ${maxRetries + 1} attempts: ${errorMsg}`);\n }\n\n async getModelDetails(modelId: string, config?: ProviderConfig): Promise<ProviderModelDetails | null> {\n const apiKey = config?.apiKey as string | undefined;\n\n // Try fetching from OpenRouter API\n try {\n const response = await fetch('https://openrouter.ai/api/v1/models', {\n headers: apiKey ? { Authorization: `Bearer ${apiKey}` } : {},\n });\n\n if (response.ok) {\n const data = (await response.json()) as {\n data: Array<{\n id: string;\n context_length?: number;\n top_provider?: {\n max_completion_tokens?: number;\n };\n pricing?: {\n prompt: string;\n completion: string;\n };\n }>;\n };\n\n const model = data.data.find((m) => m.id === modelId);\n if (model) {\n return {\n contextLength: model.context_length,\n maxOutput: model.top_provider?.max_completion_tokens,\n inputPrice: parseFloat(model.pricing?.prompt || '0'),\n outputPrice: parseFloat(model.pricing?.completion || '0'),\n };\n }\n }\n } catch {\n // Fall through to models.dev\n }\n\n // Fall back to models.dev\n const metadata = await getModelMetadata(modelId);\n if (metadata) {\n return {\n contextLength: metadata.contextLength,\n maxOutput: metadata.maxOutput,\n inputPrice: metadata.inputPrice,\n outputPrice: metadata.outputPrice,\n };\n }\n\n return null;\n }\n\n createClient(config: ProviderConfig, modelId: string): LanguageModelV1 {\n const apiKey = config['api-key'] as string;\n const openrouter = createOpenRouter({ apiKey });\n return openrouter(modelId);\n }\n}\n",
|
|
14
|
-
"#!/usr/bin/env node\n// (c) Anthropic PBC. All rights reserved. Use is subject to the Legal Agreements outlined here: https://docs.claude.com/en/docs/claude-code/legal-and-compliance.\n\n// Version: 0.1.30\n\n// Want to see the unminified source? We're hiring!\n// https://job-boards.greenhouse.io/anthropic/jobs/4816199008\nvar __create = Object.create;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __toESM = (mod, isNodeMode, target) => {\n target = mod != null ? __create(__getProtoOf(mod)) : {};\n const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target;\n for (let key of __getOwnPropNames(mod))\n if (!__hasOwnProp.call(to, key))\n __defProp(to, key, {\n get: () => mod[key],\n enumerable: true\n });\n return to;\n};\nvar __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: (newValue) => all[name] = () => newValue\n });\n};\n\n// ../node_modules/uri-js/dist/es5/uri.all.js\nvar require_uri_all = __commonJS((exports, module) => {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global2.URI = global2.URI || {});\n })(exports, function(exports2) {\n function merge() {\n for (var _len = arguments.length, sets = Array(_len), _key = 0;_key < _len; _key++) {\n sets[_key] = arguments[_key];\n }\n if (sets.length > 1) {\n sets[0] = sets[0].slice(0, -1);\n var xl = sets.length - 1;\n for (var x = 1;x < xl; ++x) {\n sets[x] = sets[x].slice(1, -1);\n }\n sets[xl] = sets[xl].slice(1);\n return sets.join(\"\");\n } else {\n return sets[0];\n }\n }\n function subexp(str) {\n return \"(?:\" + str + \")\";\n }\n function typeOf(o) {\n return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n }\n function toUpperCase(str) {\n return str.toUpperCase();\n }\n function toArray(obj) {\n return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];\n }\n function assign(target, source) {\n var obj = target;\n if (source) {\n for (var key in source) {\n obj[key] = source[key];\n }\n }\n return obj;\n }\n function buildExps(isIRI2) {\n var ALPHA$$ = \"[A-Za-z]\", CR$ = \"[\\\\x0D]\", DIGIT$$ = \"[0-9]\", DQUOTE$$ = \"[\\\\x22]\", HEXDIG$$2 = merge(DIGIT$$, \"[A-Fa-f]\"), LF$$ = \"[\\\\x0A]\", SP$$ = \"[\\\\x20]\", PCT_ENCODED$2 = subexp(subexp(\"%[EFef]\" + HEXDIG$$2 + \"%\" + HEXDIG$$2 + HEXDIG$$2 + \"%\" + HEXDIG$$2 + HEXDIG$$2) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$2 + \"%\" + HEXDIG$$2 + HEXDIG$$2) + \"|\" + subexp(\"%\" + HEXDIG$$2 + HEXDIG$$2)), GEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\", SUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\", RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$), UCSCHAR$$ = isIRI2 ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", IPRIVATE$$ = isIRI2 ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", UNRESERVED$$2 = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$), SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"), USERINFO$ = subexp(subexp(PCT_ENCODED$2 + \"|\" + merge(UNRESERVED$$2, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"), DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$), DEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$), H16$ = subexp(HEXDIG$$2 + \"{1,4}\"), LS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$), IPV6ADDRESS1$ = subexp(subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), IPV6ADDRESS2$ = subexp(\"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), IPV6ADDRESS3$ = subexp(subexp(H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$), IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"), IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")), ZONEID$ = subexp(subexp(UNRESERVED$$2 + \"|\" + PCT_ENCODED$2) + \"+\"), IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$2 + \"{2})\") + ZONEID$), IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$2 + \"+\\\\.\" + merge(UNRESERVED$$2, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"), IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), REG_NAME$ = subexp(subexp(PCT_ENCODED$2 + \"|\" + merge(UNRESERVED$$2, SUB_DELIMS$$)) + \"*\"), HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$), PORT$ = subexp(DIGIT$$ + \"*\"), AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"), PCHAR$ = subexp(PCT_ENCODED$2 + \"|\" + merge(UNRESERVED$$2, SUB_DELIMS$$, \"[\\\\:\\\\@]\")), SEGMENT$ = subexp(PCHAR$ + \"*\"), SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"), SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$2 + \"|\" + merge(UNRESERVED$$2, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"), PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"), PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\", PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$), QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"), FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"), HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$), URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"), RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$), RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"), URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$), ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"), GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\", RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\", ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\", SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\", AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\n return {\n NOT_SCHEME: new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n NOT_USERINFO: new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$2, SUB_DELIMS$$), \"g\"),\n NOT_HOST: new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$2, SUB_DELIMS$$), \"g\"),\n NOT_PATH: new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$2, SUB_DELIMS$$), \"g\"),\n NOT_PATH_NOSCHEME: new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$2, SUB_DELIMS$$), \"g\"),\n NOT_QUERY: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$2, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n NOT_FRAGMENT: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$2, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n ESCAPE: new RegExp(merge(\"[^]\", UNRESERVED$$2, SUB_DELIMS$$), \"g\"),\n UNRESERVED: new RegExp(UNRESERVED$$2, \"g\"),\n OTHER_CHARS: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$2, RESERVED$$), \"g\"),\n PCT_ENCODED: new RegExp(PCT_ENCODED$2, \"g\"),\n IPV4ADDRESS: new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$2 + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\")\n };\n }\n var URI_PROTOCOL = buildExps(false);\n var IRI_PROTOCOL = buildExps(true);\n var slicedToArray = function() {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s;!(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i)\n break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"])\n _i[\"return\"]();\n } finally {\n if (_d)\n throw _e;\n }\n }\n return _arr;\n }\n return function(arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var toConsumableArray = function(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length);i < arr.length; i++)\n arr2[i] = arr[i];\n return arr2;\n } else {\n return Array.from(arr);\n }\n };\n var maxInt = 2147483647;\n var base = 36;\n var tMin = 1;\n var tMax = 26;\n var skew = 38;\n var damp = 700;\n var initialBias = 72;\n var initialN = 128;\n var delimiter = \"-\";\n var regexPunycode = /^xn--/;\n var regexNonASCII = /[^\\0-\\x7E]/;\n var regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g;\n var errors2 = {\n overflow: \"Overflow: input needs wider integers to process\",\n \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n \"invalid-input\": \"Invalid input\"\n };\n var baseMinusTMin = base - tMin;\n var floor = Math.floor;\n var stringFromCharCode = String.fromCharCode;\n function error$1(type) {\n throw new RangeError(errors2[type]);\n }\n function map(array, fn) {\n var result = [];\n var length = array.length;\n while (length--) {\n result[length] = fn(array[length]);\n }\n return result;\n }\n function mapDomain(string, fn) {\n var parts = string.split(\"@\");\n var result = \"\";\n if (parts.length > 1) {\n result = parts[0] + \"@\";\n string = parts[1];\n }\n string = string.replace(regexSeparators, \".\");\n var labels = string.split(\".\");\n var encoded = map(labels, fn).join(\".\");\n return result + encoded;\n }\n function ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 55296 && value <= 56319 && counter < length) {\n var extra = string.charCodeAt(counter++);\n if ((extra & 64512) == 56320) {\n output.push(((value & 1023) << 10) + (extra & 1023) + 65536);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n }\n var ucs2encode = function ucs2encode(array) {\n return String.fromCodePoint.apply(String, toConsumableArray(array));\n };\n var basicToDigit = function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n return base;\n };\n var digitToBasic = function digitToBasic(digit, flag) {\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n };\n var adapt = function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (;delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n };\n var decode = function decode(input) {\n var output = [];\n var inputLength = input.length;\n var i = 0;\n var n = initialN;\n var bias = initialBias;\n var basic = input.lastIndexOf(delimiter);\n if (basic < 0) {\n basic = 0;\n }\n for (var j = 0;j < basic; ++j) {\n if (input.charCodeAt(j) >= 128) {\n error$1(\"not-basic\");\n }\n output.push(input.charCodeAt(j));\n }\n for (var index = basic > 0 ? basic + 1 : 0;index < inputLength; ) {\n var oldi = i;\n for (var w = 1, k = base;; k += base) {\n if (index >= inputLength) {\n error$1(\"invalid-input\");\n }\n var digit = basicToDigit(input.charCodeAt(index++));\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error$1(\"overflow\");\n }\n i += digit * w;\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (digit < t) {\n break;\n }\n var baseMinusT = base - t;\n if (w > floor(maxInt / baseMinusT)) {\n error$1(\"overflow\");\n }\n w *= baseMinusT;\n }\n var out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0);\n if (floor(i / out) > maxInt - n) {\n error$1(\"overflow\");\n }\n n += floor(i / out);\n i %= out;\n output.splice(i++, 0, n);\n }\n return String.fromCodePoint.apply(String, output);\n };\n var encode = function encode(input) {\n var output = [];\n input = ucs2decode(input);\n var inputLength = input.length;\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n for (var _iterator = input[Symbol.iterator](), _step;!(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _currentValue2 = _step.value;\n if (_currentValue2 < 128) {\n output.push(stringFromCharCode(_currentValue2));\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var basicLength = output.length;\n var handledCPCount = basicLength;\n if (basicLength) {\n output.push(delimiter);\n }\n while (handledCPCount < inputLength) {\n var m = maxInt;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n try {\n for (var _iterator2 = input[Symbol.iterator](), _step2;!(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var currentValue = _step2.value;\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error$1(\"overflow\");\n }\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n try {\n for (var _iterator3 = input[Symbol.iterator](), _step3;!(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _currentValue = _step3.value;\n if (_currentValue < n && ++delta > maxInt) {\n error$1(\"overflow\");\n }\n if (_currentValue == n) {\n var q = delta;\n for (var k = base;; k += base) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) {\n break;\n }\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n ++delta;\n ++n;\n }\n return output.join(\"\");\n };\n var toUnicode = function toUnicode(input) {\n return mapDomain(input, function(string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n };\n var toASCII = function toASCII(input) {\n return mapDomain(input, function(string) {\n return regexNonASCII.test(string) ? \"xn--\" + encode(string) : string;\n });\n };\n var punycode = {\n version: \"2.1.0\",\n ucs2: {\n decode: ucs2decode,\n encode: ucs2encode\n },\n decode,\n encode,\n toASCII,\n toUnicode\n };\n var SCHEMES = {};\n function pctEncChar(chr) {\n var c = chr.charCodeAt(0);\n var e = undefined;\n if (c < 16)\n e = \"%0\" + c.toString(16).toUpperCase();\n else if (c < 128)\n e = \"%\" + c.toString(16).toUpperCase();\n else if (c < 2048)\n e = \"%\" + (c >> 6 | 192).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();\n else\n e = \"%\" + (c >> 12 | 224).toString(16).toUpperCase() + \"%\" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();\n return e;\n }\n function pctDecChars(str) {\n var newStr = \"\";\n var i = 0;\n var il = str.length;\n while (i < il) {\n var c = parseInt(str.substr(i + 1, 2), 16);\n if (c < 128) {\n newStr += String.fromCharCode(c);\n i += 3;\n } else if (c >= 194 && c < 224) {\n if (il - i >= 6) {\n var c2 = parseInt(str.substr(i + 4, 2), 16);\n newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);\n } else {\n newStr += str.substr(i, 6);\n }\n i += 6;\n } else if (c >= 224) {\n if (il - i >= 9) {\n var _c = parseInt(str.substr(i + 4, 2), 16);\n var c3 = parseInt(str.substr(i + 7, 2), 16);\n newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);\n } else {\n newStr += str.substr(i, 9);\n }\n i += 9;\n } else {\n newStr += str.substr(i, 3);\n i += 3;\n }\n }\n return newStr;\n }\n function _normalizeComponentEncoding(components, protocol) {\n function decodeUnreserved2(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(protocol.UNRESERVED) ? str : decStr;\n }\n if (components.scheme)\n components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved2).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n if (components.userinfo !== undefined)\n components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.host !== undefined)\n components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved2).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.path !== undefined)\n components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.query !== undefined)\n components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.fragment !== undefined)\n components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved2).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n return components;\n }\n function _stripLeadingZeros(str) {\n return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n }\n function _normalizeIPv4(host, protocol) {\n var matches = host.match(protocol.IPV4ADDRESS) || [];\n var _matches = slicedToArray(matches, 2), address = _matches[1];\n if (address) {\n return address.split(\".\").map(_stripLeadingZeros).join(\".\");\n } else {\n return host;\n }\n }\n function _normalizeIPv6(host, protocol) {\n var matches = host.match(protocol.IPV6ADDRESS) || [];\n var _matches2 = slicedToArray(matches, 3), address = _matches2[1], zone = _matches2[2];\n if (address) {\n var _address$toLowerCase$ = address.toLowerCase().split(\"::\").reverse(), _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2), last = _address$toLowerCase$2[0], first = _address$toLowerCase$2[1];\n var firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n var lastFields = last.split(\":\").map(_stripLeadingZeros);\n var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n var fieldCount = isLastFieldIPv4Address ? 7 : 8;\n var lastFieldsStart = lastFields.length - fieldCount;\n var fields = Array(fieldCount);\n for (var x = 0;x < fieldCount; ++x) {\n fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || \"\";\n }\n if (isLastFieldIPv4Address) {\n fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n }\n var allZeroFields = fields.reduce(function(acc, field, index) {\n if (!field || field === \"0\") {\n var lastLongest = acc[acc.length - 1];\n if (lastLongest && lastLongest.index + lastLongest.length === index) {\n lastLongest.length++;\n } else {\n acc.push({ index, length: 1 });\n }\n }\n return acc;\n }, []);\n var longestZeroFields = allZeroFields.sort(function(a, b) {\n return b.length - a.length;\n })[0];\n var newHost = undefined;\n if (longestZeroFields && longestZeroFields.length > 1) {\n var newFirst = fields.slice(0, longestZeroFields.index);\n var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n newHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n } else {\n newHost = fields.join(\":\");\n }\n if (zone) {\n newHost += \"%\" + zone;\n }\n return newHost;\n } else {\n return host;\n }\n }\n var URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\n var NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\n function parse(uriString) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var components = {};\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n if (options.reference === \"suffix\")\n uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n var matches = uriString.match(URI_PARSE);\n if (matches) {\n if (NO_MATCH_IS_UNDEFINED) {\n components.scheme = matches[1];\n components.userinfo = matches[3];\n components.host = matches[4];\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = matches[7];\n components.fragment = matches[8];\n if (isNaN(components.port)) {\n components.port = matches[5];\n }\n } else {\n components.scheme = matches[1] || undefined;\n components.userinfo = uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined;\n components.host = uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined;\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined;\n components.fragment = uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined;\n if (isNaN(components.port)) {\n components.port = uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined;\n }\n }\n if (components.host) {\n components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n }\n if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n components.reference = \"same-document\";\n } else if (components.scheme === undefined) {\n components.reference = \"relative\";\n } else if (components.fragment === undefined) {\n components.reference = \"absolute\";\n } else {\n components.reference = \"uri\";\n }\n if (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n components.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n }\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {\n try {\n components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n }\n }\n _normalizeComponentEncoding(components, URI_PROTOCOL);\n } else {\n _normalizeComponentEncoding(components, protocol);\n }\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(components, options);\n }\n } else {\n components.error = components.error || \"URI can not be parsed.\";\n }\n return components;\n }\n function _recomposeAuthority(components, options) {\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo);\n uriTokens.push(\"@\");\n }\n if (components.host !== undefined) {\n uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function(_, $1, $2) {\n return \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\";\n }));\n }\n if (typeof components.port === \"number\" || typeof components.port === \"string\") {\n uriTokens.push(\":\");\n uriTokens.push(String(components.port));\n }\n return uriTokens.length ? uriTokens.join(\"\") : undefined;\n }\n var RDS1 = /^\\.\\.?\\//;\n var RDS2 = /^\\/\\.(\\/|$)/;\n var RDS3 = /^\\/\\.\\.(\\/|$)/;\n var RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n function removeDotSegments(input) {\n var output = [];\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, \"\");\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, \"/\");\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, \"/\");\n output.pop();\n } else if (input === \".\" || input === \"..\") {\n input = \"\";\n } else {\n var im = input.match(RDS5);\n if (im) {\n var s = im[0];\n input = input.slice(s.length);\n output.push(s);\n } else {\n throw new Error(\"Unexpected dot segment condition\");\n }\n }\n }\n return output.join(\"\");\n }\n function serialize(components) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n if (schemeHandler && schemeHandler.serialize)\n schemeHandler.serialize(components, options);\n if (components.host) {\n if (protocol.IPV6ADDRESS.test(components.host)) {} else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {\n try {\n components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n }\n }\n _normalizeComponentEncoding(components, protocol);\n if (options.reference !== \"suffix\" && components.scheme) {\n uriTokens.push(components.scheme);\n uriTokens.push(\":\");\n }\n var authority = _recomposeAuthority(components, options);\n if (authority !== undefined) {\n if (options.reference !== \"suffix\") {\n uriTokens.push(\"//\");\n }\n uriTokens.push(authority);\n if (components.path && components.path.charAt(0) !== \"/\") {\n uriTokens.push(\"/\");\n }\n }\n if (components.path !== undefined) {\n var s = components.path;\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s);\n }\n if (authority === undefined) {\n s = s.replace(/^\\/\\//, \"/%2F\");\n }\n uriTokens.push(s);\n }\n if (components.query !== undefined) {\n uriTokens.push(\"?\");\n uriTokens.push(components.query);\n }\n if (components.fragment !== undefined) {\n uriTokens.push(\"#\");\n uriTokens.push(components.fragment);\n }\n return uriTokens.join(\"\");\n }\n function resolveComponents(base2, relative) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var skipNormalization = arguments[3];\n var target = {};\n if (!skipNormalization) {\n base2 = parse(serialize(base2, options), options);\n relative = parse(serialize(relative, options), options);\n }\n options = options || {};\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (!relative.path) {\n target.path = base2.path;\n if (relative.query !== undefined) {\n target.query = relative.query;\n } else {\n target.query = base2.query;\n }\n } else {\n if (relative.path.charAt(0) === \"/\") {\n target.path = removeDotSegments(relative.path);\n } else {\n if ((base2.userinfo !== undefined || base2.host !== undefined || base2.port !== undefined) && !base2.path) {\n target.path = \"/\" + relative.path;\n } else if (!base2.path) {\n target.path = relative.path;\n } else {\n target.path = base2.path.slice(0, base2.path.lastIndexOf(\"/\") + 1) + relative.path;\n }\n target.path = removeDotSegments(target.path);\n }\n target.query = relative.query;\n }\n target.userinfo = base2.userinfo;\n target.host = base2.host;\n target.port = base2.port;\n }\n target.scheme = base2.scheme;\n }\n target.fragment = relative.fragment;\n return target;\n }\n function resolve(baseURI, relativeURI, options) {\n var schemelessOptions = assign({ scheme: \"null\" }, options);\n return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n }\n function normalize(uri, options) {\n if (typeof uri === \"string\") {\n uri = serialize(parse(uri, options), options);\n } else if (typeOf(uri) === \"object\") {\n uri = parse(serialize(uri, options), options);\n }\n return uri;\n }\n function equal(uriA, uriB, options) {\n if (typeof uriA === \"string\") {\n uriA = serialize(parse(uriA, options), options);\n } else if (typeOf(uriA) === \"object\") {\n uriA = serialize(uriA, options);\n }\n if (typeof uriB === \"string\") {\n uriB = serialize(parse(uriB, options), options);\n } else if (typeOf(uriB) === \"object\") {\n uriB = serialize(uriB, options);\n }\n return uriA === uriB;\n }\n function escapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n }\n function unescapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n }\n var handler = {\n scheme: \"http\",\n domainHost: true,\n parse: function parse(components, options) {\n if (!components.host) {\n components.error = components.error || \"HTTP URIs must have a host.\";\n }\n return components;\n },\n serialize: function serialize(components, options) {\n var secure = String(components.scheme).toLowerCase() === \"https\";\n if (components.port === (secure ? 443 : 80) || components.port === \"\") {\n components.port = undefined;\n }\n if (!components.path) {\n components.path = \"/\";\n }\n return components;\n }\n };\n var handler$1 = {\n scheme: \"https\",\n domainHost: handler.domainHost,\n parse: handler.parse,\n serialize: handler.serialize\n };\n function isSecure(wsComponents) {\n return typeof wsComponents.secure === \"boolean\" ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n }\n var handler$2 = {\n scheme: \"ws\",\n domainHost: true,\n parse: function parse(components, options) {\n var wsComponents = components;\n wsComponents.secure = isSecure(wsComponents);\n wsComponents.resourceName = (wsComponents.path || \"/\") + (wsComponents.query ? \"?\" + wsComponents.query : \"\");\n wsComponents.path = undefined;\n wsComponents.query = undefined;\n return wsComponents;\n },\n serialize: function serialize(wsComponents, options) {\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n wsComponents.port = undefined;\n }\n if (typeof wsComponents.secure === \"boolean\") {\n wsComponents.scheme = wsComponents.secure ? \"wss\" : \"ws\";\n wsComponents.secure = undefined;\n }\n if (wsComponents.resourceName) {\n var _wsComponents$resourc = wsComponents.resourceName.split(\"?\"), _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2), path = _wsComponents$resourc2[0], query = _wsComponents$resourc2[1];\n wsComponents.path = path && path !== \"/\" ? path : undefined;\n wsComponents.query = query;\n wsComponents.resourceName = undefined;\n }\n wsComponents.fragment = undefined;\n return wsComponents;\n }\n };\n var handler$3 = {\n scheme: \"wss\",\n domainHost: handler$2.domainHost,\n parse: handler$2.parse,\n serialize: handler$2.serialize\n };\n var O = {};\n var isIRI = true;\n var UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\n var HEXDIG$$ = \"[0-9A-Fa-f]\";\n var PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$));\n var ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n var QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\n var VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\n var SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\n var UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\n var PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\n var NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\\\\"]\", VCHAR$$), \"g\");\n var NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\n var NOT_HFVALUE = NOT_HFNAME;\n function decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(UNRESERVED) ? str : decStr;\n }\n var handler$4 = {\n scheme: \"mailto\",\n parse: function parse$$1(components, options) {\n var mailtoComponents = components;\n var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(\",\") : [];\n mailtoComponents.path = undefined;\n if (mailtoComponents.query) {\n var unknownHeaders = false;\n var headers = {};\n var hfields = mailtoComponents.query.split(\"&\");\n for (var x = 0, xl = hfields.length;x < xl; ++x) {\n var hfield = hfields[x].split(\"=\");\n switch (hfield[0]) {\n case \"to\":\n var toAddrs = hfield[1].split(\",\");\n for (var _x = 0, _xl = toAddrs.length;_x < _xl; ++_x) {\n to.push(toAddrs[_x]);\n }\n break;\n case \"subject\":\n mailtoComponents.subject = unescapeComponent(hfield[1], options);\n break;\n case \"body\":\n mailtoComponents.body = unescapeComponent(hfield[1], options);\n break;\n default:\n unknownHeaders = true;\n headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n break;\n }\n }\n if (unknownHeaders)\n mailtoComponents.headers = headers;\n }\n mailtoComponents.query = undefined;\n for (var _x2 = 0, _xl2 = to.length;_x2 < _xl2; ++_x2) {\n var addr = to[_x2].split(\"@\");\n addr[0] = unescapeComponent(addr[0]);\n if (!options.unicodeSupport) {\n try {\n addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n } catch (e) {\n mailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n }\n } else {\n addr[1] = unescapeComponent(addr[1], options).toLowerCase();\n }\n to[_x2] = addr.join(\"@\");\n }\n return mailtoComponents;\n },\n serialize: function serialize$$1(mailtoComponents, options) {\n var components = mailtoComponents;\n var to = toArray(mailtoComponents.to);\n if (to) {\n for (var x = 0, xl = to.length;x < xl; ++x) {\n var toAddr = String(to[x]);\n var atIdx = toAddr.lastIndexOf(\"@\");\n var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n var domain = toAddr.slice(atIdx + 1);\n try {\n domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);\n } catch (e) {\n components.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n to[x] = localPart + \"@\" + domain;\n }\n components.path = to.join(\",\");\n }\n var headers = mailtoComponents.headers = mailtoComponents.headers || {};\n if (mailtoComponents.subject)\n headers[\"subject\"] = mailtoComponents.subject;\n if (mailtoComponents.body)\n headers[\"body\"] = mailtoComponents.body;\n var fields = [];\n for (var name in headers) {\n if (headers[name] !== O[name]) {\n fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + \"=\" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));\n }\n }\n if (fields.length) {\n components.query = fields.join(\"&\");\n }\n return components;\n }\n };\n var URN_PARSE = /^([^\\:]+)\\:(.*)/;\n var handler$5 = {\n scheme: \"urn\",\n parse: function parse$$1(components, options) {\n var matches = components.path && components.path.match(URN_PARSE);\n var urnComponents = components;\n if (matches) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = matches[1].toLowerCase();\n var nss = matches[2];\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n urnComponents.nid = nid;\n urnComponents.nss = nss;\n urnComponents.path = undefined;\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options);\n }\n } else {\n urnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n }\n return urnComponents;\n },\n serialize: function serialize$$1(urnComponents, options) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = urnComponents.nid;\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options);\n }\n var uriComponents = urnComponents;\n var nss = urnComponents.nss;\n uriComponents.path = (nid || options.nid) + \":\" + nss;\n return uriComponents;\n }\n };\n var UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\n var handler$6 = {\n scheme: \"urn:uuid\",\n parse: function parse(urnComponents, options) {\n var uuidComponents = urnComponents;\n uuidComponents.uuid = uuidComponents.nss;\n uuidComponents.nss = undefined;\n if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n uuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n }\n return uuidComponents;\n },\n serialize: function serialize(uuidComponents, options) {\n var urnComponents = uuidComponents;\n urnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n return urnComponents;\n }\n };\n SCHEMES[handler.scheme] = handler;\n SCHEMES[handler$1.scheme] = handler$1;\n SCHEMES[handler$2.scheme] = handler$2;\n SCHEMES[handler$3.scheme] = handler$3;\n SCHEMES[handler$4.scheme] = handler$4;\n SCHEMES[handler$5.scheme] = handler$5;\n SCHEMES[handler$6.scheme] = handler$6;\n exports2.SCHEMES = SCHEMES;\n exports2.pctEncChar = pctEncChar;\n exports2.pctDecChars = pctDecChars;\n exports2.parse = parse;\n exports2.removeDotSegments = removeDotSegments;\n exports2.serialize = serialize;\n exports2.resolveComponents = resolveComponents;\n exports2.resolve = resolve;\n exports2.normalize = normalize;\n exports2.equal = equal;\n exports2.escapeComponent = escapeComponent;\n exports2.unescapeComponent = unescapeComponent;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n});\n\n// ../node_modules/fast-deep-equal/index.js\nvar require_fast_deep_equal = __commonJS((exports, module) => {\n module.exports = function equal(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a == \"object\" && typeof b == \"object\") {\n if (a.constructor !== b.constructor)\n return false;\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length)\n return false;\n for (i = length;i-- !== 0; )\n if (!equal(a[i], b[i]))\n return false;\n return true;\n }\n if (a.constructor === RegExp)\n return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf)\n return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString)\n return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length)\n return false;\n for (i = length;i-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(b, keys[i]))\n return false;\n for (i = length;i-- !== 0; ) {\n var key = keys[i];\n if (!equal(a[key], b[key]))\n return false;\n }\n return true;\n }\n return a !== a && b !== b;\n };\n});\n\n// ../node_modules/ajv/lib/compile/ucs2length.js\nvar require_ucs2length = __commonJS((exports, module) => {\n module.exports = function ucs2length(str) {\n var length = 0, len = str.length, pos = 0, value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 55296 && value <= 56319 && pos < len) {\n value = str.charCodeAt(pos);\n if ((value & 64512) == 56320)\n pos++;\n }\n }\n return length;\n };\n});\n\n// ../node_modules/ajv/lib/compile/util.js\nvar require_util = __commonJS((exports, module) => {\n module.exports = {\n copy,\n checkDataType,\n checkDataTypes,\n coerceToTypes,\n toHash,\n getProperty,\n escapeQuotes,\n equal: require_fast_deep_equal(),\n ucs2length: require_ucs2length(),\n varOccurences,\n varReplace,\n schemaHasRules,\n schemaHasRulesExcept,\n schemaUnknownRules,\n toQuotedString,\n getPathExpr,\n getPath,\n getData,\n unescapeFragment,\n unescapeJsonPointer,\n escapeFragment,\n escapeJsonPointer\n };\n function copy(o, to) {\n to = to || {};\n for (var key in o)\n to[key] = o[key];\n return to;\n }\n function checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? \" !== \" : \" === \", AND = negate ? \" || \" : \" && \", OK2 = negate ? \"!\" : \"\", NOT = negate ? \"\" : \"!\";\n switch (dataType) {\n case \"null\":\n return data + EQUAL + \"null\";\n case \"array\":\n return OK2 + \"Array.isArray(\" + data + \")\";\n case \"object\":\n return \"(\" + OK2 + data + AND + \"typeof \" + data + EQUAL + '\"object\"' + AND + NOT + \"Array.isArray(\" + data + \"))\";\n case \"integer\":\n return \"(typeof \" + data + EQUAL + '\"number\"' + AND + NOT + \"(\" + data + \" % 1)\" + AND + data + EQUAL + data + (strictNumbers ? AND + OK2 + \"isFinite(\" + data + \")\" : \"\") + \")\";\n case \"number\":\n return \"(typeof \" + data + EQUAL + '\"' + dataType + '\"' + (strictNumbers ? AND + OK2 + \"isFinite(\" + data + \")\" : \"\") + \")\";\n default:\n return \"typeof \" + data + EQUAL + '\"' + dataType + '\"';\n }\n }\n function checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1:\n return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = \"\";\n var types2 = toHash(dataTypes);\n if (types2.array && types2.object) {\n code = types2.null ? \"(\" : \"(!\" + data + \" || \";\n code += \"typeof \" + data + ' !== \"object\")';\n delete types2.null;\n delete types2.array;\n delete types2.object;\n }\n if (types2.number)\n delete types2.integer;\n for (var t in types2)\n code += (code ? \" && \" : \"\") + checkDataType(t, data, strictNumbers, true);\n return code;\n }\n }\n var COERCE_TO_TYPES = toHash([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\n function coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types2 = [];\n for (var i = 0;i < dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t])\n types2[types2.length] = t;\n else if (optionCoerceTypes === \"array\" && t === \"array\")\n types2[types2.length] = t;\n }\n if (types2.length)\n return types2;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === \"array\" && dataTypes === \"array\") {\n return [\"array\"];\n }\n }\n function toHash(arr) {\n var hash = {};\n for (var i = 0;i < arr.length; i++)\n hash[arr[i]] = true;\n return hash;\n }\n var IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\n var SINGLE_QUOTE = /'|\\\\/g;\n function getProperty(key) {\n return typeof key == \"number\" ? \"[\" + key + \"]\" : IDENTIFIER.test(key) ? \".\" + key : \"['\" + escapeQuotes(key) + \"']\";\n }\n function escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, \"\\\\$&\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/\\f/g, \"\\\\f\").replace(/\\t/g, \"\\\\t\");\n }\n function varOccurences(str, dataVar) {\n dataVar += \"[^0-9]\";\n var matches = str.match(new RegExp(dataVar, \"g\"));\n return matches ? matches.length : 0;\n }\n function varReplace(str, dataVar, expr) {\n dataVar += \"([^0-9])\";\n expr = expr.replace(/\\$/g, \"$$$$\");\n return str.replace(new RegExp(dataVar, \"g\"), expr + \"$1\");\n }\n function schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (var key in schema)\n if (rules[key])\n return true;\n }\n function schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == \"boolean\")\n return !schema && exceptKeyword != \"not\";\n for (var key in schema)\n if (key != exceptKeyword && rules[key])\n return true;\n }\n function schemaUnknownRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return;\n for (var key in schema)\n if (!rules[key])\n return key;\n }\n function toQuotedString(str) {\n return \"'\" + escapeQuotes(str) + \"'\";\n }\n function getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers ? \"'/' + \" + expr + (isNumber ? \"\" : \".replace(/~/g, '~0').replace(/\\\\//g, '~1')\") : isNumber ? \"'[' + \" + expr + \" + ']'\" : \"'[\\\\'' + \" + expr + \" + '\\\\']'\";\n return joinPaths(currentPath, path);\n }\n function getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers ? toQuotedString(\"/\" + escapeJsonPointer(prop)) : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n }\n var JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\n var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\n function getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === \"\")\n return \"rootData\";\n if ($data[0] == \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(\"Invalid JSON-pointer: \" + $data);\n jsonPointer = $data;\n data = \"rootData\";\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches)\n throw new Error(\"Invalid JSON-pointer: \" + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == \"#\") {\n if (up >= lvl)\n throw new Error(\"Cannot access property/index \" + up + \" levels up, current level is \" + lvl);\n return paths[lvl - up];\n }\n if (up > lvl)\n throw new Error(\"Cannot access data \" + up + \" levels up, current level is \" + lvl);\n data = \"data\" + (lvl - up || \"\");\n if (!jsonPointer)\n return data;\n }\n var expr = data;\n var segments = jsonPointer.split(\"/\");\n for (var i = 0;i < segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += \" && \" + data;\n }\n }\n return expr;\n }\n function joinPaths(a, b) {\n if (a == '\"\"')\n return b;\n return (a + \" + \" + b).replace(/([^\\\\])' \\+ '/g, \"$1\");\n }\n function unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n }\n function escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n }\n function escapeJsonPointer(str) {\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n }\n function unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n }\n});\n\n// ../node_modules/ajv/lib/compile/schema_obj.js\nvar require_schema_obj = __commonJS((exports, module) => {\n var util3 = require_util();\n module.exports = SchemaObject;\n function SchemaObject(obj) {\n util3.copy(obj, this);\n }\n});\n\n// ../node_modules/json-schema-traverse/index.js\nvar require_json_schema_traverse = __commonJS((exports, module) => {\n var traverse = module.exports = function(schema, opts, cb) {\n if (typeof opts == \"function\") {\n cb = opts;\n opts = {};\n }\n cb = opts.cb || cb;\n var pre = typeof cb == \"function\" ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n _traverse(opts, pre, post, schema, \"\", schema);\n };\n traverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n };\n traverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n };\n traverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n };\n traverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n };\n function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == \"object\" && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i = 0;i < sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + \"/\" + key + \"/\" + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == \"object\") {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + \"/\" + key + \"/\" + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || opts.allKeys && !(key in traverse.skipKeywords)) {\n _traverse(opts, pre, post, sch, jsonPtr + \"/\" + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n }\n function escapeJsonPtr(str) {\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n }\n});\n\n// ../node_modules/ajv/lib/compile/resolve.js\nvar require_resolve = __commonJS((exports, module) => {\n var URI = require_uri_all();\n var equal = require_fast_deep_equal();\n var util3 = require_util();\n var SchemaObject = require_schema_obj();\n var traverse = require_json_schema_traverse();\n module.exports = resolve;\n resolve.normalizeId = normalizeId;\n resolve.fullPath = getFullPath;\n resolve.url = resolveUrl;\n resolve.ids = resolveIds;\n resolve.inlineRef = inlineRef;\n resolve.schema = resolveSchema;\n function resolve(compile, root2, ref) {\n var refVal = this._refs[ref];\n if (typeof refVal == \"string\") {\n if (this._refs[refVal])\n refVal = this._refs[refVal];\n else\n return resolve.call(this, compile, root2, refVal);\n }\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs) ? refVal.schema : refVal.validate || this._compile(refVal);\n }\n var res = resolveSchema.call(this, root2, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root2 = res.root;\n baseId = res.baseId;\n }\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root2, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs) ? schema : compile.call(this, schema, root2, undefined, baseId);\n }\n return v;\n }\n function resolveSchema(root2, ref) {\n var p = URI.parse(ref), refPath = _getFullPath(p), baseId = getFullPath(this._getId(root2.schema));\n if (Object.keys(root2.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == \"string\") {\n return resolveRecursive.call(this, root2, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate)\n this._compile(refVal);\n root2 = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate)\n this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root2, baseId };\n root2 = refVal;\n } else {\n return;\n }\n }\n if (!root2.schema)\n return;\n baseId = getFullPath(this._getId(root2.schema));\n }\n return getJsonPointer.call(this, p, baseId, root2.schema, root2);\n }\n function resolveRecursive(root2, ref, parsedRef) {\n var res = resolveSchema.call(this, root2, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root2 = res.root;\n var id = this._getId(schema);\n if (id)\n baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root2);\n }\n }\n var PREVENT_SCOPE_CHANGE = util3.toHash([\"properties\", \"patternProperties\", \"enum\", \"dependencies\", \"definitions\"]);\n function getJsonPointer(parsedRef, baseId, schema, root2) {\n parsedRef.fragment = parsedRef.fragment || \"\";\n if (parsedRef.fragment.slice(0, 1) != \"/\")\n return;\n var parts = parsedRef.fragment.split(\"/\");\n for (var i = 1;i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util3.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined)\n break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id)\n baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root2, $ref);\n if (res) {\n schema = res.schema;\n root2 = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root2.schema)\n return { schema, root: root2, baseId };\n }\n var SIMPLE_INLINED = util3.toHash([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\"\n ]);\n function inlineRef(schema, limit) {\n if (limit === false)\n return false;\n if (limit === undefined || limit === true)\n return checkNoRef(schema);\n else if (limit)\n return countKeys(schema) <= limit;\n }\n function checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i = 0;i < schema.length; i++) {\n item = schema[i];\n if (typeof item == \"object\" && !checkNoRef(item))\n return false;\n }\n } else {\n for (var key in schema) {\n if (key == \"$ref\")\n return false;\n item = schema[key];\n if (typeof item == \"object\" && !checkNoRef(item))\n return false;\n }\n }\n return true;\n }\n function countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i = 0;i < schema.length; i++) {\n item = schema[i];\n if (typeof item == \"object\")\n count += countKeys(item);\n if (count == Infinity)\n return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == \"$ref\")\n return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == \"object\")\n count += countKeys(item) + 1;\n if (count == Infinity)\n return Infinity;\n }\n }\n }\n return count;\n }\n function getFullPath(id, normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n }\n function _getFullPath(p) {\n return URI.serialize(p).split(\"#\")[0] + \"#\";\n }\n var TRAILING_SLASH_HASH = /#\\/?$/;\n function normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n }\n function resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n }\n function resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = { \"\": schemaId };\n var fullPaths = { \"\": getFullPath(schemaId, false) };\n var localRefs = {};\n var self2 = this;\n traverse(schema, { allKeys: true }, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === \"\")\n return;\n var id = self2._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + \"/\" + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += \"/\" + (typeof keyIndex == \"number\" ? keyIndex : util3.escapeFragment(keyIndex));\n if (typeof id == \"string\") {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n var refVal = self2._refs[id];\n if (typeof refVal == \"string\")\n refVal = self2._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == \"#\") {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self2._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n return localRefs;\n }\n});\n\n// ../node_modules/ajv/lib/compile/error_classes.js\nvar require_error_classes = __commonJS((exports, module) => {\n var resolve = require_resolve();\n module.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n };\n function ValidationError(errors2) {\n this.message = \"validation failed\";\n this.errors = errors2;\n this.ajv = this.validation = true;\n }\n MissingRefError.message = function(baseId, ref) {\n return \"can't resolve reference \" + ref + \" from id \" + baseId;\n };\n function MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n }\n function errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n }\n});\n\n// ../node_modules/fast-json-stable-stringify/index.js\nvar require_fast_json_stable_stringify = __commonJS((exports, module) => {\n module.exports = function(data, opts) {\n if (!opts)\n opts = {};\n if (typeof opts === \"function\")\n opts = { cmp: opts };\n var cycles = typeof opts.cycles === \"boolean\" ? opts.cycles : false;\n var cmp = opts.cmp && function(f) {\n return function(node) {\n return function(a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n }(opts.cmp);\n var seen = [];\n return function stringify(node) {\n if (node && node.toJSON && typeof node.toJSON === \"function\") {\n node = node.toJSON();\n }\n if (node === undefined)\n return;\n if (typeof node == \"number\")\n return isFinite(node) ? \"\" + node : \"null\";\n if (typeof node !== \"object\")\n return JSON.stringify(node);\n var i, out;\n if (Array.isArray(node)) {\n out = \"[\";\n for (i = 0;i < node.length; i++) {\n if (i)\n out += \",\";\n out += stringify(node[i]) || \"null\";\n }\n return out + \"]\";\n }\n if (node === null)\n return \"null\";\n if (seen.indexOf(node) !== -1) {\n if (cycles)\n return JSON.stringify(\"__cycle__\");\n throw new TypeError(\"Converting circular structure to JSON\");\n }\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = \"\";\n for (i = 0;i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n if (!value)\n continue;\n if (out)\n out += \",\";\n out += JSON.stringify(key) + \":\" + value;\n }\n seen.splice(seenIndex, 1);\n return \"{\" + out + \"}\";\n }(data);\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/validate.js\nvar require_validate = __commonJS((exports, module) => {\n module.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = \"\";\n var $async = it.schema.$async === true, $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, \"$ref\"), $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = \"unknown keyword: \" + $unknownKwd;\n if (it.opts.strictKeywords === \"log\")\n it.logger.warn($keywordsMsg);\n else\n throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += \" var validate = \";\n if ($async) {\n it.async = true;\n out += \"async \";\n }\n out += \"function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; \";\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += \" \" + (\"/*# sourceURL=\" + $id + \" */\") + \" \";\n }\n }\n if (typeof it.schema == \"boolean\" || !($refKeywords || it.schema.$ref)) {\n var $keyword = \"false schema\";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += \" var \" + $valid + \" = false; \";\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"false schema\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: {} \";\n if (it.opts.messages !== false) {\n out += \" , message: 'boolean schema is false' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: false , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += \" return data; \";\n } else {\n out += \" validate.errors = null; return true; \";\n }\n } else {\n out += \" var \" + $valid + \" = true; \";\n }\n }\n if (it.isTop) {\n out += \" }; return validate; \";\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop, $lvl = it.level = 0, $dataLvl = it.dataLevel = 0, $data = \"data\";\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = \"default is ignored in the schema root\";\n if (it.opts.strictDefaults === \"log\")\n it.logger.warn($defaultMsg);\n else\n throw new Error($defaultMsg);\n }\n out += \" var vErrors = null; \";\n out += \" var errors = 0; \";\n out += \" if (rootData === undefined) rootData = data; \";\n } else {\n var { level: $lvl, dataLevel: $dataLvl } = it, $data = \"data\" + ($dataLvl || \"\");\n if ($id)\n it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async)\n throw new Error(\"async schema in sync schema\");\n out += \" var errs_\" + $lvl + \" = errors;\";\n }\n var $valid = \"valid\" + $lvl, $breakOnError = !it.opts.allErrors, $closingBraces1 = \"\", $closingBraces2 = \"\";\n var $errorKeyword;\n var $typeSchema = it.schema.type, $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf(\"null\") == -1)\n $typeSchema = $typeSchema.concat(\"null\");\n } else if ($typeSchema != \"null\") {\n $typeSchema = [$typeSchema, \"null\"];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == \"fail\") {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += \" \" + it.RULES.all.$comment.code(it, \"$comment\");\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || $rulesGroup && !$shouldUseGroup($rulesGroup)) {\n var $schemaPath = it.schemaPath + \".type\", $errSchemaPath = it.errSchemaPath + \"/type\";\n var $schemaPath = it.schemaPath + \".type\", $errSchemaPath = it.errSchemaPath + \"/type\", $method = $typeIsArray ? \"checkDataTypes\" : \"checkDataType\";\n out += \" if (\" + it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true) + \") { \";\n if ($coerceToTypes) {\n var $dataType = \"dataType\" + $lvl, $coerced = \"coerced\" + $lvl;\n out += \" var \" + $dataType + \" = typeof \" + $data + \"; var \" + $coerced + \" = undefined; \";\n if (it.opts.coerceTypes == \"array\") {\n out += \" if (\" + $dataType + \" == 'object' && Array.isArray(\" + $data + \") && \" + $data + \".length == 1) { \" + $data + \" = \" + $data + \"[0]; \" + $dataType + \" = typeof \" + $data + \"; if (\" + it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers) + \") \" + $coerced + \" = \" + $data + \"; } \";\n }\n out += \" if (\" + $coerced + \" !== undefined) ; \";\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1, l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == \"string\") {\n out += \" else if (\" + $dataType + \" == 'number' || \" + $dataType + \" == 'boolean') \" + $coerced + \" = '' + \" + $data + \"; else if (\" + $data + \" === null) \" + $coerced + \" = ''; \";\n } else if ($type == \"number\" || $type == \"integer\") {\n out += \" else if (\" + $dataType + \" == 'boolean' || \" + $data + \" === null || (\" + $dataType + \" == 'string' && \" + $data + \" && \" + $data + \" == +\" + $data + \" \";\n if ($type == \"integer\") {\n out += \" && !(\" + $data + \" % 1)\";\n }\n out += \")) \" + $coerced + \" = +\" + $data + \"; \";\n } else if ($type == \"boolean\") {\n out += \" else if (\" + $data + \" === 'false' || \" + $data + \" === 0 || \" + $data + \" === null) \" + $coerced + \" = false; else if (\" + $data + \" === 'true' || \" + $data + \" === 1) \" + $coerced + \" = true; \";\n } else if ($type == \"null\") {\n out += \" else if (\" + $data + \" === '' || \" + $data + \" === 0 || \" + $data + \" === false) \" + $coerced + \" = null; \";\n } else if (it.opts.coerceTypes == \"array\" && $type == \"array\") {\n out += \" else if (\" + $dataType + \" == 'string' || \" + $dataType + \" == 'number' || \" + $dataType + \" == 'boolean' || \" + $data + \" == null) \" + $coerced + \" = [\" + $data + \"]; \";\n }\n }\n }\n out += \" else { \";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"type\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { type: '\";\n if ($typeIsArray) {\n out += \"\" + $typeSchema.join(\",\");\n } else {\n out += \"\" + $typeSchema;\n }\n out += \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should be \";\n if ($typeIsArray) {\n out += \"\" + $typeSchema.join(\",\");\n } else {\n out += \"\" + $typeSchema;\n }\n out += \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } if (\" + $coerced + \" !== undefined) { \";\n var $parentData = $dataLvl ? \"data\" + ($dataLvl - 1 || \"\") : \"parentData\", $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : \"parentDataProperty\";\n out += \" \" + $data + \" = \" + $coerced + \"; \";\n if (!$dataLvl) {\n out += \"if (\" + $parentData + \" !== undefined)\";\n }\n out += \" \" + $parentData + \"[\" + $parentDataProperty + \"] = \" + $coerced + \"; } \";\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"type\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { type: '\";\n if ($typeIsArray) {\n out += \"\" + $typeSchema.join(\",\");\n } else {\n out += \"\" + $typeSchema;\n }\n out += \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should be \";\n if ($typeIsArray) {\n out += \"\" + $typeSchema.join(\",\");\n } else {\n out += \"\" + $typeSchema;\n }\n out += \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n }\n out += \" } \";\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += \" \" + it.RULES.all.$ref.code(it, \"$ref\") + \" \";\n if ($breakOnError) {\n out += \" } if (errors === \";\n if ($top) {\n out += \"0\";\n } else {\n out += \"errs_\" + $lvl;\n }\n out += \") { \";\n $closingBraces2 += \"}\";\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1, l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += \" if (\" + it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers) + \") { \";\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == \"object\" && it.schema.properties) {\n var $schema = it.schema.properties, $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1, l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = \"default is ignored for: \" + $passData;\n if (it.opts.strictDefaults === \"log\")\n it.logger.warn($defaultMsg);\n else\n throw new Error($defaultMsg);\n }\n } else {\n out += \" if (\" + $passData + \" === undefined \";\n if (it.opts.useDefaults == \"empty\") {\n out += \" || \" + $passData + \" === null || \" + $passData + \" === '' \";\n }\n out += \" ) \" + $passData + \" = \";\n if (it.opts.useDefaults == \"shared\") {\n out += \" \" + it.useDefault($sch.default) + \" \";\n } else {\n out += \" \" + JSON.stringify($sch.default) + \" \";\n }\n out += \"; \";\n }\n }\n }\n }\n } else if ($rulesGroup.type == \"array\" && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1, l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + \"[\" + $i + \"]\";\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = \"default is ignored for: \" + $passData;\n if (it.opts.strictDefaults === \"log\")\n it.logger.warn($defaultMsg);\n else\n throw new Error($defaultMsg);\n }\n } else {\n out += \" if (\" + $passData + \" === undefined \";\n if (it.opts.useDefaults == \"empty\") {\n out += \" || \" + $passData + \" === null || \" + $passData + \" === '' \";\n }\n out += \" ) \" + $passData + \" = \";\n if (it.opts.useDefaults == \"shared\") {\n out += \" \" + it.useDefault($sch.default) + \" \";\n } else {\n out += \" \" + JSON.stringify($sch.default) + \" \";\n }\n out += \"; \";\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1, l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += \" \" + $code + \" \";\n if ($breakOnError) {\n $closingBraces1 += \"}\";\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += \" \" + $closingBraces1 + \" \";\n $closingBraces1 = \"\";\n }\n if ($rulesGroup.type) {\n out += \" } \";\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += \" else { \";\n var $schemaPath = it.schemaPath + \".type\", $errSchemaPath = it.errSchemaPath + \"/type\";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"type\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { type: '\";\n if ($typeIsArray) {\n out += \"\" + $typeSchema.join(\",\");\n } else {\n out += \"\" + $typeSchema;\n }\n out += \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should be \";\n if ($typeIsArray) {\n out += \"\" + $typeSchema.join(\",\");\n } else {\n out += \"\" + $typeSchema;\n }\n out += \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } \";\n }\n }\n if ($breakOnError) {\n out += \" if (errors === \";\n if ($top) {\n out += \"0\";\n } else {\n out += \"errs_\" + $lvl;\n }\n out += \") { \";\n $closingBraces2 += \"}\";\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += \" \" + $closingBraces2 + \" \";\n }\n if ($top) {\n if ($async) {\n out += \" if (errors === 0) return data; \";\n out += \" else throw new ValidationError(vErrors); \";\n } else {\n out += \" validate.errors = vErrors; \";\n out += \" return errors === 0; \";\n }\n out += \" }; return validate;\";\n } else {\n out += \" var \" + $valid + \" = errors === errs_\" + $lvl + \";\";\n }\n function $shouldUseGroup($rulesGroup2) {\n var rules = $rulesGroup2.rules;\n for (var i = 0;i < rules.length; i++)\n if ($shouldUseRule(rules[i]))\n return true;\n }\n function $shouldUseRule($rule2) {\n return it.schema[$rule2.keyword] !== undefined || $rule2.implements && $ruleImplementsSomeKeyword($rule2);\n }\n function $ruleImplementsSomeKeyword($rule2) {\n var impl = $rule2.implements;\n for (var i = 0;i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined)\n return true;\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/compile/index.js\nvar require_compile = __commonJS((exports, module) => {\n var resolve = require_resolve();\n var util3 = require_util();\n var errorClasses = require_error_classes();\n var stableStringify = require_fast_json_stable_stringify();\n var validateGenerator = require_validate();\n var ucs2length = util3.ucs2length;\n var equal = require_fast_deep_equal();\n var ValidationError = errorClasses.Validation;\n module.exports = compile;\n function compile(schema, root2, localRefs, baseId) {\n var self2 = this, opts = this._opts, refVal = [undefined], refs = {}, patterns = [], patternsHash = {}, defaults = [], defaultsHash = {}, customRules = [];\n root2 = root2 || { schema, refVal, refs };\n var c = checkCompiling.call(this, schema, root2, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling)\n return compilation.callValidate = callValidate;\n var formats = this._formats;\n var RULES = this.RULES;\n try {\n var v = localCompile(schema, root2, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode)\n cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root2, baseId);\n }\n function callValidate() {\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n function localCompile(_schema, _root, localRefs2, baseId2) {\n var isRoot = !_root || _root && _root.schema == _schema;\n if (_root.schema != root2.schema)\n return compile.call(self2, _schema, _root, localRefs2, baseId2);\n var $async = _schema.$async === true;\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot,\n baseId: baseId2,\n root: _root,\n schemaPath: \"\",\n errSchemaPath: \"#\",\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES,\n validate: validateGenerator,\n util: util3,\n resolve,\n resolveRef,\n usePattern,\n useDefault,\n useCustomRule,\n opts,\n formats,\n logger: self2.logger,\n self: self2\n });\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode) + vars(defaults, defaultCode) + vars(customRules, customRuleCode) + sourceCode;\n if (opts.processCode)\n sourceCode = opts.processCode(sourceCode, _schema);\n var validate;\n try {\n var makeValidate = new Function(\"self\", \"RULES\", \"formats\", \"root\", \"refVal\", \"defaults\", \"customRules\", \"equal\", \"ucs2length\", \"ValidationError\", sourceCode);\n validate = makeValidate(self2, RULES, formats, root2, refVal, defaults, customRules, equal, ucs2length, ValidationError);\n refVal[0] = validate;\n } catch (e) {\n self2.logger.error(\"Error compiling schema, function code:\", sourceCode);\n throw e;\n }\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async)\n validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns,\n defaults\n };\n }\n return validate;\n }\n function resolveRef(baseId2, ref, isRoot) {\n ref = resolve.url(baseId2, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = \"refVal[\" + refIndex + \"]\";\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root2.refs) {\n var rootRefId = root2.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root2.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n refCode = addLocalRef(ref);\n var v2 = resolve.call(self2, localCompile, root2, ref);\n if (v2 === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v2 = resolve.inlineRef(localSchema, opts.inlineRefs) ? localSchema : compile.call(self2, localSchema, root2, localRefs, baseId2);\n }\n }\n if (v2 === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v2);\n return resolvedRef(v2, refCode);\n }\n }\n function addLocalRef(ref, v2) {\n var refId = refVal.length;\n refVal[refId] = v2;\n refs[ref] = refId;\n return \"refVal\" + refId;\n }\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n function replaceLocalRef(ref, v2) {\n var refId = refs[ref];\n refVal[refId] = v2;\n }\n function resolvedRef(refVal2, code) {\n return typeof refVal2 == \"object\" || typeof refVal2 == \"boolean\" ? { code, schema: refVal2, inline: true } : { code, $async: refVal2 && !!refVal2.$async };\n }\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return \"pattern\" + index;\n }\n function useDefault(value) {\n switch (typeof value) {\n case \"boolean\":\n case \"number\":\n return \"\" + value;\n case \"string\":\n return util3.toQuotedString(value);\n case \"object\":\n if (value === null)\n return \"null\";\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return \"default\" + index;\n }\n }\n function useCustomRule(rule, schema2, parentSchema, it) {\n if (self2._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error(\"parent schema must have all required keywords: \" + deps.join(\",\"));\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema2);\n if (!valid) {\n var message = \"keyword schema is invalid: \" + self2.errorsText(validateSchema.errors);\n if (self2._opts.validateSchema == \"log\")\n self2.logger.error(message);\n else\n throw new Error(message);\n }\n }\n }\n var compile2 = rule.definition.compile, inline = rule.definition.inline, macro = rule.definition.macro;\n var validate;\n if (compile2) {\n validate = compile2.call(self2, schema2, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self2, schema2, parentSchema, it);\n if (opts.validateSchema !== false)\n self2.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self2, it, rule.keyword, schema2, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate)\n return;\n }\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n var index = customRules.length;\n customRules[index] = validate;\n return {\n code: \"customRule\" + index,\n validate\n };\n }\n }\n function checkCompiling(schema, root2, baseId) {\n var index = compIndex.call(this, schema, root2, baseId);\n if (index >= 0)\n return { index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema,\n root: root2,\n baseId\n };\n return { index, compiling: false };\n }\n function endCompiling(schema, root2, baseId) {\n var i = compIndex.call(this, schema, root2, baseId);\n if (i >= 0)\n this._compilations.splice(i, 1);\n }\n function compIndex(schema, root2, baseId) {\n for (var i = 0;i < this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root2 && c.baseId == baseId)\n return i;\n }\n return -1;\n }\n function patternCode(i, patterns) {\n return \"var pattern\" + i + \" = new RegExp(\" + util3.toQuotedString(patterns[i]) + \");\";\n }\n function defaultCode(i) {\n return \"var default\" + i + \" = defaults[\" + i + \"];\";\n }\n function refValCode(i, refVal) {\n return refVal[i] === undefined ? \"\" : \"var refVal\" + i + \" = refVal[\" + i + \"];\";\n }\n function customRuleCode(i) {\n return \"var customRule\" + i + \" = customRules[\" + i + \"];\";\n }\n function vars(arr, statement) {\n if (!arr.length)\n return \"\";\n var code = \"\";\n for (var i = 0;i < arr.length; i++)\n code += statement(i, arr);\n return code;\n }\n});\n\n// ../node_modules/ajv/lib/cache.js\nvar require_cache = __commonJS((exports, module) => {\n var Cache = module.exports = function Cache() {\n this._cache = {};\n };\n Cache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n };\n Cache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n };\n Cache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n };\n Cache.prototype.clear = function Cache_clear() {\n this._cache = {};\n };\n});\n\n// ../node_modules/ajv/lib/compile/formats.js\nvar require_formats = __commonJS((exports, module) => {\n var util3 = require_util();\n var DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\n var DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n var TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\n var HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\n var URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n var URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n var URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n var URL2 = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\n var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\n var JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\n var JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\n var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n module.exports = formats;\n function formats(mode) {\n mode = mode == \"full\" ? \"full\" : \"fast\";\n return util3.copy(formats[mode]);\n }\n formats.fast = {\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n \"date-time\": /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n \"uri-template\": URITEMPLATE,\n url: URL2,\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex,\n uuid: UUID,\n \"json-pointer\": JSON_POINTER,\n \"json-pointer-uri-fragment\": JSON_POINTER_URI_FRAGMENT,\n \"relative-json-pointer\": RELATIVE_JSON_POINTER\n };\n formats.full = {\n date,\n time,\n \"date-time\": date_time,\n uri,\n \"uri-reference\": URIREF,\n \"uri-template\": URITEMPLATE,\n url: URL2,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex,\n uuid: UUID,\n \"json-pointer\": JSON_POINTER,\n \"json-pointer-uri-fragment\": JSON_POINTER_URI_FRAGMENT,\n \"relative-json-pointer\": RELATIVE_JSON_POINTER\n };\n function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n }\n function date(str) {\n var matches = str.match(DATE);\n if (!matches)\n return false;\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n return month >= 1 && month <= 12 && day >= 1 && day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n }\n function time(str, full) {\n var matches = str.match(TIME);\n if (!matches)\n return false;\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return (hour <= 23 && minute <= 59 && second <= 59 || hour == 23 && minute == 59 && second == 60) && (!full || timeZone);\n }\n var DATE_TIME_SEPARATOR = /t|\\s/i;\n function date_time(str) {\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n }\n var NOT_URI_FRAGMENT = /\\/|:/;\n function uri(str) {\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n }\n var Z_ANCHOR = /[^\\\\]\\\\Z/;\n function regex(str) {\n if (Z_ANCHOR.test(str))\n return false;\n try {\n new RegExp(str);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n// ../node_modules/ajv/lib/dotjs/ref.js\nvar require_ref = __commonJS((exports, module) => {\n module.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $async, $refCode;\n if ($schema == \"#\" || $schema == \"#/\") {\n if (it.isRoot) {\n $async = it.async;\n $refCode = \"validate\";\n } else {\n $async = it.root.schema.$async === true;\n $refCode = \"root.refVal[0]\";\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == \"fail\") {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"$ref\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { ref: '\" + it.util.escapeQuotes($schema) + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'can\\\\'t resolve reference \" + it.util.escapeQuotes($schema) + \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: \" + it.util.toQuotedString($schema) + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n if ($breakOnError) {\n out += \" if (false) { \";\n }\n } else if (it.opts.missingRefs == \"ignore\") {\n it.logger.warn($message);\n if ($breakOnError) {\n out += \" if (true) { \";\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = \"\";\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += \" \" + $code + \" \";\n if ($breakOnError) {\n out += \" if (\" + $nextValid + \") { \";\n }\n } else {\n $async = $refVal.$async === true || it.async && $refVal.$async !== false;\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.opts.passContext) {\n out += \" \" + $refCode + \".call(this, \";\n } else {\n out += \" \" + $refCode + \"( \";\n }\n out += \" \" + $data + \", (dataPath || '')\";\n if (it.errorPath != '\"\"') {\n out += \" + \" + it.errorPath;\n }\n var $parentData = $dataLvl ? \"data\" + ($dataLvl - 1 || \"\") : \"parentData\", $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : \"parentDataProperty\";\n out += \" , \" + $parentData + \" , \" + $parentDataProperty + \", rootData) \";\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async)\n throw new Error(\"async schema referenced by sync schema\");\n if ($breakOnError) {\n out += \" var \" + $valid + \"; \";\n }\n out += \" try { await \" + __callValidate + \"; \";\n if ($breakOnError) {\n out += \" \" + $valid + \" = true; \";\n }\n out += \" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; \";\n if ($breakOnError) {\n out += \" \" + $valid + \" = false; \";\n }\n out += \" } \";\n if ($breakOnError) {\n out += \" if (\" + $valid + \") { \";\n }\n } else {\n out += \" if (!\" + __callValidate + \") { if (vErrors === null) vErrors = \" + $refCode + \".errors; else vErrors = vErrors.concat(\" + $refCode + \".errors); errors = vErrors.length; } \";\n if ($breakOnError) {\n out += \" else { \";\n }\n }\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/allOf.js\nvar require_allOf = __commonJS((exports, module) => {\n module.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = \" \";\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = \"\";\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n var $currentBaseId = $it.baseId, $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1, l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if (it.opts.strictKeywords ? typeof $sch == \"object\" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + \"[\" + $i + \"]\";\n $it.errSchemaPath = $errSchemaPath + \"/\" + $i;\n out += \" \" + it.validate($it) + \" \";\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += \" if (\" + $nextValid + \") { \";\n $closingBraces += \"}\";\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += \" if (true) { \";\n } else {\n out += \" \" + $closingBraces.slice(0, -1) + \" \";\n }\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/anyOf.js\nvar require_anyOf = __commonJS((exports, module) => {\n module.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $errs = \"errs__\" + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = \"\";\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n var $noEmptySchema = $schema.every(function($sch2) {\n return it.opts.strictKeywords ? typeof $sch2 == \"object\" && Object.keys($sch2).length > 0 || $sch2 === false : it.util.schemaHasRules($sch2, it.RULES.all);\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += \" var \" + $errs + \" = errors; var \" + $valid + \" = false; \";\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1, l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + \"[\" + $i + \"]\";\n $it.errSchemaPath = $errSchemaPath + \"/\" + $i;\n out += \" \" + it.validate($it) + \" \";\n $it.baseId = $currentBaseId;\n out += \" \" + $valid + \" = \" + $valid + \" || \" + $nextValid + \"; if (!\" + $valid + \") { \";\n $closingBraces += \"}\";\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += \" \" + $closingBraces + \" if (!\" + $valid + \") { var err = \";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"anyOf\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: {} \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should match some schema in anyOf' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n out += \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError(vErrors); \";\n } else {\n out += \" validate.errors = vErrors; return false; \";\n }\n }\n out += \" } else { errors = \" + $errs + \"; if (vErrors !== null) { if (\" + $errs + \") vErrors.length = \" + $errs + \"; else vErrors = null; } \";\n if (it.opts.allErrors) {\n out += \" } \";\n }\n } else {\n if ($breakOnError) {\n out += \" if (true) { \";\n }\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/comment.js\nvar require_comment = __commonJS((exports, module) => {\n module.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = \" \";\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += \" console.log(\" + $comment + \");\";\n } else if (typeof it.opts.$comment == \"function\") {\n out += \" self._opts.$comment(\" + $comment + \", \" + it.util.toQuotedString($errSchemaPath) + \", validate.root.schema);\";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/const.js\nvar require_const = __commonJS((exports, module) => {\n module.exports = function generate_const(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += \" var schema\" + $lvl + \" = validate.schema\" + $schemaPath + \";\";\n }\n out += \"var \" + $valid + \" = equal(\" + $data + \", schema\" + $lvl + \"); if (!\" + $valid + \") { \";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"const\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { allowedValue: schema\" + $lvl + \" } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should be equal to constant' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" }\";\n if ($breakOnError) {\n out += \" else { \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/contains.js\nvar require_contains = __commonJS((exports, module) => {\n module.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $errs = \"errs__\" + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = \"\";\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n var $idx = \"i\" + $lvl, $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = \"data\" + $dataNxt, $currentBaseId = it.baseId, $nonEmptySchema = it.opts.strictKeywords ? typeof $schema == \"object\" && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all);\n out += \"var \" + $errs + \" = errors;var \" + $valid + \";\";\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += \" var \" + $nextValid + \" = false; for (var \" + $idx + \" = 0; \" + $idx + \" < \" + $data + \".length; \" + $idx + \"++) { \";\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + \"[\" + $idx + \"]\";\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += \" \" + it.util.varReplace($code, $nextData, $passData) + \" \";\n } else {\n out += \" var \" + $nextData + \" = \" + $passData + \"; \" + $code + \" \";\n }\n out += \" if (\" + $nextValid + \") break; } \";\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += \" \" + $closingBraces + \" if (!\" + $nextValid + \") {\";\n } else {\n out += \" if (\" + $data + \".length == 0) {\";\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"contains\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: {} \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should contain a valid item' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } else { \";\n if ($nonEmptySchema) {\n out += \" errors = \" + $errs + \"; if (vErrors !== null) { if (\" + $errs + \") vErrors.length = \" + $errs + \"; else vErrors = null; } \";\n }\n if (it.opts.allErrors) {\n out += \" } \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/dependencies.js\nvar require_dependencies = __commonJS((exports, module) => {\n module.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $errs = \"errs__\" + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = \"\";\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n var $schemaDeps = {}, $propertyDeps = {}, $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == \"__proto__\")\n continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += \"var \" + $errs + \" = errors;\";\n var $currentErrorPath = it.errorPath;\n out += \"var missing\" + $lvl + \";\";\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += \" if ( \" + $data + it.util.getProperty($property) + \" !== undefined \";\n if ($ownProperties) {\n out += \" && Object.prototype.hasOwnProperty.call(\" + $data + \", '\" + it.util.escapeQuotes($property) + \"') \";\n }\n if ($breakOnError) {\n out += \" && ( \";\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1, l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += \" || \";\n }\n var $prop = it.util.getProperty($propertyKey), $useData = $data + $prop;\n out += \" ( ( \" + $useData + \" === undefined \";\n if ($ownProperties) {\n out += \" || ! Object.prototype.hasOwnProperty.call(\" + $data + \", '\" + it.util.escapeQuotes($propertyKey) + \"') \";\n }\n out += \") && (missing\" + $lvl + \" = \" + it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) + \") ) \";\n }\n }\n out += \")) { \";\n var $propertyPath = \"missing\" + $lvl, $missingProperty = \"' + \" + $propertyPath + \" + '\";\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + \" + \" + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"dependencies\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { property: '\" + it.util.escapeQuotes($property) + \"', missingProperty: '\" + $missingProperty + \"', depsCount: \" + $deps.length + \", deps: '\" + it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \")) + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should have \";\n if ($deps.length == 1) {\n out += \"property \" + it.util.escapeQuotes($deps[0]);\n } else {\n out += \"properties \" + it.util.escapeQuotes($deps.join(\", \"));\n }\n out += \" when property \" + it.util.escapeQuotes($property) + \" is present' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n } else {\n out += \" ) { \";\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1, l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey), $missingProperty = it.util.escapeQuotes($propertyKey), $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += \" if ( \" + $useData + \" === undefined \";\n if ($ownProperties) {\n out += \" || ! Object.prototype.hasOwnProperty.call(\" + $data + \", '\" + it.util.escapeQuotes($propertyKey) + \"') \";\n }\n out += \") { var err = \";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"dependencies\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { property: '\" + it.util.escapeQuotes($property) + \"', missingProperty: '\" + $missingProperty + \"', depsCount: \" + $deps.length + \", deps: '\" + it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \")) + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should have \";\n if ($deps.length == 1) {\n out += \"property \" + it.util.escapeQuotes($deps[0]);\n } else {\n out += \"properties \" + it.util.escapeQuotes($deps.join(\", \"));\n }\n out += \" when property \" + it.util.escapeQuotes($property) + \" is present' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n out += \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } \";\n }\n }\n }\n out += \" } \";\n if ($breakOnError) {\n $closingBraces += \"}\";\n out += \" else { \";\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if (it.opts.strictKeywords ? typeof $sch == \"object\" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n out += \" \" + $nextValid + \" = true; if ( \" + $data + it.util.getProperty($property) + \" !== undefined \";\n if ($ownProperties) {\n out += \" && Object.prototype.hasOwnProperty.call(\" + $data + \", '\" + it.util.escapeQuotes($property) + \"') \";\n }\n out += \") { \";\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + \"/\" + it.util.escapeFragment($property);\n out += \" \" + it.validate($it) + \" \";\n $it.baseId = $currentBaseId;\n out += \" } \";\n if ($breakOnError) {\n out += \" if (\" + $nextValid + \") { \";\n $closingBraces += \"}\";\n }\n }\n }\n if ($breakOnError) {\n out += \" \" + $closingBraces + \" if (\" + $errs + \" == errors) {\";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/enum.js\nvar require_enum = __commonJS((exports, module) => {\n module.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = \"i\" + $lvl, $vSchema = \"schema\" + $lvl;\n if (!$isData) {\n out += \" var \" + $vSchema + \" = validate.schema\" + $schemaPath + \";\";\n }\n out += \"var \" + $valid + \";\";\n if ($isData) {\n out += \" if (schema\" + $lvl + \" === undefined) \" + $valid + \" = true; else if (!Array.isArray(schema\" + $lvl + \")) \" + $valid + \" = false; else {\";\n }\n out += \"\" + $valid + \" = false;for (var \" + $i + \"=0; \" + $i + \"<\" + $vSchema + \".length; \" + $i + \"++) if (equal(\" + $data + \", \" + $vSchema + \"[\" + $i + \"])) { \" + $valid + \" = true; break; }\";\n if ($isData) {\n out += \" } \";\n }\n out += \" if (!\" + $valid + \") { \";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"enum\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { allowedValues: schema\" + $lvl + \" } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should be equal to one of the allowed values' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" }\";\n if ($breakOnError) {\n out += \" else { \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/format.js\nvar require_format = __commonJS((exports, module) => {\n module.exports = function generate_format(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += \" if (true) { \";\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats, $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = \"format\" + $lvl, $isObject = \"isObject\" + $lvl, $formatType = \"formatType\" + $lvl;\n out += \" var \" + $format + \" = formats[\" + $schemaValue + \"]; var \" + $isObject + \" = typeof \" + $format + \" == 'object' && !(\" + $format + \" instanceof RegExp) && \" + $format + \".validate; var \" + $formatType + \" = \" + $isObject + \" && \" + $format + \".type || 'string'; if (\" + $isObject + \") { \";\n if (it.async) {\n out += \" var async\" + $lvl + \" = \" + $format + \".async; \";\n }\n out += \" \" + $format + \" = \" + $format + \".validate; } if ( \";\n if ($isData) {\n out += \" (\" + $schemaValue + \" !== undefined && typeof \" + $schemaValue + \" != 'string') || \";\n }\n out += \" (\";\n if ($unknownFormats != \"ignore\") {\n out += \" (\" + $schemaValue + \" && !\" + $format + \" \";\n if ($allowUnknown) {\n out += \" && self._opts.unknownFormats.indexOf(\" + $schemaValue + \") == -1 \";\n }\n out += \") || \";\n }\n out += \" (\" + $format + \" && \" + $formatType + \" == '\" + $ruleType + \"' && !(typeof \" + $format + \" == 'function' ? \";\n if (it.async) {\n out += \" (async\" + $lvl + \" ? await \" + $format + \"(\" + $data + \") : \" + $format + \"(\" + $data + \")) \";\n } else {\n out += \" \" + $format + \"(\" + $data + \") \";\n }\n out += \" : \" + $format + \".test(\" + $data + \"))))) {\";\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == \"ignore\") {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += \" if (true) { \";\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += \" if (true) { \";\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == \"object\" && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || \"string\";\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += \" if (true) { \";\n }\n return out;\n }\n if ($async) {\n if (!it.async)\n throw new Error(\"async format in sync schema\");\n var $formatRef = \"formats\" + it.util.getProperty($schema) + \".validate\";\n out += \" if (!(await \" + $formatRef + \"(\" + $data + \"))) { \";\n } else {\n out += \" if (! \";\n var $formatRef = \"formats\" + it.util.getProperty($schema);\n if ($isObject)\n $formatRef += \".validate\";\n if (typeof $format == \"function\") {\n out += \" \" + $formatRef + \"(\" + $data + \") \";\n } else {\n out += \" \" + $formatRef + \".test(\" + $data + \") \";\n }\n out += \") { \";\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"format\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { format: \";\n if ($isData) {\n out += \"\" + $schemaValue;\n } else {\n out += \"\" + it.util.toQuotedString($schema);\n }\n out += \" } \";\n if (it.opts.messages !== false) {\n out += ` , message: 'should match format \"`;\n if ($isData) {\n out += \"' + \" + $schemaValue + \" + '\";\n } else {\n out += \"\" + it.util.escapeQuotes($schema);\n }\n out += `\"' `;\n }\n if (it.opts.verbose) {\n out += \" , schema: \";\n if ($isData) {\n out += \"validate.schema\" + $schemaPath;\n } else {\n out += \"\" + it.util.toQuotedString($schema);\n }\n out += \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } \";\n if ($breakOnError) {\n out += \" else { \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/if.js\nvar require_if = __commonJS((exports, module) => {\n module.exports = function generate_if(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $errs = \"errs__\" + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n var $thenSch = it.schema[\"then\"], $elseSch = it.schema[\"else\"], $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == \"object\" && Object.keys($thenSch).length > 0 || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)), $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == \"object\" && Object.keys($elseSch).length > 0 || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)), $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += \" var \" + $errs + \" = errors; var \" + $valid + \" = true; \";\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += \" \" + it.validate($it) + \" \";\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += \" errors = \" + $errs + \"; if (vErrors !== null) { if (\" + $errs + \") vErrors.length = \" + $errs + \"; else vErrors = null; } \";\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += \" if (\" + $nextValid + \") { \";\n $it.schema = it.schema[\"then\"];\n $it.schemaPath = it.schemaPath + \".then\";\n $it.errSchemaPath = it.errSchemaPath + \"/then\";\n out += \" \" + it.validate($it) + \" \";\n $it.baseId = $currentBaseId;\n out += \" \" + $valid + \" = \" + $nextValid + \"; \";\n if ($thenPresent && $elsePresent) {\n $ifClause = \"ifClause\" + $lvl;\n out += \" var \" + $ifClause + \" = 'then'; \";\n } else {\n $ifClause = \"'then'\";\n }\n out += \" } \";\n if ($elsePresent) {\n out += \" else { \";\n }\n } else {\n out += \" if (!\" + $nextValid + \") { \";\n }\n if ($elsePresent) {\n $it.schema = it.schema[\"else\"];\n $it.schemaPath = it.schemaPath + \".else\";\n $it.errSchemaPath = it.errSchemaPath + \"/else\";\n out += \" \" + it.validate($it) + \" \";\n $it.baseId = $currentBaseId;\n out += \" \" + $valid + \" = \" + $nextValid + \"; \";\n if ($thenPresent && $elsePresent) {\n $ifClause = \"ifClause\" + $lvl;\n out += \" var \" + $ifClause + \" = 'else'; \";\n } else {\n $ifClause = \"'else'\";\n }\n out += \" } \";\n }\n out += \" if (!\" + $valid + \") { var err = \";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"if\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { failingKeyword: \" + $ifClause + \" } \";\n if (it.opts.messages !== false) {\n out += ` , message: 'should match \"' + ` + $ifClause + ` + '\" schema' `;\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n out += \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError(vErrors); \";\n } else {\n out += \" validate.errors = vErrors; return false; \";\n }\n }\n out += \" } \";\n if ($breakOnError) {\n out += \" else { \";\n }\n } else {\n if ($breakOnError) {\n out += \" if (true) { \";\n }\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/items.js\nvar require_items = __commonJS((exports, module) => {\n module.exports = function generate_items(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $errs = \"errs__\" + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = \"\";\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n var $idx = \"i\" + $lvl, $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = \"data\" + $dataNxt, $currentBaseId = it.baseId;\n out += \"var \" + $errs + \" = errors;var \" + $valid + \";\";\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += \" \" + $valid + \" = \" + $data + \".length <= \" + $schema.length + \"; \";\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + \"/additionalItems\";\n out += \" if (!\" + $valid + \") { \";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"additionalItems\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { limit: \" + $schema.length + \" } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should NOT have more than \" + $schema.length + \" items' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: false , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } \";\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += \"}\";\n out += \" else { \";\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1, l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if (it.opts.strictKeywords ? typeof $sch == \"object\" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n out += \" \" + $nextValid + \" = true; if (\" + $data + \".length > \" + $i + \") { \";\n var $passData = $data + \"[\" + $i + \"]\";\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + \"[\" + $i + \"]\";\n $it.errSchemaPath = $errSchemaPath + \"/\" + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += \" \" + it.util.varReplace($code, $nextData, $passData) + \" \";\n } else {\n out += \" var \" + $nextData + \" = \" + $passData + \"; \" + $code + \" \";\n }\n out += \" } \";\n if ($breakOnError) {\n out += \" if (\" + $nextValid + \") { \";\n $closingBraces += \"}\";\n }\n }\n }\n }\n if (typeof $additionalItems == \"object\" && (it.opts.strictKeywords ? typeof $additionalItems == \"object\" && Object.keys($additionalItems).length > 0 || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + \".additionalItems\";\n $it.errSchemaPath = it.errSchemaPath + \"/additionalItems\";\n out += \" \" + $nextValid + \" = true; if (\" + $data + \".length > \" + $schema.length + \") { for (var \" + $idx + \" = \" + $schema.length + \"; \" + $idx + \" < \" + $data + \".length; \" + $idx + \"++) { \";\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + \"[\" + $idx + \"]\";\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += \" \" + it.util.varReplace($code, $nextData, $passData) + \" \";\n } else {\n out += \" var \" + $nextData + \" = \" + $passData + \"; \" + $code + \" \";\n }\n if ($breakOnError) {\n out += \" if (!\" + $nextValid + \") break; \";\n }\n out += \" } } \";\n if ($breakOnError) {\n out += \" if (\" + $nextValid + \") { \";\n $closingBraces += \"}\";\n }\n }\n } else if (it.opts.strictKeywords ? typeof $schema == \"object\" && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += \" for (var \" + $idx + \" = \" + 0 + \"; \" + $idx + \" < \" + $data + \".length; \" + $idx + \"++) { \";\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + \"[\" + $idx + \"]\";\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += \" \" + it.util.varReplace($code, $nextData, $passData) + \" \";\n } else {\n out += \" var \" + $nextData + \" = \" + $passData + \"; \" + $code + \" \";\n }\n if ($breakOnError) {\n out += \" if (!\" + $nextValid + \") break; \";\n }\n out += \" }\";\n }\n if ($breakOnError) {\n out += \" \" + $closingBraces + \" if (\" + $errs + \" == errors) {\";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/_limit.js\nvar require__limit = __commonJS((exports, module) => {\n module.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = \"data\" + ($dataLvl || \"\");\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == \"maximum\", $exclusiveKeyword = $isMax ? \"exclusiveMaximum\" : \"exclusiveMinimum\", $schemaExcl = it.schema[$exclusiveKeyword], $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data, $op = $isMax ? \"<\" : \">\", $notOp = $isMax ? \">\" : \"<\", $errorKeyword = undefined;\n if (!($isData || typeof $schema == \"number\" || $schema === undefined)) {\n throw new Error($keyword + \" must be number\");\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == \"number\" || typeof $schemaExcl == \"boolean\")) {\n throw new Error($exclusiveKeyword + \" must be number or boolean\");\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), $exclusive = \"exclusive\" + $lvl, $exclType = \"exclType\" + $lvl, $exclIsNumber = \"exclIsNumber\" + $lvl, $opExpr = \"op\" + $lvl, $opStr = \"' + \" + $opExpr + \" + '\";\n out += \" var schemaExcl\" + $lvl + \" = \" + $schemaValueExcl + \"; \";\n $schemaValueExcl = \"schemaExcl\" + $lvl;\n out += \" var \" + $exclusive + \"; var \" + $exclType + \" = typeof \" + $schemaValueExcl + \"; if (\" + $exclType + \" != 'boolean' && \" + $exclType + \" != 'undefined' && \" + $exclType + \" != 'number') { \";\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"_exclusiveLimit\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: {} \";\n if (it.opts.messages !== false) {\n out += \" , message: '\" + $exclusiveKeyword + \" should be boolean' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } else if ( \";\n if ($isData) {\n out += \" (\" + $schemaValue + \" !== undefined && typeof \" + $schemaValue + \" != 'number') || \";\n }\n out += \" \" + $exclType + \" == 'number' ? ( (\" + $exclusive + \" = \" + $schemaValue + \" === undefined || \" + $schemaValueExcl + \" \" + $op + \"= \" + $schemaValue + \") ? \" + $data + \" \" + $notOp + \"= \" + $schemaValueExcl + \" : \" + $data + \" \" + $notOp + \" \" + $schemaValue + \" ) : ( (\" + $exclusive + \" = \" + $schemaValueExcl + \" === true) ? \" + $data + \" \" + $notOp + \"= \" + $schemaValue + \" : \" + $data + \" \" + $notOp + \" \" + $schemaValue + \" ) || \" + $data + \" !== \" + $data + \") { var op\" + $lvl + \" = \" + $exclusive + \" ? '\" + $op + \"' : '\" + $op + \"='; \";\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + \"/\" + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == \"number\", $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = \"'\" + $opStr + \"'\";\n out += \" if ( \";\n if ($isData) {\n out += \" (\" + $schemaValue + \" !== undefined && typeof \" + $schemaValue + \" != 'number') || \";\n }\n out += \" ( \" + $schemaValue + \" === undefined || \" + $schemaExcl + \" \" + $op + \"= \" + $schemaValue + \" ? \" + $data + \" \" + $notOp + \"= \" + $schemaExcl + \" : \" + $data + \" \" + $notOp + \" \" + $schemaValue + \" ) || \" + $data + \" !== \" + $data + \") { \";\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + \"/\" + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += \"=\";\n } else {\n if ($exclIsNumber)\n $schemaValue = Math[$isMax ? \"min\" : \"max\"]($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + \"/\" + $exclusiveKeyword;\n $notOp += \"=\";\n } else {\n $exclusive = false;\n $opStr += \"=\";\n }\n }\n var $opExpr = \"'\" + $opStr + \"'\";\n out += \" if ( \";\n if ($isData) {\n out += \" (\" + $schemaValue + \" !== undefined && typeof \" + $schemaValue + \" != 'number') || \";\n }\n out += \" \" + $data + \" \" + $notOp + \" \" + $schemaValue + \" || \" + $data + \" !== \" + $data + \") { \";\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"_limit\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { comparison: \" + $opExpr + \", limit: \" + $schemaValue + \", exclusive: \" + $exclusive + \" } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should be \" + $opStr + \" \";\n if ($isData) {\n out += \"' + \" + $schemaValue;\n } else {\n out += \"\" + $schemaValue + \"'\";\n }\n }\n if (it.opts.verbose) {\n out += \" , schema: \";\n if ($isData) {\n out += \"validate.schema\" + $schemaPath;\n } else {\n out += \"\" + $schema;\n }\n out += \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } \";\n if ($breakOnError) {\n out += \" else { \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/_limitItems.js\nvar require__limitItems = __commonJS((exports, module) => {\n module.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = \"data\" + ($dataLvl || \"\");\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == \"number\")) {\n throw new Error($keyword + \" must be number\");\n }\n var $op = $keyword == \"maxItems\" ? \">\" : \"<\";\n out += \"if ( \";\n if ($isData) {\n out += \" (\" + $schemaValue + \" !== undefined && typeof \" + $schemaValue + \" != 'number') || \";\n }\n out += \" \" + $data + \".length \" + $op + \" \" + $schemaValue + \") { \";\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"_limitItems\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { limit: \" + $schemaValue + \" } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should NOT have \";\n if ($keyword == \"maxItems\") {\n out += \"more\";\n } else {\n out += \"fewer\";\n }\n out += \" than \";\n if ($isData) {\n out += \"' + \" + $schemaValue + \" + '\";\n } else {\n out += \"\" + $schema;\n }\n out += \" items' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: \";\n if ($isData) {\n out += \"validate.schema\" + $schemaPath;\n } else {\n out += \"\" + $schema;\n }\n out += \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \"} \";\n if ($breakOnError) {\n out += \" else { \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/_limitLength.js\nvar require__limitLength = __commonJS((exports, module) => {\n module.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = \"data\" + ($dataLvl || \"\");\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == \"number\")) {\n throw new Error($keyword + \" must be number\");\n }\n var $op = $keyword == \"maxLength\" ? \">\" : \"<\";\n out += \"if ( \";\n if ($isData) {\n out += \" (\" + $schemaValue + \" !== undefined && typeof \" + $schemaValue + \" != 'number') || \";\n }\n if (it.opts.unicode === false) {\n out += \" \" + $data + \".length \";\n } else {\n out += \" ucs2length(\" + $data + \") \";\n }\n out += \" \" + $op + \" \" + $schemaValue + \") { \";\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"_limitLength\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { limit: \" + $schemaValue + \" } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should NOT be \";\n if ($keyword == \"maxLength\") {\n out += \"longer\";\n } else {\n out += \"shorter\";\n }\n out += \" than \";\n if ($isData) {\n out += \"' + \" + $schemaValue + \" + '\";\n } else {\n out += \"\" + $schema;\n }\n out += \" characters' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: \";\n if ($isData) {\n out += \"validate.schema\" + $schemaPath;\n } else {\n out += \"\" + $schema;\n }\n out += \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \"} \";\n if ($breakOnError) {\n out += \" else { \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/_limitProperties.js\nvar require__limitProperties = __commonJS((exports, module) => {\n module.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = \"data\" + ($dataLvl || \"\");\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == \"number\")) {\n throw new Error($keyword + \" must be number\");\n }\n var $op = $keyword == \"maxProperties\" ? \">\" : \"<\";\n out += \"if ( \";\n if ($isData) {\n out += \" (\" + $schemaValue + \" !== undefined && typeof \" + $schemaValue + \" != 'number') || \";\n }\n out += \" Object.keys(\" + $data + \").length \" + $op + \" \" + $schemaValue + \") { \";\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"_limitProperties\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { limit: \" + $schemaValue + \" } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should NOT have \";\n if ($keyword == \"maxProperties\") {\n out += \"more\";\n } else {\n out += \"fewer\";\n }\n out += \" than \";\n if ($isData) {\n out += \"' + \" + $schemaValue + \" + '\";\n } else {\n out += \"\" + $schema;\n }\n out += \" properties' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: \";\n if ($isData) {\n out += \"validate.schema\" + $schemaPath;\n } else {\n out += \"\" + $schema;\n }\n out += \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \"} \";\n if ($breakOnError) {\n out += \" else { \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/multipleOf.js\nvar require_multipleOf = __commonJS((exports, module) => {\n module.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == \"number\")) {\n throw new Error($keyword + \" must be number\");\n }\n out += \"var division\" + $lvl + \";if (\";\n if ($isData) {\n out += \" \" + $schemaValue + \" !== undefined && ( typeof \" + $schemaValue + \" != 'number' || \";\n }\n out += \" (division\" + $lvl + \" = \" + $data + \" / \" + $schemaValue + \", \";\n if (it.opts.multipleOfPrecision) {\n out += \" Math.abs(Math.round(division\" + $lvl + \") - division\" + $lvl + \") > 1e-\" + it.opts.multipleOfPrecision + \" \";\n } else {\n out += \" division\" + $lvl + \" !== parseInt(division\" + $lvl + \") \";\n }\n out += \" ) \";\n if ($isData) {\n out += \" ) \";\n }\n out += \" ) { \";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"multipleOf\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { multipleOf: \" + $schemaValue + \" } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should be multiple of \";\n if ($isData) {\n out += \"' + \" + $schemaValue;\n } else {\n out += \"\" + $schemaValue + \"'\";\n }\n }\n if (it.opts.verbose) {\n out += \" , schema: \";\n if ($isData) {\n out += \"validate.schema\" + $schemaPath;\n } else {\n out += \"\" + $schema;\n }\n out += \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \"} \";\n if ($breakOnError) {\n out += \" else { \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/not.js\nvar require_not = __commonJS((exports, module) => {\n module.exports = function generate_not(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $errs = \"errs__\" + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n if (it.opts.strictKeywords ? typeof $schema == \"object\" && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += \" var \" + $errs + \" = errors; \";\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += \" \" + it.validate($it) + \" \";\n $it.createErrors = true;\n if ($allErrorsOption)\n $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += \" if (\" + $nextValid + \") { \";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"not\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: {} \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should NOT be valid' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } else { errors = \" + $errs + \"; if (vErrors !== null) { if (\" + $errs + \") vErrors.length = \" + $errs + \"; else vErrors = null; } \";\n if (it.opts.allErrors) {\n out += \" } \";\n }\n } else {\n out += \" var err = \";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"not\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: {} \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should NOT be valid' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n out += \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n if ($breakOnError) {\n out += \" if (false) { \";\n }\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/oneOf.js\nvar require_oneOf = __commonJS((exports, module) => {\n module.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $errs = \"errs__\" + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = \"\";\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n var $currentBaseId = $it.baseId, $prevValid = \"prevValid\" + $lvl, $passingSchemas = \"passingSchemas\" + $lvl;\n out += \"var \" + $errs + \" = errors , \" + $prevValid + \" = false , \" + $valid + \" = false , \" + $passingSchemas + \" = null; \";\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1, l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if (it.opts.strictKeywords ? typeof $sch == \"object\" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + \"[\" + $i + \"]\";\n $it.errSchemaPath = $errSchemaPath + \"/\" + $i;\n out += \" \" + it.validate($it) + \" \";\n $it.baseId = $currentBaseId;\n } else {\n out += \" var \" + $nextValid + \" = true; \";\n }\n if ($i) {\n out += \" if (\" + $nextValid + \" && \" + $prevValid + \") { \" + $valid + \" = false; \" + $passingSchemas + \" = [\" + $passingSchemas + \", \" + $i + \"]; } else { \";\n $closingBraces += \"}\";\n }\n out += \" if (\" + $nextValid + \") { \" + $valid + \" = \" + $prevValid + \" = true; \" + $passingSchemas + \" = \" + $i + \"; }\";\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += \"\" + $closingBraces + \"if (!\" + $valid + \") { var err = \";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"oneOf\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { passingSchemas: \" + $passingSchemas + \" } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should match exactly one schema in oneOf' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n out += \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError(vErrors); \";\n } else {\n out += \" validate.errors = vErrors; return false; \";\n }\n }\n out += \"} else { errors = \" + $errs + \"; if (vErrors !== null) { if (\" + $errs + \") vErrors.length = \" + $errs + \"; else vErrors = null; }\";\n if (it.opts.allErrors) {\n out += \" } \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/pattern.js\nvar require_pattern = __commonJS((exports, module) => {\n module.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? \"(new RegExp(\" + $schemaValue + \"))\" : it.usePattern($schema);\n out += \"if ( \";\n if ($isData) {\n out += \" (\" + $schemaValue + \" !== undefined && typeof \" + $schemaValue + \" != 'string') || \";\n }\n out += \" !\" + $regexp + \".test(\" + $data + \") ) { \";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"pattern\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { pattern: \";\n if ($isData) {\n out += \"\" + $schemaValue;\n } else {\n out += \"\" + it.util.toQuotedString($schema);\n }\n out += \" } \";\n if (it.opts.messages !== false) {\n out += ` , message: 'should match pattern \"`;\n if ($isData) {\n out += \"' + \" + $schemaValue + \" + '\";\n } else {\n out += \"\" + it.util.escapeQuotes($schema);\n }\n out += `\"' `;\n }\n if (it.opts.verbose) {\n out += \" , schema: \";\n if ($isData) {\n out += \"validate.schema\" + $schemaPath;\n } else {\n out += \"\" + it.util.toQuotedString($schema);\n }\n out += \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \"} \";\n if ($breakOnError) {\n out += \" else { \";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/properties.js\nvar require_properties = __commonJS((exports, module) => {\n module.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $errs = \"errs__\" + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = \"\";\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n var $key = \"key\" + $lvl, $idx = \"idx\" + $lvl, $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = \"data\" + $dataNxt, $dataProperties = \"dataProperties\" + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto), $pProperties = it.schema.patternProperties || {}, $pPropertyKeys = Object.keys($pProperties).filter(notProto), $aProperties = it.schema.additionalProperties, $someProperties = $schemaKeys.length || $pPropertyKeys.length, $noAdditional = $aProperties === false, $additionalIsSchema = typeof $aProperties == \"object\" && Object.keys($aProperties).length, $removeAdditional = it.opts.removeAdditional, $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional, $ownProperties = it.opts.ownProperties, $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n function notProto(p) {\n return p !== \"__proto__\";\n }\n out += \"var \" + $errs + \" = errors;var \" + $nextValid + \" = true;\";\n if ($ownProperties) {\n out += \" var \" + $dataProperties + \" = undefined;\";\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += \" \" + $dataProperties + \" = \" + $dataProperties + \" || Object.keys(\" + $data + \"); for (var \" + $idx + \"=0; \" + $idx + \"<\" + $dataProperties + \".length; \" + $idx + \"++) { var \" + $key + \" = \" + $dataProperties + \"[\" + $idx + \"]; \";\n } else {\n out += \" for (var \" + $key + \" in \" + $data + \") { \";\n }\n if ($someProperties) {\n out += \" var isAdditional\" + $lvl + \" = !(false \";\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += \" || validate.schema\" + $schemaPath + \".hasOwnProperty(\" + $key + \") \";\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1, l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += \" || \" + $key + \" == \" + it.util.toQuotedString($propertyKey) + \" \";\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1, l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += \" || \" + it.usePattern($pProperty) + \".test(\" + $key + \") \";\n }\n }\n }\n out += \" ); if (isAdditional\" + $lvl + \") { \";\n }\n if ($removeAdditional == \"all\") {\n out += \" delete \" + $data + \"[\" + $key + \"]; \";\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = \"' + \" + $key + \" + '\";\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += \" delete \" + $data + \"[\" + $key + \"]; \";\n } else {\n out += \" \" + $nextValid + \" = false; \";\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + \"/additionalProperties\";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"additionalProperties\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { additionalProperty: '\" + $additionalProperty + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: '\";\n if (it.opts._errorDataPathProperty) {\n out += \"is an invalid additional property\";\n } else {\n out += \"should NOT have additional properties\";\n }\n out += \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: false , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += \" break; \";\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == \"failing\") {\n out += \" var \" + $errs + \" = errors; \";\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + \".additionalProperties\";\n $it.errSchemaPath = it.errSchemaPath + \"/additionalProperties\";\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + \"[\" + $key + \"]\";\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += \" \" + it.util.varReplace($code, $nextData, $passData) + \" \";\n } else {\n out += \" var \" + $nextData + \" = \" + $passData + \"; \" + $code + \" \";\n }\n out += \" if (!\" + $nextValid + \") { errors = \" + $errs + \"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete \" + $data + \"[\" + $key + \"]; } \";\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + \".additionalProperties\";\n $it.errSchemaPath = it.errSchemaPath + \"/additionalProperties\";\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + \"[\" + $key + \"]\";\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += \" \" + it.util.varReplace($code, $nextData, $passData) + \" \";\n } else {\n out += \" var \" + $nextData + \" = \" + $passData + \"; \" + $code + \" \";\n }\n if ($breakOnError) {\n out += \" if (!\" + $nextValid + \") break; \";\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += \" } \";\n }\n out += \" } \";\n if ($breakOnError) {\n out += \" if (\" + $nextValid + \") { \";\n $closingBraces += \"}\";\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1, l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if (it.opts.strictKeywords ? typeof $sch == \"object\" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n var $prop = it.util.getProperty($propertyKey), $passData = $data + $prop, $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + \"/\" + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += \" var \" + $nextData + \" = \" + $passData + \"; \";\n }\n if ($hasDefault) {\n out += \" \" + $code + \" \";\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += \" if ( \" + $useData + \" === undefined \";\n if ($ownProperties) {\n out += \" || ! Object.prototype.hasOwnProperty.call(\" + $data + \", '\" + it.util.escapeQuotes($propertyKey) + \"') \";\n }\n out += \") { \" + $nextValid + \" = false; \";\n var $currentErrorPath = it.errorPath, $currErrSchemaPath = $errSchemaPath, $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + \"/required\";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"required\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { missingProperty: '\" + $missingProperty + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: '\";\n if (it.opts._errorDataPathProperty) {\n out += \"is a required property\";\n } else {\n out += \"should have required property \\\\'\" + $missingProperty + \"\\\\'\";\n }\n out += \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += \" } else { \";\n } else {\n if ($breakOnError) {\n out += \" if ( \" + $useData + \" === undefined \";\n if ($ownProperties) {\n out += \" || ! Object.prototype.hasOwnProperty.call(\" + $data + \", '\" + it.util.escapeQuotes($propertyKey) + \"') \";\n }\n out += \") { \" + $nextValid + \" = true; } else { \";\n } else {\n out += \" if (\" + $useData + \" !== undefined \";\n if ($ownProperties) {\n out += \" && Object.prototype.hasOwnProperty.call(\" + $data + \", '\" + it.util.escapeQuotes($propertyKey) + \"') \";\n }\n out += \" ) { \";\n }\n }\n out += \" \" + $code + \" } \";\n }\n }\n if ($breakOnError) {\n out += \" if (\" + $nextValid + \") { \";\n $closingBraces += \"}\";\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1, l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if (it.opts.strictKeywords ? typeof $sch == \"object\" && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + \".patternProperties\" + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + \"/patternProperties/\" + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += \" \" + $dataProperties + \" = \" + $dataProperties + \" || Object.keys(\" + $data + \"); for (var \" + $idx + \"=0; \" + $idx + \"<\" + $dataProperties + \".length; \" + $idx + \"++) { var \" + $key + \" = \" + $dataProperties + \"[\" + $idx + \"]; \";\n } else {\n out += \" for (var \" + $key + \" in \" + $data + \") { \";\n }\n out += \" if (\" + it.usePattern($pProperty) + \".test(\" + $key + \")) { \";\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + \"[\" + $key + \"]\";\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += \" \" + it.util.varReplace($code, $nextData, $passData) + \" \";\n } else {\n out += \" var \" + $nextData + \" = \" + $passData + \"; \" + $code + \" \";\n }\n if ($breakOnError) {\n out += \" if (!\" + $nextValid + \") break; \";\n }\n out += \" } \";\n if ($breakOnError) {\n out += \" else \" + $nextValid + \" = true; \";\n }\n out += \" } \";\n if ($breakOnError) {\n out += \" if (\" + $nextValid + \") { \";\n $closingBraces += \"}\";\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += \" \" + $closingBraces + \" if (\" + $errs + \" == errors) {\";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/propertyNames.js\nvar require_propertyNames = __commonJS((exports, module) => {\n module.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $errs = \"errs__\" + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = \"\";\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n out += \"var \" + $errs + \" = errors;\";\n if (it.opts.strictKeywords ? typeof $schema == \"object\" && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = \"key\" + $lvl, $idx = \"idx\" + $lvl, $i = \"i\" + $lvl, $invalidName = \"' + \" + $key + \" + '\", $dataNxt = $it.dataLevel = it.dataLevel + 1, $nextData = \"data\" + $dataNxt, $dataProperties = \"dataProperties\" + $lvl, $ownProperties = it.opts.ownProperties, $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += \" var \" + $dataProperties + \" = undefined; \";\n }\n if ($ownProperties) {\n out += \" \" + $dataProperties + \" = \" + $dataProperties + \" || Object.keys(\" + $data + \"); for (var \" + $idx + \"=0; \" + $idx + \"<\" + $dataProperties + \".length; \" + $idx + \"++) { var \" + $key + \" = \" + $dataProperties + \"[\" + $idx + \"]; \";\n } else {\n out += \" for (var \" + $key + \" in \" + $data + \") { \";\n }\n out += \" var startErrs\" + $lvl + \" = errors; \";\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += \" \" + it.util.varReplace($code, $nextData, $passData) + \" \";\n } else {\n out += \" var \" + $nextData + \" = \" + $passData + \"; \" + $code + \" \";\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += \" if (!\" + $nextValid + \") { for (var \" + $i + \"=startErrs\" + $lvl + \"; \" + $i + \"<errors; \" + $i + \"++) { vErrors[\" + $i + \"].propertyName = \" + $key + \"; } var err = \";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"propertyNames\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { propertyName: '\" + $invalidName + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'property name \\\\'\" + $invalidName + \"\\\\' is invalid' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n out += \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError(vErrors); \";\n } else {\n out += \" validate.errors = vErrors; return false; \";\n }\n }\n if ($breakOnError) {\n out += \" break; \";\n }\n out += \" } }\";\n }\n if ($breakOnError) {\n out += \" \" + $closingBraces + \" if (\" + $errs + \" == errors) {\";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/required.js\nvar require_required = __commonJS((exports, module) => {\n module.exports = function generate_required(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $vSchema = \"schema\" + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1, l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && (it.opts.strictKeywords ? typeof $propertySch == \"object\" && Object.keys($propertySch).length > 0 || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath, $loopRequired = $isData || $required.length >= it.opts.loopRequired, $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += \" var missing\" + $lvl + \"; \";\n if ($loopRequired) {\n if (!$isData) {\n out += \" var \" + $vSchema + \" = validate.schema\" + $schemaPath + \"; \";\n }\n var $i = \"i\" + $lvl, $propertyPath = \"schema\" + $lvl + \"[\" + $i + \"]\", $missingProperty = \"' + \" + $propertyPath + \" + '\";\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += \" var \" + $valid + \" = true; \";\n if ($isData) {\n out += \" if (schema\" + $lvl + \" === undefined) \" + $valid + \" = true; else if (!Array.isArray(schema\" + $lvl + \")) \" + $valid + \" = false; else {\";\n }\n out += \" for (var \" + $i + \" = 0; \" + $i + \" < \" + $vSchema + \".length; \" + $i + \"++) { \" + $valid + \" = \" + $data + \"[\" + $vSchema + \"[\" + $i + \"]] !== undefined \";\n if ($ownProperties) {\n out += \" && Object.prototype.hasOwnProperty.call(\" + $data + \", \" + $vSchema + \"[\" + $i + \"]) \";\n }\n out += \"; if (!\" + $valid + \") break; } \";\n if ($isData) {\n out += \" } \";\n }\n out += \" if (!\" + $valid + \") { \";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"required\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { missingProperty: '\" + $missingProperty + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: '\";\n if (it.opts._errorDataPathProperty) {\n out += \"is a required property\";\n } else {\n out += \"should have required property \\\\'\" + $missingProperty + \"\\\\'\";\n }\n out += \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } else { \";\n } else {\n out += \" if ( \";\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1, l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += \" || \";\n }\n var $prop = it.util.getProperty($propertyKey), $useData = $data + $prop;\n out += \" ( ( \" + $useData + \" === undefined \";\n if ($ownProperties) {\n out += \" || ! Object.prototype.hasOwnProperty.call(\" + $data + \", '\" + it.util.escapeQuotes($propertyKey) + \"') \";\n }\n out += \") && (missing\" + $lvl + \" = \" + it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) + \") ) \";\n }\n }\n out += \") { \";\n var $propertyPath = \"missing\" + $lvl, $missingProperty = \"' + \" + $propertyPath + \" + '\";\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + \" + \" + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"required\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { missingProperty: '\" + $missingProperty + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: '\";\n if (it.opts._errorDataPathProperty) {\n out += \"is a required property\";\n } else {\n out += \"should have required property \\\\'\" + $missingProperty + \"\\\\'\";\n }\n out += \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } else { \";\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += \" var \" + $vSchema + \" = validate.schema\" + $schemaPath + \"; \";\n }\n var $i = \"i\" + $lvl, $propertyPath = \"schema\" + $lvl + \"[\" + $i + \"]\", $missingProperty = \"' + \" + $propertyPath + \" + '\";\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += \" if (\" + $vSchema + \" && !Array.isArray(\" + $vSchema + \")) { var err = \";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"required\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { missingProperty: '\" + $missingProperty + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: '\";\n if (it.opts._errorDataPathProperty) {\n out += \"is a required property\";\n } else {\n out += \"should have required property \\\\'\" + $missingProperty + \"\\\\'\";\n }\n out += \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n out += \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (\" + $vSchema + \" !== undefined) { \";\n }\n out += \" for (var \" + $i + \" = 0; \" + $i + \" < \" + $vSchema + \".length; \" + $i + \"++) { if (\" + $data + \"[\" + $vSchema + \"[\" + $i + \"]] === undefined \";\n if ($ownProperties) {\n out += \" || ! Object.prototype.hasOwnProperty.call(\" + $data + \", \" + $vSchema + \"[\" + $i + \"]) \";\n }\n out += \") { var err = \";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"required\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { missingProperty: '\" + $missingProperty + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: '\";\n if (it.opts._errorDataPathProperty) {\n out += \"is a required property\";\n } else {\n out += \"should have required property \\\\'\" + $missingProperty + \"\\\\'\";\n }\n out += \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n out += \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } \";\n if ($isData) {\n out += \" } \";\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1, l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey), $missingProperty = it.util.escapeQuotes($propertyKey), $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += \" if ( \" + $useData + \" === undefined \";\n if ($ownProperties) {\n out += \" || ! Object.prototype.hasOwnProperty.call(\" + $data + \", '\" + it.util.escapeQuotes($propertyKey) + \"') \";\n }\n out += \") { var err = \";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"required\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { missingProperty: '\" + $missingProperty + \"' } \";\n if (it.opts.messages !== false) {\n out += \" , message: '\";\n if (it.opts._errorDataPathProperty) {\n out += \"is a required property\";\n } else {\n out += \"should have required property \\\\'\" + $missingProperty + \"\\\\'\";\n }\n out += \"' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n out += \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } \";\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += \" if (true) {\";\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/uniqueItems.js\nvar require_uniqueItems = __commonJS((exports, module) => {\n module.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += \" var \" + $valid + \"; if (\" + $schemaValue + \" === false || \" + $schemaValue + \" === undefined) \" + $valid + \" = true; else if (typeof \" + $schemaValue + \" != 'boolean') \" + $valid + \" = false; else { \";\n }\n out += \" var i = \" + $data + \".length , \" + $valid + \" = true , j; if (i > 1) { \";\n var $itemType = it.schema.items && it.schema.items.type, $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == \"object\" || $itemType == \"array\" || $typeIsArray && ($itemType.indexOf(\"object\") >= 0 || $itemType.indexOf(\"array\") >= 0)) {\n out += \" outer: for (;i--;) { for (j = i; j--;) { if (equal(\" + $data + \"[i], \" + $data + \"[j])) { \" + $valid + \" = false; break outer; } } } \";\n } else {\n out += \" var itemIndices = {}, item; for (;i--;) { var item = \" + $data + \"[i]; \";\n var $method = \"checkDataType\" + ($typeIsArray ? \"s\" : \"\");\n out += \" if (\" + it.util[$method]($itemType, \"item\", it.opts.strictNumbers, true) + \") continue; \";\n if ($typeIsArray) {\n out += ` if (typeof item == 'string') item = '\"' + item; `;\n }\n out += \" if (typeof itemIndices[item] == 'number') { \" + $valid + \" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } \";\n }\n out += \" } \";\n if ($isData) {\n out += \" } \";\n }\n out += \" if (!\" + $valid + \") { \";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + \"uniqueItems\" + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { i: i, j: j } \";\n if (it.opts.messages !== false) {\n out += \" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' \";\n }\n if (it.opts.verbose) {\n out += \" , schema: \";\n if ($isData) {\n out += \"validate.schema\" + $schemaPath;\n } else {\n out += \"\" + $schema;\n }\n out += \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n out += \" } \";\n if ($breakOnError) {\n out += \" else { \";\n }\n } else {\n if ($breakOnError) {\n out += \" if (true) { \";\n }\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/dotjs/index.js\nvar require_dotjs = __commonJS((exports, module) => {\n module.exports = {\n $ref: require_ref(),\n allOf: require_allOf(),\n anyOf: require_anyOf(),\n $comment: require_comment(),\n const: require_const(),\n contains: require_contains(),\n dependencies: require_dependencies(),\n enum: require_enum(),\n format: require_format(),\n if: require_if(),\n items: require_items(),\n maximum: require__limit(),\n minimum: require__limit(),\n maxItems: require__limitItems(),\n minItems: require__limitItems(),\n maxLength: require__limitLength(),\n minLength: require__limitLength(),\n maxProperties: require__limitProperties(),\n minProperties: require__limitProperties(),\n multipleOf: require_multipleOf(),\n not: require_not(),\n oneOf: require_oneOf(),\n pattern: require_pattern(),\n properties: require_properties(),\n propertyNames: require_propertyNames(),\n required: require_required(),\n uniqueItems: require_uniqueItems(),\n validate: require_validate()\n };\n});\n\n// ../node_modules/ajv/lib/compile/rules.js\nvar require_rules = __commonJS((exports, module) => {\n var ruleModules = require_dotjs();\n var toHash = require_util().toHash;\n module.exports = function rules() {\n var RULES = [\n {\n type: \"number\",\n rules: [\n { maximum: [\"exclusiveMaximum\"] },\n { minimum: [\"exclusiveMinimum\"] },\n \"multipleOf\",\n \"format\"\n ]\n },\n {\n type: \"string\",\n rules: [\"maxLength\", \"minLength\", \"pattern\", \"format\"]\n },\n {\n type: \"array\",\n rules: [\"maxItems\", \"minItems\", \"items\", \"contains\", \"uniqueItems\"]\n },\n {\n type: \"object\",\n rules: [\n \"maxProperties\",\n \"minProperties\",\n \"required\",\n \"dependencies\",\n \"propertyNames\",\n { properties: [\"additionalProperties\", \"patternProperties\"] }\n ]\n },\n { rules: [\"$ref\", \"const\", \"enum\", \"not\", \"anyOf\", \"oneOf\", \"allOf\", \"if\"] }\n ];\n var ALL = [\"type\", \"$comment\"];\n var KEYWORDS = [\n \"$schema\",\n \"$id\",\n \"id\",\n \"$data\",\n \"$async\",\n \"title\",\n \"description\",\n \"default\",\n \"definitions\",\n \"examples\",\n \"readOnly\",\n \"writeOnly\",\n \"contentMediaType\",\n \"contentEncoding\",\n \"additionalItems\",\n \"then\",\n \"else\"\n ];\n var TYPES = [\"number\", \"integer\", \"string\", \"array\", \"object\", \"boolean\", \"null\"];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n RULES.forEach(function(group) {\n group.rules = group.rules.map(function(keyword) {\n var implKeywords;\n if (typeof keyword == \"object\") {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function(k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n RULES.all.$comment = {\n keyword: \"$comment\",\n code: ruleModules.$comment\n };\n if (group.type)\n RULES.types[group.type] = group;\n });\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n return RULES;\n };\n});\n\n// ../node_modules/ajv/lib/data.js\nvar require_data = __commonJS((exports, module) => {\n var KEYWORDS = [\n \"multipleOf\",\n \"maximum\",\n \"exclusiveMaximum\",\n \"minimum\",\n \"exclusiveMinimum\",\n \"maxLength\",\n \"minLength\",\n \"pattern\",\n \"additionalItems\",\n \"maxItems\",\n \"minItems\",\n \"uniqueItems\",\n \"maxProperties\",\n \"minProperties\",\n \"required\",\n \"additionalProperties\",\n \"enum\",\n \"format\",\n \"const\"\n ];\n module.exports = function(metaSchema, keywordsJsonPointers) {\n for (var i = 0;i < keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split(\"/\");\n var keywords = metaSchema;\n var j;\n for (j = 1;j < segments.length; j++)\n keywords = keywords[segments[j]];\n for (j = 0;j < KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\" }\n ]\n };\n }\n }\n }\n return metaSchema;\n };\n});\n\n// ../node_modules/ajv/lib/compile/async.js\nvar require_async = __commonJS((exports, module) => {\n var MissingRefError = require_error_classes().MissingRef;\n module.exports = compileAsync;\n function compileAsync(schema, meta, callback) {\n var self2 = this;\n if (typeof this._opts.loadSchema != \"function\")\n throw new Error(\"options.loadSchema should be a function\");\n if (typeof meta == \"function\") {\n callback = meta;\n meta = undefined;\n }\n var p = loadMetaSchemaOf(schema).then(function() {\n var schemaObj = self2._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n if (callback) {\n p.then(function(v) {\n callback(null, v);\n }, callback);\n }\n return p;\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self2.getSchema($schema) ? compileAsync.call(self2, { $ref: $schema }, true) : Promise.resolve();\n }\n function _compileAsync(schemaObj) {\n try {\n return self2._compile(schemaObj);\n } catch (e) {\n if (e instanceof MissingRefError)\n return loadMissingSchema(e);\n throw e;\n }\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref))\n throw new Error(\"Schema \" + ref + \" is loaded but \" + e.missingRef + \" cannot be resolved\");\n var schemaPromise = self2._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self2._loadingSchemas[ref] = self2._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n return schemaPromise.then(function(sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function() {\n if (!added(ref))\n self2.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n function removePromise() {\n delete self2._loadingSchemas[ref];\n }\n function added(ref2) {\n return self2._refs[ref2] || self2._schemas[ref2];\n }\n }\n }\n }\n});\n\n// ../node_modules/ajv/lib/dotjs/custom.js\nvar require_custom = __commonJS((exports, module) => {\n module.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = \" \";\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + \"/\" + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = \"data\" + ($dataLvl || \"\");\n var $valid = \"valid\" + $lvl;\n var $errs = \"errs__\" + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data, $schemaValue;\n if ($isData) {\n out += \" var schema\" + $lvl + \" = \" + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + \"; \";\n $schemaValue = \"schema\" + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this, $definition = \"definition\" + $lvl, $rDef = $rule.definition, $closingBraces = \"\";\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = \"keywordValidate\" + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += \" var \" + $definition + \" = RULES.custom['\" + $keyword + \"'].definition; var \" + $validateCode + \" = \" + $definition + \".validate;\";\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate)\n return;\n $schemaValue = \"validate.schema\" + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + \".errors\", $i = \"i\" + $lvl, $ruleErr = \"ruleErr\" + $lvl, $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async)\n throw new Error(\"async keyword in sync schema\");\n if (!($inline || $macro)) {\n out += \"\" + $ruleErrs + \" = null;\";\n }\n out += \"var \" + $errs + \" = errors;var \" + $valid + \";\";\n if ($isData && $rDef.$data) {\n $closingBraces += \"}\";\n out += \" if (\" + $schemaValue + \" === undefined) { \" + $valid + \" = true; } else { \";\n if ($validateSchema) {\n $closingBraces += \"}\";\n out += \" \" + $valid + \" = \" + $definition + \".validateSchema(\" + $schemaValue + \"); if (\" + $valid + \") { \";\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += \" \" + $ruleValidate.validate + \" \";\n } else {\n out += \" \" + $valid + \" = \" + $ruleValidate.validate + \"; \";\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = \"\";\n $it.level++;\n var $nextValid = \"valid\" + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = \"\";\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += \" \" + $code;\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n out += \" \" + $validateCode + \".call( \";\n if (it.opts.passContext) {\n out += \"this\";\n } else {\n out += \"self\";\n }\n if ($compile || $rDef.schema === false) {\n out += \" , \" + $data + \" \";\n } else {\n out += \" , \" + $schemaValue + \" , \" + $data + \" , validate.schema\" + it.schemaPath + \" \";\n }\n out += \" , (dataPath || '')\";\n if (it.errorPath != '\"\"') {\n out += \" + \" + it.errorPath;\n }\n var $parentData = $dataLvl ? \"data\" + ($dataLvl - 1 || \"\") : \"parentData\", $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : \"parentDataProperty\";\n out += \" , \" + $parentData + \" , \" + $parentDataProperty + \" , rootData ) \";\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += \" \" + $valid + \" = \";\n if ($asyncKeyword) {\n out += \"await \";\n }\n out += \"\" + def_callRuleValidate + \"; \";\n } else {\n if ($asyncKeyword) {\n $ruleErrs = \"customErrors\" + $lvl;\n out += \" var \" + $ruleErrs + \" = null; try { \" + $valid + \" = await \" + def_callRuleValidate + \"; } catch (e) { \" + $valid + \" = false; if (e instanceof ValidationError) \" + $ruleErrs + \" = e.errors; else throw e; } \";\n } else {\n out += \" \" + $ruleErrs + \" = null; \" + $valid + \" = \" + def_callRuleValidate + \"; \";\n }\n }\n }\n if ($rDef.modifying) {\n out += \" if (\" + $parentData + \") \" + $data + \" = \" + $parentData + \"[\" + $parentDataProperty + \"];\";\n }\n out += \"\" + $closingBraces;\n if ($rDef.valid) {\n if ($breakOnError) {\n out += \" if (true) { \";\n }\n } else {\n out += \" if ( \";\n if ($rDef.valid === undefined) {\n out += \" !\";\n if ($macro) {\n out += \"\" + $nextValid;\n } else {\n out += \"\" + $valid;\n }\n } else {\n out += \" \" + !$rDef.valid + \" \";\n }\n out += \") { \";\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = \"\";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"custom\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { keyword: '\" + $rule.keyword + \"' } \";\n if (it.opts.messages !== false) {\n out += ` , message: 'should pass \"` + $rule.keyword + `\" keyword validation' `;\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError([\" + __err + \"]); \";\n } else {\n out += \" validate.errors = [\" + __err + \"]; return false; \";\n }\n } else {\n out += \" var err = \" + __err + \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != \"full\") {\n out += \" for (var \" + $i + \"=\" + $errs + \"; \" + $i + \"<errors; \" + $i + \"++) { var \" + $ruleErr + \" = vErrors[\" + $i + \"]; if (\" + $ruleErr + \".dataPath === undefined) \" + $ruleErr + \".dataPath = (dataPath || '') + \" + it.errorPath + \"; if (\" + $ruleErr + \".schemaPath === undefined) { \" + $ruleErr + '.schemaPath = \"' + $errSchemaPath + '\"; } ';\n if (it.opts.verbose) {\n out += \" \" + $ruleErr + \".schema = \" + $schemaValue + \"; \" + $ruleErr + \".data = \" + $data + \"; \";\n }\n out += \" } \";\n }\n } else {\n if ($rDef.errors === false) {\n out += \" \" + def_customError + \" \";\n } else {\n out += \" if (\" + $errs + \" == errors) { \" + def_customError + \" } else { for (var \" + $i + \"=\" + $errs + \"; \" + $i + \"<errors; \" + $i + \"++) { var \" + $ruleErr + \" = vErrors[\" + $i + \"]; if (\" + $ruleErr + \".dataPath === undefined) \" + $ruleErr + \".dataPath = (dataPath || '') + \" + it.errorPath + \"; if (\" + $ruleErr + \".schemaPath === undefined) { \" + $ruleErr + '.schemaPath = \"' + $errSchemaPath + '\"; } ';\n if (it.opts.verbose) {\n out += \" \" + $ruleErr + \".schema = \" + $schemaValue + \"; \" + $ruleErr + \".data = \" + $data + \"; \";\n }\n out += \" } } \";\n }\n }\n } else if ($macro) {\n out += \" var err = \";\n if (it.createErrors !== false) {\n out += \" { keyword: '\" + ($errorKeyword || \"custom\") + \"' , dataPath: (dataPath || '') + \" + it.errorPath + \" , schemaPath: \" + it.util.toQuotedString($errSchemaPath) + \" , params: { keyword: '\" + $rule.keyword + \"' } \";\n if (it.opts.messages !== false) {\n out += ` , message: 'should pass \"` + $rule.keyword + `\" keyword validation' `;\n }\n if (it.opts.verbose) {\n out += \" , schema: validate.schema\" + $schemaPath + \" , parentSchema: validate.schema\" + it.schemaPath + \" , data: \" + $data + \" \";\n }\n out += \" } \";\n } else {\n out += \" {} \";\n }\n out += \"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \";\n if (!it.compositeRule && $breakOnError) {\n if (it.async) {\n out += \" throw new ValidationError(vErrors); \";\n } else {\n out += \" validate.errors = vErrors; return false; \";\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += \" \" + def_customError + \" \";\n } else {\n out += \" if (Array.isArray(\" + $ruleErrs + \")) { if (vErrors === null) vErrors = \" + $ruleErrs + \"; else vErrors = vErrors.concat(\" + $ruleErrs + \"); errors = vErrors.length; for (var \" + $i + \"=\" + $errs + \"; \" + $i + \"<errors; \" + $i + \"++) { var \" + $ruleErr + \" = vErrors[\" + $i + \"]; if (\" + $ruleErr + \".dataPath === undefined) \" + $ruleErr + \".dataPath = (dataPath || '') + \" + it.errorPath + \"; \" + $ruleErr + '.schemaPath = \"' + $errSchemaPath + '\"; ';\n if (it.opts.verbose) {\n out += \" \" + $ruleErr + \".schema = \" + $schemaValue + \"; \" + $ruleErr + \".data = \" + $data + \"; \";\n }\n out += \" } } else { \" + def_customError + \" } \";\n }\n }\n out += \" } \";\n if ($breakOnError) {\n out += \" else { \";\n }\n }\n return out;\n };\n});\n\n// ../node_modules/ajv/lib/refs/json-schema-draft-07.json\nvar require_json_schema_draft_07 = __commonJS((exports, module) => {\n module.exports = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n $id: \"http://json-schema.org/draft-07/schema#\",\n title: \"Core schema meta-schema\",\n definitions: {\n schemaArray: {\n type: \"array\",\n minItems: 1,\n items: { $ref: \"#\" }\n },\n nonNegativeInteger: {\n type: \"integer\",\n minimum: 0\n },\n nonNegativeIntegerDefault0: {\n allOf: [\n { $ref: \"#/definitions/nonNegativeInteger\" },\n { default: 0 }\n ]\n },\n simpleTypes: {\n enum: [\n \"array\",\n \"boolean\",\n \"integer\",\n \"null\",\n \"number\",\n \"object\",\n \"string\"\n ]\n },\n stringArray: {\n type: \"array\",\n items: { type: \"string\" },\n uniqueItems: true,\n default: []\n }\n },\n type: [\"object\", \"boolean\"],\n properties: {\n $id: {\n type: \"string\",\n format: \"uri-reference\"\n },\n $schema: {\n type: \"string\",\n format: \"uri\"\n },\n $ref: {\n type: \"string\",\n format: \"uri-reference\"\n },\n $comment: {\n type: \"string\"\n },\n title: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n default: true,\n readOnly: {\n type: \"boolean\",\n default: false\n },\n examples: {\n type: \"array\",\n items: true\n },\n multipleOf: {\n type: \"number\",\n exclusiveMinimum: 0\n },\n maximum: {\n type: \"number\"\n },\n exclusiveMaximum: {\n type: \"number\"\n },\n minimum: {\n type: \"number\"\n },\n exclusiveMinimum: {\n type: \"number\"\n },\n maxLength: { $ref: \"#/definitions/nonNegativeInteger\" },\n minLength: { $ref: \"#/definitions/nonNegativeIntegerDefault0\" },\n pattern: {\n type: \"string\",\n format: \"regex\"\n },\n additionalItems: { $ref: \"#\" },\n items: {\n anyOf: [\n { $ref: \"#\" },\n { $ref: \"#/definitions/schemaArray\" }\n ],\n default: true\n },\n maxItems: { $ref: \"#/definitions/nonNegativeInteger\" },\n minItems: { $ref: \"#/definitions/nonNegativeIntegerDefault0\" },\n uniqueItems: {\n type: \"boolean\",\n default: false\n },\n contains: { $ref: \"#\" },\n maxProperties: { $ref: \"#/definitions/nonNegativeInteger\" },\n minProperties: { $ref: \"#/definitions/nonNegativeIntegerDefault0\" },\n required: { $ref: \"#/definitions/stringArray\" },\n additionalProperties: { $ref: \"#\" },\n definitions: {\n type: \"object\",\n additionalProperties: { $ref: \"#\" },\n default: {}\n },\n properties: {\n type: \"object\",\n additionalProperties: { $ref: \"#\" },\n default: {}\n },\n patternProperties: {\n type: \"object\",\n additionalProperties: { $ref: \"#\" },\n propertyNames: { format: \"regex\" },\n default: {}\n },\n dependencies: {\n type: \"object\",\n additionalProperties: {\n anyOf: [\n { $ref: \"#\" },\n { $ref: \"#/definitions/stringArray\" }\n ]\n }\n },\n propertyNames: { $ref: \"#\" },\n const: true,\n enum: {\n type: \"array\",\n items: true,\n minItems: 1,\n uniqueItems: true\n },\n type: {\n anyOf: [\n { $ref: \"#/definitions/simpleTypes\" },\n {\n type: \"array\",\n items: { $ref: \"#/definitions/simpleTypes\" },\n minItems: 1,\n uniqueItems: true\n }\n ]\n },\n format: { type: \"string\" },\n contentMediaType: { type: \"string\" },\n contentEncoding: { type: \"string\" },\n if: { $ref: \"#\" },\n then: { $ref: \"#\" },\n else: { $ref: \"#\" },\n allOf: { $ref: \"#/definitions/schemaArray\" },\n anyOf: { $ref: \"#/definitions/schemaArray\" },\n oneOf: { $ref: \"#/definitions/schemaArray\" },\n not: { $ref: \"#\" }\n },\n default: true\n };\n});\n\n// ../node_modules/ajv/lib/definition_schema.js\nvar require_definition_schema = __commonJS((exports, module) => {\n var metaSchema = require_json_schema_draft_07();\n module.exports = {\n $id: \"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js\",\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: \"object\",\n dependencies: {\n schema: [\"validate\"],\n $data: [\"validate\"],\n statements: [\"inline\"],\n valid: { not: { required: [\"macro\"] } }\n },\n properties: {\n type: metaSchema.properties.type,\n schema: { type: \"boolean\" },\n statements: { type: \"boolean\" },\n dependencies: {\n type: \"array\",\n items: { type: \"string\" }\n },\n metaSchema: { type: \"object\" },\n modifying: { type: \"boolean\" },\n valid: { type: \"boolean\" },\n $data: { type: \"boolean\" },\n async: { type: \"boolean\" },\n errors: {\n anyOf: [\n { type: \"boolean\" },\n { const: \"full\" }\n ]\n }\n }\n };\n});\n\n// ../node_modules/ajv/lib/keyword.js\nvar require_keyword = __commonJS((exports, module) => {\n var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\n var customRuleCode = require_custom();\n var definitionSchema = require_definition_schema();\n module.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n };\n function addKeyword(keyword, definition) {\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error(\"Keyword \" + keyword + \" is already defined\");\n if (!IDENTIFIER.test(keyword))\n throw new Error(\"Keyword \" + keyword + \" is not a valid identifier\");\n if (definition) {\n this.validateKeyword(definition, true);\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i = 0;i < dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\" }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n function _addRule(keyword2, dataType2, definition2) {\n var ruleGroup;\n for (var i2 = 0;i2 < RULES.length; i2++) {\n var rg = RULES[i2];\n if (rg.type == dataType2) {\n ruleGroup = rg;\n break;\n }\n }\n if (!ruleGroup) {\n ruleGroup = { type: dataType2, rules: [] };\n RULES.push(ruleGroup);\n }\n var rule = {\n keyword: keyword2,\n definition: definition2,\n custom: true,\n code: customRuleCode,\n implements: definition2.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword2] = rule;\n }\n return this;\n }\n function getKeyword(keyword) {\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n }\n function removeKeyword(keyword) {\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i = 0;i < RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j = 0;j < rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n }\n function validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword || this.compile(definitionSchema, true);\n if (v(definition))\n return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error(\"custom keyword definition is invalid: \" + this.errorsText(v.errors));\n else\n return false;\n }\n});\n\n// ../node_modules/ajv/lib/refs/data.json\nvar require_data2 = __commonJS((exports, module) => {\n module.exports = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n $id: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n description: \"Meta-schema for $data reference (JSON Schema extension proposal)\",\n type: \"object\",\n required: [\"$data\"],\n properties: {\n $data: {\n type: \"string\",\n anyOf: [\n { format: \"relative-json-pointer\" },\n { format: \"json-pointer\" }\n ]\n }\n },\n additionalProperties: false\n };\n});\n\n// ../node_modules/ajv/lib/ajv.js\nvar require_ajv = __commonJS((exports, module) => {\n var compileSchema = require_compile();\n var resolve = require_resolve();\n var Cache = require_cache();\n var SchemaObject = require_schema_obj();\n var stableStringify = require_fast_json_stable_stringify();\n var formats = require_formats();\n var rules = require_rules();\n var $dataMetaSchema = require_data();\n var util3 = require_util();\n module.exports = Ajv;\n Ajv.prototype.validate = validate;\n Ajv.prototype.compile = compile;\n Ajv.prototype.addSchema = addSchema;\n Ajv.prototype.addMetaSchema = addMetaSchema;\n Ajv.prototype.validateSchema = validateSchema;\n Ajv.prototype.getSchema = getSchema;\n Ajv.prototype.removeSchema = removeSchema;\n Ajv.prototype.addFormat = addFormat;\n Ajv.prototype.errorsText = errorsText;\n Ajv.prototype._addSchema = _addSchema;\n Ajv.prototype._compile = _compile;\n Ajv.prototype.compileAsync = require_async();\n var customKeyword = require_keyword();\n Ajv.prototype.addKeyword = customKeyword.add;\n Ajv.prototype.getKeyword = customKeyword.get;\n Ajv.prototype.removeKeyword = customKeyword.remove;\n Ajv.prototype.validateKeyword = customKeyword.validate;\n var errorClasses = require_error_classes();\n Ajv.ValidationError = errorClasses.Validation;\n Ajv.MissingRefError = errorClasses.MissingRef;\n Ajv.$dataMetaSchema = $dataMetaSchema;\n var META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\n var META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\", \"strictDefaults\"];\n var META_SUPPORT_DATA = [\"/properties\"];\n function Ajv(opts) {\n if (!(this instanceof Ajv))\n return new Ajv(opts);\n opts = this._opts = util3.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == \"property\")\n opts._errorDataPathProperty = true;\n if (opts.serialize === undefined)\n opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n if (opts.formats)\n addInitialFormats(this);\n if (opts.keywords)\n addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n if (opts.nullable)\n this.addKeyword(\"nullable\", { metaSchema: { type: \"boolean\" } });\n addInitialSchemas(this);\n }\n function validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n var valid = v(data);\n if (v.$async !== true)\n this.errors = v.errors;\n return valid;\n }\n function compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n }\n function addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)) {\n for (var i = 0;i < schema.length; i++)\n this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != \"string\")\n throw new Error(\"schema id must be string\");\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n }\n function addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n }\n function validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\")\n throw new Error(\"$schema must be a string\");\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = \"schema is invalid: \" + this.errorsText();\n if (this._opts.validateSchema == \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n function defaultMeta(self2) {\n var meta = self2._opts.meta;\n self2._opts.defaultMeta = typeof meta == \"object\" ? self2._getId(meta) || meta : self2.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined;\n return self2._opts.defaultMeta;\n }\n function getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case \"object\":\n return schemaObj.validate || this._compile(schemaObj);\n case \"string\":\n return this.getSchema(schemaObj);\n case \"undefined\":\n return _getSchemaFragment(this, keyRef);\n }\n }\n function _getSchemaFragment(self2, ref) {\n var res = resolve.schema.call(self2, { schema: {} }, ref);\n if (res) {\n var { schema, root: root2, baseId } = res;\n var v = compileSchema.call(self2, schema, root2, undefined, baseId);\n self2._fragments[ref] = new SchemaObject({\n ref,\n fragment: true,\n schema,\n root: root2,\n baseId,\n validate: v\n });\n return v;\n }\n }\n function _getSchemaObj(self2, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self2._schemas[keyRef] || self2._refs[keyRef] || self2._fragments[keyRef];\n }\n function removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case \"string\":\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj)\n this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case \"object\":\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n }\n function _removeAllSchemas(self2, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self2._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n }\n function _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != \"object\" && typeof schema != \"boolean\")\n throw new Error(\"schema should be object or boolean\");\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached)\n return cached;\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema)\n checkUnique(this, id);\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n var localRefs = resolve.ids.call(this, schema);\n var schemaObj = new SchemaObject({\n id,\n schema,\n localRefs,\n cacheKey,\n meta\n });\n if (id[0] != \"#\" && shouldAddSchema)\n this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n if (willValidate && recursiveMeta)\n this.validateSchema(schema, true);\n return schemaObj;\n }\n function _compile(schemaObj, root2) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root2 ? root2 : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n var v;\n try {\n v = compileSchema.call(this, schemaObj.schema, root2, schemaObj.localRefs);\n } catch (e) {\n delete schemaObj.validate;\n throw e;\n } finally {\n schemaObj.compiling = false;\n if (schemaObj.meta)\n this._opts = currentOpts;\n }\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n function callValidate() {\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n }\n function chooseGetId(opts) {\n switch (opts.schemaId) {\n case \"auto\":\n return _get$IdOrId;\n case \"id\":\n return _getId;\n default:\n return _get$Id;\n }\n }\n function _getId(schema) {\n if (schema.$id)\n this.logger.warn(\"schema $id ignored\", schema.$id);\n return schema.id;\n }\n function _get$Id(schema) {\n if (schema.id)\n this.logger.warn(\"schema id ignored\", schema.id);\n return schema.$id;\n }\n function _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error(\"schema $id is different from id\");\n return schema.$id || schema.id;\n }\n function errorsText(errors2, options) {\n errors2 = errors2 || this.errors;\n if (!errors2)\n return \"No errors\";\n options = options || {};\n var separator = options.separator === undefined ? \", \" : options.separator;\n var dataVar = options.dataVar === undefined ? \"data\" : options.dataVar;\n var text = \"\";\n for (var i = 0;i < errors2.length; i++) {\n var e = errors2[i];\n if (e)\n text += dataVar + e.dataPath + \" \" + e.message + separator;\n }\n return text.slice(0, -separator.length);\n }\n function addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this._formats[name] = format;\n return this;\n }\n function addDefaultMetaSchema(self2) {\n var $dataSchema;\n if (self2._opts.$data) {\n $dataSchema = require_data2();\n self2.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self2._opts.meta === false)\n return;\n var metaSchema = require_json_schema_draft_07();\n if (self2._opts.$data)\n metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self2.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self2._refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n function addInitialSchemas(self2) {\n var optsSchemas = self2._opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n self2.addSchema(optsSchemas);\n else\n for (var key in optsSchemas)\n self2.addSchema(optsSchemas[key], key);\n }\n function addInitialFormats(self2) {\n for (var name in self2._opts.formats) {\n var format = self2._opts.formats[name];\n self2.addFormat(name, format);\n }\n }\n function addInitialKeywords(self2) {\n for (var name in self2._opts.keywords) {\n var keyword = self2._opts.keywords[name];\n self2.addKeyword(name, keyword);\n }\n }\n function checkUnique(self2, id) {\n if (self2._schemas[id] || self2._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n }\n function getMetaSchemaOptions(self2) {\n var metaOpts = util3.copy(self2._opts);\n for (var i = 0;i < META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n }\n function setLogger(self2) {\n var logger = self2._opts.logger;\n if (logger === false) {\n self2.logger = { log: noop, warn: noop, error: noop };\n } else {\n if (logger === undefined)\n logger = console;\n if (!(typeof logger == \"object\" && logger.log && logger.warn && logger.error))\n throw new Error(\"logger must implement log, warn and error methods\");\n self2.logger = logger;\n }\n }\n function noop() {}\n});\n\n// ../src/entrypoints/agentSdk.ts\nimport { join as join3 } from \"path\";\nimport { fileURLToPath } from \"url\";\n\n// ../src/utils/abortController.ts\nimport { setMaxListeners } from \"events\";\nvar DEFAULT_MAX_LISTENERS = 50;\nfunction createAbortController(maxListeners = DEFAULT_MAX_LISTENERS) {\n const controller = new AbortController;\n setMaxListeners(maxListeners, controller.signal);\n return controller;\n}\n\n// ../src/transport/ProcessTransport.ts\nimport { spawn } from \"child_process\";\nimport { createInterface } from \"readline\";\n\n// ../src/utils/fsOperations.ts\nimport * as fs from \"fs\";\nimport { stat as statPromise, open } from \"fs/promises\";\nvar NodeFsOperations = {\n cwd() {\n return process.cwd();\n },\n existsSync(fsPath) {\n return fs.existsSync(fsPath);\n },\n async stat(fsPath) {\n return statPromise(fsPath);\n },\n statSync(fsPath) {\n return fs.statSync(fsPath);\n },\n readFileSync(fsPath, options) {\n return fs.readFileSync(fsPath, { encoding: options.encoding });\n },\n readFileBytesSync(fsPath) {\n return fs.readFileSync(fsPath);\n },\n readSync(fsPath, options) {\n let fd = undefined;\n try {\n fd = fs.openSync(fsPath, \"r\");\n const buffer = Buffer.alloc(options.length);\n const bytesRead = fs.readSync(fd, buffer, 0, options.length, 0);\n return { buffer, bytesRead };\n } finally {\n if (fd)\n fs.closeSync(fd);\n }\n },\n writeFileSync(fsPath, data, options) {\n if (!options.flush) {\n const writeOptions = {\n encoding: options.encoding\n };\n if (options.mode !== undefined) {\n writeOptions.mode = options.mode;\n }\n fs.writeFileSync(fsPath, data, writeOptions);\n return;\n }\n let fd;\n try {\n const mode = options.mode !== undefined ? options.mode : undefined;\n fd = fs.openSync(fsPath, \"w\", mode);\n fs.writeFileSync(fd, data, { encoding: options.encoding });\n fs.fsyncSync(fd);\n } finally {\n if (fd) {\n fs.closeSync(fd);\n }\n }\n },\n appendFileSync(path, data) {\n fs.appendFileSync(path, data);\n },\n copyFileSync(src, dest) {\n fs.copyFileSync(src, dest);\n },\n unlinkSync(path) {\n fs.unlinkSync(path);\n },\n renameSync(oldPath, newPath) {\n fs.renameSync(oldPath, newPath);\n },\n linkSync(target, path) {\n fs.linkSync(target, path);\n },\n symlinkSync(target, path) {\n fs.symlinkSync(target, path);\n },\n readlinkSync(path) {\n return fs.readlinkSync(path);\n },\n realpathSync(path) {\n return fs.realpathSync(path);\n },\n mkdirSync(dirPath) {\n if (!fs.existsSync(dirPath)) {\n fs.mkdirSync(dirPath, { recursive: true, mode: 448 });\n }\n },\n readdirSync(dirPath) {\n return fs.readdirSync(dirPath, { withFileTypes: true });\n },\n readdirStringSync(dirPath) {\n return fs.readdirSync(dirPath);\n },\n isDirEmptySync(dirPath) {\n const files = this.readdirSync(dirPath);\n return files.length === 0;\n },\n rmdirSync(dirPath) {\n fs.rmdirSync(dirPath);\n },\n rmSync(path, options) {\n fs.rmSync(path, options);\n },\n createWriteStream(path) {\n return fs.createWriteStream(path);\n }\n};\nvar activeFs = NodeFsOperations;\nfunction getFsImplementation() {\n return activeFs;\n}\n\n// ../src/entrypoints/agentSdkTypes.ts\nvar HOOK_EVENTS = [\n \"PreToolUse\",\n \"PostToolUse\",\n \"Notification\",\n \"UserPromptSubmit\",\n \"SessionStart\",\n \"SessionEnd\",\n \"Stop\",\n \"SubagentStop\",\n \"PreCompact\"\n];\nvar EXIT_REASONS = [\n \"clear\",\n \"logout\",\n \"prompt_input_exit\",\n \"other\",\n \"bypass_permissions_disabled\"\n];\nclass AbortError extends Error {\n}\n\n// ../src/utils/bundledMode.ts\nfunction isRunningWithBun() {\n return process.versions.bun !== undefined;\n}\n\n// ../src/transport/ProcessTransport.ts\nclass ProcessTransport {\n options;\n child;\n childStdin;\n childStdout;\n ready = false;\n abortController;\n exitError;\n exitListeners = [];\n processExitHandler;\n abortHandler;\n constructor(options) {\n this.options = options;\n this.abortController = options.abortController || createAbortController();\n this.initialize();\n }\n initialize() {\n try {\n const {\n additionalDirectories = [],\n agents,\n cwd,\n executable = isRunningWithBun() ? \"bun\" : \"node\",\n executableArgs = [],\n extraArgs = {},\n pathToClaudeCodeExecutable,\n env = { ...process.env },\n stderr,\n customSystemPrompt,\n appendSystemPrompt,\n maxThinkingTokens,\n maxTurns,\n maxBudgetUsd,\n model,\n fallbackModel,\n permissionMode,\n allowDangerouslySkipPermissions,\n permissionPromptToolName,\n continueConversation,\n resume,\n settingSources,\n allowedTools = [],\n disallowedTools = [],\n mcpServers,\n strictMcpConfig,\n canUseTool,\n includePartialMessages,\n plugins\n } = this.options;\n const args = [\n \"--output-format\",\n \"stream-json\",\n \"--verbose\",\n \"--input-format\",\n \"stream-json\"\n ];\n if (typeof customSystemPrompt === \"string\")\n args.push(\"--system-prompt\", customSystemPrompt);\n if (appendSystemPrompt)\n args.push(\"--append-system-prompt\", appendSystemPrompt);\n if (maxThinkingTokens !== undefined) {\n args.push(\"--max-thinking-tokens\", maxThinkingTokens.toString());\n }\n if (maxTurns)\n args.push(\"--max-turns\", maxTurns.toString());\n if (maxBudgetUsd !== undefined) {\n args.push(\"--max-budget-usd\", maxBudgetUsd.toString());\n }\n if (model)\n args.push(\"--model\", model);\n if (env.DEBUG)\n args.push(\"--debug-to-stderr\");\n if (canUseTool) {\n if (permissionPromptToolName) {\n throw new Error(\"canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.\");\n }\n args.push(\"--permission-prompt-tool\", \"stdio\");\n } else if (permissionPromptToolName) {\n args.push(\"--permission-prompt-tool\", permissionPromptToolName);\n }\n if (continueConversation)\n args.push(\"--continue\");\n if (resume)\n args.push(\"--resume\", resume);\n if (allowedTools.length > 0) {\n args.push(\"--allowedTools\", allowedTools.join(\",\"));\n }\n if (disallowedTools.length > 0) {\n args.push(\"--disallowedTools\", disallowedTools.join(\",\"));\n }\n if (mcpServers && Object.keys(mcpServers).length > 0) {\n args.push(\"--mcp-config\", JSON.stringify({ mcpServers }));\n }\n if (agents && Object.keys(agents).length > 0) {\n args.push(\"--agents\", JSON.stringify(agents));\n }\n if (settingSources) {\n args.push(\"--setting-sources\", settingSources.join(\",\"));\n }\n if (strictMcpConfig) {\n args.push(\"--strict-mcp-config\");\n }\n if (permissionMode) {\n args.push(\"--permission-mode\", permissionMode);\n }\n if (allowDangerouslySkipPermissions) {\n args.push(\"--allow-dangerously-skip-permissions\");\n }\n if (fallbackModel) {\n if (model && fallbackModel === model) {\n throw new Error(\"Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.\");\n }\n args.push(\"--fallback-model\", fallbackModel);\n }\n if (includePartialMessages) {\n args.push(\"--include-partial-messages\");\n }\n for (const dir of additionalDirectories) {\n args.push(\"--add-dir\", dir);\n }\n if (plugins && plugins.length > 0) {\n for (const plugin of plugins) {\n if (plugin.type === \"local\") {\n args.push(\"--plugin-dir\", plugin.path);\n } else {\n throw new Error(`Unsupported plugin type: ${plugin.type}`);\n }\n }\n }\n if (this.options.forkSession) {\n args.push(\"--fork-session\");\n }\n if (this.options.resumeSessionAt) {\n args.push(\"--resume-session-at\", this.options.resumeSessionAt);\n }\n for (const [flag, value] of Object.entries(extraArgs)) {\n if (value === null) {\n args.push(`--${flag}`);\n } else {\n args.push(`--${flag}`, value);\n }\n }\n if (!env.CLAUDE_CODE_ENTRYPOINT) {\n env.CLAUDE_CODE_ENTRYPOINT = \"sdk-ts\";\n }\n const fs2 = getFsImplementation();\n if (!fs2.existsSync(pathToClaudeCodeExecutable)) {\n const errorMessage = isNativeBinary(pathToClaudeCodeExecutable) ? `Claude Code native binary not found at ${pathToClaudeCodeExecutable}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.` : `Claude Code executable not found at ${pathToClaudeCodeExecutable}. Is options.pathToClaudeCodeExecutable set?`;\n throw new ReferenceError(errorMessage);\n }\n const isNative = isNativeBinary(pathToClaudeCodeExecutable);\n const spawnCommand = isNative ? pathToClaudeCodeExecutable : executable;\n const spawnArgs = isNative ? [...executableArgs, ...args] : [...executableArgs, pathToClaudeCodeExecutable, ...args];\n this.logForDebugging(isNative ? `Spawning Claude Code native binary: ${spawnCommand} ${spawnArgs.join(\" \")}` : `Spawning Claude Code process: ${spawnCommand} ${spawnArgs.join(\" \")}`);\n const stderrMode = env.DEBUG || stderr ? \"pipe\" : \"ignore\";\n this.child = spawn(spawnCommand, spawnArgs, {\n cwd,\n stdio: [\"pipe\", \"pipe\", stderrMode],\n signal: this.abortController.signal,\n env\n });\n this.childStdin = this.child.stdin;\n this.childStdout = this.child.stdout;\n if (env.DEBUG || stderr) {\n this.child.stderr.on(\"data\", (data) => {\n this.logForDebugging(data.toString());\n });\n }\n const cleanup = () => {\n if (this.child && !this.child.killed) {\n this.child.kill(\"SIGTERM\");\n }\n };\n this.processExitHandler = cleanup;\n this.abortHandler = cleanup;\n process.on(\"exit\", this.processExitHandler);\n this.abortController.signal.addEventListener(\"abort\", this.abortHandler);\n this.child.on(\"error\", (error) => {\n this.ready = false;\n if (this.abortController.signal.aborted) {\n this.exitError = new AbortError(\"Claude Code process aborted by user\");\n } else {\n this.exitError = new Error(`Failed to spawn Claude Code process: ${error.message}`);\n this.logForDebugging(this.exitError.message);\n }\n });\n this.child.on(\"close\", (code, signal) => {\n this.ready = false;\n if (this.abortController.signal.aborted) {\n this.exitError = new AbortError(\"Claude Code process aborted by user\");\n } else {\n const error = this.getProcessExitError(code, signal);\n if (error) {\n this.exitError = error;\n this.logForDebugging(error.message);\n }\n }\n });\n this.ready = true;\n } catch (error) {\n this.ready = false;\n throw error;\n }\n }\n getProcessExitError(code, signal) {\n if (code !== 0 && code !== null) {\n return new Error(`Claude Code process exited with code ${code}`);\n } else if (signal) {\n return new Error(`Claude Code process terminated by signal ${signal}`);\n }\n return;\n }\n logForDebugging(message) {\n if (process.env.DEBUG) {\n process.stderr.write(`${message}\n`);\n }\n if (this.options.stderr) {\n this.options.stderr(message);\n }\n }\n write(data) {\n if (this.abortController.signal.aborted) {\n throw new AbortError(\"Operation aborted\");\n }\n if (!this.ready || !this.childStdin) {\n throw new Error(\"ProcessTransport is not ready for writing\");\n }\n if (this.child?.killed || this.child?.exitCode !== null) {\n throw new Error(\"Cannot write to terminated process\");\n }\n if (this.exitError) {\n throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);\n }\n if (process.env.DEBUG_SDK) {\n process.stderr.write(`[ProcessTransport] Writing to stdin: ${data.substring(0, 100)}\n`);\n }\n try {\n const written = this.childStdin.write(data);\n if (!written && process.env.DEBUG_SDK) {\n console.warn(\"[ProcessTransport] Write buffer full, data queued\");\n }\n } catch (error) {\n this.ready = false;\n throw new Error(`Failed to write to process stdin: ${error.message}`);\n }\n }\n close() {\n if (this.childStdin) {\n this.childStdin.end();\n this.childStdin = undefined;\n }\n if (this.processExitHandler) {\n process.off(\"exit\", this.processExitHandler);\n this.processExitHandler = undefined;\n }\n if (this.abortHandler) {\n this.abortController.signal.removeEventListener(\"abort\", this.abortHandler);\n this.abortHandler = undefined;\n }\n for (const { handler } of this.exitListeners) {\n this.child?.off(\"exit\", handler);\n }\n this.exitListeners = [];\n if (this.child && !this.child.killed) {\n this.child.kill(\"SIGTERM\");\n setTimeout(() => {\n if (this.child && !this.child.killed) {\n this.child.kill(\"SIGKILL\");\n }\n }, 5000);\n }\n this.ready = false;\n }\n isReady() {\n return this.ready;\n }\n async* readMessages() {\n if (!this.childStdout) {\n throw new Error(\"ProcessTransport output stream not available\");\n }\n const rl = createInterface({ input: this.childStdout });\n try {\n for await (const line of rl) {\n if (line.trim()) {\n const message = JSON.parse(line);\n yield message;\n }\n }\n await this.waitForExit();\n } catch (error) {\n throw error;\n } finally {\n rl.close();\n }\n }\n endInput() {\n if (this.childStdin) {\n this.childStdin.end();\n }\n }\n getInputStream() {\n return this.childStdin;\n }\n onExit(callback) {\n if (!this.child)\n return () => {};\n const handler = (code, signal) => {\n const error = this.getProcessExitError(code, signal);\n callback(error);\n };\n this.child.on(\"exit\", handler);\n this.exitListeners.push({ callback, handler });\n return () => {\n if (this.child) {\n this.child.off(\"exit\", handler);\n }\n const index = this.exitListeners.findIndex((l) => l.handler === handler);\n if (index !== -1) {\n this.exitListeners.splice(index, 1);\n }\n };\n }\n async waitForExit() {\n if (!this.child) {\n if (this.exitError) {\n throw this.exitError;\n }\n return;\n }\n if (this.child.exitCode !== null || this.child.killed) {\n if (this.exitError) {\n throw this.exitError;\n }\n return;\n }\n return new Promise((resolve, reject) => {\n const exitHandler = (code, signal) => {\n if (this.abortController.signal.aborted) {\n reject(new AbortError(\"Operation aborted\"));\n return;\n }\n const error = this.getProcessExitError(code, signal);\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n };\n this.child.once(\"exit\", exitHandler);\n const errorHandler = (error) => {\n this.child.off(\"exit\", exitHandler);\n reject(error);\n };\n this.child.once(\"error\", errorHandler);\n this.child.once(\"exit\", () => {\n this.child.off(\"error\", errorHandler);\n });\n });\n }\n}\nfunction isNativeBinary(executablePath) {\n const jsExtensions = [\".js\", \".mjs\", \".tsx\", \".ts\", \".jsx\"];\n return !jsExtensions.some((ext) => executablePath.endsWith(ext));\n}\n\n// ../src/utils/stream.ts\nclass Stream {\n returned;\n queue = [];\n readResolve;\n readReject;\n isDone = false;\n hasError;\n started = false;\n constructor(returned) {\n this.returned = returned;\n }\n [Symbol.asyncIterator]() {\n if (this.started) {\n throw new Error(\"Stream can only be iterated once\");\n }\n this.started = true;\n return this;\n }\n next() {\n if (this.queue.length > 0) {\n return Promise.resolve({\n done: false,\n value: this.queue.shift()\n });\n }\n if (this.isDone) {\n return Promise.resolve({ done: true, value: undefined });\n }\n if (this.hasError) {\n return Promise.reject(this.hasError);\n }\n return new Promise((resolve, reject) => {\n this.readResolve = resolve;\n this.readReject = reject;\n });\n }\n enqueue(value) {\n if (this.readResolve) {\n const resolve = this.readResolve;\n this.readResolve = undefined;\n this.readReject = undefined;\n resolve({ done: false, value });\n } else {\n this.queue.push(value);\n }\n }\n done() {\n this.isDone = true;\n if (this.readResolve) {\n const resolve = this.readResolve;\n this.readResolve = undefined;\n this.readReject = undefined;\n resolve({ done: true, value: undefined });\n }\n }\n error(error) {\n this.hasError = error;\n if (this.readReject) {\n const reject = this.readReject;\n this.readResolve = undefined;\n this.readReject = undefined;\n reject(error);\n }\n }\n return() {\n this.isDone = true;\n if (this.returned) {\n this.returned();\n }\n return Promise.resolve({ done: true, value: undefined });\n }\n}\n\n// ../src/services/mcp/SdkControlTransport.ts\nclass SdkControlServerTransport {\n sendMcpMessage;\n isClosed = false;\n constructor(sendMcpMessage) {\n this.sendMcpMessage = sendMcpMessage;\n }\n onclose;\n onerror;\n onmessage;\n async start() {}\n async send(message) {\n if (this.isClosed) {\n throw new Error(\"Transport is closed\");\n }\n this.sendMcpMessage(message);\n }\n async close() {\n if (this.isClosed) {\n return;\n }\n this.isClosed = true;\n this.onclose?.();\n }\n}\n\n// ../node_modules/lodash-es/_freeGlobal.js\nvar freeGlobal = typeof global == \"object\" && global && global.Object === Object && global;\nvar _freeGlobal_default = freeGlobal;\n\n// ../node_modules/lodash-es/_root.js\nvar freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\nvar root = _freeGlobal_default || freeSelf || Function(\"return this\")();\nvar _root_default = root;\n\n// ../node_modules/lodash-es/_Symbol.js\nvar Symbol2 = _root_default.Symbol;\nvar _Symbol_default = Symbol2;\n\n// ../node_modules/lodash-es/_getRawTag.js\nvar objectProto = Object.prototype;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nvar nativeObjectToString = objectProto.toString;\nvar symToStringTag = _Symbol_default ? _Symbol_default.toStringTag : undefined;\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\nvar _getRawTag_default = getRawTag;\n\n// ../node_modules/lodash-es/_objectToString.js\nvar objectProto2 = Object.prototype;\nvar nativeObjectToString2 = objectProto2.toString;\nfunction objectToString(value) {\n return nativeObjectToString2.call(value);\n}\nvar _objectToString_default = objectToString;\n\n// ../node_modules/lodash-es/_baseGetTag.js\nvar nullTag = \"[object Null]\";\nvar undefinedTag = \"[object Undefined]\";\nvar symToStringTag2 = _Symbol_default ? _Symbol_default.toStringTag : undefined;\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag2 && symToStringTag2 in Object(value) ? _getRawTag_default(value) : _objectToString_default(value);\n}\nvar _baseGetTag_default = baseGetTag;\n\n// ../node_modules/lodash-es/isObject.js\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\nvar isObject_default = isObject;\n\n// ../node_modules/lodash-es/isFunction.js\nvar asyncTag = \"[object AsyncFunction]\";\nvar funcTag = \"[object Function]\";\nvar genTag = \"[object GeneratorFunction]\";\nvar proxyTag = \"[object Proxy]\";\nfunction isFunction(value) {\n if (!isObject_default(value)) {\n return false;\n }\n var tag = _baseGetTag_default(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\nvar isFunction_default = isFunction;\n\n// ../node_modules/lodash-es/_coreJsData.js\nvar coreJsData = _root_default[\"__core-js_shared__\"];\nvar _coreJsData_default = coreJsData;\n\n// ../node_modules/lodash-es/_isMasked.js\nvar maskSrcKey = function() {\n var uid = /[^.]+$/.exec(_coreJsData_default && _coreJsData_default.keys && _coreJsData_default.keys.IE_PROTO || \"\");\n return uid ? \"Symbol(src)_1.\" + uid : \"\";\n}();\nfunction isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\nvar _isMasked_default = isMasked;\n\n// ../node_modules/lodash-es/_toSource.js\nvar funcProto = Function.prototype;\nvar funcToString = funcProto.toString;\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return func + \"\";\n } catch (e) {}\n }\n return \"\";\n}\nvar _toSource_default = toSource;\n\n// ../node_modules/lodash-es/_baseIsNative.js\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\nvar funcProto2 = Function.prototype;\nvar objectProto3 = Object.prototype;\nvar funcToString2 = funcProto2.toString;\nvar hasOwnProperty2 = objectProto3.hasOwnProperty;\nvar reIsNative = RegExp(\"^\" + funcToString2.call(hasOwnProperty2).replace(reRegExpChar, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\");\nfunction baseIsNative(value) {\n if (!isObject_default(value) || _isMasked_default(value)) {\n return false;\n }\n var pattern = isFunction_default(value) ? reIsNative : reIsHostCtor;\n return pattern.test(_toSource_default(value));\n}\nvar _baseIsNative_default = baseIsNative;\n\n// ../node_modules/lodash-es/_getValue.js\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\nvar _getValue_default = getValue;\n\n// ../node_modules/lodash-es/_getNative.js\nfunction getNative(object, key) {\n var value = _getValue_default(object, key);\n return _baseIsNative_default(value) ? value : undefined;\n}\nvar _getNative_default = getNative;\n\n// ../node_modules/lodash-es/eq.js\nfunction eq(value, other) {\n return value === other || value !== value && other !== other;\n}\nvar eq_default = eq;\n\n// ../node_modules/lodash-es/_nativeCreate.js\nvar nativeCreate = _getNative_default(Object, \"create\");\nvar _nativeCreate_default = nativeCreate;\n\n// ../node_modules/lodash-es/_hashClear.js\nfunction hashClear() {\n this.__data__ = _nativeCreate_default ? _nativeCreate_default(null) : {};\n this.size = 0;\n}\nvar _hashClear_default = hashClear;\n\n// ../node_modules/lodash-es/_hashDelete.js\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _hashDelete_default = hashDelete;\n\n// ../node_modules/lodash-es/_hashGet.js\nvar HASH_UNDEFINED = \"__lodash_hash_undefined__\";\nvar objectProto4 = Object.prototype;\nvar hasOwnProperty3 = objectProto4.hasOwnProperty;\nfunction hashGet(key) {\n var data = this.__data__;\n if (_nativeCreate_default) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty3.call(data, key) ? data[key] : undefined;\n}\nvar _hashGet_default = hashGet;\n\n// ../node_modules/lodash-es/_hashHas.js\nvar objectProto5 = Object.prototype;\nvar hasOwnProperty4 = objectProto5.hasOwnProperty;\nfunction hashHas(key) {\n var data = this.__data__;\n return _nativeCreate_default ? data[key] !== undefined : hasOwnProperty4.call(data, key);\n}\nvar _hashHas_default = hashHas;\n\n// ../node_modules/lodash-es/_hashSet.js\nvar HASH_UNDEFINED2 = \"__lodash_hash_undefined__\";\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = _nativeCreate_default && value === undefined ? HASH_UNDEFINED2 : value;\n return this;\n}\nvar _hashSet_default = hashSet;\n\n// ../node_modules/lodash-es/_Hash.js\nfunction Hash(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\nHash.prototype.clear = _hashClear_default;\nHash.prototype[\"delete\"] = _hashDelete_default;\nHash.prototype.get = _hashGet_default;\nHash.prototype.has = _hashHas_default;\nHash.prototype.set = _hashSet_default;\nvar _Hash_default = Hash;\n\n// ../node_modules/lodash-es/_listCacheClear.js\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\nvar _listCacheClear_default = listCacheClear;\n\n// ../node_modules/lodash-es/_assocIndexOf.js\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq_default(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\nvar _assocIndexOf_default = assocIndexOf;\n\n// ../node_modules/lodash-es/_listCacheDelete.js\nvar arrayProto = Array.prototype;\nvar splice = arrayProto.splice;\nfunction listCacheDelete(key) {\n var data = this.__data__, index = _assocIndexOf_default(data, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\nvar _listCacheDelete_default = listCacheDelete;\n\n// ../node_modules/lodash-es/_listCacheGet.js\nfunction listCacheGet(key) {\n var data = this.__data__, index = _assocIndexOf_default(data, key);\n return index < 0 ? undefined : data[index][1];\n}\nvar _listCacheGet_default = listCacheGet;\n\n// ../node_modules/lodash-es/_listCacheHas.js\nfunction listCacheHas(key) {\n return _assocIndexOf_default(this.__data__, key) > -1;\n}\nvar _listCacheHas_default = listCacheHas;\n\n// ../node_modules/lodash-es/_listCacheSet.js\nfunction listCacheSet(key, value) {\n var data = this.__data__, index = _assocIndexOf_default(data, key);\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\nvar _listCacheSet_default = listCacheSet;\n\n// ../node_modules/lodash-es/_ListCache.js\nfunction ListCache(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\nListCache.prototype.clear = _listCacheClear_default;\nListCache.prototype[\"delete\"] = _listCacheDelete_default;\nListCache.prototype.get = _listCacheGet_default;\nListCache.prototype.has = _listCacheHas_default;\nListCache.prototype.set = _listCacheSet_default;\nvar _ListCache_default = ListCache;\n\n// ../node_modules/lodash-es/_Map.js\nvar Map2 = _getNative_default(_root_default, \"Map\");\nvar _Map_default = Map2;\n\n// ../node_modules/lodash-es/_mapCacheClear.js\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n hash: new _Hash_default,\n map: new (_Map_default || _ListCache_default),\n string: new _Hash_default\n };\n}\nvar _mapCacheClear_default = mapCacheClear;\n\n// ../node_modules/lodash-es/_isKeyable.js\nfunction isKeyable(value) {\n var type = typeof value;\n return type == \"string\" || type == \"number\" || type == \"symbol\" || type == \"boolean\" ? value !== \"__proto__\" : value === null;\n}\nvar _isKeyable_default = isKeyable;\n\n// ../node_modules/lodash-es/_getMapData.js\nfunction getMapData(map, key) {\n var data = map.__data__;\n return _isKeyable_default(key) ? data[typeof key == \"string\" ? \"string\" : \"hash\"] : data.map;\n}\nvar _getMapData_default = getMapData;\n\n// ../node_modules/lodash-es/_mapCacheDelete.js\nfunction mapCacheDelete(key) {\n var result = _getMapData_default(this, key)[\"delete\"](key);\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _mapCacheDelete_default = mapCacheDelete;\n\n// ../node_modules/lodash-es/_mapCacheGet.js\nfunction mapCacheGet(key) {\n return _getMapData_default(this, key).get(key);\n}\nvar _mapCacheGet_default = mapCacheGet;\n\n// ../node_modules/lodash-es/_mapCacheHas.js\nfunction mapCacheHas(key) {\n return _getMapData_default(this, key).has(key);\n}\nvar _mapCacheHas_default = mapCacheHas;\n\n// ../node_modules/lodash-es/_mapCacheSet.js\nfunction mapCacheSet(key, value) {\n var data = _getMapData_default(this, key), size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\nvar _mapCacheSet_default = mapCacheSet;\n\n// ../node_modules/lodash-es/_MapCache.js\nfunction MapCache(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\nMapCache.prototype.clear = _mapCacheClear_default;\nMapCache.prototype[\"delete\"] = _mapCacheDelete_default;\nMapCache.prototype.get = _mapCacheGet_default;\nMapCache.prototype.has = _mapCacheHas_default;\nMapCache.prototype.set = _mapCacheSet_default;\nvar _MapCache_default = MapCache;\n\n// ../node_modules/lodash-es/memoize.js\nvar FUNC_ERROR_TEXT = \"Expected a function\";\nfunction memoize(func, resolver) {\n if (typeof func != \"function\" || resolver != null && typeof resolver != \"function\") {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || _MapCache_default);\n return memoized;\n}\nmemoize.Cache = _MapCache_default;\nvar memoize_default = memoize;\n// ../src/utils/process.ts\nvar CHUNK_SIZE = 2000;\nfunction writeToStderr(data) {\n for (let i = 0;i < data.length; i += CHUNK_SIZE) {\n process.stderr.write(data.substring(i, i + CHUNK_SIZE));\n }\n}\n\n// ../src/utils/debugFilter.ts\nvar parseDebugFilter = memoize_default((filterString) => {\n if (!filterString || filterString.trim() === \"\") {\n return null;\n }\n const filters = filterString.split(\",\").map((f) => f.trim()).filter(Boolean);\n if (filters.length === 0) {\n return null;\n }\n const hasExclusive = filters.some((f) => f.startsWith(\"!\"));\n const hasInclusive = filters.some((f) => !f.startsWith(\"!\"));\n if (hasExclusive && hasInclusive) {\n return null;\n }\n const cleanFilters = filters.map((f) => f.replace(/^!/, \"\").toLowerCase());\n return {\n include: hasExclusive ? [] : cleanFilters,\n exclude: hasExclusive ? cleanFilters : [],\n isExclusive: hasExclusive\n };\n});\nfunction extractDebugCategories(message) {\n const categories = [];\n const mcpMatch = message.match(/^MCP server [\"']([^\"']+)[\"']/);\n if (mcpMatch && mcpMatch[1]) {\n categories.push(\"mcp\");\n categories.push(mcpMatch[1].toLowerCase());\n } else {\n const prefixMatch = message.match(/^([^:[]+):/);\n if (prefixMatch && prefixMatch[1]) {\n categories.push(prefixMatch[1].trim().toLowerCase());\n }\n }\n const bracketMatch = message.match(/^\\[([^\\]]+)]/);\n if (bracketMatch && bracketMatch[1]) {\n categories.push(bracketMatch[1].trim().toLowerCase());\n }\n if (message.toLowerCase().includes(\"statsig event:\")) {\n categories.push(\"statsig\");\n }\n const secondaryMatch = message.match(/:\\s*([^:]+?)(?:\\s+(?:type|mode|status|event))?:/);\n if (secondaryMatch && secondaryMatch[1]) {\n const secondary = secondaryMatch[1].trim().toLowerCase();\n if (secondary.length < 30 && !secondary.includes(\" \")) {\n categories.push(secondary);\n }\n }\n return Array.from(new Set(categories));\n}\nfunction shouldShowDebugCategories(categories, filter) {\n if (!filter) {\n return true;\n }\n if (categories.length === 0) {\n return false;\n }\n if (filter.isExclusive) {\n return !categories.some((cat) => filter.exclude.includes(cat));\n } else {\n return categories.some((cat) => filter.include.includes(cat));\n }\n}\nfunction shouldShowDebugMessage(message, filter) {\n if (!filter) {\n return true;\n }\n const categories = extractDebugCategories(message);\n return shouldShowDebugCategories(categories, filter);\n}\n\n// ../src/utils/envUtils.ts\nimport { join } from \"path\";\nimport { homedir } from \"os\";\nfunction getClaudeConfigHomeDir() {\n return process.env.CLAUDE_CONFIG_DIR ?? join(homedir(), \".claude\");\n}\nfunction isEnvTruthy(envVar) {\n if (!envVar)\n return false;\n if (typeof envVar === \"boolean\")\n return envVar;\n const normalizedValue = envVar.toLowerCase().trim();\n return [\"1\", \"true\", \"yes\", \"on\"].includes(normalizedValue);\n}\n\n// ../src/utils/debug.ts\nimport { dirname, join as join2 } from \"path\";\n\n// ../src/bootstrap/state.ts\nimport { cwd } from \"process\";\nimport { realpathSync as realpathSync2 } from \"fs\";\nimport { randomUUID } from \"crypto\";\n\n// ../src/bootstrap/envValidators.ts\nvar bashMaxOutputLengthValidator = {\n name: \"BASH_MAX_OUTPUT_LENGTH\",\n default: 30000,\n validate: (value) => {\n const MAX_OUTPUT_LENGTH = 150000;\n const DEFAULT_MAX_OUTPUT_LENGTH = 30000;\n if (!value) {\n return {\n effective: DEFAULT_MAX_OUTPUT_LENGTH,\n status: \"valid\"\n };\n }\n const parsed = parseInt(value, 10);\n if (isNaN(parsed) || parsed <= 0) {\n return {\n effective: DEFAULT_MAX_OUTPUT_LENGTH,\n status: \"invalid\",\n message: `Invalid value \"${value}\" (using default: ${DEFAULT_MAX_OUTPUT_LENGTH})`\n };\n }\n if (parsed > MAX_OUTPUT_LENGTH) {\n return {\n effective: MAX_OUTPUT_LENGTH,\n status: \"capped\",\n message: `Capped from ${parsed} to ${MAX_OUTPUT_LENGTH}`\n };\n }\n return { effective: parsed, status: \"valid\" };\n }\n};\nvar maxOutputTokensValidator = {\n name: \"CLAUDE_CODE_MAX_OUTPUT_TOKENS\",\n default: 32000,\n validate: (value) => {\n const MAX_OUTPUT_TOKENS = 64000;\n const DEFAULT_MAX_OUTPUT_TOKENS = 32000;\n if (!value) {\n return { effective: DEFAULT_MAX_OUTPUT_TOKENS, status: \"valid\" };\n }\n const parsed = parseInt(value, 10);\n if (isNaN(parsed) || parsed <= 0) {\n return {\n effective: DEFAULT_MAX_OUTPUT_TOKENS,\n status: \"invalid\",\n message: `Invalid value \"${value}\" (using default: ${DEFAULT_MAX_OUTPUT_TOKENS})`\n };\n }\n if (parsed > MAX_OUTPUT_TOKENS) {\n return {\n effective: MAX_OUTPUT_TOKENS,\n status: \"capped\",\n message: `Capped from ${parsed} to ${MAX_OUTPUT_TOKENS}`\n };\n }\n return { effective: parsed, status: \"valid\" };\n }\n};\n\n// ../src/bootstrap/state.ts\nfunction getInitialState() {\n const resolvedCwd = realpathSync2(cwd());\n return {\n originalCwd: resolvedCwd,\n totalCostUSD: 0,\n totalAPIDuration: 0,\n totalAPIDurationWithoutRetries: 0,\n totalToolDuration: 0,\n startTime: Date.now(),\n lastInteractionTime: Date.now(),\n totalLinesAdded: 0,\n totalLinesRemoved: 0,\n hasUnknownModelCost: false,\n cwd: resolvedCwd,\n modelUsage: {},\n mainLoopModelOverride: undefined,\n maxRateLimitFallbackActive: false,\n initialMainLoopModel: null,\n modelStrings: null,\n isNonInteractiveSession: true,\n isInteractive: false,\n clientType: \"cli\",\n sessionIngressToken: undefined,\n oauthTokenFromFd: undefined,\n apiKeyFromFd: undefined,\n flagSettingsPath: undefined,\n allowedSettingSources: [\n \"userSettings\",\n \"projectSettings\",\n \"localSettings\",\n \"flagSettings\",\n \"policySettings\"\n ],\n meter: null,\n sessionCounter: null,\n locCounter: null,\n prCounter: null,\n commitCounter: null,\n costCounter: null,\n tokenCounter: null,\n codeEditToolDecisionCounter: null,\n activeTimeCounter: null,\n sessionId: randomUUID(),\n loggerProvider: null,\n eventLogger: null,\n meterProvider: null,\n tracerProvider: null,\n agentColorMap: new Map,\n agentColorIndex: 0,\n envVarValidators: [bashMaxOutputLengthValidator, maxOutputTokensValidator],\n lastAPIRequest: null,\n inMemoryErrorLog: [],\n inlinePlugins: []\n };\n}\nvar STATE = getInitialState();\nfunction getSessionId() {\n return STATE.sessionId;\n}\n\n// ../src/utils/debug.ts\nvar isDebugMode = memoize_default(() => {\n return isEnvTruthy(process.env.DEBUG) || isEnvTruthy(process.env.DEBUG_SDK) || process.argv.includes(\"--debug\") || process.argv.includes(\"-d\") || isDebugToStdErr() || process.argv.some((arg) => arg.startsWith(\"--debug=\"));\n});\nvar getDebugFilter = memoize_default(() => {\n const debugArg = process.argv.find((arg) => arg.startsWith(\"--debug=\"));\n if (!debugArg) {\n return null;\n }\n const filterPattern = debugArg.substring(\"--debug=\".length);\n return parseDebugFilter(filterPattern);\n});\nvar isDebugToStdErr = memoize_default(() => {\n return process.argv.includes(\"--debug-to-stderr\") || process.argv.includes(\"-d2e\");\n});\nfunction shouldLogDebugMessage(message) {\n if (false) {}\n if (typeof process === \"undefined\" || typeof process.versions === \"undefined\" || typeof process.versions.node === \"undefined\") {\n return false;\n }\n const filter = getDebugFilter();\n return shouldShowDebugMessage(message, filter);\n}\nvar hasFormattedOutput = false;\nfunction logForDebugging(message, { level } = {\n level: \"debug\"\n}) {\n if (!shouldLogDebugMessage(message)) {\n return;\n }\n if (hasFormattedOutput && message.includes(`\n`)) {\n message = JSON.stringify(message);\n }\n const output = `[${level.toUpperCase()}] ${message.trim()}\n`;\n if (isDebugToStdErr()) {\n writeToStderr(output);\n return;\n }\n if (!getFsImplementation().existsSync(dirname(getDebugLogPath()))) {\n getFsImplementation().mkdirSync(dirname(getDebugLogPath()));\n }\n getFsImplementation().appendFileSync(getDebugLogPath(), output);\n updateLatestDebugLogSymlink();\n}\nfunction getDebugLogPath() {\n return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR ?? join2(getClaudeConfigHomeDir(), \"debug\", `${getSessionId()}.txt`);\n}\nvar updateLatestDebugLogSymlink = memoize_default(() => {\n try {\n const debugLogPath = getDebugLogPath();\n const debugLogsDir = dirname(debugLogPath);\n const latestSymlinkPath = join2(debugLogsDir, \"latest\");\n if (!getFsImplementation().existsSync(debugLogsDir)) {\n getFsImplementation().mkdirSync(debugLogsDir);\n }\n if (getFsImplementation().existsSync(latestSymlinkPath)) {\n try {\n getFsImplementation().unlinkSync(latestSymlinkPath);\n } catch {}\n }\n getFsImplementation().symlinkSync(debugLogPath, latestSymlinkPath);\n } catch {}\n});\n\n// ../src/core/Query.ts\nclass Query {\n transport;\n isSingleUserTurn;\n canUseTool;\n hooks;\n abortController;\n pendingControlResponses = new Map;\n cleanupPerformed = false;\n sdkMessages;\n inputStream = new Stream;\n initialization;\n cancelControllers = new Map;\n hookCallbacks = new Map;\n nextCallbackId = 0;\n sdkMcpTransports = new Map;\n pendingMcpResponses = new Map;\n firstResultReceivedPromise;\n firstResultReceivedResolve;\n streamCloseTimeout;\n constructor(transport, isSingleUserTurn, canUseTool, hooks, abortController, sdkMcpServers = new Map) {\n this.transport = transport;\n this.isSingleUserTurn = isSingleUserTurn;\n this.canUseTool = canUseTool;\n this.hooks = hooks;\n this.abortController = abortController;\n this.streamCloseTimeout = parseInt(process.env.CLAUDE_CODE_STREAM_CLOSE_TIMEOUT || \"\") || 60000;\n for (const [name, server] of sdkMcpServers) {\n const sdkTransport = new SdkControlServerTransport((message) => this.sendMcpServerMessageToCli(name, message));\n this.sdkMcpTransports.set(name, sdkTransport);\n server.connect(sdkTransport);\n }\n this.sdkMessages = this.readSdkMessages();\n this.firstResultReceivedPromise = new Promise((resolve) => {\n this.firstResultReceivedResolve = resolve;\n });\n this.readMessages();\n this.initialization = this.initialize();\n this.initialization.catch(() => {});\n }\n setError(error) {\n this.inputStream.error(error);\n }\n cleanup(error) {\n if (this.cleanupPerformed)\n return;\n this.cleanupPerformed = true;\n try {\n this.transport.close();\n this.pendingControlResponses.clear();\n this.pendingMcpResponses.clear();\n if (error) {\n this.inputStream.error(error);\n } else {\n this.inputStream.done();\n }\n } catch (_error) {}\n }\n next(...[value]) {\n return this.sdkMessages.next(...[value]);\n }\n return(value) {\n return this.sdkMessages.return(value);\n }\n throw(e) {\n return this.sdkMessages.throw(e);\n }\n [Symbol.asyncIterator]() {\n return this.sdkMessages;\n }\n [Symbol.asyncDispose]() {\n return this.sdkMessages[Symbol.asyncDispose]();\n }\n async readMessages() {\n try {\n for await (const message of this.transport.readMessages()) {\n if (message.type === \"control_response\") {\n const handler = this.pendingControlResponses.get(message.response.request_id);\n if (handler) {\n handler(message.response);\n }\n continue;\n } else if (message.type === \"control_request\") {\n this.handleControlRequest(message);\n continue;\n } else if (message.type === \"control_cancel_request\") {\n this.handleControlCancelRequest(message);\n continue;\n } else if (message.type === \"keep_alive\") {\n continue;\n }\n if (message.type === \"result\") {\n if (this.firstResultReceivedResolve) {\n this.firstResultReceivedResolve();\n }\n if (this.isSingleUserTurn) {\n this.transport.endInput();\n }\n }\n this.inputStream.enqueue(message);\n }\n this.inputStream.done();\n this.cleanup();\n } catch (error) {\n this.inputStream.error(error);\n this.cleanup(error);\n }\n }\n async handleControlRequest(request) {\n const controller = new AbortController;\n this.cancelControllers.set(request.request_id, controller);\n try {\n const response = await this.processControlRequest(request, controller.signal);\n const controlResponse = {\n type: \"control_response\",\n response: {\n subtype: \"success\",\n request_id: request.request_id,\n response\n }\n };\n await Promise.resolve(this.transport.write(JSON.stringify(controlResponse) + `\n`));\n } catch (error) {\n const controlErrorResponse = {\n type: \"control_response\",\n response: {\n subtype: \"error\",\n request_id: request.request_id,\n error: error.message || String(error)\n }\n };\n await Promise.resolve(this.transport.write(JSON.stringify(controlErrorResponse) + `\n`));\n } finally {\n this.cancelControllers.delete(request.request_id);\n }\n }\n handleControlCancelRequest(request) {\n const controller = this.cancelControllers.get(request.request_id);\n if (controller) {\n controller.abort();\n this.cancelControllers.delete(request.request_id);\n }\n }\n async processControlRequest(request, signal) {\n if (request.request.subtype === \"can_use_tool\") {\n if (!this.canUseTool) {\n throw new Error(\"canUseTool callback is not provided.\");\n }\n return this.canUseTool(request.request.tool_name, request.request.input, {\n signal,\n suggestions: request.request.permission_suggestions,\n toolUseID: request.request.tool_use_id\n });\n } else if (request.request.subtype === \"hook_callback\") {\n const result = await this.handleHookCallbacks(request.request.callback_id, request.request.input, request.request.tool_use_id, signal);\n return result;\n } else if (request.request.subtype === \"mcp_message\") {\n const mcpRequest = request.request;\n const transport = this.sdkMcpTransports.get(mcpRequest.server_name);\n if (!transport) {\n throw new Error(`SDK MCP server not found: ${mcpRequest.server_name}`);\n }\n if (\"method\" in mcpRequest.message && \"id\" in mcpRequest.message && mcpRequest.message.id !== null) {\n const response = await this.handleMcpControlRequest(mcpRequest.server_name, mcpRequest, transport);\n return { mcp_response: response };\n } else {\n if (transport.onmessage) {\n transport.onmessage(mcpRequest.message);\n }\n return { mcp_response: { jsonrpc: \"2.0\", result: {}, id: 0 } };\n }\n }\n throw new Error(\"Unsupported control request subtype: \" + request.request.subtype);\n }\n async* readSdkMessages() {\n for await (const message of this.inputStream) {\n yield message;\n }\n }\n async initialize() {\n let hooks;\n if (this.hooks) {\n hooks = {};\n for (const [event, matchers] of Object.entries(this.hooks)) {\n if (matchers.length > 0) {\n hooks[event] = matchers.map((matcher) => {\n const callbackIds = [];\n for (const callback of matcher.hooks) {\n const callbackId = `hook_${this.nextCallbackId++}`;\n this.hookCallbacks.set(callbackId, callback);\n callbackIds.push(callbackId);\n }\n return {\n matcher: matcher.matcher,\n hookCallbackIds: callbackIds\n };\n });\n }\n }\n }\n const sdkMcpServers = this.sdkMcpTransports.size > 0 ? Array.from(this.sdkMcpTransports.keys()) : undefined;\n const initRequest = {\n subtype: \"initialize\",\n hooks,\n sdkMcpServers\n };\n const response = await this.request(initRequest);\n return response.response;\n }\n async interrupt() {\n await this.request({\n subtype: \"interrupt\"\n });\n }\n async setPermissionMode(mode) {\n await this.request({\n subtype: \"set_permission_mode\",\n mode\n });\n }\n async setModel(model) {\n await this.request({\n subtype: \"set_model\",\n model\n });\n }\n async setMaxThinkingTokens(maxThinkingTokens) {\n await this.request({\n subtype: \"set_max_thinking_tokens\",\n max_thinking_tokens: maxThinkingTokens\n });\n }\n async processPendingPermissionRequests(pendingPermissionRequests) {\n for (const request of pendingPermissionRequests) {\n if (request.request.subtype === \"can_use_tool\") {\n this.handleControlRequest(request).catch(() => {});\n }\n }\n }\n request(request) {\n const requestId = Math.random().toString(36).substring(2, 15);\n const sdkRequest = {\n request_id: requestId,\n type: \"control_request\",\n request\n };\n return new Promise((resolve, reject) => {\n this.pendingControlResponses.set(requestId, (response) => {\n if (response.subtype === \"success\") {\n resolve(response);\n } else {\n reject(new Error(response.error));\n if (response.pending_permission_requests) {\n this.processPendingPermissionRequests(response.pending_permission_requests);\n }\n }\n });\n Promise.resolve(this.transport.write(JSON.stringify(sdkRequest) + `\n`));\n });\n }\n async supportedCommands() {\n return (await this.initialization).commands;\n }\n async supportedModels() {\n return (await this.initialization).models;\n }\n async mcpServerStatus() {\n const response = await this.request({\n subtype: \"mcp_status\"\n });\n const mcpStatusResponse = response.response;\n return mcpStatusResponse.mcpServers;\n }\n async accountInfo() {\n return (await this.initialization).account;\n }\n async streamInput(stream) {\n logForDebugging(`[Query.streamInput] Starting to process input stream`);\n logForDebugging(`[Query.streamInput] this.sdkMcpTransports.size = ${this.sdkMcpTransports.size}`);\n try {\n let messageCount = 0;\n for await (const message of stream) {\n messageCount++;\n logForDebugging(`[Query.streamInput] Processing message ${messageCount}: ${message.type}`);\n if (this.abortController?.signal.aborted)\n break;\n await Promise.resolve(this.transport.write(JSON.stringify(message) + `\n`));\n }\n logForDebugging(`[Query.streamInput] Finished processing ${messageCount} messages from input stream`);\n logForDebugging(`[Query.streamInput] About to check MCP servers. this.sdkMcpTransports.size = ${this.sdkMcpTransports.size}`);\n const hasHooks = this.hooks && Object.keys(this.hooks).length > 0;\n if ((this.sdkMcpTransports.size > 0 || hasHooks) && this.firstResultReceivedPromise) {\n logForDebugging(`[Query.streamInput] Entering Promise.race to wait for result`);\n let timeoutId;\n await Promise.race([\n this.firstResultReceivedPromise.then(() => {\n logForDebugging(`[Query.streamInput] Received first result, closing input stream`);\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }),\n new Promise((resolve) => {\n timeoutId = setTimeout(() => {\n logForDebugging(`[Query.streamInput] Timed out waiting for first result, closing input stream`);\n resolve();\n }, this.streamCloseTimeout);\n })\n ]);\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n logForDebugging(`[Query] Calling transport.endInput() to close stdin to CLI process`);\n this.transport.endInput();\n } catch (error) {\n if (!(error instanceof AbortError)) {\n throw error;\n }\n }\n }\n handleHookCallbacks(callbackId, input, toolUseID, abortSignal) {\n const callback = this.hookCallbacks.get(callbackId);\n if (!callback) {\n throw new Error(`No hook callback found for ID: ${callbackId}`);\n }\n return callback(input, toolUseID, {\n signal: abortSignal\n });\n }\n sendMcpServerMessageToCli(serverName, message) {\n if (\"id\" in message && message.id !== null && message.id !== undefined) {\n const key = `${serverName}:${message.id}`;\n const pending = this.pendingMcpResponses.get(key);\n if (pending) {\n pending.resolve(message);\n this.pendingMcpResponses.delete(key);\n return;\n }\n }\n throw new Error(\"No pending request found\");\n }\n handleMcpControlRequest(serverName, mcpRequest, transport) {\n const messageId = \"id\" in mcpRequest.message ? mcpRequest.message.id : null;\n const key = `${serverName}:${messageId}`;\n return new Promise((resolve, reject) => {\n const cleanup = () => {\n this.pendingMcpResponses.delete(key);\n };\n const resolveAndCleanup = (response) => {\n cleanup();\n resolve(response);\n };\n const rejectAndCleanup = (error) => {\n cleanup();\n reject(error);\n };\n this.pendingMcpResponses.set(key, {\n resolve: resolveAndCleanup,\n reject: rejectAndCleanup\n });\n if (transport.onmessage) {\n transport.onmessage(mcpRequest.message);\n } else {\n cleanup();\n reject(new Error(\"No message handler registered\"));\n return;\n }\n });\n }\n}\n\n// ../node_modules/zod/v3/external.js\nvar exports_external = {};\n__export(exports_external, {\n void: () => voidType,\n util: () => util,\n unknown: () => unknownType,\n union: () => unionType,\n undefined: () => undefinedType,\n tuple: () => tupleType,\n transformer: () => effectsType,\n symbol: () => symbolType,\n string: () => stringType,\n strictObject: () => strictObjectType,\n setErrorMap: () => setErrorMap,\n set: () => setType,\n record: () => recordType,\n quotelessJson: () => quotelessJson,\n promise: () => promiseType,\n preprocess: () => preprocessType,\n pipeline: () => pipelineType,\n ostring: () => ostring,\n optional: () => optionalType,\n onumber: () => onumber,\n oboolean: () => oboolean,\n objectUtil: () => objectUtil,\n object: () => objectType,\n number: () => numberType,\n nullable: () => nullableType,\n null: () => nullType,\n never: () => neverType,\n nativeEnum: () => nativeEnumType,\n nan: () => nanType,\n map: () => mapType,\n makeIssue: () => makeIssue,\n literal: () => literalType,\n lazy: () => lazyType,\n late: () => late,\n isValid: () => isValid,\n isDirty: () => isDirty,\n isAsync: () => isAsync,\n isAborted: () => isAborted,\n intersection: () => intersectionType,\n instanceof: () => instanceOfType,\n getParsedType: () => getParsedType,\n getErrorMap: () => getErrorMap,\n function: () => functionType,\n enum: () => enumType,\n effect: () => effectsType,\n discriminatedUnion: () => discriminatedUnionType,\n defaultErrorMap: () => en_default,\n datetimeRegex: () => datetimeRegex,\n date: () => dateType,\n custom: () => custom,\n coerce: () => coerce,\n boolean: () => booleanType,\n bigint: () => bigIntType,\n array: () => arrayType,\n any: () => anyType,\n addIssueToContext: () => addIssueToContext,\n ZodVoid: () => ZodVoid,\n ZodUnknown: () => ZodUnknown,\n ZodUnion: () => ZodUnion,\n ZodUndefined: () => ZodUndefined,\n ZodType: () => ZodType,\n ZodTuple: () => ZodTuple,\n ZodTransformer: () => ZodEffects,\n ZodSymbol: () => ZodSymbol,\n ZodString: () => ZodString,\n ZodSet: () => ZodSet,\n ZodSchema: () => ZodType,\n ZodRecord: () => ZodRecord,\n ZodReadonly: () => ZodReadonly,\n ZodPromise: () => ZodPromise,\n ZodPipeline: () => ZodPipeline,\n ZodParsedType: () => ZodParsedType,\n ZodOptional: () => ZodOptional,\n ZodObject: () => ZodObject,\n ZodNumber: () => ZodNumber,\n ZodNullable: () => ZodNullable,\n ZodNull: () => ZodNull,\n ZodNever: () => ZodNever,\n ZodNativeEnum: () => ZodNativeEnum,\n ZodNaN: () => ZodNaN,\n ZodMap: () => ZodMap,\n ZodLiteral: () => ZodLiteral,\n ZodLazy: () => ZodLazy,\n ZodIssueCode: () => ZodIssueCode,\n ZodIntersection: () => ZodIntersection,\n ZodFunction: () => ZodFunction,\n ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind,\n ZodError: () => ZodError,\n ZodEnum: () => ZodEnum,\n ZodEffects: () => ZodEffects,\n ZodDiscriminatedUnion: () => ZodDiscriminatedUnion,\n ZodDefault: () => ZodDefault,\n ZodDate: () => ZodDate,\n ZodCatch: () => ZodCatch,\n ZodBranded: () => ZodBranded,\n ZodBoolean: () => ZodBoolean,\n ZodBigInt: () => ZodBigInt,\n ZodArray: () => ZodArray,\n ZodAny: () => ZodAny,\n Schema: () => ZodType,\n ParseStatus: () => ParseStatus,\n OK: () => OK,\n NEVER: () => NEVER,\n INVALID: () => INVALID,\n EMPTY_PATH: () => EMPTY_PATH,\n DIRTY: () => DIRTY,\n BRAND: () => BRAND\n});\n\n// ../node_modules/zod/v3/helpers/util.js\nvar util;\n(function(util2) {\n util2.assertEqual = (_) => {};\n function assertIs(_arg) {}\n util2.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error;\n }\n util2.assertNever = assertNever;\n util2.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util2.getValidEnumValues = (obj) => {\n const validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util2.objectValues(filtered);\n };\n util2.objectValues = (obj) => {\n return util2.objectKeys(obj).map(function(e) {\n return obj[e];\n });\n };\n util2.objectKeys = typeof Object.keys === \"function\" ? (obj) => Object.keys(obj) : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util2.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return;\n };\n util2.isInteger = typeof Number.isInteger === \"function\" ? (val) => Number.isInteger(val) : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => typeof val === \"string\" ? `'${val}'` : val).join(separator);\n }\n util2.joinValues = joinValues;\n util2.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function(objectUtil2) {\n objectUtil2.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second\n };\n };\n})(objectUtil || (objectUtil = {}));\nvar ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\"\n]);\nvar getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\n// ../node_modules/zod/v3/ZodError.js\nvar ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\"\n]);\nvar quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\n\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(this, actualProto);\n } else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper || function(issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n } else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n } else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n } else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n } else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n } else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n } else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\n// ../node_modules/zod/v3/locales/en.js\nvar errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n } else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n } else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n } else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n } else {\n util.assertNever(issue.validation);\n }\n } else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n } else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nvar en_default = errorMap;\n\n// ../node_modules/zod/v3/errors.js\nvar overrideErrorMap = en_default;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n// ../node_modules/zod/v3/helpers/parseUtil.js\nvar makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...issueData.path || []];\n const fullIssue = {\n ...issueData,\n path: fullPath\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps.filter((m) => !!m).slice().reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage\n };\n};\nvar EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n overrideMap,\n overrideMap === en_default ? undefined : en_default\n ].filter((x) => !!x)\n });\n ctx.common.issues.push(issue);\n}\n\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nvar INVALID = Object.freeze({\n status: \"aborted\"\n});\nvar DIRTY = (value) => ({ status: \"dirty\", value });\nvar OK = (value) => ({ status: \"valid\", value });\nvar isAborted = (x) => x.status === \"aborted\";\nvar isDirty = (x) => x.status === \"dirty\";\nvar isValid = (x) => x.status === \"valid\";\nvar isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n// ../node_modules/zod/v3/helpers/errorUtil.js\nvar errorUtil;\n(function(errorUtil2) {\n errorUtil2.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil2.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n\n// ../node_modules/zod/v3/types.js\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n } else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nvar handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n } else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n }\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap: errorMap2, invalid_type_error, required_error, description } = params;\n if (errorMap2 && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap2)\n return { errorMap: errorMap2, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\n\nclass ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent\n };\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus,\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent\n }\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data)\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data)\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result) ? {\n value: result.value\n } : {\n issues: ctx.common.issues\n };\n } catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result) ? {\n value: result.value\n } : {\n issues: ctx.common.issues\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data)\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n } else if (typeof message === \"function\") {\n return message(val);\n } else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val)\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n } else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n } else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n } else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement }\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data)\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform }\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def)\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nvar cuidRegex = /^c[^\\s-]{8,}$/i;\nvar cuid2Regex = /^[0-9a-z]+$/;\nvar ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\nvar uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nvar nanoidRegex = /^[a-z0-9_-]{21}$/i;\nvar jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nvar durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\nvar emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\nvar _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nvar emojiRegex;\nvar ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nvar ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\nvar ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nvar ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\nvar base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\nvar base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\nvar dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nvar dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n } else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\";\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n const base64 = header.replace(/-/g, \"+\").replace(/_/g, \"/\").padEnd(header.length + (4 - header.length % 4) % 4, \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n } catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\n\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n const status = new ParseStatus;\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message\n });\n } else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message\n });\n }\n status.dirty();\n }\n } else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n } catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n } else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n } else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n } else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message)\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message)\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message)\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message)\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex,\n ...errorUtil.errToObj(message)\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message)\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value,\n ...errorUtil.errToObj(message)\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value,\n ...errorUtil.errToObj(message)\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message)\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message)\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message)\n });\n }\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }]\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }]\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }]\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params)\n });\n};\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return valInt % stepInt / 10 ** decCount;\n}\n\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus;\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message)\n }\n ]\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message)\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message)\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message)\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message)\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message)\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || ch.kind === \"multipleOf\" && util.isInteger(ch.value));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n } else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n } else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params)\n });\n};\n\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n } catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message)\n }\n ]\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message)\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params)\n });\n};\n\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params)\n });\n};\n\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_date\n });\n return INVALID;\n }\n const status = new ParseStatus;\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\"\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\"\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime())\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message)\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message)\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params)\n });\n};\n\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params)\n });\n};\n\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params)\n });\n};\n\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params)\n });\n};\n\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params)\n });\n};\n\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params)\n });\n};\n\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params)\n });\n};\n\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params)\n });\n};\n\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: tooSmall ? def.exactLength.value : undefined,\n maximum: tooBig ? def.exactLength.value : undefined,\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result2) => {\n return ParseStatus.mergeArray(status, result2);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) }\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) }\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) }\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params)\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape\n });\n } else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element)\n });\n } else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n } else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n } else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n } else {\n return schema;\n }\n}\n\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n this.nonstrict = this.passthrough;\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] }\n });\n }\n } else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys\n });\n status.dirty();\n }\n } else if (unknownKeys === \"strip\") {} else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n } else {\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve().then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet\n });\n }\n return syncPairs;\n }).then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n } else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...message !== undefined ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError\n };\n return {\n message: defaultError\n };\n }\n } : {}\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\"\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\"\n });\n }\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation\n })\n });\n }\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape()\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject\n });\n return merged;\n }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape\n });\n }\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n } else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n } else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\n\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n },\n parent: null\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx\n }),\n ctx: childCtx\n };\n })).then(handleResults);\n } else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n },\n parent: null\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx\n });\n if (result.status === \"valid\") {\n return result;\n } else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues2) => new ZodError(issues2));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params)\n });\n};\nvar getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n } else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n } else if (type instanceof ZodLiteral) {\n return [type.value];\n } else if (type instanceof ZodEnum) {\n return type.options;\n } else if (type instanceof ZodNativeEnum) {\n return util.objectValues(type.enum);\n } else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n } else if (type instanceof ZodUndefined) {\n return [undefined];\n } else if (type instanceof ZodNull) {\n return [null];\n } else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n } else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n } else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n } else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n } else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n } else {\n return [];\n }\n};\n\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator]\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n } else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n static create(discriminator, options, params) {\n const optionsMap = new Map;\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params)\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0;index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n } else {\n return { valid: false };\n }\n}\n\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n })\n ]).then(([left, right]) => handleParsed(left, right));\n } else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left,\n right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params)\n });\n};\n\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\"\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\"\n });\n status.dirty();\n }\n const items = [...ctx.data].map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n }).filter((x) => !!x);\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n } else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params)\n });\n};\n\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n } else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third)\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second)\n });\n }\n}\n\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"]))\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map;\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n } else {\n const finalMap = new Map;\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params)\n });\n};\n\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements2) {\n const parsedSet = new Set;\n for (const element of elements2) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements2) => finalizeSet(elements2));\n } else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) }\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) }\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params)\n });\n};\n\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), en_default].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error\n }\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), en_default].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error\n }\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n const me = this;\n return OK(async function(...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n } else {\n const me = this;\n return OK(function(...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create())\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params)\n });\n }\n}\n\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params)\n });\n};\n\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params)\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params)\n });\n}\n\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef\n });\n }\n}\nZodEnum.create = createZodEnum;\n\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params)\n });\n};\n\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params)\n });\n};\n\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n } else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n }\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed2) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed2,\n path: ctx.path,\n parent: ctx\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n } else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n } else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n } else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params)\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params)\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params)\n });\n};\n\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params)\n });\n};\n\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params)\n });\n};\n\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n }\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx\n }\n });\n if (isAsync(result)) {\n return result.then((result2) => {\n return {\n status: \"valid\",\n value: result2.status === \"valid\" ? result2.value : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data\n })\n };\n });\n } else {\n return {\n status: \"valid\",\n value: result.status === \"valid\" ? result.value : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data\n })\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params)\n });\n};\n\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params)\n });\n};\nvar BRAND = Symbol(\"zod_brand\");\n\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\n\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n } else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx\n });\n }\n };\n return handleAsync();\n } else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value\n };\n } else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline\n });\n }\n}\n\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params)\n });\n};\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nfunction custom(check, _params = {}, fatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r2) => {\n if (!r2) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nvar late = {\n object: ZodObject.lazycreate\n};\nvar ZodFirstPartyTypeKind;\n(function(ZodFirstPartyTypeKind2) {\n ZodFirstPartyTypeKind2[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind2[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind2[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind2[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind2[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind2[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind2[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind2[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind2[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind2[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind2[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind2[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind2[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind2[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind2[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind2[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind2[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind2[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind2[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind2[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind2[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind2[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind2[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind2[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind2[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind2[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind2[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind2[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind2[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind2[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind2[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind2[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind2[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind2[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind2[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind2[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nvar instanceOfType = (cls, params = {\n message: `Input not instance of ${cls.name}`\n}) => custom((data) => data instanceof cls, params);\nvar stringType = ZodString.create;\nvar numberType = ZodNumber.create;\nvar nanType = ZodNaN.create;\nvar bigIntType = ZodBigInt.create;\nvar booleanType = ZodBoolean.create;\nvar dateType = ZodDate.create;\nvar symbolType = ZodSymbol.create;\nvar undefinedType = ZodUndefined.create;\nvar nullType = ZodNull.create;\nvar anyType = ZodAny.create;\nvar unknownType = ZodUnknown.create;\nvar neverType = ZodNever.create;\nvar voidType = ZodVoid.create;\nvar arrayType = ZodArray.create;\nvar objectType = ZodObject.create;\nvar strictObjectType = ZodObject.strictCreate;\nvar unionType = ZodUnion.create;\nvar discriminatedUnionType = ZodDiscriminatedUnion.create;\nvar intersectionType = ZodIntersection.create;\nvar tupleType = ZodTuple.create;\nvar recordType = ZodRecord.create;\nvar mapType = ZodMap.create;\nvar setType = ZodSet.create;\nvar functionType = ZodFunction.create;\nvar lazyType = ZodLazy.create;\nvar literalType = ZodLiteral.create;\nvar enumType = ZodEnum.create;\nvar nativeEnumType = ZodNativeEnum.create;\nvar promiseType = ZodPromise.create;\nvar effectsType = ZodEffects.create;\nvar optionalType = ZodOptional.create;\nvar nullableType = ZodNullable.create;\nvar preprocessType = ZodEffects.createWithPreprocess;\nvar pipelineType = ZodPipeline.create;\nvar ostring = () => stringType().optional();\nvar onumber = () => numberType().optional();\nvar oboolean = () => booleanType().optional();\nvar coerce = {\n string: (arg) => ZodString.create({ ...arg, coerce: true }),\n number: (arg) => ZodNumber.create({ ...arg, coerce: true }),\n boolean: (arg) => ZodBoolean.create({\n ...arg,\n coerce: true\n }),\n bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }),\n date: (arg) => ZodDate.create({ ...arg, coerce: true })\n};\nvar NEVER = INVALID;\n// ../node_modules/@modelcontextprotocol/sdk/dist/esm/types.js\nvar LATEST_PROTOCOL_VERSION = \"2025-06-18\";\nvar SUPPORTED_PROTOCOL_VERSIONS = [\n LATEST_PROTOCOL_VERSION,\n \"2025-03-26\",\n \"2024-11-05\",\n \"2024-10-07\"\n];\nvar JSONRPC_VERSION = \"2.0\";\nvar ProgressTokenSchema = exports_external.union([exports_external.string(), exports_external.number().int()]);\nvar CursorSchema = exports_external.string();\nvar RequestMetaSchema = exports_external.object({\n progressToken: exports_external.optional(ProgressTokenSchema)\n}).passthrough();\nvar BaseRequestParamsSchema = exports_external.object({\n _meta: exports_external.optional(RequestMetaSchema)\n}).passthrough();\nvar RequestSchema = exports_external.object({\n method: exports_external.string(),\n params: exports_external.optional(BaseRequestParamsSchema)\n});\nvar BaseNotificationParamsSchema = exports_external.object({\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n}).passthrough();\nvar NotificationSchema = exports_external.object({\n method: exports_external.string(),\n params: exports_external.optional(BaseNotificationParamsSchema)\n});\nvar ResultSchema = exports_external.object({\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n}).passthrough();\nvar RequestIdSchema = exports_external.union([exports_external.string(), exports_external.number().int()]);\nvar JSONRPCRequestSchema = exports_external.object({\n jsonrpc: exports_external.literal(JSONRPC_VERSION),\n id: RequestIdSchema\n}).merge(RequestSchema).strict();\nvar isJSONRPCRequest = (value) => JSONRPCRequestSchema.safeParse(value).success;\nvar JSONRPCNotificationSchema = exports_external.object({\n jsonrpc: exports_external.literal(JSONRPC_VERSION)\n}).merge(NotificationSchema).strict();\nvar isJSONRPCNotification = (value) => JSONRPCNotificationSchema.safeParse(value).success;\nvar JSONRPCResponseSchema = exports_external.object({\n jsonrpc: exports_external.literal(JSONRPC_VERSION),\n id: RequestIdSchema,\n result: ResultSchema\n}).strict();\nvar isJSONRPCResponse = (value) => JSONRPCResponseSchema.safeParse(value).success;\nvar ErrorCode;\n(function(ErrorCode2) {\n ErrorCode2[ErrorCode2[\"ConnectionClosed\"] = -32000] = \"ConnectionClosed\";\n ErrorCode2[ErrorCode2[\"RequestTimeout\"] = -32001] = \"RequestTimeout\";\n ErrorCode2[ErrorCode2[\"ParseError\"] = -32700] = \"ParseError\";\n ErrorCode2[ErrorCode2[\"InvalidRequest\"] = -32600] = \"InvalidRequest\";\n ErrorCode2[ErrorCode2[\"MethodNotFound\"] = -32601] = \"MethodNotFound\";\n ErrorCode2[ErrorCode2[\"InvalidParams\"] = -32602] = \"InvalidParams\";\n ErrorCode2[ErrorCode2[\"InternalError\"] = -32603] = \"InternalError\";\n})(ErrorCode || (ErrorCode = {}));\nvar JSONRPCErrorSchema = exports_external.object({\n jsonrpc: exports_external.literal(JSONRPC_VERSION),\n id: RequestIdSchema,\n error: exports_external.object({\n code: exports_external.number().int(),\n message: exports_external.string(),\n data: exports_external.optional(exports_external.unknown())\n })\n}).strict();\nvar isJSONRPCError = (value) => JSONRPCErrorSchema.safeParse(value).success;\nvar JSONRPCMessageSchema = exports_external.union([\n JSONRPCRequestSchema,\n JSONRPCNotificationSchema,\n JSONRPCResponseSchema,\n JSONRPCErrorSchema\n]);\nvar EmptyResultSchema = ResultSchema.strict();\nvar CancelledNotificationSchema = NotificationSchema.extend({\n method: exports_external.literal(\"notifications/cancelled\"),\n params: BaseNotificationParamsSchema.extend({\n requestId: RequestIdSchema,\n reason: exports_external.string().optional()\n })\n});\nvar BaseMetadataSchema = exports_external.object({\n name: exports_external.string(),\n title: exports_external.optional(exports_external.string())\n}).passthrough();\nvar ImplementationSchema = BaseMetadataSchema.extend({\n version: exports_external.string()\n});\nvar ClientCapabilitiesSchema = exports_external.object({\n experimental: exports_external.optional(exports_external.object({}).passthrough()),\n sampling: exports_external.optional(exports_external.object({}).passthrough()),\n elicitation: exports_external.optional(exports_external.object({}).passthrough()),\n roots: exports_external.optional(exports_external.object({\n listChanged: exports_external.optional(exports_external.boolean())\n }).passthrough())\n}).passthrough();\nvar InitializeRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"initialize\"),\n params: BaseRequestParamsSchema.extend({\n protocolVersion: exports_external.string(),\n capabilities: ClientCapabilitiesSchema,\n clientInfo: ImplementationSchema\n })\n});\nvar ServerCapabilitiesSchema = exports_external.object({\n experimental: exports_external.optional(exports_external.object({}).passthrough()),\n logging: exports_external.optional(exports_external.object({}).passthrough()),\n completions: exports_external.optional(exports_external.object({}).passthrough()),\n prompts: exports_external.optional(exports_external.object({\n listChanged: exports_external.optional(exports_external.boolean())\n }).passthrough()),\n resources: exports_external.optional(exports_external.object({\n subscribe: exports_external.optional(exports_external.boolean()),\n listChanged: exports_external.optional(exports_external.boolean())\n }).passthrough()),\n tools: exports_external.optional(exports_external.object({\n listChanged: exports_external.optional(exports_external.boolean())\n }).passthrough())\n}).passthrough();\nvar InitializeResultSchema = ResultSchema.extend({\n protocolVersion: exports_external.string(),\n capabilities: ServerCapabilitiesSchema,\n serverInfo: ImplementationSchema,\n instructions: exports_external.optional(exports_external.string())\n});\nvar InitializedNotificationSchema = NotificationSchema.extend({\n method: exports_external.literal(\"notifications/initialized\")\n});\nvar PingRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"ping\")\n});\nvar ProgressSchema = exports_external.object({\n progress: exports_external.number(),\n total: exports_external.optional(exports_external.number()),\n message: exports_external.optional(exports_external.string())\n}).passthrough();\nvar ProgressNotificationSchema = NotificationSchema.extend({\n method: exports_external.literal(\"notifications/progress\"),\n params: BaseNotificationParamsSchema.merge(ProgressSchema).extend({\n progressToken: ProgressTokenSchema\n })\n});\nvar PaginatedRequestSchema = RequestSchema.extend({\n params: BaseRequestParamsSchema.extend({\n cursor: exports_external.optional(CursorSchema)\n }).optional()\n});\nvar PaginatedResultSchema = ResultSchema.extend({\n nextCursor: exports_external.optional(CursorSchema)\n});\nvar ResourceContentsSchema = exports_external.object({\n uri: exports_external.string(),\n mimeType: exports_external.optional(exports_external.string()),\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n}).passthrough();\nvar TextResourceContentsSchema = ResourceContentsSchema.extend({\n text: exports_external.string()\n});\nvar Base64Schema = exports_external.string().refine((val) => {\n try {\n atob(val);\n return true;\n } catch (_a) {\n return false;\n }\n}, { message: \"Invalid Base64 string\" });\nvar BlobResourceContentsSchema = ResourceContentsSchema.extend({\n blob: Base64Schema\n});\nvar ResourceSchema = BaseMetadataSchema.extend({\n uri: exports_external.string(),\n description: exports_external.optional(exports_external.string()),\n mimeType: exports_external.optional(exports_external.string()),\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n});\nvar ResourceTemplateSchema = BaseMetadataSchema.extend({\n uriTemplate: exports_external.string(),\n description: exports_external.optional(exports_external.string()),\n mimeType: exports_external.optional(exports_external.string()),\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n});\nvar ListResourcesRequestSchema = PaginatedRequestSchema.extend({\n method: exports_external.literal(\"resources/list\")\n});\nvar ListResourcesResultSchema = PaginatedResultSchema.extend({\n resources: exports_external.array(ResourceSchema)\n});\nvar ListResourceTemplatesRequestSchema = PaginatedRequestSchema.extend({\n method: exports_external.literal(\"resources/templates/list\")\n});\nvar ListResourceTemplatesResultSchema = PaginatedResultSchema.extend({\n resourceTemplates: exports_external.array(ResourceTemplateSchema)\n});\nvar ReadResourceRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"resources/read\"),\n params: BaseRequestParamsSchema.extend({\n uri: exports_external.string()\n })\n});\nvar ReadResourceResultSchema = ResultSchema.extend({\n contents: exports_external.array(exports_external.union([TextResourceContentsSchema, BlobResourceContentsSchema]))\n});\nvar ResourceListChangedNotificationSchema = NotificationSchema.extend({\n method: exports_external.literal(\"notifications/resources/list_changed\")\n});\nvar SubscribeRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"resources/subscribe\"),\n params: BaseRequestParamsSchema.extend({\n uri: exports_external.string()\n })\n});\nvar UnsubscribeRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"resources/unsubscribe\"),\n params: BaseRequestParamsSchema.extend({\n uri: exports_external.string()\n })\n});\nvar ResourceUpdatedNotificationSchema = NotificationSchema.extend({\n method: exports_external.literal(\"notifications/resources/updated\"),\n params: BaseNotificationParamsSchema.extend({\n uri: exports_external.string()\n })\n});\nvar PromptArgumentSchema = exports_external.object({\n name: exports_external.string(),\n description: exports_external.optional(exports_external.string()),\n required: exports_external.optional(exports_external.boolean())\n}).passthrough();\nvar PromptSchema = BaseMetadataSchema.extend({\n description: exports_external.optional(exports_external.string()),\n arguments: exports_external.optional(exports_external.array(PromptArgumentSchema)),\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n});\nvar ListPromptsRequestSchema = PaginatedRequestSchema.extend({\n method: exports_external.literal(\"prompts/list\")\n});\nvar ListPromptsResultSchema = PaginatedResultSchema.extend({\n prompts: exports_external.array(PromptSchema)\n});\nvar GetPromptRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"prompts/get\"),\n params: BaseRequestParamsSchema.extend({\n name: exports_external.string(),\n arguments: exports_external.optional(exports_external.record(exports_external.string()))\n })\n});\nvar TextContentSchema = exports_external.object({\n type: exports_external.literal(\"text\"),\n text: exports_external.string(),\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n}).passthrough();\nvar ImageContentSchema = exports_external.object({\n type: exports_external.literal(\"image\"),\n data: Base64Schema,\n mimeType: exports_external.string(),\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n}).passthrough();\nvar AudioContentSchema = exports_external.object({\n type: exports_external.literal(\"audio\"),\n data: Base64Schema,\n mimeType: exports_external.string(),\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n}).passthrough();\nvar EmbeddedResourceSchema = exports_external.object({\n type: exports_external.literal(\"resource\"),\n resource: exports_external.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n}).passthrough();\nvar ResourceLinkSchema = ResourceSchema.extend({\n type: exports_external.literal(\"resource_link\")\n});\nvar ContentBlockSchema = exports_external.union([\n TextContentSchema,\n ImageContentSchema,\n AudioContentSchema,\n ResourceLinkSchema,\n EmbeddedResourceSchema\n]);\nvar PromptMessageSchema = exports_external.object({\n role: exports_external.enum([\"user\", \"assistant\"]),\n content: ContentBlockSchema\n}).passthrough();\nvar GetPromptResultSchema = ResultSchema.extend({\n description: exports_external.optional(exports_external.string()),\n messages: exports_external.array(PromptMessageSchema)\n});\nvar PromptListChangedNotificationSchema = NotificationSchema.extend({\n method: exports_external.literal(\"notifications/prompts/list_changed\")\n});\nvar ToolAnnotationsSchema = exports_external.object({\n title: exports_external.optional(exports_external.string()),\n readOnlyHint: exports_external.optional(exports_external.boolean()),\n destructiveHint: exports_external.optional(exports_external.boolean()),\n idempotentHint: exports_external.optional(exports_external.boolean()),\n openWorldHint: exports_external.optional(exports_external.boolean())\n}).passthrough();\nvar ToolSchema = BaseMetadataSchema.extend({\n description: exports_external.optional(exports_external.string()),\n inputSchema: exports_external.object({\n type: exports_external.literal(\"object\"),\n properties: exports_external.optional(exports_external.object({}).passthrough()),\n required: exports_external.optional(exports_external.array(exports_external.string()))\n }).passthrough(),\n outputSchema: exports_external.optional(exports_external.object({\n type: exports_external.literal(\"object\"),\n properties: exports_external.optional(exports_external.object({}).passthrough()),\n required: exports_external.optional(exports_external.array(exports_external.string()))\n }).passthrough()),\n annotations: exports_external.optional(ToolAnnotationsSchema),\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n});\nvar ListToolsRequestSchema = PaginatedRequestSchema.extend({\n method: exports_external.literal(\"tools/list\")\n});\nvar ListToolsResultSchema = PaginatedResultSchema.extend({\n tools: exports_external.array(ToolSchema)\n});\nvar CallToolResultSchema = ResultSchema.extend({\n content: exports_external.array(ContentBlockSchema).default([]),\n structuredContent: exports_external.object({}).passthrough().optional(),\n isError: exports_external.optional(exports_external.boolean())\n});\nvar CompatibilityCallToolResultSchema = CallToolResultSchema.or(ResultSchema.extend({\n toolResult: exports_external.unknown()\n}));\nvar CallToolRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"tools/call\"),\n params: BaseRequestParamsSchema.extend({\n name: exports_external.string(),\n arguments: exports_external.optional(exports_external.record(exports_external.unknown()))\n })\n});\nvar ToolListChangedNotificationSchema = NotificationSchema.extend({\n method: exports_external.literal(\"notifications/tools/list_changed\")\n});\nvar LoggingLevelSchema = exports_external.enum([\n \"debug\",\n \"info\",\n \"notice\",\n \"warning\",\n \"error\",\n \"critical\",\n \"alert\",\n \"emergency\"\n]);\nvar SetLevelRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"logging/setLevel\"),\n params: BaseRequestParamsSchema.extend({\n level: LoggingLevelSchema\n })\n});\nvar LoggingMessageNotificationSchema = NotificationSchema.extend({\n method: exports_external.literal(\"notifications/message\"),\n params: BaseNotificationParamsSchema.extend({\n level: LoggingLevelSchema,\n logger: exports_external.optional(exports_external.string()),\n data: exports_external.unknown()\n })\n});\nvar ModelHintSchema = exports_external.object({\n name: exports_external.string().optional()\n}).passthrough();\nvar ModelPreferencesSchema = exports_external.object({\n hints: exports_external.optional(exports_external.array(ModelHintSchema)),\n costPriority: exports_external.optional(exports_external.number().min(0).max(1)),\n speedPriority: exports_external.optional(exports_external.number().min(0).max(1)),\n intelligencePriority: exports_external.optional(exports_external.number().min(0).max(1))\n}).passthrough();\nvar SamplingMessageSchema = exports_external.object({\n role: exports_external.enum([\"user\", \"assistant\"]),\n content: exports_external.union([TextContentSchema, ImageContentSchema, AudioContentSchema])\n}).passthrough();\nvar CreateMessageRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"sampling/createMessage\"),\n params: BaseRequestParamsSchema.extend({\n messages: exports_external.array(SamplingMessageSchema),\n systemPrompt: exports_external.optional(exports_external.string()),\n includeContext: exports_external.optional(exports_external.enum([\"none\", \"thisServer\", \"allServers\"])),\n temperature: exports_external.optional(exports_external.number()),\n maxTokens: exports_external.number().int(),\n stopSequences: exports_external.optional(exports_external.array(exports_external.string())),\n metadata: exports_external.optional(exports_external.object({}).passthrough()),\n modelPreferences: exports_external.optional(ModelPreferencesSchema)\n })\n});\nvar CreateMessageResultSchema = ResultSchema.extend({\n model: exports_external.string(),\n stopReason: exports_external.optional(exports_external.enum([\"endTurn\", \"stopSequence\", \"maxTokens\"]).or(exports_external.string())),\n role: exports_external.enum([\"user\", \"assistant\"]),\n content: exports_external.discriminatedUnion(\"type\", [\n TextContentSchema,\n ImageContentSchema,\n AudioContentSchema\n ])\n});\nvar BooleanSchemaSchema = exports_external.object({\n type: exports_external.literal(\"boolean\"),\n title: exports_external.optional(exports_external.string()),\n description: exports_external.optional(exports_external.string()),\n default: exports_external.optional(exports_external.boolean())\n}).passthrough();\nvar StringSchemaSchema = exports_external.object({\n type: exports_external.literal(\"string\"),\n title: exports_external.optional(exports_external.string()),\n description: exports_external.optional(exports_external.string()),\n minLength: exports_external.optional(exports_external.number()),\n maxLength: exports_external.optional(exports_external.number()),\n format: exports_external.optional(exports_external.enum([\"email\", \"uri\", \"date\", \"date-time\"]))\n}).passthrough();\nvar NumberSchemaSchema = exports_external.object({\n type: exports_external.enum([\"number\", \"integer\"]),\n title: exports_external.optional(exports_external.string()),\n description: exports_external.optional(exports_external.string()),\n minimum: exports_external.optional(exports_external.number()),\n maximum: exports_external.optional(exports_external.number())\n}).passthrough();\nvar EnumSchemaSchema = exports_external.object({\n type: exports_external.literal(\"string\"),\n title: exports_external.optional(exports_external.string()),\n description: exports_external.optional(exports_external.string()),\n enum: exports_external.array(exports_external.string()),\n enumNames: exports_external.optional(exports_external.array(exports_external.string()))\n}).passthrough();\nvar PrimitiveSchemaDefinitionSchema = exports_external.union([\n BooleanSchemaSchema,\n StringSchemaSchema,\n NumberSchemaSchema,\n EnumSchemaSchema\n]);\nvar ElicitRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"elicitation/create\"),\n params: BaseRequestParamsSchema.extend({\n message: exports_external.string(),\n requestedSchema: exports_external.object({\n type: exports_external.literal(\"object\"),\n properties: exports_external.record(exports_external.string(), PrimitiveSchemaDefinitionSchema),\n required: exports_external.optional(exports_external.array(exports_external.string()))\n }).passthrough()\n })\n});\nvar ElicitResultSchema = ResultSchema.extend({\n action: exports_external.enum([\"accept\", \"decline\", \"cancel\"]),\n content: exports_external.optional(exports_external.record(exports_external.string(), exports_external.unknown()))\n});\nvar ResourceTemplateReferenceSchema = exports_external.object({\n type: exports_external.literal(\"ref/resource\"),\n uri: exports_external.string()\n}).passthrough();\nvar PromptReferenceSchema = exports_external.object({\n type: exports_external.literal(\"ref/prompt\"),\n name: exports_external.string()\n}).passthrough();\nvar CompleteRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"completion/complete\"),\n params: BaseRequestParamsSchema.extend({\n ref: exports_external.union([PromptReferenceSchema, ResourceTemplateReferenceSchema]),\n argument: exports_external.object({\n name: exports_external.string(),\n value: exports_external.string()\n }).passthrough(),\n context: exports_external.optional(exports_external.object({\n arguments: exports_external.optional(exports_external.record(exports_external.string(), exports_external.string()))\n }))\n })\n});\nvar CompleteResultSchema = ResultSchema.extend({\n completion: exports_external.object({\n values: exports_external.array(exports_external.string()).max(100),\n total: exports_external.optional(exports_external.number().int()),\n hasMore: exports_external.optional(exports_external.boolean())\n }).passthrough()\n});\nvar RootSchema = exports_external.object({\n uri: exports_external.string().startsWith(\"file://\"),\n name: exports_external.optional(exports_external.string()),\n _meta: exports_external.optional(exports_external.object({}).passthrough())\n}).passthrough();\nvar ListRootsRequestSchema = RequestSchema.extend({\n method: exports_external.literal(\"roots/list\")\n});\nvar ListRootsResultSchema = ResultSchema.extend({\n roots: exports_external.array(RootSchema)\n});\nvar RootsListChangedNotificationSchema = NotificationSchema.extend({\n method: exports_external.literal(\"notifications/roots/list_changed\")\n});\nvar ClientRequestSchema = exports_external.union([\n PingRequestSchema,\n InitializeRequestSchema,\n CompleteRequestSchema,\n SetLevelRequestSchema,\n GetPromptRequestSchema,\n ListPromptsRequestSchema,\n ListResourcesRequestSchema,\n ListResourceTemplatesRequestSchema,\n ReadResourceRequestSchema,\n SubscribeRequestSchema,\n UnsubscribeRequestSchema,\n CallToolRequestSchema,\n ListToolsRequestSchema\n]);\nvar ClientNotificationSchema = exports_external.union([\n CancelledNotificationSchema,\n ProgressNotificationSchema,\n InitializedNotificationSchema,\n RootsListChangedNotificationSchema\n]);\nvar ClientResultSchema = exports_external.union([\n EmptyResultSchema,\n CreateMessageResultSchema,\n ElicitResultSchema,\n ListRootsResultSchema\n]);\nvar ServerRequestSchema = exports_external.union([\n PingRequestSchema,\n CreateMessageRequestSchema,\n ElicitRequestSchema,\n ListRootsRequestSchema\n]);\nvar ServerNotificationSchema = exports_external.union([\n CancelledNotificationSchema,\n ProgressNotificationSchema,\n LoggingMessageNotificationSchema,\n ResourceUpdatedNotificationSchema,\n ResourceListChangedNotificationSchema,\n ToolListChangedNotificationSchema,\n PromptListChangedNotificationSchema\n]);\nvar ServerResultSchema = exports_external.union([\n EmptyResultSchema,\n InitializeResultSchema,\n CompleteResultSchema,\n GetPromptResultSchema,\n ListPromptsResultSchema,\n ListResourcesResultSchema,\n ListResourceTemplatesResultSchema,\n ReadResourceResultSchema,\n CallToolResultSchema,\n ListToolsResultSchema\n]);\n\nclass McpError extends Error {\n constructor(code, message, data) {\n super(`MCP error ${code}: ${message}`);\n this.code = code;\n this.data = data;\n this.name = \"McpError\";\n }\n}\n\n// ../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js\nvar DEFAULT_REQUEST_TIMEOUT_MSEC = 60000;\n\nclass Protocol {\n constructor(_options) {\n this._options = _options;\n this._requestMessageId = 0;\n this._requestHandlers = new Map;\n this._requestHandlerAbortControllers = new Map;\n this._notificationHandlers = new Map;\n this._responseHandlers = new Map;\n this._progressHandlers = new Map;\n this._timeoutInfo = new Map;\n this._pendingDebouncedNotifications = new Set;\n this.setNotificationHandler(CancelledNotificationSchema, (notification) => {\n const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);\n controller === null || controller === undefined || controller.abort(notification.params.reason);\n });\n this.setNotificationHandler(ProgressNotificationSchema, (notification) => {\n this._onprogress(notification);\n });\n this.setRequestHandler(PingRequestSchema, (_request) => ({}));\n }\n _setupTimeout(messageId, timeout, maxTotalTimeout, onTimeout, resetTimeoutOnProgress = false) {\n this._timeoutInfo.set(messageId, {\n timeoutId: setTimeout(onTimeout, timeout),\n startTime: Date.now(),\n timeout,\n maxTotalTimeout,\n resetTimeoutOnProgress,\n onTimeout\n });\n }\n _resetTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (!info)\n return false;\n const totalElapsed = Date.now() - info.startTime;\n if (info.maxTotalTimeout && totalElapsed >= info.maxTotalTimeout) {\n this._timeoutInfo.delete(messageId);\n throw new McpError(ErrorCode.RequestTimeout, \"Maximum total timeout exceeded\", { maxTotalTimeout: info.maxTotalTimeout, totalElapsed });\n }\n clearTimeout(info.timeoutId);\n info.timeoutId = setTimeout(info.onTimeout, info.timeout);\n return true;\n }\n _cleanupTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (info) {\n clearTimeout(info.timeoutId);\n this._timeoutInfo.delete(messageId);\n }\n }\n async connect(transport) {\n var _a, _b, _c;\n this._transport = transport;\n const _onclose = (_a = this.transport) === null || _a === undefined ? undefined : _a.onclose;\n this._transport.onclose = () => {\n _onclose === null || _onclose === undefined || _onclose();\n this._onclose();\n };\n const _onerror = (_b = this.transport) === null || _b === undefined ? undefined : _b.onerror;\n this._transport.onerror = (error) => {\n _onerror === null || _onerror === undefined || _onerror(error);\n this._onerror(error);\n };\n const _onmessage = (_c = this._transport) === null || _c === undefined ? undefined : _c.onmessage;\n this._transport.onmessage = (message, extra) => {\n _onmessage === null || _onmessage === undefined || _onmessage(message, extra);\n if (isJSONRPCResponse(message) || isJSONRPCError(message)) {\n this._onresponse(message);\n } else if (isJSONRPCRequest(message)) {\n this._onrequest(message, extra);\n } else if (isJSONRPCNotification(message)) {\n this._onnotification(message);\n } else {\n this._onerror(new Error(`Unknown message type: ${JSON.stringify(message)}`));\n }\n };\n await this._transport.start();\n }\n _onclose() {\n var _a;\n const responseHandlers = this._responseHandlers;\n this._responseHandlers = new Map;\n this._progressHandlers.clear();\n this._pendingDebouncedNotifications.clear();\n this._transport = undefined;\n (_a = this.onclose) === null || _a === undefined || _a.call(this);\n const error = new McpError(ErrorCode.ConnectionClosed, \"Connection closed\");\n for (const handler of responseHandlers.values()) {\n handler(error);\n }\n }\n _onerror(error) {\n var _a;\n (_a = this.onerror) === null || _a === undefined || _a.call(this, error);\n }\n _onnotification(notification) {\n var _a;\n const handler = (_a = this._notificationHandlers.get(notification.method)) !== null && _a !== undefined ? _a : this.fallbackNotificationHandler;\n if (handler === undefined) {\n return;\n }\n Promise.resolve().then(() => handler(notification)).catch((error) => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));\n }\n _onrequest(request, extra) {\n var _a, _b;\n const handler = (_a = this._requestHandlers.get(request.method)) !== null && _a !== undefined ? _a : this.fallbackRequestHandler;\n const capturedTransport = this._transport;\n if (handler === undefined) {\n capturedTransport === null || capturedTransport === undefined || capturedTransport.send({\n jsonrpc: \"2.0\",\n id: request.id,\n error: {\n code: ErrorCode.MethodNotFound,\n message: \"Method not found\"\n }\n }).catch((error) => this._onerror(new Error(`Failed to send an error response: ${error}`)));\n return;\n }\n const abortController = new AbortController;\n this._requestHandlerAbortControllers.set(request.id, abortController);\n const fullExtra = {\n signal: abortController.signal,\n sessionId: capturedTransport === null || capturedTransport === undefined ? undefined : capturedTransport.sessionId,\n _meta: (_b = request.params) === null || _b === undefined ? undefined : _b._meta,\n sendNotification: (notification) => this.notification(notification, { relatedRequestId: request.id }),\n sendRequest: (r, resultSchema, options) => this.request(r, resultSchema, { ...options, relatedRequestId: request.id }),\n authInfo: extra === null || extra === undefined ? undefined : extra.authInfo,\n requestId: request.id,\n requestInfo: extra === null || extra === undefined ? undefined : extra.requestInfo\n };\n Promise.resolve().then(() => handler(request, fullExtra)).then((result) => {\n if (abortController.signal.aborted) {\n return;\n }\n return capturedTransport === null || capturedTransport === undefined ? undefined : capturedTransport.send({\n result,\n jsonrpc: \"2.0\",\n id: request.id\n });\n }, (error) => {\n var _a2;\n if (abortController.signal.aborted) {\n return;\n }\n return capturedTransport === null || capturedTransport === undefined ? undefined : capturedTransport.send({\n jsonrpc: \"2.0\",\n id: request.id,\n error: {\n code: Number.isSafeInteger(error[\"code\"]) ? error[\"code\"] : ErrorCode.InternalError,\n message: (_a2 = error.message) !== null && _a2 !== undefined ? _a2 : \"Internal error\"\n }\n });\n }).catch((error) => this._onerror(new Error(`Failed to send response: ${error}`))).finally(() => {\n this._requestHandlerAbortControllers.delete(request.id);\n });\n }\n _onprogress(notification) {\n const { progressToken, ...params } = notification.params;\n const messageId = Number(progressToken);\n const handler = this._progressHandlers.get(messageId);\n if (!handler) {\n this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(notification)}`));\n return;\n }\n const responseHandler = this._responseHandlers.get(messageId);\n const timeoutInfo = this._timeoutInfo.get(messageId);\n if (timeoutInfo && responseHandler && timeoutInfo.resetTimeoutOnProgress) {\n try {\n this._resetTimeout(messageId);\n } catch (error) {\n responseHandler(error);\n return;\n }\n }\n handler(params);\n }\n _onresponse(response) {\n const messageId = Number(response.id);\n const handler = this._responseHandlers.get(messageId);\n if (handler === undefined) {\n this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(response)}`));\n return;\n }\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n if (isJSONRPCResponse(response)) {\n handler(response);\n } else {\n const error = new McpError(response.error.code, response.error.message, response.error.data);\n handler(error);\n }\n }\n get transport() {\n return this._transport;\n }\n async close() {\n var _a;\n await ((_a = this._transport) === null || _a === undefined ? undefined : _a.close());\n }\n request(request, resultSchema, options) {\n const { relatedRequestId, resumptionToken, onresumptiontoken } = options !== null && options !== undefined ? options : {};\n return new Promise((resolve, reject) => {\n var _a, _b, _c, _d, _e, _f;\n if (!this._transport) {\n reject(new Error(\"Not connected\"));\n return;\n }\n if (((_a = this._options) === null || _a === undefined ? undefined : _a.enforceStrictCapabilities) === true) {\n this.assertCapabilityForMethod(request.method);\n }\n (_b = options === null || options === undefined ? undefined : options.signal) === null || _b === undefined || _b.throwIfAborted();\n const messageId = this._requestMessageId++;\n const jsonrpcRequest = {\n ...request,\n jsonrpc: \"2.0\",\n id: messageId\n };\n if (options === null || options === undefined ? undefined : options.onprogress) {\n this._progressHandlers.set(messageId, options.onprogress);\n jsonrpcRequest.params = {\n ...request.params,\n _meta: {\n ...((_c = request.params) === null || _c === undefined ? undefined : _c._meta) || {},\n progressToken: messageId\n }\n };\n }\n const cancel = (reason) => {\n var _a2;\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n (_a2 = this._transport) === null || _a2 === undefined || _a2.send({\n jsonrpc: \"2.0\",\n method: \"notifications/cancelled\",\n params: {\n requestId: messageId,\n reason: String(reason)\n }\n }, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => this._onerror(new Error(`Failed to send cancellation: ${error}`)));\n reject(reason);\n };\n this._responseHandlers.set(messageId, (response) => {\n var _a2;\n if ((_a2 = options === null || options === undefined ? undefined : options.signal) === null || _a2 === undefined ? undefined : _a2.aborted) {\n return;\n }\n if (response instanceof Error) {\n return reject(response);\n }\n try {\n const result = resultSchema.parse(response.result);\n resolve(result);\n } catch (error) {\n reject(error);\n }\n });\n (_d = options === null || options === undefined ? undefined : options.signal) === null || _d === undefined || _d.addEventListener(\"abort\", () => {\n var _a2;\n cancel((_a2 = options === null || options === undefined ? undefined : options.signal) === null || _a2 === undefined ? undefined : _a2.reason);\n });\n const timeout = (_e = options === null || options === undefined ? undefined : options.timeout) !== null && _e !== undefined ? _e : DEFAULT_REQUEST_TIMEOUT_MSEC;\n const timeoutHandler = () => cancel(new McpError(ErrorCode.RequestTimeout, \"Request timed out\", { timeout }));\n this._setupTimeout(messageId, timeout, options === null || options === undefined ? undefined : options.maxTotalTimeout, timeoutHandler, (_f = options === null || options === undefined ? undefined : options.resetTimeoutOnProgress) !== null && _f !== undefined ? _f : false);\n this._transport.send(jsonrpcRequest, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => {\n this._cleanupTimeout(messageId);\n reject(error);\n });\n });\n }\n async notification(notification, options) {\n var _a, _b;\n if (!this._transport) {\n throw new Error(\"Not connected\");\n }\n this.assertNotificationCapability(notification.method);\n const debouncedMethods = (_b = (_a = this._options) === null || _a === undefined ? undefined : _a.debouncedNotificationMethods) !== null && _b !== undefined ? _b : [];\n const canDebounce = debouncedMethods.includes(notification.method) && !notification.params && !(options === null || options === undefined ? undefined : options.relatedRequestId);\n if (canDebounce) {\n if (this._pendingDebouncedNotifications.has(notification.method)) {\n return;\n }\n this._pendingDebouncedNotifications.add(notification.method);\n Promise.resolve().then(() => {\n var _a2;\n this._pendingDebouncedNotifications.delete(notification.method);\n if (!this._transport) {\n return;\n }\n const jsonrpcNotification2 = {\n ...notification,\n jsonrpc: \"2.0\"\n };\n (_a2 = this._transport) === null || _a2 === undefined || _a2.send(jsonrpcNotification2, options).catch((error) => this._onerror(error));\n });\n return;\n }\n const jsonrpcNotification = {\n ...notification,\n jsonrpc: \"2.0\"\n };\n await this._transport.send(jsonrpcNotification, options);\n }\n setRequestHandler(requestSchema, handler) {\n const method = requestSchema.shape.method.value;\n this.assertRequestHandlerCapability(method);\n this._requestHandlers.set(method, (request, extra) => {\n return Promise.resolve(handler(requestSchema.parse(request), extra));\n });\n }\n removeRequestHandler(method) {\n this._requestHandlers.delete(method);\n }\n assertCanSetRequestHandler(method) {\n if (this._requestHandlers.has(method)) {\n throw new Error(`A request handler for ${method} already exists, which would be overridden`);\n }\n }\n setNotificationHandler(notificationSchema, handler) {\n this._notificationHandlers.set(notificationSchema.shape.method.value, (notification) => Promise.resolve(handler(notificationSchema.parse(notification))));\n }\n removeNotificationHandler(method) {\n this._notificationHandlers.delete(method);\n }\n}\nfunction mergeCapabilities(base, additional) {\n return Object.entries(additional).reduce((acc, [key, value]) => {\n if (value && typeof value === \"object\") {\n acc[key] = acc[key] ? { ...acc[key], ...value } : value;\n } else {\n acc[key] = value;\n }\n return acc;\n }, { ...base });\n}\n\n// ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js\nvar import_ajv = __toESM(require_ajv(), 1);\n\nclass Server extends Protocol {\n constructor(_serverInfo, options) {\n var _a;\n super(options);\n this._serverInfo = _serverInfo;\n this._capabilities = (_a = options === null || options === undefined ? undefined : options.capabilities) !== null && _a !== undefined ? _a : {};\n this._instructions = options === null || options === undefined ? undefined : options.instructions;\n this.setRequestHandler(InitializeRequestSchema, (request) => this._oninitialize(request));\n this.setNotificationHandler(InitializedNotificationSchema, () => {\n var _a2;\n return (_a2 = this.oninitialized) === null || _a2 === undefined ? undefined : _a2.call(this);\n });\n }\n registerCapabilities(capabilities) {\n if (this.transport) {\n throw new Error(\"Cannot register capabilities after connecting to transport\");\n }\n this._capabilities = mergeCapabilities(this._capabilities, capabilities);\n }\n assertCapabilityForMethod(method) {\n var _a, _b, _c;\n switch (method) {\n case \"sampling/createMessage\":\n if (!((_a = this._clientCapabilities) === null || _a === undefined ? undefined : _a.sampling)) {\n throw new Error(`Client does not support sampling (required for ${method})`);\n }\n break;\n case \"elicitation/create\":\n if (!((_b = this._clientCapabilities) === null || _b === undefined ? undefined : _b.elicitation)) {\n throw new Error(`Client does not support elicitation (required for ${method})`);\n }\n break;\n case \"roots/list\":\n if (!((_c = this._clientCapabilities) === null || _c === undefined ? undefined : _c.roots)) {\n throw new Error(`Client does not support listing roots (required for ${method})`);\n }\n break;\n case \"ping\":\n break;\n }\n }\n assertNotificationCapability(method) {\n switch (method) {\n case \"notifications/message\":\n if (!this._capabilities.logging) {\n throw new Error(`Server does not support logging (required for ${method})`);\n }\n break;\n case \"notifications/resources/updated\":\n case \"notifications/resources/list_changed\":\n if (!this._capabilities.resources) {\n throw new Error(`Server does not support notifying about resources (required for ${method})`);\n }\n break;\n case \"notifications/tools/list_changed\":\n if (!this._capabilities.tools) {\n throw new Error(`Server does not support notifying of tool list changes (required for ${method})`);\n }\n break;\n case \"notifications/prompts/list_changed\":\n if (!this._capabilities.prompts) {\n throw new Error(`Server does not support notifying of prompt list changes (required for ${method})`);\n }\n break;\n case \"notifications/cancelled\":\n break;\n case \"notifications/progress\":\n break;\n }\n }\n assertRequestHandlerCapability(method) {\n switch (method) {\n case \"sampling/createMessage\":\n if (!this._capabilities.sampling) {\n throw new Error(`Server does not support sampling (required for ${method})`);\n }\n break;\n case \"logging/setLevel\":\n if (!this._capabilities.logging) {\n throw new Error(`Server does not support logging (required for ${method})`);\n }\n break;\n case \"prompts/get\":\n case \"prompts/list\":\n if (!this._capabilities.prompts) {\n throw new Error(`Server does not support prompts (required for ${method})`);\n }\n break;\n case \"resources/list\":\n case \"resources/templates/list\":\n case \"resources/read\":\n if (!this._capabilities.resources) {\n throw new Error(`Server does not support resources (required for ${method})`);\n }\n break;\n case \"tools/call\":\n case \"tools/list\":\n if (!this._capabilities.tools) {\n throw new Error(`Server does not support tools (required for ${method})`);\n }\n break;\n case \"ping\":\n case \"initialize\":\n break;\n }\n }\n async _oninitialize(request) {\n const requestedVersion = request.params.protocolVersion;\n this._clientCapabilities = request.params.capabilities;\n this._clientVersion = request.params.clientInfo;\n const protocolVersion = SUPPORTED_PROTOCOL_VERSIONS.includes(requestedVersion) ? requestedVersion : LATEST_PROTOCOL_VERSION;\n return {\n protocolVersion,\n capabilities: this.getCapabilities(),\n serverInfo: this._serverInfo,\n ...this._instructions && { instructions: this._instructions }\n };\n }\n getClientCapabilities() {\n return this._clientCapabilities;\n }\n getClientVersion() {\n return this._clientVersion;\n }\n getCapabilities() {\n return this._capabilities;\n }\n async ping() {\n return this.request({ method: \"ping\" }, EmptyResultSchema);\n }\n async createMessage(params, options) {\n return this.request({ method: \"sampling/createMessage\", params }, CreateMessageResultSchema, options);\n }\n async elicitInput(params, options) {\n const result = await this.request({ method: \"elicitation/create\", params }, ElicitResultSchema, options);\n if (result.action === \"accept\" && result.content) {\n try {\n const ajv = new import_ajv.default;\n const validate = ajv.compile(params.requestedSchema);\n const isValid2 = validate(result.content);\n if (!isValid2) {\n throw new McpError(ErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${ajv.errorsText(validate.errors)}`);\n }\n } catch (error) {\n if (error instanceof McpError) {\n throw error;\n }\n throw new McpError(ErrorCode.InternalError, `Error validating elicitation response: ${error}`);\n }\n }\n return result;\n }\n async listRoots(params, options) {\n return this.request({ method: \"roots/list\", params }, ListRootsResultSchema, options);\n }\n async sendLoggingMessage(params) {\n return this.notification({ method: \"notifications/message\", params });\n }\n async sendResourceUpdated(params) {\n return this.notification({\n method: \"notifications/resources/updated\",\n params\n });\n }\n async sendResourceListChanged() {\n return this.notification({\n method: \"notifications/resources/list_changed\"\n });\n }\n async sendToolListChanged() {\n return this.notification({ method: \"notifications/tools/list_changed\" });\n }\n async sendPromptListChanged() {\n return this.notification({ method: \"notifications/prompts/list_changed\" });\n }\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/Options.js\nvar ignoreOverride = Symbol(\"Let zodToJsonSchema decide on which parser to use\");\nvar defaultOptions = {\n name: undefined,\n $refStrategy: \"root\",\n basePath: [\"#\"],\n effectStrategy: \"input\",\n pipeStrategy: \"all\",\n dateStrategy: \"format:date-time\",\n mapStrategy: \"entries\",\n removeAdditionalStrategy: \"passthrough\",\n allowedAdditionalProperties: true,\n rejectedAdditionalProperties: false,\n definitionPath: \"definitions\",\n target: \"jsonSchema7\",\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n markdownDescription: false,\n patternStrategy: \"escape\",\n applyRegexFlags: false,\n emailStrategy: \"format:email\",\n base64Strategy: \"contentEncoding:base64\",\n nameStrategy: \"ref\"\n};\nvar getDefaultOptions = (options) => typeof options === \"string\" ? {\n ...defaultOptions,\n name: options\n} : {\n ...defaultOptions,\n ...options\n};\n// ../node_modules/zod-to-json-schema/dist/esm/Refs.js\nvar getRefs = (options) => {\n const _options = getDefaultOptions(options);\n const currentPath = _options.name !== undefined ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;\n return {\n ..._options,\n currentPath,\n propertyPath: undefined,\n seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name],\n jsonSchema: undefined\n }\n ]))\n };\n};\n// ../node_modules/zod-to-json-schema/dist/esm/errorMessages.js\nfunction addErrorMessage(res, key, errorMessage, refs) {\n if (!refs?.errorMessages)\n return;\n if (errorMessage) {\n res.errorMessage = {\n ...res.errorMessage,\n [key]: errorMessage\n };\n }\n}\nfunction setResponseValueAndErrors(res, key, value, errorMessage, refs) {\n res[key] = value;\n addErrorMessage(res, key, errorMessage, refs);\n}\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/any.js\nfunction parseAnyDef() {\n return {};\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/array.js\nfunction parseArrayDef(def, refs) {\n const res = {\n type: \"array\"\n };\n if (def.type?._def && def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) {\n res.items = parseDef(def.type._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"]\n });\n }\n if (def.minLength) {\n setResponseValueAndErrors(res, \"minItems\", def.minLength.value, def.minLength.message, refs);\n }\n if (def.maxLength) {\n setResponseValueAndErrors(res, \"maxItems\", def.maxLength.value, def.maxLength.message, refs);\n }\n if (def.exactLength) {\n setResponseValueAndErrors(res, \"minItems\", def.exactLength.value, def.exactLength.message, refs);\n setResponseValueAndErrors(res, \"maxItems\", def.exactLength.value, def.exactLength.message, refs);\n }\n return res;\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js\nfunction parseBigintDef(def, refs) {\n const res = {\n type: \"integer\",\n format: \"int64\"\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n } else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n } else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n } else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n } else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js\nfunction parseBooleanDef() {\n return {\n type: \"boolean\"\n };\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/branded.js\nfunction parseBrandedDef(_def, refs) {\n return parseDef(_def.type._def, refs);\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/catch.js\nvar parseCatchDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/date.js\nfunction parseDateDef(def, refs, overrideDateStrategy) {\n const strategy = overrideDateStrategy ?? refs.dateStrategy;\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item))\n };\n }\n switch (strategy) {\n case \"string\":\n case \"format:date-time\":\n return {\n type: \"string\",\n format: \"date-time\"\n };\n case \"format:date\":\n return {\n type: \"string\",\n format: \"date\"\n };\n case \"integer\":\n return integerDateParser(def, refs);\n }\n}\nvar integerDateParser = (def, refs) => {\n const res = {\n type: \"integer\",\n format: \"unix-time\"\n };\n if (refs.target === \"openApi3\") {\n return res;\n }\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n};\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/default.js\nfunction parseDefaultDef(_def, refs) {\n return {\n ...parseDef(_def.innerType._def, refs),\n default: _def.defaultValue()\n };\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/effects.js\nfunction parseEffectsDef(_def, refs) {\n return refs.effectStrategy === \"input\" ? parseDef(_def.schema._def, refs) : {};\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/enum.js\nfunction parseEnumDef(def) {\n return {\n type: \"string\",\n enum: Array.from(def.values)\n };\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js\nvar isJsonSchema7AllOfType = (type) => {\n if (\"type\" in type && type.type === \"string\")\n return false;\n return \"allOf\" in type;\n};\nfunction parseIntersectionDef(def, refs) {\n const allOf = [\n parseDef(def.left._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"]\n }),\n parseDef(def.right._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"1\"]\n })\n ].filter((x) => !!x);\n let unevaluatedProperties = refs.target === \"jsonSchema2019-09\" ? { unevaluatedProperties: false } : undefined;\n const mergedAllOf = [];\n allOf.forEach((schema) => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n if (schema.unevaluatedProperties === undefined) {\n unevaluatedProperties = undefined;\n }\n } else {\n let nestedSchema = schema;\n if (\"additionalProperties\" in schema && schema.additionalProperties === false) {\n const { additionalProperties, ...rest } = schema;\n nestedSchema = rest;\n } else {\n unevaluatedProperties = undefined;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length ? {\n allOf: mergedAllOf,\n ...unevaluatedProperties\n } : undefined;\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/literal.js\nfunction parseLiteralDef(def, refs) {\n const parsedType = typeof def.value;\n if (parsedType !== \"bigint\" && parsedType !== \"number\" && parsedType !== \"boolean\" && parsedType !== \"string\") {\n return {\n type: Array.isArray(def.value) ? \"array\" : \"object\"\n };\n }\n if (refs.target === \"openApi3\") {\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n enum: [def.value]\n };\n }\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n const: def.value\n };\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/string.js\nvar emojiRegex2 = undefined;\nvar zodPatterns = {\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n emoji: () => {\n if (emojiRegex2 === undefined) {\n emojiRegex2 = RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\", \"u\");\n }\n return emojiRegex2;\n },\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/\n};\nfunction parseStringDef(def, refs) {\n const res = {\n type: \"string\"\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\" ? Math.max(res.minLength, check.value) : check.value, check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\" ? Math.min(res.maxLength, check.value) : check.value, check.message, refs);\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);\n break;\n case \"endsWith\":\n addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\" ? Math.max(res.minLength, check.value) : check.value, check.message, refs);\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\" ? Math.min(res.maxLength, check.value) : check.value, check.message, refs);\n break;\n case \"includes\": {\n addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n setResponseValueAndErrors(res, \"contentEncoding\", \"base64\", check.message, refs);\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n ((_) => {})(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\" ? escapeNonAlphaNumeric(literal) : literal;\n}\nvar ALPHA_NUMERIC = new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0;i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\nfunction addFormat(schema, value, message, refs) {\n if (schema.format || schema.anyOf?.some((x) => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format,\n ...schema.errorMessage && refs.errorMessages && {\n errorMessage: { format: schema.errorMessage.format }\n }\n });\n delete schema.format;\n if (schema.errorMessage) {\n delete schema.errorMessage.format;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.anyOf.push({\n format: value,\n ...message && refs.errorMessages && { errorMessage: { format: message } }\n });\n } else {\n setResponseValueAndErrors(schema, \"format\", value, message, refs);\n }\n}\nfunction addPattern(schema, regex, message, refs) {\n if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern,\n ...schema.errorMessage && refs.errorMessages && {\n errorMessage: { pattern: schema.errorMessage.pattern }\n }\n });\n delete schema.pattern;\n if (schema.errorMessage) {\n delete schema.errorMessage.pattern;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.allOf.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...message && refs.errorMessages && { errorMessage: { pattern: message } }\n });\n } else {\n setResponseValueAndErrors(schema, \"pattern\", stringifyRegExpWithFlags(regex, refs), message, refs);\n }\n}\nfunction stringifyRegExpWithFlags(regex, refs) {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n const flags = {\n i: regex.flags.includes(\"i\"),\n m: regex.flags.includes(\"m\"),\n s: regex.flags.includes(\"s\")\n };\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0;i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n } else if (source[i + 1] === \"-\" && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n } else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n } else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\n]))`;\n continue;\n } else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\n` : `[${source[i]}\\r\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n } else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n } else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n } catch {\n console.warn(`Could not convert regex pattern at ${refs.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`);\n return regex.source;\n }\n return pattern;\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/record.js\nfunction parseRecordDef(def, refs) {\n if (refs.target === \"openAi\") {\n console.warn(\"Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.\");\n }\n if (refs.target === \"openApi3\" && def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n type: \"object\",\n required: def.keyType._def.values,\n properties: def.keyType._def.values.reduce((acc, key) => ({\n ...acc,\n [key]: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", key]\n }) ?? {}\n }), {}),\n additionalProperties: refs.rejectedAdditionalProperties\n };\n }\n const schema = {\n type: \"object\",\n additionalProperties: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"]\n }) ?? refs.allowedAdditionalProperties\n };\n if (refs.target === \"openApi3\") {\n return schema;\n }\n if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString && def.keyType._def.checks?.length) {\n const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType\n };\n } else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n ...schema,\n propertyNames: {\n enum: def.keyType._def.values\n }\n };\n } else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded && def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString && def.keyType._def.type._def.checks?.length) {\n const { type, ...keyType } = parseBrandedDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType\n };\n }\n return schema;\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/map.js\nfunction parseMapDef(def, refs) {\n if (refs.mapStrategy === \"record\") {\n return parseRecordDef(def, refs);\n }\n const keys = parseDef(def.keyType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"0\"]\n }) || {};\n const values = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"1\"]\n }) || {};\n return {\n type: \"array\",\n maxItems: 125,\n items: {\n type: \"array\",\n items: [keys, values],\n minItems: 2,\n maxItems: 2\n }\n };\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js\nfunction parseNativeEnumDef(def) {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key) => {\n return typeof object[object[key]] !== \"number\";\n });\n const actualValues = actualKeys.map((key) => object[key]);\n const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));\n return {\n type: parsedTypes.length === 1 ? parsedTypes[0] === \"string\" ? \"string\" : \"number\" : [\"string\", \"number\"],\n enum: actualValues\n };\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/never.js\nfunction parseNeverDef() {\n return {\n not: {}\n };\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/null.js\nfunction parseNullDef(refs) {\n return refs.target === \"openApi3\" ? {\n enum: [\"null\"],\n nullable: true\n } : {\n type: \"null\"\n };\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/union.js\nvar primitiveMappings = {\n ZodString: \"string\",\n ZodNumber: \"number\",\n ZodBigInt: \"integer\",\n ZodBoolean: \"boolean\",\n ZodNull: \"null\"\n};\nfunction parseUnionDef(def, refs) {\n if (refs.target === \"openApi3\")\n return asAnyOf(def, refs);\n const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n if (options.every((x) => (x._def.typeName in primitiveMappings) && (!x._def.checks || !x._def.checks.length))) {\n const types2 = options.reduce((types3, x) => {\n const type = primitiveMappings[x._def.typeName];\n return type && !types3.includes(type) ? [...types3, type] : types3;\n }, []);\n return {\n type: types2.length > 1 ? types2 : types2[0]\n };\n } else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n const types2 = options.reduce((acc, x) => {\n const type = typeof x._def.value;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return [...acc, type];\n case \"bigint\":\n return [...acc, \"integer\"];\n case \"object\":\n if (x._def.value === null)\n return [...acc, \"null\"];\n case \"symbol\":\n case \"undefined\":\n case \"function\":\n default:\n return acc;\n }\n }, []);\n if (types2.length === options.length) {\n const uniqueTypes = types2.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce((acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n }, [])\n };\n }\n } else if (options.every((x) => x._def.typeName === \"ZodEnum\")) {\n return {\n type: \"string\",\n enum: options.reduce((acc, x) => [\n ...acc,\n ...x._def.values.filter((x2) => !acc.includes(x2))\n ], [])\n };\n }\n return asAnyOf(def, refs);\n}\nvar asAnyOf = (def, refs) => {\n const anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", `${i}`]\n })).filter((x) => !!x && (!refs.strictUnions || typeof x === \"object\" && Object.keys(x).length > 0));\n return anyOf.length ? { anyOf } : undefined;\n};\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js\nfunction parseNullableDef(def, refs) {\n if ([\"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodNull\"].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {\n if (refs.target === \"openApi3\") {\n return {\n type: primitiveMappings[def.innerType._def.typeName],\n nullable: true\n };\n }\n return {\n type: [\n primitiveMappings[def.innerType._def.typeName],\n \"null\"\n ]\n };\n }\n if (refs.target === \"openApi3\") {\n const base2 = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath]\n });\n if (base2 && \"$ref\" in base2)\n return { allOf: [base2], nullable: true };\n return base2 && { ...base2, nullable: true };\n }\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"0\"]\n });\n return base && { anyOf: [base, { type: \"null\" }] };\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/number.js\nfunction parseNumberDef(def, refs) {\n const res = {\n type: \"number\"\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"int\":\n res.type = \"integer\";\n addErrorMessage(res, \"type\", check.message, refs);\n break;\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n } else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n } else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n } else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n } else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/object.js\nfunction parseObjectDef(def, refs) {\n const forceOptionalIntoNullable = refs.target === \"openAi\";\n const result = {\n type: \"object\",\n properties: {}\n };\n const required = [];\n const shape = def.shape();\n for (const propName in shape) {\n let propDef = shape[propName];\n if (propDef === undefined || propDef._def === undefined) {\n continue;\n }\n let propOptional = safeIsOptional(propDef);\n if (propOptional && forceOptionalIntoNullable) {\n if (propDef instanceof ZodOptional) {\n propDef = propDef._def.innerType;\n }\n if (!propDef.isNullable()) {\n propDef = propDef.nullable();\n }\n propOptional = false;\n }\n const parsedDef = parseDef(propDef._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", propName],\n propertyPath: [...refs.currentPath, \"properties\", propName]\n });\n if (parsedDef === undefined) {\n continue;\n }\n result.properties[propName] = parsedDef;\n if (!propOptional) {\n required.push(propName);\n }\n }\n if (required.length) {\n result.required = required;\n }\n const additionalProperties = decideAdditionalProperties(def, refs);\n if (additionalProperties !== undefined) {\n result.additionalProperties = additionalProperties;\n }\n return result;\n}\nfunction decideAdditionalProperties(def, refs) {\n if (def.catchall._def.typeName !== \"ZodNever\") {\n return parseDef(def.catchall._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"]\n });\n }\n switch (def.unknownKeys) {\n case \"passthrough\":\n return refs.allowedAdditionalProperties;\n case \"strict\":\n return refs.rejectedAdditionalProperties;\n case \"strip\":\n return refs.removeAdditionalStrategy === \"strict\" ? refs.allowedAdditionalProperties : refs.rejectedAdditionalProperties;\n }\n}\nfunction safeIsOptional(schema) {\n try {\n return schema.isOptional();\n } catch {\n return true;\n }\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/optional.js\nvar parseOptionalDef = (def, refs) => {\n if (refs.currentPath.toString() === refs.propertyPath?.toString()) {\n return parseDef(def.innerType._def, refs);\n }\n const innerSchema = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"1\"]\n });\n return innerSchema ? {\n anyOf: [\n {\n not: {}\n },\n innerSchema\n ]\n } : {};\n};\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js\nvar parsePipelineDef = (def, refs) => {\n if (refs.pipeStrategy === \"input\") {\n return parseDef(def.in._def, refs);\n } else if (refs.pipeStrategy === \"output\") {\n return parseDef(def.out._def, refs);\n }\n const a = parseDef(def.in._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"]\n });\n const b = parseDef(def.out._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", a ? \"1\" : \"0\"]\n });\n return {\n allOf: [a, b].filter((x) => x !== undefined)\n };\n};\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/promise.js\nfunction parsePromiseDef(def, refs) {\n return parseDef(def.type._def, refs);\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/set.js\nfunction parseSetDef(def, refs) {\n const items = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"]\n });\n const schema = {\n type: \"array\",\n uniqueItems: true,\n items\n };\n if (def.minSize) {\n setResponseValueAndErrors(schema, \"minItems\", def.minSize.value, def.minSize.message, refs);\n }\n if (def.maxSize) {\n setResponseValueAndErrors(schema, \"maxItems\", def.maxSize.value, def.maxSize.message, refs);\n }\n return schema;\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js\nfunction parseTupleDef(def, refs) {\n if (def.rest) {\n return {\n type: \"array\",\n minItems: def.items.length,\n items: def.items.map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`]\n })).reduce((acc, x) => x === undefined ? acc : [...acc, x], []),\n additionalItems: parseDef(def.rest._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalItems\"]\n })\n };\n } else {\n return {\n type: \"array\",\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items.map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`]\n })).reduce((acc, x) => x === undefined ? acc : [...acc, x], [])\n };\n }\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js\nfunction parseUndefinedDef() {\n return {\n not: {}\n };\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js\nfunction parseUnknownDef() {\n return {};\n}\n\n// ../node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js\nvar parseReadonlyDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n\n// ../node_modules/zod-to-json-schema/dist/esm/selectParser.js\nvar selectParser = (def, typeName, refs) => {\n switch (typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNumber:\n return parseNumberDef(def, refs);\n case ZodFirstPartyTypeKind.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return parseBigintDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUndefined:\n return parseUndefinedDef();\n case ZodFirstPartyTypeKind.ZodNull:\n return parseNullDef(refs);\n case ZodFirstPartyTypeKind.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLiteral:\n return parseLiteralDef(def, refs);\n case ZodFirstPartyTypeKind.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLazy:\n return () => def.getter()._def;\n case ZodFirstPartyTypeKind.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNaN:\n case ZodFirstPartyTypeKind.ZodNever:\n return parseNeverDef();\n case ZodFirstPartyTypeKind.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind.ZodAny:\n return parseAnyDef();\n case ZodFirstPartyTypeKind.ZodUnknown:\n return parseUnknownDef();\n case ZodFirstPartyTypeKind.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind.ZodFunction:\n case ZodFirstPartyTypeKind.ZodVoid:\n case ZodFirstPartyTypeKind.ZodSymbol:\n return;\n default:\n return ((_) => {\n return;\n })(typeName);\n }\n};\n\n// ../node_modules/zod-to-json-schema/dist/esm/parseDef.js\nfunction parseDef(def, refs, forceResolution = false) {\n const seenItem = refs.seen.get(def);\n if (refs.override) {\n const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n if (seenSchema !== undefined) {\n return seenSchema;\n }\n }\n const newItem = { def, path: refs.currentPath, jsonSchema: undefined };\n refs.seen.set(def, newItem);\n const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n const jsonSchema = typeof jsonSchemaOrGetter === \"function\" ? parseDef(jsonSchemaOrGetter(), refs) : jsonSchemaOrGetter;\n if (jsonSchema) {\n addMeta(def, refs, jsonSchema);\n }\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema, def, refs);\n newItem.jsonSchema = jsonSchema;\n return postProcessResult;\n }\n newItem.jsonSchema = jsonSchema;\n return jsonSchema;\n}\nvar get$ref = (item, refs) => {\n switch (refs.$refStrategy) {\n case \"root\":\n return { $ref: item.path.join(\"/\") };\n case \"relative\":\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case \"none\":\n case \"seen\": {\n if (item.path.length < refs.currentPath.length && item.path.every((value, index) => refs.currentPath[index] === value)) {\n console.warn(`Recursive reference detected at ${refs.currentPath.join(\"/\")}! Defaulting to any`);\n return {};\n }\n return refs.$refStrategy === \"seen\" ? {} : undefined;\n }\n }\n};\nvar getRelativePath = (pathA, pathB) => {\n let i = 0;\n for (;i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i])\n break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\nvar addMeta = (def, refs, jsonSchema) => {\n if (def.description) {\n jsonSchema.description = def.description;\n if (refs.markdownDescription) {\n jsonSchema.markdownDescription = def.description;\n }\n }\n return jsonSchema;\n};\n// ../node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js\nvar zodToJsonSchema = (schema, options) => {\n const refs = getRefs(options);\n const definitions = typeof options === \"object\" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name2, schema2]) => ({\n ...acc,\n [name2]: parseDef(schema2._def, {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name2]\n }, true) ?? {}\n }), {}) : undefined;\n const name = typeof options === \"string\" ? options : options?.nameStrategy === \"title\" ? undefined : options?.name;\n const main = parseDef(schema._def, name === undefined ? refs : {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name]\n }, false) ?? {};\n const title = typeof options === \"object\" && options.name !== undefined && options.nameStrategy === \"title\" ? options.name : undefined;\n if (title !== undefined) {\n main.title = title;\n }\n const combined = name === undefined ? definitions ? {\n ...main,\n [refs.definitionPath]: definitions\n } : main : {\n $ref: [\n ...refs.$refStrategy === \"relative\" ? [] : refs.basePath,\n refs.definitionPath,\n name\n ].join(\"/\"),\n [refs.definitionPath]: {\n ...definitions,\n [name]: main\n }\n };\n if (refs.target === \"jsonSchema7\") {\n combined.$schema = \"http://json-schema.org/draft-07/schema#\";\n } else if (refs.target === \"jsonSchema2019-09\" || refs.target === \"openAi\") {\n combined.$schema = \"https://json-schema.org/draft/2019-09/schema#\";\n }\n if (refs.target === \"openAi\" && ((\"anyOf\" in combined) || (\"oneOf\" in combined) || (\"allOf\" in combined) || (\"type\" in combined) && Array.isArray(combined.type))) {\n console.warn(\"Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.\");\n }\n return combined;\n};\n// ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js\nvar McpZodTypeKind;\n(function(McpZodTypeKind2) {\n McpZodTypeKind2[\"Completable\"] = \"McpCompletable\";\n})(McpZodTypeKind || (McpZodTypeKind = {}));\n\nclass Completable extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nCompletable.create = (type, params) => {\n return new Completable({\n type,\n typeName: McpZodTypeKind.Completable,\n complete: params.complete,\n ...processCreateParams2(params)\n });\n};\nfunction processCreateParams2(params) {\n if (!params)\n return {};\n const { errorMap: errorMap2, invalid_type_error, required_error, description } = params;\n if (errorMap2 && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap2)\n return { errorMap: errorMap2, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== undefined ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== undefined ? message : required_error) !== null && _a !== undefined ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== undefined ? message : invalid_type_error) !== null && _b !== undefined ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\n\n// ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js\nclass McpServer {\n constructor(serverInfo, options) {\n this._registeredResources = {};\n this._registeredResourceTemplates = {};\n this._registeredTools = {};\n this._registeredPrompts = {};\n this._toolHandlersInitialized = false;\n this._completionHandlerInitialized = false;\n this._resourceHandlersInitialized = false;\n this._promptHandlersInitialized = false;\n this.server = new Server(serverInfo, options);\n }\n async connect(transport) {\n return await this.server.connect(transport);\n }\n async close() {\n await this.server.close();\n }\n setToolRequestHandlers() {\n if (this._toolHandlersInitialized) {\n return;\n }\n this.server.assertCanSetRequestHandler(ListToolsRequestSchema.shape.method.value);\n this.server.assertCanSetRequestHandler(CallToolRequestSchema.shape.method.value);\n this.server.registerCapabilities({\n tools: {\n listChanged: true\n }\n });\n this.server.setRequestHandler(ListToolsRequestSchema, () => ({\n tools: Object.entries(this._registeredTools).filter(([, tool]) => tool.enabled).map(([name, tool]) => {\n const toolDefinition = {\n name,\n title: tool.title,\n description: tool.description,\n inputSchema: tool.inputSchema ? zodToJsonSchema(tool.inputSchema, {\n strictUnions: true\n }) : EMPTY_OBJECT_JSON_SCHEMA,\n annotations: tool.annotations\n };\n if (tool.outputSchema) {\n toolDefinition.outputSchema = zodToJsonSchema(tool.outputSchema, { strictUnions: true });\n }\n return toolDefinition;\n })\n }));\n this.server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {\n const tool = this._registeredTools[request.params.name];\n if (!tool) {\n throw new McpError(ErrorCode.InvalidParams, `Tool ${request.params.name} not found`);\n }\n if (!tool.enabled) {\n throw new McpError(ErrorCode.InvalidParams, `Tool ${request.params.name} disabled`);\n }\n let result;\n if (tool.inputSchema) {\n const parseResult = await tool.inputSchema.safeParseAsync(request.params.arguments);\n if (!parseResult.success) {\n throw new McpError(ErrorCode.InvalidParams, `Invalid arguments for tool ${request.params.name}: ${parseResult.error.message}`);\n }\n const args = parseResult.data;\n const cb = tool.callback;\n try {\n result = await Promise.resolve(cb(args, extra));\n } catch (error) {\n result = {\n content: [\n {\n type: \"text\",\n text: error instanceof Error ? error.message : String(error)\n }\n ],\n isError: true\n };\n }\n } else {\n const cb = tool.callback;\n try {\n result = await Promise.resolve(cb(extra));\n } catch (error) {\n result = {\n content: [\n {\n type: \"text\",\n text: error instanceof Error ? error.message : String(error)\n }\n ],\n isError: true\n };\n }\n }\n if (tool.outputSchema && !result.isError) {\n if (!result.structuredContent) {\n throw new McpError(ErrorCode.InvalidParams, `Tool ${request.params.name} has an output schema but no structured content was provided`);\n }\n const parseResult = await tool.outputSchema.safeParseAsync(result.structuredContent);\n if (!parseResult.success) {\n throw new McpError(ErrorCode.InvalidParams, `Invalid structured content for tool ${request.params.name}: ${parseResult.error.message}`);\n }\n }\n return result;\n });\n this._toolHandlersInitialized = true;\n }\n setCompletionRequestHandler() {\n if (this._completionHandlerInitialized) {\n return;\n }\n this.server.assertCanSetRequestHandler(CompleteRequestSchema.shape.method.value);\n this.server.registerCapabilities({\n completions: {}\n });\n this.server.setRequestHandler(CompleteRequestSchema, async (request) => {\n switch (request.params.ref.type) {\n case \"ref/prompt\":\n return this.handlePromptCompletion(request, request.params.ref);\n case \"ref/resource\":\n return this.handleResourceCompletion(request, request.params.ref);\n default:\n throw new McpError(ErrorCode.InvalidParams, `Invalid completion reference: ${request.params.ref}`);\n }\n });\n this._completionHandlerInitialized = true;\n }\n async handlePromptCompletion(request, ref) {\n const prompt = this._registeredPrompts[ref.name];\n if (!prompt) {\n throw new McpError(ErrorCode.InvalidParams, `Prompt ${ref.name} not found`);\n }\n if (!prompt.enabled) {\n throw new McpError(ErrorCode.InvalidParams, `Prompt ${ref.name} disabled`);\n }\n if (!prompt.argsSchema) {\n return EMPTY_COMPLETION_RESULT;\n }\n const field = prompt.argsSchema.shape[request.params.argument.name];\n if (!(field instanceof Completable)) {\n return EMPTY_COMPLETION_RESULT;\n }\n const def = field._def;\n const suggestions = await def.complete(request.params.argument.value, request.params.context);\n return createCompletionResult(suggestions);\n }\n async handleResourceCompletion(request, ref) {\n const template = Object.values(this._registeredResourceTemplates).find((t) => t.resourceTemplate.uriTemplate.toString() === ref.uri);\n if (!template) {\n if (this._registeredResources[ref.uri]) {\n return EMPTY_COMPLETION_RESULT;\n }\n throw new McpError(ErrorCode.InvalidParams, `Resource template ${request.params.ref.uri} not found`);\n }\n const completer = template.resourceTemplate.completeCallback(request.params.argument.name);\n if (!completer) {\n return EMPTY_COMPLETION_RESULT;\n }\n const suggestions = await completer(request.params.argument.value, request.params.context);\n return createCompletionResult(suggestions);\n }\n setResourceRequestHandlers() {\n if (this._resourceHandlersInitialized) {\n return;\n }\n this.server.assertCanSetRequestHandler(ListResourcesRequestSchema.shape.method.value);\n this.server.assertCanSetRequestHandler(ListResourceTemplatesRequestSchema.shape.method.value);\n this.server.assertCanSetRequestHandler(ReadResourceRequestSchema.shape.method.value);\n this.server.registerCapabilities({\n resources: {\n listChanged: true\n }\n });\n this.server.setRequestHandler(ListResourcesRequestSchema, async (request, extra) => {\n const resources = Object.entries(this._registeredResources).filter(([_, resource]) => resource.enabled).map(([uri, resource]) => ({\n uri,\n name: resource.name,\n ...resource.metadata\n }));\n const templateResources = [];\n for (const template of Object.values(this._registeredResourceTemplates)) {\n if (!template.resourceTemplate.listCallback) {\n continue;\n }\n const result = await template.resourceTemplate.listCallback(extra);\n for (const resource of result.resources) {\n templateResources.push({\n ...template.metadata,\n ...resource\n });\n }\n }\n return { resources: [...resources, ...templateResources] };\n });\n this.server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => {\n const resourceTemplates = Object.entries(this._registeredResourceTemplates).map(([name, template]) => ({\n name,\n uriTemplate: template.resourceTemplate.uriTemplate.toString(),\n ...template.metadata\n }));\n return { resourceTemplates };\n });\n this.server.setRequestHandler(ReadResourceRequestSchema, async (request, extra) => {\n const uri = new URL(request.params.uri);\n const resource = this._registeredResources[uri.toString()];\n if (resource) {\n if (!resource.enabled) {\n throw new McpError(ErrorCode.InvalidParams, `Resource ${uri} disabled`);\n }\n return resource.readCallback(uri, extra);\n }\n for (const template of Object.values(this._registeredResourceTemplates)) {\n const variables = template.resourceTemplate.uriTemplate.match(uri.toString());\n if (variables) {\n return template.readCallback(uri, variables, extra);\n }\n }\n throw new McpError(ErrorCode.InvalidParams, `Resource ${uri} not found`);\n });\n this.setCompletionRequestHandler();\n this._resourceHandlersInitialized = true;\n }\n setPromptRequestHandlers() {\n if (this._promptHandlersInitialized) {\n return;\n }\n this.server.assertCanSetRequestHandler(ListPromptsRequestSchema.shape.method.value);\n this.server.assertCanSetRequestHandler(GetPromptRequestSchema.shape.method.value);\n this.server.registerCapabilities({\n prompts: {\n listChanged: true\n }\n });\n this.server.setRequestHandler(ListPromptsRequestSchema, () => ({\n prompts: Object.entries(this._registeredPrompts).filter(([, prompt]) => prompt.enabled).map(([name, prompt]) => {\n return {\n name,\n title: prompt.title,\n description: prompt.description,\n arguments: prompt.argsSchema ? promptArgumentsFromSchema(prompt.argsSchema) : undefined\n };\n })\n }));\n this.server.setRequestHandler(GetPromptRequestSchema, async (request, extra) => {\n const prompt = this._registeredPrompts[request.params.name];\n if (!prompt) {\n throw new McpError(ErrorCode.InvalidParams, `Prompt ${request.params.name} not found`);\n }\n if (!prompt.enabled) {\n throw new McpError(ErrorCode.InvalidParams, `Prompt ${request.params.name} disabled`);\n }\n if (prompt.argsSchema) {\n const parseResult = await prompt.argsSchema.safeParseAsync(request.params.arguments);\n if (!parseResult.success) {\n throw new McpError(ErrorCode.InvalidParams, `Invalid arguments for prompt ${request.params.name}: ${parseResult.error.message}`);\n }\n const args = parseResult.data;\n const cb = prompt.callback;\n return await Promise.resolve(cb(args, extra));\n } else {\n const cb = prompt.callback;\n return await Promise.resolve(cb(extra));\n }\n });\n this.setCompletionRequestHandler();\n this._promptHandlersInitialized = true;\n }\n resource(name, uriOrTemplate, ...rest) {\n let metadata;\n if (typeof rest[0] === \"object\") {\n metadata = rest.shift();\n }\n const readCallback = rest[0];\n if (typeof uriOrTemplate === \"string\") {\n if (this._registeredResources[uriOrTemplate]) {\n throw new Error(`Resource ${uriOrTemplate} is already registered`);\n }\n const registeredResource = this._createRegisteredResource(name, undefined, uriOrTemplate, metadata, readCallback);\n this.setResourceRequestHandlers();\n this.sendResourceListChanged();\n return registeredResource;\n } else {\n if (this._registeredResourceTemplates[name]) {\n throw new Error(`Resource template ${name} is already registered`);\n }\n const registeredResourceTemplate = this._createRegisteredResourceTemplate(name, undefined, uriOrTemplate, metadata, readCallback);\n this.setResourceRequestHandlers();\n this.sendResourceListChanged();\n return registeredResourceTemplate;\n }\n }\n registerResource(name, uriOrTemplate, config, readCallback) {\n if (typeof uriOrTemplate === \"string\") {\n if (this._registeredResources[uriOrTemplate]) {\n throw new Error(`Resource ${uriOrTemplate} is already registered`);\n }\n const registeredResource = this._createRegisteredResource(name, config.title, uriOrTemplate, config, readCallback);\n this.setResourceRequestHandlers();\n this.sendResourceListChanged();\n return registeredResource;\n } else {\n if (this._registeredResourceTemplates[name]) {\n throw new Error(`Resource template ${name} is already registered`);\n }\n const registeredResourceTemplate = this._createRegisteredResourceTemplate(name, config.title, uriOrTemplate, config, readCallback);\n this.setResourceRequestHandlers();\n this.sendResourceListChanged();\n return registeredResourceTemplate;\n }\n }\n _createRegisteredResource(name, title, uri, metadata, readCallback) {\n const registeredResource = {\n name,\n title,\n metadata,\n readCallback,\n enabled: true,\n disable: () => registeredResource.update({ enabled: false }),\n enable: () => registeredResource.update({ enabled: true }),\n remove: () => registeredResource.update({ uri: null }),\n update: (updates) => {\n if (typeof updates.uri !== \"undefined\" && updates.uri !== uri) {\n delete this._registeredResources[uri];\n if (updates.uri)\n this._registeredResources[updates.uri] = registeredResource;\n }\n if (typeof updates.name !== \"undefined\")\n registeredResource.name = updates.name;\n if (typeof updates.title !== \"undefined\")\n registeredResource.title = updates.title;\n if (typeof updates.metadata !== \"undefined\")\n registeredResource.metadata = updates.metadata;\n if (typeof updates.callback !== \"undefined\")\n registeredResource.readCallback = updates.callback;\n if (typeof updates.enabled !== \"undefined\")\n registeredResource.enabled = updates.enabled;\n this.sendResourceListChanged();\n }\n };\n this._registeredResources[uri] = registeredResource;\n return registeredResource;\n }\n _createRegisteredResourceTemplate(name, title, template, metadata, readCallback) {\n const registeredResourceTemplate = {\n resourceTemplate: template,\n title,\n metadata,\n readCallback,\n enabled: true,\n disable: () => registeredResourceTemplate.update({ enabled: false }),\n enable: () => registeredResourceTemplate.update({ enabled: true }),\n remove: () => registeredResourceTemplate.update({ name: null }),\n update: (updates) => {\n if (typeof updates.name !== \"undefined\" && updates.name !== name) {\n delete this._registeredResourceTemplates[name];\n if (updates.name)\n this._registeredResourceTemplates[updates.name] = registeredResourceTemplate;\n }\n if (typeof updates.title !== \"undefined\")\n registeredResourceTemplate.title = updates.title;\n if (typeof updates.template !== \"undefined\")\n registeredResourceTemplate.resourceTemplate = updates.template;\n if (typeof updates.metadata !== \"undefined\")\n registeredResourceTemplate.metadata = updates.metadata;\n if (typeof updates.callback !== \"undefined\")\n registeredResourceTemplate.readCallback = updates.callback;\n if (typeof updates.enabled !== \"undefined\")\n registeredResourceTemplate.enabled = updates.enabled;\n this.sendResourceListChanged();\n }\n };\n this._registeredResourceTemplates[name] = registeredResourceTemplate;\n return registeredResourceTemplate;\n }\n _createRegisteredPrompt(name, title, description, argsSchema, callback) {\n const registeredPrompt = {\n title,\n description,\n argsSchema: argsSchema === undefined ? undefined : exports_external.object(argsSchema),\n callback,\n enabled: true,\n disable: () => registeredPrompt.update({ enabled: false }),\n enable: () => registeredPrompt.update({ enabled: true }),\n remove: () => registeredPrompt.update({ name: null }),\n update: (updates) => {\n if (typeof updates.name !== \"undefined\" && updates.name !== name) {\n delete this._registeredPrompts[name];\n if (updates.name)\n this._registeredPrompts[updates.name] = registeredPrompt;\n }\n if (typeof updates.title !== \"undefined\")\n registeredPrompt.title = updates.title;\n if (typeof updates.description !== \"undefined\")\n registeredPrompt.description = updates.description;\n if (typeof updates.argsSchema !== \"undefined\")\n registeredPrompt.argsSchema = exports_external.object(updates.argsSchema);\n if (typeof updates.callback !== \"undefined\")\n registeredPrompt.callback = updates.callback;\n if (typeof updates.enabled !== \"undefined\")\n registeredPrompt.enabled = updates.enabled;\n this.sendPromptListChanged();\n }\n };\n this._registeredPrompts[name] = registeredPrompt;\n return registeredPrompt;\n }\n _createRegisteredTool(name, title, description, inputSchema, outputSchema, annotations, callback) {\n const registeredTool = {\n title,\n description,\n inputSchema: inputSchema === undefined ? undefined : exports_external.object(inputSchema),\n outputSchema: outputSchema === undefined ? undefined : exports_external.object(outputSchema),\n annotations,\n callback,\n enabled: true,\n disable: () => registeredTool.update({ enabled: false }),\n enable: () => registeredTool.update({ enabled: true }),\n remove: () => registeredTool.update({ name: null }),\n update: (updates) => {\n if (typeof updates.name !== \"undefined\" && updates.name !== name) {\n delete this._registeredTools[name];\n if (updates.name)\n this._registeredTools[updates.name] = registeredTool;\n }\n if (typeof updates.title !== \"undefined\")\n registeredTool.title = updates.title;\n if (typeof updates.description !== \"undefined\")\n registeredTool.description = updates.description;\n if (typeof updates.paramsSchema !== \"undefined\")\n registeredTool.inputSchema = exports_external.object(updates.paramsSchema);\n if (typeof updates.callback !== \"undefined\")\n registeredTool.callback = updates.callback;\n if (typeof updates.annotations !== \"undefined\")\n registeredTool.annotations = updates.annotations;\n if (typeof updates.enabled !== \"undefined\")\n registeredTool.enabled = updates.enabled;\n this.sendToolListChanged();\n }\n };\n this._registeredTools[name] = registeredTool;\n this.setToolRequestHandlers();\n this.sendToolListChanged();\n return registeredTool;\n }\n tool(name, ...rest) {\n if (this._registeredTools[name]) {\n throw new Error(`Tool ${name} is already registered`);\n }\n let description;\n let inputSchema;\n let outputSchema;\n let annotations;\n if (typeof rest[0] === \"string\") {\n description = rest.shift();\n }\n if (rest.length > 1) {\n const firstArg = rest[0];\n if (isZodRawShape(firstArg)) {\n inputSchema = rest.shift();\n if (rest.length > 1 && typeof rest[0] === \"object\" && rest[0] !== null && !isZodRawShape(rest[0])) {\n annotations = rest.shift();\n }\n } else if (typeof firstArg === \"object\" && firstArg !== null) {\n annotations = rest.shift();\n }\n }\n const callback = rest[0];\n return this._createRegisteredTool(name, undefined, description, inputSchema, outputSchema, annotations, callback);\n }\n registerTool(name, config, cb) {\n if (this._registeredTools[name]) {\n throw new Error(`Tool ${name} is already registered`);\n }\n const { title, description, inputSchema, outputSchema, annotations } = config;\n return this._createRegisteredTool(name, title, description, inputSchema, outputSchema, annotations, cb);\n }\n prompt(name, ...rest) {\n if (this._registeredPrompts[name]) {\n throw new Error(`Prompt ${name} is already registered`);\n }\n let description;\n if (typeof rest[0] === \"string\") {\n description = rest.shift();\n }\n let argsSchema;\n if (rest.length > 1) {\n argsSchema = rest.shift();\n }\n const cb = rest[0];\n const registeredPrompt = this._createRegisteredPrompt(name, undefined, description, argsSchema, cb);\n this.setPromptRequestHandlers();\n this.sendPromptListChanged();\n return registeredPrompt;\n }\n registerPrompt(name, config, cb) {\n if (this._registeredPrompts[name]) {\n throw new Error(`Prompt ${name} is already registered`);\n }\n const { title, description, argsSchema } = config;\n const registeredPrompt = this._createRegisteredPrompt(name, title, description, argsSchema, cb);\n this.setPromptRequestHandlers();\n this.sendPromptListChanged();\n return registeredPrompt;\n }\n isConnected() {\n return this.server.transport !== undefined;\n }\n sendResourceListChanged() {\n if (this.isConnected()) {\n this.server.sendResourceListChanged();\n }\n }\n sendToolListChanged() {\n if (this.isConnected()) {\n this.server.sendToolListChanged();\n }\n }\n sendPromptListChanged() {\n if (this.isConnected()) {\n this.server.sendPromptListChanged();\n }\n }\n}\nvar EMPTY_OBJECT_JSON_SCHEMA = {\n type: \"object\",\n properties: {}\n};\nfunction isZodRawShape(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n const isEmptyObject = Object.keys(obj).length === 0;\n return isEmptyObject || Object.values(obj).some(isZodTypeLike);\n}\nfunction isZodTypeLike(value) {\n return value !== null && typeof value === \"object\" && \"parse\" in value && typeof value.parse === \"function\" && \"safeParse\" in value && typeof value.safeParse === \"function\";\n}\nfunction promptArgumentsFromSchema(schema) {\n return Object.entries(schema.shape).map(([name, field]) => ({\n name,\n description: field.description,\n required: !field.isOptional()\n }));\n}\nfunction createCompletionResult(suggestions) {\n return {\n completion: {\n values: suggestions.slice(0, 100),\n total: suggestions.length,\n hasMore: suggestions.length > 100\n }\n };\n}\nvar EMPTY_COMPLETION_RESULT = {\n completion: {\n values: [],\n hasMore: false\n }\n};\n\n// ../src/services/mcp/createSdkMcpServer.ts\nfunction tool(name, description, inputSchema, handler) {\n return { name, description, inputSchema, handler };\n}\nfunction createSdkMcpServer(options) {\n const server = new McpServer({\n name: options.name,\n version: options.version ?? \"1.0.0\"\n }, {\n capabilities: {\n tools: options.tools ? {} : undefined\n }\n });\n if (options.tools) {\n options.tools.forEach((toolDef) => {\n server.tool(toolDef.name, toolDef.description, toolDef.inputSchema, toolDef.handler);\n });\n }\n return {\n type: \"sdk\",\n name: options.name,\n instance: server\n };\n}\n\n// ../src/entrypoints/agentSdk.ts\nfunction query({\n prompt,\n options\n}) {\n const { systemPrompt, settingSources, ...rest } = options ?? {};\n let customSystemPrompt;\n let appendSystemPrompt;\n if (systemPrompt === undefined) {\n customSystemPrompt = \"\";\n } else if (typeof systemPrompt === \"string\") {\n customSystemPrompt = systemPrompt;\n } else if (systemPrompt.type === \"preset\") {\n appendSystemPrompt = systemPrompt.append;\n }\n let pathToClaudeCodeExecutable = rest.pathToClaudeCodeExecutable;\n if (!pathToClaudeCodeExecutable) {\n const filename = fileURLToPath(import.meta.url);\n const dirname2 = join3(filename, \"..\");\n pathToClaudeCodeExecutable = join3(dirname2, \"cli.js\");\n }\n process.env.CLAUDE_AGENT_SDK_VERSION = \"0.1.30\";\n const {\n abortController = createAbortController(),\n additionalDirectories = [],\n agents,\n allowedTools = [],\n canUseTool,\n continue: continueConversation,\n cwd: cwd2,\n disallowedTools = [],\n env,\n executable = isRunningWithBun() ? \"bun\" : \"node\",\n executableArgs = [],\n extraArgs = {},\n fallbackModel,\n forkSession,\n hooks,\n includePartialMessages,\n maxThinkingTokens,\n maxTurns,\n maxBudgetUsd,\n mcpServers,\n model,\n permissionMode = \"default\",\n allowDangerouslySkipPermissions = false,\n permissionPromptToolName,\n plugins,\n resume,\n resumeSessionAt,\n stderr,\n strictMcpConfig\n } = rest;\n let processEnv = env;\n if (!processEnv) {\n processEnv = { ...process.env };\n }\n if (!processEnv.CLAUDE_CODE_ENTRYPOINT) {\n processEnv.CLAUDE_CODE_ENTRYPOINT = \"sdk-ts\";\n }\n if (!pathToClaudeCodeExecutable) {\n throw new Error(\"pathToClaudeCodeExecutable is required\");\n }\n const allMcpServers = {};\n const sdkMcpServers = new Map;\n if (mcpServers) {\n for (const [name, config] of Object.entries(mcpServers)) {\n if (config.type === \"sdk\" && \"instance\" in config) {\n sdkMcpServers.set(name, config.instance);\n allMcpServers[name] = {\n type: \"sdk\",\n name\n };\n } else {\n allMcpServers[name] = config;\n }\n }\n }\n const isSingleUserTurn = typeof prompt === \"string\";\n const transport = new ProcessTransport({\n abortController,\n additionalDirectories,\n agents,\n cwd: cwd2,\n executable,\n executableArgs,\n extraArgs,\n pathToClaudeCodeExecutable,\n env: processEnv,\n forkSession,\n stderr,\n customSystemPrompt,\n appendSystemPrompt,\n maxThinkingTokens,\n maxTurns,\n maxBudgetUsd,\n model,\n fallbackModel,\n permissionMode,\n allowDangerouslySkipPermissions,\n permissionPromptToolName,\n continueConversation,\n resume,\n resumeSessionAt,\n settingSources: settingSources ?? [],\n allowedTools,\n disallowedTools,\n mcpServers: allMcpServers,\n strictMcpConfig,\n canUseTool: !!canUseTool,\n hooks: !!hooks,\n includePartialMessages,\n plugins\n });\n const queryInstance = new Query(transport, isSingleUserTurn, canUseTool, hooks, abortController, sdkMcpServers);\n if (typeof prompt === \"string\") {\n transport.write(JSON.stringify({\n type: \"user\",\n session_id: \"\",\n message: {\n role: \"user\",\n content: [{ type: \"text\", text: prompt }]\n },\n parent_tool_use_id: null\n }) + `\n`);\n } else {\n queryInstance.streamInput(prompt);\n }\n return queryInstance;\n}\nexport {\n tool,\n query,\n createSdkMcpServer,\n HOOK_EVENTS,\n EXIT_REASONS,\n AbortError\n};\n",
|
|
15
|
-
"/**\n * Text-based Tool Calling System\n * Enables Vercel AI SDK tools to work with Claude Agent SDK\n * by converting tool calls to/from XML text format\n */\n\nimport type { LanguageModelV2ToolChoice } from '@ai-sdk/provider';\n\n/**\n * Tool definition from Vercel AI SDK\n */\nexport interface ToolDefinition {\n type: 'function';\n name: string;\n description?: string;\n parameters: {\n type: 'object';\n properties: Record<string, unknown>;\n required?: string[];\n additionalProperties?: boolean;\n };\n}\n\n/**\n * Parsed tool call from Claude's text response\n */\nexport interface ParsedToolCall {\n toolName: string;\n toolCallId: string;\n arguments: Record<string, unknown>;\n}\n\n/**\n * Parsed content block (text or tool call)\n */\nexport type ParsedContentBlock =\n | { type: 'text'; text: string }\n | { type: 'tool_use'; toolName: string; toolCallId: string; arguments: Record<string, unknown> };\n\n/**\n * Convert Vercel AI SDK tools to XML description for system prompt\n */\nexport function generateToolsSystemPrompt(tools: Record<string, ToolDefinition>): string {\n const toolDescriptions = Object.entries(tools)\n .map(([name, tool]) => {\n const params = tool.parameters.properties || {};\n const required = tool.parameters.required || [];\n\n const paramLines = Object.entries(params).map(([paramName, paramSchema]: [string, any]) => {\n const isRequired = required.includes(paramName);\n const type = paramSchema.type || 'any';\n const description = paramSchema.description || '';\n const requiredTag = isRequired ? ', **REQUIRED**' : ', optional';\n return ` - ${paramName} (${type}${requiredTag}): ${description}`;\n });\n\n return `## ${name}\n\n${tool.description || 'No description available'}\n\nParameters:\n${paramLines.length > 0 ? paramLines.join('\\n') : ' (no parameters)'}`;\n })\n .join('\\n\\n');\n\n return `# Available Tools\n\nYou have access to the following tools. To use a tool, output it in this XML format:\n\n<tool_use>\n<tool_name>ToolName</tool_name>\n<tool_call_id>unique_id</tool_call_id>\n<arguments>\n{\"param1\": \"value1\", \"param2\": \"value2\"}\n</arguments>\n</tool_use>\n\n**CRITICAL RULES**:\n1. **ALWAYS wrap ALL text in <text> tags** - this is REQUIRED for every response\n2. Generate a unique tool_call_id for each tool call (e.g., call_1, call_2, etc.)\n3. Put arguments in valid JSON format inside <arguments> tags\n4. **ALWAYS provide ALL required parameters** - never use empty object {}\n5. **Infer missing parameter values from context** if not explicitly stated\n6. You can call multiple tools in one response\n7. You can mix text and tool calls in any order\n\n**Example response format**:\n<text>\nLet me read the file first...\n</text>\n\n<tool_use>\n<tool_name>Read</tool_name>\n<tool_call_id>call_1</tool_call_id>\n<arguments>\n{\"file_path\": \"/path/to/file.ts\"}\n</arguments>\n</tool_use>\n\n<text>\nNow analyzing the results...\n</text>\n\n# Tools\n\n${toolDescriptions}`;\n}\n\n/**\n * Parse XML-formatted tool calls from Claude's response\n */\nexport function parseToolCalls(text: string): ParsedToolCall[] {\n const toolCallRegex =\n /<tool_use>\\s*<tool_name>(.*?)<\\/tool_name>\\s*<tool_call_id>(.*?)<\\/tool_call_id>\\s*<arguments>(.*?)<\\/arguments>\\s*<\\/tool_use>/gs;\n\n const calls: ParsedToolCall[] = [];\n let match;\n\n while ((match = toolCallRegex.exec(text)) !== null) {\n try {\n calls.push({\n toolName: match[1].trim(),\n toolCallId: match[2].trim(),\n arguments: JSON.parse(match[3].trim()),\n });\n } catch (error) {\n console.error('Failed to parse tool call arguments:', match[3], error);\n // Skip invalid tool calls\n }\n }\n\n return calls;\n}\n\n/**\n * Parse content blocks (text and tool calls) from Claude's response\n * Maintains order of text and tool calls\n */\nexport function parseContentBlocks(text: string): ParsedContentBlock[] {\n const blocks: ParsedContentBlock[] = [];\n\n // Combined regex to match both text and tool_use blocks\n const blockRegex =\n /<text>(.*?)<\\/text>|<tool_use>\\s*<tool_name>(.*?)<\\/tool_name>\\s*<tool_call_id>(.*?)<\\/tool_call_id>\\s*<arguments>(.*?)<\\/arguments>\\s*<\\/tool_use>/gs;\n\n let match;\n while ((match = blockRegex.exec(text)) !== null) {\n if (match[1] !== undefined) {\n // Text block\n const textContent = match[1].trim();\n if (textContent) {\n blocks.push({\n type: 'text',\n text: textContent,\n });\n }\n } else if (match[2] !== undefined) {\n // Tool use block\n try {\n blocks.push({\n type: 'tool_use',\n toolName: match[2].trim(),\n toolCallId: match[3].trim(),\n arguments: JSON.parse(match[4].trim()),\n });\n } catch (error) {\n console.error('Failed to parse tool call arguments:', match[4], error);\n // Skip invalid tool calls\n }\n }\n }\n\n // If no blocks were parsed and there's content, treat entire text as text block\n if (blocks.length === 0 && text.trim()) {\n blocks.push({\n type: 'text',\n text: text.trim(),\n });\n }\n\n return blocks;\n}\n\n/**\n * Format tool result for sending back to Claude\n */\nexport function formatToolResult(toolCallId: string, result: unknown, isError = false): string {\n if (isError) {\n return `<tool_result>\n<tool_call_id>${toolCallId}</tool_call_id>\n<error>\n${typeof result === 'string' ? result : JSON.stringify(result)}\n</error>\n</tool_result>`;\n }\n\n return `<tool_result>\n<tool_call_id>${toolCallId}</tool_call_id>\n<content>\n${typeof result === 'string' ? result : JSON.stringify(result, null, 2)}\n</content>\n</tool_result>`;\n}\n",
|
|
16
|
-
"/**\n * Streaming XML Parser for Text-based Tool Calls\n * Parses XML tags incrementally as text streams in\n * Emits streaming events for text and tool calls\n */\n\n// Buffer safety margins to handle split tags\nconst TEXT_TAG_SAFETY_MARGIN = 10; // Reserve chars for \"</text>\"\nconst ARGUMENTS_TAG_SAFETY_MARGIN = 15; // Reserve chars for \"</arguments>\"\n\nexport type StreamingXMLEvent =\n | { type: 'text-start' }\n | { type: 'text-delta'; delta: string }\n | { type: 'text-end' }\n | { type: 'tool-input-start'; toolCallId: string; toolName: string }\n | { type: 'tool-input-delta'; toolCallId: string; delta: string }\n | { type: 'tool-input-end'; toolCallId: string }\n | {\n type: 'tool-call-complete';\n toolCallId: string;\n toolName: string;\n arguments: Record<string, unknown>;\n };\n\ntype ParserState =\n | { type: 'idle' }\n | { type: 'in-text' }\n | {\n type: 'in-tool';\n toolName: string | null;\n toolCallId: string | null;\n argsBuffer: string;\n tagBuffer: string;\n };\n\n/**\n * Streaming XML Parser\n * Processes text chunks and emits events as XML tags are detected\n */\nexport class StreamingXMLParser {\n private state: ParserState = { type: 'idle' };\n private buffer = '';\n private eventQueue: StreamingXMLEvent[] = [];\n\n /**\n * Process a chunk of text and emit events\n */\n *processChunk(chunk: string): Generator<StreamingXMLEvent> {\n this.buffer += chunk;\n\n // Process buffer until no more complete tags can be extracted\n while (true) {\n yield* this.drainEventQueue();\n\n const result = this.processBuffer();\n if (!result) break;\n yield result;\n }\n\n yield* this.drainEventQueue();\n }\n\n /**\n * Drain and yield all queued events\n */\n private *drainEventQueue(): Generator<StreamingXMLEvent> {\n while (this.eventQueue.length > 0) {\n yield this.eventQueue.shift()!;\n }\n }\n\n /**\n * Flush remaining content and emit final events\n */\n *flush(): Generator<StreamingXMLEvent> {\n if (this.state.type === 'in-text') {\n // Emit any remaining buffered text (held back for safety margin)\n if (this.buffer) {\n yield { type: 'text-delta', delta: this.buffer };\n }\n yield { type: 'text-end' };\n }\n\n yield* this.drainEventQueue();\n\n // Reset state\n this.state = { type: 'idle' };\n this.buffer = '';\n }\n\n private processBuffer(): StreamingXMLEvent | null {\n if (this.state.type === 'idle') {\n // Look for <text> or <tool_use> opening tag\n const textMatch = this.buffer.match(/^[^<]*<text>/);\n const toolMatch = this.buffer.match(/^[^<]*<tool_use>/);\n\n if (textMatch) {\n this.buffer = this.buffer.slice(textMatch[0].length);\n this.state = { type: 'in-text' };\n return { type: 'text-start' };\n }\n\n if (toolMatch) {\n this.buffer = this.buffer.slice(toolMatch[0].length);\n this.state = {\n type: 'in-tool',\n toolName: null,\n toolCallId: null,\n argsBuffer: '',\n tagBuffer: '',\n };\n return this.processBuffer();\n }\n\n // Skip any content before tags\n const nextTag = this.buffer.indexOf('<');\n if (nextTag > 0) {\n this.buffer = this.buffer.slice(nextTag);\n return this.processBuffer();\n }\n\n return null;\n }\n\n if (this.state.type === 'in-text') {\n // Look for </text> closing tag\n const endMatch = this.buffer.match(/^(.*?)<\\/text>/s);\n\n if (endMatch) {\n const content = endMatch[1];\n this.buffer = this.buffer.slice(endMatch[0].length);\n this.state = { type: 'idle' };\n\n // Queue text-end to emit after final text-delta\n this.eventQueue.push({ type: 'text-end' });\n\n if (content) {\n return { type: 'text-delta', delta: content };\n }\n return this.eventQueue.shift()!;\n }\n\n // No closing tag yet - emit what we can safely\n // Keep safety margin in buffer in case </text> tag is split across chunks\n if (this.buffer.length > TEXT_TAG_SAFETY_MARGIN) {\n const safeToEmit = this.buffer.slice(0, -TEXT_TAG_SAFETY_MARGIN);\n this.buffer = this.buffer.slice(-TEXT_TAG_SAFETY_MARGIN);\n return { type: 'text-delta', delta: safeToEmit };\n }\n\n return null;\n }\n\n if (this.state.type === 'in-tool') {\n // Parse <tool_name> tag\n if (!this.state.toolName) {\n const toolNameMatch = this.buffer.match(/^[^<]*<tool_name>(.*?)<\\/tool_name>/s);\n if (toolNameMatch) {\n this.state.toolName = toolNameMatch[1].trim();\n this.buffer = this.buffer.slice(toolNameMatch[0].length);\n return this.processBuffer();\n }\n return null;\n }\n\n // Parse <tool_call_id> tag\n if (!this.state.toolCallId) {\n const idMatch = this.buffer.match(/^[^<]*<tool_call_id>(.*?)<\\/tool_call_id>/s);\n if (idMatch) {\n this.state.toolCallId = idMatch[1].trim();\n this.buffer = this.buffer.slice(idMatch[0].length);\n\n return {\n type: 'tool-input-start',\n toolCallId: this.state.toolCallId,\n toolName: this.state.toolName,\n };\n }\n return null;\n }\n\n // Parse <arguments> opening tag\n if (!this.state.tagBuffer) {\n const argsOpenMatch = this.buffer.match(/^[^<]*<arguments>/);\n if (argsOpenMatch) {\n this.buffer = this.buffer.slice(argsOpenMatch[0].length);\n this.state.tagBuffer = 'in-args';\n return this.processBuffer();\n }\n return null;\n }\n\n // Parse arguments content until closing tag\n if (this.state.tagBuffer === 'in-args') {\n const argsCloseMatch = this.buffer.match(/^(.*?)<\\/arguments>/s);\n\n if (argsCloseMatch) {\n const argsContent = argsCloseMatch[1];\n this.buffer = this.buffer.slice(argsCloseMatch[0].length);\n this.state.tagBuffer = 'args-complete';\n\n // Queue tool-input-end to emit after final delta\n this.eventQueue.push({\n type: 'tool-input-end',\n toolCallId: this.state.toolCallId!,\n });\n\n if (argsContent) {\n this.state.argsBuffer += argsContent;\n return {\n type: 'tool-input-delta',\n toolCallId: this.state.toolCallId!,\n delta: argsContent,\n };\n }\n\n return this.eventQueue.shift()!;\n }\n\n // Emit partial arguments, keeping safety margin for closing tag\n if (this.buffer.length > ARGUMENTS_TAG_SAFETY_MARGIN) {\n const safeToEmit = this.buffer.slice(0, -ARGUMENTS_TAG_SAFETY_MARGIN);\n this.buffer = this.buffer.slice(-ARGUMENTS_TAG_SAFETY_MARGIN);\n this.state.argsBuffer += safeToEmit;\n return {\n type: 'tool-input-delta',\n toolCallId: this.state.toolCallId!,\n delta: safeToEmit,\n };\n }\n\n return null;\n }\n\n // Parse </tool_use> closing tag and complete tool call\n if (this.state.tagBuffer === 'args-complete') {\n const toolCloseMatch = this.buffer.match(/^[^<]*<\\/tool_use>/);\n if (toolCloseMatch) {\n this.buffer = this.buffer.slice(toolCloseMatch[0].length);\n\n let args: Record<string, unknown> = {};\n try {\n args = JSON.parse(this.state.argsBuffer);\n } catch (error) {\n console.error('Failed to parse tool arguments:', this.state.argsBuffer, error);\n }\n\n // Save values before resetting state\n const toolCallId = this.state.toolCallId!;\n const toolName = this.state.toolName!;\n\n this.state = { type: 'idle' };\n\n return {\n type: 'tool-call-complete',\n toolCallId,\n toolName,\n arguments: args,\n };\n }\n return null;\n }\n\n return null;\n }\n\n return null;\n }\n}\n",
|
|
17
|
-
"/**\n * Claude Code Language Model\n * Custom LanguageModelV2 implementation using Claude Agent SDK\n * Supports Vercel AI SDK tools (executed by Vercel framework via MCP delegation)\n *\n * Session Management & Message Tracking:\n * --------------------------------------\n * This provider intelligently manages Claude Code sessions to avoid duplication.\n *\n * How it works:\n * 1. Provider tracks which messages were sent to Claude Code session\n * 2. When resuming, only NEW messages are sent (avoids duplication)\n * 3. Message count is returned to caller for next request\n *\n * Usage Pattern:\n * ```typescript\n * // First call - creates new session\n * const result1 = await generateText({\n * model: claudeCode('sonnet'),\n * messages: [{ role: 'user', content: 'Hello' }]\n * });\n *\n * // Extract session info for reuse\n * const sessionId = result1.response.headers['x-claude-code-session-id'];\n * const messageCount = parseInt(result1.response.headers['x-claude-code-message-count'] || '0');\n * const fingerprints = JSON.parse(result1.response.headers['x-claude-code-message-fingerprints'] || '[]');\n *\n * // Second call - reuses session (provider only sends NEW messages)\n * const result2 = await generateText({\n * model: claudeCode('sonnet'),\n * messages: [\n * { role: 'user', content: 'Hello' }, // Already in Claude Code session\n * { role: 'assistant', content: 'Hi!' }, // Already in Claude Code session\n * { role: 'user', content: 'How are you?' } // NEW - will be sent\n * ],\n * providerOptions: {\n * 'claude-code': {\n * sessionId: sessionId, // Resume this session\n * lastProcessedMessageCount: messageCount, // Skip first N messages\n * messageFingerprints: fingerprints // Detect rewind/edit\n * }\n * }\n * });\n *\n * // Check if session was force-created due to rewind/edit\n * if (result2.warnings?.length > 0) {\n * console.log('New session created:', result2.warnings[0]);\n * }\n * ```\n *\n * For streaming (streamText):\n * ```typescript\n * const result = await streamText({ ... });\n * for await (const chunk of result.fullStream) {\n * if (chunk.type === 'finish') {\n * const metadata = chunk.providerMetadata?.['claude-code'];\n * const sessionId = metadata?.sessionId;\n * const messageCount = metadata?.messageCount;\n * const fingerprints = metadata?.messageFingerprints;\n * const forcedNew = metadata?.forcedNewSession;\n * // Save these for next request\n * if (forcedNew) {\n * console.log('Message history changed, new session created');\n * }\n * }\n * }\n * ```\n *\n * Rewind / Edit Detection:\n * -------------------------\n * Provider automatically detects when message history changes:\n * - Rewind: Message count decreased (user deleted messages)\n * - Edit: Previously sent message content changed\n * - When detected: Automatically creates new session, returns warning\n * - Detection via messageFingerprints (role + first 100 chars of content)\n *\n * Fallback behavior (when lastProcessedMessageCount not provided):\n * - Provider sends only last user message + any tool results after it\n * - This is safer than sending full history which would duplicate\n * - But explicit tracking via lastProcessedMessageCount + messageFingerprints is recommended\n *\n * Key Points:\n * -----------\n * ✅ Provider handles message deduplication automatically\n * ✅ You always pass full message history to Vercel AI SDK\n * ✅ Provider internally skips messages already in Claude Code session\n * ✅ Provider detects rewind/edit and creates new session automatically\n * ✅ No need to manually track what was sent - just pass tracking info back\n * ⚠️ Session IDs are stored in ~/.claude/sessions/ by Claude Code CLI\n * 📦 Tracking data: sessionId, messageCount, messageFingerprints (all in response)\n */\n\nimport type {\n LanguageModelV2,\n LanguageModelV2CallOptions,\n LanguageModelV2FinishReason,\n LanguageModelV2StreamPart,\n} from '@ai-sdk/provider';\nimport { type Options, query } from '@anthropic-ai/claude-agent-sdk';\nimport {\n generateToolsSystemPrompt,\n parseContentBlocks,\n formatToolResult,\n type ToolDefinition,\n} from './text-based-tools.js';\nimport { StreamingXMLParser } from './streaming-xml-parser.js';\n\n// All Claude Code built-in tools to disable\nconst CLAUDE_CODE_BUILTIN_TOOLS = [\n 'Task',\n 'Bash',\n 'Glob',\n 'Grep',\n 'ExitPlanMode',\n 'Read',\n 'Edit',\n 'Write',\n 'NotebookEdit',\n 'WebFetch',\n 'TodoWrite',\n 'WebSearch',\n 'BashOutput',\n 'KillShell',\n 'Skill',\n 'SlashCommand',\n];\n\nexport interface ClaudeCodeLanguageModelConfig {\n modelId: string;\n}\n\nexport class ClaudeCodeLanguageModel implements LanguageModelV2 {\n readonly specificationVersion = 'v2' as const;\n readonly provider = 'claude-code' as const;\n readonly modelId: string;\n\n constructor(config: ClaudeCodeLanguageModelConfig) {\n this.modelId = config.modelId;\n }\n\n get supportedUrls(): Record<string, RegExp[]> {\n // Claude supports various image formats\n return {\n 'image/*': [/.*/],\n };\n }\n\n /**\n * Convert tools from Vercel AI SDK format to our internal format\n */\n private convertTools(tools: unknown[]): Record<string, ToolDefinition> | undefined {\n if (!tools || tools.length === 0) {\n return undefined;\n }\n\n const toolsMap: Record<string, ToolDefinition> = {};\n for (const tool of tools) {\n if (typeof tool !== 'object' || !tool || !('name' in tool)) continue;\n\n // Vercel AI SDK uses 'inputSchema' field for the JSON Schema\n const parameters =\n ('inputSchema' in tool && tool.inputSchema) ||\n ('parameters' in tool && tool.parameters) ||\n { type: 'object', properties: {} };\n\n toolsMap[String(tool.name)] = {\n type: 'function',\n name: String(tool.name),\n description: 'description' in tool ? String(tool.description) : undefined,\n parameters: parameters as ToolDefinition['parameters'],\n };\n }\n return toolsMap;\n }\n\n /**\n * Simple message fingerprint for detecting changes\n * Returns a hash of role + first 100 chars of text content\n */\n private getMessageFingerprint(message: any): string {\n const content = Array.isArray(message.content) ? message.content : [message.content];\n const textParts = content\n .filter((part: any) => typeof part === 'object' && part.type === 'text')\n .map((part: any) => part.text)\n .join('');\n // Simple fingerprint: role + first 100 chars\n const preview = textParts.slice(0, 100);\n return `${message.role}:${preview}`;\n }\n\n /**\n * Detect if message history has been rewound or modified\n * Returns true if inconsistency detected\n */\n private detectMessageInconsistency(\n messages: any[],\n lastProcessedCount: number,\n lastMessageFingerprints?: string[]\n ): boolean {\n // If no fingerprints provided, can't detect inconsistency\n if (!lastMessageFingerprints || lastMessageFingerprints.length === 0) {\n return false;\n }\n\n // Check if message count decreased (rewind)\n if (messages.length < lastProcessedCount) {\n return true;\n }\n\n // Check if fingerprints of previously sent messages match\n const checkCount = Math.min(lastProcessedCount, lastMessageFingerprints.length, messages.length);\n for (let i = 0; i < checkCount; i++) {\n const currentFingerprint = this.getMessageFingerprint(messages[i]);\n if (currentFingerprint !== lastMessageFingerprints[i]) {\n return true; // Message was modified\n }\n }\n\n return false;\n }\n\n /**\n * Convert Vercel AI SDK messages to a single string prompt\n * Handles tool results by converting them to XML format\n *\n * Session Resume Logic:\n * - When resuming a session (sessionId provided), only sends NEW messages\n * - Requires lastProcessedMessageCount in providerOptions to track what was sent\n * - Detects rewind/edit via message fingerprints\n * - If inconsistency detected, ignores resume and creates new session\n * - If lastProcessedMessageCount not provided when resuming, sends only the last user message + pending tool results\n */\n private convertMessagesToString(\n options: LanguageModelV2CallOptions,\n isResuming: boolean\n ): { prompt: string; shouldForceNewSession: boolean; messageFingerprints: string[] } {\n const promptParts: string[] = [];\n const messages = options.prompt;\n\n // Extract provider options\n const providerOptions = options.providerOptions?.['claude-code'] as\n | Record<string, unknown>\n | undefined;\n const lastProcessedCount =\n providerOptions && 'lastProcessedMessageCount' in providerOptions &&\n typeof providerOptions.lastProcessedMessageCount === 'number'\n ? providerOptions.lastProcessedMessageCount\n : undefined;\n const lastMessageFingerprints =\n providerOptions && 'messageFingerprints' in providerOptions &&\n Array.isArray(providerOptions.messageFingerprints)\n ? (providerOptions.messageFingerprints as string[])\n : undefined;\n\n // Detect if messages were rewound or modified\n let shouldForceNewSession = false;\n if (isResuming && lastProcessedCount !== undefined) {\n const inconsistent = this.detectMessageInconsistency(\n messages,\n lastProcessedCount,\n lastMessageFingerprints\n );\n if (inconsistent) {\n // Message history changed - can't safely resume, force new session\n shouldForceNewSession = true;\n isResuming = false; // Treat as new session\n }\n }\n\n // Determine which messages to process\n let messagesToProcess = messages;\n if (isResuming) {\n if (lastProcessedCount !== undefined) {\n // Skip already processed messages\n messagesToProcess = messages.slice(lastProcessedCount);\n } else {\n // No tracking info - only send last user message and any tool results after it\n // This is safer than sending full history which would duplicate\n const lastUserIndex = messages.findLastIndex((m) => m.role === 'user');\n if (lastUserIndex !== -1) {\n messagesToProcess = messages.slice(lastUserIndex);\n }\n }\n }\n\n // Convert messages to prompt string\n for (const message of messagesToProcess) {\n if (message.role === 'user') {\n // Handle both array and non-array content\n const content = Array.isArray(message.content) ? message.content : [message.content];\n const textParts = content\n .filter((part) => typeof part === 'object' && part.type === 'text')\n .map((part) => part.text);\n\n if (textParts.length > 0) {\n promptParts.push(textParts.join('\\n'));\n }\n } else if (message.role === 'assistant') {\n // Handle both array and non-array content\n const content = Array.isArray(message.content) ? message.content : [message.content];\n const textParts = content\n .filter((part) => typeof part === 'object' && part.type === 'text')\n .map((part) => part.text);\n\n if (textParts.length > 0) {\n // Prefix assistant messages for context\n promptParts.push(`Previous assistant response: ${textParts.join('\\n')}`);\n }\n } else if (message.role === 'tool') {\n // Convert tool results to XML format for Claude\n const content = Array.isArray(message.content) ? message.content : [message.content];\n const toolResults: string[] = [];\n\n for (const part of content) {\n if (typeof part === 'object' && 'toolCallId' in part && 'output' in part) {\n // Check if it's an error\n const isError =\n part.output &&\n typeof part.output === 'object' &&\n 'type' in part.output &&\n (part.output.type === 'error-text' || part.output.type === 'error-json');\n\n let resultValue: unknown;\n if (part.output && typeof part.output === 'object' && 'value' in part.output) {\n resultValue = part.output.value;\n } else {\n resultValue = part.output;\n }\n\n toolResults.push(formatToolResult(part.toolCallId, resultValue, isError));\n }\n }\n\n if (toolResults.length > 0) {\n promptParts.push(toolResults.join('\\n\\n'));\n }\n }\n }\n\n // Generate fingerprints for all messages (for next call's consistency check)\n const messageFingerprints = messages.map((msg) => this.getMessageFingerprint(msg));\n\n return {\n prompt: promptParts.join('\\n\\n'),\n shouldForceNewSession,\n messageFingerprints,\n };\n }\n\n /**\n * Extract system prompt from messages\n */\n private extractSystemPrompt(options: LanguageModelV2CallOptions): string | undefined {\n const systemMessages = options.prompt.filter((msg) => msg.role === 'system');\n if (systemMessages.length === 0) {\n return undefined;\n }\n\n const systemTexts = systemMessages\n .flatMap((msg) => {\n // Handle both array and non-array content\n const content = Array.isArray(msg.content) ? msg.content : [msg.content];\n return content\n .filter((part) => typeof part === 'object' && part.type === 'text')\n .map((part) => part.text);\n })\n .join('\\n');\n\n return systemTexts || undefined;\n }\n\n /**\n * Build query options from call options\n */\n private buildQueryOptions(\n options: LanguageModelV2CallOptions,\n tools: Record<string, ToolDefinition> | undefined,\n includePartialMessages = false\n ): { queryOptions: Options; systemPrompt: string } {\n // Build system prompt\n let systemPrompt = this.extractSystemPrompt(options) || '';\n\n // Add tools description to system prompt if tools are provided\n if (tools && Object.keys(tools).length > 0) {\n const toolsPrompt = generateToolsSystemPrompt(tools);\n systemPrompt = systemPrompt ? `${systemPrompt}\\n\\n${toolsPrompt}` : toolsPrompt;\n }\n\n // Build query options\n const queryOptions: Options = {\n model: this.modelId,\n settingSources: [],\n disallowedTools: CLAUDE_CODE_BUILTIN_TOOLS,\n };\n\n if (systemPrompt) {\n queryOptions.systemPrompt = systemPrompt;\n }\n\n if (includePartialMessages) {\n queryOptions.includePartialMessages = true;\n }\n\n // Extract provider-specific options\n const providerOptions = options.providerOptions?.['claude-code'] as\n | Record<string, unknown>\n | undefined;\n\n // Add maxThinkingTokens from providerOptions if provided\n if (\n providerOptions &&\n 'maxThinkingTokens' in providerOptions &&\n typeof providerOptions.maxThinkingTokens === 'number'\n ) {\n queryOptions.maxThinkingTokens = providerOptions.maxThinkingTokens;\n }\n\n // Add sessionId (resume) from providerOptions if provided\n // This allows reusing Claude Code sessions instead of creating new ones each time\n if (\n providerOptions &&\n 'sessionId' in providerOptions &&\n typeof providerOptions.sessionId === 'string'\n ) {\n queryOptions.resume = providerOptions.sessionId;\n }\n\n return { queryOptions, systemPrompt };\n }\n\n /**\n * Extract usage tokens from result event\n */\n private extractUsage(event: unknown): { inputTokens: number; outputTokens: number } {\n if (\n !event ||\n typeof event !== 'object' ||\n !('usage' in event) ||\n !event.usage ||\n typeof event.usage !== 'object'\n ) {\n return { inputTokens: 0, outputTokens: 0 };\n }\n\n const usage = event.usage as Record<string, unknown>;\n const inputTokens =\n (typeof usage.input_tokens === 'number' ? usage.input_tokens : 0) +\n (typeof usage.cache_creation_input_tokens === 'number'\n ? usage.cache_creation_input_tokens\n : 0) +\n (typeof usage.cache_read_input_tokens === 'number' ? usage.cache_read_input_tokens : 0);\n const outputTokens = typeof usage.output_tokens === 'number' ? usage.output_tokens : 0;\n\n return { inputTokens, outputTokens };\n }\n\n /**\n * Check and handle result errors\n */\n private handleResultError(event: unknown): void {\n if (!event || typeof event !== 'object' || !('subtype' in event)) {\n return;\n }\n\n if (event.subtype === 'error_max_turns') {\n throw new Error('Claude Code reached maximum turns limit');\n } else if (event.subtype === 'error_during_execution') {\n throw new Error('Error occurred during Claude Code execution');\n }\n }\n\n async doGenerate(\n options: LanguageModelV2CallOptions\n ): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>> {\n try {\n // Convert tools and build query options\n const tools = this.convertTools(options.tools || []);\n const { queryOptions } = this.buildQueryOptions(options, tools);\n\n // Check if resuming existing session\n const isResuming = !!queryOptions.resume;\n\n // Convert messages - will skip already processed messages if resuming\n // Also detects message inconsistencies (rewind/edit)\n const { prompt: promptString, shouldForceNewSession, messageFingerprints } =\n this.convertMessagesToString(options, isResuming);\n\n // If inconsistency detected, clear resume to create new session\n if (shouldForceNewSession) {\n delete queryOptions.resume;\n }\n\n // Execute query\n const queryResult = query({\n prompt: promptString,\n options: queryOptions,\n });\n\n // Collect results\n const contentParts: any[] = [];\n let inputTokens = 0;\n let outputTokens = 0;\n let finishReason: LanguageModelV2FinishReason = 'stop';\n let sessionId: string | undefined;\n\n for await (const event of queryResult) {\n // Extract session ID from any event (all events have session_id)\n if ('session_id' in event && typeof event.session_id === 'string') {\n sessionId = event.session_id;\n }\n\n if (event.type === 'assistant') {\n // Extract content from assistant message\n const content = event.message.content;\n for (const block of content) {\n if (block.type === 'thinking') {\n // Handle thinking/reasoning blocks\n contentParts.push({\n type: 'reasoning',\n reasoning: block.thinking,\n });\n } else if (block.type === 'text') {\n // Parse text for tool calls if tools are available\n if (tools && Object.keys(tools).length > 0) {\n const parsedBlocks = parseContentBlocks(block.text);\n for (const parsedBlock of parsedBlocks) {\n if (parsedBlock.type === 'text') {\n contentParts.push({\n type: 'text',\n text: parsedBlock.text,\n });\n } else if (parsedBlock.type === 'tool_use') {\n contentParts.push({\n type: 'tool-call',\n toolCallId: parsedBlock.toolCallId,\n toolName: parsedBlock.toolName,\n input: JSON.stringify(parsedBlock.arguments),\n });\n finishReason = 'tool-calls';\n }\n }\n } else {\n // No tools, just add text\n contentParts.push({\n type: 'text',\n text: block.text,\n });\n }\n }\n }\n\n // Check stop reason\n if (event.message.stop_reason === 'end_turn') {\n // Keep tool-calls finish reason if we detected tool calls\n if (finishReason !== 'tool-calls') {\n finishReason = 'stop';\n }\n } else if (event.message.stop_reason === 'max_tokens') {\n finishReason = 'length';\n }\n } else if (event.type === 'result') {\n this.handleResultError(event);\n const usage = this.extractUsage(event);\n inputTokens = usage.inputTokens;\n outputTokens = usage.outputTokens;\n }\n }\n\n // Calculate total message count for next call\n const totalMessageCount = options.prompt.length;\n\n // Build response headers with session tracking info\n const headers: Record<string, string> = {};\n if (sessionId) {\n headers['x-claude-code-session-id'] = sessionId;\n headers['x-claude-code-message-count'] = String(totalMessageCount);\n // Include fingerprints for next call's consistency check\n headers['x-claude-code-message-fingerprints'] = JSON.stringify(messageFingerprints);\n }\n // Add warning if session was force-created due to inconsistency\n if (shouldForceNewSession) {\n headers['x-claude-code-session-forced-new'] = 'true';\n }\n\n return {\n content: contentParts,\n finishReason,\n usage: {\n inputTokens: inputTokens,\n outputTokens: outputTokens,\n totalTokens: inputTokens + outputTokens,\n },\n warnings: shouldForceNewSession\n ? [\n 'Message history inconsistency detected (rewind or edit). Created new Claude Code session.',\n ]\n : [],\n response: {\n headers,\n },\n };\n } catch (error) {\n // Log detailed error information\n console.error('Claude Code error details:', {\n message: error instanceof Error ? error.message : String(error),\n stack: error instanceof Error ? error.stack : undefined,\n modelId: this.modelId,\n });\n throw new Error(\n `Claude Code execution failed: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n doStream(\n options: LanguageModelV2CallOptions\n ): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>> {\n try {\n // Convert tools and build query options\n const tools = this.convertTools(options.tools || []);\n const { queryOptions } = this.buildQueryOptions(options, tools, true);\n\n // Check if resuming existing session\n const isResuming = !!queryOptions.resume;\n\n // Convert messages - will skip already processed messages if resuming\n // Also detects message inconsistencies (rewind/edit)\n const { prompt: promptString, shouldForceNewSession, messageFingerprints } =\n this.convertMessagesToString(options, isResuming);\n\n // If inconsistency detected, clear resume to create new session\n if (shouldForceNewSession) {\n delete queryOptions.resume;\n }\n\n // Calculate total message count for metadata\n const totalMessageCount = options.prompt.length;\n\n // Execute query\n const queryResult = query({\n prompt: promptString,\n options: queryOptions,\n });\n\n // Bind helper methods to preserve `this` context\n const handleResultError = this.handleResultError.bind(this);\n const extractUsage = this.extractUsage.bind(this);\n\n // Create streaming response\n const stream = new ReadableStream<LanguageModelV2StreamPart>({\n async start(controller) {\n try {\n let inputTokens = 0;\n let outputTokens = 0;\n let finishReason: LanguageModelV2FinishReason = 'stop';\n let hasStartedText = false;\n let hasEmittedTextEnd = false;\n let sessionId: string | undefined;\n // Track thinking block indices for streaming\n const thinkingBlockIndices = new Set<number>();\n // XML parser for streaming tool call detection\n const xmlParser = tools && Object.keys(tools).length > 0 ? new StreamingXMLParser() : null;\n\n for await (const event of queryResult) {\n // Extract session ID from any event (all events have session_id)\n if ('session_id' in event && typeof event.session_id === 'string') {\n sessionId = event.session_id;\n }\n\n // Handle streaming events from Anthropic SDK\n if (event.type === 'stream_event') {\n const streamEvent = event.event;\n\n // Handle content block start (thinking or text)\n if (streamEvent.type === 'content_block_start') {\n if (streamEvent.content_block.type === 'thinking') {\n // Start of thinking block - emit reasoning-start\n thinkingBlockIndices.add(streamEvent.index);\n controller.enqueue({\n type: 'reasoning-start',\n id: `reasoning-${streamEvent.index}`,\n });\n }\n }\n // Handle content block deltas\n else if (streamEvent.type === 'content_block_delta') {\n if (streamEvent.delta.type === 'thinking_delta') {\n // Thinking delta - emit reasoning-delta\n controller.enqueue({\n type: 'reasoning-delta',\n id: `reasoning-${streamEvent.index}`,\n delta: streamEvent.delta.thinking,\n });\n } else if (streamEvent.delta.type === 'text_delta') {\n // Text delta - parse through XML parser if tools available\n if (xmlParser) {\n // All text should be wrapped in <text> tags per system prompt\n for (const xmlEvent of xmlParser.processChunk(streamEvent.delta.text)) {\n if (xmlEvent.type === 'text-start') {\n if (!hasStartedText) {\n controller.enqueue({\n type: 'text-start',\n id: 'text-0',\n });\n hasStartedText = true;\n }\n } else if (xmlEvent.type === 'text-delta') {\n controller.enqueue({\n type: 'text-delta',\n id: 'text-0',\n delta: xmlEvent.delta,\n });\n } else if (xmlEvent.type === 'tool-input-start') {\n controller.enqueue({\n type: 'tool-input-start',\n id: xmlEvent.toolCallId,\n toolName: xmlEvent.toolName,\n });\n } else if (xmlEvent.type === 'tool-input-delta') {\n controller.enqueue({\n type: 'tool-input-delta',\n id: xmlEvent.toolCallId,\n delta: xmlEvent.delta,\n });\n } else if (xmlEvent.type === 'tool-input-end') {\n controller.enqueue({\n type: 'tool-input-end',\n id: xmlEvent.toolCallId,\n });\n } else if (xmlEvent.type === 'tool-call-complete') {\n controller.enqueue({\n type: 'tool-call',\n toolCallId: xmlEvent.toolCallId,\n toolName: xmlEvent.toolName,\n input: JSON.stringify(xmlEvent.arguments),\n });\n finishReason = 'tool-calls';\n }\n }\n } else {\n // No tools - emit text directly\n if (!hasStartedText) {\n controller.enqueue({\n type: 'text-start',\n id: 'text-0',\n });\n hasStartedText = true;\n }\n controller.enqueue({\n type: 'text-delta',\n id: 'text-0',\n delta: streamEvent.delta.text,\n });\n }\n }\n }\n // Handle content block stop\n else if (streamEvent.type === 'content_block_stop') {\n if (thinkingBlockIndices.has(streamEvent.index)) {\n // End of thinking block - emit reasoning-end\n controller.enqueue({\n type: 'reasoning-end',\n id: `reasoning-${streamEvent.index}`,\n });\n thinkingBlockIndices.delete(streamEvent.index);\n } else if (hasStartedText) {\n // End of text block - flush XML parser if tools are available\n if (xmlParser) {\n for (const xmlEvent of xmlParser.flush()) {\n if (xmlEvent.type === 'text-delta') {\n controller.enqueue({\n type: 'text-delta',\n id: 'text-0',\n delta: xmlEvent.delta,\n });\n } else if (xmlEvent.type === 'text-end') {\n controller.enqueue({\n type: 'text-end',\n id: 'text-0',\n });\n hasEmittedTextEnd = true;\n } else if (xmlEvent.type === 'tool-input-delta') {\n controller.enqueue({\n type: 'tool-input-delta',\n id: xmlEvent.toolCallId,\n delta: xmlEvent.delta,\n });\n } else if (xmlEvent.type === 'tool-input-end') {\n controller.enqueue({\n type: 'tool-input-end',\n id: xmlEvent.toolCallId,\n });\n } else if (xmlEvent.type === 'tool-call-complete') {\n controller.enqueue({\n type: 'tool-call',\n toolCallId: xmlEvent.toolCallId,\n toolName: xmlEvent.toolName,\n input: JSON.stringify(xmlEvent.arguments),\n });\n finishReason = 'tool-calls';\n }\n }\n }\n\n // Emit text-end if flush didn't emit it\n if (!hasEmittedTextEnd) {\n controller.enqueue({\n type: 'text-end',\n id: 'text-0',\n });\n hasEmittedTextEnd = true;\n }\n }\n }\n } else if (event.type === 'assistant') {\n // Extract content from assistant message\n // Note: With includePartialMessages: true, content has already been streamed\n // via stream_event. We only need to handle final metadata here.\n const content = event.message.content;\n for (const block of content) {\n if (block.type === 'thinking') {\n // Thinking blocks are handled via stream_event\n } else if (block.type === 'text') {\n // Text has already been streamed via stream_event with includePartialMessages: true\n // Skip re-emitting to avoid duplication\n }\n }\n\n // Check stop reason\n if (event.message.stop_reason === 'end_turn') {\n // Keep tool-calls finish reason if we detected tool calls\n if (finishReason !== 'tool-calls') {\n finishReason = 'stop';\n }\n } else if (event.message.stop_reason === 'max_tokens') {\n finishReason = 'length';\n }\n } else if (event.type === 'result') {\n // Check for errors\n try {\n handleResultError(event);\n } catch (error) {\n controller.error(error);\n return;\n }\n\n // Extract usage\n const usage = extractUsage(event);\n inputTokens = usage.inputTokens;\n outputTokens = usage.outputTokens;\n }\n }\n\n // Emit text-end if we started text but haven't emitted text-end yet\n if (hasStartedText && !hasEmittedTextEnd) {\n controller.enqueue({\n type: 'text-end',\n id: 'text-0',\n });\n }\n\n // Emit finish\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage: {\n inputTokens: inputTokens,\n outputTokens: outputTokens,\n totalTokens: inputTokens + outputTokens,\n },\n providerMetadata: sessionId\n ? {\n 'claude-code': {\n sessionId,\n messageCount: totalMessageCount,\n messageFingerprints: messageFingerprints,\n forcedNewSession: shouldForceNewSession,\n },\n }\n : {},\n });\n\n controller.close();\n } catch (error) {\n controller.error(error);\n }\n },\n });\n\n return {\n stream,\n response: { headers: {} },\n warnings: [],\n };\n } catch (error) {\n throw new Error(\n `Claude Code streaming failed: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n}\n",
|
|
18
|
-
"/**\n * Claude Code Provider\n * Uses Claude Code CLI with OAuth authentication\n * Supports Vercel AI SDK tools (executed by framework, not CLI)\n */\n\nimport type { LanguageModelV2 } from '@ai-sdk/provider';\nimport type { AIProvider, ProviderModelDetails, ConfigField, ProviderConfig, ModelInfo } from './base-provider.js';\n\nimport { ClaudeCodeLanguageModel } from './claude-code-language-model.js';\n\nexport class ClaudeCodeProvider implements AIProvider {\n readonly id = 'claude-code' as const;\n readonly name = 'Claude Code';\n\n getConfigSchema(): ConfigField[] {\n return [\n {\n key: 'authenticated',\n label: 'Authenticated',\n type: 'boolean',\n required: false,\n description: 'Authentication via Claude CLI OAuth (run `claude` to authenticate)',\n },\n ];\n }\n\n isConfigured(_config: ProviderConfig): boolean {\n // Claude Code uses CLI OAuth - authentication handled by CLI\n return true;\n }\n\n async fetchModels(_config: ProviderConfig): Promise<ModelInfo[]> {\n // Claude Code has fixed set of models\n return [\n { id: 'opus', name: 'Claude 4.1 Opus (Most Capable)' },\n { id: 'sonnet', name: 'Claude 4.5 Sonnet (Balanced)' },\n { id: 'haiku', name: 'Claude 4.5 Haiku (Fastest)' },\n ];\n }\n\n async getModelDetails(modelId: string, _config?: ProviderConfig): Promise<ProviderModelDetails | null> {\n // Claude Code models have known specs\n const specs: Record<string, ProviderModelDetails> = {\n opus: {\n contextLength: 200000,\n maxOutput: 4096,\n inputPrice: 0,\n outputPrice: 0,\n },\n sonnet: {\n contextLength: 200000,\n maxOutput: 8192,\n inputPrice: 0,\n outputPrice: 0,\n },\n haiku: {\n contextLength: 200000,\n maxOutput: 4096,\n inputPrice: 0,\n outputPrice: 0,\n },\n };\n\n return specs[modelId] || null;\n }\n\n createClient(_config: ProviderConfig, modelId: string): LanguageModelV2 {\n // Use custom LanguageModelV2 implementation with Claude Code CLI\n // This implementation:\n // - Uses Claude Agent SDK query() function\n // - Accesses Claude Code CLI via OAuth (no API key needed)\n // - Supports basic text generation\n // - Returns LanguageModelV2 compatible with AI SDK v5\n // Note: Custom Vercel tools support is limited - Claude Agent SDK only supports\n // built-in tools and MCP servers, not arbitrary tool schemas\n return new ClaudeCodeLanguageModel({\n modelId,\n });\n }\n}\n",
|
|
19
|
-
"// src/chat/openai-compatible-chat-language-model.ts\nimport {\n InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n generateId,\n isParsableJson,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/chat/convert-to-openai-compatible-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction getOpenAIMetadata(message) {\n var _a, _b;\n return (_b = (_a = message == null ? void 0 : message.providerOptions) == null ? void 0 : _a.openaiCompatible) != null ? _b : {};\n}\nfunction convertToOpenAICompatibleChatMessages(prompt) {\n const messages = [];\n for (const { role, content, ...message } of prompt) {\n const metadata = getOpenAIMetadata({ ...message });\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content, ...metadata });\n break;\n }\n case \"user\": {\n if (content.length === 1 && content[0].type === \"text\") {\n messages.push({\n role: \"user\",\n content: content[0].text,\n ...getOpenAIMetadata(content[0])\n });\n break;\n }\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n const partMetadata = getOpenAIMetadata(part);\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text, ...partMetadata };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: {\n url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`\n },\n ...partMetadata\n };\n } else {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`\n });\n }\n }\n }\n }),\n ...metadata\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n const partMetadata = getOpenAIMetadata(part);\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n },\n ...partMetadata\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0,\n ...metadata\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n const toolResponseMetadata = getOpenAIMetadata(toolResponse);\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue,\n ...toolResponseMetadata\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/chat/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/chat/map-openai-compatible-finish-reason.ts\nfunction mapOpenAICompatibleFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"unknown\";\n }\n}\n\n// src/chat/openai-compatible-chat-options.ts\nimport { z } from \"zod/v4\";\nvar openaiCompatibleProviderOptions = z.object({\n /**\n * A unique identifier representing your end-user, which can help the provider to\n * monitor and detect abuse.\n */\n user: z.string().optional(),\n /**\n * Reasoning effort for reasoning models. Defaults to `medium`.\n */\n reasoningEffort: z.string().optional(),\n /**\n * Controls the verbosity of the generated text. Defaults to `medium`.\n */\n textVerbosity: z.string().optional()\n});\n\n// src/openai-compatible-error.ts\nimport { z as z2 } from \"zod/v4\";\nvar openaiCompatibleErrorDataSchema = z2.object({\n error: z2.object({\n message: z2.string(),\n // The additional information below is handled loosely to support\n // OpenAI-compatible providers that have slightly different error\n // responses:\n type: z2.string().nullish(),\n param: z2.any().nullish(),\n code: z2.union([z2.string(), z2.number()]).nullish()\n })\n});\nvar defaultOpenAICompatibleErrorStructure = {\n errorSchema: openaiCompatibleErrorDataSchema,\n errorToMessage: (data) => data.error.message\n};\n\n// src/chat/openai-compatible-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const openaiCompatTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider-defined\") {\n toolWarnings.push({ type: \"unsupported-tool\", tool });\n } else {\n openaiCompatTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: openaiCompatTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: openaiCompatTools, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: openaiCompatTools,\n toolChoice: {\n type: \"function\",\n function: { name: toolChoice.toolName }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/chat/openai-compatible-chat-language-model.ts\nvar OpenAICompatibleChatLanguageModel = class {\n // type inferred via constructor\n constructor(modelId, config) {\n this.specificationVersion = \"v2\";\n var _a, _b;\n this.modelId = modelId;\n this.config = config;\n const errorStructure = (_a = config.errorStructure) != null ? _a : defaultOpenAICompatibleErrorStructure;\n this.chunkSchema = createOpenAICompatibleChatChunkSchema(\n errorStructure.errorSchema\n );\n this.failedResponseHandler = createJsonErrorResponseHandler(errorStructure);\n this.supportsStructuredOutputs = (_b = config.supportsStructuredOutputs) != null ? _b : false;\n }\n get provider() {\n return this.config.provider;\n }\n get providerOptionsName() {\n return this.config.provider.split(\".\")[0].trim();\n }\n get supportedUrls() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.config).supportedUrls) == null ? void 0 : _b.call(_a)) != null ? _c : {};\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n providerOptions,\n stopSequences,\n responseFormat,\n seed,\n toolChoice,\n tools\n }) {\n var _a, _b, _c, _d;\n const warnings = [];\n const compatibleOptions = Object.assign(\n (_a = await parseProviderOptions({\n provider: \"openai-compatible\",\n providerOptions,\n schema: openaiCompatibleProviderOptions\n })) != null ? _a : {},\n (_b = await parseProviderOptions({\n provider: this.providerOptionsName,\n providerOptions,\n schema: openaiCompatibleProviderOptions\n })) != null ? _b : {}\n );\n if (topK != null) {\n warnings.push({ type: \"unsupported-setting\", setting: \"topK\" });\n }\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && !this.supportsStructuredOutputs) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"responseFormat\",\n details: \"JSON response format schema is only supported with structuredOutputs\"\n });\n }\n const {\n tools: openaiTools,\n toolChoice: openaiToolChoice,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice\n });\n return {\n args: {\n // model id:\n model: this.modelId,\n // model specific settings:\n user: compatibleOptions.user,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? this.supportsStructuredOutputs === true && responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n name: (_c = responseFormat.name) != null ? _c : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n stop: stopSequences,\n seed,\n ...Object.fromEntries(\n Object.entries(\n (_d = providerOptions == null ? void 0 : providerOptions[this.providerOptionsName]) != null ? _d : {}\n ).filter(\n ([key]) => !Object.keys(openaiCompatibleProviderOptions.shape).includes(key)\n )\n ),\n reasoning_effort: compatibleOptions.reasoningEffort,\n verbosity: compatibleOptions.textVerbosity,\n // messages:\n messages: convertToOpenAICompatibleChatMessages(prompt),\n // tools:\n tools: openaiTools,\n tool_choice: openaiToolChoice\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;\n const { args, warnings } = await this.getArgs({ ...options });\n const body = JSON.stringify(args);\n const {\n responseHeaders,\n value: responseBody,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenAICompatibleChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = responseBody.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n const reasoning = (_a = choice.message.reasoning_content) != null ? _a : choice.message.reasoning;\n if (reasoning != null && reasoning.length > 0) {\n content.push({\n type: \"reasoning\",\n text: reasoning\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: (_b = toolCall.id) != null ? _b : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n const providerMetadata = {\n [this.providerOptionsName]: {},\n ...await ((_d = (_c = this.config.metadataExtractor) == null ? void 0 : _c.extractMetadata) == null ? void 0 : _d.call(_c, {\n parsedBody: rawResponse\n }))\n };\n const completionTokenDetails = (_e = responseBody.usage) == null ? void 0 : _e.completion_tokens_details;\n if ((completionTokenDetails == null ? void 0 : completionTokenDetails.accepted_prediction_tokens) != null) {\n providerMetadata[this.providerOptionsName].acceptedPredictionTokens = completionTokenDetails == null ? void 0 : completionTokenDetails.accepted_prediction_tokens;\n }\n if ((completionTokenDetails == null ? void 0 : completionTokenDetails.rejected_prediction_tokens) != null) {\n providerMetadata[this.providerOptionsName].rejectedPredictionTokens = completionTokenDetails == null ? void 0 : completionTokenDetails.rejected_prediction_tokens;\n }\n return {\n content,\n finishReason: mapOpenAICompatibleFinishReason(choice.finish_reason),\n usage: {\n inputTokens: (_g = (_f = responseBody.usage) == null ? void 0 : _f.prompt_tokens) != null ? _g : void 0,\n outputTokens: (_i = (_h = responseBody.usage) == null ? void 0 : _h.completion_tokens) != null ? _i : void 0,\n totalTokens: (_k = (_j = responseBody.usage) == null ? void 0 : _j.total_tokens) != null ? _k : void 0,\n reasoningTokens: (_n = (_m = (_l = responseBody.usage) == null ? void 0 : _l.completion_tokens_details) == null ? void 0 : _m.reasoning_tokens) != null ? _n : void 0,\n cachedInputTokens: (_q = (_p = (_o = responseBody.usage) == null ? void 0 : _o.prompt_tokens_details) == null ? void 0 : _p.cached_tokens) != null ? _q : void 0\n },\n providerMetadata,\n request: { body },\n response: {\n ...getResponseMetadata(responseBody),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n var _a;\n const { args, warnings } = await this.getArgs({ ...options });\n const body = {\n ...args,\n stream: true,\n // only include stream_options when in strict compatibility mode:\n stream_options: this.config.includeUsage ? { include_usage: true } : void 0\n };\n const metadataExtractor = (_a = this.config.metadataExtractor) == null ? void 0 : _a.createStreamExtractor();\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n this.chunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const toolCalls = [];\n let finishReason = \"unknown\";\n const usage = {\n completionTokens: void 0,\n completionTokensDetails: {\n reasoningTokens: void 0,\n acceptedPredictionTokens: void 0,\n rejectedPredictionTokens: void 0\n },\n promptTokens: void 0,\n promptTokensDetails: {\n cachedTokens: void 0\n },\n totalTokens: void 0\n };\n let isFirstChunk = true;\n const providerOptionsName = this.providerOptionsName;\n let isActiveReasoning = false;\n let isActiveText = false;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n // TODO we lost type safety on Chunk, most likely due to the error schema. MUST FIX\n transform(chunk, controller) {\n var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n metadataExtractor == null ? void 0 : metadataExtractor.processChunk(chunk.rawValue);\n if (\"error\" in value) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: value.error.message });\n return;\n }\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (value.usage != null) {\n const {\n prompt_tokens,\n completion_tokens,\n total_tokens,\n prompt_tokens_details,\n completion_tokens_details\n } = value.usage;\n usage.promptTokens = prompt_tokens != null ? prompt_tokens : void 0;\n usage.completionTokens = completion_tokens != null ? completion_tokens : void 0;\n usage.totalTokens = total_tokens != null ? total_tokens : void 0;\n if ((completion_tokens_details == null ? void 0 : completion_tokens_details.reasoning_tokens) != null) {\n usage.completionTokensDetails.reasoningTokens = completion_tokens_details == null ? void 0 : completion_tokens_details.reasoning_tokens;\n }\n if ((completion_tokens_details == null ? void 0 : completion_tokens_details.accepted_prediction_tokens) != null) {\n usage.completionTokensDetails.acceptedPredictionTokens = completion_tokens_details == null ? void 0 : completion_tokens_details.accepted_prediction_tokens;\n }\n if ((completion_tokens_details == null ? void 0 : completion_tokens_details.rejected_prediction_tokens) != null) {\n usage.completionTokensDetails.rejectedPredictionTokens = completion_tokens_details == null ? void 0 : completion_tokens_details.rejected_prediction_tokens;\n }\n if ((prompt_tokens_details == null ? void 0 : prompt_tokens_details.cached_tokens) != null) {\n usage.promptTokensDetails.cachedTokens = prompt_tokens_details == null ? void 0 : prompt_tokens_details.cached_tokens;\n }\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = mapOpenAICompatibleFinishReason(\n choice.finish_reason\n );\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const reasoningContent = (_a2 = delta.reasoning_content) != null ? _a2 : delta.reasoning;\n if (reasoningContent) {\n if (!isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-start\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = true;\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: \"reasoning-0\",\n delta: reasoningContent\n });\n }\n if (delta.content) {\n if (!isActiveText) {\n controller.enqueue({ type: \"text-start\", id: \"txt-0\" });\n isActiveText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"txt-0\",\n delta: delta.content\n });\n }\n if (delta.tool_calls != null) {\n for (const toolCallDelta of delta.tool_calls) {\n const index = toolCallDelta.index;\n if (toolCalls[index] == null) {\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_b = toolCallDelta.function) == null ? void 0 : _b.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallDelta.id,\n toolName: toolCallDelta.function.name\n });\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_c = toolCallDelta.function.arguments) != null ? _c : \"\"\n },\n hasFinished: false\n };\n const toolCall2 = toolCalls[index];\n if (((_d = toolCall2.function) == null ? void 0 : _d.name) != null && ((_e = toolCall2.function) == null ? void 0 : _e.arguments) != null) {\n if (toolCall2.function.arguments.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n }\n if (isParsableJson(toolCall2.function.arguments)) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall2.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_f = toolCall2.id) != null ? _f : generateId(),\n toolName: toolCall2.function.name,\n input: toolCall2.function.arguments\n });\n toolCall2.hasFinished = true;\n }\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall.hasFinished) {\n continue;\n }\n if (((_g = toolCallDelta.function) == null ? void 0 : _g.arguments) != null) {\n toolCall.function.arguments += (_i = (_h = toolCallDelta.function) == null ? void 0 : _h.arguments) != null ? _i : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_j = toolCallDelta.function.arguments) != null ? _j : \"\"\n });\n if (((_k = toolCall.function) == null ? void 0 : _k.name) != null && ((_l = toolCall.function) == null ? void 0 : _l.arguments) != null && isParsableJson(toolCall.function.arguments)) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_m = toolCall.id) != null ? _m : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n toolCall.hasFinished = true;\n }\n }\n }\n },\n flush(controller) {\n var _a2, _b, _c, _d, _e, _f;\n if (isActiveReasoning) {\n controller.enqueue({ type: \"reasoning-end\", id: \"reasoning-0\" });\n }\n if (isActiveText) {\n controller.enqueue({ type: \"text-end\", id: \"txt-0\" });\n }\n for (const toolCall of toolCalls.filter(\n (toolCall2) => !toolCall2.hasFinished\n )) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_a2 = toolCall.id) != null ? _a2 : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n const providerMetadata = {\n [providerOptionsName]: {},\n ...metadataExtractor == null ? void 0 : metadataExtractor.buildMetadata()\n };\n if (usage.completionTokensDetails.acceptedPredictionTokens != null) {\n providerMetadata[providerOptionsName].acceptedPredictionTokens = usage.completionTokensDetails.acceptedPredictionTokens;\n }\n if (usage.completionTokensDetails.rejectedPredictionTokens != null) {\n providerMetadata[providerOptionsName].rejectedPredictionTokens = usage.completionTokensDetails.rejectedPredictionTokens;\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: {\n inputTokens: (_b = usage.promptTokens) != null ? _b : void 0,\n outputTokens: (_c = usage.completionTokens) != null ? _c : void 0,\n totalTokens: (_d = usage.totalTokens) != null ? _d : void 0,\n reasoningTokens: (_e = usage.completionTokensDetails.reasoningTokens) != null ? _e : void 0,\n cachedInputTokens: (_f = usage.promptTokensDetails.cachedTokens) != null ? _f : void 0\n },\n providerMetadata\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nvar openaiCompatibleTokenUsageSchema = z3.object({\n prompt_tokens: z3.number().nullish(),\n completion_tokens: z3.number().nullish(),\n total_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish(),\n accepted_prediction_tokens: z3.number().nullish(),\n rejected_prediction_tokens: z3.number().nullish()\n }).nullish()\n}).nullish();\nvar OpenAICompatibleChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n role: z3.literal(\"assistant\").nullish(),\n content: z3.string().nullish(),\n reasoning_content: z3.string().nullish(),\n reasoning: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n id: z3.string().nullish(),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n ).nullish()\n }),\n finish_reason: z3.string().nullish()\n })\n ),\n usage: openaiCompatibleTokenUsageSchema\n});\nvar createOpenAICompatibleChatChunkSchema = (errorSchema) => z3.union([\n z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n role: z3.enum([\"assistant\"]).nullish(),\n content: z3.string().nullish(),\n // Most openai-compatible models set `reasoning_content`, but some\n // providers serving `gpt-oss` set `reasoning`. See #7866\n reasoning_content: z3.string().nullish(),\n reasoning: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n index: z3.number(),\n id: z3.string().nullish(),\n function: z3.object({\n name: z3.string().nullish(),\n arguments: z3.string().nullish()\n })\n })\n ).nullish()\n }).nullish(),\n finish_reason: z3.string().nullish()\n })\n ),\n usage: openaiCompatibleTokenUsageSchema\n }),\n errorSchema\n]);\n\n// src/completion/openai-compatible-completion-language-model.ts\nimport {\n combineHeaders as combineHeaders2,\n createEventSourceResponseHandler as createEventSourceResponseHandler2,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler2,\n createJsonResponseHandler as createJsonResponseHandler2,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/completion/convert-to-openai-compatible-completion-prompt.ts\nimport {\n InvalidPromptError,\n UnsupportedFunctionalityError as UnsupportedFunctionalityError3\n} from \"@ai-sdk/provider\";\nfunction convertToOpenAICompatibleCompletionPrompt({\n prompt,\n user = \"user\",\n assistant = \"assistant\"\n}) {\n let text = \"\";\n if (prompt[0].role === \"system\") {\n text += `${prompt[0].content}\n\n`;\n prompt = prompt.slice(1);\n }\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n throw new InvalidPromptError({\n message: \"Unexpected system message in prompt: ${content}\",\n prompt\n });\n }\n case \"user\": {\n const userMessage = content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n }\n }).filter(Boolean).join(\"\");\n text += `${user}:\n${userMessage}\n\n`;\n break;\n }\n case \"assistant\": {\n const assistantMessage = content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n case \"tool-call\": {\n throw new UnsupportedFunctionalityError3({\n functionality: \"tool-call messages\"\n });\n }\n }\n }).join(\"\");\n text += `${assistant}:\n${assistantMessage}\n\n`;\n break;\n }\n case \"tool\": {\n throw new UnsupportedFunctionalityError3({\n functionality: \"tool messages\"\n });\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n text += `${assistant}:\n`;\n return {\n prompt: text,\n stopSequences: [`\n${user}:`]\n };\n}\n\n// src/completion/get-response-metadata.ts\nfunction getResponseMetadata2({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/completion/map-openai-compatible-finish-reason.ts\nfunction mapOpenAICompatibleFinishReason2(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"unknown\";\n }\n}\n\n// src/completion/openai-compatible-completion-options.ts\nimport { z as z4 } from \"zod/v4\";\nvar openaiCompatibleCompletionProviderOptions = z4.object({\n /**\n * Echo back the prompt in addition to the completion.\n */\n echo: z4.boolean().optional(),\n /**\n * Modify the likelihood of specified tokens appearing in the completion.\n *\n * Accepts a JSON object that maps tokens (specified by their token ID in\n * the GPT tokenizer) to an associated bias value from -100 to 100.\n */\n logitBias: z4.record(z4.string(), z4.number()).optional(),\n /**\n * The suffix that comes after a completion of inserted text.\n */\n suffix: z4.string().optional(),\n /**\n * A unique identifier representing your end-user, which can help providers to\n * monitor and detect abuse.\n */\n user: z4.string().optional()\n});\n\n// src/completion/openai-compatible-completion-language-model.ts\nvar OpenAICompatibleCompletionLanguageModel = class {\n // type inferred via constructor\n constructor(modelId, config) {\n this.specificationVersion = \"v2\";\n var _a;\n this.modelId = modelId;\n this.config = config;\n const errorStructure = (_a = config.errorStructure) != null ? _a : defaultOpenAICompatibleErrorStructure;\n this.chunkSchema = createOpenAICompatibleCompletionChunkSchema(\n errorStructure.errorSchema\n );\n this.failedResponseHandler = createJsonErrorResponseHandler2(errorStructure);\n }\n get provider() {\n return this.config.provider;\n }\n get providerOptionsName() {\n return this.config.provider.split(\".\")[0].trim();\n }\n get supportedUrls() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.config).supportedUrls) == null ? void 0 : _b.call(_a)) != null ? _c : {};\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences: userStopSequences,\n responseFormat,\n seed,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a;\n const warnings = [];\n const completionOptions = (_a = await parseProviderOptions2({\n provider: this.providerOptionsName,\n providerOptions,\n schema: openaiCompatibleCompletionProviderOptions\n })) != null ? _a : {};\n if (topK != null) {\n warnings.push({ type: \"unsupported-setting\", setting: \"topK\" });\n }\n if (tools == null ? void 0 : tools.length) {\n warnings.push({ type: \"unsupported-setting\", setting: \"tools\" });\n }\n if (toolChoice != null) {\n warnings.push({ type: \"unsupported-setting\", setting: \"toolChoice\" });\n }\n if (responseFormat != null && responseFormat.type !== \"text\") {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"responseFormat\",\n details: \"JSON response format is not supported.\"\n });\n }\n const { prompt: completionPrompt, stopSequences } = convertToOpenAICompatibleCompletionPrompt({ prompt });\n const stop = [...stopSequences != null ? stopSequences : [], ...userStopSequences != null ? userStopSequences : []];\n return {\n args: {\n // model id:\n model: this.modelId,\n // model specific settings:\n echo: completionOptions.echo,\n logit_bias: completionOptions.logitBias,\n suffix: completionOptions.suffix,\n user: completionOptions.user,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n seed,\n ...providerOptions == null ? void 0 : providerOptions[this.providerOptionsName],\n // prompt:\n prompt: completionPrompt,\n // stop sequences:\n stop: stop.length > 0 ? stop : void 0\n },\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f;\n const { args, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi2({\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders2(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n openaiCompatibleCompletionResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n if (choice.text != null && choice.text.length > 0) {\n content.push({ type: \"text\", text: choice.text });\n }\n return {\n content,\n usage: {\n inputTokens: (_b = (_a = response.usage) == null ? void 0 : _a.prompt_tokens) != null ? _b : void 0,\n outputTokens: (_d = (_c = response.usage) == null ? void 0 : _c.completion_tokens) != null ? _d : void 0,\n totalTokens: (_f = (_e = response.usage) == null ? void 0 : _e.total_tokens) != null ? _f : void 0\n },\n finishReason: mapOpenAICompatibleFinishReason2(choice.finish_reason),\n request: { body: args },\n response: {\n ...getResponseMetadata2(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const body = {\n ...args,\n stream: true,\n // only include stream_options when in strict compatibility mode:\n stream_options: this.config.includeUsage ? { include_usage: true } : void 0\n };\n const { responseHeaders, value: response } = await postJsonToApi2({\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders2(this.config.headers(), options.headers),\n body,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler2(\n this.chunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = \"unknown\";\n const usage = {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0\n };\n let isFirstChunk = true;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = \"error\";\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata2(value)\n });\n controller.enqueue({\n type: \"text-start\",\n id: \"0\"\n });\n }\n if (value.usage != null) {\n usage.inputTokens = (_a = value.usage.prompt_tokens) != null ? _a : void 0;\n usage.outputTokens = (_b = value.usage.completion_tokens) != null ? _b : void 0;\n usage.totalTokens = (_c = value.usage.total_tokens) != null ? _c : void 0;\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = mapOpenAICompatibleFinishReason2(\n choice.finish_reason\n );\n }\n if ((choice == null ? void 0 : choice.text) != null) {\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: choice.text\n });\n }\n },\n flush(controller) {\n if (!isFirstChunk) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nvar usageSchema = z5.object({\n prompt_tokens: z5.number(),\n completion_tokens: z5.number(),\n total_tokens: z5.number()\n});\nvar openaiCompatibleCompletionResponseSchema = z5.object({\n id: z5.string().nullish(),\n created: z5.number().nullish(),\n model: z5.string().nullish(),\n choices: z5.array(\n z5.object({\n text: z5.string(),\n finish_reason: z5.string()\n })\n ),\n usage: usageSchema.nullish()\n});\nvar createOpenAICompatibleCompletionChunkSchema = (errorSchema) => z5.union([\n z5.object({\n id: z5.string().nullish(),\n created: z5.number().nullish(),\n model: z5.string().nullish(),\n choices: z5.array(\n z5.object({\n text: z5.string(),\n finish_reason: z5.string().nullish(),\n index: z5.number()\n })\n ),\n usage: usageSchema.nullish()\n }),\n errorSchema\n]);\n\n// src/embedding/openai-compatible-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders3,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler3,\n createJsonResponseHandler as createJsonResponseHandler3,\n parseProviderOptions as parseProviderOptions3,\n postJsonToApi as postJsonToApi3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\n\n// src/embedding/openai-compatible-embedding-options.ts\nimport { z as z6 } from \"zod/v4\";\nvar openaiCompatibleEmbeddingProviderOptions = z6.object({\n /**\n * The number of dimensions the resulting output embeddings should have.\n * Only supported in text-embedding-3 and later models.\n */\n dimensions: z6.number().optional(),\n /**\n * A unique identifier representing your end-user, which can help providers to\n * monitor and detect abuse.\n */\n user: z6.string().optional()\n});\n\n// src/embedding/openai-compatible-embedding-model.ts\nvar OpenAICompatibleEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v2\";\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n get maxEmbeddingsPerCall() {\n var _a;\n return (_a = this.config.maxEmbeddingsPerCall) != null ? _a : 2048;\n }\n get supportsParallelCalls() {\n var _a;\n return (_a = this.config.supportsParallelCalls) != null ? _a : true;\n }\n get providerOptionsName() {\n return this.config.provider.split(\".\")[0].trim();\n }\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions\n }) {\n var _a, _b, _c;\n const compatibleOptions = Object.assign(\n (_a = await parseProviderOptions3({\n provider: \"openai-compatible\",\n providerOptions,\n schema: openaiCompatibleEmbeddingProviderOptions\n })) != null ? _a : {},\n (_b = await parseProviderOptions3({\n provider: this.providerOptionsName,\n providerOptions,\n schema: openaiCompatibleEmbeddingProviderOptions\n })) != null ? _b : {}\n );\n if (values.length > this.maxEmbeddingsPerCall) {\n throw new TooManyEmbeddingValuesForCallError({\n provider: this.provider,\n modelId: this.modelId,\n maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n values\n });\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi3({\n url: this.config.url({\n path: \"/embeddings\",\n modelId: this.modelId\n }),\n headers: combineHeaders3(this.config.headers(), headers),\n body: {\n model: this.modelId,\n input: values,\n encoding_format: \"float\",\n dimensions: compatibleOptions.dimensions,\n user: compatibleOptions.user\n },\n failedResponseHandler: createJsonErrorResponseHandler3(\n (_c = this.config.errorStructure) != null ? _c : defaultOpenAICompatibleErrorStructure\n ),\n successfulResponseHandler: createJsonResponseHandler3(\n openaiTextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n embeddings: response.data.map((item) => item.embedding),\n usage: response.usage ? { tokens: response.usage.prompt_tokens } : void 0,\n providerMetadata: response.providerMetadata,\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar openaiTextEmbeddingResponseSchema = z7.object({\n data: z7.array(z7.object({ embedding: z7.array(z7.number()) })),\n usage: z7.object({ prompt_tokens: z7.number() }).nullish(),\n providerMetadata: z7.record(z7.string(), z7.record(z7.string(), z7.any())).optional()\n});\n\n// src/image/openai-compatible-image-model.ts\nimport {\n combineHeaders as combineHeaders4,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler4,\n createJsonResponseHandler as createJsonResponseHandler4,\n postJsonToApi as postJsonToApi4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar OpenAICompatibleImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v2\";\n this.maxImagesPerCall = 10;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal\n }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n if (aspectRatio != null) {\n warnings.push({\n type: \"unsupported-setting\",\n setting: \"aspectRatio\",\n details: \"This model does not support aspect ratio. Use `size` instead.\"\n });\n }\n if (seed != null) {\n warnings.push({ type: \"unsupported-setting\", setting: \"seed\" });\n }\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const { value: response, responseHeaders } = await postJsonToApi4({\n url: this.config.url({\n path: \"/images/generations\",\n modelId: this.modelId\n }),\n headers: combineHeaders4(this.config.headers(), headers),\n body: {\n model: this.modelId,\n prompt,\n n,\n size,\n ...(_d = providerOptions.openai) != null ? _d : {},\n response_format: \"b64_json\"\n },\n failedResponseHandler: createJsonErrorResponseHandler4(\n (_e = this.config.errorStructure) != null ? _e : defaultOpenAICompatibleErrorStructure\n ),\n successfulResponseHandler: createJsonResponseHandler4(\n openaiCompatibleImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.data.map((item) => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n};\nvar openaiCompatibleImageResponseSchema = z8.object({\n data: z8.array(z8.object({ b64_json: z8.string() }))\n});\n\n// src/openai-compatible-provider.ts\nimport {\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"1.0.25\" : \"0.0.0-test\";\n\n// src/openai-compatible-provider.ts\nfunction createOpenAICompatible(options) {\n const baseURL = withoutTrailingSlash(options.baseURL);\n const providerName = options.name;\n const headers = {\n ...options.apiKey && { Authorization: `Bearer ${options.apiKey}` },\n ...options.headers\n };\n const getHeaders = () => withUserAgentSuffix(headers, `ai-sdk/openai-compatible/${VERSION}`);\n const getCommonModelConfig = (modelType) => ({\n provider: `${providerName}.${modelType}`,\n url: ({ path }) => {\n const url = new URL(`${baseURL}${path}`);\n if (options.queryParams) {\n url.search = new URLSearchParams(options.queryParams).toString();\n }\n return url.toString();\n },\n headers: getHeaders,\n fetch: options.fetch\n });\n const createLanguageModel = (modelId) => createChatModel(modelId);\n const createChatModel = (modelId) => new OpenAICompatibleChatLanguageModel(modelId, {\n ...getCommonModelConfig(\"chat\"),\n includeUsage: options.includeUsage,\n supportsStructuredOutputs: options.supportsStructuredOutputs\n });\n const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(modelId, {\n ...getCommonModelConfig(\"completion\"),\n includeUsage: options.includeUsage\n });\n const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(modelId, {\n ...getCommonModelConfig(\"embedding\")\n });\n const createImageModel = (modelId) => new OpenAICompatibleImageModel(modelId, getCommonModelConfig(\"image\"));\n const provider = (modelId) => createLanguageModel(modelId);\n provider.languageModel = createLanguageModel;\n provider.chatModel = createChatModel;\n provider.completionModel = createCompletionModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.imageModel = createImageModel;\n return provider;\n}\nexport {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n OpenAICompatibleImageModel,\n VERSION,\n createOpenAICompatible\n};\n//# sourceMappingURL=index.mjs.map",
|
|
20
|
-
"/**\n * Z.ai Provider\n * Uses OpenAI-compatible API\n */\n\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible';\nimport type { LanguageModelV1 } from 'ai';\nimport type { AIProvider, ProviderModelDetails, ConfigField, ProviderConfig, ModelInfo } from './base-provider.js';\n\n\nexport class ZaiProvider implements AIProvider {\n readonly id = 'zai' as const;\n readonly name = 'Z.ai';\n\n getConfigSchema(): ConfigField[] {\n return [\n {\n key: 'api-key',\n label: 'API Key',\n type: 'string',\n required: true,\n secret: true,\n description: 'Get your API key from Z.ai',\n placeholder: 'zai-...',\n },\n {\n key: 'coding-plan',\n label: 'Coding Plan',\n type: 'boolean',\n required: false,\n description: 'Enable Coding Plan mode (uses different API endpoint)',\n },\n ];\n }\n\n isConfigured(config: ProviderConfig): boolean {\n return !!config['api-key'];\n }\n\n async fetchModels(config: ProviderConfig): Promise<ModelInfo[]> {\n const apiKey = config['api-key'] as string | undefined;\n const codingPlan = config['coding-plan'] as boolean | undefined;\n\n if (!apiKey) {\n throw new Error('API key is required to fetch Z.ai models');\n }\n\n // Use different base URL for coding plan\n const baseUrl = codingPlan\n ? 'https://api.z.ai/api/coding/paas/v4'\n : 'https://api.z.ai/api/paas/v4';\n\n const response = await fetch(`${baseUrl}/models`, {\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n signal: AbortSignal.timeout(10000),\n });\n\n if (!response.ok) {\n throw new Error(`Z.ai API returned ${response.status}: ${response.statusText}`);\n }\n\n const data = (await response.json()) as {\n data?: Array<{ id: string; name?: string }>;\n };\n\n if (!data.data || data.data.length === 0) {\n throw new Error('No models returned from Z.ai API');\n }\n\n return data.data.map((model) => ({\n id: model.id,\n name: model.name || model.id,\n }));\n }\n\n async getModelDetails(modelId: string, _config?: ProviderConfig): Promise<ProviderModelDetails | null> {\n // Known specs for Z.ai models\n const specs: Record<string, ProviderModelDetails> = {\n 'glm-4.6': {\n contextLength: 128000,\n maxOutput: 4096,\n inputPrice: 0,\n outputPrice: 0,\n },\n 'glm-4-flash': {\n contextLength: 128000,\n maxOutput: 4096,\n inputPrice: 0,\n outputPrice: 0,\n },\n 'glm-4-plus': {\n contextLength: 128000,\n maxOutput: 4096,\n inputPrice: 0,\n outputPrice: 0,\n },\n 'glm-4-air': {\n contextLength: 128000,\n maxOutput: 4096,\n inputPrice: 0,\n outputPrice: 0,\n },\n };\n\n return specs[modelId] || null;\n }\n\n createClient(config: ProviderConfig, modelId: string): LanguageModelV1 {\n const apiKey = config['api-key'] as string;\n const codingPlan = config['coding-plan'] as boolean | undefined;\n\n // Use different base URL for coding plan\n const baseURL = codingPlan\n ? 'https://api.z.ai/api/coding/paas/v4/'\n : 'https://api.z.ai/api/paas/v4/';\n\n const zai = createOpenAICompatible({\n baseURL,\n apiKey,\n name: 'zai',\n });\n\n return zai(modelId);\n }\n}\n",
|
|
21
|
-
"/**\n * Provider Registry\n * Central registry for all AI providers\n */\n\nimport type { ProviderId } from '../types/provider.types.js';\nimport type { AIProvider } from './base-provider.js';\nimport { AnthropicProvider } from './anthropic-provider.js';\nimport { OpenAIProvider } from './openai-provider.js';\nimport { GoogleProvider } from './google-provider.js';\nimport { OpenRouterProvider } from './openrouter-provider.js';\nimport { ClaudeCodeProvider } from './claude-code-provider.js';\nimport { ZaiProvider } from './zai-provider.js';\n\n/**\n * Registry of all available providers\n */\nexport const PROVIDER_REGISTRY: Record<ProviderId, AIProvider> = {\n anthropic: new AnthropicProvider(),\n openai: new OpenAIProvider(),\n google: new GoogleProvider(),\n openrouter: new OpenRouterProvider(),\n 'claude-code': new ClaudeCodeProvider(),\n zai: new ZaiProvider(),\n};\n\n/**\n * Get provider instance by ID\n */\nexport function getProvider(id: ProviderId): AIProvider {\n const provider = PROVIDER_REGISTRY[id];\n if (!provider) {\n throw new Error(`Unknown provider: ${id}`);\n }\n return provider;\n}\n\n/**\n * Get all provider IDs\n */\nexport function getAllProviderIds(): ProviderId[] {\n return Object.keys(PROVIDER_REGISTRY) as ProviderId[];\n}\n\n/**\n * Get provider metadata (id, name) for all providers\n * Used by UI components\n */\nexport function getAllProviders(): Record<ProviderId, { id: ProviderId; name: string }> {\n const result: Record<string, { id: ProviderId; name: string }> = {};\n for (const [id, provider] of Object.entries(PROVIDER_REGISTRY)) {\n result[id] = {\n id: id as ProviderId,\n name: provider.name,\n };\n }\n return result as Record<ProviderId, { id: ProviderId; name: string }>;\n}\n\n// Re-export types\nexport type { AIProvider, ProviderModelDetails, ConfigField, ProviderConfig } from './base-provider.js';\n"
|
|
22
|
-
],
|
|
23
|
-
"mappings": "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",
|
|
24
|
-
"debugId": "2330857653DE78F064756E2164756E21",
|
|
25
|
-
"names": []
|
|
26
|
-
}
|