{"_id":"@ai-sdk-tool/middleware","_rev":"7-548a5aff2d59bac6afda8837e9729e89","name":"@ai-sdk-tool/middleware","dist-tags":{"canary":"0.0.1-canary.0","latest":"0.1.1"},"versions":{"0.0.0":{"name":"@ai-sdk-tool/middleware","version":"0.0.0","keywords":["ai","sdk","middleware"],"author":"","license":"Apache-2.0","_id":"@ai-sdk-tool/middleware@0.0.0","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/ai-sdk-tool-call-middleware#readme","bugs":{"url":"https://github.com/minpeter/ai-sdk-tool-call-middleware/issues"},"dist":{"shasum":"30e467a2c4beb3b741c3245fc3e03ea1ec7af0ae","tarball":"https://registry.npmjs.org/@ai-sdk-tool/middleware/-/middleware-0.0.0.tgz","fileCount":15,"integrity":"sha512-0AUcMrGVP18TrSJZX/KhX2fXjuxuxJcagTib/8oKe9khvnBT4klUVDtlCuG9WAZgeiaMEvooXbgXtOWasKSngg==","signatures":[{"sig":"MEUCIEIuIDFsInFLGL6TU16biNc5o6qBijCwhNkDktnL3Eh0AiEAhLALNuKNEwjZ/5XduwiFaKtkiEljQs2eC7dpk1y0Igk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87081},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./reasoning-parser":{"types":"./dist/reasoning-parser.d.ts","import":"./dist/reasoning-parser.js","require":"./dist/reasoning-parser.cjs"}},"gitHead":"cd667517767594e0f0e4c5c68f730d5f790c5c29","scripts":{"test":"vitest run","build":"pnpm clean && tsup --tsconfig tsconfig.build.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit","build:watch":"pnpm clean && tsup --watch --tsconfig tsconfig.build.json"},"_npmUser":{"name":"minpeter","email":"kali2005611@gmail.com"},"repository":{"url":"git+https://github.com/minpeter/ai-sdk-tool-call-middleware.git","type":"git","directory":"packages/middleware"},"_npmVersion":"11.6.4","description":"Collection of reusable AI SDK middlewares","directories":{},"_nodeVersion":"22.21.0","dependencies":{"@ai-sdk/provider":"3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/node":"^25.0.3","@ai-sdkx/tsconfig":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/middleware_0.0.0_1766572508031_0.0391526954279513","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-canary.0":{"name":"@ai-sdk-tool/middleware","version":"0.0.1-canary.0","keywords":["ai","sdk","middleware"],"author":"","license":"Apache-2.0","_id":"@ai-sdk-tool/middleware@0.0.1-canary.0","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/ai-sdk-tool-call-middleware#readme","bugs":{"url":"https://github.com/minpeter/ai-sdk-tool-call-middleware/issues"},"dist":{"shasum":"f666d4d7e3466ad300aa79d3b1bea61fe96a23c8","tarball":"https://registry.npmjs.org/@ai-sdk-tool/middleware/-/middleware-0.0.1-canary.0.tgz","fileCount":16,"integrity":"sha512-A2JgRM0hWNAFcz+P82oc2ZX6vDEPn0bl12XHrSNER0Wb79WxRygA52mlhUWfgi7hNCNapHdFg/4C5Ho0sdn+cg==","signatures":[{"sig":"MEYCIQDeAy6p7uhTxZn0THHxyQlCSPC2zU1Sk5JnNgBf2Slh8AIhAJ/FuY3e3JkDrpj8hdPPX3hpy4LaklCiUraSw55ztNC3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fmiddleware@0.0.1-canary.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87674},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-middleware-0.0.1-canary.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./reasoning-parser":{"types":"./dist/reasoning-parser.d.ts","import":"./dist/reasoning-parser.js","require":"./dist/reasoning-parser.cjs"}},"scripts":{"test":"vitest run","build":"pnpm clean && tsup --tsconfig tsconfig.build.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit","build:watch":"pnpm clean && tsup --watch --tsconfig tsconfig.build.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1e25f7ad-361b-4610-8308-3b19c0f63404"}},"_resolved":"/tmp/d582a6d3e61d0b083d4acf1cc812be75/ai-sdk-tool-middleware-0.0.1-canary.0.tgz","_integrity":"sha512-A2JgRM0hWNAFcz+P82oc2ZX6vDEPn0bl12XHrSNER0Wb79WxRygA52mlhUWfgi7hNCNapHdFg/4C5Ho0sdn+cg==","repository":{"url":"git+https://github.com/minpeter/ai-sdk-tool-call-middleware.git","type":"git","directory":"packages/middleware"},"_npmVersion":"11.6.2","description":"Collection of reusable AI SDK middlewares","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@ai-sdk/provider":"3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/node":"^25.0.3","@ai-sdkx/tsconfig":"0.0.1-canary.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_0.0.1-canary.0_1766742372262_0.5225504566791368","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@ai-sdk-tool/middleware","version":"0.0.1","keywords":["ai","sdk","middleware"],"author":"","license":"Apache-2.0","_id":"@ai-sdk-tool/middleware@0.0.1","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/ai-sdk-tool-call-middleware#readme","bugs":{"url":"https://github.com/minpeter/ai-sdk-tool-call-middleware/issues"},"dist":{"shasum":"1e107aab5af21f400ad7793b2d558466a7f7302c","tarball":"https://registry.npmjs.org/@ai-sdk-tool/middleware/-/middleware-0.0.1.tgz","fileCount":24,"integrity":"sha512-4CJ1OUHbfZTjD/M6lqrIueZcsOjPUDRkuTHie8m9HAf+ZJoDrFo7ivH+qkj1J56nVGQ+bxtr71eUJjWZXUrihA==","signatures":[{"sig":"MEUCIQD0m+fW22aFpBqnbUK9qNLkRh9hCHAMoyJtgKRRGTSMqwIgNQTDATC0RPHq8aN881Q89PTW5ez/uXLRNU/olTKwtmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fmiddleware@0.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":154720},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-middleware-0.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./disk-cache":{"types":"./dist/disk-cache.d.ts","import":"./dist/disk-cache.js","require":"./dist/disk-cache.cjs"},"./reasoning-parser":{"types":"./dist/reasoning-parser.d.ts","import":"./dist/reasoning-parser.js","require":"./dist/reasoning-parser.cjs"}},"scripts":{"test":"vitest run","build":"pnpm clean && tsup --tsconfig tsconfig.build.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit","build:watch":"pnpm clean && tsup --watch --tsconfig tsconfig.build.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1e25f7ad-361b-4610-8308-3b19c0f63404"}},"_resolved":"/tmp/11d4fc68ebc2eac53319597338d87be5/ai-sdk-tool-middleware-0.0.1.tgz","_integrity":"sha512-4CJ1OUHbfZTjD/M6lqrIueZcsOjPUDRkuTHie8m9HAf+ZJoDrFo7ivH+qkj1J56nVGQ+bxtr71eUJjWZXUrihA==","repository":{"url":"git+https://github.com/minpeter/ai-sdk-tool-call-middleware.git","type":"git","directory":"packages/middleware"},"_npmVersion":"11.6.2","description":"Collection of reusable AI SDK middlewares","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@ai-sdk/provider":"3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/node":"^25.0.3","@ai-sdkx/tsconfig":"0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/middleware_0.0.1_1767364052788_0.2241503829279532","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@ai-sdk-tool/middleware","version":"0.0.2","keywords":["ai","sdk","middleware"],"author":"","license":"Apache-2.0","_id":"@ai-sdk-tool/middleware@0.0.2","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/ai-sdk-tool-call-middleware#readme","bugs":{"url":"https://github.com/minpeter/ai-sdk-tool-call-middleware/issues"},"dist":{"shasum":"d1fa0d542985db49a354dde05e45ed556404c3b5","tarball":"https://registry.npmjs.org/@ai-sdk-tool/middleware/-/middleware-0.0.2.tgz","fileCount":24,"integrity":"sha512-YvawQVvCeaVM4+pvhfFNN2eKcyE0GAxO8F4eoqszKKeDEPM1ksE5RKKHiwBuX7HDYBvL8k1SFaDxOAfH7wmzug==","signatures":[{"sig":"MEUCIQCBxZ8O/OShDwHU3wMnodwOMUp52Y6QsPi/fn+xn1gnhgIgWb6mUi7GXhe2P3hBxYyXZoRQ2j76AFjRk7FXkpe1hMc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fmiddleware@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":155683},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-middleware-0.0.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./disk-cache":{"types":"./dist/disk-cache.d.ts","import":"./dist/disk-cache.js","require":"./dist/disk-cache.cjs"},"./reasoning-parser":{"types":"./dist/reasoning-parser.d.ts","import":"./dist/reasoning-parser.js","require":"./dist/reasoning-parser.cjs"}},"scripts":{"test":"vitest run","build":"pnpm clean && tsup --tsconfig tsconfig.build.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit","build:watch":"pnpm clean && tsup --watch --tsconfig tsconfig.build.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1e25f7ad-361b-4610-8308-3b19c0f63404"}},"_resolved":"/tmp/03d794c856880d350abda928acdd3e5d/ai-sdk-tool-middleware-0.0.2.tgz","_integrity":"sha512-YvawQVvCeaVM4+pvhfFNN2eKcyE0GAxO8F4eoqszKKeDEPM1ksE5RKKHiwBuX7HDYBvL8k1SFaDxOAfH7wmzug==","repository":{"url":"git+https://github.com/minpeter/ai-sdk-tool-call-middleware.git","type":"git","directory":"packages/middleware"},"_npmVersion":"11.6.2","description":"Collection of reusable AI SDK middlewares","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@ai-sdk/provider":"3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/node":"^25.0.3","@ai-sdkx/tsconfig":"0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/middleware_0.0.2_1767630615419_0.5937446801681405","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@ai-sdk-tool/middleware","version":"0.0.3","keywords":["ai","sdk","middleware"],"author":"","license":"Apache-2.0","_id":"@ai-sdk-tool/middleware@0.0.3","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/ai-sdk-middleware#readme","bugs":{"url":"https://github.com/minpeter/ai-sdk-middleware/issues"},"dist":{"shasum":"e364581a82483d97b8882529fb823e6ba6f2027a","tarball":"https://registry.npmjs.org/@ai-sdk-tool/middleware/-/middleware-0.0.3.tgz","fileCount":25,"integrity":"sha512-XVh0fskCdxId/YnLRY6e5CAJt056y3D+VpWO2vLbkyDWeIt8OhFxFOIyNWGIxka3mdLWcW2Fuayk4480mgrNjQ==","signatures":[{"sig":"MEUCIQDnTYaJDq9NmeEMXGaWzvEpmjCCoUirlu2O+lptXrFZWAIgXSeUFH3rfH3MFEe7TxvLb8pN/aCR3PENi2br8OURoHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fmiddleware@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":157088},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-middleware-0.0.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./disk-cache":{"types":"./dist/disk-cache.d.ts","import":"./dist/disk-cache.js","require":"./dist/disk-cache.cjs"},"./reasoning-parser":{"types":"./dist/reasoning-parser.d.ts","import":"./dist/reasoning-parser.js","require":"./dist/reasoning-parser.cjs"}},"scripts":{"fmt":"pnpm run fmt:biome","test":"vitest run","build":"pnpm clean && tsup --tsconfig tsconfig.build.json","check":"pnpm run check:biome && pnpm run check:types","clean":"rm -rf dist *.tsbuildinfo","changeset":"changeset","fmt:biome":"biome check --write","typecheck":"tsc --noEmit","ci:release":"pnpm build && changeset publish","ci:version":"changeset version","build:watch":"pnpm clean && tsup --watch --tsconfig tsconfig.build.json","check:biome":"biome check","check:types":"pnpm run typecheck","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00faecfc-8be9-4448-9ae5-f8372f2892c4"}},"_resolved":"/tmp/f45e66dba0f647ee28fea9f771aebb01/ai-sdk-tool-middleware-0.0.3.tgz","_integrity":"sha512-XVh0fskCdxId/YnLRY6e5CAJt056y3D+VpWO2vLbkyDWeIt8OhFxFOIyNWGIxka3mdLWcW2Fuayk4480mgrNjQ==","repository":{"url":"git+https://github.com/minpeter/ai-sdk-middleware.git","type":"git"},"_npmVersion":"11.6.2","description":"Collection of reusable AI SDK middlewares","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@ai-sdk/provider":"3.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","ultracite":"7.2.3","typescript":"5.9.3","@types/node":"^25.3.0","@biomejs/biome":"2.4.3","@changesets/cli":"2.29.8","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/middleware_0.0.3_1771568679975_0.6114279129305242","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@ai-sdk-tool/middleware","version":"0.1.0","keywords":["ai","sdk","middleware","ai-sdk","language-model-v4","evlog"],"author":"","license":"Apache-2.0","_id":"@ai-sdk-tool/middleware@0.1.0","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/ai-sdk-middleware#readme","bugs":{"url":"https://github.com/minpeter/ai-sdk-middleware/issues"},"dist":{"shasum":"ceb4afba08410101fdb481bfa1622c04b80db22f","tarball":"https://registry.npmjs.org/@ai-sdk-tool/middleware/-/middleware-0.1.0.tgz","fileCount":33,"integrity":"sha512-z4Fe00MezUeM+F6gEdsCxEbB2Smojkn+4T0ErrFpBosypiZEKIEndmeaLJiezB9gBG+PVFp57KVspbjwHzA/Ug==","signatures":[{"sig":"MEUCIQDs8flgTizLlh0FddrF/eGZUqv8XTsdMq0y5ikzuBkXTwIgZInI+dqcbIcPBVK2box9jQG5D1FjoPp4FKWFGhU2B1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fmiddleware@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":304060},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-middleware-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./evlog":{"types":"./dist/evlog.d.ts","import":"./dist/evlog.js","require":"./dist/evlog.cjs"},"./disk-cache":{"types":"./dist/disk-cache.d.ts","import":"./dist/disk-cache.js","require":"./dist/disk-cache.cjs"},"./reasoning-parser":{"types":"./dist/reasoning-parser.d.ts","import":"./dist/reasoning-parser.js","require":"./dist/reasoning-parser.cjs"}},"scripts":{"fmt":"pnpm run fmt:biome","test":"vitest run","build":"pnpm clean && tsup --tsconfig tsconfig.build.json && tsc -p tsconfig.build.json","check":"pnpm run check:biome && pnpm run check:types","clean":"rm -rf dist *.tsbuildinfo","changeset":"changeset","fmt:biome":"biome check --write","typecheck":"tsc --noEmit","ci:release":"pnpm build && changeset publish","ci:version":"changeset version","build:watch":"pnpm clean && tsup --watch --tsconfig tsconfig.build.json","check:biome":"biome check","check:types":"pnpm run typecheck","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00faecfc-8be9-4448-9ae5-f8372f2892c4"}},"_resolved":"/tmp/85b8727b4ad7255eae6d7af8c3d7559b/ai-sdk-tool-middleware-0.1.0.tgz","_integrity":"sha512-z4Fe00MezUeM+F6gEdsCxEbB2Smojkn+4T0ErrFpBosypiZEKIEndmeaLJiezB9gBG+PVFp57KVspbjwHzA/Ug==","repository":{"url":"git+https://github.com/minpeter/ai-sdk-middleware.git","type":"git"},"_npmVersion":"11.16.0","description":"Collection of reusable AI SDK middlewares","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.18","zod":"^4.4.3","tsup":"^8.5.1","evlog":"2.20.0","vitest":"^4.1.10","ultracite":"7.9.3","typescript":"7.0.2","@types/node":"^26.1.1","@biomejs/biome":"2.5.3","@changesets/cli":"2.31.0","@ai-sdk/provider":"4.0.2","@vitest/coverage-v8":"^4.1.10"},"peerDependencies":{"ai":">=7.0.0 <8.0.0","evlog":">=2.0.0","@ai-sdk/provider":"^4.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"evlog":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/middleware_0.1.0_1783615711216_0.7782453416515065","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ai-sdk-tool/middleware","version":"0.1.1","description":"Collection of reusable AI SDK middlewares","type":"module","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/minpeter/ai-sdk-middleware.git"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./reasoning-parser":{"types":"./dist/reasoning-parser.d.ts","import":"./dist/reasoning-parser.js","require":"./dist/reasoning-parser.cjs"},"./disk-cache":{"types":"./dist/disk-cache.d.ts","import":"./dist/disk-cache.js","require":"./dist/disk-cache.cjs"},"./evlog":{"types":"./dist/evlog.d.ts","import":"./dist/evlog.js","require":"./dist/evlog.cjs"}},"publishConfig":{"access":"public"},"peerDependencies":{"@ai-sdk/provider":"^4.0.0","ai":">=7.0.0 <8.0.0","evlog":">=2.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"evlog":{"optional":true}},"devDependencies":{"@ai-sdk/provider":"4.0.2","@biomejs/biome":"2.5.3","@changesets/cli":"2.31.0","@types/node":"^26.1.1","@vitest/coverage-v8":"^4.1.10","ai":"7.0.18","evlog":"2.20.0","tsup":"^8.5.1","typescript":"7.0.2","ultracite":"7.9.3","vitest":"^4.1.10","zod":"^4.4.3"},"keywords":["ai","sdk","middleware","ai-sdk","language-model-v4","evlog"],"author":"","license":"Apache-2.0","engines":{"node":">=22"},"scripts":{"build":"pnpm clean && tsup --tsconfig tsconfig.build.json && tsc -p tsconfig.build.json","build:watch":"pnpm clean && tsup --watch --tsconfig tsconfig.build.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test":"vitest run","test:coverage":"vitest run --coverage","check:biome":"biome check","check:types":"pnpm run typecheck","check":"pnpm run check:biome && pnpm run check:types","fmt:biome":"biome check --write","fmt":"pnpm run fmt:biome","changeset":"changeset","ci:release":"pnpm build && changeset publish","ci:version":"changeset version"},"_id":"@ai-sdk-tool/middleware@0.1.1","bugs":{"url":"https://github.com/minpeter/ai-sdk-middleware/issues"},"homepage":"https://github.com/minpeter/ai-sdk-middleware#readme","_integrity":"sha512-cCflpV0yrh5JoWc+oxni7vQcV7iDBJ2hizIrs0iE8D26arbq4wXD5xbDo0MnU96jAZtlBo4Og73/Jj9kNfWLgw==","_resolved":"/tmp/40f7322f827a68cef417529b171f5521/ai-sdk-tool-middleware-0.1.1.tgz","_from":"file:ai-sdk-tool-middleware-0.1.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-cCflpV0yrh5JoWc+oxni7vQcV7iDBJ2hizIrs0iE8D26arbq4wXD5xbDo0MnU96jAZtlBo4Og73/Jj9kNfWLgw==","shasum":"0c8cd395b16d932515238b6ac7d1642526f5b165","tarball":"https://registry.npmjs.org/@ai-sdk-tool/middleware/-/middleware-0.1.1.tgz","fileCount":33,"unpackedSize":309781,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fmiddleware@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH6tkUhb9dFhgfxEHFgaSD9MG4F/KbgDqW7mbcYDOnCzAiAhY2Snw+TjGsOHoKiCqtjr0OfxZiXPUelPxz1hkec2lg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00faecfc-8be9-4448-9ae5-f8372f2892c4"}},"directories":{},"maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/middleware_0.1.1_1783692691572_0.6007259083261518"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-24T10:35:07.947Z","modified":"2026-07-10T14:11:32.053Z","0.0.0":"2025-12-24T10:35:08.200Z","0.0.1-canary.0":"2025-12-26T09:46:12.406Z","0.0.1":"2026-01-02T14:27:32.926Z","0.0.2":"2026-01-05T16:30:15.677Z","0.0.3":"2026-02-20T06:24:40.130Z","0.1.0":"2026-07-09T16:48:31.430Z","0.1.1":"2026-07-10T14:11:31.761Z"},"bugs":{"url":"https://github.com/minpeter/ai-sdk-middleware/issues"},"license":"Apache-2.0","homepage":"https://github.com/minpeter/ai-sdk-middleware#readme","keywords":["ai","sdk","middleware","ai-sdk","language-model-v4","evlog"],"repository":{"type":"git","url":"git+https://github.com/minpeter/ai-sdk-middleware.git"},"description":"Collection of reusable AI SDK middlewares","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"readme":"# AI SDK Middleware\n\n[![npm](https://img.shields.io/npm/v/@ai-sdk-tool/middleware)](https://www.npmjs.com/package/@ai-sdk-tool/middleware)\n[![npm](https://img.shields.io/npm/dt/@ai-sdk-tool/middleware)](https://www.npmjs.com/package/@ai-sdk-tool/middleware)\n\nReusable middleware utilities for the Vercel AI SDK **v7** (`LanguageModelV4`), plus an [`evlog/ai`](https://github.com/HugoRCD/evlog) LanguageModelV4 port.\n\n## Support matrix\n\nAligned with the [official AI SDK layering](https://ai-sdk.dev) and [evlog AI integration](https://www.evlog.dev/use-cases/ai-sdk/overview):\n\n| Layer | Spec |\n|-------|------|\n| AI SDK v6 | Primarily `LanguageModelV3` / `LanguageModelV3Middleware` |\n| AI SDK v7 (`ai@7`) | Core is `LanguageModelV4` (`specificationVersion: \"v4\"`) |\n| This package (core middlewares) | `LanguageModelV4Middleware` only |\n| `@ai-sdk-tool/middleware/evlog` wrap | `LanguageModelV4` + `LanguageModelV4Middleware` |\n| Upstream `evlog/ai` wrap | `LanguageModelV3` + `LanguageModelV3Middleware` only |\n| Peer `ai` (optional, for `./evlog`) | `>=7.0.0 <8.0.0` (LanguageModelV4 wrap — not AI SDK v6) |\n| Peer `evlog` (optional, for `./evlog` types) | `>=2.0.0` — full `RequestLogger` type |\n| Peer `@ai-sdk/provider` | `^4` (LanguageModelV4 types) |\n| Node.js | `>=22` (required for AI SDK v7) |\n\n**Meaning:** this package targets **AI SDK v7 / LanguageModelV4** only. Upstream `evlog/ai` still peers `ai >= 6.0.168` and wraps **V3**; use that for AI SDK v6.\n\n### `./evlog` feature matrix\n\nCapture token usage, tool calls, model info, and streaming metrics into wide events. Requires **AI SDK v7** (`ai >= 7`, Node.js 22+).\n\nFor tool execution timing, abort tracking, and auto embed capture, pass `createEvlogIntegration(ai)` to `telemetry.integrations`.\n\n| Data | Source | Description |\n|------|--------|-------------|\n| tokens, model, provider, stream metrics | middleware (`wrap` / `createAIMiddleware`) | `inputTokens`, `outputTokens`, cache/reasoning tokens, `msToFirstChunk`, `msToFinish`, `tokensPerSecond`, … |\n| `ai.tools[]` | `onToolExecutionEnd` | Per-tool `name`, `durationMs`, `success`, `error` |\n| `ai.totalDurationMs` | `onStart` → `onEnd` | Wall time from generation start to completion |\n| `ai.embedding` | `onEmbedEnd` or `captureEmbed()` | Embeddings |\n| `ai.finishReason: 'abort'` | `onAbort` | Aborted stream |\n| `ai.error` | `onAbort` / `onError` | Abort reason or unrecoverable error |\n\nIntegration still implements the older v6 hook names (`onToolCallFinish`, `onFinish`) for source parity with upstream, but this package only supports AI SDK v7.\n\n## Installation\n\n```bash\npnpm add @ai-sdk-tool/middleware\n# for ./evlog:\npnpm add ai@^7\n```\n\n## Exports\n\n- `@ai-sdk-tool/middleware`\n- `@ai-sdk-tool/middleware/disk-cache`\n- `@ai-sdk-tool/middleware/reasoning-parser`\n- `@ai-sdk-tool/middleware/evlog` — LanguageModelV4 port of [`evlog/ai`](https://github.com/HugoRCD/evlog) (optional peer: `ai`)\n\n## Included middleware\n\nAll middlewares implement `LanguageModelV4Middleware` and work with `wrapLanguageModel` from `ai@7`:\n\n- `createDiskCacheMiddleware`: Disk-based response cache for `generate` and `stream`\n- `defaultSystemPromptMiddleware`: Inject or merge system prompts\n- `extractReasoningMiddleware`: Extract XML-tagged reasoning into `reasoning` parts\n- `createAIMiddleware` / `createAILogger` / `createEvlogIntegration` (`./evlog`): wide-event AI observability (`log.set({ ai })`)\n\n### evlog example (v7)\n\n```ts\nimport { generateText } from \"ai\";\nimport {\n  createAILogger,\n  createEvlogIntegration,\n} from \"@ai-sdk-tool/middleware/evlog\";\n\nconst ai = createAILogger(log); // full evlog RequestLogger\n\nconst result = await generateText({\n  model: ai.wrap(yourLanguageModelV4), // or gateway model id string\n  prompt: \"hello\",\n  telemetry: {\n    integrations: [createEvlogIntegration(ai)],\n  },\n});\n```\n\n### Core middleware example\n\n```ts\nimport { wrapLanguageModel } from \"ai\";\nimport { createDiskCacheMiddleware } from \"@ai-sdk-tool/middleware/disk-cache\";\nimport { defaultSystemPromptMiddleware } from \"@ai-sdk-tool/middleware\";\n\nconst model = wrapLanguageModel({\n  model: yourLanguageModelV4,\n  middleware: [\n    defaultSystemPromptMiddleware({ systemPrompt: \"You are helpful.\" }),\n    createDiskCacheMiddleware({ cacheDir: \".ai-cache\" }),\n  ],\n});\n```\n\n## Development\n\n```bash\npnpm install\npnpm run typecheck\npnpm run test\npnpm run build\n```\n\n## Release flow\n\n- Add a patch/minor/major changeset in `.changeset/*.md`\n- Merge changes to `main` via a pull request, then let `Release Changeset` open/update the version PR\n- Merging the version PR publishes the package to npm automatically\n","readmeFilename":"README.md"}