{"_id":"@braedonsaunders/appkit-ai","_rev":"22-a8b10501c708a7db9f8e59fbe018ee36","name":"@braedonsaunders/appkit-ai","dist-tags":{"latest":"2.2.0"},"versions":{"1.0.1":{"name":"@braedonsaunders/appkit-ai","version":"1.0.1","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.0.1","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"a745f689f727b92d02bdf7f5efb16465679084a1","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.0.1.tgz","fileCount":59,"integrity":"sha512-VlU7Xp6S0IdnfEQqyK9edLM0ZyOYXsfX6eKCKPqSIGDSmnxgPSB8JpQtpiQw2nCZH/Jj1cjJZQDRbwkLT7dyrg==","signatures":[{"sig":"MEQCIEKIMj8AQtdmOMug57f2m5YmUMNojYmQ89td+rHIMatQAiBsBkt0S2HLz4+1mXHEOG1X89MwEqrhrI2QtCXWtJV6AA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":241250},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.0.1.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/834aceea6a1caafd95d4a4a29d7678d4/braedonsaunders-appkit-ai-1.0.1.tgz","_integrity":"sha512-VlU7Xp6S0IdnfEQqyK9edLM0ZyOYXsfX6eKCKPqSIGDSmnxgPSB8JpQtpiQw2nCZH/Jj1cjJZQDRbwkLT7dyrg==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-sync":"^1.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.0.1_1787007443649_0.5915919617110246","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@braedonsaunders/appkit-ai","version":"1.0.2","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.0.2","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"0199d02dce81891c2590edd3d822681396bb2e47","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.0.2.tgz","fileCount":59,"integrity":"sha512-3cmsXKXAxYtKvl/NWnBft4kHD4fxrp3wMhfHGp9hGfKOiucNWY9zRYGG299HHYo1Ws4YJZljiojuAi+fC/9n7A==","signatures":[{"sig":"MEUCIQDafYzh2P7MbVN6YKnW0byYpjBCAouK9crpLSIFqyLn4AIgZoS0Zj0k1Geqd9nGu3A0o6gsvR2+HuWrsIL8BF3jc58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":252099},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.0.2.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/4dda1d2f0548a9931c0f418c494ba153/braedonsaunders-appkit-ai-1.0.2.tgz","_integrity":"sha512-3cmsXKXAxYtKvl/NWnBft4kHD4fxrp3wMhfHGp9hGfKOiucNWY9zRYGG299HHYo1Ws4YJZljiojuAi+fC/9n7A==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-sync":"^1.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.0.2_1787095093955_0.223005442156462","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@braedonsaunders/appkit-ai","version":"1.0.3","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.0.3","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"cc87390d9494c8c3d5a89a7aa37f92d5062e7fcb","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.0.3.tgz","fileCount":59,"integrity":"sha512-jgvC0wTw90OoHT4Cp1XtwNM90TqPhsKLQEtZxQWLefg79zx8dQS/bKsn4mTFZizJFaaVZbBcOXYNg9c3gwYVpw==","signatures":[{"sig":"MEUCIQCTrZ8a3P5rJoehlYjNxE6sNlcMuvXtGZR3dZSvK63z/AIgPoDtpLT7kbAvFQhhV4h3kwpLtMyjzy4zOmHKSy5AF70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":252163},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.0.3.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/4ce12f04fc2cef7885a9f7bea1006233/braedonsaunders-appkit-ai-1.0.3.tgz","_integrity":"sha512-jgvC0wTw90OoHT4Cp1XtwNM90TqPhsKLQEtZxQWLefg79zx8dQS/bKsn4mTFZizJFaaVZbBcOXYNg9c3gwYVpw==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.1.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.0.3_1787099005662_0.5123967509592224","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@braedonsaunders/appkit-ai","version":"1.1.0","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.1.0","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"09b1739798696deb8cb5057c95f858a8929681f3","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.1.0.tgz","fileCount":59,"integrity":"sha512-7W6rk2Ewv2q+7rOkJv4lbO6FKGvIx0rhyIsBRoDn4qGIlF0MgsUu/kT6r9uUULE225hcPICDT0o37OH+LZifsQ==","signatures":[{"sig":"MEUCID2ZNOWMqDajFiF4rO2FgPGG+yPRjO8RhrNC5ayrPYnHAiEAgKYHMJ5695pjEg9JoWIxFmoklQhJdSCpvv5guX4yBGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":268367},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.1.0.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/738d0913b869db01b590764d9a9ae0be/braedonsaunders-appkit-ai-1.1.0.tgz","_integrity":"sha512-7W6rk2Ewv2q+7rOkJv4lbO6FKGvIx0rhyIsBRoDn4qGIlF0MgsUu/kT6r9uUULE225hcPICDT0o37OH+LZifsQ==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.1.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.1.0_1787101686837_0.5164610671238226","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@braedonsaunders/appkit-ai","version":"1.1.1","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.1.1","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"eb9e224bfc13075fdd32969ed75c4a51a06708a0","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.1.1.tgz","fileCount":59,"integrity":"sha512-FVgyg6zRgx7Fx6cPhAfIiDoxwAO4jQDvy88PPQsnq9vWQmulLyz6joSwHTZsZle+UAy3xmXnjJjlXm4L7XEJQw==","signatures":[{"sig":"MEUCIQDJxSD4Bn7G/yp2JPJrZOZLI0T4AeUmnVJwklP6uNu54gIgBB3N+m1FQ4J3OwcOc0c8SnFjerPKeAPTtAgAutH9Klk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":273980},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.1.1.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/787ff623b450ffeff67fc401b16caf85/braedonsaunders-appkit-ai-1.1.1.tgz","_integrity":"sha512-FVgyg6zRgx7Fx6cPhAfIiDoxwAO4jQDvy88PPQsnq9vWQmulLyz6joSwHTZsZle+UAy3xmXnjJjlXm4L7XEJQw==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.1.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.1.1_1787155569617_0.4072359201736766","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@braedonsaunders/appkit-ai","version":"1.1.2","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.1.2","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"8c972457ed8f5f6f422bc69054664c6870a94e3d","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.1.2.tgz","fileCount":59,"integrity":"sha512-n54o/D7pP+60qiw3YB4qDM1x47hx6C4EZfz6P0cDjIkj/Vk22XNBiE1AYSVJFWj7zw7GZX4382Yw7GADAKAuxQ==","signatures":[{"sig":"MEQCIGVu119VUwANEirm78GEdGZI8pZRpJv3teiQTu9Ty/hrAiA0O5n6x/2EpXRrnhaWhoop2h4T+jTFDCPegLEfUO01mA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":277835},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.1.2.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/196e5b9a52a667a204abd5c8535d31a6/braedonsaunders-appkit-ai-1.1.2.tgz","_integrity":"sha512-n54o/D7pP+60qiw3YB4qDM1x47hx6C4EZfz6P0cDjIkj/Vk22XNBiE1AYSVJFWj7zw7GZX4382Yw7GADAKAuxQ==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.1.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.1.2_1787159706415_0.5721896822048458","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@braedonsaunders/appkit-ai","version":"1.1.3","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.1.3","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"60d5f7e7705117fd8f86e30456cbe027ad434ff3","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.1.3.tgz","fileCount":59,"integrity":"sha512-ptAnJqpMbvP2M8f8zJLSwjs/NomO2J4Q387xeTf8BgztHcxfSltug2PU59ya8pfk8VFug5KciqzxKGReIjisbQ==","signatures":[{"sig":"MEUCIQCwCoLKrCOf5FUYbATzE3WbjTXf1K677KRrWW5jEv+pwAIge2DrULZJRhNSqTANTCZSlMadGRaZQRzlCcs7Z00SKOU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":309657},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.1.3.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/12c22507397ec8bfd1680b96d23fd8c1/braedonsaunders-appkit-ai-1.1.3.tgz","_integrity":"sha512-ptAnJqpMbvP2M8f8zJLSwjs/NomO2J4Q387xeTf8BgztHcxfSltug2PU59ya8pfk8VFug5KciqzxKGReIjisbQ==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.1.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.1.3_1787161333441_0.255601768249458","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@braedonsaunders/appkit-ai","version":"1.1.4","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.1.4","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"0f8fc2d5fe6d182583e9f0c9a1a085db6ea65c90","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.1.4.tgz","fileCount":59,"integrity":"sha512-zTBBL1LTj3ceaCiYSsVFwDE1mRhxKqKNmgMHXD90dXK1HWJaR2xFe15KjxPNcgRtnM35B0qVYAHgRRN+JVXqLQ==","signatures":[{"sig":"MEQCICIIEMr/TS3E6xpZqFrPhOmoZY+ur7FzwKF3+xSdSxWhAiA17b9PhSwZ6J0aDdI1zMhPED93RaqrwsbLiNOgf9AyWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":330443},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.1.4.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/b8ab8522401bfeac1d7a41d3303507c5/braedonsaunders-appkit-ai-1.1.4.tgz","_integrity":"sha512-zTBBL1LTj3ceaCiYSsVFwDE1mRhxKqKNmgMHXD90dXK1HWJaR2xFe15KjxPNcgRtnM35B0qVYAHgRRN+JVXqLQ==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.1.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.1.4_1787168452021_0.2721573303971663","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@braedonsaunders/appkit-ai","version":"1.1.5","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.1.5","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"f0b3dac442021b162b3802e3f07de6a1f8102184","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.1.5.tgz","fileCount":59,"integrity":"sha512-VYFCfsZlcJomkL00vRWgrcu1hNR2Rbor5Vl2j+nIdn7Q5dqtyH+Aew8XiSmY9FTih6421ecIpx4A1gInEEpGZQ==","signatures":[{"sig":"MEQCICaBd1gbB+1KBHwe66CtAr5eXUFYSxUbFvwh4fdFD2aMAiBUMiR6jGDxL0FUDe3koSze+4TtiUS5E3Ehb+cW8aHoEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":330471},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.1.5.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/2ea12d2e29ea1d3b6df3e96fb8fdb623/braedonsaunders-appkit-ai-1.1.5.tgz","_integrity":"sha512-VYFCfsZlcJomkL00vRWgrcu1hNR2Rbor5Vl2j+nIdn7Q5dqtyH+Aew8XiSmY9FTih6421ecIpx4A1gInEEpGZQ==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.1.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.1.5_1787184737236_0.5815346212252832","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@braedonsaunders/appkit-ai","version":"1.1.6","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.1.6","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"a1be594f122661dd054b55e057b373fa4e160e8b","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.1.6.tgz","fileCount":59,"integrity":"sha512-c1+abeplXt64BcqrDsSAioKRMNsK4oFJlv8x83nLNuouZbYVZ/mFcIY+jZ7IYtIsfPqoHMjSugNNgPJ1xoJfhA==","signatures":[{"sig":"MEUCIQDtVcmHg/BY3RVzzRbAOoXnZud4qbLVZUUkGN6EeV5lzAIgRelOeji/6QCk23XprgNIn68adKXZHxjQJjyeBYyszNM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":331521},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.1.6.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/47ec87bb0dc549c799831301e73d9731/braedonsaunders-appkit-ai-1.1.6.tgz","_integrity":"sha512-c1+abeplXt64BcqrDsSAioKRMNsK4oFJlv8x83nLNuouZbYVZ/mFcIY+jZ7IYtIsfPqoHMjSugNNgPJ1xoJfhA==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.1.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.1.6_1787188980729_0.9709317242110538","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@braedonsaunders/appkit-ai","version":"1.2.0","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.2.0","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"e3eb2bb740c6dd64fd77bfdfb897629b8a60ec6a","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.2.0.tgz","fileCount":59,"integrity":"sha512-zPixl2U3tQPJd/cqQbsQ+rvOadn3vb9pjUUIBh70oi3eSWQPuGLvYJh9JN0bZKEQMzA7DqzCuKrP1cAiGnKOug==","signatures":[{"sig":"MEUCIQCCq28sKtwoJOQN7cF8VbigCTk4EM0aeTrKdDmNHumvXgIgZQAQfQePheuy3STXUzujqzJFXf6XrJVTcrqw11Tmimk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":336498},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.2.0.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/722baf5bcfb24bbfef6deac39766f88a/braedonsaunders-appkit-ai-1.2.0.tgz","_integrity":"sha512-zPixl2U3tQPJd/cqQbsQ+rvOadn3vb9pjUUIBh70oi3eSWQPuGLvYJh9JN0bZKEQMzA7DqzCuKrP1cAiGnKOug==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.1.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.2.0_1787231827251_0.4648322844606818","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@braedonsaunders/appkit-ai","version":"1.2.1","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.2.1","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"52803bd9a71869ec6f38867585cd7093f24e4b4e","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.2.1.tgz","fileCount":59,"integrity":"sha512-vuZm6T1JycAgRMTJA3tQokOAt/udIQ9OZzvojxIauiYcKGSB/OLsKDt2XA5eLXWfXdhTI/XEekoDiF78R9xH7w==","signatures":[{"sig":"MEQCIDeurezkD1RRUl/+HmRgN6P3SMd73PKvo4VJYKGHlkpYAiBoC2vRdkEafswiz1x9atk/QeVZtCnR3NVDigKasPEPnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342655},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.2.1.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/9856bc5dc667408c0df60e94a7001b2e/braedonsaunders-appkit-ai-1.2.1.tgz","_integrity":"sha512-vuZm6T1JycAgRMTJA3tQokOAt/udIQ9OZzvojxIauiYcKGSB/OLsKDt2XA5eLXWfXdhTI/XEekoDiF78R9xH7w==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.1.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.1"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.2.1_1788909187130_0.9614048842223792","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@braedonsaunders/appkit-ai","version":"1.2.2","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.2.2","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"7667503ea7e946d4e7c417dfd818c8b15fa4df44","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.2.2.tgz","fileCount":59,"integrity":"sha512-egMDMSJ4Btsgx9gjpDnwZFnBIuo1+HeAFUKKzR+zw2ShR9Tr/h3lUDP9gN8yZkHbucFv/AO/zCBHN/ocENCejQ==","signatures":[{"sig":"MEQCICs/I5MIfxzeXm9+FDQPrabcbaya4Z43v7VxValcT9XmAiBdIkIPhLtVs7rqFYQC0+hbHLXK7voJ9WszhxXUKETOMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342655},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.2.2.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/f321ba6861de5019f5444c1db7e941ef/braedonsaunders-appkit-ai-1.2.2.tgz","_integrity":"sha512-egMDMSJ4Btsgx9gjpDnwZFnBIuo1+HeAFUKKzR+zw2ShR9Tr/h3lUDP9gN8yZkHbucFv/AO/zCBHN/ocENCejQ==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.2.0"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.1"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.2.2_1789003731013_0.018392755463839228","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@braedonsaunders/appkit-ai","version":"1.3.0","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.3.0","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"d26edc6917309f7ec8505d650b4b4cab353ae2de","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.3.0.tgz","fileCount":59,"integrity":"sha512-zCR/W4mtpn40PQQKVhFbfMpmpxfnugsfSqBH3DwpWumRzwkTPO2WlJZdZGW7aGeTbbZ9LRARTeU9Ul64rnZ3PQ==","signatures":[{"sig":"MEQCIDDQSzkRmfZkT58M8oVsk+JfTAgQcWNmyFnf7G97CEULAiA5EP19ASFKeeWuUmaq9g+T2MBV9nyR6sA7HqDpALVZnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":355822},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.3.0.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/e498ae6fdb71d882c4974b8e38261c0b/braedonsaunders-appkit-ai-1.3.0.tgz","_integrity":"sha512-zCR/W4mtpn40PQQKVhFbfMpmpxfnugsfSqBH3DwpWumRzwkTPO2WlJZdZGW7aGeTbbZ9LRARTeU9Ul64rnZ3PQ==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.2.0"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.1"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.3.0_1789011845093_0.44594325449291206","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@braedonsaunders/appkit-ai","version":"1.4.0","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.4.0","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"39278f2d9dee59b468bcb5a6ebf7bfd8e5c41a0b","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.4.0.tgz","fileCount":59,"integrity":"sha512-XQXv4a57byls65X5r6mXwBWkpufCkIogDQzzPSt++sZ0H+fFv0xqsRxxi8UHfKtAts4F89XmtiWAsBBmttdRgw==","signatures":[{"sig":"MEUCIQDmwtjzM5z7mcdv1RVIG2n+rvXX96AAVLtnlHKzjGWpJgIgU4z6Tc28YH7gHRnX5NOb2mFKShNrPRXeLlxd2WQ6NI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":358005},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.4.0.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/12569b41b21aa6f607ca21a8e1bcee58/braedonsaunders-appkit-ai-1.4.0.tgz","_integrity":"sha512-XQXv4a57byls65X5r6mXwBWkpufCkIogDQzzPSt++sZ0H+fFv0xqsRxxi8UHfKtAts4F89XmtiWAsBBmttdRgw==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.2.0"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.1"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.4.0_1789051690120_0.2413617354408082","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@braedonsaunders/appkit-ai","version":"1.4.1","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.4.1","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"a77ef3423331bdaac6075478025045ea958f8471","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.4.1.tgz","fileCount":59,"integrity":"sha512-jjF1Pmw9/B3KRaRiAOaGCv5KKmKKSH4K8ZDMnVG11Z7kzhUDBakNzRPsqfkIM8qH2KwUOebSShzck6k6Ug0QaA==","signatures":[{"sig":"MEYCIQC+52x5IvG6KFyxRb69eZYBV7vHB4HPOF/SEXKujyRlBQIhAP5/I2K6CwdQD4wfw7nP6T6ahB0QXGBHL8URjEerf/yU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDi4EtOYJteGhlQEuqR8hY5Y8KqErUiCd5zId7nJ6jpIAIhAIKWeYwhfZE6U7KT76Mxo/Sz2nmiCaQmo8Cblc7KDbht","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":358005},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.4.1.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/0eb0b3c4a768f4343e3513537ce6499a/braedonsaunders-appkit-ai-1.4.1.tgz","_integrity":"sha512-jjF1Pmw9/B3KRaRiAOaGCv5KKmKKSH4K8ZDMnVG11Z7kzhUDBakNzRPsqfkIM8qH2KwUOebSShzck6k6Ug0QaA==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.2.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.1"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.4.1_1789076613621_0.3823443718808759","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@braedonsaunders/appkit-ai","version":"1.4.2","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@1.4.2","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"d3dec44e15d8dfc66f75d28acc820e45644e3f84","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-1.4.2.tgz","fileCount":59,"integrity":"sha512-cI1NVrGm3vheyF4V7G88ZVqWOyH+pSyUsEdVS/Wq+JX7ZjIW9HBNKL0FNLRPhRRdSQH/gVHnQRdhK/K0E+Bkuw==","signatures":[{"sig":"MEUCIQD8f+CWjVu0apB0vLnerju+IqVzB/amOWoPEfHZJhy3AQIgeDx9qx6WQlHj6AwbIHYI1NWOo45vKKk1imas28XUXcU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDE/HIYuupEWxwzGLk4W/yC68LClsuym6EbFvUvjdfGagIhAN1ymrTm954zHaHa1cqSrKE29nIPHqVc/wJxPf9vHGiF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":369441},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-1.4.2.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/c14d892de14725c88450d4805d51fc54/braedonsaunders-appkit-ai-1.4.2.tgz","_integrity":"sha512-cI1NVrGm3vheyF4V7G88ZVqWOyH+pSyUsEdVS/Wq+JX7ZjIW9HBNKL0FNLRPhRRdSQH/gVHnQRdhK/K0E+Bkuw==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.2.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.2.1"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_1.4.2_1789176978752_0.14259151408049164","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@braedonsaunders/appkit-ai","version":"2.0.0","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@2.0.0","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"3dbfb23fa3d95a199c1cb3f57613a0552e64b31d","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-2.0.0.tgz","fileCount":59,"integrity":"sha512-RJPv0xJHnh+9iHrjpvc0zQNUMYuaLs01RIJar7Nm2+BxZbK1RciFGTCuSxSAMDYkklBk/Jz6ixdJypeJ27Tm0A==","signatures":[{"sig":"MEUCIBo1ePD2KfWe6b/H0TlHd6kL8oz4vFz1r+7hk0xW3CFUAiEA7e6nfBomIoPU/nYSrLTOxTomLv5OXezvAIIYftzTRuY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDK0WvrLj5d87+bLdM2YHt+HVjEg5HrRBMO4imPNjYnIgIhANhWUiJP6s84bnUNZggxPs04CGFPgy31Bvvz6FNyU97V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":369441},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-2.0.0.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/dab861b7afa0061915201b699e15e622/braedonsaunders-appkit-ai-2.0.0.tgz","_integrity":"sha512-RJPv0xJHnh+9iHrjpvc0zQNUMYuaLs01RIJar7Nm2+BxZbK1RciFGTCuSxSAMDYkklBk/Jz6ixdJypeJ27Tm0A==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.2.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.3.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_2.0.0_1789182601106_0.4378201895894984","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@braedonsaunders/appkit-ai","version":"2.0.1","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@2.0.1","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"e5f7a168a0260f344a910a5425453864533d4bd2","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-2.0.1.tgz","fileCount":59,"integrity":"sha512-buRHOQ1GlthIixmcbM6pFCVZd0WanYqeYIOYxrbq7FBlSz3ffjEs0UrR+8KATd0tg20mbbnwCOc2Ih0BFicVNg==","signatures":[{"sig":"MEUCIQDBUuxRkbIP9QYYsEfbbAazaGOQKyL7KLDwpStciLfOygIgNCeRXTqpV72L0fH/yQDoim45G/Zbs+Y3afz/+5yM0Ug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCoi6g48J8vpI9XAtv5Smh+00YIeeioyatAOIL0SDfZUgIgUfHu0eMAwsdYTBD+stXwGZtEytGJFx2ACN2+hMjcZ5o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376634},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-2.0.1.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/9c33b7217cd26eda90f41eb313b04a1d/braedonsaunders-appkit-ai-2.0.1.tgz","_integrity":"sha512-buRHOQ1GlthIixmcbM6pFCVZd0WanYqeYIOYxrbq7FBlSz3ffjEs0UrR+8KATd0tg20mbbnwCOc2Ih0BFicVNg==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.2.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.3.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_2.0.1_1789186694329_0.034579056445461775","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@braedonsaunders/appkit-ai","version":"2.0.2","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@2.0.2","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"3008951c75f968c2a1fa8b88bcbec1a2d1e1f6c2","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-2.0.2.tgz","fileCount":59,"integrity":"sha512-zWK8HiSpiO1FMlJ+H8Sj3Nr9RnfswAmPGH0Hrjz6y9gFdD2D2MCG2/REJwml7wnDDDjWICuOseQkadzSOzyuMA==","signatures":[{"sig":"MEUCIEFgJyGOUbwtgOLdiVWlAHgFcChKybHHo70W/z+eOVCOAiEA4zhp6fcHWObg6tE70wJWLmMrvr2hhLBPEEH0ohzfc6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDZAMEWsKICcwAWkmQCkQdx7bdDe9niqtUnuhX6MPjLEwIhAODwXAqooUr2GuWNbDjiEiAcbkC38Tr5fp04JkwFQBxZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":383376},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-2.0.2.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/c9d86fde2e401a3927fb2aed93b5fa9f/braedonsaunders-appkit-ai-2.0.2.tgz","_integrity":"sha512-zWK8HiSpiO1FMlJ+H8Sj3Nr9RnfswAmPGH0Hrjz6y9gFdD2D2MCG2/REJwml7wnDDDjWICuOseQkadzSOzyuMA==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.2.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.3.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_2.0.2_1789395077283_0.46327803286357216","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@braedonsaunders/appkit-ai","version":"2.1.0","keywords":["appkit","application-framework","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-ai@2.1.0","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"9c2fa44f5575f7c12b0759d7a43dbcd461641168","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-2.1.0.tgz","fileCount":59,"integrity":"sha512-ZRnhPs2nhNfOZAo+cWMzi3awDblr2O0bB90VVuO7zkrzJ6+AKCN6Hr9jqGSpdgBnIUIczS3tRcXsIyB53uNstw==","signatures":[{"sig":"MEQCICv/7IMWc1KhWz4xgOXmxlF0J/hpB4UupGVDhAg27oKYAiBZmvmcQjBk2e3tCtEvBK/ohO8/n1Rhx+gNOh5oEFqvKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDu/g8vBD2e9SQMoZjm/hqffykIe013qBSo1VB07Rr08AiEAiG/SyBjo/6Sv1CB3Il4gZ6SGtx3q8nG43S9Y+eIQXFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":390589},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-ai-2.1.0.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/0da1080a0df7c7369304ba1125037fae/braedonsaunders-appkit-ai-2.1.0.tgz","_integrity":"sha512-ZRnhPs2nhNfOZAo+cWMzi3awDblr2O0bB90VVuO7zkrzJ6+AKCN6Hr9jqGSpdgBnIUIczS3tRcXsIyB53uNstw==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.2.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.3.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-ai_2.1.0_1789403787754_0.48952230051896484","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"_id":"@braedonsaunders/appkit-ai@2.2.0","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"f71a205d2c007778a6d90a75775b6613de5126f9","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-ai/-/appkit-ai-2.2.0.tgz","fileCount":59,"integrity":"sha512-IHMqrISNL+lfiZ98C5GOL8yEUdx9EZ0LjoIkQFxU2xbcI7CtXw9VRNqM6co3RLonRm4bPfJCBoMKrExQdU/U4Q==","signatures":[{"sig":"MEUCIQCQOYsEGyMuONSDOmmeqj/zuhMGSWcRlTHfGMbbuDJVdAIgFVaqirdmImPqXZr5ldnBBxpEf42V+If+7AOeUy7gMFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICOgE6Kxf1VOTD8uT9dAMfr/yVddnYn5MdSvNiqyJxOSAiEAjAHYx46MndxzF7cGcUm/pE83h1U9B8ifzIR7CWF2/Ic="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-ai@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":403297},"main":"./index.js","name":"@braedonsaunders/appkit-ai","type":"module","_from":"file:braedonsaunders-appkit-ai-2.2.0.tgz","types":"./index.d.ts","author":{"name":"Braedon Saunders"},"engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./package.json":"./package.json"},"license":"AGPL-3.0-or-later","version":"2.2.0","_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","keywords":["appkit","application-framework","typescript"],"_resolved":"/tmp/da81b626c9c7a47488112f7e8a7d021f/braedonsaunders-appkit-ai-2.2.0.tgz","_integrity":"sha512-IHMqrISNL+lfiZ98C5GOL8yEUdx9EZ0LjoIkQFxU2xbcI7CtXw9VRNqM6co3RLonRm4bPfJCBoMKrExQdU/U4Q==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.9.8","description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","directories":{},"maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"_nodeVersion":"22.23.2","dependencies":{"ai":"^6.0.224","zod":"^4.4.3","@ai-sdk/google":"^3.0.91","@ai-sdk/openai":"^3.0.84","@ai-sdk/anthropic":"^3.0.96","@ai-sdk/openai-compatible":"^2.0.59","@braedonsaunders/appkit-egress-proxy":"^0.2.1"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","remark-gfm":"^4.0.1","lucide-react":"^1.24.0","react-markdown":"^10.1.0","@braedonsaunders/appkit-ui":"^0.3.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"remark-gfm":{"optional":true},"lucide-react":{"optional":true},"react-markdown":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/appkit-ai_2.2.0_1789431663531_0.3317256032536524"}}},"time":{"created":"2026-08-17T22:57:23.444Z","modified":"2026-09-15T00:21:04.101Z","1.0.1":"2026-08-17T22:57:23.808Z","1.0.2":"2026-08-18T23:18:14.104Z","1.0.3":"2026-08-19T00:23:25.812Z","1.1.0":"2026-08-19T01:08:07.004Z","1.1.1":"2026-08-19T16:06:09.802Z","1.1.2":"2026-08-19T17:15:06.576Z","1.1.3":"2026-08-19T17:42:13.655Z","1.1.4":"2026-08-19T19:40:52.170Z","1.1.5":"2026-08-20T00:12:17.404Z","1.1.6":"2026-08-20T01:23:00.885Z","1.2.0":"2026-08-20T13:17:07.412Z","1.2.1":"2026-09-08T23:13:07.287Z","1.2.2":"2026-09-10T01:28:51.146Z","1.3.0":"2026-09-10T03:44:05.231Z","1.4.0":"2026-09-10T14:48:10.299Z","1.4.1":"2026-09-10T21:43:33.717Z","1.4.2":"2026-09-12T01:36:18.902Z","2.0.0":"2026-09-12T03:10:01.222Z","2.0.1":"2026-09-12T04:18:14.423Z","2.0.2":"2026-09-14T14:11:17.401Z","2.1.0":"2026-09-14T16:36:27.848Z","2.2.0":"2026-09-15T00:21:03.628Z"},"bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/ai#readme","keywords":["appkit","application-framework","typescript"],"repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/ai"},"description":"App-agnostic bounded agent loop and streaming assistant interface, with provider policy supplied by the host app.","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"readme":"# @braedonsaunders/appkit-ai\n\nThe shared multi-step agent layer for bounded, tenant-aware assistant surfaces.\n\nThe server entry point accepts an AI SDK `LanguageModel`, system prompt, prior\nmodel messages, and a tenant-bound `ToolSet`. It deliberately imports no app\nschema, tenant package, provider credential store, or domain prompt. A consuming\napp resolves those at the request boundary and exposes only tools whose execute\nfunctions already enforce its `RequestContext` and RBAC policy.\n\n`@braedonsaunders/appkit-ai/react` supplies the streaming assistant thread, UI-message decoder,\nmarkdown renderer, generic tool-use cards, abort control, composer, welcome and\ndisabled states. Conversation persistence and the HTTP transport stay app-owned.\nHosts can place contextual controls in the panel's fixed header with the optional\n`headerActions` prop and replace the stock first-message card with a full-height\napplication stage through `emptyContent`. `assistantAvatar` places an\napplication-owned employee identity in the existing 28px assistant-message slot,\nwith the stock Sparkles marker retained as the fallback. Consecutive tool calls collapse into\none quiet activity line showing the newest action and total step count; operators can expand it to\ninspect every input and result without letting a long run overwhelm the thread.\nLong links, identifiers, code blocks, and markdown tables wrap within the\nconversation width instead of creating a second horizontal scroll area.\n\nFor long histories, pass only the newest page in `initialMessages` together\nwith `hasOlderMessages` and `onLoadOlderMessages`. Reaching the top requests\nthe next page automatically, while the button remains available for keyboard\nand assistive-technology users. After the host prepends that page, the panel\nkeeps the message being read at the same visual position.\n\nThe composer remains extensible without being replaced. `composerActions` adds\ncontrols beside the text input, `composerContent` renders application-owned\ndraft state above it, and `composerDraft` supplies a file-only fallback prompt\nplus parts for the optimistic user turn. Persisted user messages can include\n`{ type: 'file', filename, url? }` parts, which render as compact attachment\nlinks. Its one-line textarea shares the icon buttons' 40px geometry and explicit\nline height, keeping typed and placeholder text vertically centered.\n\nWhile the first assistant parts are streaming, `AgentPanel` renders a subtle\nthree-dot typing cadence through the exported `AgentTypingIndicator`. Its pure\nCSS motion uses AppKit duration/easing tokens, is independent of an app's\nTailwind content scan, and becomes a static ellipsis under reduced motion.\n\nAssistant messages may also contain a typed `secret-request` part with a\nrequest id, provider label, credential label, purpose, optional HTTPS help URL,\nand `pending`, `stored`, or `expired` status. `AgentPanel` renders the exported\n`AgentSecretRequestCard` inline and delegates submission and cancellation to\n`onSubmitSecretRequest` / `onCancelSecretRequest`. The credential is held only\nin the uncontrolled password field, cleared before the submit handler runs,\nand never added to message parts, React state, rendered text, or AppKit-owned\npersistence. The application remains responsible for authorization, sealing,\nstorage, audit, and updating the durable request status.\n\nGoverned actions can use a typed `approval-request` part with an approval id,\ncategory, human-readable description, optional exact-action details, and a\ndurable pending/approved/rejected/expired status. `AgentPanel` renders the\nexported `AgentApprovalRequestCard` inline, so an agent can end a suspended turn\nwith a clear handoff instead of a bare tool call. Applications persist and\nauthorize the decision through `onDecideApprovalRequest`; AppKit never treats\nrendering the card as authorization.\n\n```tsx\n<AgentPanel\n  enabled\n  initialMessages={[{\n    id: 'assistant-credential',\n    role: 'assistant',\n    parts: [{\n      type: 'secret-request',\n      requestId: request.id,\n      providerLabel: 'Delivery provider',\n      credentialLabel: 'API key',\n      purpose: 'Authorize approved carrier status updates.',\n      helpUrl: 'https://provider.example/docs/api-keys',\n      status: request.status,\n    }],\n  }]}\n  onSubmitSecretRequest={async (requestId, secret) => {\n    await storeSealedCredential({ requestId, secret })\n  }}\n  onCancelSecretRequest={expireCredentialRequest}\n/>\n```\n\nApplications with durable session dispatch can pass `dispatchState` and an\nordered `queuedMessages` collection. While work is running, recovering, or\nalready queued, new composer submissions go through the app-owned `enqueue`\ncallback instead of bypassing the queue. AppKit presents queue position and\nlifecycle state and exposes optional edit, remove, and retry actions; the host\ncontinues to own persistence, authorization, FIFO claiming, idempotency, and\nrecovery.\n\n```tsx\n<AgentPanel\n  enabled\n  dispatchState=\"running\"\n  queuedMessages={queue.map((entry) => ({\n    id: entry.id,\n    text: entry.prompt,\n    position: entry.position,\n    status: entry.status,\n    editable: entry.status === 'queued',\n    removable: entry.status === 'queued',\n    retryable: entry.status === 'failed',\n  }))}\n  enqueue={persistQueuedTurn}\n  onEditQueuedMessage={openQueueEditor}\n  onRemoveQueuedMessage={removeQueuedTurn}\n  onRetryQueuedMessage={retryQueuedTurn}\n  send={startTurn}\n/>\n```\n\n```ts\nimport { runAgentTurn } from '@braedonsaunders/appkit-ai'\n\nreturn runAgentTurn({\n  model,\n  system,\n  messages,\n  tools: tenantBoundTools,\n  onComplete: persistAssistantTurn,\n})\n```\n\nFor visual tool loops, call `pruneVisualToolContext` from the AI SDK\n`prepareStep` hook. It removes historical and exact-duplicate tool-result\nimages while leaving the newest distinct frames, tool structure, text, and\nuser-supplied images intact. Persist the complete screenshot record separately.\n","readmeFilename":"README.md"}