{"_id":"@digitalchokro/provider-openai","_rev":"12-9198161c5d1b6bad23671082f1705abb","name":"@digitalchokro/provider-openai","dist-tags":{"latest":"2.0.6"},"versions":{"1.0.0":{"name":"@digitalchokro/provider-openai","version":"1.0.0","keywords":["askchokro","openai","gpt","ai","provider"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@1.0.0","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"6ae564397660355a82544cbd675c787b6d646a45","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-1.0.0.tgz","fileCount":4,"integrity":"sha512-dOsTXxdQI69pWwLj4zI3BjvhFWQZji5OncmYLbpIUbC/VcVSA3jIslUaBxlX4QtbLfpAav0DzbBuf3owdXFwcQ==","signatures":[{"sig":"MEQCIB24u4XzQM/AEB8m7O+zZ6HyYG+GqSyEXKIpOiJHY0U9AiB6Ws85TapMgj9IHn5CH5fekWoEUGwy8vcLBZga3CCVSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4890},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-1.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/tmp/4d635830dbcd7d083b07879a207e9241/digitalchokro-provider-openai-1.0.0.tgz","_integrity":"sha512-dOsTXxdQI69pWwLj4zI3BjvhFWQZji5OncmYLbpIUbC/VcVSA3jIslUaBxlX4QtbLfpAav0DzbBuf3owdXFwcQ==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"10.9.8","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.0.0"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_1.0.0_1782998453422_0.13570542541999786","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@digitalchokro/provider-openai","version":"1.0.1","keywords":["askchokro","openai","gpt","ai","provider"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@1.0.1","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"e1afd00548d53073f0bd31660baa3eb5eef19580","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-1.0.1.tgz","fileCount":4,"integrity":"sha512-wWzStocfNd8sOwEMuTqVzQEcS2QPaoe8Hl0QFHYUntnjfWJzuyMKUoGMWRyuffVAIe7mHDHO0oR9tZ8669sKpw==","signatures":[{"sig":"MEQCIEHskJRidoGjDMw257Hgkyl9r/tVJ4O1f4tTJwI/A1tFAiAo7IVk2169hAa69fGL27ioPkkS4uGmehExHEQGZulu0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4890},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-1.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/tmp/4771583c53ece305be2b15f9423f67e9/digitalchokro-provider-openai-1.0.1.tgz","_integrity":"sha512-wWzStocfNd8sOwEMuTqVzQEcS2QPaoe8Hl0QFHYUntnjfWJzuyMKUoGMWRyuffVAIe7mHDHO0oR9tZ8669sKpw==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"10.9.8","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.0.1"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_1.0.1_1783002746765_0.9948002406539314","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@digitalchokro/provider-openai","version":"1.0.2","keywords":["askchokro","openai","gpt","ai","provider"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@1.0.2","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"d859c02e841db8bbf3ca1e53efbcee86b4a13039","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-1.0.2.tgz","fileCount":4,"integrity":"sha512-2XiZBiOyI1QjWki/vZsi00E6NMu/MwUmd3GtMsMvR8YuXyf4NAHh32wnZGNmRYi3Y9cm2lBViOeZJjeXi5tZwQ==","signatures":[{"sig":"MEUCIQD6NTRapZgX0Tuez87K7jcDaB0SPvyoIKPry+EmRrqDaAIgLnLpQDmDha6L/Vr61VzebBwUbmlNoQ4QGwzGAYs+OiA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4890},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-1.0.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/tmp/76b44899cb301bdc03bd2b7e12b19a95/digitalchokro-provider-openai-1.0.2.tgz","_integrity":"sha512-2XiZBiOyI1QjWki/vZsi00E6NMu/MwUmd3GtMsMvR8YuXyf4NAHh32wnZGNmRYi3Y9cm2lBViOeZJjeXi5tZwQ==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"10.9.8","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.0.2"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_1.0.2_1783005595253_0.9132081997460944","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@digitalchokro/provider-openai","version":"1.0.3","keywords":["askchokro","openai","gpt","ai","provider"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@1.0.3","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"cf1baafc1de760ed44fd238f386f73dc901e4343","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-1.0.3.tgz","fileCount":4,"integrity":"sha512-06K79SHEIUeupAUCKe+tdiVN/5VhvUUvIz48Z5CJjudyRxIHwB/wpGeJcXCHRYxQ+fvrY5EEQZF9EiDrxbMM6Q==","signatures":[{"sig":"MEUCIQCniUDMvtAFhE0nTOSXAKC57Uescqu43wJGOz36VUIiWAIgXaDMNSIoKZL4D+vp6wXDy9wsWlR1wHXUN1b6qZZevM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4890},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-1.0.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/private/var/folders/6j/hs8slnj54b78dhtyvpt0m5xh0000gn/T/8d77b130d1101db2b12c34a78b2d1e6e/digitalchokro-provider-openai-1.0.3.tgz","_integrity":"sha512-06K79SHEIUeupAUCKe+tdiVN/5VhvUUvIz48Z5CJjudyRxIHwB/wpGeJcXCHRYxQ+fvrY5EEQZF9EiDrxbMM6Q==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"11.9.0","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.0.3"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_1.0.3_1783015744307_0.9348620037375073","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@digitalchokro/provider-openai","version":"1.0.5","keywords":["askchokro","sql","ai","llm","text-to-sql","nlp","rag","database","analytics","business intelligence","agent","generative ai","typescript","node.js"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@1.0.5","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"c63fa43c63a306ca0e505a5f35688888f5a80d76","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-1.0.5.tgz","fileCount":5,"integrity":"sha512-TGtSJe15PX6m6scmJbASsIMty4Ni8ztYY7VuoKrK5VDdXmILeP3VMhWsMy9mjHYxMM3F8bUSWPp9mQ3qBBa+QQ==","signatures":[{"sig":"MEUCIQDpzs/uCdyscxSExn/6zL3X0KbthobKkK+TPsA4Ng9cmAIgdZiX9sGDvkPdHlcMTKB0IP9iL58ef2+gdM2uPiteKT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19277},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-1.0.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/tmp/f48a54c365d8a078f77cc0b34b2c4582/digitalchokro-provider-openai-1.0.5.tgz","_integrity":"sha512-TGtSJe15PX6m6scmJbASsIMty4Ni8ztYY7VuoKrK5VDdXmILeP3VMhWsMy9mjHYxMM3F8bUSWPp9mQ3qBBa+QQ==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"10.9.8","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.0.5"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_1.0.5_1783079818733_0.5793775051917043","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@digitalchokro/provider-openai","version":"2.0.0","keywords":["askchokro","sql","ai","llm","text-to-sql","nlp","rag","database","analytics","business intelligence","agent","generative ai","typescript","node.js"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@2.0.0","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"af4605f3cc8dab8345ff27a0a95ddfacfeb63bfa","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-2.0.0.tgz","fileCount":5,"integrity":"sha512-fqycBHueAH7e7peSFP+QF40DfLwgmk8MZypTi6X8Hyv6oWt/lDSDtwkkMqThO+FHdCjnatEUVDCfBz4J1owe4Q==","signatures":[{"sig":"MEUCIF37oaPZK4xKJEIikTTUBdgsz7JK+ThkuqKghpr4ogufAiEAqjQnd7y9YHsrB124+MUkq9wh6Vs8edHSYUBoLXKlayU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15367},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-2.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/tmp/5407bc7ef9e2c1215c9d4749269dc16a/digitalchokro-provider-openai-2.0.0.tgz","_integrity":"sha512-fqycBHueAH7e7peSFP+QF40DfLwgmk8MZypTi6X8Hyv6oWt/lDSDtwkkMqThO+FHdCjnatEUVDCfBz4J1owe4Q==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"10.9.8","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.1.0"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_2.0.0_1783082103780_0.28254401329174583","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@digitalchokro/provider-openai","version":"2.0.1","keywords":["askchokro","sql","ai","llm","text-to-sql","nlp","rag","database","analytics","business intelligence","agent","generative ai","typescript","node.js"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@2.0.1","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"1efece874d6af7df3c6456b9ab8fc67ec5b23d2c","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-2.0.1.tgz","fileCount":5,"integrity":"sha512-XrKiyxE5SQJvehAa9ti9QAxN1Uo9voefkeTaaciIbxc49qeO+wCB6NLsDo8jE85kFB+JsbwSxwTzmyoqLTeq+Q==","signatures":[{"sig":"MEUCIQCSZOtUDUz8mbSvNo7JVcbjsQ7UcKbZLCC57DpPOfO32QIgPgbCcPdhO8ODRAfklqA0Pc+YBMOCC8bcncqtlq3oV+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15590},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-2.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/tmp/0333d71a5e3f763d215ca9c2c8d72a7a/digitalchokro-provider-openai-2.0.1.tgz","_integrity":"sha512-XrKiyxE5SQJvehAa9ti9QAxN1Uo9voefkeTaaciIbxc49qeO+wCB6NLsDo8jE85kFB+JsbwSxwTzmyoqLTeq+Q==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"10.9.8","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.1.1"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_2.0.1_1783084555561_0.9493602445891216","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@digitalchokro/provider-openai","version":"2.0.2","keywords":["askchokro","sql","ai","llm","text-to-sql","nlp","rag","database","analytics","business intelligence","agent","generative ai","typescript","node.js"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@2.0.2","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"46d3cd582054df37c932b11ac6e99cc7608e0b5d","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-2.0.2.tgz","fileCount":6,"integrity":"sha512-m+Aj4RI8oJK709yFpKUeud5fkorRcPCD+P6PUvVVNnOxuSGj6+RZA5xARzwJtoHk8jBcg3Iz65FuXwI/UOUsKg==","signatures":[{"sig":"MEUCIAjGQfgFI8OTeeIcZU2UGS8WEMqs7/3YTnGHuxF1jotxAiEA5EQGINQsFQWf0GVZDCuxw4HeIXBVn30KkZ2JC3+KzTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21565},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-2.0.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch --sourcemap","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts --sourcemap","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/tmp/21cf9c7f9abda16a63bec6d4c9788748/digitalchokro-provider-openai-2.0.2.tgz","_integrity":"sha512-m+Aj4RI8oJK709yFpKUeud5fkorRcPCD+P6PUvVVNnOxuSGj6+RZA5xARzwJtoHk8jBcg3Iz65FuXwI/UOUsKg==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"10.9.8","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.1.2"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_2.0.2_1783085120244_0.6154037284353471","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@digitalchokro/provider-openai","version":"2.0.3","keywords":["askchokro","sql","ai","llm","text-to-sql","nlp","rag","database","analytics","business intelligence","agent","generative ai","typescript","node.js"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@2.0.3","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"08170fb49f24a309bf303d80940c1aa5254d712d","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-2.0.3.tgz","fileCount":6,"integrity":"sha512-K1tI6V1RZjJ5BjKaKtklx2/SQO2GE4rTMaWDsEg7+R/DVzrsMyUAJAh/PrrhzKGfr5oc9/KHpdc5lrQQKaOhnw==","signatures":[{"sig":"MEUCIDoJ1CqaHbv/XEfTskqsNFrOURGhvMAYtDzJfZfyOkYkAiEA/aRWv2OTskyx122ii7i7xIv1jHR/npA2/IyTggu2iL8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21565},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-2.0.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch --sourcemap","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts --sourcemap","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/tmp/38f9556dbd40312ef2f0b065a69921ed/digitalchokro-provider-openai-2.0.3.tgz","_integrity":"sha512-K1tI6V1RZjJ5BjKaKtklx2/SQO2GE4rTMaWDsEg7+R/DVzrsMyUAJAh/PrrhzKGfr5oc9/KHpdc5lrQQKaOhnw==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"10.9.8","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.1.3"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.1.3"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_2.0.3_1783100306282_0.37818181901720815","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@digitalchokro/provider-openai","version":"2.0.4","keywords":["askchokro","sql","ai","llm","text-to-sql","nlp","rag","database","analytics","business intelligence","agent","generative ai","typescript","node.js"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@2.0.4","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"3791c0a2a0cfb1914d2d87bf97f3185c143813fe","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-2.0.4.tgz","fileCount":6,"integrity":"sha512-i6HNsp+4Qu+Wx568sD/hLCw/4D7oikfL/Y+deCOp7+df0pD1Q7pO4CWeXbFQJZWE2T1eAlI3Ax4q+FXtsiI3sA==","signatures":[{"sig":"MEQCIE4jGnlCXmkKfh8mpbisq6+RfeTq3sS7k8Zal71L8Te5AiAlCFp6/uFJ5WlsAwdT9JLcLuvHfbmhoQ4JwsdMl+O92Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21565},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-2.0.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch --sourcemap","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts --sourcemap","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/tmp/8102d229d6cf58b88a2c2009467ed066/digitalchokro-provider-openai-2.0.4.tgz","_integrity":"sha512-i6HNsp+4Qu+Wx568sD/hLCw/4D7oikfL/Y+deCOp7+df0pD1Q7pO4CWeXbFQJZWE2T1eAlI3Ax4q+FXtsiI3sA==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"10.9.8","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.1.4"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.1.4"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_2.0.4_1783106053469_0.0765817595575693","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@digitalchokro/provider-openai","version":"2.0.5","keywords":["askchokro","sql","ai","llm","text-to-sql","nlp","rag","database","analytics","business intelligence","agent","generative ai","typescript","node.js"],"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","_id":"@digitalchokro/provider-openai@2.0.5","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"homepage":"https://github.com/digitalchokro/askchokro#readme","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"dist":{"shasum":"9a96f05199a41df6382ef1746ea4768129420ad6","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-2.0.5.tgz","fileCount":6,"integrity":"sha512-oOStfOtaDHnYvDP9O8iSuWtPwfcorB2adswdwrWEd4DIX5AN4muEPgnskpaB0+IqbNBpSlHpFTE6CnzFdL5Wdw==","signatures":[{"sig":"MEQCICdBH1VZRRArx61EC8qZN8Ikuwifkms7thdI/I0YxgxNAiBJIq3oINSilv5n1urV/icVXZuQJLAtjIY1bj08OpRP9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21667},"main":"./dist/index.js","type":"module","_from":"file:digitalchokro-provider-openai-2.0.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format esm --dts --watch --sourcemap","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --dts --sourcemap","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"_resolved":"/tmp/08445670fe2d2d748ed517b053e58f89/digitalchokro-provider-openai-2.0.5.tgz","_integrity":"sha512-oOStfOtaDHnYvDP9O8iSuWtPwfcorB2adswdwrWEd4DIX5AN4muEPgnskpaB0+IqbNBpSlHpFTE6CnzFdL5Wdw==","repository":{"url":"git+https://github.com/digitalchokro/askchokro.git","type":"git","directory":"packages/provider-openai"},"_npmVersion":"10.9.8","description":"OpenAI provider for AskChokro.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^4.104.0","vitest":"^2.0.0","typescript":"^5.5.0","@digitalchokro/core":"1.1.5"},"peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.1.5"},"_npmOperationalInternal":{"tmp":"tmp/provider-openai_2.0.5_1783356841029_0.24634057624176076","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@digitalchokro/provider-openai","version":"2.0.6","description":"OpenAI provider for AskChokro.","license":"MIT","author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"repository":{"type":"git","url":"git+https://github.com/digitalchokro/askchokro.git","directory":"packages/provider-openai"},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"main":"./dist/index.js","types":"./dist/index.d.ts","peerDependencies":{"openai":"^4.0.0","@digitalchokro/core":"1.1.6"},"devDependencies":{"openai":"^4.104.0","tsup":"^8.0.0","typescript":"^5.5.0","vitest":"^2.0.0","@digitalchokro/core":"1.1.6"},"keywords":["askchokro","sql","ai","llm","text-to-sql","nlp","rag","database","analytics","business intelligence","agent","generative ai","typescript","node.js"],"publishConfig":{"access":"public"},"scripts":{"build":"tsup src/index.ts --format esm --dts --sourcemap","dev":"tsup src/index.ts --format esm --dts --watch --sourcemap","lint":"eslint src/","typecheck":"tsc --noEmit","test":"vitest run","clean":"rm -rf dist"},"_id":"@digitalchokro/provider-openai@2.0.6","bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"homepage":"https://github.com/digitalchokro/askchokro#readme","_integrity":"sha512-awmwGmFZMoH+qfTpjdhUFcI+Qtbr82jvkE4aRhrIbz7te+VABHok5xjkVt0UPW4PVpntxwihy8mhcCuihHHfMw==","_resolved":"/tmp/d0d2e931ae9623a45c4a7a0868f61895/digitalchokro-provider-openai-2.0.6.tgz","_from":"file:digitalchokro-provider-openai-2.0.6.tgz","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-awmwGmFZMoH+qfTpjdhUFcI+Qtbr82jvkE4aRhrIbz7te+VABHok5xjkVt0UPW4PVpntxwihy8mhcCuihHHfMw==","shasum":"1602d2892557b3aa8986137eb1a5bc69c6fe9d0b","tarball":"https://registry.npmjs.org/@digitalchokro/provider-openai/-/provider-openai-2.0.6.tgz","fileCount":6,"unpackedSize":27323,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDVRnxtA0efGm5fgm86Rfs+pcvpUBZ4qBscDjh8YDlJYAiARXZCLtZsKaQIg3Q4Od/b6ktijAASx3b8uOyxXXosyEA=="}]},"_npmUser":{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"},"directories":{},"maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/provider-openai_2.0.6_1784228222074_0.5876630352917385"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-02T13:20:53.092Z","modified":"2026-07-16T18:57:02.415Z","1.0.0":"2026-07-02T13:20:53.579Z","1.0.1":"2026-07-02T14:32:26.892Z","1.0.2":"2026-07-02T15:19:55.386Z","1.0.3":"2026-07-02T18:09:04.507Z","1.0.5":"2026-07-03T11:56:58.859Z","2.0.0":"2026-07-03T12:35:03.911Z","2.0.1":"2026-07-03T13:15:55.696Z","2.0.2":"2026-07-03T13:25:20.378Z","2.0.3":"2026-07-03T17:38:26.444Z","2.0.4":"2026-07-03T19:14:13.620Z","2.0.5":"2026-07-06T16:54:01.195Z","2.0.6":"2026-07-16T18:57:02.237Z"},"bugs":{"url":"https://github.com/digitalchokro/askchokro/issues"},"author":{"name":"Digital Chokro","email":"hello@digitalchokro.com"},"license":"MIT","homepage":"https://github.com/digitalchokro/askchokro#readme","keywords":["askchokro","sql","ai","llm","text-to-sql","nlp","rag","database","analytics","business intelligence","agent","generative ai","typescript","node.js"],"repository":{"type":"git","url":"git+https://github.com/digitalchokro/askchokro.git","directory":"packages/provider-openai"},"description":"OpenAI provider for AskChokro.","maintainers":[{"name":"imnurmohammad.me","email":"founder@digitalchokro.com"}],"readme":"<div align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/digitalchokro/askchokro/main/docs/assets/logo.png\" width=\"120\" alt=\"AskChokro Logo\" />\n  <h1>AskChokro</h1>\n  <p><strong>The AI Data Engine for Node.js</strong></p>\n  <p>Add \"Ask your data\" to any SaaS app in 10 minutes. Simpler by design, built for embedding.</p>\n  \n  [![npm version](https://img.shields.io/npm/v/@digitalchokro/askchokro.svg?style=flat-square)](https://www.npmjs.com/package/@digitalchokro/askchokro)\n  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n</div>\n\n<div align=\"center\">\n  <em>(Looking for Bengali? <a href=\"./README-bn.md\">Read in Bengali / বাংলায় পড়ুন</a>)</em>\n</div>\n<br/>\n<p align=\"center\">\n  <picture>\n    <img src=\"https://raw.githubusercontent.com/digitalchokro/askchokro/main/docs/assets/logo.png\" width=\"800\" height=\"2\" style=\"background: linear-gradient(90deg, transparent, #8e9eab, #eef2f3, #8e9eab, transparent); border-radius: 5px;\"/>\n  </picture>\n</p>\n<br/>\n\n## Instantly see it in action\n\nNo setup, no accounts, just a terminal.\n\n```bash\nnpx @digitalchokro/cli demo\n```\nThis spins up a local SQLite database with sample e-commerce data, auto-detects **Ollama, OpenAI, or Anthropic**, and opens a beautiful Chat UI on `localhost:3000`.\n\n### Demo Database Schema\nThe in-memory SQLite database is seeded with a comprehensive e-commerce schema to test complex queries against:\n- `users` (id, name, email, country, created_at)\n- `products` (id, name, category, price, stock)\n- `orders` (id, user_id, total_amount, status, created_at)\n- `order_items` (id, order_id, product_id, quantity, price)\n- `carts` (id, user_id, created_at)\n- `cart_items` (id, cart_id, product_id, quantity)\n\n*Try asking: \"Who has items in their cart right now?\", \"Which category generates the most revenue?\", \"List all pending orders with amounts\", or \"Show me products under $100\".*\n\n### Anti-Hallucination Fallback (`CANNOT_ANSWER`)\nAskChokro's engine uses a strict system prompt. If you ask a question about data that does not exist in the schema, the model will safely reject the prompt and return `CANNOT_ANSWER` instead of hallucinating fake tables or SQL.\n\n> **Note:** AskChokro can intelligently answer multiple disjoint questions in a single prompt by automatically combining them into scalar subqueries, ensuring you get all your answers in a single database round-trip without breaking the SQL driver.\n\n### Using Local Models (Ollama)\nIf you want to force a specific provider or model, use environment variables:\n\n```bash\n# Force Ollama with a specific model (ignores any API keys in your environment)\nASKCHOKRO_PROVIDER=ollama ASKCHOKRO_MODEL=qwen2.5-coder npx @digitalchokro/cli demo\n\n# Force Anthropic\nASKCHOKRO_PROVIDER=anthropic ANTHROPIC_API_KEY=sk-ant-... npx @digitalchokro/cli demo\n```\n\n---\n\n## Why AskChokro?\n\nIf you've tried building \"AI analytics\" features into your SaaS, you know the drill:\n- **Python wrappers:** You have to deploy a separate Python microservice just to run LangChain or LlamaIndex.\n- **Heavy BI tools:** You look at tools like WrenAI or Superset, but they are full platforms. You just want a simple API endpoint to power a chat box in your own React app.\n- **Security nightmares:** How do you guarantee the AI doesn't `DROP TABLE` or leak Tenant A's data to Tenant B?\n\n**AskChokro is different:**\n1. **100% TypeScript.** Runs right in your Node.js backend (Next.js, Express, Fastify).\n2. **Zero-Config.** The `AskChokro` wrapper auto-detects `DATABASE_URL`, `OPENAI_API_KEY`, and `ANTHROPIC_API_KEY` - and falls back to a local Ollama instance seamlessly when no keys are found.\n3. **AST-Level Security.** We don't just rely on prompt engineering. We parse the LLM's SQL into an Abstract Syntax Tree (AST), strictly validate it's a read-only `SELECT`, and *automatically rewrite the AST* to enforce tenant scoping before executing it.\n\n## Quick Start (Next.js App Router)\n\nInstall the core engine and the Next.js adapter:\n\n```bash\nnpm install @digitalchokro/askchokro @digitalchokro/adapter-nextjs @digitalchokro/provider-openai @digitalchokro/db-postgres\n```\n\nCreate a route handler at `app/api/ask/route.ts`:\n\n```typescript\n// app/api/ask/route.ts\nimport { AskChokro } from '@digitalchokro/askchokro';\nimport { createAskChokroRoute } from '@digitalchokro/adapter-nextjs';\n\n// Auto-detects process.env.DATABASE_URL and process.env.OPENAI_API_KEY\nconst agent = new AskChokro();\n\nexport const POST = createAskChokroRoute(agent);\n```\n\nOn your frontend:\n\n```javascript\nconst res = await fetch('/api/ask', {\n  method: 'POST',\n  body: JSON.stringify({ question: 'Who are my top 5 customers this month?' })\n});\n\nconst { answer, sql, rows } = await res.json();\nconsole.log(sql);  // \"SELECT name, SUM(amount) FROM orders GROUP BY name ORDER BY SUM(amount) DESC LIMIT 5\"\nconsole.table(rows);\n```\n\nThat's it. You just shipped AI data analytics.\n\n## Multi-Tenant Security (AST Rewriting)\n\nWhen embedding AI in B2B SaaS, tenant isolation is the hardest problem. Naive string-appending (`WHERE tenant_id = X`) fails when the AI generates subqueries or complex `JOIN`s that bypass the filter.\n\nAskChokro uses a sophisticated **AST Scope Rewriter**. \n\n```typescript\nimport { DatabaseAgent } from '@digitalchokro/core';\nimport { PostgresAdapter } from '@digitalchokro/db-postgres';\nimport { OpenAIProvider } from '@digitalchokro/provider-openai';\n\nconst agent = new DatabaseAgent({\n  db: new PostgresAdapter({ connectionString: process.env.DATABASE_URL }),\n  ai: new OpenAIProvider({ model: 'gpt-4o' }),\n  options: {\n    tenantScoping: {\n      enabled: true,\n      column: 'organization_id',\n      // Injects the current user's org ID from your request context\n      getValue: (ctx) => ctx.orgId, \n    }\n  }\n});\n```\n\nWith `tenantScoping` enabled, if the AI generates:\n```sql\nSELECT o.id, u.email FROM orders o JOIN users u ON o.user_id = u.id\n```\n\nAskChokro's AST rewriter physically intercepts the query, parses the syntax tree, and injects your tenant logic into *every* table reference before sending it to the database:\n```sql\nSELECT o.id, u.email \nFROM orders o \nJOIN users u ON o.user_id = u.id AND u.organization_id = 'org_123'\nWHERE o.organization_id = 'org_123'\n```\n\n*AskChokro dramatically reduces risk with a fail-closed design. See our [Security Guide](./docs/SECURITY.md) for full details on the 9-layer defense.*\n\n## Accuracy Benchmarks\n\nWe test AskChokro against a rigorous, open-source dataset of 198 complex SQL scenarios.\n\n| Model | Overall | Aggregations | Multi-Table JOINs | Tenant Scoping |\n|---|---|---|---|---|\n| **GPT-4o** | **95.9%** | 98% | 95% | 100% |\n| **Claude 3.5 Sonnet** | **96.5%** | 99% | 96% | 100% |\n| **Qwen 2.5 Coder (Local)** | **87.8%** | 88% | 85% | 100% |\n\n*(For full methodology, see our CI eval harness).*\n\n## Current Limitations\n\nAskChokro is designed to be simple and secure, which means it currently makes some intentional trade-offs:\n- **Multi-Part Questions Supported:** AskChokro safely handles disjoint, multi-part questions by mapping them into unified scalar subqueries. However, the root AST must ultimately resolve to a single SQL tabular structure to ensure compatibility across all database drivers.\n- **No DML (Mutations):** It is strictly read-only. `INSERT`, `UPDATE`, `DELETE`, and `DROP` are explicitly blocked at the AST level.\n- **Complex Aggregations:** While it handles joins and basic aggregations well, extremely complex window functions or recursive CTEs might confuse smaller local models.\n\n## Coming Soon: WordPress Plugin\n\nWe are actively developing an official **AskChokro WordPress Plugin**. \nThis will allow you to drop an AI data assistant directly into your WooCommerce dashboard with zero code. \n\n**The WordPress Roadmap:**\n- **Phase 1:** AskChokro Node.js Microservice (Pre-configured Docker container)\n- **Phase 2:** WordPress PHP Plugin (Settings UI & Gutenberg Blocks)\n- **Phase 3:** Automatic Tenant Isolation for Multi-Vendor setups\n\nRead the [Integration Architecture](https://github.com/digitalchokro/askchokro/blob/main/docs/INTEGRATION_ARCHITECTURE.md) to learn how this works behind the scenes.\n\n## Frequently Asked Questions (FAQ)\n\n\n\n## Documentation\n\n- [Quick Start](./docs/QUICK_START.md) - Full 5-minute integration guide.\n- [Security Model](./docs/SECURITY.md) - Deep dive into AST validation, column masking, and read-only sandboxes.\n- [Plugin Development](./docs/PLUGINS.md) - Learn how to build your own `AIProvider` or `DatabaseAdapter`.\n- [Integration Architecture](https://github.com/digitalchokro/askchokro/blob/main/docs/INTEGRATION_ARCHITECTURE.md) - Learn how to embed AskChokro across platforms.\n\n## Contributing\n\nWe are actively looking for contributors! Check out our [Contributing Guide](CONTRIBUTING.md) and look for issues tagged `good first issue`.\n\nIf you want to add support for MySQL, Gemini, Google Vertex, or Fastify, we have automated templates waiting for you.\n\n## License\n\nMIT © Digital Chokro\n","readmeFilename":"README.md"}