@opencode-ai/cli-darwin-x64 0.0.0-beta-202606072012 → 0.0.0-beta-202606072111
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/bin/{chunk-mfv1mg0h.js.map → chunk-0gdagk8y.js.map} +1 -1
- package/bin/{chunk-mdbba0r5.js.map → chunk-0h2y8bfp.js.map} +1 -1
- package/bin/{chunk-k2qpqrs2.js.map → chunk-0rr3de8t.js.map} +1 -1
- package/bin/{chunk-2wb4pj1k.js.map → chunk-15dsxshf.js.map} +1 -1
- package/bin/{chunk-3redr7rh.js.map → chunk-179hatb1.js.map} +1 -1
- package/bin/{chunk-2edqgvge.js.map → chunk-1vnf22za.js.map} +1 -1
- package/bin/{chunk-4ks8zesx.js.map → chunk-1x56yc35.js.map} +1 -1
- package/bin/{chunk-bk1cz389.js.map → chunk-2gaqm08y.js.map} +1 -1
- package/bin/{chunk-ccxr1p90.js.map → chunk-2yf14qsr.js.map} +1 -1
- package/bin/{chunk-5vj59e0f.js.map → chunk-303hceyq.js.map} +1 -1
- package/bin/{chunk-ppg01ant.js.map → chunk-3xqsktrd.js.map} +1 -1
- package/bin/{chunk-tceqdv58.js.map → chunk-40rpvvx6.js.map} +1 -1
- package/bin/{chunk-dhh7ykny.js.map → chunk-46fajb2t.js.map} +1 -1
- package/bin/{chunk-z7k7zcpj.js.map → chunk-4d48mb17.js.map} +1 -1
- package/bin/{chunk-4qr0kzey.js.map → chunk-4gn4zrv8.js.map} +1 -1
- package/bin/{chunk-knnp9vge.js.map → chunk-55yw6n26.js.map} +1 -1
- package/bin/{chunk-1cak1vkq.js.map → chunk-5b6b6k5v.js.map} +1 -1
- package/bin/{chunk-7vr5jqy9.js.map → chunk-62c98d9n.js.map} +1 -1
- package/bin/{chunk-dne32429.js.map → chunk-673kzse2.js.map} +1 -1
- package/bin/{chunk-ax39hv9r.js.map → chunk-6aqawvkh.js.map} +1 -1
- package/bin/{chunk-zs2frsgt.js.map → chunk-6fetgep1.js.map} +1 -1
- package/bin/{chunk-ryr15312.js.map → chunk-6jckfasy.js.map} +1 -1
- package/bin/{chunk-4gb1tber.js.map → chunk-6zyqahvz.js.map} +1 -1
- package/bin/{chunk-dbemfnee.js.map → chunk-76f2zqa1.js.map} +1 -1
- package/bin/{chunk-3p18h9hk.js.map → chunk-7b66x808.js.map} +1 -1
- package/bin/{chunk-nxaz3c1x.js.map → chunk-7dpmyvyj.js.map} +1 -1
- package/bin/{chunk-nhfpzrzs.js.map → chunk-7nphc3zy.js.map} +1 -1
- package/bin/{chunk-w0g6bj68.js.map → chunk-7qg7ymx5.js.map} +1 -1
- package/bin/{chunk-qj5xhs74.js.map → chunk-7rxeptg3.js.map} +1 -1
- package/bin/{chunk-6wa272rk.js.map → chunk-82yf7hhp.js.map} +1 -1
- package/bin/{chunk-41h0ectg.js.map → chunk-8qyq2mnv.js.map} +1 -1
- package/bin/{chunk-9rdnm87j.js.map → chunk-8t2r7hg6.js.map} +8 -8
- package/bin/{chunk-gg34c3gg.js.map → chunk-9750zcj8.js.map} +1 -1
- package/bin/{chunk-bcxct0va.js.map → chunk-9pfbq531.js.map} +1 -1
- package/bin/{chunk-bw4mxbqk.js.map → chunk-9tpxtz71.js.map} +1 -1
- package/bin/{chunk-q1vg7k6s.js.map → chunk-ae88vtd3.js.map} +1 -1
- package/bin/{chunk-w1d7g90x.js.map → chunk-aecq215r.js.map} +1 -1
- package/bin/{chunk-hrmgk48f.js.map → chunk-ahvn6n3w.js.map} +1 -1
- package/bin/{chunk-4cr9b7yn.js.map → chunk-azqxbehc.js.map} +1 -1
- package/bin/{chunk-fxtn6hcd.js.map → chunk-b14tg2f0.js.map} +1 -1
- package/bin/{chunk-5rxx7zwp.js.map → chunk-b4me2vsg.js.map} +1 -1
- package/bin/{chunk-7pfmbbj1.js.map → chunk-bknfr8ts.js.map} +1 -1
- package/bin/{chunk-x3qftpcf.js.map → chunk-cdrynfgk.js.map} +1 -1
- package/bin/{chunk-y8n7jmsw.js.map → chunk-cdywyt85.js.map} +1 -1
- package/bin/{chunk-wn63ffne.js.map → chunk-cf587mz3.js.map} +3 -4
- package/bin/{chunk-xxntcc58.js.map → chunk-cp7b1pmb.js.map} +1 -1
- package/bin/{chunk-jdrhc71e.js.map → chunk-ctjhpeke.js.map} +1 -1
- package/bin/{chunk-0aahcz1x.js.map → chunk-d329ddkk.js.map} +1 -1
- package/bin/{chunk-vmytsz81.js.map → chunk-dpwrb2n4.js.map} +8 -8
- package/bin/{chunk-jm95p4ee.js.map → chunk-e0tp0978.js.map} +1 -1
- package/bin/{chunk-9cehpaw4.js.map → chunk-e2q3zest.js.map} +1 -1
- package/bin/chunk-e34aypj1.js.map +10 -0
- package/bin/{chunk-byn5126h.js.map → chunk-edvz66sw.js.map} +1 -1
- package/bin/{chunk-xb8mqyxa.js.map → chunk-epbzzcne.js.map} +1 -1
- package/bin/{chunk-8m7knej5.js.map → chunk-evpmx4xk.js.map} +1 -1
- package/bin/{chunk-1m70jtyy.js.map → chunk-fxjs82rb.js.map} +1 -1
- package/bin/{chunk-y3m0cx3q.js.map → chunk-g7n4f8nn.js.map} +1 -1
- package/bin/{chunk-kmwtfk7d.js.map → chunk-ggyc3gdy.js.map} +1 -1
- package/bin/{chunk-q1gfp9sm.js.map → chunk-hkn6gk1t.js.map} +1 -1
- package/bin/{chunk-dbf8tgq1.js.map → chunk-hqpt1fqg.js.map} +1 -1
- package/bin/{chunk-xkq4ea03.js.map → chunk-hsf0w4be.js.map} +1 -1
- package/bin/{chunk-drceka9d.js.map → chunk-hszc8b7g.js.map} +1 -1
- package/bin/{chunk-sg7e0tmv.js.map → chunk-j023p6zr.js.map} +1 -1
- package/bin/{chunk-29h7ypx4.js.map → chunk-j0ktqc7p.js.map} +1 -1
- package/bin/{chunk-9dbmetx4.js.map → chunk-jbk5z5f6.js.map} +1 -1
- package/bin/{chunk-0azacwda.js.map → chunk-kgeardks.js.map} +1 -1
- package/bin/{chunk-v9r1aghe.js.map → chunk-ks2z4y58.js.map} +1 -1
- package/bin/{chunk-m00ewgms.js.map → chunk-mm5x683j.js.map} +1 -1
- package/bin/{chunk-dkcf1vra.js.map → chunk-mn1kdw58.js.map} +1 -1
- package/bin/{chunk-2z74dzzd.js.map → chunk-myyc3j66.js.map} +1 -1
- package/bin/{chunk-r92k4g7b.js.map → chunk-n64kt2b8.js.map} +1 -1
- package/bin/{chunk-8np84pzz.js.map → chunk-nt5zt65v.js.map} +1 -1
- package/bin/{chunk-rdecah6r.js.map → chunk-p38tfsjc.js.map} +1 -1
- package/bin/{chunk-24v9yc03.js.map → chunk-p4mr2drg.js.map} +1 -1
- package/bin/{chunk-kdtt3kep.js.map → chunk-pq78dmta.js.map} +1 -1
- package/bin/{chunk-z5eche3r.js.map → chunk-px2778v3.js.map} +1 -1
- package/bin/{chunk-j0pd0037.js.map → chunk-q3nbgx89.js.map} +1 -1
- package/bin/{chunk-5z4svcy8.js.map → chunk-qbvcysh9.js.map} +1 -1
- package/bin/{chunk-403y75mr.js.map → chunk-qpwgc615.js.map} +1 -1
- package/bin/{chunk-z3pqnsp0.js.map → chunk-qs7k4tkm.js.map} +1 -1
- package/bin/{chunk-f1rgh97w.js.map → chunk-qs8dc8tp.js.map} +1 -1
- package/bin/{chunk-m7fbdtss.js.map → chunk-qzdq01f2.js.map} +1 -1
- package/bin/{chunk-0p1h1yen.js.map → chunk-r8zf7qg5.js.map} +1 -1
- package/bin/{chunk-17mp0nfh.js.map → chunk-rfyn2dbw.js.map} +1 -1
- package/bin/{chunk-8b2cw22d.js.map → chunk-rpf68670.js.map} +1 -1
- package/bin/{chunk-qy4jch2k.js.map → chunk-s4wq37y4.js.map} +1 -1
- package/bin/{chunk-vmn2h78w.js.map → chunk-sdqyq3ep.js.map} +1 -1
- package/bin/{chunk-8m4gq827.js.map → chunk-sja1qp5v.js.map} +1 -1
- package/bin/{chunk-vcsd7k1x.js.map → chunk-srw8jqyv.js.map} +1 -1
- package/bin/{chunk-h8emc2wn.js.map → chunk-t5b2rh8t.js.map} +1 -1
- package/bin/{chunk-g0kgy39q.js.map → chunk-tyzp8mgy.js.map} +1 -1
- package/bin/{chunk-fkf4v3ba.js.map → chunk-vqv81xdz.js.map} +1 -1
- package/bin/{chunk-k4j35vyg.js.map → chunk-w11rqfrg.js.map} +1 -1
- package/bin/{chunk-4bqkwjay.js.map → chunk-w6743ngm.js.map} +1 -1
- package/bin/{chunk-gcae9y79.js.map → chunk-whq1t5zx.js.map} +1 -1
- package/bin/{chunk-7evry7wf.js.map → chunk-x4xtvd12.js.map} +1 -1
- package/bin/{chunk-v7y93rss.js.map → chunk-x629ej6h.js.map} +1 -1
- package/bin/{chunk-exk90nga.js.map → chunk-xbyyx565.js.map} +1 -1
- package/bin/{chunk-s0wg9112.js.map → chunk-xktespw6.js.map} +1 -1
- package/bin/{chunk-bdmdpss4.js.map → chunk-y3nv382y.js.map} +1 -1
- package/bin/{chunk-n9n5a40m.js.map → chunk-yfr4affz.js.map} +1 -1
- package/bin/{chunk-0f29ff7x.js.map → chunk-ygva3vxb.js.map} +1 -1
- package/bin/{chunk-2awtp59c.js.map → chunk-ynd8xgk5.js.map} +1 -1
- package/bin/{chunk-bh1mhcrg.js.map → chunk-yqfnrpsd.js.map} +1 -1
- package/bin/{chunk-2rcyqbr4.js.map → chunk-z0mcsntb.js.map} +1 -1
- package/bin/index.js.map +1 -1
- package/bin/lildax +0 -0
- package/bin/parser.worker.js.map +1 -1
- package/package.json +1 -1
- /package/bin/{chunk-54tk0a3b.js.map → chunk-1j0k0nk1.js.map} +0 -0
- /package/bin/{chunk-5xccccqx.js.map → chunk-1wxmhbw2.js.map} +0 -0
- /package/bin/{chunk-r951dpb6.js.map → chunk-24nct0sy.js.map} +0 -0
- /package/bin/{chunk-hyrw35ka.js.map → chunk-39cc5a0z.js.map} +0 -0
- /package/bin/{chunk-zvkzm2xg.js.map → chunk-3pq746fa.js.map} +0 -0
- /package/bin/{chunk-n1y14vg2.js.map → chunk-3vy1c43p.js.map} +0 -0
- /package/bin/{chunk-nh5dt02n.js.map → chunk-4hyy75mp.js.map} +0 -0
- /package/bin/{chunk-5pwfkzt8.js.map → chunk-4pcbyben.js.map} +0 -0
- /package/bin/{chunk-a7mpw67k.js.map → chunk-51m37bv5.js.map} +0 -0
- /package/bin/{chunk-gxabd2nw.js.map → chunk-5ajbyf48.js.map} +0 -0
- /package/bin/{chunk-h1c40saz.js.map → chunk-71w6eww1.js.map} +0 -0
- /package/bin/{chunk-sze4nfxj.js.map → chunk-7r87a895.js.map} +0 -0
- /package/bin/{chunk-v3dmrs36.js.map → chunk-7xbv1ggf.js.map} +0 -0
- /package/bin/{chunk-dgme073k.js.map → chunk-8440f7xm.js.map} +0 -0
- /package/bin/{chunk-x7cedtak.js.map → chunk-87pw3rj8.js.map} +0 -0
- /package/bin/{chunk-xk5h31f0.js.map → chunk-b9e0ka5d.js.map} +0 -0
- /package/bin/{chunk-2467ay10.js.map → chunk-c5pn9xqh.js.map} +0 -0
- /package/bin/{chunk-wb21ymtt.js.map → chunk-cem9qah3.js.map} +0 -0
- /package/bin/{chunk-98cp3xm8.js.map → chunk-cv5tf4j8.js.map} +0 -0
- /package/bin/{chunk-wnen6avv.js.map → chunk-cwfn2crw.js.map} +0 -0
- /package/bin/{chunk-r8v75b3p.js.map → chunk-czfs3cnd.js.map} +0 -0
- /package/bin/{chunk-ffy2h9sg.js.map → chunk-dmvqvq2v.js.map} +0 -0
- /package/bin/{chunk-9c4aby2v.js.map → chunk-dppzjk4z.js.map} +0 -0
- /package/bin/{chunk-hdvp0f9r.js.map → chunk-dq5acb24.js.map} +0 -0
- /package/bin/{chunk-mx01fh5z.js.map → chunk-e7apgz68.js.map} +0 -0
- /package/bin/{chunk-z0768ebg.js.map → chunk-egne4w96.js.map} +0 -0
- /package/bin/{chunk-s13b9w6e.js.map → chunk-egsfsev8.js.map} +0 -0
- /package/bin/{chunk-qr266pqk.js.map → chunk-f8cn1sgz.js.map} +0 -0
- /package/bin/{chunk-7wrtkptv.js.map → chunk-g5jdh687.js.map} +0 -0
- /package/bin/{chunk-frq7aqj0.js.map → chunk-gerdg423.js.map} +0 -0
- /package/bin/{chunk-wprsg4bp.js.map → chunk-gjzg5h5k.js.map} +0 -0
- /package/bin/{chunk-cv7ses8t.js.map → chunk-gn10y245.js.map} +0 -0
- /package/bin/{chunk-2xz2k032.js.map → chunk-hv1ta7qw.js.map} +0 -0
- /package/bin/{chunk-n5yedwkx.js.map → chunk-hybqrcay.js.map} +0 -0
- /package/bin/{chunk-fd634h9c.js.map → chunk-j0y4dvjy.js.map} +0 -0
- /package/bin/{chunk-fsxwa9pj.js.map → chunk-kcx96d3b.js.map} +0 -0
- /package/bin/{chunk-wmwrf2je.js.map → chunk-m145w3yn.js.map} +0 -0
- /package/bin/{chunk-qjzx50q1.js.map → chunk-m5bwxn5d.js.map} +0 -0
- /package/bin/{chunk-8a2grpy5.js.map → chunk-mbh3xamr.js.map} +0 -0
- /package/bin/{chunk-7s7x7y05.js.map → chunk-mrq2cf09.js.map} +0 -0
- /package/bin/{chunk-13j1j1t6.js.map → chunk-ngcg21ff.js.map} +0 -0
- /package/bin/{chunk-8r9kb17y.js.map → chunk-qktapd8k.js.map} +0 -0
- /package/bin/{chunk-hr2m7y9m.js.map → chunk-r4me55mh.js.map} +0 -0
- /package/bin/{chunk-ezppxxxn.js.map → chunk-r63xg68g.js.map} +0 -0
- /package/bin/{chunk-fchmf5g3.js.map → chunk-rt8z3p97.js.map} +0 -0
- /package/bin/{chunk-q7x271pe.js.map → chunk-sd9t9jzt.js.map} +0 -0
- /package/bin/{chunk-s20a34rg.js.map → chunk-sxva4nzh.js.map} +0 -0
- /package/bin/{chunk-jxqdfmv1.js.map → chunk-sy864b5v.js.map} +0 -0
- /package/bin/{chunk-zvtvqqhe.js.map → chunk-t3yfd2h0.js.map} +0 -0
- /package/bin/{chunk-g8482ftx.js.map → chunk-t8enf6ex.js.map} +0 -0
- /package/bin/{chunk-pnys3h13.js.map → chunk-t8j9a8kx.js.map} +0 -0
- /package/bin/{chunk-r1mxb5pf.js.map → chunk-tz7h0yk3.js.map} +0 -0
- /package/bin/{chunk-g2d1f6k1.js.map → chunk-wmxhcj42.js.map} +0 -0
- /package/bin/{chunk-6qgewm4t.js.map → chunk-wrwpvwwp.js.map} +0 -0
- /package/bin/{chunk-4tgjvd8v.js.map → chunk-x6wngw4y.js.map} +0 -0
- /package/bin/{chunk-scsr6d3p.js.map → chunk-xg4qy2dm.js.map} +0 -0
- /package/bin/{chunk-azpvp35b.js.map → chunk-y7g30wqj.js.map} +0 -0
- /package/bin/{chunk-eq69q2d3.js.map → chunk-z32f3pe6.js.map} +0 -0
- /package/bin/{chunk-1zxbrxd0.js.map → chunk-zmqpcp0v.js.map} +0 -0
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import * as Effect from \"effect/Effect\"\nimport { Commands } from \"../commands\"\nimport { Runtime } from \"../../framework/runtime\"\n\nexport default Runtime.handler(Commands.commands.migrate, (_input) => Effect.log(\"No migrations to run.\"))\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";uTAIA,SAAe,SAAQ,aAAQ,OAAS,cAAS,aAAS,MAAC,IAAkB,EAAI,uBAAuB,CAAC",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "DAD1BA15C5E3BE0F64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
"// src/google-generative-ai-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\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/convert-google-generative-ai-usage.ts\nfunction convertGoogleGenerativeAIUsage(usage) {\n var _a, _b, _c, _d;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.promptTokenCount) != null ? _a : 0;\n const candidatesTokens = (_b = usage.candidatesTokenCount) != null ? _b : 0;\n const cachedContentTokens = (_c = usage.cachedContentTokenCount) != null ? _c : 0;\n const thoughtsTokens = (_d = usage.thoughtsTokenCount) != null ? _d : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cachedContentTokens,\n cacheRead: cachedContentTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: candidatesTokens + thoughtsTokens,\n text: candidatesTokens,\n reasoning: thoughtsTokens\n },\n raw: usage\n };\n}\n\n// src/convert-json-schema-to-openapi-schema.ts\nfunction convertJSONSchemaToOpenAPISchema(jsonSchema, isRoot = true) {\n if (jsonSchema == null) {\n return void 0;\n }\n if (isEmptyObjectSchema(jsonSchema)) {\n if (isRoot) {\n return void 0;\n }\n if (typeof jsonSchema === \"object\" && jsonSchema.description) {\n return { type: \"object\", description: jsonSchema.description };\n }\n return { type: \"object\" };\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 const hasNull = type.includes(\"null\");\n const nonNullTypes = type.filter((t) => t !== \"null\");\n if (nonNullTypes.length === 0) {\n result.type = \"null\";\n } else {\n result.anyOf = nonNullTypes.map((t) => ({ type: t }));\n if (hasNull) {\n result.nullable = true;\n }\n }\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, false);\n return acc;\n },\n {}\n );\n }\n if (items) {\n result.items = Array.isArray(items) ? items.map((item) => convertJSONSchemaToOpenAPISchema(item, false)) : convertJSONSchemaToOpenAPISchema(items, false);\n }\n if (allOf) {\n result.allOf = allOf.map(\n (item) => convertJSONSchemaToOpenAPISchema(item, false)\n );\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(\n nonNullSchemas[0],\n false\n );\n if (typeof converted === \"object\") {\n result.nullable = true;\n Object.assign(result, converted);\n }\n } else {\n result.anyOf = nonNullSchemas.map(\n (item) => convertJSONSchemaToOpenAPISchema(item, false)\n );\n result.nullable = true;\n }\n } else {\n result.anyOf = anyOf.map(\n (item) => convertJSONSchemaToOpenAPISchema(item, false)\n );\n }\n }\n if (oneOf) {\n result.oneOf = oneOf.map(\n (item) => convertJSONSchemaToOpenAPISchema(item, false)\n );\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\";\nvar dataUrlRegex = /^data:([^;,]+);base64,(.+)$/s;\nfunction parseBase64DataUrl(value) {\n const match = dataUrlRegex.exec(value);\n if (match == null) {\n return void 0;\n }\n return {\n mediaType: match[1],\n data: match[2]\n };\n}\nfunction convertUrlToolResultPart(url) {\n const parsedDataUrl = parseBase64DataUrl(url);\n if (parsedDataUrl == null) {\n return void 0;\n }\n return {\n inlineData: {\n mimeType: parsedDataUrl.mediaType,\n data: parsedDataUrl.data\n }\n };\n}\nfunction appendToolResultParts(parts, toolName, outputValue) {\n const functionResponseParts = [];\n const responseTextParts = [];\n for (const contentPart of outputValue) {\n switch (contentPart.type) {\n case \"text\": {\n responseTextParts.push(contentPart.text);\n break;\n }\n case \"image-data\":\n case \"file-data\": {\n functionResponseParts.push({\n inlineData: {\n mimeType: contentPart.mediaType,\n data: contentPart.data\n }\n });\n break;\n }\n case \"image-url\":\n case \"file-url\": {\n const functionResponsePart = convertUrlToolResultPart(\n contentPart.url\n );\n if (functionResponsePart != null) {\n functionResponseParts.push(functionResponsePart);\n } else {\n responseTextParts.push(JSON.stringify(contentPart));\n }\n break;\n }\n default: {\n responseTextParts.push(JSON.stringify(contentPart));\n break;\n }\n }\n }\n parts.push({\n functionResponse: {\n name: toolName,\n response: {\n name: toolName,\n content: responseTextParts.length > 0 ? responseTextParts.join(\"\\n\") : \"Tool executed successfully.\"\n },\n ...functionResponseParts.length > 0 ? { parts: functionResponseParts } : {}\n }\n });\n}\nfunction appendLegacyToolResultParts(parts, toolName, outputValue) {\n for (const contentPart of outputValue) {\n switch (contentPart.type) {\n case \"text\":\n parts.push({\n functionResponse: {\n name: toolName,\n response: {\n name: toolName,\n content: contentPart.text\n }\n }\n });\n break;\n case \"image-data\":\n parts.push(\n {\n inlineData: {\n mimeType: String(contentPart.mediaType),\n data: String(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}\nfunction convertToGoogleGenerativeAIMessages(prompt, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const systemInstructionParts = [];\n const contents = [];\n let systemMessagesAllowed = true;\n const isGemmaModel = (_a = options == null ? void 0 : options.isGemmaModel) != null ? _a : false;\n const providerOptionsName = (_b = options == null ? void 0 : options.providerOptionsName) != null ? _b : \"google\";\n const supportsFunctionResponseParts = (_c = options == null ? void 0 : options.supportsFunctionResponseParts) != null ? _c : true;\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, _b2, _c2, _d2;\n const providerOpts = (_d2 = (_a2 = part.providerOptions) == null ? void 0 : _a2[providerOptionsName]) != null ? _d2 : providerOptionsName !== \"google\" ? (_b2 = part.providerOptions) == null ? void 0 : _b2.google : (_c2 = part.providerOptions) == null ? void 0 : _c2.vertex;\n const thoughtSignature = (providerOpts == null ? void 0 : providerOpts.thoughtSignature) != null ? String(providerOpts.thoughtSignature) : void 0;\n switch (part.type) {\n case \"text\": {\n return part.text.length === 0 ? void 0 : {\n text: part.text,\n thoughtSignature\n };\n }\n case \"reasoning\": {\n return part.text.length === 0 ? void 0 : {\n text: part.text,\n thought: true,\n thoughtSignature\n };\n }\n case \"file\": {\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 ...(providerOpts == null ? void 0 : providerOpts.thought) === true ? { thought: true } : {},\n thoughtSignature\n };\n }\n case \"tool-call\": {\n const serverToolCallId = (providerOpts == null ? void 0 : providerOpts.serverToolCallId) != null ? String(providerOpts.serverToolCallId) : void 0;\n const serverToolType = (providerOpts == null ? void 0 : providerOpts.serverToolType) != null ? String(providerOpts.serverToolType) : void 0;\n if (serverToolCallId && serverToolType) {\n return {\n toolCall: {\n toolType: serverToolType,\n args: typeof part.input === \"string\" ? JSON.parse(part.input) : part.input,\n id: serverToolCallId\n },\n thoughtSignature\n };\n }\n return {\n functionCall: {\n name: part.toolName,\n args: part.input\n },\n thoughtSignature\n };\n }\n case \"tool-result\": {\n const serverToolCallId = (providerOpts == null ? void 0 : providerOpts.serverToolCallId) != null ? String(providerOpts.serverToolCallId) : void 0;\n const serverToolType = (providerOpts == null ? void 0 : providerOpts.serverToolType) != null ? String(providerOpts.serverToolType) : void 0;\n if (serverToolCallId && serverToolType) {\n return {\n toolResponse: {\n toolType: serverToolType,\n response: part.output.type === \"json\" ? part.output.value : {},\n id: serverToolCallId\n },\n thoughtSignature\n };\n }\n return void 0;\n }\n }\n }).filter((part) => part !== void 0)\n });\n if (contents[contents.length - 1].parts.length === 0) {\n contents.pop();\n }\n break;\n }\n case \"tool\": {\n systemMessagesAllowed = false;\n const parts = [];\n for (const part of content) {\n if (part.type === \"tool-approval-response\") {\n continue;\n }\n const partProviderOpts = (_g = (_d = part.providerOptions) == null ? void 0 : _d[providerOptionsName]) != null ? _g : providerOptionsName !== \"google\" ? (_e = part.providerOptions) == null ? void 0 : _e.google : (_f = part.providerOptions) == null ? void 0 : _f.vertex;\n const serverToolCallId = (partProviderOpts == null ? void 0 : partProviderOpts.serverToolCallId) != null ? String(partProviderOpts.serverToolCallId) : void 0;\n const serverToolType = (partProviderOpts == null ? void 0 : partProviderOpts.serverToolType) != null ? String(partProviderOpts.serverToolType) : void 0;\n if (serverToolCallId && serverToolType) {\n const serverThoughtSignature = (partProviderOpts == null ? void 0 : partProviderOpts.thoughtSignature) != null ? String(partProviderOpts.thoughtSignature) : void 0;\n if (contents.length > 0) {\n const lastContent = contents[contents.length - 1];\n if (lastContent.role === \"model\") {\n lastContent.parts.push({\n toolResponse: {\n toolType: serverToolType,\n response: part.output.type === \"json\" ? part.output.value : {},\n id: serverToolCallId\n },\n thoughtSignature: serverThoughtSignature\n });\n continue;\n }\n }\n }\n const output = part.output;\n if (output.type === \"content\") {\n if (supportsFunctionResponseParts) {\n appendToolResultParts(parts, part.toolName, output.value);\n } else {\n appendLegacyToolResultParts(parts, part.toolName, output.value);\n }\n } else {\n parts.push({\n functionResponse: {\n name: part.toolName,\n response: {\n name: part.toolName,\n content: output.type === \"execution-denied\" ? (_h = output.reason) != null ? _h : \"Tool execution denied.\" : 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-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-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 googleLanguageModelOptions = lazySchema2(\n () => zodSchema2(\n z2.object({\n responseModalities: z2.array(z2.enum([\"TEXT\", \"IMAGE\"])).optional(),\n thinkingConfig: z2.object({\n thinkingBudget: z2.number().optional(),\n includeThoughts: z2.boolean().optional(),\n // https://ai.google.dev/gemini-api/docs/gemini-3?thinking=high#thinking_level\n thinkingLevel: z2.enum([\"minimal\", \"low\", \"medium\", \"high\"]).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: z2.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: z2.boolean().optional(),\n /**\n * Optional. A list of unique safety settings for blocking unsafe content.\n */\n safetySettings: z2.array(\n z2.object({\n category: z2.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: z2.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: z2.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: z2.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: z2.record(z2.string(), z2.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: z2.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: z2.object({\n aspectRatio: z2.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 \"1:8\",\n \"8:1\",\n \"1:4\",\n \"4:1\"\n ]).optional(),\n imageSize: z2.enum([\"1K\", \"2K\", \"4K\", \"512\"]).optional()\n }).optional(),\n /**\n * Optional. Configuration for grounding retrieval.\n * Used to provide location context for Google Maps and Google Search grounding.\n *\n * https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-maps\n */\n retrievalConfig: z2.object({\n latLng: z2.object({\n latitude: z2.number(),\n longitude: z2.number()\n }).optional()\n }).optional(),\n /**\n * Optional. When set to true, function call arguments will be streamed\n * incrementally via partialArgs in streaming responses. Only supported\n * on the Vertex AI API (not the Gemini API) and only for Gemini 3+\n * models.\n *\n * @default false\n *\n * https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling#streaming-fc\n */\n streamFunctionCallArguments: z2.boolean().optional(),\n /**\n * Optional. The service tier to use for the request.\n */\n serviceTier: z2.enum([\"standard\", \"flex\", \"priority\"]).optional()\n })\n )\n);\nvar VertexServiceTierMap = {\n standard: \"SERVICE_TIER_STANDARD\",\n flex: \"SERVICE_TIER_FLEX\",\n priority: \"SERVICE_TIER_PRIORITY\"\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 isVertexProvider = false\n}) {\n var _a, _b;\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n const isLatest = [\n \"gemini-flash-latest\",\n \"gemini-flash-lite-latest\",\n \"gemini-pro-latest\"\n ].some((id) => id === modelId);\n const isGemini2orNewer = modelId.includes(\"gemini-2\") || modelId.includes(\"gemini-3\") || modelId.includes(\"nano-banana\") || isLatest;\n const isGemini3orNewer = modelId.includes(\"gemini-3\");\n const supportsFileSearch = modelId.includes(\"gemini-2.5\") || modelId.includes(\"gemini-3\");\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 hasProviderTools = tools.some((tool) => tool.type === \"provider\");\n if (hasFunctionTools && hasProviderTools && !isGemini3orNewer) {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `combination of function and provider-defined tools`\n });\n }\n if (hasProviderTools) {\n const googleTools2 = [];\n const ProviderTools = tools.filter((tool) => tool.type === \"provider\");\n ProviderTools.forEach((tool) => {\n switch (tool.id) {\n case \"google.google_search\":\n if (isGemini2orNewer) {\n googleTools2.push({ googleSearch: { ...tool.args } });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"Google Search requires Gemini 2.0 or newer.\"\n });\n }\n break;\n case \"google.enterprise_web_search\":\n if (isGemini2orNewer) {\n googleTools2.push({ enterpriseWebSearch: {} });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"Enterprise Web Search requires Gemini 2.0 or newer.\"\n });\n }\n break;\n case \"google.url_context\":\n if (isGemini2orNewer) {\n googleTools2.push({ urlContext: {} });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\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 (isGemini2orNewer) {\n googleTools2.push({ codeExecution: {} });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"The code execution tool is not supported with other Gemini models than Gemini 2.\"\n });\n }\n break;\n case \"google.file_search\":\n if (supportsFileSearch) {\n googleTools2.push({ fileSearch: { ...tool.args } });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"The file search tool is only supported with Gemini 2.5 models and Gemini 3 models.\"\n });\n }\n break;\n case \"google.vertex_rag_store\":\n if (isGemini2orNewer) {\n googleTools2.push({\n retrieval: {\n vertex_rag_store: {\n rag_resources: {\n rag_corpus: tool.args.ragCorpus\n },\n similarity_top_k: tool.args.topK\n }\n }\n });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"The RAG store tool is not supported with other Gemini models than Gemini 2.\"\n });\n }\n break;\n case \"google.google_maps\":\n if (isGemini2orNewer) {\n googleTools2.push({ googleMaps: {} });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"The Google Maps grounding tool is not supported with Gemini models other than Gemini 2 or newer.\"\n });\n }\n break;\n default:\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n break;\n }\n });\n if (hasFunctionTools && isGemini3orNewer && googleTools2.length > 0) {\n const functionDeclarations2 = [];\n for (const tool of tools) {\n if (tool.type === \"function\") {\n functionDeclarations2.push({\n name: tool.name,\n description: (_a = tool.description) != null ? _a : \"\",\n parameters: convertJSONSchemaToOpenAPISchema(tool.inputSchema)\n });\n }\n }\n const combinedToolConfig = {\n functionCallingConfig: { mode: \"VALIDATED\" },\n ...!isVertexProvider && {\n includeServerSideToolInvocations: true\n }\n };\n if (toolChoice != null) {\n switch (toolChoice.type) {\n case \"auto\":\n break;\n case \"none\":\n combinedToolConfig.functionCallingConfig = { mode: \"NONE\" };\n break;\n case \"required\":\n combinedToolConfig.functionCallingConfig = { mode: \"ANY\" };\n break;\n case \"tool\":\n combinedToolConfig.functionCallingConfig = {\n mode: \"ANY\",\n allowedFunctionNames: [toolChoice.toolName]\n };\n break;\n }\n }\n return {\n tools: [...googleTools2, { functionDeclarations: functionDeclarations2 }],\n toolConfig: combinedToolConfig,\n toolWarnings\n };\n }\n return {\n tools: googleTools2.length > 0 ? googleTools2 : void 0,\n toolConfig: void 0,\n toolWarnings\n };\n }\n const functionDeclarations = [];\n let hasStrictTools = false;\n for (const tool of tools) {\n switch (tool.type) {\n case \"function\":\n functionDeclarations.push({\n name: tool.name,\n description: (_b = tool.description) != null ? _b : \"\",\n parameters: convertJSONSchemaToOpenAPISchema(tool.inputSchema)\n });\n if (tool.strict === true) {\n hasStrictTools = true;\n }\n break;\n default:\n toolWarnings.push({\n type: \"unsupported\",\n feature: `function tool ${tool.name}`\n });\n break;\n }\n }\n if (toolChoice == null) {\n return {\n tools: [{ functionDeclarations }],\n toolConfig: hasStrictTools ? { functionCallingConfig: { mode: \"VALIDATED\" } } : void 0,\n toolWarnings\n };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n return {\n tools: [{ functionDeclarations }],\n toolConfig: {\n functionCallingConfig: {\n mode: hasStrictTools ? \"VALIDATED\" : \"AUTO\"\n }\n },\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: {\n functionCallingConfig: {\n mode: hasStrictTools ? \"VALIDATED\" : \"ANY\"\n }\n },\n toolWarnings\n };\n case \"tool\":\n return {\n tools: [{ functionDeclarations }],\n toolConfig: {\n functionCallingConfig: {\n mode: hasStrictTools ? \"VALIDATED\" : \"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/google-json-accumulator.ts\nvar GoogleJSONAccumulator = class {\n constructor() {\n this.accumulatedArgs = {};\n this.jsonText = \"\";\n /**\n * Stack representing the currently \"open\" containers in the JSON output.\n * Entry 0 is always the root `{` object once the first value is written.\n */\n this.pathStack = [];\n /**\n * Whether a string value is currently \"open\" (willContinue was true),\n * meaning the closing quote has not yet been emitted.\n */\n this.stringOpen = false;\n }\n /**\n * Input: [{jsonPath:\"$.brightness\",numberValue:50}]\n * Output: { currentJSON:{brightness:50}, textDelta:'{\"brightness\":50' }\n */\n processPartialArgs(partialArgs) {\n let delta = \"\";\n for (const arg of partialArgs) {\n const rawPath = arg.jsonPath.replace(/^\\$\\./, \"\");\n if (!rawPath) continue;\n const segments = parsePath(rawPath);\n const existingValue = getNestedValue(this.accumulatedArgs, segments);\n const isStringContinuation = arg.stringValue != null && existingValue !== void 0;\n if (isStringContinuation) {\n const escaped = JSON.stringify(arg.stringValue).slice(1, -1);\n setNestedValue(\n this.accumulatedArgs,\n segments,\n existingValue + arg.stringValue\n );\n delta += escaped;\n continue;\n }\n const resolved = resolvePartialArgValue(arg);\n if (resolved == null) continue;\n setNestedValue(this.accumulatedArgs, segments, resolved.value);\n delta += this.emitNavigationTo(segments, arg, resolved.json);\n }\n this.jsonText += delta;\n return {\n currentJSON: this.accumulatedArgs,\n textDelta: delta\n };\n }\n /**\n * Input: jsonText='{\"brightness\":50', accumulatedArgs={brightness:50}\n * Output: { finalJSON:'{\"brightness\":50}', closingDelta:'}' }\n */\n finalize() {\n const finalArgs = JSON.stringify(this.accumulatedArgs);\n const closingDelta = finalArgs.slice(this.jsonText.length);\n return { finalJSON: finalArgs, closingDelta };\n }\n /**\n * Input: pathStack=[] (first call) or pathStack=[root,...] (subsequent calls)\n * Output: '{' (first call) or '' (subsequent calls)\n */\n ensureRoot() {\n if (this.pathStack.length === 0) {\n this.pathStack.push({ segment: \"\", isArray: false, childCount: 0 });\n return \"{\";\n }\n return \"\";\n }\n /**\n * Emits the JSON text fragment needed to navigate from the current open\n * path to the new leaf at `targetSegments`, then writes the value.\n *\n * Input: targetSegments=[\"recipe\",\"name\"], arg={jsonPath:\"$.recipe.name\",stringValue:\"Lasagna\"}, valueJson='\"Lasagna\"'\n * Output: '{\"recipe\":{\"name\":\"Lasagna\"'\n */\n emitNavigationTo(targetSegments, arg, valueJson) {\n let fragment = \"\";\n if (this.stringOpen) {\n fragment += '\"';\n this.stringOpen = false;\n }\n fragment += this.ensureRoot();\n const targetContainerSegments = targetSegments.slice(0, -1);\n const leafSegment = targetSegments[targetSegments.length - 1];\n const commonDepth = this.findCommonStackDepth(targetContainerSegments);\n fragment += this.closeDownTo(commonDepth);\n fragment += this.openDownTo(targetContainerSegments, leafSegment);\n fragment += this.emitLeaf(leafSegment, arg, valueJson);\n return fragment;\n }\n /**\n * Returns the stack depth to preserve when navigating to a new target\n * container path. Always >= 1 (the root is never popped).\n *\n * Input: stack=[root,\"recipe\",\"ingredients\",0], target=[\"recipe\",\"ingredients\",1]\n * Output: 3 (keep root+\"recipe\"+\"ingredients\")\n */\n findCommonStackDepth(targetContainer) {\n const maxDepth = Math.min(\n this.pathStack.length - 1,\n targetContainer.length\n );\n let common = 0;\n for (let i = 0; i < maxDepth; i++) {\n if (this.pathStack[i + 1].segment === targetContainer[i]) {\n common++;\n } else {\n break;\n }\n }\n return common + 1;\n }\n /**\n * Closes containers from the current stack depth back down to `targetDepth`.\n *\n * Input: this.pathStack=[root,\"recipe\",\"ingredients\",0], targetDepth=3\n * Output: '}'\n */\n closeDownTo(targetDepth) {\n let fragment = \"\";\n while (this.pathStack.length > targetDepth) {\n const entry = this.pathStack.pop();\n fragment += entry.isArray ? \"]\" : \"}\";\n }\n return fragment;\n }\n /**\n * Opens containers from the current stack depth down to the full target\n * container path, emitting opening `{`, `[`, keys, and commas as needed.\n * `leafSegment` is used to determine if the innermost container is an array.\n *\n * Input: this.pathStack=[root], targetContainer=[\"recipe\",\"ingredients\"], leafSegment=0\n * Output: '\"recipe\":{\"ingredients\":['\n */\n openDownTo(targetContainer, leafSegment) {\n let fragment = \"\";\n const startIdx = this.pathStack.length - 1;\n for (let i = startIdx; i < targetContainer.length; i++) {\n const seg = targetContainer[i];\n const parentEntry = this.pathStack[this.pathStack.length - 1];\n if (parentEntry.childCount > 0) {\n fragment += \",\";\n }\n parentEntry.childCount++;\n if (typeof seg === \"string\") {\n fragment += `${JSON.stringify(seg)}:`;\n }\n const childSeg = i + 1 < targetContainer.length ? targetContainer[i + 1] : leafSegment;\n const isArray = typeof childSeg === \"number\";\n fragment += isArray ? \"[\" : \"{\";\n this.pathStack.push({ segment: seg, isArray, childCount: 0 });\n }\n return fragment;\n }\n /**\n * Emits the comma, key, and value for a leaf entry in the current container.\n *\n * Input: leafSegment=\"name\", arg={stringValue:\"Lasagna\"}, valueJson='\"Lasagna\"'\n * Output: '\"name\":\"Lasagna\"' (or ',\"name\":\"Lasagna\"' if container.childCount > 0)\n */\n emitLeaf(leafSegment, arg, valueJson) {\n let fragment = \"\";\n const container = this.pathStack[this.pathStack.length - 1];\n if (container.childCount > 0) {\n fragment += \",\";\n }\n container.childCount++;\n if (typeof leafSegment === \"string\") {\n fragment += `${JSON.stringify(leafSegment)}:`;\n }\n if (arg.stringValue != null && arg.willContinue) {\n fragment += valueJson.slice(0, -1);\n this.stringOpen = true;\n } else {\n fragment += valueJson;\n }\n return fragment;\n }\n};\nfunction parsePath(rawPath) {\n const segments = [];\n for (const part of rawPath.split(\".\")) {\n const bracketIdx = part.indexOf(\"[\");\n if (bracketIdx === -1) {\n segments.push(part);\n } else {\n if (bracketIdx > 0) segments.push(part.slice(0, bracketIdx));\n for (const m of part.matchAll(/\\[(\\d+)\\]/g)) {\n segments.push(parseInt(m[1], 10));\n }\n }\n }\n return segments;\n}\nfunction getNestedValue(obj, segments) {\n let current = obj;\n for (const seg of segments) {\n if (current == null || typeof current !== \"object\") return void 0;\n current = current[seg];\n }\n return current;\n}\nfunction setNestedValue(obj, segments, value) {\n let current = obj;\n for (let i = 0; i < segments.length - 1; i++) {\n const seg = segments[i];\n const nextSeg = segments[i + 1];\n if (current[seg] == null) {\n current[seg] = typeof nextSeg === \"number\" ? [] : {};\n }\n current = current[seg];\n }\n current[segments[segments.length - 1]] = value;\n}\nfunction resolvePartialArgValue(arg) {\n var _a, _b;\n const value = (_b = (_a = arg.stringValue) != null ? _a : arg.numberValue) != null ? _b : arg.boolValue;\n if (value != null) return { value, json: JSON.stringify(value) };\n if (\"nullValue\" in arg) return { value: null, json: \"null\" };\n return void 0;\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 \"MALFORMED_FUNCTION_CALL\":\n return \"error\";\n case \"FINISH_REASON_UNSPECIFIED\":\n case \"OTHER\":\n default:\n return \"other\";\n }\n}\n\n// src/google-generative-ai-language-model.ts\nvar GoogleGenerativeAILanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\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 }, { isStreaming = false } = {}) {\n var _a, _b;\n const warnings = [];\n const providerOptionsName = this.config.provider.includes(\"vertex\") ? \"vertex\" : \"google\";\n let googleOptions = await parseProviderOptions({\n provider: providerOptionsName,\n providerOptions,\n schema: googleLanguageModelOptions\n });\n if (googleOptions == null && providerOptionsName !== \"google\") {\n googleOptions = await parseProviderOptions({\n provider: \"google\",\n providerOptions,\n schema: googleLanguageModelOptions\n });\n }\n const isVertexProvider = this.config.provider.startsWith(\"google.vertex.\");\n if ((tools == null ? void 0 : tools.some(\n (tool) => tool.type === \"provider\" && tool.id === \"google.vertex_rag_store\"\n )) && !isVertexProvider) {\n warnings.push({\n type: \"other\",\n message: `The 'vertex_rag_store' tool 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 if ((googleOptions == null ? void 0 : googleOptions.streamFunctionCallArguments) && !isVertexProvider) {\n warnings.push({\n type: \"other\",\n message: `'streamFunctionCallArguments' is only supported on the Vertex AI API and will be ignored with the current Google provider (${this.config.provider}). See https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling#streaming-fc`\n });\n }\n let sanitizedServiceTier = googleOptions == null ? void 0 : googleOptions.serviceTier;\n if ((googleOptions == null ? void 0 : googleOptions.serviceTier) && isVertexProvider) {\n sanitizedServiceTier = VertexServiceTierMap[googleOptions.serviceTier];\n }\n const isGemmaModel = this.modelId.toLowerCase().startsWith(\"gemma-\");\n const supportsFunctionResponseParts = this.modelId.startsWith(\"gemini-3\");\n const { contents, systemInstruction } = convertToGoogleGenerativeAIMessages(\n prompt,\n {\n isGemmaModel,\n providerOptionsName,\n supportsFunctionResponseParts\n }\n );\n const {\n tools: googleTools2,\n toolConfig: googleToolConfig,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice,\n modelId: this.modelId,\n isVertexProvider\n });\n const streamFunctionCallArguments = isStreaming && isVertexProvider ? (_a = googleOptions == null ? void 0 : googleOptions.streamFunctionCallArguments) != null ? _a : false : void 0;\n const toolConfig = googleToolConfig || streamFunctionCallArguments || (googleOptions == null ? void 0 : googleOptions.retrievalConfig) ? {\n ...googleToolConfig,\n ...streamFunctionCallArguments && {\n functionCallingConfig: {\n ...googleToolConfig == null ? void 0 : googleToolConfig.functionCallingConfig,\n streamFunctionCallArguments: true\n }\n },\n ...(googleOptions == null ? void 0 : googleOptions.retrievalConfig) && {\n retrievalConfig: googleOptions.retrievalConfig\n }\n } : void 0;\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.mediaResolution) && {\n mediaResolution: googleOptions.mediaResolution\n },\n ...(googleOptions == null ? void 0 : googleOptions.imageConfig) && {\n imageConfig: googleOptions.imageConfig\n }\n },\n contents,\n systemInstruction: isGemmaModel ? void 0 : systemInstruction,\n safetySettings: googleOptions == null ? void 0 : googleOptions.safetySettings,\n tools: googleTools2,\n toolConfig,\n cachedContent: googleOptions == null ? void 0 : googleOptions.cachedContent,\n labels: googleOptions == null ? void 0 : googleOptions.labels,\n serviceTier: sanitizedServiceTier\n },\n warnings: [...warnings, ...toolWarnings],\n providerOptionsName\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, providerOptionsName } = await this.getArgs(options);\n const mergedHeaders = combineHeaders(\n await resolve(this.config.headers),\n options.headers\n );\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/${getModelPath(\n this.modelId\n )}:generateContent`,\n headers: mergedHeaders,\n body: args,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(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 let lastServerToolCallId;\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: (_d = part.codeExecutionResult.output) != null ? _d : \"\"\n }\n });\n lastCodeExecutionToolCallId = void 0;\n } else if (\"text\" in part && part.text != null) {\n const thoughtSignatureMetadata = part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature\n }\n } : void 0;\n if (part.text.length === 0) {\n if (thoughtSignatureMetadata != null && content.length > 0) {\n const lastContent = content[content.length - 1];\n lastContent.providerMetadata = thoughtSignatureMetadata;\n }\n } else {\n content.push({\n type: part.thought === true ? \"reasoning\" : \"text\",\n text: part.text,\n providerMetadata: thoughtSignatureMetadata\n });\n }\n } else if (\"functionCall\" in part && part.functionCall.name != null) {\n content.push({\n type: \"tool-call\",\n toolCallId: this.config.generateId(),\n toolName: part.functionCall.name,\n input: JSON.stringify((_e = part.functionCall.args) != null ? _e : {}),\n providerMetadata: part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature\n }\n } : void 0\n });\n } else if (\"inlineData\" in part) {\n const hasThought = part.thought === true;\n const hasThoughtSignature = !!part.thoughtSignature;\n content.push({\n type: \"file\",\n data: part.inlineData.data,\n mediaType: part.inlineData.mimeType,\n providerMetadata: hasThought || hasThoughtSignature ? {\n [providerOptionsName]: {\n ...hasThought ? { thought: true } : {},\n ...hasThoughtSignature ? { thoughtSignature: part.thoughtSignature } : {}\n }\n } : void 0\n });\n } else if (\"toolCall\" in part && part.toolCall) {\n const toolCallId = (_f = part.toolCall.id) != null ? _f : this.config.generateId();\n lastServerToolCallId = toolCallId;\n content.push({\n type: \"tool-call\",\n toolCallId,\n toolName: `server:${part.toolCall.toolType}`,\n input: JSON.stringify((_g = part.toolCall.args) != null ? _g : {}),\n providerExecuted: true,\n dynamic: true,\n providerMetadata: part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature,\n serverToolCallId: toolCallId,\n serverToolType: part.toolCall.toolType\n }\n } : {\n [providerOptionsName]: {\n serverToolCallId: toolCallId,\n serverToolType: part.toolCall.toolType\n }\n }\n });\n } else if (\"toolResponse\" in part && part.toolResponse) {\n const responseToolCallId = (_h = lastServerToolCallId != null ? lastServerToolCallId : part.toolResponse.id) != null ? _h : this.config.generateId();\n content.push({\n type: \"tool-result\",\n toolCallId: responseToolCallId,\n toolName: `server:${part.toolResponse.toolType}`,\n result: (_i = part.toolResponse.response) != null ? _i : {},\n providerMetadata: part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature,\n serverToolCallId: responseToolCallId,\n serverToolType: part.toolResponse.toolType\n }\n } : {\n [providerOptionsName]: {\n serverToolCallId: responseToolCallId,\n serverToolType: part.toolResponse.toolType\n }\n }\n });\n lastServerToolCallId = void 0;\n }\n }\n const sources = (_j = extractSources({\n groundingMetadata: candidate.groundingMetadata,\n generateId: this.config.generateId\n })) != null ? _j : [];\n for (const source of sources) {\n content.push(source);\n }\n return {\n content,\n finishReason: {\n unified: mapGoogleGenerativeAIFinishReason({\n finishReason: candidate.finishReason,\n // Only count client-executed tool calls for finish reason determination.\n hasToolCalls: content.some(\n (part) => part.type === \"tool-call\" && !part.providerExecuted\n )\n }),\n raw: (_k = candidate.finishReason) != null ? _k : void 0\n },\n usage: convertGoogleGenerativeAIUsage(usageMetadata),\n warnings,\n providerMetadata: {\n [providerOptionsName]: {\n promptFeedback: (_l = response.promptFeedback) != null ? _l : null,\n groundingMetadata: (_m = candidate.groundingMetadata) != null ? _m : null,\n urlContextMetadata: (_n = candidate.urlContextMetadata) != null ? _n : null,\n safetyRatings: (_o = candidate.safetyRatings) != null ? _o : null,\n usageMetadata: usageMetadata != null ? usageMetadata : null,\n finishMessage: (_p = candidate.finishMessage) != null ? _p : null,\n serviceTier: (_q = response.serviceTier) != null ? _q : null\n }\n },\n request: { body: args },\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, providerOptionsName } = await this.getArgs(\n options,\n { isStreaming: true }\n );\n const headers = combineHeaders(\n await resolve(this.config.headers),\n options.headers\n );\n const { responseHeaders, value: response } = await postJsonToApi({\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 = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let providerMetadata = void 0;\n let lastGroundingMetadata = null;\n let lastUrlContextMetadata = null;\n let serviceTier = null;\n const generateId2 = 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 let lastServerToolCallId;\n const activeStreamingToolCalls = [];\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 = usageMetadata;\n }\n if (value.serviceTier != null) {\n serviceTier = value.serviceTier;\n }\n const candidate = (_a = value.candidates) == null ? void 0 : _a[0];\n if (candidate == null) {\n return;\n }\n const content = candidate.content;\n if (candidate.groundingMetadata != null) {\n lastGroundingMetadata = candidate.groundingMetadata;\n }\n if (candidate.urlContextMetadata != null) {\n lastUrlContextMetadata = candidate.urlContextMetadata;\n }\n const sources = extractSources({\n groundingMetadata: candidate.groundingMetadata,\n generateId: generateId2\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 = (_b = content.parts) != null ? _b : [];\n for (const part of parts) {\n if (\"executableCode\" in part && ((_c = part.executableCode) == null ? void 0 : _c.code)) {\n const toolCallId = generateId2();\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 } 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: (_d = part.codeExecutionResult.output) != null ? _d : \"\"\n }\n });\n lastCodeExecutionToolCallId = void 0;\n }\n } else if (\"text\" in part && part.text != null) {\n const thoughtSignatureMetadata = part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature\n }\n } : void 0;\n if (part.text.length === 0) {\n if (thoughtSignatureMetadata != null && currentTextBlockId !== null) {\n controller.enqueue({\n type: \"text-delta\",\n id: currentTextBlockId,\n delta: \"\",\n providerMetadata: thoughtSignatureMetadata\n });\n }\n } else 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: thoughtSignatureMetadata\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: currentReasoningBlockId,\n delta: part.text,\n providerMetadata: thoughtSignatureMetadata\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: thoughtSignatureMetadata\n });\n }\n controller.enqueue({\n type: \"text-delta\",\n id: currentTextBlockId,\n delta: part.text,\n providerMetadata: thoughtSignatureMetadata\n });\n }\n } else if (\"inlineData\" in part) {\n if (currentTextBlockId !== null) {\n controller.enqueue({\n type: \"text-end\",\n id: currentTextBlockId\n });\n currentTextBlockId = null;\n }\n if (currentReasoningBlockId !== null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: currentReasoningBlockId\n });\n currentReasoningBlockId = null;\n }\n const hasThought = part.thought === true;\n const hasThoughtSignature = !!part.thoughtSignature;\n const fileMeta = hasThought || hasThoughtSignature ? {\n [providerOptionsName]: {\n ...hasThought ? { thought: true } : {},\n ...hasThoughtSignature ? { thoughtSignature: part.thoughtSignature } : {}\n }\n } : void 0;\n controller.enqueue({\n type: \"file\",\n mediaType: part.inlineData.mimeType,\n data: part.inlineData.data,\n providerMetadata: fileMeta\n });\n } else if (\"toolCall\" in part && part.toolCall) {\n const toolCallId = (_e = part.toolCall.id) != null ? _e : generateId2();\n lastServerToolCallId = toolCallId;\n const serverMeta = {\n [providerOptionsName]: {\n ...part.thoughtSignature ? { thoughtSignature: part.thoughtSignature } : {},\n serverToolCallId: toolCallId,\n serverToolType: part.toolCall.toolType\n }\n };\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName: `server:${part.toolCall.toolType}`,\n input: JSON.stringify((_f = part.toolCall.args) != null ? _f : {}),\n providerExecuted: true,\n dynamic: true,\n providerMetadata: serverMeta\n });\n } else if (\"toolResponse\" in part && part.toolResponse) {\n const responseToolCallId = (_g = lastServerToolCallId != null ? lastServerToolCallId : part.toolResponse.id) != null ? _g : generateId2();\n const serverMeta = {\n [providerOptionsName]: {\n ...part.thoughtSignature ? { thoughtSignature: part.thoughtSignature } : {},\n serverToolCallId: responseToolCallId,\n serverToolType: part.toolResponse.toolType\n }\n };\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: responseToolCallId,\n toolName: `server:${part.toolResponse.toolType}`,\n result: (_h = part.toolResponse.response) != null ? _h : {},\n providerMetadata: serverMeta\n });\n lastServerToolCallId = void 0;\n }\n }\n for (const part of parts) {\n if (!(\"functionCall\" in part)) continue;\n const providerMeta = part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature\n }\n } : void 0;\n const isStreamingChunk = part.functionCall.partialArgs != null || part.functionCall.name != null && part.functionCall.willContinue === true;\n const isTerminalChunk = part.functionCall.name == null && part.functionCall.args == null && part.functionCall.partialArgs == null && part.functionCall.willContinue == null;\n const isCompleteCall = part.functionCall.name != null && part.functionCall.args != null && part.functionCall.partialArgs == null;\n const isNoArgsCompleteCall = part.functionCall.name != null && part.functionCall.args == null && part.functionCall.partialArgs == null && part.functionCall.willContinue !== true;\n if (isStreamingChunk) {\n if (part.functionCall.name != null && part.functionCall.willContinue === true) {\n const toolCallId = generateId2();\n const accumulator = new GoogleJSONAccumulator();\n activeStreamingToolCalls.push({\n toolCallId,\n toolName: part.functionCall.name,\n accumulator,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName: part.functionCall.name,\n providerMetadata: providerMeta\n });\n if (part.functionCall.partialArgs != null) {\n const { textDelta } = accumulator.processPartialArgs(\n part.functionCall.partialArgs\n );\n if (textDelta.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCallId,\n delta: textDelta,\n providerMetadata: providerMeta\n });\n }\n }\n } else if (part.functionCall.partialArgs != null && activeStreamingToolCalls.length > 0) {\n const active = activeStreamingToolCalls[activeStreamingToolCalls.length - 1];\n const { textDelta } = active.accumulator.processPartialArgs(\n part.functionCall.partialArgs\n );\n if (textDelta.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: active.toolCallId,\n delta: textDelta,\n providerMetadata: providerMeta\n });\n }\n }\n } else if (isTerminalChunk && activeStreamingToolCalls.length > 0) {\n const active = activeStreamingToolCalls.pop();\n const { finalJSON, closingDelta } = active.accumulator.finalize();\n if (closingDelta.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: active.toolCallId,\n delta: closingDelta,\n providerMetadata: active.providerMetadata\n });\n }\n controller.enqueue({\n type: \"tool-input-end\",\n id: active.toolCallId,\n providerMetadata: active.providerMetadata\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: active.toolCallId,\n toolName: active.toolName,\n input: finalJSON,\n providerMetadata: active.providerMetadata\n });\n hasToolCalls = true;\n } else if (isCompleteCall) {\n const toolCallId = generateId2();\n const toolName = part.functionCall.name;\n const args2 = typeof part.functionCall.args === \"string\" ? part.functionCall.args : JSON.stringify((_i = part.functionCall.args) != null ? _i : {});\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCallId,\n delta: args2,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCallId,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName,\n input: args2,\n providerMetadata: providerMeta\n });\n hasToolCalls = true;\n } else if (isNoArgsCompleteCall) {\n const toolCallId = generateId2();\n const toolName = part.functionCall.name;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCallId,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName,\n input: \"{}\",\n providerMetadata: providerMeta\n });\n hasToolCalls = true;\n }\n }\n }\n if (candidate.finishReason != null) {\n finishReason = {\n unified: mapGoogleGenerativeAIFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls\n }),\n raw: candidate.finishReason\n };\n providerMetadata = {\n [providerOptionsName]: {\n promptFeedback: (_j = value.promptFeedback) != null ? _j : null,\n groundingMetadata: lastGroundingMetadata,\n urlContextMetadata: lastUrlContextMetadata,\n safetyRatings: (_k = candidate.safetyRatings) != null ? _k : null,\n usageMetadata: usageMetadata != null ? usageMetadata : null,\n finishMessage: (_l = candidate.finishMessage) != null ? _l : null,\n serviceTier\n }\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: convertGoogleGenerativeAIUsage(usage),\n providerMetadata\n });\n }\n })\n ),\n response: { headers: responseHeaders },\n request: { body: args }\n };\n }\n};\nfunction extractSources({\n groundingMetadata,\n generateId: generateId2\n}) {\n var _a, _b, _c, _d, _e, _f;\n if (!(groundingMetadata == null ? void 0 : groundingMetadata.groundingChunks)) {\n return void 0;\n }\n const sources = [];\n for (const chunk of groundingMetadata.groundingChunks) {\n if (chunk.web != null) {\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId2(),\n url: chunk.web.uri,\n title: (_a = chunk.web.title) != null ? _a : void 0\n });\n } else if (chunk.image != null) {\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId2(),\n // Google requires attribution to the source URI, not the actual image URI.\n // TODO: add another type in v7 to allow both the image and source URL to be included separately\n url: chunk.image.sourceUri,\n title: (_b = chunk.image.title) != null ? _b : void 0\n });\n } else if (chunk.retrievedContext != null) {\n const uri = chunk.retrievedContext.uri;\n const fileSearchStore = chunk.retrievedContext.fileSearchStore;\n if (uri && (uri.startsWith(\"http://\") || uri.startsWith(\"https://\"))) {\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId2(),\n url: uri,\n title: (_c = chunk.retrievedContext.title) != null ? _c : void 0\n });\n } else if (uri) {\n const title = (_d = chunk.retrievedContext.title) != null ? _d : \"Unknown Document\";\n let mediaType = \"application/octet-stream\";\n let filename = void 0;\n if (uri.endsWith(\".pdf\")) {\n mediaType = \"application/pdf\";\n filename = uri.split(\"/\").pop();\n } else if (uri.endsWith(\".txt\")) {\n mediaType = \"text/plain\";\n filename = uri.split(\"/\").pop();\n } else if (uri.endsWith(\".docx\")) {\n mediaType = \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\n filename = uri.split(\"/\").pop();\n } else if (uri.endsWith(\".doc\")) {\n mediaType = \"application/msword\";\n filename = uri.split(\"/\").pop();\n } else if (uri.match(/\\.(md|markdown)$/)) {\n mediaType = \"text/markdown\";\n filename = uri.split(\"/\").pop();\n } else {\n filename = uri.split(\"/\").pop();\n }\n sources.push({\n type: \"source\",\n sourceType: \"document\",\n id: generateId2(),\n mediaType,\n title,\n filename\n });\n } else if (fileSearchStore) {\n const title = (_e = chunk.retrievedContext.title) != null ? _e : \"Unknown Document\";\n sources.push({\n type: \"source\",\n sourceType: \"document\",\n id: generateId2(),\n mediaType: \"application/octet-stream\",\n title,\n filename: fileSearchStore.split(\"/\").pop()\n });\n }\n } else if (chunk.maps != null) {\n if (chunk.maps.uri) {\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId2(),\n url: chunk.maps.uri,\n title: (_f = chunk.maps.title) != null ? _f : void 0\n });\n }\n }\n }\n return sources.length > 0 ? sources : void 0;\n}\nvar getGroundingMetadataSchema = () => z3.object({\n webSearchQueries: z3.array(z3.string()).nullish(),\n imageSearchQueries: z3.array(z3.string()).nullish(),\n retrievalQueries: z3.array(z3.string()).nullish(),\n searchEntryPoint: z3.object({ renderedContent: z3.string() }).nullish(),\n groundingChunks: z3.array(\n z3.object({\n web: z3.object({ uri: z3.string(), title: z3.string().nullish() }).nullish(),\n image: z3.object({\n sourceUri: z3.string(),\n imageUri: z3.string(),\n title: z3.string().nullish(),\n domain: z3.string().nullish()\n }).nullish(),\n retrievedContext: z3.object({\n uri: z3.string().nullish(),\n title: z3.string().nullish(),\n text: z3.string().nullish(),\n fileSearchStore: z3.string().nullish()\n }).nullish(),\n maps: z3.object({\n uri: z3.string().nullish(),\n title: z3.string().nullish(),\n text: z3.string().nullish(),\n placeId: z3.string().nullish()\n }).nullish()\n })\n ).nullish(),\n groundingSupports: z3.array(\n z3.object({\n segment: z3.object({\n startIndex: z3.number().nullish(),\n endIndex: z3.number().nullish(),\n text: z3.string().nullish()\n }).nullish(),\n segment_text: z3.string().nullish(),\n groundingChunkIndices: z3.array(z3.number()).nullish(),\n supportChunkIndices: z3.array(z3.number()).nullish(),\n confidenceScores: z3.array(z3.number()).nullish(),\n confidenceScore: z3.array(z3.number()).nullish()\n })\n ).nullish(),\n retrievalMetadata: z3.union([\n z3.object({\n webDynamicRetrievalScore: z3.number()\n }),\n z3.object({})\n ]).nullish()\n});\nvar partialArgSchema = z3.object({\n jsonPath: z3.string(),\n stringValue: z3.string().nullish(),\n numberValue: z3.number().nullish(),\n boolValue: z3.boolean().nullish(),\n nullValue: z3.unknown().nullish(),\n willContinue: z3.boolean().nullish()\n});\nvar getContentSchema = () => z3.object({\n parts: z3.array(\n z3.union([\n // note: order matters since text can be fully empty\n z3.object({\n functionCall: z3.object({\n name: z3.string().nullish(),\n args: z3.unknown().nullish(),\n partialArgs: z3.array(partialArgSchema).nullish(),\n willContinue: z3.boolean().nullish()\n }),\n thoughtSignature: z3.string().nullish()\n }),\n z3.object({\n inlineData: z3.object({\n mimeType: z3.string(),\n data: z3.string()\n }),\n thought: z3.boolean().nullish(),\n thoughtSignature: z3.string().nullish()\n }),\n z3.object({\n toolCall: z3.object({\n toolType: z3.string(),\n args: z3.unknown().nullish(),\n id: z3.string()\n }),\n thoughtSignature: z3.string().nullish()\n }),\n z3.object({\n toolResponse: z3.object({\n toolType: z3.string(),\n response: z3.unknown().nullish(),\n id: z3.string()\n }),\n thoughtSignature: z3.string().nullish()\n }),\n z3.object({\n executableCode: z3.object({\n language: z3.string(),\n code: z3.string()\n }).nullish(),\n codeExecutionResult: z3.object({\n outcome: z3.string(),\n output: z3.string().nullish()\n }).nullish(),\n text: z3.string().nullish(),\n thought: z3.boolean().nullish(),\n thoughtSignature: z3.string().nullish()\n })\n ])\n ).nullish()\n});\nvar getSafetyRatingSchema = () => z3.object({\n category: z3.string().nullish(),\n probability: z3.string().nullish(),\n probabilityScore: z3.number().nullish(),\n severity: z3.string().nullish(),\n severityScore: z3.number().nullish(),\n blocked: z3.boolean().nullish()\n});\nvar tokenDetailsSchema = z3.array(\n z3.object({\n modality: z3.string(),\n tokenCount: z3.number()\n })\n).nullish();\nvar usageSchema = z3.object({\n cachedContentTokenCount: z3.number().nullish(),\n thoughtsTokenCount: z3.number().nullish(),\n promptTokenCount: z3.number().nullish(),\n candidatesTokenCount: z3.number().nullish(),\n totalTokenCount: z3.number().nullish(),\n // https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/GenerateContentResponse#TrafficType\n trafficType: z3.string().nullish(),\n // https://ai.google.dev/api/generate-content#Modality\n promptTokensDetails: tokenDetailsSchema,\n candidatesTokensDetails: tokenDetailsSchema\n});\nvar getUrlContextMetadataSchema = () => z3.object({\n urlMetadata: z3.array(\n z3.object({\n retrievedUrl: z3.string(),\n urlRetrievalStatus: z3.string()\n })\n ).nullish()\n});\nvar responseSchema = lazySchema3(\n () => zodSchema3(\n z3.object({\n candidates: z3.array(\n z3.object({\n content: getContentSchema().nullish().or(z3.object({}).strict()),\n finishReason: z3.string().nullish(),\n finishMessage: z3.string().nullish(),\n safetyRatings: z3.array(getSafetyRatingSchema()).nullish(),\n groundingMetadata: getGroundingMetadataSchema().nullish(),\n urlContextMetadata: getUrlContextMetadataSchema().nullish()\n })\n ),\n usageMetadata: usageSchema.nullish(),\n promptFeedback: z3.object({\n blockReason: z3.string().nullish(),\n safetyRatings: z3.array(getSafetyRatingSchema()).nullish()\n }).nullish(),\n serviceTier: z3.string().nullish()\n })\n )\n);\nvar chunkSchema = lazySchema3(\n () => zodSchema3(\n z3.object({\n candidates: z3.array(\n z3.object({\n content: getContentSchema().nullish(),\n finishReason: z3.string().nullish(),\n finishMessage: z3.string().nullish(),\n safetyRatings: z3.array(getSafetyRatingSchema()).nullish(),\n groundingMetadata: getGroundingMetadataSchema().nullish(),\n urlContextMetadata: getUrlContextMetadataSchema().nullish()\n })\n ).nullish(),\n usageMetadata: usageSchema.nullish(),\n promptFeedback: z3.object({\n blockReason: z3.string().nullish(),\n safetyRatings: z3.array(getSafetyRatingSchema()).nullish()\n }).nullish(),\n serviceTier: z3.string().nullish()\n })\n )\n);\n\n// src/tool/code-execution.ts\nimport { createProviderToolFactoryWithOutputSchema } from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar codeExecution = createProviderToolFactoryWithOutputSchema({\n id: \"google.code_execution\",\n inputSchema: z4.object({\n language: z4.string().describe(\"The programming language of the code.\"),\n code: z4.string().describe(\"The code to be executed.\")\n }),\n outputSchema: z4.object({\n outcome: z4.string().describe('The outcome of the execution (e.g., \"OUTCOME_OK\").'),\n output: z4.string().describe(\"The output from the code execution.\")\n })\n});\n\n// src/tool/enterprise-web-search.ts\nimport {\n createProviderToolFactory,\n lazySchema as lazySchema4,\n zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\nvar enterpriseWebSearch = createProviderToolFactory({\n id: \"google.enterprise_web_search\",\n inputSchema: lazySchema4(() => zodSchema4(z5.object({})))\n});\n\n// src/tool/file-search.ts\nimport {\n createProviderToolFactory as createProviderToolFactory2,\n lazySchema as lazySchema5,\n zodSchema as zodSchema5\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar fileSearchArgsBaseSchema = z6.object({\n /** The names of the file_search_stores to retrieve from.\n * Example: `fileSearchStores/my-file-search-store-123`\n */\n fileSearchStoreNames: z6.array(z6.string()).describe(\n \"The names of the file_search_stores to retrieve from. Example: `fileSearchStores/my-file-search-store-123`\"\n ),\n /** The number of file search retrieval chunks to retrieve. */\n topK: z6.number().int().positive().describe(\"The number of file search retrieval chunks to retrieve.\").optional(),\n /** Metadata filter to apply to the file search retrieval documents.\n * See https://google.aip.dev/160 for the syntax of the filter expression.\n */\n metadataFilter: z6.string().describe(\n \"Metadata filter to apply to the file search retrieval documents. See https://google.aip.dev/160 for the syntax of the filter expression.\"\n ).optional()\n}).passthrough();\nvar fileSearchArgsSchema = lazySchema5(\n () => zodSchema5(fileSearchArgsBaseSchema)\n);\nvar fileSearch = createProviderToolFactory2({\n id: \"google.file_search\",\n inputSchema: fileSearchArgsSchema\n});\n\n// src/tool/google-maps.ts\nimport {\n createProviderToolFactory as createProviderToolFactory3,\n lazySchema as lazySchema6,\n zodSchema as zodSchema6\n} from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\nvar googleMaps = createProviderToolFactory3({\n id: \"google.google_maps\",\n inputSchema: lazySchema6(() => zodSchema6(z7.object({})))\n});\n\n// src/tool/google-search.ts\nimport {\n createProviderToolFactory as createProviderToolFactory4,\n lazySchema as lazySchema7,\n zodSchema as zodSchema7\n} from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar googleSearchToolArgsBaseSchema = z8.object({\n searchTypes: z8.object({\n webSearch: z8.object({}).optional(),\n imageSearch: z8.object({}).optional()\n }).optional(),\n timeRangeFilter: z8.object({\n startTime: z8.string(),\n endTime: z8.string()\n }).optional()\n}).passthrough();\nvar googleSearchToolArgsSchema = lazySchema7(\n () => zodSchema7(googleSearchToolArgsBaseSchema)\n);\nvar googleSearch = createProviderToolFactory4(\n {\n id: \"google.google_search\",\n inputSchema: googleSearchToolArgsSchema\n }\n);\n\n// src/tool/url-context.ts\nimport {\n createProviderToolFactory as createProviderToolFactory5,\n lazySchema as lazySchema8,\n zodSchema as zodSchema8\n} from \"@ai-sdk/provider-utils\";\nimport { z as z9 } from \"zod/v4\";\nvar urlContext = createProviderToolFactory5({\n id: \"google.url_context\",\n inputSchema: lazySchema8(() => zodSchema8(z9.object({})))\n});\n\n// src/tool/vertex-rag-store.ts\nimport { createProviderToolFactory as createProviderToolFactory6 } from \"@ai-sdk/provider-utils\";\nimport { z as z10 } from \"zod/v4\";\nvar vertexRagStore = createProviderToolFactory6({\n id: \"google.vertex_rag_store\",\n inputSchema: z10.object({\n ragCorpus: z10.string(),\n topK: z10.number().optional()\n })\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 an Enterprise Web Search tool for grounding responses using a compliance-focused web index.\n * Designed for highly-regulated industries (finance, healthcare, public sector).\n * Does not log customer data and supports VPC service controls.\n * Must have name \"enterprise_web_search\".\n *\n * @note Only available on Vertex AI. Requires Gemini 2.0 or newer.\n *\n * @see https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/web-grounding-enterprise\n */\n enterpriseWebSearch,\n /**\n * Creates a Google Maps grounding tool that gives the model access to Google Maps data.\n * Must have name \"google_maps\".\n *\n * @see https://ai.google.dev/gemini-api/docs/maps-grounding\n * @see https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-maps\n */\n googleMaps,\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 * Enables Retrieval Augmented Generation (RAG) via the Gemini File Search tool.\n * Must have name \"file_search\".\n *\n * @param fileSearchStoreNames - Fully-qualified File Search store resource names.\n * @param metadataFilter - Optional filter expression to restrict the files that can be retrieved.\n * @param topK - Optional result limit for the number of chunks returned from File Search.\n *\n * @see https://ai.google.dev/gemini-api/docs/file-search\n */\n fileSearch,\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 * Creates a Vertex RAG Store tool that enables the model to perform RAG searches against a Vertex RAG Store.\n * Must have name \"vertex_rag_store\".\n */\n vertexRagStore\n};\nexport {\n GoogleGenerativeAILanguageModel,\n getGroundingMetadataSchema,\n getUrlContextMetadataSchema,\n googleTools\n};\n//# sourceMappingURL=index.mjs.map"
|
|
7
7
|
],
|
|
8
8
|
"mappings": "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",
|
|
9
|
-
"debugId": "
|
|
9
|
+
"debugId": "9CF4FF28FDA0572764756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -10,6 +10,6 @@
|
|
|
10
10
|
"\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_util_exports = {};\n__export(token_util_exports, {\n assertVercelOidcTokenResponse: () => assertVercelOidcTokenResponse,\n findProjectInfo: () => findProjectInfo,\n getTokenPayload: () => getTokenPayload,\n getVercelDataDir: () => getVercelDataDir,\n getVercelOidcToken: () => getVercelOidcToken,\n getVercelToken: () => getVercelToken,\n isExpired: () => isExpired,\n loadToken: () => loadToken,\n saveToken: () => saveToken\n});\nmodule.exports = __toCommonJS(token_util_exports);\nvar path = __toESM(require(\"path\"));\nvar fs = __toESM(require(\"fs\"));\nvar import_token_error = require(\"./token-error\");\nvar import_token_io = require(\"./token-io\");\nvar import_auth_config = require(\"./auth-config\");\nvar import_oauth = require(\"./oauth\");\nvar import_auth_errors = require(\"./auth-errors\");\nfunction getVercelDataDir() {\n const vercelFolder = \"com.vercel.cli\";\n const dataDir = (0, import_token_io.getUserDataDir)();\n if (!dataDir) {\n return null;\n }\n return path.join(dataDir, vercelFolder);\n}\nasync function getVercelToken(options) {\n const authConfig = (0, import_auth_config.readAuthConfig)();\n if (!authConfig?.token) {\n throw new import_auth_errors.AccessTokenMissingError();\n }\n if ((0, import_auth_config.isValidAccessToken)(authConfig, options?.expirationBufferMs)) {\n return authConfig.token;\n }\n if (!authConfig.refreshToken) {\n (0, import_auth_config.writeAuthConfig)({});\n throw new import_auth_errors.RefreshAccessTokenFailedError(\"No refresh token available\");\n }\n try {\n const tokenResponse = await (0, import_oauth.refreshTokenRequest)({\n refresh_token: authConfig.refreshToken\n });\n const [tokensError, tokens] = await (0, import_oauth.processTokenResponse)(tokenResponse);\n if (tokensError || !tokens) {\n (0, import_auth_config.writeAuthConfig)({});\n throw new import_auth_errors.RefreshAccessTokenFailedError(tokensError);\n }\n const updatedConfig = {\n token: tokens.access_token,\n expiresAt: Math.floor(Date.now() / 1e3) + tokens.expires_in\n };\n if (tokens.refresh_token) {\n updatedConfig.refreshToken = tokens.refresh_token;\n }\n (0, import_auth_config.writeAuthConfig)(updatedConfig);\n return updatedConfig.token;\n } catch (error) {\n (0, import_auth_config.writeAuthConfig)({});\n if (error instanceof import_auth_errors.AccessTokenMissingError || error instanceof import_auth_errors.RefreshAccessTokenFailedError) {\n throw error;\n }\n throw new import_auth_errors.RefreshAccessTokenFailedError(error);\n }\n}\nasync function getVercelOidcToken(authToken, projectId, teamId) {\n const url = `https://api.vercel.com/v1/projects/${projectId}/token?source=vercel-oidc-refresh${teamId ? `&teamId=${teamId}` : \"\"}`;\n const res = await fetch(url, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${authToken}`\n }\n });\n if (!res.ok) {\n throw new import_token_error.VercelOidcTokenError(\n `Failed to refresh OIDC token: ${res.statusText}`\n );\n }\n const tokenRes = await res.json();\n assertVercelOidcTokenResponse(tokenRes);\n return tokenRes;\n}\nfunction assertVercelOidcTokenResponse(res) {\n if (!res || typeof res !== \"object\") {\n throw new TypeError(\n \"Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again\"\n );\n }\n if (!(\"token\" in res) || typeof res.token !== \"string\") {\n throw new TypeError(\n \"Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again\"\n );\n }\n}\nfunction findProjectInfo() {\n const dir = (0, import_token_io.findRootDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\n \"Unable to find project root directory. Have you linked your project with `vc link?`\"\n );\n }\n const prjPath = path.join(dir, \".vercel\", \"project.json\");\n if (!fs.existsSync(prjPath)) {\n throw new import_token_error.VercelOidcTokenError(\n \"project.json not found, have you linked your project with `vc link?`\"\n );\n }\n const prj = JSON.parse(fs.readFileSync(prjPath, \"utf8\"));\n if (typeof prj.projectId !== \"string\" && typeof prj.orgId !== \"string\") {\n throw new TypeError(\n \"Expected a string-valued projectId property. Try running `vc link` to re-link your project.\"\n );\n }\n return { projectId: prj.projectId, teamId: prj.orgId };\n}\nfunction saveToken(token, projectId) {\n const dir = (0, import_token_io.getUserDataDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\n \"Unable to find user data directory. Please reach out to Vercel support.\"\n );\n }\n const tokenPath = path.join(dir, \"com.vercel.token\", `${projectId}.json`);\n const tokenJson = JSON.stringify(token);\n fs.mkdirSync(path.dirname(tokenPath), { mode: 504, recursive: true });\n fs.writeFileSync(tokenPath, tokenJson);\n fs.chmodSync(tokenPath, 432);\n return;\n}\nfunction loadToken(projectId) {\n const dir = (0, import_token_io.getUserDataDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\n \"Unable to find user data directory. Please reach out to Vercel support.\"\n );\n }\n const tokenPath = path.join(dir, \"com.vercel.token\", `${projectId}.json`);\n if (!fs.existsSync(tokenPath)) {\n return null;\n }\n const token = JSON.parse(fs.readFileSync(tokenPath, \"utf8\"));\n assertVercelOidcTokenResponse(token);\n return token;\n}\nfunction getTokenPayload(token) {\n const tokenParts = token.split(\".\");\n if (tokenParts.length !== 3) {\n throw new import_token_error.VercelOidcTokenError(\n \"Invalid token. Please run `vc env pull` and try again\"\n );\n }\n const base64 = tokenParts[1].replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = base64.padEnd(\n base64.length + (4 - base64.length % 4) % 4,\n \"=\"\n );\n return JSON.parse(Buffer.from(padded, \"base64\").toString(\"utf8\"));\n}\nfunction isExpired(token, bufferMs = 0) {\n return token.exp * 1e3 < Date.now() + bufferMs;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n assertVercelOidcTokenResponse,\n findProjectInfo,\n getTokenPayload,\n getVercelDataDir,\n getVercelOidcToken,\n getVercelToken,\n isExpired,\n loadToken,\n saveToken\n});\n"
|
|
11
11
|
],
|
|
12
12
|
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
13
|
+
"debugId": "2699EC07019CFF0064756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260127222353_familiar_lady_ursula\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`\n CREATE TABLE \\`project\\` (\n \\`id\\` text PRIMARY KEY,\n \\`worktree\\` text NOT NULL,\n \\`vcs\\` text,\n \\`name\\` text,\n \\`icon_url\\` text,\n \\`icon_color\\` text,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`time_initialized\\` integer,\n \\`sandboxes\\` text NOT NULL\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`message\\` (\n \\`id\\` text PRIMARY KEY,\n \\`session_id\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_message_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`part\\` (\n \\`id\\` text PRIMARY KEY,\n \\`message_id\\` text NOT NULL,\n \\`session_id\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_part_message_id_message_id_fk\\` FOREIGN KEY (\\`message_id\\`) REFERENCES \\`message\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`permission\\` (\n \\`project_id\\` text PRIMARY KEY,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`data\\` text NOT NULL,\n CONSTRAINT \\`fk_permission_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`session\\` (\n \\`id\\` text PRIMARY KEY,\n \\`project_id\\` text NOT NULL,\n \\`parent_id\\` text,\n \\`slug\\` text NOT NULL,\n \\`directory\\` text NOT NULL,\n \\`title\\` text NOT NULL,\n \\`version\\` text NOT NULL,\n \\`share_url\\` text,\n \\`summary_additions\\` integer,\n \\`summary_deletions\\` integer,\n \\`summary_files\\` integer,\n \\`summary_diffs\\` text,\n \\`revert\\` text,\n \\`permission\\` text,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n \\`time_compacting\\` integer,\n \\`time_archived\\` integer,\n CONSTRAINT \\`fk_session_project_id_project_id_fk\\` FOREIGN KEY (\\`project_id\\`) REFERENCES \\`project\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`todo\\` (\n \\`session_id\\` text NOT NULL,\n \\`content\\` text NOT NULL,\n \\`status\\` text NOT NULL,\n \\`priority\\` text NOT NULL,\n \\`position\\` integer NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`todo_pk\\` PRIMARY KEY(\\`session_id\\`, \\`position\\`),\n CONSTRAINT \\`fk_todo_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`\n CREATE TABLE \\`session_share\\` (\n \\`session_id\\` text PRIMARY KEY,\n \\`id\\` text NOT NULL,\n \\`secret\\` text NOT NULL,\n \\`url\\` text NOT NULL,\n \\`time_created\\` integer NOT NULL,\n \\`time_updated\\` integer NOT NULL,\n CONSTRAINT \\`fk_session_share_session_id_session_id_fk\\` FOREIGN KEY (\\`session_id\\`) REFERENCES \\`session\\`(\\`id\\`) ON DELETE CASCADE\n );\n `)\n yield* tx.run(`CREATE INDEX \\`message_session_idx\\` ON \\`message\\` (\\`session_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`part_message_idx\\` ON \\`part\\` (\\`message_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`part_session_idx\\` ON \\`part\\` (\\`session_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`session_project_idx\\` ON \\`session\\` (\\`project_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`session_parent_idx\\` ON \\`session\\` (\\`parent_id\\`);`)\n yield* tx.run(`CREATE INDEX \\`todo_session_idx\\` ON \\`todo\\` (\\`session_id\\`);`)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";wHAGA,SAAe,QACb,GAAI,sCACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,4YAab,EACD,MAAO,EAAG,IAAI,8XASb,EACD,MAAO,EAAG,IAAI,+ZAUb,EACD,MAAO,EAAG,IAAI,qWAQb,EACD,MAAO,EAAG,IAAI,2zBAsBb,EACD,MAAO,EAAG,IAAI,ghBAYb,EACD,MAAO,EAAG,IAAI,4aAUb,EACD,MAAO,EAAG,IAAI,iEAAuE,EACrF,MAAO,EAAG,IAAI,2DAAiE,EAC/E,MAAO,EAAG,IAAI,2DAAiE,EAC/E,MAAO,EAAG,IAAI,iEAAuE,EACrF,MAAO,EAAG,IAAI,+DAAqE,EACnF,MAAO,EAAG,IAAI,2DAAiE,EAChF,EAEL",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "A7A0F26D6D20561F64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import { Effect } from \"effect\"\nimport type { DatabaseMigration } from \"../migration\"\n\nexport default {\n id: \"20260510033149_session_usage\",\n up(tx) {\n return Effect.gen(function* () {\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`cost\\` real DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_input\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_output\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_reasoning\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_cache_read\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`ALTER TABLE \\`session\\` ADD \\`tokens_cache_write\\` integer DEFAULT 0 NOT NULL;`)\n yield* tx.run(`\n UPDATE session\n SET\n cost = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.cost'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_input = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.input'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_output = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.output'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_reasoning = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.reasoning'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_cache_read = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.cache.read'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0),\n tokens_cache_write = coalesce((\n SELECT sum(coalesce(json_extract(message.data, '$.tokens.cache.write'), 0))\n FROM message\n WHERE message.session_id = session.id\n AND json_extract(message.data, '$.role') = 'assistant'\n ), 0)\n `)\n })\n },\n} satisfies DatabaseMigration.Migration\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";wHAGA,SAAe,QACb,GAAI,+BACJ,EAAE,CAAC,EAAI,CACL,OAAO,EAAO,IAAI,SAAU,EAAG,CAC7B,MAAO,EAAG,IAAI,2DAA+D,EAC7E,MAAO,EAAG,IAAI,sEAA0E,EACxF,MAAO,EAAG,IAAI,uEAA2E,EACzF,MAAO,EAAG,IAAI,0EAA8E,EAC5F,MAAO,EAAG,IAAI,2EAA+E,EAC7F,MAAO,EAAG,IAAI,4EAAgF,EAC9F,MAAO,EAAG,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAuCb,EACF,EAEL",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "7B5C3F08B007D85C64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"'use strict';\n\nvar node_https = require('node:https');\nvar protocols = require('@smithy/core/protocols');\nvar node_stream = require('node:stream');\nvar http2 = require('node:http2');\n\nfunction buildAbortError(abortSignal) {\n const reason = abortSignal && typeof abortSignal === \"object\" && \"reason\" in abortSignal\n ? abortSignal.reason\n : undefined;\n if (reason) {\n if (reason instanceof Error) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n abortError.cause = reason;\n return abortError;\n }\n const abortError = new Error(String(reason));\n abortError.name = \"AbortError\";\n return abortError;\n }\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return abortError;\n}\n\nconst NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n\nconst getTransformedHeaders = (headers) => {\n const transformedHeaders = {};\n for (const name in headers) {\n const headerValues = headers[name];\n transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(\",\") : headerValues;\n }\n return transformedHeaders;\n};\n\nconst timing = {\n setTimeout: (cb, ms) => setTimeout(cb, ms),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n};\n\nconst DEFER_EVENT_LISTENER_TIME$2 = 1000;\nconst setConnectionTimeout = (request, reject, timeoutInMs = 0) => {\n if (!timeoutInMs) {\n return -1;\n }\n const registerTimeout = (offset) => {\n const timeoutId = timing.setTimeout(() => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket did not establish a connection with the server within the configured timeout of ${timeoutInMs} ms.`), {\n name: \"TimeoutError\",\n }));\n }, timeoutInMs - offset);\n const doWithSocket = (socket) => {\n if (socket?.connecting) {\n socket.on(\"connect\", () => {\n timing.clearTimeout(timeoutId);\n });\n }\n else {\n timing.clearTimeout(timeoutId);\n }\n };\n if (request.socket) {\n doWithSocket(request.socket);\n }\n else {\n request.on(\"socket\", doWithSocket);\n }\n };\n if (timeoutInMs < 2000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME$2), DEFER_EVENT_LISTENER_TIME$2);\n};\n\nconst setRequestTimeout = (req, reject, timeoutInMs = 0, throwOnRequestTimeout, logger) => {\n if (timeoutInMs) {\n return timing.setTimeout(() => {\n let msg = `@smithy/node-http-handler - [${throwOnRequestTimeout ? \"ERROR\" : \"WARN\"}] a request has exceeded the configured ${timeoutInMs} ms requestTimeout.`;\n if (throwOnRequestTimeout) {\n const error = Object.assign(new Error(msg), {\n name: \"TimeoutError\",\n code: \"ETIMEDOUT\",\n });\n req.destroy(error);\n reject(error);\n }\n else {\n msg += ` Init client requestHandler with throwOnRequestTimeout=true to turn this into an error.`;\n logger?.warn?.(msg);\n }\n }, timeoutInMs);\n }\n return -1;\n};\n\nconst DEFER_EVENT_LISTENER_TIME$1 = 3000;\nconst setSocketKeepAlive = (request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME$1) => {\n if (keepAlive !== true) {\n return -1;\n }\n const registerListener = () => {\n if (request.socket) {\n request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n }\n else {\n request.on(\"socket\", (socket) => {\n socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n });\n }\n };\n if (deferTimeMs === 0) {\n registerListener();\n return 0;\n }\n return timing.setTimeout(registerListener, deferTimeMs);\n};\n\nconst DEFER_EVENT_LISTENER_TIME = 3000;\nconst setSocketTimeout = (request, reject, timeoutInMs = 0) => {\n const registerTimeout = (offset) => {\n const timeout = timeoutInMs - offset;\n const onTimeout = () => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: \"TimeoutError\" }));\n };\n if (request.socket) {\n request.socket.setTimeout(timeout, onTimeout);\n request.on(\"close\", () => request.socket?.removeListener(\"timeout\", onTimeout));\n }\n else {\n request.setTimeout(timeout, onTimeout);\n }\n };\n if (0 < timeoutInMs && timeoutInMs < 6000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);\n};\n\nconst MIN_WAIT_TIME = 6_000;\nasync function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME, externalAgent = false) {\n const headers = request.headers;\n const expect = headers ? headers.Expect || headers.expect : undefined;\n let timeoutId = -1;\n let sendBody = true;\n if (!externalAgent && expect === \"100-continue\") {\n sendBody = await Promise.race([\n new Promise((resolve) => {\n timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs)));\n }),\n new Promise((resolve) => {\n httpRequest.on(\"continue\", () => {\n timing.clearTimeout(timeoutId);\n resolve(true);\n });\n httpRequest.on(\"response\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n httpRequest.on(\"error\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n }),\n ]);\n }\n if (sendBody) {\n writeBody(httpRequest, request.body);\n }\n}\nfunction writeBody(httpRequest, body) {\n if (body instanceof node_stream.Readable) {\n body.pipe(httpRequest);\n return;\n }\n if (body) {\n const isBuffer = Buffer.isBuffer(body);\n const isString = typeof body === \"string\";\n if (isBuffer || isString) {\n if (isBuffer && body.byteLength === 0) {\n httpRequest.end();\n }\n else {\n httpRequest.end(body);\n }\n return;\n }\n const uint8 = body;\n if (typeof uint8 === \"object\" &&\n uint8.buffer &&\n typeof uint8.byteOffset === \"number\" &&\n typeof uint8.byteLength === \"number\") {\n httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength));\n return;\n }\n httpRequest.end(Buffer.from(body));\n return;\n }\n httpRequest.end();\n}\n\nconst DEFAULT_REQUEST_TIMEOUT = 0;\nlet hAgent = undefined;\nlet hRequest = undefined;\nclass NodeHttpHandler {\n config;\n configProvider;\n socketWarningTimestamp = 0;\n externalAgent = false;\n metadata = { handlerProtocol: \"http/1.1\" };\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttpHandler(instanceOrOptions);\n }\n static checkSocketUsage(agent, socketWarningTimestamp, logger = console) {\n const { sockets, requests, maxSockets } = agent;\n if (typeof maxSockets !== \"number\" || maxSockets === Infinity) {\n return socketWarningTimestamp;\n }\n const interval = 15_000;\n if (Date.now() - interval < socketWarningTimestamp) {\n return socketWarningTimestamp;\n }\n if (sockets && requests) {\n for (const origin in sockets) {\n const socketsInUse = sockets[origin]?.length ?? 0;\n const requestsEnqueued = requests[origin]?.length ?? 0;\n if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) {\n logger?.warn?.(`@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued.\nSee https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html\nor increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.`);\n return Date.now();\n }\n }\n }\n return socketWarningTimestamp;\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((_options) => {\n resolve(this.resolveDefaultConfig(_options));\n })\n .catch(reject);\n }\n else {\n resolve(this.resolveDefaultConfig(options));\n }\n });\n }\n destroy() {\n this.config?.httpAgent?.destroy();\n this.config?.httpsAgent?.destroy();\n }\n async handle(request, { abortSignal, requestTimeout } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const config = this.config;\n const isSSL = request.protocol === \"https:\";\n if (!isSSL && !this.config.httpAgent) {\n this.config.httpAgent = await this.config.httpAgentProvider();\n }\n return new Promise((_resolve, _reject) => {\n let writeRequestBodyPromise = undefined;\n let socketWarningTimeoutId = -1;\n let connectionTimeoutId = -1;\n let requestTimeoutId = -1;\n let socketTimeoutId = -1;\n let keepAliveTimeoutId = -1;\n const clearTimeouts = () => {\n timing.clearTimeout(socketWarningTimeoutId);\n timing.clearTimeout(connectionTimeoutId);\n timing.clearTimeout(requestTimeoutId);\n timing.clearTimeout(socketTimeoutId);\n timing.clearTimeout(keepAliveTimeoutId);\n };\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n clearTimeouts();\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n clearTimeouts();\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const headers = request.headers;\n const expectContinue = headers ? (headers.Expect ?? headers.expect) === \"100-continue\" : false;\n let agent = isSSL ? config.httpsAgent : config.httpAgent;\n if (expectContinue && !this.externalAgent) {\n agent = new (isSSL ? node_https.Agent : hAgent)({\n keepAlive: false,\n maxSockets: Infinity,\n });\n }\n socketWarningTimeoutId = timing.setTimeout(() => {\n this.socketWarningTimestamp = NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp, config.logger);\n }, config.socketAcquisitionWarningTimeout ?? (config.requestTimeout ?? 2000) + (config.connectionTimeout ?? 1000));\n const queryString = request.query ? protocols.buildQueryString(request.query) : \"\";\n let auth = undefined;\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}`;\n }\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let hostname = request.hostname ?? \"\";\n if (hostname[0] === \"[\" && hostname.endsWith(\"]\")) {\n hostname = request.hostname.slice(1, -1);\n }\n else {\n hostname = request.hostname;\n }\n const nodeHttpsOptions = {\n headers: request.headers,\n host: hostname,\n method: request.method,\n path,\n port: request.port,\n agent,\n auth,\n };\n const requestFunc = isSSL ? node_https.request : hRequest;\n const req = requestFunc(nodeHttpsOptions, (res) => {\n const httpResponse = new protocols.HttpResponse({\n statusCode: res.statusCode || -1,\n reason: res.statusMessage,\n headers: getTransformedHeaders(res.headers),\n body: res,\n });\n resolve({ response: httpResponse });\n });\n req.on(\"error\", (err) => {\n if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) {\n reject(Object.assign(err, { name: \"TimeoutError\" }));\n }\n else {\n reject(err);\n }\n });\n if (abortSignal) {\n const onAbort = () => {\n req.destroy();\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n req.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n const effectiveRequestTimeout = requestTimeout ?? config.requestTimeout;\n connectionTimeoutId = setConnectionTimeout(req, reject, config.connectionTimeout);\n requestTimeoutId = setRequestTimeout(req, reject, effectiveRequestTimeout, config.throwOnRequestTimeout, config.logger ?? console);\n socketTimeoutId = setSocketTimeout(req, reject, config.socketTimeout);\n const httpAgent = nodeHttpsOptions.agent;\n if (typeof httpAgent === \"object\" && \"keepAlive\" in httpAgent) {\n keepAliveTimeoutId = setSocketKeepAlive(req, {\n keepAlive: httpAgent.keepAlive,\n keepAliveMsecs: httpAgent.keepAliveMsecs,\n });\n }\n writeRequestBodyPromise = writeRequestBody(req, request, effectiveRequestTimeout, this.externalAgent).catch((e) => {\n clearTimeouts();\n return _reject(e);\n });\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n resolveDefaultConfig(options) {\n const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent, throwOnRequestTimeout, logger, } = options || {};\n const keepAlive = true;\n const maxSockets = 50;\n return {\n connectionTimeout,\n requestTimeout,\n socketTimeout,\n socketAcquisitionWarningTimeout,\n throwOnRequestTimeout,\n httpAgentProvider: async () => {\n const { Agent, request } = await import('node:http');\n hRequest = request;\n hAgent = Agent;\n if (httpAgent instanceof hAgent || typeof httpAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpAgent;\n }\n return new hAgent({ keepAlive, maxSockets, ...httpAgent });\n },\n httpsAgent: (() => {\n if (httpsAgent instanceof node_https.Agent || typeof httpsAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpsAgent;\n }\n return new node_https.Agent({ keepAlive, maxSockets, ...httpsAgent });\n })(),\n logger,\n };\n }\n}\n\nconst ids = new Uint16Array(1);\nclass ClientHttp2SessionRef {\n id = ids[0]++;\n total = 0;\n max = 0;\n session;\n refs = 0;\n constructor(session) {\n session.unref();\n this.session = session;\n }\n retain() {\n if (this.session.destroyed) {\n throw new Error(\"@smithy/node-http-handler - cannot acquire reference to destroyed session.\");\n }\n this.refs += 1;\n this.total += 1;\n this.max = Math.max(this.refs, this.max);\n this.session.ref();\n }\n free() {\n if (this.session.destroyed) {\n return;\n }\n this.refs -= 1;\n if (this.refs === 0) {\n this.session.unref();\n }\n if (this.refs < 0) {\n throw new Error(\"@smithy/node-http-handler - ClientHttp2Session refcount at zero, cannot decrement.\");\n }\n }\n deref() {\n return this.session;\n }\n close() {\n if (!this.session.closed) {\n this.session.close();\n }\n }\n destroy() {\n this.refs = 0;\n if (!this.session.destroyed) {\n this.session.destroy();\n }\n }\n useCount() {\n return this.refs;\n }\n}\n\nclass NodeHttp2ConnectionPool {\n sessions = [];\n maxConcurrency = 0;\n constructor(sessions) {\n this.sessions = (sessions ?? []).map((session) => new ClientHttp2SessionRef(session));\n }\n poll() {\n let cleanup = false;\n for (const session of this.sessions) {\n if (session.deref().destroyed) {\n cleanup = true;\n continue;\n }\n if (!this.maxConcurrency || session.useCount() < this.maxConcurrency) {\n return session;\n }\n }\n if (cleanup) {\n for (const session of this.sessions) {\n if (session.deref().destroyed) {\n this.remove(session);\n }\n }\n }\n }\n offerLast(ref) {\n this.sessions.push(ref);\n }\n remove(ref) {\n const ix = this.sessions.indexOf(ref);\n if (ix > -1) {\n this.sessions.splice(ix, 1);\n }\n }\n [Symbol.iterator]() {\n return this.sessions[Symbol.iterator]();\n }\n setMaxConcurrency(maxConcurrency) {\n this.maxConcurrency = maxConcurrency;\n }\n destroy(ref) {\n this.remove(ref);\n ref.destroy();\n }\n}\n\nclass NodeHttp2ConnectionManager {\n config;\n connectOptions;\n connectionPools = new Map();\n constructor(config) {\n this.config = config;\n if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) {\n throw new RangeError(\"maxConcurrency must be greater than zero.\");\n }\n }\n lease(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const pool = this.getPool(url);\n if (!this.config.disableConcurrency && !connectionConfiguration.isEventStream) {\n const available = pool.poll();\n if (available) {\n available.retain();\n return available;\n }\n }\n const ref = new ClientHttp2SessionRef(this.connect(url));\n const session = ref.deref();\n if (this.config.maxConcurrency) {\n session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => {\n if (err) {\n throw new Error(\"Fail to set maxConcurrentStreams to \" +\n this.config.maxConcurrency +\n \"when creating new session for \" +\n requestContext.destination.toString());\n }\n });\n }\n const graceful = () => {\n this.removeFromPoolAndClose(url, ref);\n };\n const ensureDestroyed = () => {\n this.removeFromPoolAndCheckedDestroy(url, ref);\n };\n session.on(\"goaway\", graceful);\n session.on(\"error\", ensureDestroyed);\n session.on(\"frameError\", ensureDestroyed);\n session.on(\"close\", ensureDestroyed);\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed);\n }\n pool.offerLast(ref);\n ref.retain();\n return ref;\n }\n release(_requestContext, ref) {\n ref.free();\n }\n createIsolatedSession(requestContext, connectionConfiguration) {\n const url = this.getUrlString(requestContext);\n const ref = new ClientHttp2SessionRef(this.connect(url));\n const session = ref.deref();\n session.settings({ maxConcurrentStreams: 1 });\n const ensureDestroyed = () => {\n ref.destroy();\n };\n session.on(\"error\", ensureDestroyed);\n session.on(\"frameError\", ensureDestroyed);\n session.on(\"close\", ensureDestroyed);\n if (connectionConfiguration.requestTimeout) {\n session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed);\n }\n ref.retain();\n return ref;\n }\n destroy() {\n for (const [url, connectionPool] of this.connectionPools) {\n for (const session of [...connectionPool]) {\n session.destroy();\n }\n this.connectionPools.delete(url);\n }\n }\n setMaxConcurrentStreams(maxConcurrentStreams) {\n if (maxConcurrentStreams && maxConcurrentStreams <= 0) {\n throw new RangeError(\"maxConcurrentStreams must be greater than zero.\");\n }\n this.config.maxConcurrency = maxConcurrentStreams;\n for (const pool of this.connectionPools.values()) {\n pool.setMaxConcurrency(maxConcurrentStreams);\n }\n }\n setDisableConcurrentStreams(disableConcurrentStreams) {\n this.config.disableConcurrency = disableConcurrentStreams;\n }\n setNodeHttp2ConnectOptions(nodeHttp2ConnectOptions) {\n this.connectOptions = nodeHttp2ConnectOptions;\n }\n debug() {\n const pools = {};\n for (const [url, pool] of this.connectionPools) {\n const sessions = [];\n for (const ref of pool) {\n sessions.push({\n id: ref.id,\n active: ref.useCount(),\n maxConcurrent: ref.max,\n totalRequests: ref.total,\n });\n }\n pools[url] = { sessions };\n }\n return pools;\n }\n removeFromPoolAndClose(authority, ref) {\n this.connectionPools.get(authority)?.remove(ref);\n ref.close();\n }\n removeFromPoolAndCheckedDestroy(authority, ref) {\n this.connectionPools.get(authority)?.remove(ref);\n ref.destroy();\n }\n getPool(url) {\n if (!this.connectionPools.has(url)) {\n const pool = new NodeHttp2ConnectionPool();\n if (this.config.maxConcurrency) {\n pool.setMaxConcurrency(this.config.maxConcurrency);\n }\n this.connectionPools.set(url, pool);\n }\n return this.connectionPools.get(url);\n }\n getUrlString(request) {\n return request.destination.toString();\n }\n connect(url) {\n return this.connectOptions === undefined ? http2.connect(url) : http2.connect(url, this.connectOptions);\n }\n}\n\nclass NodeHttp2Handler {\n config;\n configProvider;\n metadata = { handlerProtocol: \"h2\" };\n connectionManager = new NodeHttp2ConnectionManager({});\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttp2Handler(instanceOrOptions);\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((opts) => {\n resolve(opts || {});\n })\n .catch(reject);\n }\n else {\n resolve(options || {});\n }\n });\n }\n destroy() {\n this.connectionManager.destroy();\n }\n async handle(request, { abortSignal, requestTimeout, isEventStream } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n const { disableConcurrentStreams, maxConcurrentStreams, nodeHttp2ConnectOptions } = this.config;\n this.connectionManager.setDisableConcurrentStreams(disableConcurrentStreams ?? false);\n if (maxConcurrentStreams) {\n this.connectionManager.setMaxConcurrentStreams(maxConcurrentStreams);\n }\n if (nodeHttp2ConnectOptions) {\n this.connectionManager.setNodeHttp2ConnectOptions(nodeHttp2ConnectOptions);\n }\n }\n const { requestTimeout: configRequestTimeout, disableConcurrentStreams } = this.config;\n const useIsolatedSession = disableConcurrentStreams || isEventStream;\n const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout;\n return new Promise((_resolve, _reject) => {\n let fulfilled = false;\n let writeRequestBodyPromise = undefined;\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n fulfilled = true;\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const { hostname, method, port, protocol, query } = request;\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : \"\"}`;\n const requestContext = { destination: new URL(authority) };\n const connectConfig = {\n requestTimeout: this.config?.sessionTimeout,\n isEventStream,\n };\n const ref = useIsolatedSession\n ? this.connectionManager.createIsolatedSession(requestContext, connectConfig)\n : this.connectionManager.lease(requestContext, connectConfig);\n const session = ref.deref();\n const rejectWithDestroy = (err) => {\n if (useIsolatedSession) {\n ref.destroy();\n }\n fulfilled = true;\n reject(err);\n };\n const queryString = query ? protocols.buildQueryString(query) : \"\";\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n const clientHttp2Stream = session.request({\n ...request.headers,\n [http2.constants.HTTP2_HEADER_PATH]: path,\n [http2.constants.HTTP2_HEADER_METHOD]: method,\n });\n if (effectiveRequestTimeout) {\n clientHttp2Stream.setTimeout(effectiveRequestTimeout, () => {\n clientHttp2Stream.close();\n const timeoutError = new Error(`Stream timed out because of no activity for ${effectiveRequestTimeout} ms`);\n timeoutError.name = \"TimeoutError\";\n rejectWithDestroy(timeoutError);\n });\n }\n if (abortSignal) {\n const onAbort = () => {\n clientHttp2Stream.close();\n const abortError = buildAbortError(abortSignal);\n rejectWithDestroy(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n clientHttp2Stream.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n clientHttp2Stream.on(\"frameError\", (type, code, id) => {\n rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));\n });\n clientHttp2Stream.on(\"error\", rejectWithDestroy);\n clientHttp2Stream.on(\"aborted\", () => {\n rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${clientHttp2Stream.rstCode}.`));\n });\n clientHttp2Stream.on(\"response\", (headers) => {\n const httpResponse = new protocols.HttpResponse({\n statusCode: headers[\":status\"] ?? -1,\n headers: getTransformedHeaders(headers),\n body: clientHttp2Stream,\n });\n fulfilled = true;\n resolve({ response: httpResponse });\n if (useIsolatedSession) {\n session.close();\n }\n });\n clientHttp2Stream.on(\"close\", () => {\n if (useIsolatedSession) {\n ref.destroy();\n }\n else {\n this.connectionManager.release(requestContext, ref);\n }\n if (!fulfilled) {\n rejectWithDestroy(new Error(\"Unexpected error: http2 request did not get a response\"));\n }\n });\n writeRequestBodyPromise = writeRequestBody(clientHttp2Stream, request, effectiveRequestTimeout);\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n}\n\nclass Collector extends node_stream.Writable {\n bufferedBytes = [];\n _write(chunk, encoding, callback) {\n this.bufferedBytes.push(chunk);\n callback();\n }\n}\n\nconst streamCollector = (stream) => {\n if (isReadableStreamInstance(stream)) {\n return collectReadableStream(stream);\n }\n return new Promise((resolve, reject) => {\n const collector = new Collector();\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));\n resolve(bytes);\n });\n });\n};\nconst isReadableStreamInstance = (stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream;\nasync function collectReadableStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\n\nexports.DEFAULT_REQUEST_TIMEOUT = DEFAULT_REQUEST_TIMEOUT;\nexports.NodeHttp2Handler = NodeHttp2Handler;\nexports.NodeHttpHandler = NodeHttpHandler;\nexports.streamCollector = streamCollector;\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": "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",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "4A6C849D8824571D64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|