{"_id":"@cloudflare/tanstack-ai","_rev":"13-aabd7c74f6e9aab7d03ce0dd7d4fc284","name":"@cloudflare/tanstack-ai","dist-tags":{"latest":"0.1.9"},"versions":{"0.0.0":{"name":"@cloudflare/tanstack-ai","version":"0.0.0","keywords":[],"author":"","license":"ISC","_id":"@cloudflare/tanstack-ai@0.0.0","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"dist":{"shasum":"f9da50216becdb52780ae6fa7fe1f661a3b866b3","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.0.0.tgz","fileCount":1,"integrity":"sha512-jl/1tw3/EeLItR3MK03IevaUG6+ctqyqxkcjhfiqMFXNBtM6mGuaNwC/VRzaTbwuQ9+m/B++2GWzo919lqpSdw==","signatures":[{"sig":"MEUCIQDMBvCrygBIToVLw4xAw160L/xiFVUSi74u+chd78mmJwIgMDFaKBhx8vobuv2kyewK9eLzcSIibZJWx3kMYUeab8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259},"main":"index.js","type":"commonjs","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"threepointone","email":"threepointone@gmail.com"},"_npmVersion":"11.6.2","description":"","directories":{},"_nodeVersion":"25.1.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tanstack-ai_0.0.0_1770831272100_0.8546680886628515","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@cloudflare/tanstack-ai","version":"0.1.0","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"author":{"name":"Cloudflare Inc."},"license":"MIT","_id":"@cloudflare/tanstack-ai@0.1.0","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"homepage":"https://github.com/cloudflare/ai#readme","bugs":{"url":"https://github.com/cloudflare/ai/issues"},"dist":{"shasum":"24d2e341d3234236e5bf6c2be30eb2f06298dee4","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.1.0.tgz","fileCount":127,"integrity":"sha512-pBRRBoyI0tG+TEpMXhUd3H2BEusOub7Avm+GE5j21GdBh6/wAjAW2J1hMgLas2KZeOCk/rAVAEtAINIYiwVWaA==","signatures":[{"sig":"MEUCIQDN39gxBQKEPUcqbdZUp+hJYEeJHyaP+iUXQixshYfWXAIgMfwghu8dVz9gFtmV+DfJsyNPSVUA5+01JOva0BSVX70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudflare%2ftanstack-ai@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":486882},"main":"./dist/index.js","type":"module","_from":"file:cloudflare-tanstack-ai-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./adapters/grok":{"types":"./dist/adapters/grok.d.ts","import":"./dist/adapters/grok.js","require":"./dist/adapters/grok.cjs"},"./adapters/gemini":{"types":"./dist/adapters/gemini.d.ts","import":"./dist/adapters/gemini.js","require":"./dist/adapters/gemini.cjs"},"./adapters/openai":{"types":"./dist/adapters/openai.d.ts","import":"./dist/adapters/openai.js","require":"./dist/adapters/openai.cjs"},"./adapters/anthropic":{"types":"./dist/adapters/anthropic.d.ts","import":"./dist/adapters/anthropic.js","require":"./dist/adapters/anthropic.cjs"},"./adapters/openrouter":{"types":"./dist/adapters/openrouter.d.ts","import":"./dist/adapters/openrouter.js","require":"./dist/adapters/openrouter.cjs"},"./adapters/workers-ai":{"types":"./dist/adapters/workers-ai.d.ts","import":"./dist/adapters/workers-ai.js","require":"./dist/adapters/workers-ai.cjs"},"./adapters/workers-ai-tts":{"types":"./dist/adapters/workers-ai-tts.d.ts","import":"./dist/adapters/workers-ai-tts.js","require":"./dist/adapters/workers-ai-tts.cjs"},"./adapters/workers-ai-image":{"types":"./dist/adapters/workers-ai-image.d.ts","import":"./dist/adapters/workers-ai-image.js","require":"./dist/adapters/workers-ai-image.cjs"},"./adapters/workers-ai-summarize":{"types":"./dist/adapters/workers-ai-summarize.d.ts","import":"./dist/adapters/workers-ai-summarize.js","require":"./dist/adapters/workers-ai-summarize.cjs"},"./adapters/workers-ai-transcription":{"types":"./dist/adapters/workers-ai-transcription.d.ts","import":"./dist/adapters/workers-ai-transcription.js","require":"./dist/adapters/workers-ai-transcription.cjs"}},"scripts":{"test":"vitest","build":"rm -rf dist && tsup --config tsup.config.ts","format":"biome format --write","test:ci":"vitest --watch=false","test:e2e":"vitest --config vitest.e2e.config.ts --watch=false","type-check":"tsc --noEmit","test:e2e:rest":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts","test:e2e:binding":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:811c680f-7f8f-4438-8960-5a497fc70cdf"}},"_resolved":"/tmp/4253dd1d1d4b121b66e8e9b31d1709e2/cloudflare-tanstack-ai-0.1.0.tgz","_integrity":"sha512-pBRRBoyI0tG+TEpMXhUd3H2BEusOub7Avm+GE5j21GdBh6/wAjAW2J1hMgLas2KZeOCk/rAVAEtAINIYiwVWaA==","repository":{"url":"git+ssh://git@github.com/cloudflare/ai.git","type":"git"},"_npmVersion":"11.6.2","description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","directories":{},"_nodeVersion":"24.13.0","dependencies":{"openai":"^6.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.2.3","@tanstack/ai":"^0.4.2","@microsoft/api-extractor":"^7.56.3"},"peerDependencies":{"@tanstack/ai":"^0.4.2"},"optionalDependencies":{"@google/genai":"^1.35.0","@openrouter/sdk":"^0.3.15","@anthropic-ai/sdk":"^0.71.2","@tanstack/ai-grok":"^0.4.1","@tanstack/ai-gemini":"^0.4.1","@tanstack/ai-openai":"^0.4.0","@tanstack/ai-anthropic":"^0.4.2","@tanstack/ai-openrouter":"^0.4.2","@cloudflare/workers-types":"^4.20260128.0"},"_npmOperationalInternal":{"tmp":"tmp/tanstack-ai_0.1.0_1770845123264_0.7790291911010896","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cloudflare/tanstack-ai","version":"0.1.1","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"author":{"name":"Cloudflare Inc."},"license":"MIT","_id":"@cloudflare/tanstack-ai@0.1.1","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"homepage":"https://github.com/cloudflare/ai#readme","bugs":{"url":"https://github.com/cloudflare/ai/issues"},"dist":{"shasum":"02f18f8df491d452f82d6f26cb15c1fa089687dd","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.1.1.tgz","fileCount":127,"integrity":"sha512-lsFUPVyKSqyAYwbanTUn2I6OgL8BumAzqZf1Z5klG8z9+ymxLcgTOQ7tPu+lyaadvcrREFcBLThY8CyTIofCxg==","signatures":[{"sig":"MEYCIQCr4RUd7tLOQzrvGIUhbCDO0pJ8NXzr9XZKNK5+QFsuawIhAKsWRDRQhHWPsurfkU0vtVsuJN6A7qE6onHdhe1RWq4/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudflare%2ftanstack-ai@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":511284},"main":"./dist/index.js","type":"module","_from":"file:cloudflare-tanstack-ai-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./adapters/grok":{"types":"./dist/adapters/grok.d.ts","import":"./dist/adapters/grok.js","require":"./dist/adapters/grok.cjs"},"./adapters/gemini":{"types":"./dist/adapters/gemini.d.ts","import":"./dist/adapters/gemini.js","require":"./dist/adapters/gemini.cjs"},"./adapters/openai":{"types":"./dist/adapters/openai.d.ts","import":"./dist/adapters/openai.js","require":"./dist/adapters/openai.cjs"},"./adapters/anthropic":{"types":"./dist/adapters/anthropic.d.ts","import":"./dist/adapters/anthropic.js","require":"./dist/adapters/anthropic.cjs"},"./adapters/openrouter":{"types":"./dist/adapters/openrouter.d.ts","import":"./dist/adapters/openrouter.js","require":"./dist/adapters/openrouter.cjs"},"./adapters/workers-ai":{"types":"./dist/adapters/workers-ai.d.ts","import":"./dist/adapters/workers-ai.js","require":"./dist/adapters/workers-ai.cjs"},"./adapters/workers-ai-tts":{"types":"./dist/adapters/workers-ai-tts.d.ts","import":"./dist/adapters/workers-ai-tts.js","require":"./dist/adapters/workers-ai-tts.cjs"},"./adapters/workers-ai-image":{"types":"./dist/adapters/workers-ai-image.d.ts","import":"./dist/adapters/workers-ai-image.js","require":"./dist/adapters/workers-ai-image.cjs"},"./adapters/workers-ai-summarize":{"types":"./dist/adapters/workers-ai-summarize.d.ts","import":"./dist/adapters/workers-ai-summarize.js","require":"./dist/adapters/workers-ai-summarize.cjs"},"./adapters/workers-ai-transcription":{"types":"./dist/adapters/workers-ai-transcription.d.ts","import":"./dist/adapters/workers-ai-transcription.js","require":"./dist/adapters/workers-ai-transcription.cjs"}},"scripts":{"test":"vitest","build":"rm -rf dist && tsup --config tsup.config.ts","format":"biome format --write","test:ci":"vitest --watch=false","test:e2e":"vitest --config vitest.e2e.config.ts --watch=false","type-check":"tsc --noEmit","test:e2e:rest":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts","test:e2e:binding":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:811c680f-7f8f-4438-8960-5a497fc70cdf"}},"_resolved":"/tmp/10537a9c1b65c0360f9f75d0647493fc/cloudflare-tanstack-ai-0.1.1.tgz","_integrity":"sha512-lsFUPVyKSqyAYwbanTUn2I6OgL8BumAzqZf1Z5klG8z9+ymxLcgTOQ7tPu+lyaadvcrREFcBLThY8CyTIofCxg==","repository":{"url":"git+ssh://git@github.com/cloudflare/ai.git","type":"git"},"_npmVersion":"11.6.2","description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","directories":{},"_nodeVersion":"24.13.0","dependencies":{"openai":"^6.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.2.4","@tanstack/ai":"^0.5.0","@microsoft/api-extractor":"^7.56.3","@cloudflare/workers-types":"^4.20260212.0"},"peerDependencies":{"@tanstack/ai":"^0.5.0"},"optionalDependencies":{"@google/genai":"^1.41.0","@openrouter/sdk":"^0.8.0","@anthropic-ai/sdk":"^0.74.0","@tanstack/ai-grok":"^0.5.0","@tanstack/ai-gemini":"^0.5.0","@tanstack/ai-openai":"^0.5.0","@tanstack/ai-anthropic":"^0.5.0","@tanstack/ai-openrouter":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/tanstack-ai_0.1.1_1770909838198_0.8204517079730156","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cloudflare/tanstack-ai","version":"0.1.2","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"author":{"name":"Cloudflare Inc."},"license":"MIT","_id":"@cloudflare/tanstack-ai@0.1.2","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"homepage":"https://github.com/cloudflare/ai#readme","bugs":{"url":"https://github.com/cloudflare/ai/issues"},"dist":{"shasum":"c1fd5bd10dc7f9e904f961f46342fb02baafd881","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.1.2.tgz","fileCount":127,"integrity":"sha512-+sL2+gkVLq1UfDpPTuKqu8V3LGQKT7BH6TuZQVeplOYc4GmwnBhY6UPShVGEkFn1iMnxu/0Pb3JV/GsqiFjqbg==","signatures":[{"sig":"MEUCIQDXHKXuOyN5F1LXympgLS8bDIPwl9qt/NzMcTO6T0+XLgIgaxEGpDQiErWby4IlwQuk14PZASfkijHT+D2k8thIIrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudflare%2ftanstack-ai@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":518369},"main":"./dist/index.js","type":"module","_from":"file:cloudflare-tanstack-ai-0.1.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./adapters/grok":{"types":"./dist/adapters/grok.d.ts","import":"./dist/adapters/grok.js","require":"./dist/adapters/grok.cjs"},"./adapters/gemini":{"types":"./dist/adapters/gemini.d.ts","import":"./dist/adapters/gemini.js","require":"./dist/adapters/gemini.cjs"},"./adapters/openai":{"types":"./dist/adapters/openai.d.ts","import":"./dist/adapters/openai.js","require":"./dist/adapters/openai.cjs"},"./adapters/anthropic":{"types":"./dist/adapters/anthropic.d.ts","import":"./dist/adapters/anthropic.js","require":"./dist/adapters/anthropic.cjs"},"./adapters/openrouter":{"types":"./dist/adapters/openrouter.d.ts","import":"./dist/adapters/openrouter.js","require":"./dist/adapters/openrouter.cjs"},"./adapters/workers-ai":{"types":"./dist/adapters/workers-ai.d.ts","import":"./dist/adapters/workers-ai.js","require":"./dist/adapters/workers-ai.cjs"},"./adapters/workers-ai-tts":{"types":"./dist/adapters/workers-ai-tts.d.ts","import":"./dist/adapters/workers-ai-tts.js","require":"./dist/adapters/workers-ai-tts.cjs"},"./adapters/workers-ai-image":{"types":"./dist/adapters/workers-ai-image.d.ts","import":"./dist/adapters/workers-ai-image.js","require":"./dist/adapters/workers-ai-image.cjs"},"./adapters/workers-ai-summarize":{"types":"./dist/adapters/workers-ai-summarize.d.ts","import":"./dist/adapters/workers-ai-summarize.js","require":"./dist/adapters/workers-ai-summarize.cjs"},"./adapters/workers-ai-transcription":{"types":"./dist/adapters/workers-ai-transcription.d.ts","import":"./dist/adapters/workers-ai-transcription.js","require":"./dist/adapters/workers-ai-transcription.cjs"}},"scripts":{"test":"vitest","build":"rm -rf dist && tsup --config tsup.config.ts","format":"biome format --write","test:ci":"vitest --watch=false","test:e2e":"vitest --config vitest.e2e.config.ts --watch=false","type-check":"tsc --noEmit","test:e2e:rest":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts","test:e2e:binding":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:811c680f-7f8f-4438-8960-5a497fc70cdf"}},"_resolved":"/tmp/bbd7b26ffd7e9985d7d3a57d0e9b1026/cloudflare-tanstack-ai-0.1.2.tgz","_integrity":"sha512-+sL2+gkVLq1UfDpPTuKqu8V3LGQKT7BH6TuZQVeplOYc4GmwnBhY6UPShVGEkFn1iMnxu/0Pb3JV/GsqiFjqbg==","repository":{"url":"git+ssh://git@github.com/cloudflare/ai.git","type":"git"},"_npmVersion":"11.6.2","description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","directories":{},"_nodeVersion":"24.13.0","dependencies":{"openai":"^6.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.2.4","@tanstack/ai":"^0.5.0","@microsoft/api-extractor":"^7.56.3","@cloudflare/workers-types":"^4.20260212.0"},"peerDependencies":{"@tanstack/ai":"^0.5.0"},"optionalDependencies":{"@google/genai":"^1.41.0","@openrouter/sdk":"^0.8.0","@anthropic-ai/sdk":"^0.74.0","@tanstack/ai-grok":"^0.5.0","@tanstack/ai-gemini":"^0.5.0","@tanstack/ai-openai":"^0.5.0","@tanstack/ai-anthropic":"^0.5.0","@tanstack/ai-openrouter":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/tanstack-ai_0.1.2_1771582336719_0.82516351604291","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@cloudflare/tanstack-ai","version":"0.1.3","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"author":{"name":"Cloudflare Inc."},"license":"MIT","_id":"@cloudflare/tanstack-ai@0.1.3","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"homepage":"https://github.com/cloudflare/ai#readme","bugs":{"url":"https://github.com/cloudflare/ai/issues"},"dist":{"shasum":"4556cfe3604d883f65f731957bb42c0677912be8","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.1.3.tgz","fileCount":127,"integrity":"sha512-4Xns9JI5ZPiptxjeEb32MjFkGN+lRjTXTU7aNe+sVu1jdQDWm9e7rFyFSd/xl1y8bHgqYZ7wgMZ8oYdbsXpK7Q==","signatures":[{"sig":"MEUCIQCcCzy3nYOLBREfh4X+S9SG8/ypqsf5X7ChKPrQjkVWnAIgV1jVSqdUqVRpI7CrTUGpg/cFHbw/yEEjn+fQImPlyy4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudflare%2ftanstack-ai@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":518670},"main":"./dist/index.js","type":"module","_from":"file:cloudflare-tanstack-ai-0.1.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./adapters/grok":{"types":"./dist/adapters/grok.d.ts","import":"./dist/adapters/grok.js","require":"./dist/adapters/grok.cjs"},"./adapters/gemini":{"types":"./dist/adapters/gemini.d.ts","import":"./dist/adapters/gemini.js","require":"./dist/adapters/gemini.cjs"},"./adapters/openai":{"types":"./dist/adapters/openai.d.ts","import":"./dist/adapters/openai.js","require":"./dist/adapters/openai.cjs"},"./adapters/anthropic":{"types":"./dist/adapters/anthropic.d.ts","import":"./dist/adapters/anthropic.js","require":"./dist/adapters/anthropic.cjs"},"./adapters/openrouter":{"types":"./dist/adapters/openrouter.d.ts","import":"./dist/adapters/openrouter.js","require":"./dist/adapters/openrouter.cjs"},"./adapters/workers-ai":{"types":"./dist/adapters/workers-ai.d.ts","import":"./dist/adapters/workers-ai.js","require":"./dist/adapters/workers-ai.cjs"},"./adapters/workers-ai-tts":{"types":"./dist/adapters/workers-ai-tts.d.ts","import":"./dist/adapters/workers-ai-tts.js","require":"./dist/adapters/workers-ai-tts.cjs"},"./adapters/workers-ai-image":{"types":"./dist/adapters/workers-ai-image.d.ts","import":"./dist/adapters/workers-ai-image.js","require":"./dist/adapters/workers-ai-image.cjs"},"./adapters/workers-ai-summarize":{"types":"./dist/adapters/workers-ai-summarize.d.ts","import":"./dist/adapters/workers-ai-summarize.js","require":"./dist/adapters/workers-ai-summarize.cjs"},"./adapters/workers-ai-transcription":{"types":"./dist/adapters/workers-ai-transcription.d.ts","import":"./dist/adapters/workers-ai-transcription.js","require":"./dist/adapters/workers-ai-transcription.cjs"}},"scripts":{"test":"vitest --run","build":"rm -rf dist && tsup --config tsup.config.ts","format":"biome format --write","test:ci":"vitest --watch=false","test:e2e":"vitest --config vitest.e2e.config.ts --watch=false","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:rest":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts","test:e2e:binding":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:811c680f-7f8f-4438-8960-5a497fc70cdf"}},"_resolved":"/tmp/ebe46cfd51ec6beb0e607fa3af16dddf/cloudflare-tanstack-ai-0.1.3.tgz","_integrity":"sha512-4Xns9JI5ZPiptxjeEb32MjFkGN+lRjTXTU7aNe+sVu1jdQDWm9e7rFyFSd/xl1y8bHgqYZ7wgMZ8oYdbsXpK7Q==","repository":{"url":"git+ssh://git@github.com/cloudflare/ai.git","type":"git"},"_npmVersion":"11.9.0","description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","directories":{},"_nodeVersion":"24.14.0","dependencies":{"openai":"^6.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@tanstack/ai":"^0.5.1","@microsoft/api-extractor":"^7.57.1","@cloudflare/workers-types":"^4.20260227.0"},"peerDependencies":{"@tanstack/ai":"^0.5.0"},"optionalDependencies":{"@google/genai":"^1.42.0","@openrouter/sdk":"^0.8.0","@anthropic-ai/sdk":"^0.78.0","@tanstack/ai-grok":"^0.5.0","@tanstack/ai-gemini":"^0.5.0","@tanstack/ai-openai":"^0.5.0","@tanstack/ai-anthropic":"^0.5.0","@tanstack/ai-openrouter":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/tanstack-ai_0.1.3_1773904676053_0.4104123397132322","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@cloudflare/tanstack-ai","version":"0.1.4","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"author":{"name":"Cloudflare Inc."},"license":"MIT","_id":"@cloudflare/tanstack-ai@0.1.4","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"homepage":"https://github.com/cloudflare/ai#readme","bugs":{"url":"https://github.com/cloudflare/ai/issues"},"dist":{"shasum":"8d4f2efa921161637fa465607b9fe90a578e9cd8","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.1.4.tgz","fileCount":127,"integrity":"sha512-/spYnbbKAbgOFT+2eh2hdbRbmawvU3LAOOf2Pm1vnqc6aIp4koq5yWddM9xam5NOy6v+m8XP/4kA4P4cWZUClw==","signatures":[{"sig":"MEQCIDxlmRoShZ2LKaQ9XrTAyMYBP1ElMtH9wlGwuUtd46q7AiB4YiMsSrfUFdvTnxAPKKj0PQejrx4kGtV9Nx7xNmV8VA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudflare%2ftanstack-ai@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":519660},"main":"./dist/index.js","type":"module","_from":"file:cloudflare-tanstack-ai-0.1.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./adapters/grok":{"types":"./dist/adapters/grok.d.ts","import":"./dist/adapters/grok.js","require":"./dist/adapters/grok.cjs"},"./adapters/gemini":{"types":"./dist/adapters/gemini.d.ts","import":"./dist/adapters/gemini.js","require":"./dist/adapters/gemini.cjs"},"./adapters/openai":{"types":"./dist/adapters/openai.d.ts","import":"./dist/adapters/openai.js","require":"./dist/adapters/openai.cjs"},"./adapters/anthropic":{"types":"./dist/adapters/anthropic.d.ts","import":"./dist/adapters/anthropic.js","require":"./dist/adapters/anthropic.cjs"},"./adapters/openrouter":{"types":"./dist/adapters/openrouter.d.ts","import":"./dist/adapters/openrouter.js","require":"./dist/adapters/openrouter.cjs"},"./adapters/workers-ai":{"types":"./dist/adapters/workers-ai.d.ts","import":"./dist/adapters/workers-ai.js","require":"./dist/adapters/workers-ai.cjs"},"./adapters/workers-ai-tts":{"types":"./dist/adapters/workers-ai-tts.d.ts","import":"./dist/adapters/workers-ai-tts.js","require":"./dist/adapters/workers-ai-tts.cjs"},"./adapters/workers-ai-image":{"types":"./dist/adapters/workers-ai-image.d.ts","import":"./dist/adapters/workers-ai-image.js","require":"./dist/adapters/workers-ai-image.cjs"},"./adapters/workers-ai-summarize":{"types":"./dist/adapters/workers-ai-summarize.d.ts","import":"./dist/adapters/workers-ai-summarize.js","require":"./dist/adapters/workers-ai-summarize.cjs"},"./adapters/workers-ai-transcription":{"types":"./dist/adapters/workers-ai-transcription.d.ts","import":"./dist/adapters/workers-ai-transcription.js","require":"./dist/adapters/workers-ai-transcription.cjs"}},"scripts":{"test":"vitest --run","build":"rm -rf dist && tsup --config tsup.config.ts","format":"biome format --write","test:ci":"vitest --watch=false","test:e2e":"vitest --config vitest.e2e.config.ts --watch=false","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:rest":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts","test:e2e:binding":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:811c680f-7f8f-4438-8960-5a497fc70cdf"}},"_resolved":"/tmp/0d38201d53a9c9ee65e309f2fc440b98/cloudflare-tanstack-ai-0.1.4.tgz","_integrity":"sha512-/spYnbbKAbgOFT+2eh2hdbRbmawvU3LAOOf2Pm1vnqc6aIp4koq5yWddM9xam5NOy6v+m8XP/4kA4P4cWZUClw==","repository":{"url":"git+ssh://git@github.com/cloudflare/ai.git","type":"git"},"_npmVersion":"11.9.0","description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","directories":{},"_nodeVersion":"24.14.0","dependencies":{"openai":"^6.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@tanstack/ai":"^0.5.1","@microsoft/api-extractor":"^7.57.1","@cloudflare/workers-types":"^4.20260227.0"},"peerDependencies":{"@tanstack/ai":"^0.5.0"},"optionalDependencies":{"@google/genai":"^1.42.0","@openrouter/sdk":"^0.8.0","@anthropic-ai/sdk":"^0.78.0","@tanstack/ai-grok":"^0.5.0","@tanstack/ai-gemini":"^0.5.0","@tanstack/ai-openai":"^0.5.0","@tanstack/ai-anthropic":"^0.5.0","@tanstack/ai-openrouter":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/tanstack-ai_0.1.4_1773925764665_0.9951774204540074","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@cloudflare/tanstack-ai","version":"0.1.5","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"author":{"name":"Cloudflare Inc."},"license":"MIT","_id":"@cloudflare/tanstack-ai@0.1.5","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"homepage":"https://github.com/cloudflare/ai#readme","bugs":{"url":"https://github.com/cloudflare/ai/issues"},"dist":{"shasum":"1eba506c670b9408abee4f4a89614dfc16fa97d4","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.1.5.tgz","fileCount":127,"integrity":"sha512-/HOsjZyXd7BZ5IGagaOWSB5kT/Shuc3dyLezIXkiiiL0sgP5ags6IAh0HAILmguIpPC7KyK0o6A1SjDQPrIv6g==","signatures":[{"sig":"MEQCIC6wgoRdlfWhrnRXA5IIHJNFAEqWONguyQCkJ93sdl4pAiARW+WL9NW8oHm8XrPHbK8F5I9a/EgEyPpEYBUi3E0UpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudflare%2ftanstack-ai@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":520978},"main":"./dist/index.js","type":"module","_from":"file:cloudflare-tanstack-ai-0.1.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./adapters/grok":{"types":"./dist/adapters/grok.d.ts","import":"./dist/adapters/grok.js","require":"./dist/adapters/grok.cjs"},"./adapters/gemini":{"types":"./dist/adapters/gemini.d.ts","import":"./dist/adapters/gemini.js","require":"./dist/adapters/gemini.cjs"},"./adapters/openai":{"types":"./dist/adapters/openai.d.ts","import":"./dist/adapters/openai.js","require":"./dist/adapters/openai.cjs"},"./adapters/anthropic":{"types":"./dist/adapters/anthropic.d.ts","import":"./dist/adapters/anthropic.js","require":"./dist/adapters/anthropic.cjs"},"./adapters/openrouter":{"types":"./dist/adapters/openrouter.d.ts","import":"./dist/adapters/openrouter.js","require":"./dist/adapters/openrouter.cjs"},"./adapters/workers-ai":{"types":"./dist/adapters/workers-ai.d.ts","import":"./dist/adapters/workers-ai.js","require":"./dist/adapters/workers-ai.cjs"},"./adapters/workers-ai-tts":{"types":"./dist/adapters/workers-ai-tts.d.ts","import":"./dist/adapters/workers-ai-tts.js","require":"./dist/adapters/workers-ai-tts.cjs"},"./adapters/workers-ai-image":{"types":"./dist/adapters/workers-ai-image.d.ts","import":"./dist/adapters/workers-ai-image.js","require":"./dist/adapters/workers-ai-image.cjs"},"./adapters/workers-ai-summarize":{"types":"./dist/adapters/workers-ai-summarize.d.ts","import":"./dist/adapters/workers-ai-summarize.js","require":"./dist/adapters/workers-ai-summarize.cjs"},"./adapters/workers-ai-transcription":{"types":"./dist/adapters/workers-ai-transcription.d.ts","import":"./dist/adapters/workers-ai-transcription.js","require":"./dist/adapters/workers-ai-transcription.cjs"}},"scripts":{"test":"vitest --run","build":"rm -rf dist && tsup --config tsup.config.ts","format":"biome format --write","test:ci":"vitest --watch=false","test:e2e":"vitest --config vitest.e2e.config.ts --watch=false","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:rest":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts","test:e2e:binding":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:811c680f-7f8f-4438-8960-5a497fc70cdf"}},"_resolved":"/tmp/d5d3b399b9f03fe1565d828e498ca885/cloudflare-tanstack-ai-0.1.5.tgz","_integrity":"sha512-/HOsjZyXd7BZ5IGagaOWSB5kT/Shuc3dyLezIXkiiiL0sgP5ags6IAh0HAILmguIpPC7KyK0o6A1SjDQPrIv6g==","repository":{"url":"git+ssh://git@github.com/cloudflare/ai.git","type":"git"},"_npmVersion":"11.9.0","description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","directories":{},"_nodeVersion":"24.14.0","dependencies":{"openai":"^6.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@tanstack/ai":"^0.5.1","@microsoft/api-extractor":"^7.57.1","@cloudflare/workers-types":"^4.20260227.0"},"peerDependencies":{"@tanstack/ai":"^0.5.0"},"optionalDependencies":{"@google/genai":"^1.42.0","@openrouter/sdk":"^0.8.0","@anthropic-ai/sdk":"^0.78.0","@tanstack/ai-grok":"^0.5.0","@tanstack/ai-gemini":"^0.5.0","@tanstack/ai-openai":"^0.5.0","@tanstack/ai-anthropic":"^0.5.0","@tanstack/ai-openrouter":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/tanstack-ai_0.1.5_1774187491260_0.26885127506130346","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@cloudflare/tanstack-ai","version":"0.1.6","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"author":{"name":"Cloudflare Inc."},"license":"MIT","_id":"@cloudflare/tanstack-ai@0.1.6","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"homepage":"https://github.com/cloudflare/ai#readme","bugs":{"url":"https://github.com/cloudflare/ai/issues"},"dist":{"shasum":"71baf9197eeb69d6cee47aaef0469426609c912f","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.1.6.tgz","fileCount":127,"integrity":"sha512-THkWboJUJgYPknbKtpWDmX/QFI7//ZsoopiFKXvJJF5jv1mRQiYigkAN6/6/ht8wwHYJBZRHNv8mAyrixhukzQ==","signatures":[{"sig":"MEYCIQDT9fLz7Yf7mqXh/iGnY51y1LCLoBxAfv0BSat2fODRGgIhAPSE7s4Gs+VQX14YIwssxPSB/hW3Wkn2nVMN0bjacnth","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudflare%2ftanstack-ai@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521965},"main":"./dist/index.js","type":"module","_from":"file:cloudflare-tanstack-ai-0.1.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./adapters/grok":{"types":"./dist/adapters/grok.d.ts","import":"./dist/adapters/grok.js","require":"./dist/adapters/grok.cjs"},"./adapters/gemini":{"types":"./dist/adapters/gemini.d.ts","import":"./dist/adapters/gemini.js","require":"./dist/adapters/gemini.cjs"},"./adapters/openai":{"types":"./dist/adapters/openai.d.ts","import":"./dist/adapters/openai.js","require":"./dist/adapters/openai.cjs"},"./adapters/anthropic":{"types":"./dist/adapters/anthropic.d.ts","import":"./dist/adapters/anthropic.js","require":"./dist/adapters/anthropic.cjs"},"./adapters/openrouter":{"types":"./dist/adapters/openrouter.d.ts","import":"./dist/adapters/openrouter.js","require":"./dist/adapters/openrouter.cjs"},"./adapters/workers-ai":{"types":"./dist/adapters/workers-ai.d.ts","import":"./dist/adapters/workers-ai.js","require":"./dist/adapters/workers-ai.cjs"},"./adapters/workers-ai-tts":{"types":"./dist/adapters/workers-ai-tts.d.ts","import":"./dist/adapters/workers-ai-tts.js","require":"./dist/adapters/workers-ai-tts.cjs"},"./adapters/workers-ai-image":{"types":"./dist/adapters/workers-ai-image.d.ts","import":"./dist/adapters/workers-ai-image.js","require":"./dist/adapters/workers-ai-image.cjs"},"./adapters/workers-ai-summarize":{"types":"./dist/adapters/workers-ai-summarize.d.ts","import":"./dist/adapters/workers-ai-summarize.js","require":"./dist/adapters/workers-ai-summarize.cjs"},"./adapters/workers-ai-transcription":{"types":"./dist/adapters/workers-ai-transcription.d.ts","import":"./dist/adapters/workers-ai-transcription.js","require":"./dist/adapters/workers-ai-transcription.cjs"}},"scripts":{"test":"vitest --run","build":"rm -rf dist && tsup --config tsup.config.ts","format":"biome format --write","test:ci":"vitest --watch=false","test:e2e":"vitest --config vitest.e2e.config.ts --watch=false","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:rest":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts","test:e2e:binding":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:811c680f-7f8f-4438-8960-5a497fc70cdf"}},"_resolved":"/tmp/7afe656110da1df465d02a8c1bfce926/cloudflare-tanstack-ai-0.1.6.tgz","_integrity":"sha512-THkWboJUJgYPknbKtpWDmX/QFI7//ZsoopiFKXvJJF5jv1mRQiYigkAN6/6/ht8wwHYJBZRHNv8mAyrixhukzQ==","repository":{"url":"git+ssh://git@github.com/cloudflare/ai.git","type":"git"},"_npmVersion":"11.9.0","description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","directories":{},"_nodeVersion":"24.14.0","dependencies":{"openai":"^6.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@tanstack/ai":"^0.5.1","@microsoft/api-extractor":"^7.57.1","@cloudflare/workers-types":"^4.20260227.0"},"peerDependencies":{"@tanstack/ai":"^0.5.0"},"optionalDependencies":{"@google/genai":"^1.42.0","@openrouter/sdk":"^0.8.0","@anthropic-ai/sdk":"^0.78.0","@tanstack/ai-grok":"^0.5.0","@tanstack/ai-gemini":"^0.5.0","@tanstack/ai-openai":"^0.5.0","@tanstack/ai-anthropic":"^0.5.0","@tanstack/ai-openrouter":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/tanstack-ai_0.1.6_1774428475321_0.9733077311403866","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@cloudflare/tanstack-ai","version":"0.1.7","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"author":{"name":"Cloudflare Inc."},"license":"MIT","_id":"@cloudflare/tanstack-ai@0.1.7","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"homepage":"https://github.com/cloudflare/ai#readme","bugs":{"url":"https://github.com/cloudflare/ai/issues"},"dist":{"shasum":"f78b26c42e1f686656994b59f373f98c68c2816a","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.1.7.tgz","fileCount":84,"integrity":"sha512-nS3Kb5uXv0ciogP29kwNN5ff3P8wFPy3wSEH1H/P2x3PTx6fHyPghSuI4MG7/T3n+dDaD+ik+GtOuFSUynjhLw==","signatures":[{"sig":"MEQCIBLT+lj78ReqcYxMe7NORjiC1VlfEzjqcKYWUzHpJiY6AiAF5wciO6UuU+HDScLOD68dstEOZttl008w4fiJ/8dG3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudflare%2ftanstack-ai@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":474167},"main":"./dist/index.mjs","type":"module","_from":"file:cloudflare-tanstack-ai-0.1.7.tgz","types":"./dist/index.d.mts","exports":{".":{"types":{"import":"./dist/index.d.mts","require":"./dist/index.d.cts"},"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./adapters/grok":{"types":{"import":"./dist/adapters/grok.d.mts","require":"./dist/adapters/grok.d.cts"},"import":"./dist/adapters/grok.mjs","require":"./dist/adapters/grok.cjs"},"./adapters/gemini":{"types":{"import":"./dist/adapters/gemini.d.mts","require":"./dist/adapters/gemini.d.cts"},"import":"./dist/adapters/gemini.mjs","require":"./dist/adapters/gemini.cjs"},"./adapters/openai":{"types":{"import":"./dist/adapters/openai.d.mts","require":"./dist/adapters/openai.d.cts"},"import":"./dist/adapters/openai.mjs","require":"./dist/adapters/openai.cjs"},"./adapters/anthropic":{"types":{"import":"./dist/adapters/anthropic.d.mts","require":"./dist/adapters/anthropic.d.cts"},"import":"./dist/adapters/anthropic.mjs","require":"./dist/adapters/anthropic.cjs"},"./adapters/openrouter":{"types":{"import":"./dist/adapters/openrouter.d.mts","require":"./dist/adapters/openrouter.d.cts"},"import":"./dist/adapters/openrouter.mjs","require":"./dist/adapters/openrouter.cjs"},"./adapters/workers-ai":{"types":{"import":"./dist/adapters/workers-ai.d.mts","require":"./dist/adapters/workers-ai.d.cts"},"import":"./dist/adapters/workers-ai.mjs","require":"./dist/adapters/workers-ai.cjs"},"./adapters/workers-ai-tts":{"types":{"import":"./dist/adapters/workers-ai-tts.d.mts","require":"./dist/adapters/workers-ai-tts.d.cts"},"import":"./dist/adapters/workers-ai-tts.mjs","require":"./dist/adapters/workers-ai-tts.cjs"},"./adapters/workers-ai-image":{"types":{"import":"./dist/adapters/workers-ai-image.d.mts","require":"./dist/adapters/workers-ai-image.d.cts"},"import":"./dist/adapters/workers-ai-image.mjs","require":"./dist/adapters/workers-ai-image.cjs"},"./adapters/workers-ai-summarize":{"types":{"import":"./dist/adapters/workers-ai-summarize.d.mts","require":"./dist/adapters/workers-ai-summarize.d.cts"},"import":"./dist/adapters/workers-ai-summarize.mjs","require":"./dist/adapters/workers-ai-summarize.cjs"},"./adapters/workers-ai-transcription":{"types":{"import":"./dist/adapters/workers-ai-transcription.d.mts","require":"./dist/adapters/workers-ai-transcription.d.cts"},"import":"./dist/adapters/workers-ai-transcription.mjs","require":"./dist/adapters/workers-ai-transcription.cjs"}},"scripts":{"test":"vitest --run","build":"rm -rf dist && tsdown --config tsdown.config.ts","format":"biome format --write","test:ci":"vitest --watch=false","test:e2e":"vitest --config vitest.e2e.config.ts --watch=false","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:rest":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts","test:e2e:binding":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:811c680f-7f8f-4438-8960-5a497fc70cdf"}},"_resolved":"/tmp/530bea5b428a713e1ec24ce10f4f9c2b/cloudflare-tanstack-ai-0.1.7.tgz","_integrity":"sha512-nS3Kb5uXv0ciogP29kwNN5ff3P8wFPy3wSEH1H/P2x3PTx6fHyPghSuI4MG7/T3n+dDaD+ik+GtOuFSUynjhLw==","repository":{"url":"git+ssh://git@github.com/cloudflare/ai.git","type":"git"},"_npmVersion":"11.9.0","description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","directories":{},"_nodeVersion":"24.14.0","dependencies":{"openai":"^6.33.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.0","@tanstack/ai":"^0.9.2","@microsoft/api-extractor":"^7.58.0","@cloudflare/workers-types":"^4.20260402.1"},"peerDependencies":{"@tanstack/ai":"^0.8.0"},"optionalDependencies":{"@google/genai":"^1.48.0","@openrouter/sdk":"^0.10.2","@anthropic-ai/sdk":"^0.82.0","@tanstack/ai-grok":"^0.6.3","@tanstack/ai-gemini":"^0.8.4","@tanstack/ai-openai":"^0.7.2","@tanstack/ai-anthropic":"^0.7.1","@tanstack/ai-openrouter":"^0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/tanstack-ai_0.1.7_1775117830554_0.10130798392997753","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@cloudflare/tanstack-ai","version":"0.1.8","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"author":{"name":"Cloudflare Inc."},"license":"MIT","_id":"@cloudflare/tanstack-ai@0.1.8","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"cf-npm-publish","email":"ui-platform-production@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"homepage":"https://github.com/cloudflare/ai#readme","bugs":{"url":"https://github.com/cloudflare/ai/issues"},"dist":{"shasum":"206d6a4d97b7df17d0b1d0c6b3d4897578ad7d44","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.1.8.tgz","fileCount":84,"integrity":"sha512-+YiGcRnoswOmZ+ckMWq6rW/MJojhG+n1PPOco+wpye8kPeps0sdX/wXtLFGfgIuEhHjZX1awTy/O3ErG1GyeUw==","signatures":[{"sig":"MEUCIDzIYGazCPOuYjNVwlgpg+WDu39lVND9z6ajSFOurRR7AiEA0wR3/V0YZMB3dr+QOGwkFCBTBgxKLKlINs6oZVR/n5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudflare%2ftanstack-ai@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":489261},"main":"./dist/index.mjs","type":"module","_from":"file:cloudflare-tanstack-ai-0.1.8.tgz","types":"./dist/index.d.mts","exports":{".":{"types":{"import":"./dist/index.d.mts","require":"./dist/index.d.cts"},"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./adapters/grok":{"types":{"import":"./dist/adapters/grok.d.mts","require":"./dist/adapters/grok.d.cts"},"import":"./dist/adapters/grok.mjs","require":"./dist/adapters/grok.cjs"},"./adapters/gemini":{"types":{"import":"./dist/adapters/gemini.d.mts","require":"./dist/adapters/gemini.d.cts"},"import":"./dist/adapters/gemini.mjs","require":"./dist/adapters/gemini.cjs"},"./adapters/openai":{"types":{"import":"./dist/adapters/openai.d.mts","require":"./dist/adapters/openai.d.cts"},"import":"./dist/adapters/openai.mjs","require":"./dist/adapters/openai.cjs"},"./adapters/anthropic":{"types":{"import":"./dist/adapters/anthropic.d.mts","require":"./dist/adapters/anthropic.d.cts"},"import":"./dist/adapters/anthropic.mjs","require":"./dist/adapters/anthropic.cjs"},"./adapters/openrouter":{"types":{"import":"./dist/adapters/openrouter.d.mts","require":"./dist/adapters/openrouter.d.cts"},"import":"./dist/adapters/openrouter.mjs","require":"./dist/adapters/openrouter.cjs"},"./adapters/workers-ai":{"types":{"import":"./dist/adapters/workers-ai.d.mts","require":"./dist/adapters/workers-ai.d.cts"},"import":"./dist/adapters/workers-ai.mjs","require":"./dist/adapters/workers-ai.cjs"},"./adapters/workers-ai-tts":{"types":{"import":"./dist/adapters/workers-ai-tts.d.mts","require":"./dist/adapters/workers-ai-tts.d.cts"},"import":"./dist/adapters/workers-ai-tts.mjs","require":"./dist/adapters/workers-ai-tts.cjs"},"./adapters/workers-ai-image":{"types":{"import":"./dist/adapters/workers-ai-image.d.mts","require":"./dist/adapters/workers-ai-image.d.cts"},"import":"./dist/adapters/workers-ai-image.mjs","require":"./dist/adapters/workers-ai-image.cjs"},"./adapters/workers-ai-summarize":{"types":{"import":"./dist/adapters/workers-ai-summarize.d.mts","require":"./dist/adapters/workers-ai-summarize.d.cts"},"import":"./dist/adapters/workers-ai-summarize.mjs","require":"./dist/adapters/workers-ai-summarize.cjs"},"./adapters/workers-ai-transcription":{"types":{"import":"./dist/adapters/workers-ai-transcription.d.mts","require":"./dist/adapters/workers-ai-transcription.d.cts"},"import":"./dist/adapters/workers-ai-transcription.mjs","require":"./dist/adapters/workers-ai-transcription.cjs"}},"scripts":{"test":"vitest --run","build":"rm -rf dist && tsdown --config tsdown.config.ts","format":"biome format --write","test:ci":"vitest --watch=false","test:e2e":"vitest --config vitest.e2e.config.ts --watch=false","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:rest":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts","test:e2e:binding":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:811c680f-7f8f-4438-8960-5a497fc70cdf"}},"_resolved":"/tmp/a9acd85d49bb14fe82113d35235715c7/cloudflare-tanstack-ai-0.1.8.tgz","_integrity":"sha512-+YiGcRnoswOmZ+ckMWq6rW/MJojhG+n1PPOco+wpye8kPeps0sdX/wXtLFGfgIuEhHjZX1awTy/O3ErG1GyeUw==","repository":{"url":"git+ssh://git@github.com/cloudflare/ai.git","type":"git"},"_npmVersion":"11.11.0","description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","directories":{},"_nodeVersion":"24.14.1","dependencies":{"openai":"^6.33.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.0","@tanstack/ai":"^0.9.2","@microsoft/api-extractor":"^7.58.0","@cloudflare/workers-types":"^4.20260402.1"},"peerDependencies":{"@tanstack/ai":"^0.8.0"},"optionalDependencies":{"@google/genai":"^1.48.0","@openrouter/sdk":"^0.10.2","@anthropic-ai/sdk":"^0.82.0","@tanstack/ai-grok":"^0.6.3","@tanstack/ai-gemini":"^0.8.4","@tanstack/ai-openai":"^0.7.2","@tanstack/ai-anthropic":"^0.7.1","@tanstack/ai-openrouter":"^0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/tanstack-ai_0.1.8_1776952289513_0.7302574700989681","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@cloudflare/tanstack-ai","version":"0.1.9","description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"bugs":{"url":"https://github.com/cloudflare/ai/issues"},"license":"MIT","author":{"name":"Cloudflare Inc."},"repository":{"type":"git","url":"git+ssh://git@github.com/cloudflare/ai.git"},"type":"module","main":"./dist/index.mjs","types":"./dist/index.d.mts","exports":{".":{"types":{"import":"./dist/index.d.mts","require":"./dist/index.d.cts"},"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./adapters/openai":{"types":{"import":"./dist/adapters/openai.d.mts","require":"./dist/adapters/openai.d.cts"},"import":"./dist/adapters/openai.mjs","require":"./dist/adapters/openai.cjs"},"./adapters/anthropic":{"types":{"import":"./dist/adapters/anthropic.d.mts","require":"./dist/adapters/anthropic.d.cts"},"import":"./dist/adapters/anthropic.mjs","require":"./dist/adapters/anthropic.cjs"},"./adapters/gemini":{"types":{"import":"./dist/adapters/gemini.d.mts","require":"./dist/adapters/gemini.d.cts"},"import":"./dist/adapters/gemini.mjs","require":"./dist/adapters/gemini.cjs"},"./adapters/grok":{"types":{"import":"./dist/adapters/grok.d.mts","require":"./dist/adapters/grok.d.cts"},"import":"./dist/adapters/grok.mjs","require":"./dist/adapters/grok.cjs"},"./adapters/openrouter":{"types":{"import":"./dist/adapters/openrouter.d.mts","require":"./dist/adapters/openrouter.d.cts"},"import":"./dist/adapters/openrouter.mjs","require":"./dist/adapters/openrouter.cjs"},"./adapters/workers-ai":{"types":{"import":"./dist/adapters/workers-ai.d.mts","require":"./dist/adapters/workers-ai.d.cts"},"import":"./dist/adapters/workers-ai.mjs","require":"./dist/adapters/workers-ai.cjs"},"./adapters/workers-ai-image":{"types":{"import":"./dist/adapters/workers-ai-image.d.mts","require":"./dist/adapters/workers-ai-image.d.cts"},"import":"./dist/adapters/workers-ai-image.mjs","require":"./dist/adapters/workers-ai-image.cjs"},"./adapters/workers-ai-transcription":{"types":{"import":"./dist/adapters/workers-ai-transcription.d.mts","require":"./dist/adapters/workers-ai-transcription.d.cts"},"import":"./dist/adapters/workers-ai-transcription.mjs","require":"./dist/adapters/workers-ai-transcription.cjs"},"./adapters/workers-ai-tts":{"types":{"import":"./dist/adapters/workers-ai-tts.d.mts","require":"./dist/adapters/workers-ai-tts.d.cts"},"import":"./dist/adapters/workers-ai-tts.mjs","require":"./dist/adapters/workers-ai-tts.cjs"},"./adapters/workers-ai-summarize":{"types":{"import":"./dist/adapters/workers-ai-summarize.d.mts","require":"./dist/adapters/workers-ai-summarize.d.cts"},"import":"./dist/adapters/workers-ai-summarize.mjs","require":"./dist/adapters/workers-ai-summarize.cjs"}},"publishConfig":{"access":"public"},"dependencies":{"openai":"^6.33.0"},"devDependencies":{"@cloudflare/workers-types":"^4.20260402.1","@microsoft/api-extractor":"^7.58.0","@tanstack/ai":"^0.9.2","dotenv":"^17.4.0"},"peerDependencies":{"@tanstack/ai":">=0.8.0 <1.0.0"},"optionalDependencies":{"@anthropic-ai/sdk":"^0.82.0","@google/genai":"^1.48.0","@openrouter/sdk":"^0.10.2","@tanstack/ai-anthropic":">=0.7.1 <1.0.0","@tanstack/ai-gemini":">=0.8.4 <1.0.0","@tanstack/ai-grok":">=0.6.3 <1.0.0","@tanstack/ai-openai":">=0.7.2 <1.0.0","@tanstack/ai-openrouter":">=0.7.0 <1.0.0"},"scripts":{"build":"rm -rf dist && tsdown --config tsdown.config.ts","format":"biome format --write","type-check":"tsc --noEmit","test":"vitest --run","test:watch":"vitest","test:ci":"vitest --watch=false","test:e2e":"vitest --config vitest.e2e.config.ts --watch=false","test:e2e:rest":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-rest.e2e.test.ts","test:e2e:binding":"vitest --config vitest.e2e.config.ts --watch=false test/e2e/workers-ai-binding.e2e.test.ts"},"_id":"@cloudflare/tanstack-ai@0.1.9","homepage":"https://github.com/cloudflare/ai#readme","_integrity":"sha512-ZbNceTBkQ3nYkf9RO+364lLGqrFAl6eblOQCdhIUEtv9bKrW5zhBJboQ3z+Gx7BcvKeNp95J4TokQsNqxKqtRA==","_resolved":"/tmp/d76ce6a40afbfa98ad67196f00e18166/cloudflare-tanstack-ai-0.1.9.tgz","_from":"file:cloudflare-tanstack-ai-0.1.9.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-ZbNceTBkQ3nYkf9RO+364lLGqrFAl6eblOQCdhIUEtv9bKrW5zhBJboQ3z+Gx7BcvKeNp95J4TokQsNqxKqtRA==","shasum":"caadb3eeaa50c6aeac00c4550aba77f851f8ac6e","tarball":"https://registry.npmjs.org/@cloudflare/tanstack-ai/-/tanstack-ai-0.1.9.tgz","fileCount":84,"unpackedSize":489309,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cloudflare%2ftanstack-ai@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDRyu7oU+NlRbwy54StWu40Q5nl5kKnxg/t4qrWq0jS+QIhANh0XQFETz1kVvdB+k+6J77dZ1h/QtFYQPsUrclN9aMw"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:811c680f-7f8f-4438-8960-5a497fc70cdf"}},"directories":{},"maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"cf-npm-publish","email":"ui-platform-production@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tanstack-ai_0.1.9_1777484403102_0.6348774893933551"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-11T17:34:32.100Z","modified":"2026-04-29T17:40:04.793Z","0.0.0":"2026-02-11T17:34:32.227Z","0.1.0":"2026-02-11T21:25:23.572Z","0.1.1":"2026-02-12T15:23:58.379Z","0.1.2":"2026-02-20T10:12:16.871Z","0.1.3":"2026-03-19T07:17:56.210Z","0.1.4":"2026-03-19T13:09:24.835Z","0.1.5":"2026-03-22T13:51:31.392Z","0.1.6":"2026-03-25T08:47:55.501Z","0.1.7":"2026-04-02T08:17:10.718Z","0.1.8":"2026-04-23T13:51:29.657Z","0.1.9":"2026-04-29T17:40:03.268Z"},"bugs":{"url":"https://github.com/cloudflare/ai/issues"},"author":{"name":"Cloudflare Inc."},"license":"MIT","homepage":"https://github.com/cloudflare/ai#readme","keywords":["ai","chat","cloudflare","gateway","serverless","tanstack","workers"],"repository":{"type":"git","url":"git+ssh://git@github.com/cloudflare/ai.git"},"description":"Use TanStack AI with Cloudflare Workers AI and AI Gateway","maintainers":[{"name":"rexscaria","email":"arunrex@cloudflare.com"},{"name":"dcruz_cf","email":"dcruz@cloudflare.com"},{"name":"jculvey","email":"jculveyhouse@gmail.com"},{"name":"sejoker","email":"sejoker@gmail.com"},{"name":"cf-radar","email":"team@radar.cloudflare.com"},{"name":"cf-ci-write","email":"npm-readonly@cloudflare.com"},{"name":"segments-write","email":"ingvar@cloudflare.com"},{"name":"thibmeu","email":"mail@thibaultmeunier.com"},{"name":"xortive","email":"granjef3@gmail.com"},{"name":"cf-ci2","email":"npm-readonly2@cloudflare.com"},{"name":"lvalenta","email":"lvalenta@cloudflare.com"},{"name":"worenga","email":"benedikt@cloudflare.com"},{"name":"third774","email":"kevin.kipp@gmail.com"},{"name":"jasnell","email":"jasnell@gmail.com"},{"name":"terinjokes","email":"terinjokes@gmail.com"},{"name":"celso","email":"mail@celso.io"},{"name":"jsteinberger","email":"jsteinberger@cloudflare.com"},{"name":"gregbrimble","email":"developer@gregbrimble.com"},{"name":"asapzacy","email":"zacdarellano@gmail.com"},{"name":"g4brym","email":"g4bryrm98@gmail.com"},{"name":"wrangler-publisher","email":"workers-devprod@cloudflare.com"},{"name":"cf-media-manager","email":"florian@cloudflare.com"},{"name":"dash_service_account","email":"service-account@cloudflare-ui.com"},{"name":"lerwincf","email":"lerwin@cloudflare.com"},{"name":"cf-npm-publish","email":"ui-platform-production@cloudflare.com"},{"name":"simonabadoiu","email":"sbadoiu@cloudflare.com"},{"name":"cms1919","email":"csparks+1@cloudflare.com"},{"name":"mgirouard-cf","email":"mgirouard+npmjs@cloudflare.com"},{"name":"musa-cf","email":"musa@cloudflare.com"},{"name":"vaishakpdinesh","email":"vaishak@cloudflare.com"},{"name":"ichernetsky-cf","email":"ichernetsky@cloudflare.com"},{"name":"jseba_cf","email":"jseba@cloudflare.com"},{"name":"gabivlj-cf","email":"gvillalongasimon@cloudflare.com"},{"name":"ganders-cloudflare","email":"ganders@cloudflare.com"},{"name":"nsharma-cf","email":"nsharma@cloudflare.com"},{"name":"mikenomitch","email":"mikenomitch@gmail.com"},{"name":"tlefebvre_cf","email":"tlefebvre@cloudflare.com"},{"name":"nafeezcf","email":"nafeez@cloudflare.com"},{"name":"eduardo-vargas","email":"edvargast@gmail.com"},{"name":"threepointone","email":"threepointone@gmail.com"},{"name":"xtuc","email":"npm@sauleau.com"}],"readme":"# @cloudflare/tanstack-ai\n\nUse [TanStack AI](https://tanstack.com/ai) with Cloudflare Workers AI and AI Gateway. Supports chat, image generation, transcription, text-to-speech, and summarization with Workers AI models, plus routing through AI Gateway for OpenAI, Anthropic, Gemini, Grok, and OpenRouter.\n\n## Features\n\n- **Workers AI**: Chat, image generation, transcription (Whisper + Deepgram), TTS, and summarization via `env.AI` binding or REST API\n- **AI Gateway**: Route requests to OpenAI, Anthropic, Gemini, Grok, OpenRouter, and Workers AI through Cloudflare's AI Gateway for caching, rate limiting, and unified billing\n- **Flexible Configuration**: Four config modes — plain binding, plain REST, gateway binding, gateway REST\n- **Type-Safe**: Full TypeScript support with model-specific types and type inference\n\n## Installation\n\n```bash\nnpm install @cloudflare/tanstack-ai @tanstack/ai\n```\n\nFor AI Gateway with third-party providers, install the provider SDKs you need:\n\n```bash\n# For OpenAI\nnpm install @tanstack/ai-openai\n\n# For Anthropic\nnpm install @tanstack/ai-anthropic\n\n# For Gemini\nnpm install @tanstack/ai-gemini\n\n# For Grok\nnpm install @tanstack/ai-grok\n\n# For OpenRouter\nnpm install @tanstack/ai-openrouter @openrouter/sdk\n```\n\n## Workers AI\n\nThe simplest way to use AI in a Cloudflare Worker. No API keys needed for Workers AI models when using a binding.\n\n### Chat\n\n**Using the binding (recommended):**\n\n```typescript\nimport { createWorkersAiChat } from \"@cloudflare/tanstack-ai\";\nimport { chat, toHttpResponse } from \"@tanstack/ai\";\n\nconst adapter = createWorkersAiChat(\"@cf/moonshotai/kimi-k2.5\", {\n\tbinding: env.AI,\n});\n\nconst response = chat({\n\tadapter,\n\tstream: true,\n\tmessages: [{ role: \"user\", content: \"Hello!\" }],\n});\n\nreturn toHttpResponse(response);\n```\n\n**Using REST credentials:**\n\n```typescript\nconst adapter = createWorkersAiChat(\"@cf/moonshotai/kimi-k2.5\", {\n\taccountId: \"your-account-id\",\n\tapiKey: \"your-api-key\",\n});\n```\n\n### Reasoning Controls\n\nReasoning-capable Workers AI models (GLM-4.7-flash, Kimi K2.5/K2.6, GPT-OSS, QwQ) accept `reasoning_effort` and `chat_template_kwargs` on their inputs. Pass them per-call through `modelOptions`:\n\n```typescript\nimport { chat } from \"@tanstack/ai\";\nimport { createWorkersAiChat } from \"@cloudflare/tanstack-ai\";\n\nconst adapter = createWorkersAiChat(\"@cf/zai-org/glm-4.7-flash\", {\n\tbinding: env.AI,\n});\n\nconst response = chat({\n\tadapter,\n\tstream: true,\n\tmessages: [{ role: \"user\", content: \"Summarize in one sentence.\" }],\n\tmodelOptions: {\n\t\t// \"low\" | \"medium\" | \"high\" | null — null disables reasoning.\n\t\treasoning_effort: \"low\",\n\t\t// Toggle thinking on models that expose template kwargs (GLM, Kimi).\n\t\tchat_template_kwargs: { enable_thinking: false },\n\t},\n});\n```\n\nThis works in all four config modes (binding, REST, gateway binding, gateway REST). `modelOptions` keys with `undefined` values are stripped; `null` values are preserved.\n\nSee the [Workers AI docs](https://developers.cloudflare.com/workers-ai/) for per-model reasoning capabilities.\n\n### Vision (Image Inputs)\n\nSend images to vision-capable chat models:\n\n```typescript\nconst adapter = createWorkersAiChat(\"@cf/moonshotai/kimi-k2.5\", {\n\taccountId: \"your-account-id\",\n\tapiKey: \"your-api-key\",\n});\n\nconst response = chat({\n\tadapter,\n\tstream: true,\n\tmessages: [\n\t\t{\n\t\t\trole: \"user\",\n\t\t\tcontent: [\n\t\t\t\t{ type: \"text\", content: \"What's in this image?\" },\n\t\t\t\t{\n\t\t\t\t\ttype: \"image\",\n\t\t\t\t\tsource: { type: \"data\", value: base64String, mimeType: \"image/png\" },\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t],\n});\n```\n\nURL sources are also supported:\n\n```typescript\n{ type: \"image\", source: { type: \"url\", value: \"https://example.com/photo.jpg\" } }\n```\n\nWorks with all configuration modes (binding, REST, and AI Gateway).\n\n### Image Generation\n\n```typescript\nimport { createWorkersAiImage } from \"@cloudflare/tanstack-ai\";\nimport { generateImage } from \"@tanstack/ai\";\n\nconst adapter = createWorkersAiImage(\"@cf/black-forest-labs/flux-1-schnell\", {\n\tbinding: env.AI,\n});\n\nconst result = await generateImage({ adapter, prompt: \"a cat in space\" });\n// result.images[0].b64Json — base64-encoded image\n```\n\n### Transcription (Speech-to-Text)\n\n```typescript\nimport { createWorkersAiTranscription } from \"@cloudflare/tanstack-ai\";\nimport { generateTranscription } from \"@tanstack/ai\";\n\nconst adapter = createWorkersAiTranscription(\"@cf/openai/whisper-large-v3-turbo\", {\n\tbinding: env.AI,\n});\n\nconst result = await generateTranscription({ adapter, audio: audioArrayBuffer });\n// result.text — the transcribed text\n// result.segments — timed segments (whisper-large-v3-turbo)\n```\n\nSupported models: `@cf/openai/whisper`, `@cf/openai/whisper-tiny-en`, `@cf/openai/whisper-large-v3-turbo`, `@cf/deepgram/nova-3`\n\n### Text-to-Speech\n\n```typescript\nimport { createWorkersAiTts } from \"@cloudflare/tanstack-ai\";\nimport { generateSpeech } from \"@tanstack/ai\";\n\nconst adapter = createWorkersAiTts(\"@cf/deepgram/aura-2-en\", {\n\tbinding: env.AI,\n});\n\nconst result = await generateSpeech({ adapter, text: \"Hello world\" });\n// result.audio — base64-encoded audio\n```\n\n### Summarization\n\n```typescript\nimport { createWorkersAiSummarize } from \"@cloudflare/tanstack-ai\";\nimport { summarize } from \"@tanstack/ai\";\n\nconst adapter = createWorkersAiSummarize(\"@cf/facebook/bart-large-cnn\", {\n\tbinding: env.AI,\n});\n\nconst result = await summarize({ adapter, text: \"Long article here...\" });\n// result.summary\n```\n\n> **Coming soon:** Workers AI embedding adapter is implemented internally but waiting on TanStack AI to add `embed()` / `embedMany()` activity functions and a `BaseEmbeddingAdapter` base class.\n\n## AI Gateway\n\nRoute AI requests through Cloudflare's AI Gateway for caching, rate limiting, and unified billing. Supports Workers AI and third-party providers.\n\n### Configuration\n\n**Using AI Binding (Recommended for Cloudflare Workers):**\n\n```typescript\nconst adapter = createOpenAiChat(\"gpt-4o\", {\n\tbinding: env.AI.gateway(\"my-gateway-id\"),\n});\n```\n\n**Using Credentials:**\n\n```typescript\nconst adapter = createOpenAiChat(\"gpt-4o\", {\n\taccountId: \"your-account-id\",\n\tgatewayId: \"your-gateway-id\",\n\tcfApiKey: \"your-cf-api-key\", // Optional: if gateway is authenticated\n\tapiKey: \"provider-api-key\", // Optional: provider API key if not using Unified Billing or BYOK\n});\n```\n\n**Cache options (binding and credentials):**\n\n```typescript\nconst adapter = createOpenAiChat(\"gpt-4o\", {\n\tbinding: env.AI.gateway(\"my-gateway-id\"),\n\tskipCache: false,\n\tcacheTtl: 3600,\n\tcustomCacheKey: \"my-key\",\n\tmetadata: { user: \"test\" },\n});\n```\n\n### Workers AI through Gateway\n\n```typescript\nconst adapter = createWorkersAiChat(\"@cf/moonshotai/kimi-k2.5\", {\n\tbinding: env.AI.gateway(\"my-gateway-id\"),\n\tapiKey: env.WORKERS_AI_TOKEN,\n});\n```\n\n### Third-Party Providers through Gateway\n\n```typescript\nimport {\n\tcreateOpenAiChat,\n\tcreateAnthropicChat,\n\tcreateGeminiChat,\n\tcreateGrokChat,\n\tcreateOpenRouterChat,\n} from \"@cloudflare/tanstack-ai\";\n\n// OpenAI\nconst openai = createOpenAiChat(\"gpt-4o\", config);\n\n// Anthropic\nconst anthropic = createAnthropicChat(\"claude-sonnet-4-5\", config);\n\n// Gemini (credentials only)\nconst gemini = createGeminiChat(\"gemini-2.0-flash\", {\n\taccountId: env.CF_ACCOUNT_ID,\n\tgatewayId: env.CF_AIG_ID,\n\tcfApiKey: env.CF_AIG_TOKEN,\n});\n\n// Grok\nconst grok = createGrokChat(\"grok-4\", config);\n\n// OpenRouter (access any model via OpenRouter)\nconst openrouter = createOpenRouterChat(\"openai/gpt-4o\", config);\n```\n\n## Supported Capabilities\n\n| Provider       | Chat | Summarize | Image Gen | Transcription | TTS | Video |\n| -------------- | ---- | --------- | --------- | ------------- | --- | ----- |\n| **Workers AI** | ✅   | ✅        | ✅        | ✅            | ✅  | ❌    |\n| **OpenAI**     | ✅   | ✅        | ✅        | ✅            | ✅  | ✅    |\n| **Gemini**     | ✅   | ✅        | ✅        | ❌            | ✅  | ❌    |\n| **Anthropic**  | ✅   | ✅        | ❌        | ❌            | ❌  | ❌    |\n| **Grok**       | ✅   | ✅        | ✅        | ❌            | ❌  | ❌    |\n| **OpenRouter** | ✅   | ✅        | ✅        | ❌            | ❌  | ❌    |\n\n### All Functions\n\n**Workers AI:**\n\n- `createWorkersAiChat(model, config)` -- chat and structured output\n- `createWorkersAiImage(model, config)` -- image generation\n- `createWorkersAiTranscription(model, config)` -- speech-to-text (Whisper, Deepgram nova-3)\n- `createWorkersAiTts(model, config)` -- text-to-speech (Deepgram Aura-2, Aura-1)\n- `createWorkersAiSummarize(model, config)` -- summarization (BART-large-CNN)\n\n**OpenAI:**\n\n- `createOpenAiChat(model, config)`\n- `createOpenAiSummarize(model, config)`\n- `createOpenAiImage(model, config)`\n- `createOpenAiTranscription(model, config)`\n- `createOpenAiTts(model, config)`\n- `createOpenAiVideo(model, config)`\n\n**Anthropic:**\n\n- `createAnthropicChat(model, config)`\n- `createAnthropicSummarize(model, config)`\n\n**Gemini:**\n\n- `createGeminiChat(model, config)` -- credentials only, no binding support\n- `createGeminiSummarize(model, config)` -- credentials only, no binding support\n- `createGeminiImage(model, config)` -- credentials only, no binding support\n- `createGeminiTts(model, config)` -- text-to-speech (experimental), credentials only\n\n> **Note:** Gemini adapters use the Google GenAI SDK's `httpOptions.baseUrl` and `httpOptions.headers` to route through the gateway, rather than the custom fetch approach used by other providers. Binding config is not supported — only credentials. See [googleapis/js-genai#999](https://github.com/googleapis/js-genai/issues/999) for the upstream issue tracking custom `fetch` support.\n\n**Grok:**\n\n- `createGrokChat(model, config)`\n- `createGrokSummarize(model, config)`\n- `createGrokImage(model, config)`\n\n**OpenRouter:**\n\n- `createOpenRouterChat(model, config)` -- access any model via OpenRouter\n- `createOpenRouterSummarize(model, config)`\n- `createOpenRouterImage(model, config)`\n\n## Workers AI Configuration Modes\n\nWorkers AI supports four configuration modes:\n\n| Mode            | Config                            | Description                    |\n| --------------- | --------------------------------- | ------------------------------ |\n| Plain binding   | `{ binding: env.AI }`             | Direct access, no gateway      |\n| Plain REST      | `{ accountId, apiKey }`           | REST API, no gateway           |\n| Gateway binding | `{ binding: env.AI.gateway(id) }` | Through AI Gateway via binding |\n| Gateway REST    | `{ accountId, gatewayId, ... }`   | Through AI Gateway via REST    |\n\nThird-party providers (OpenAI, Anthropic, Gemini, Grok, OpenRouter) only support the gateway modes.\n\nAll Workers AI config modes also accept `sessionAffinity` to route requests with the same key to the same backend replica for prefix-cache optimization:\n\n```typescript\nconst adapter = createWorkersAiChat(\"@cf/moonshotai/kimi-k2.5\", {\n\tbinding: env.AI,\n\tsessionAffinity: \"my-unique-session-id\",\n});\n```\n\n## Links\n\n- [TanStack AI Documentation](https://tanstack.com/ai)\n- [Cloudflare Workers AI](https://developers.cloudflare.com/workers-ai/)\n- [Cloudflare AI Gateway](https://developers.cloudflare.com/ai-gateway/)\n","readmeFilename":"README.md"}