{"_id":"@aidex/providers","_rev":"9-a691ffdd6eeb0d27b37a4a8b41c2122d","name":"@aidex/providers","dist-tags":{"latest":"1.2.0"},"versions":{"0.1.0-alpha":{"name":"@aidex/providers","version":"0.1.0-alpha","keywords":["ai","llm","provider","gemini","google-genai"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/providers@0.1.0-alpha","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/providers#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"9c255d5da186d25a87d296c89de4917ca669512b","tarball":"https://registry.npmjs.org/@aidex/providers/-/providers-0.1.0-alpha.tgz","fileCount":51,"integrity":"sha512-lW2g2tZ2Qvwkzy8bMsO/BXZAOp/Ur41gU1Mg6x2mQm73JPle4cXY03NhluXRmJrb0pXuGZHpJw55uX12owNdeg==","signatures":[{"sig":"MEUCIATPmjfs9c7I28zxklYMGHG2aaeOP7m9696fM0G3QM83AiEA6N/1wVnMwIdYyt8UBKSPlfbflDDAH0WJpSmTm45HTU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48821},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -b","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/providers"},"description":"Aidex Providers — concrete Provider implementations (model vendors) supplied by applications.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@aidex/core":"0.1.0-alpha","@google/genai":"^2.13.0","@aidex/observability":"0.1.0-alpha"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/providers_0.1.0-alpha_1785768583928_0.4432006993646864","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-alpha":{"name":"@aidex/providers","version":"0.2.0-alpha","keywords":["ai","llm","provider","gemini","google-genai"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/providers@0.2.0-alpha","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/providers#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"21fdbe322bbd9366193a5e674b60762e98b15960","tarball":"https://registry.npmjs.org/@aidex/providers/-/providers-0.2.0-alpha.tgz","fileCount":31,"integrity":"sha512-/1jAhwiL27rUTA7W9uA3Dh24arli2YPIv+ydY6bKSeRlbuEfN1SVuOYr6xowgr5m4iA6QUH/42VhdWAz13M9Kw==","signatures":[{"sig":"MEUCIQDCtKEeFglbizWPjnc8/wwg/KfTxY8ZRa+oc0jyXMFYeAIgdC06745HdviUQ5beqfSD22IXtX44ph4iT24zZv1BlkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90641},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/providers"},"description":"Aidex Providers — concrete Provider implementations (model vendors) supplied by applications.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@aidex/core":"0.2.0-alpha","@google/genai":"^2.13.0","@aidex/observability":"0.2.0-alpha"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/providers_0.2.0-alpha_1785772030612_0.09128693747501604","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-alpha":{"name":"@aidex/providers","version":"0.2.1-alpha","keywords":["ai","llm","provider","gemini","google-genai"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/providers@0.2.1-alpha","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/providers#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"f557b270d9cf2d9facb1a20cd86a4b6d283ef3ac","tarball":"https://registry.npmjs.org/@aidex/providers/-/providers-0.2.1-alpha.tgz","fileCount":32,"integrity":"sha512-i3nsdDV5x9mYDi97fNjrcwCOSPhBqywgPk8L/AlU0GM2LXcFJKSfqLIlcVKqiyooEgcdnPl3JGXp1lvm5MoJdw==","signatures":[{"sig":"MEYCIQD2u95UUaSzXjg8eZc9AiYIU9O1VqWJQAFnb7lnBRfcrQIhAOsUkuHbi3upz8yCeJgxX/6kdpp02gjZOTmvS4wc3y6h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103285},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/providers"},"description":"Aidex Providers — concrete Provider implementations (model vendors) supplied by applications.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@aidex/core":"0.2.1-alpha","@google/genai":"^2.13.0","@aidex/observability":"0.2.1-alpha"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/providers_0.2.1-alpha_1785778142646_0.37436692886649414","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-alpha":{"name":"@aidex/providers","version":"0.3.0-alpha","keywords":["ai","llm","provider","gemini","google-genai"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/providers@0.3.0-alpha","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/providers#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"dc3a84bbf80dc066827f6e9bead108dc779d704e","tarball":"https://registry.npmjs.org/@aidex/providers/-/providers-0.3.0-alpha.tgz","fileCount":9,"integrity":"sha512-GUAz7Zt0jjQviJD4suROVu/lglayyb+yKlJENXXB/F1GnfNx23ZYv2DrbMLNKaY/klGZEs9ZHq2KXc0zXhZb7A==","signatures":[{"sig":"MEUCIBS9elIqhib7VStN9M+itRHCYVq9rzFUgbcormCGE7h/AiEAwOo+C43dGkVHacxVIqdmuTre+5ZJ6hS3PlBBWvIGc64=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331102},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/providers"},"description":"Aidex Providers — concrete Provider implementations (model vendors) supplied by applications.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"openai":"^7.4.0","@aidex/core":"0.3.0-alpha","@google/genai":"^2.13.0","@anthropic-ai/sdk":"^0.115.0","@aidex/observability":"0.3.0-alpha"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/providers_0.3.0-alpha_1786213590428_0.4491576820512524","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-alpha":{"name":"@aidex/providers","version":"0.3.1-alpha","keywords":["ai","llm","provider","gemini","google-genai"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/providers@0.3.1-alpha","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/providers#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"39681924fded06cff951100e3c5aa3f0e52633d3","tarball":"https://registry.npmjs.org/@aidex/providers/-/providers-0.3.1-alpha.tgz","fileCount":10,"integrity":"sha512-nJERF9v/nmig2lAuylNjAJ6PN7o81Rawb+SRwlUnCCelL2yUAhFwadgtStEk1tGbWQd2Rwc2pENrlWxbqUAd6A==","signatures":[{"sig":"MEYCIQCgPpzmWm1sxqqOGemgrk16dSOxoE6zvYg0cwoVZrS9eAIhANXZpl4bHn7bpWlB/aJpBsHms16BOQYyUmJvc+SIdzLo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333042},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/providers"},"description":"Aidex Providers — concrete Provider implementations (model vendors) supplied by applications.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"openai":"^7.4.0","@aidex/core":"0.3.0-alpha","@google/genai":"^2.13.0","@anthropic-ai/sdk":"^0.115.0","@aidex/observability":"0.3.0-alpha"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/providers_0.3.1-alpha_1786342481204_0.8375163860508357","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aidex/providers","version":"1.0.0","keywords":["ai","llm","provider","gemini","google-genai"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/providers@1.0.0","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/providers#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"30debfb71b68ea96c7b9b174481048b3c28ebe69","tarball":"https://registry.npmjs.org/@aidex/providers/-/providers-1.0.0.tgz","fileCount":10,"integrity":"sha512-b4zY5oWtID59HrxmRQjTIefEUGtlWj/ldiKV2+wtH+3p2f5hJHCBVkstphrXqE+1ppuYzgKoiIjzsAnlmY2+UA==","signatures":[{"sig":"MEQCIDi6fFg+8yS8gLc7leorXtJzZzIWkLG40UeIisFc8VMTAiAIqoWX/c8v2mvB2dDI6AJXIOFAOjiQwyhn11QV8X6D4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333024},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/providers"},"description":"Aidex Providers — concrete Provider implementations (model vendors) supplied by applications.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"openai":"^7.4.0","@aidex/core":"1.0.0","@google/genai":"^2.13.0","@anthropic-ai/sdk":"^0.115.0","@aidex/observability":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/providers_1.0.0_1786431560635_0.36352846095500757","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aidex/providers","version":"1.0.1","keywords":["ai","llm","provider","gemini","google-genai"],"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","_id":"@aidex/providers@1.0.1","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/providers#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"7da884ac03f28bcd5b6a239c35c5fb8adeea5f5c","tarball":"https://registry.npmjs.org/@aidex/providers/-/providers-1.0.1.tgz","fileCount":10,"integrity":"sha512-I106V4we1j7u9QYc8wsP57opaP3RCzufPPD7reofjStfqp+F8urjavYHZ6tsLtufpYkcMRqXCQw21ggP0wz+aQ==","signatures":[{"sig":"MEYCIQCtKTYnYWohnVPZpPcmcv9LrDJFDyhQoZClanm3HbPjFAIhAIeVCoDpN3fRSOqv7n8tHzfvF7VMorcXOjqDnvvZzzoW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333024},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/providers"},"description":"Aidex Providers — concrete Provider implementations (model vendors) supplied by applications.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"openai":"^7.4.0","@aidex/core":"1.0.1","@google/genai":"^2.13.0","@anthropic-ai/sdk":"^0.115.0","@aidex/observability":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/providers_1.0.1_1786432199399_0.9022616747248555","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aidex/providers","version":"1.1.0","keywords":["ai","llm","provider","gemini","google-genai"],"author":{"name":"Sudheer Babu","email":"isudheerbabu.dev@gmail.com"},"license":"MIT","_id":"@aidex/providers@1.1.0","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"homepage":"https://github.com/getaidex/aidex/tree/main/packages/providers#readme","bugs":{"url":"https://github.com/getaidex/aidex/issues"},"dist":{"shasum":"6e214c672b5b31202a0e22eeb1a7135487e42e32","tarball":"https://registry.npmjs.org/@aidex/providers/-/providers-1.1.0.tgz","fileCount":82,"integrity":"sha512-nmLjrKYPqvIlMLqQfu8aZldR8RNoKYyw0A/ziGSzBQb6uZRX+tT3+Jcc3yaxRaXiJrlonnNmfgIsw3lmQyNO8Q==","signatures":[{"sig":"MEYCIQDfpznTKgRFMajLjnKNIrvS88Si48Rst5ocs4EofkXcwgIhALgV7K4qbl+q0tV9T10hEGorU532HdHF03HzoRPqVurK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":594058},"main":"./dist/index.cjs","type":"module","_from":"file:aidex-providers-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.19.0","pnpm":">=9"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"_resolved":"/tmp/9fe9437f62a10e4ebb0a2c693bb64c7c/aidex-providers-1.1.0.tgz","_integrity":"sha512-nmLjrKYPqvIlMLqQfu8aZldR8RNoKYyw0A/ziGSzBQb6uZRX+tT3+Jcc3yaxRaXiJrlonnNmfgIsw3lmQyNO8Q==","repository":{"url":"git+https://github.com/getaidex/aidex.git","type":"git","directory":"packages/providers"},"_npmVersion":"10.9.8","description":"Aidex Providers — concrete Provider implementations (model vendors) supplied by applications.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"openai":"^7.4.0","@aidex/core":"1.1.0","@aidex/tools":"1.1.0","@google/genai":"^2.13.0","@anthropic-ai/sdk":"^0.115.0","@aidex/observability":"1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/providers_1.1.0_1787417517897_0.19149702437247873","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@aidex/providers","version":"1.2.0","description":"Aidex Providers — concrete Provider implementations (model vendors) supplied by applications.","keywords":["ai","llm","provider","gemini","google-genai"],"license":"MIT","author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","homepage":"https://github.com/getaidex/aidex/tree/main/packages/providers#readme","repository":{"type":"git","url":"git+https://github.com/getaidex/aidex.git","directory":"packages/providers"},"bugs":{"url":"https://github.com/getaidex/aidex/issues"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"sideEffects":false,"publishConfig":{"access":"public"},"dependencies":{"@anthropic-ai/sdk":"^0.115.0","@google/genai":"^2.13.0","openai":"^7.4.0","@aidex/core":"1.2.0","@aidex/observability":"1.2.0","@aidex/tools":"1.2.0"},"engines":{"node":">=20.19.0","pnpm":">=9"},"scripts":{"build":"tsc -b && tsup","typecheck":"tsc -b --noEmit"},"_nodeVersion":"24.13.0","_id":"@aidex/providers@1.2.0","dist":{"integrity":"sha512-M18Hjx2C6a4l+2kqj7K6IPbUV8dYUI3SJPuefGKROK3oWBQX9ndh9iwBzWMU4UWDye6spye4PdVM///XnuwRpw==","shasum":"9b558b150b566e0e0eebfd7403e3d5edc0e2dff9","tarball":"https://registry.npmjs.org/@aidex/providers/-/providers-1.2.0.tgz","fileCount":82,"unpackedSize":594201,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDuXO4wpACqzSuPWNy/jB8W63XbkXgjY/rCOX9/zmLb4gIhAPmklA39kmwJYjcEJ3KqYcW+x8dIx2hmE6lYRFJHXI3q"}]},"_npmUser":{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"},"directories":{},"maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/providers_1.2.0_1787491707528_0.027654112587321755"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-03T14:49:43.817Z","modified":"2026-08-23T13:28:27.875Z","0.1.0-alpha":"2026-08-03T14:49:44.072Z","0.2.0-alpha":"2026-08-03T15:47:10.781Z","0.2.1-alpha":"2026-08-03T17:29:02.778Z","0.3.0-alpha":"2026-08-08T18:26:30.576Z","0.3.1-alpha":"2026-08-10T06:14:41.351Z","1.0.0":"2026-08-11T06:59:20.788Z","1.0.1":"2026-08-11T07:09:59.552Z","1.1.0":"2026-08-22T16:51:58.042Z","1.2.0":"2026-08-23T13:28:27.688Z"},"bugs":{"url":"https://github.com/getaidex/aidex/issues"},"author":"Sudheer Babu <isudheerbabu.dev@gmail.com>","license":"MIT","homepage":"https://github.com/getaidex/aidex/tree/main/packages/providers#readme","keywords":["ai","llm","provider","gemini","google-genai"],"repository":{"type":"git","url":"git+https://github.com/getaidex/aidex.git","directory":"packages/providers"},"description":"Aidex Providers — concrete Provider implementations (model vendors) supplied by applications.","maintainers":[{"name":"sudheerbabu","email":"isudheerbabu.dev@gmail.com"}],"readme":"# @aidex/providers\n\n## Installation\n\n```sh\npnpm add @aidex/providers\n```\n\n```sh\nnpm install @aidex/providers\n```\n\nConcrete `Provider` implementations for the Aidex kernel (`@aidex/core`). Providers\nare application-land code per `docs/architecture/provider-development-guide.md` —\nthis package supplies them so an app can `new Aidex({ provider: new StubProvider() })`\nwithout hand-rolling a stub every time.\n\n## Contents\n\n- **`stub/StubProvider`** — the reference `Provider` implementation: complete,\n  deterministic, no AI SDK dependency. Default provider for unit tests and\n  examples, and the model every real provider (`GeminiProvider`,\n  `OpenAIProvider`, `ClaudeProvider`, ...) follows for how `content`,\n  `metadata`, and `raw` are meant to be populated — see the doc comments in\n  `stub/StubProvider.ts` for exactly what each future provider will replace:\n  the `content` transform becomes the vendor's actual generated text, the\n  `metadata` object becomes real provider diagnostics (model name, token\n  usage) instead of just an identity tag, and `raw` becomes the vendor SDK's\n  actual native response instead of an echo of the input.\n- **`gemini/GeminiProvider`** — the first production `Provider`, backed by the\n  official [`@google/genai`](https://www.npmjs.com/package/@google/genai) SDK.\n  Owns SDK client construction, API key/model configuration, and `generate()`;\n  `gemini/mapping.ts` holds the pure Prompt→request / response→ProviderResponse\n  translation, with no network logic of its own. No Gemini SDK type is\n  exported outside this package — `raw` carries the native response typed as\n  `unknown` from the outside.\n- **`openai/OpenAIProvider`** — backed by the official\n  [`openai`](https://www.npmjs.com/package/openai) SDK. Supports an optional\n  `baseURL` config field for OpenAI-compatible third-party endpoints\n  (Groq/Together/local-vLLM-style gateways) — this is the entire \"OpenAI\n  compatibility\" story; there is no separate `OpenAICompatibleProvider`\n  class. Pointing `baseURL` at a third party never causes `actualProvider`\n  to be reported as `\"OpenAI\"` — see `shared/ProviderResponseMetadata.ts`'s\n  doc comment for why.\n- **`claude/ClaudeProvider`** — backed by the official\n  [`@anthropic-ai/sdk`](https://www.npmjs.com/package/@anthropic-ai/sdk).\n  `maxOutputTokens` config (default 1024) exists because Anthropic's API\n  requires `max_tokens` on every request, unlike OpenAI/Gemini.\n- **`openrouter/OpenRouterProvider`** — a *gateway*, not a vendor: routes a\n  request to whichever upstream model/provider OpenRouter selects. Uses the\n  `openai` SDK internally with `baseURL` pointed at OpenRouter (an\n  implementation detail — it is its own standalone class, not a subclass of\n  `OpenAIProvider`, since its capabilities and config surface are genuinely\n  different). Configure via `model` (specific/auto/free convention strings)\n  or the more explicit `routing: RoutingStrategy` (`routing/RoutingStrategy.ts`)\n  — `routing` always wins when both are set; see `routing/resolveRouting.ts`'s\n  doc comment for the exact precedence rule. `openrouter/API_CONTRACT.md`\n  is the verified source for every request/response field this provider\n  reads or sends. Reports `actualModel`/`actualProvider`/`routingMode` on\n  `ProviderResponse.metadata` — `actualProvider` only when OpenRouter's\n  opt-in router-metadata response field identifies it, never guessed from\n  the model name.\n- **`shared/withAbort`** — reusable `AidexOptions.signal`/`.timeout` helpers.\n  `GeminiProvider.generate()` uses all three: `throwIfAborted` as a pre-flight\n  guard, `withTimeoutSignal` to merge `options.timeout`/`options.signal` into\n  one signal (passed to the SDK's own `config.abortSignal`), and `rejectOnAbort`\n  to guarantee `generate()` itself rejects on abort even if the SDK's internal\n  abort handling doesn't (verified in tests via a mocked SDK call that never\n  resolves).\n- **`capabilities/`** — the provider capability model: `ProviderCapability`\n  (the fixed set of vendor-neutral capability identifiers), `ProviderCapabilities`\n  (the total map every provider returns, so a lookup is never `undefined`),\n  `createProviderCapabilities` (builds that map from a list of supported\n  capabilities), and `CapableProvider` (a `Provider` that also implements\n  `getCapabilities()`). Every provider in this package — `StubProvider` and\n  `GeminiProvider` — implements `CapableProvider` and exposes `getCapabilities()`.\n\n## Tool calling\n\n`ToolCallingProvider.generateWithTools(turns, tools, options)` — implemented\nby `GeminiProvider`, `OpenAIProvider`, and `ClaudeProvider` — performs\nexactly one caller-driven round trip: declares `tools`, sends `turns` as\nconversation history, and returns whatever the model said (final text, or\none or more `tool_use` `ContentPart`s on `ProviderResponse.toolCalls` for\nthe caller to resolve). It never executes a tool itself, never loops, and\nnever decides when a conversation is \"done\" — the caller drives\ncontinuation by constructing the next `ConversationTurn` (an assistant\n`tool_use` turn plus a `tool` `tool_result` turn) and calling this again.\nThis is deliberately a foundation, not an autonomous agent runtime.\n\n`toToolDeclarations(tools)` / `resolveToolCalls(registry, toolCalls)` —\nthe registry-integration half of that round trip, bridging\n`@aidex/tools`' `Tool`/`ToolRegistry` to this package's wire-level types.\nThis integration requires `@aidex/tools` as a direct dependency\n(`pnpm add @aidex/tools`) — it's not pulled in by `@aidex/providers` itself:\n\n```ts\nimport { ToolRegistry } from '@aidex/tools';\nimport { StubProvider, toToolDeclarations, resolveToolCalls } from '@aidex/providers';\n\nconst registry = new ToolRegistry();\nregistry.register(weatherTool);\n\nconst provider = new StubProvider();\nconst declarations = toToolDeclarations(registry.list());\n\n// 1. Ask the model — it may request a tool call.\nconst first = await provider.generateWithTools([userTurn], declarations);\n\n// 2. Resolve any tool_use calls against the real registry.\nconst toolUseCalls = (first.toolCalls ?? []).filter((p) => p.type === 'tool_use');\nconst results = await resolveToolCalls(registry, toolUseCalls);\n\n// 3. Feed the results back for the next round trip.\nconst final = await provider.generateWithTools(\n  [userTurn, { role: 'assistant', content: toolUseCalls }, { role: 'tool', content: results }],\n  declarations\n);\n```\n\n`toToolDeclarations()` declares each tool to the model under its `id`, not\nits `name` — `id` is the only field `ToolRegistry` guarantees is unique\nand resolvable via `execute()`. `resolveToolCalls()` never throws for a\nfailed call (unregistered id, missing permission, or the tool's own\n`execute()` rejecting) — it returns a `tool_result` with `isError: true`\ninstead, so the model can see and react to the failure. This integration\nlives here, and `@aidex/providers` depends on `@aidex/tools` (never the\nreverse), because `@aidex/tools` documents a deliberate \"`@aidex/core`\nonly\" dependency boundary — see that package's own README, \"Tool-calling\nfoundation and the `@aidex/mcp` boundary,\" for the full rationale\nincluding why `@aidex/mcp` stays unconnected.\n\n## Rules this package follows\n\n- Imports only the public contracts from `@aidex/core` (`Provider`, `Prompt`,\n  `ProviderResponse`, `AidexOptions`) — never a kernel internal.\n- No base `Provider` class, no inheritance, no provider registry, no singleton,\n  no factory — each provider is a standalone class implementing `Provider`\n  directly, per `docs/architecture/design-principles.md`'s Composition over\n  Inheritance principle.\n- `src/index.ts` exports provider classes (and their config types), plus the\n  `capabilities/` module's public surface (`ProviderCapability`,\n  `ProviderCapabilities`, `createProviderCapabilities`, `CapableProvider`) —\n  internal mapping/translation helpers stay unexported.\n","readmeFilename":""}