{"_id":"llm-polyglot","_rev":"21-1f1ad3cbd8e8eedffc8f2c9f286b24a0","name":"llm-polyglot","dist-tags":{"beta":"1.0.0--beta.2","latest":"3.0.0"},"versions":{"0.0.1--alpha.0":{"name":"llm-polyglot","version":"0.0.1--alpha.0","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@0.0.1--alpha.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"96b119aeb69a6b0d4cc7f4d7f5eae62f24b178ae","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-0.0.1--alpha.0.tgz","fileCount":8,"integrity":"sha512-JHlgSmsxQVxtvhGj2QagZGyAuKK1TdKGj6c/TR/15usIC46PMdL0Ie6U0hu5m9rSth8Pexjl0w4gmVsNedke0w==","signatures":[{"sig":"MEQCIDzc0cSZhFsHw/s1D25/UR7MALys+Dasebv6S8pCT/AVAiB7HKBDbI6eEy62h0/2yHYRQ+8Roh7ES4xbv8Pcu/tbsQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62983},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ab3df0bb28b73d79c514f83e1b456b105fd740e1","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.2.3","description":"[WIP] - A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - th","directories":{},"_nodeVersion":"21.2.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.17.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_0.0.1--alpha.0_1711232595837_0.08400468873903244","host":"s3://npm-registry-packages"}},"0.0.1--alpha.1":{"name":"llm-polyglot","version":"0.0.1--alpha.1","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@0.0.1--alpha.1","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"59c3b802d36be9225f98125fa07669b296231d6e","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-0.0.1--alpha.1.tgz","fileCount":8,"integrity":"sha512-xB9gjjHQHE4JSrdhjrfb30pKbogPp3aR61bh50dezrfXfCWzJY2Evsy6Zj6AQKheBfnh9hZEWLzAtr49W8F2lw==","signatures":[{"sig":"MEYCIQCJ/rqhE/voEEuKI+rP2BV+V2AHeiut4TLmCyP+kHFDLwIhALx5wndL2+0HoHJhDNkNIvgisAHClcO3Hlqa8+8ZmJLF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72276},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5fa8768de2beb3763bb00d93cb4b8ffe8f6ebc10","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.2.3","description":"[WIP] - A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - th","directories":{},"_nodeVersion":"21.2.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.17.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_0.0.1--alpha.1_1711323756070_0.028366260420281453","host":"s3://npm-registry-packages"}},"0.0.1--alpha.2":{"name":"llm-polyglot","version":"0.0.1--alpha.2","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@0.0.1--alpha.2","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"88de2e4aba0a3033d282efb495f21f874c370c89","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-0.0.1--alpha.2.tgz","fileCount":8,"integrity":"sha512-Kz9enH3c8fQAWZjqCOz2cxIj8EWEX0zdeet1g0IsKaDhLX+o4l8DiJdzPaVotjNjReiE3hM2jBmTR4z8iNTdDA==","signatures":[{"sig":"MEYCIQD3A/+BQG0sOAIgSH2EVfT4bCuuaqxwDbLLfzHfDD24ogIhAPEF/IESsuuMgTJiZSpHvzCEMmYjSkKw/KWMbD6DF+zF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84872},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e0c0307c85c77d358584a5b45db7c64ecef537df","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.2.3","description":"[WIP] - A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - th","directories":{},"_nodeVersion":"21.2.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.17.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_0.0.1--alpha.2_1711336948581_0.124137669895231","host":"s3://npm-registry-packages"}},"0.0.1--alpha.3":{"name":"llm-polyglot","version":"0.0.1--alpha.3","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@0.0.1--alpha.3","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"964701956f697a2ccbccb5b12f12d74d66edc0b2","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-0.0.1--alpha.3.tgz","fileCount":8,"integrity":"sha512-JHTjcWKnlAENCuSjHW8HLSGkW0xyIQsNi/XcQ+wu1RN5Vu1OwTStToGa2XTEaGt+FeloWkG/NHkzEu+6B2U9lg==","signatures":[{"sig":"MEYCIQDB/2e/DzdhgAjqDiXNiVq5PLxZFk8pl1cj9jhfcyKNDAIhAI6TF5GmKxvyt+J6xhMezoDLyE7TH94SJ+ojgw012J29","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":86455},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"85b9a35e1853dc07b50e58ac4b33dccbb6d564aa","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.2.3","description":"[WIP] - A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - th","directories":{},"_nodeVersion":"21.2.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.17.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_0.0.1--alpha.3_1711343576642_0.693244223262335","host":"s3://npm-registry-packages"}},"0.0.1":{"name":"llm-polyglot","version":"0.0.1","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@0.0.1","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"4f2fbe90a5dc2ee9c3593e3839b8b305267b1739","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-0.0.1.tgz","fileCount":8,"integrity":"sha512-+mhhoFuZ/fdO1R1DuXwDO+x5VMSKcQN5h9zr8OIdH0C/CjA+rUurnguR1XuciskW6VEa2YaJvPxxCfDnH8Jsyw==","signatures":[{"sig":"MEYCIQDuZN/eMWTbmKfEKSAwFr7Izf3F+R8VCdR+07HE7IFavwIhANIUU7N80ylKzIGE3yQrcz68hVI/yfQI9ah21Yf1PJT5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84941},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4f60992974d1d1cd94db70b84bcc84fe4b2fdde1","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"[WIP] - A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - th","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.17.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_0.0.1_1711378640871_0.09769357097249931","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"llm-polyglot","version":"0.0.2","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@0.0.2","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"84d9607621a6e6cfe088c8461ed9a80815d6d72d","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-0.0.2.tgz","fileCount":8,"integrity":"sha512-caoUqSQpAEwGIMIi+P3wdU4k7kuhMbGjujuLv6xGa1eQOo2wIdpHITWt2llsA7d+JoK8MqnmBz8q0ai0dmWsmQ==","signatures":[{"sig":"MEUCIQC9cZ5BC8QklCh1pd8GIm1mj1LbQoCT8DPhENFgBnZ5kgIgTkHuREn2kZapxVVwg5vUc0rB6TfkgDKUgvYTk/kESsM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":94189},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f142f5674f30c8853e3065fec4a73db2d3ed6d54","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"[WIP] - A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - th","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.17.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_0.0.2_1711396182951_0.5701278277071953","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"llm-polyglot","version":"0.0.3","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@0.0.3","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"d937bde125fe8bbdd97eeec6f984ee9a7a662b9a","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-0.0.3.tgz","fileCount":8,"integrity":"sha512-YdbPOekpOckSrXy0QtBbg15yNu+n21aqwIWfkfDl9kW2lxu82uSqc0MAynmnDQfDyG6kDQOhVL4OuLBSJyArEA==","signatures":[{"sig":"MEYCIQCYLRtYjZLin9ifOSIyHySUJYBb9thwrXTdWnU+9QOb4gIhAKoLhEmc80vVNfVpXUHJHyyT7GV9EqWQwCkoI5qCeCCH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":94713},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f95dd03d0cfb4217b6b4a8c06a73b0b6503971ba","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"[WIP] - A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - th","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.17.2"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_0.0.3_1711397222315_0.7000966915589621","host":"s3://npm-registry-packages"}},"1.0.0--beta.0":{"name":"llm-polyglot","version":"1.0.0--beta.0","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@1.0.0--beta.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"9016f7792e21e39a00cf4ba57b64412b17f65be7","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-1.0.0--beta.0.tgz","fileCount":8,"integrity":"sha512-y5lUTuoPNW2Po9ZlmDFgxfECdO0BodEWCztu0UllxFUAFEoY0zJq8YgTZvbwzbDidwLGxVesghGAdjQHzjgDhg==","signatures":[{"sig":"MEUCIQCSuPV6bhwhis/bJ8lBtJP/lBRRtzklGhUesYOseUSn5wIgMVu17nlqtSRdwGbro2CFUcs8chiVwsTO1Y2LOKvA9dw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62943},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"05d3392cc450e9d0733c4375cd4bd090d1d25cbe","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.2.3","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"21.2.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.20.1"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_1.0.0--beta.0_1712449092306_0.05513608967369832","host":"s3://npm-registry-packages"}},"1.0.0--beta.1":{"name":"llm-polyglot","version":"1.0.0--beta.1","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@1.0.0--beta.1","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"34a4a2227a1ad9e582fd34b396468f414f9440a3","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-1.0.0--beta.1.tgz","fileCount":8,"integrity":"sha512-orcr4GyhpcUV0vP789ZehbkxOYV60UNQROmm8zU4kjHUc5fY3sV8uJvchatjHv6DVetwsVVjiLud2h8P+T7Vgg==","signatures":[{"sig":"MEUCIQCgEwOfWsVtRY7FhKppeWiPIP9w96sLaCOcE0YwsaPZbAIgLm6+82kWbkkLISJ10QfahuO70xTrFWqGl4cpBpMfFOo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63051},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"05d3392cc450e9d0733c4375cd4bd090d1d25cbe","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.2.3","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"21.2.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.20.1"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_1.0.0--beta.1_1712452610485_0.0163195857861953","host":"s3://npm-registry-packages"}},"1.0.0--beta.2":{"name":"llm-polyglot","version":"1.0.0--beta.2","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@1.0.0--beta.2","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"2ef76f19155db42e6edacca61cda313eac357bb4","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-1.0.0--beta.2.tgz","fileCount":8,"integrity":"sha512-r7ZBu4hOsujRD9DEKfXkIKziFLT5bsPD81GXpGUdcEobAItFP6uPXzHfNiHA/j7RsCDtvCakUEyixfGkDGLVFA==","signatures":[{"sig":"MEQCIGhr1gojL9Rhc7QR24KW9SF0VM8CdQLhcaN/49fHFSvoAiARzv98ZneSZrURTJD3OvHF9onXyCvb7rdJ8s2WXUmTuQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63059},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"05d3392cc450e9d0733c4375cd4bd090d1d25cbe","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.2.3","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"21.2.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.20.1"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_1.0.0--beta.2_1712452985058_0.43642329915804057","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"llm-polyglot","version":"1.0.0","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@1.0.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"4b1583672a32988a01c48238836c947098ee77e8","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-1.0.0.tgz","fileCount":8,"integrity":"sha512-6ME3bGp3IAbG8RgTtv7CF5+WOdqJPXty7JblP+u8Ee69r+A+9MqOFj/BCTErCIeJswEe/Thymggvy3sbI3n7+Q==","signatures":[{"sig":"MEYCIQCyD1ujqnG9GkHF3sJikGWgaIMCvMwliK3S59ZL9y/ERwIhAKhqibRZW6M8CqM/YWsMcsjD/1/fx0pz1BA9p5gI9igo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63051},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"855c12b079cad5e4dd78c27858663f10456e1f88","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.20.1"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_1.0.0_1712454265312_0.36671434791233803","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"llm-polyglot","version":"1.0.1","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@1.0.1","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"fccd454b77814458432a4e921b3129c357b9ac69","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-1.0.1.tgz","fileCount":8,"integrity":"sha512-K8kiv3q1bifZzLMV68ugtQXJ8zJaeOBr5iTSvlSIlMnXdUTP9IgbWsDTrz7ueyhHY0VwAEf/5Yb73huNNQHtDg==","signatures":[{"sig":"MEQCIBZkvAymIQPgg99ybiPZKbIn40+eSIzunqrRy7RgxZ3PAiAPp/1n6uMSp0b+U9eEbQZ0faN/QjuMUN0M/USGK5TzTg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64550},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"35eaf61f37317e0cf11f448cbd239f057cd4904a","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.20.1"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_1.0.1_1718136404174_0.917331141416988","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"llm-polyglot","version":"2.0.0","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@2.0.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"0bb51b339a2d37d8cf50bb420643d608bc2fdc38","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-2.0.0.tgz","fileCount":8,"integrity":"sha512-iE15UQpLR+mB5sbP6PdWw6hR25ytVfRQ/F6DAg6E/G3KVH3ib7M5Frh32gUgKtmneOC+4QyXjSAy86eVvgc3bQ==","signatures":[{"sig":"MEYCIQDKpzc3zR9h1JdSLYF5JInaXvw7JoBRdhufzhQCyOLm8gIhAPWQ7cVPocsgr0M6T7gAoPsBxYmhRTM1ChNcwhpYm/fG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59464},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"0cc4557955acccdddc5c273dc5b5fe305f7ba591","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@anthropic-ai/sdk":"^0.22.0","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.22.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_2.0.0_1718227578920_0.4370628347655239","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"llm-polyglot","version":"2.1.0","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@2.1.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"442934834e14c249729c09c1bb6e47e0b202cc63","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-2.1.0.tgz","fileCount":8,"integrity":"sha512-OD9EZulFPHdnd0UNy8r8YXfQriZQFCVUPBypo6Wy4NQlitJKBqrkTiXtFpacKu1Mj4RUnTZbIeWa9qRXN0c2Hw==","signatures":[{"sig":"MEUCIEstToUEeNM8XiFaDafkJrBNcKYjdv6K/1AKgux4JR8vAiEAioxDHbC27bBwqS31YzjGsAi80Zr6i1UySyytiIdQOKU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59464},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"409fb8d1964b310de59d275fc6311701268a6acc","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@anthropic-ai/sdk":"^0.22.0","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.22.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_2.1.0_1722749045927_0.6940297135846663","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"llm-polyglot","version":"2.2.0","keywords":["llm","openai","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@2.2.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.novy.work","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"803b040fa82d3d9f4f50191dd82221003a9bef1d","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-2.2.0.tgz","fileCount":8,"integrity":"sha512-xIImjMwb6EGGqkxPiPuJ3sMd0ictPdaO9FqipVzJpoqQlNiLIQo0aBYCkUf4g8PhP31ZtgvfAQe6ou0h/wQhqg==","signatures":[{"sig":"MEUCIQCO8cgPIQq5xtQ2crgSvztL/UHzisNfARmA1G6Xk1ow9QIgRVlnnQfU8cp+fr7DRXc9c5Up70a+dJMxGaYSP/7QUec=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60065},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"91cf19ffef737e8c03bfa4eff98cf7fe35830cd7","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@anthropic-ai/sdk":"^0.22.0","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.22.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_2.2.0_1727318379680_0.8533813179050129","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"llm-polyglot","version":"2.3.0","keywords":["llm","openai","gemini","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@2.3.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.hack.dance","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"e9a75a1654e78946cb2eb167b9766644046825bc","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-2.3.0.tgz","fileCount":8,"integrity":"sha512-KgGwgU7piEnUFS/BFQOiyQ0GheMyvmBlDxrtYf7nNNIg2uM5LLVKMeYvqFkAMHoZi+Pk1eU1yOxxwtyPzy764Q==","signatures":[{"sig":"MEUCIQC1RHWcicBWwftfAvEh/qjmoReo2VIOusfrtX05DaGqzgIgGU/4NmOQyddcDdONeoq5hhswtYCYpW6YgH06OWjXiN0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":178239},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e12d985b85d19bdb65164fe600bf5adb49d86b78","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.10.12","typescript":"^5.2.2","@types/node":"^20.5.2","@types/eslint":"^8.44.7","@anthropic-ai/sdk":"^0.22.0","@repo/eslint-config":"workspace:*","@google/generative-ai":"^0.21.0","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":">=4.28.0","@anthropic-ai/sdk":"^0.22.0","@google/generative-ai":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_2.3.0_1732677395018_0.6316482957643621","host":"s3://npm-registry-packages"}},"2.3.1":{"name":"llm-polyglot","version":"2.3.1","keywords":["llm","openai","gemini","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@2.3.1","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.hack.dance","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"948fb7937e0bfc4496426c03ad5e16554924a42f","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-2.3.1.tgz","fileCount":8,"integrity":"sha512-z03HPhH9046IPY65ZPp1mRIoFAYQ17gf6qL/Wha3BZLqlzsoiHdAlrEWjsGIJ9/YUyXQfcnDCSXZcNAla8ZIGA==","signatures":[{"sig":"MEYCIQD0kR2RIHupO4D3L1AJIJuZDTKfHbmdj9BuDTn5WSEYEAIhAI01T/B2exy28YJmcnu9IumS2V+YerDWqQkRD3jRUJtX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":178237},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a6e694ac5ada0facf9a9777fe688ff2ed7d402e4","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.3","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.11.3","typescript":"^5.3.3","@types/node":"^20.10.6","@types/eslint":"^8.56.1","@anthropic-ai/sdk":"^0.22.0","@repo/eslint-config":"workspace:*","@google/generative-ai":"^0.21.0","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":"4.47.1","@anthropic-ai/sdk":"^0.22.0","@google/generative-ai":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_2.3.1_1732682464453_0.5316561361131387","host":"s3://npm-registry-packages"}},"2.4.0":{"name":"llm-polyglot","version":"2.4.0","keywords":["llm","openai","gemini","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@2.4.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.hack.dance","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"f661545ac6306d73019c83f711117b3e147c70a8","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-2.4.0.tgz","fileCount":8,"integrity":"sha512-TMHeMF0HX+1M4yb8sOjDnMHYTxpTcyXQT0c/K2PI4tgMgVaA7e8EhOPwKWzm5KOE2Gae7PsR39cIE1lDO8k7yg==","signatures":[{"sig":"MEYCIQCwgE2hVn0ZhEO45WSr9RTieuwuXL2w/Gfrd55zQdkA3AIhAKDXUDhjNkIE3/ByQv0KV2PwngbnDmnFbFUMcAV3Oai1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":181105},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3558df7fac6a1e3b7c29154507c4b140bfe5a484","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.3","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.11.3","typescript":"^5.3.3","@types/node":"^20.10.6","@types/eslint":"^8.56.1","@anthropic-ai/sdk":"^0.22.0","@repo/eslint-config":"workspace:*","@google/generative-ai":"^0.21.0","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":"4.47.1","@anthropic-ai/sdk":"^0.22.0","@google/generative-ai":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_2.4.0_1736343676641_0.9965883840929823","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"llm-polyglot","version":"2.5.0","keywords":["llm","openai","gemini","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@2.5.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.hack.dance","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"6945a8acc9553402e1d7b476e138565c6fda1a28","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-2.5.0.tgz","fileCount":8,"integrity":"sha512-XynD2JqwBHcKLvGQYOD6TBioxqbtQ4xlVhB3waeJuohEjEmPBrVHIS0vYIH1e1x6KerakoxEHQU8Msecb73wEg==","signatures":[{"sig":"MEUCIFdwhb/E29nLDS8eA0jO83gtmbbEe6Cxbhk2LGpH4dBoAiEA7rjpR+YcqlFZZnAT/82evinJMbmLxzi8oDh3b8s9uFk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":139847},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c20c64a74390282656cfcc9bac39a1278e8ee0d8","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.3","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.11.3","typescript":"^5.3.3","@types/node":"^20.10.6","@types/eslint":"^8.56.1","@anthropic-ai/sdk":"^0.22.0","@repo/eslint-config":"workspace:*","@google/generative-ai":"^0.21.0","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":"^4.47.1","@anthropic-ai/sdk":"^0.22.0","@google/generative-ai":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_2.5.0_1736826251991_0.22685783775063229","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"llm-polyglot","version":"2.6.0","keywords":["llm","openai","gemini","streaming","anthropic","llm client","claude","gpt-4"],"author":{"url":"https://hack.dance","name":"Dimitri Kennedy","email":"dimitri@sick.email"},"license":"MIT","_id":"llm-polyglot@2.6.0","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"homepage":"https://island.hack.dance","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"dist":{"shasum":"eaef1bbcc9cab80269d9c521d7bf9e18a1da0584","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-2.6.0.tgz","fileCount":8,"integrity":"sha512-lwF3RG8+rAEH0uvYOqmZxYCY3ZUMLS06+BxwfVZPlrMimyHgqqNHEHo3hIx64oCmTY0flSOARrEXb1a7IpB6Xw==","signatures":[{"sig":"MEQCIE5S/H6xbSNzLe6R9jXS5cGjQtQ/VEkbmHis7zFa7QQIAiB9JTxqc/8VAZPZMyLcBMPyO4+B0WE5Mz46t+wgFFuobw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139811},"main":"./dist/index.js","type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f5c87679a3be6cf8ba84490b073cc54df27ed998","scripts":{"dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","test":"bun test --coverage --verbose","build":"tsup","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"typings":"./dist/index.d.ts","_npmUser":{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"},"repository":{"url":"git+https://github.com/hack-dance/island-ai.git","type":"git","directory":"public-packages/llm-client"},"_npmVersion":"10.1.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","directories":{},"_nodeVersion":"20.9.0","dependencies":{"json-schema":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.3","tsup":"^8.0.1","ramda":"^0.29.0","eslint":"^8.53.0","@turbo/gen":"^1.11.3","typescript":"^5.3.3","@types/node":"^20.10.6","@types/eslint":"^8.56.1","@repo/eslint-config":"workspace:*","@google/generative-ai":"^0.21.0","@repo/typescript-config":"workspace:*"},"peerDependencies":{"openai":"^4.47.1","@anthropic-ai/sdk":"^0.33.0","@google/generative-ai":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-polyglot_2.6.0_1738018607860_0.7940289767493514","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"llm-polyglot","version":"3.0.0","description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","publishConfig":{"access":"public"},"type":"module","main":"./dist/index.js","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"typings":"./dist/index.d.ts","scripts":{"test":"bun test --coverage --verbose","build":"tsup","dev":"tsup --watch","lint":"TIMING=1 eslint src/**/*.ts* --fix","clean":"rm -rf .turbo && rm -rf node_modules && rm -rf dist","type-check":"tsc --noEmit"},"repository":{"directory":"public-packages/llm-client","type":"git","url":"git+https://github.com/hack-dance/island-ai.git"},"keywords":["llm","openai","gemini","streaming","anthropic","llm client","claude","gpt-4"],"license":"MIT","author":{"name":"Dimitri Kennedy","email":"dimitri@sick.email","url":"https://hack.dance"},"homepage":"https://island.hack.dance","dependencies":{"json-schema":"^0.4.0"},"peerDependencies":{"@anthropic-ai/sdk":"^0.33.0","@google/generative-ai":"^0.21.0","openai":"^6.46.0"},"devDependencies":{"@google/generative-ai":"^0.21.0","@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*","@types/eslint":"^8.56.1","@types/node":"^24.0.0","eslint":"^8.53.0","ramda":"^0.29.0","tsup":"^8.5.1","typescript":"^5.9.3","zod":"^3.23.3"},"gitHead":"a736930aea286066c1f1514d033f54c891bbde6a","_id":"llm-polyglot@3.0.0","bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-vFogrzIT/9xCCZ96u15nHiFWEC/wjY/XVTLb/8gseflXldQKGs6G19e/1BwGsTjESBofRUlKoKsz/gtrQDNTow==","shasum":"bb4ca833b1c7e79b128bc08677f9bfe951afdfbc","tarball":"https://registry.npmjs.org/llm-polyglot/-/llm-polyglot-3.0.0.tgz","fileCount":8,"unpackedSize":129811,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/llm-polyglot@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF9u/BElFeC5oD4Hm8hWJ8orXrMzlJJ4F7ba9RMQPOGoAiALhc6goMlcMQBbTpXAALW5+c4H32EiGRa+ZkEaksNuwg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ceb9a229-3dd8-4387-986e-60ee7fa3ff51"}},"directories":{},"maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/llm-polyglot_3.0.0_1783653494887_0.4781139877092424"},"_hasShrinkwrap":false}},"time":{"created":"2024-03-23T22:23:15.733Z","modified":"2026-07-10T03:18:15.382Z","0.0.1--alpha.0":"2024-03-23T22:23:15.991Z","0.0.1--alpha.1":"2024-03-24T23:42:36.199Z","0.0.1--alpha.2":"2024-03-25T03:22:28.739Z","0.0.1--alpha.3":"2024-03-25T05:12:56.777Z","0.0.1":"2024-03-25T14:57:21.012Z","0.0.2":"2024-03-25T19:49:43.097Z","0.0.3":"2024-03-25T20:07:02.510Z","1.0.0--beta.0":"2024-04-07T00:18:12.546Z","1.0.0--beta.1":"2024-04-07T01:16:50.688Z","1.0.0--beta.2":"2024-04-07T01:23:05.206Z","1.0.0":"2024-04-07T01:44:25.470Z","1.0.1":"2024-06-11T20:06:44.316Z","2.0.0":"2024-06-12T21:26:19.102Z","2.1.0":"2024-08-04T05:24:06.101Z","2.2.0":"2024-09-26T02:39:39.847Z","2.3.0":"2024-11-27T03:16:35.176Z","2.3.1":"2024-11-27T04:41:04.723Z","2.4.0":"2025-01-08T13:41:16.843Z","2.5.0":"2025-01-14T03:44:12.166Z","2.6.0":"2025-01-27T22:56:48.069Z","3.0.0":"2026-07-10T03:18:15.028Z"},"bugs":{"url":"https://github.com/hack-dance/island-ai/issues"},"author":{"name":"Dimitri Kennedy","email":"dimitri@sick.email","url":"https://hack.dance"},"license":"MIT","homepage":"https://island.hack.dance","keywords":["llm","openai","gemini","streaming","anthropic","llm client","claude","gpt-4"],"repository":{"directory":"public-packages/llm-client","type":"git","url":"git+https://github.com/hack-dance/island-ai.git"},"description":"A universal LLM client - provides adapters for various LLM providers to adhere to a universal interface - the openai sdk - allows you to use providers like anthropic using the same openai interface and transforms the responses in the same way - this allow","maintainers":[{"name":"dimitrikennedy","email":"dimitrikennedy@gmail.com"}],"readme":"<div align=\"center\">\n  <h1>llm-polyglot</h1>\n</div>\n<br />\n\n<p align=\"center\"><i>> Universal client for LLM providers with OpenAI-compatible interface</i></p>\n<br />\n\n<div align=\"center\">\n  <a aria-label=\"NPM version\" href=\"https://www.npmjs.com/package/llm-polyglot\">\n    <img alt=\"llm-polyglot\" src=\"https://img.shields.io/npm/v/llm-polyglot.svg?style=flat-square&logo=npm&labelColor=000000&label=llm-polyglot\">\n  </a>\n   <a aria-label=\"Island AI\" href=\"https://github.com/hack-dance/island-ai\">\n    <img alt=\"Island AI\" src=\"https://img.shields.io/badge/Part of Island AI-000000.svg?style=flat-square&labelColor=000000&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMTQuNjkgMjU5LjI0Ij4KICA8ZGVmcz4KICAgIDxzdHlsZT4KICAgICAgLmNscy0xIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICAgIHN0cm9rZS13aWR0aDogMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPgogICAgPGc+CiAgICAgIDxnPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0ibTEwMC42MSwxNzguNDVoMTMuOTd2LTE5LjYyaC0xMy45N3YxOS42MlptMC0xMDguOTZ2MjMuNzJoMTMuOTd2LTIzLjcyaC0xMy45N1ptLTIuNzksMTg5Ljc1aDE5LjU2bC0yLjc5LTI4LjkyaC0xMy45N2wtMi43OSwyOC45MlptMi43OS0xMzcuNjJoMTMuOTd2LTE5LjYyaC0xMy45N3YxOS42MlptMCwyOC40MWgxMy45N3YtMTkuNjJoLTEzLjk3djE5LjYyWiIvPgogICAgICAgIDxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iOTQuNSIgY3k9IjY5LjExIiByPSIxNC4yNCIvPgogICAgICAgIDxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iMTIwLjE5IiBjeT0iNjkuMTEiIHI9IjE0LjI0Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJtMjE0LjI1LDYyLjU5Yy0uNzktLjc1LTE4Ljc1LTE3LjQ4LTQ5LjQ2LTE5LjA0bDE1Ljc1LTUuODhjLTEuNjctMi40Ni00LjAxLTQuMTgtNi4zNS02LS4yMy0uMTgtLjAzLS41OC4yMy0uNTcsMy40NS4xNyw2LjgyLDEuNzUsMTAuMTIsMi42OCwxLjA2LjMsMi4wOS43MiwzLjA4LDEuMjRsMTkuNDUtNy4yNmMuNTMtLjIuOS0uNzEuOTEtMS4yOHMtLjMyLTEuMDktLjg1LTEuMzJjLTEuMDQtLjQ0LTI1Ljk2LTEwLjc2LTU3LjM1Ljk2LTEuMTkuNDQtMi4zNy45MS0zLjU0LDEuNDFsMTMuNTEtMTMuMTNjLTIuMTgtLjY3LTQuNC0uOTUtNi42My0xLjQ0LS4zOC0uMDgtLjQxLS43NSwwLS44MSwzLjEyLS40NCw2LjU0LS45OCw5Ljg3LS45MWw5LjEzLTguODdjLjQxLS40LjUzLTEuMDEuMzItMS41My0uMjItLjUzLS44LS43OS0xLjMxLS44Ny0uOTYuMDEtMjMuNy40OS00My45NiwyMC4xOCwwLDAsMCwwLDAsMGwtMjAuMDcsMTkuNzYtMTkuNTgtMTkuNzZDNjcuMjUuNDksNDQuNTEuMDEsNDMuNTUsMGMtLjU2LjA1LTEuMDkuMzQtMS4zMS44Ny0uMjIuNTMtLjA5LDEuMTQuMzIsMS41M2w1LjY3LDUuNTFjNS4xLjIyLDEwLjE0LjcxLDE0LjQzLDQsLjQyLjMyLjIsMS4xMi0uMzkuOTMtMi41OC0uODYtNi4wMi0uODctOS4zOS0uNGwxNS41NiwxNS4xMmMtMS4xNy0uNS0yLjM2LS45Ny0zLjU0LTEuNDEtMzEuNC0xMS43Mi01Ni4zLTEuNDEtNTcuMzUtLjk2LS41Mi4yMi0uODYuNzUtLjg1LDEuMzJzLjM3LDEuMDguOTEsMS4yOGwxMS4wNiw0LjEzYzQuNDYtMS40OCw4LjctMi4zOSwxMC40Mi0yLjU1LjU3LS4wNS41Ni43My4xMi45MS0xLjg2Ljc0LTMuNjEsMi4yOS01LjI3LDMuNjFsMjUuOTQsOS42OEMxOS4xOCw0NS4xMSwxLjIyLDYxLjg0LjQzLDYyLjU5Yy0uNDEuMzktLjU1LDEtLjM0LDEuNTMuMjEuNTMuNzMuODgsMS4zLjg4aDEzLjljLjE1LS4wOS4zMS0uMTkuNDUtLjI4LDUuNzktMy41OCwxMS45NC02LjE5LDE4LjE4LTguODcuNjgtLjI5LDEuMjguNjQuNiwxLjAzLTMuNTQsMi4wMy02LjU0LDUuMS05LjQ5LDguMTNoMTQuNTljNC4yNy0zLjExLDguODItNS43LDEzLjE2LTguNy41OS0uNDEsMS4yMi40OS43NS45Ny0yLjM1LDIuMzgtNC40NCw1LjA2LTYuNTMsNy43NGgxMTYuODNjLS45OS0zLjE5LTIuMDItNi4zNS00LjEzLTkuMDQtLjMzLS40Mi4xOC0uOTYuNTktLjU5LDMuMzYsMy4wMSw3LjM3LDYuMTUsMTEuMDIsOS42M2gxNS4zNGMtMS4zOC0zLjUyLTMuMDUtNi44Mi01LjcxLTguNjctLjU0LS4zNy0uMDgtMS4xNS41MS0uODcsNC40LDIuMDgsOC4yNyw1Ljg2LDExLjY1LDkuNTRoMjAuMmMuNTcsMCwxLjA5LS4zNSwxLjMtLjg4LjIxLS41My4wOC0xLjE0LS4zNC0xLjUzWiIvPgogICAgICA8L2c+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0ibTEwMS4wNiwyMjEuMzNoMTMuOTd2LTMzLjZoLTEzLjk3djMzLjZaIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4=\">\n  </a>\n  <a aria-label=\"Made by hack.dance\" href=\"https://hack.dance\">\n    <img alt=\"docs\" src=\"https://img.shields.io/badge/MADE%20BY%20HACK.DANCE-000000.svg?style=flat-square&labelColor=000000\">\n  </a>\n  <a aria-label=\"Twitter\" href=\"https://twitter.com/dimitrikennedy\">\n    <img alt=\"follow\" src=\"https://img.shields.io/twitter/follow/dimitrikennedy?style=social&labelColor=000000\">\n  </a>\n</div>\n\n`llm-polyglot` extends the OpenAI SDK to provide a consistent interface across different LLM providers. Use the same familiar OpenAI-style API with Anthropic, Google, and others.\n\n## Provider Support\n\n**Native API Support Status:**\n\n| Provider API | Status | Chat | Basic Stream | Functions/Tool calling | Function streaming | Notes |\n|-------------|---------|------|--------------|---------------------|-----------------|--------|\n| OpenAI | ✅ | ✅ | ✅ | ✅ | ✅ | Direct SDK proxy |\n| Anthropic | ✅ | ✅ | ✅ | ❌ | ❌ | Claude models |\n| Google | ✅ | ✅ | ✅ | ✅ | ❌ | Gemini models + context caching |\n| Azure | 🚧 | ✅ | ✅ | ❌ | ❌ | OpenAI model hosting |\n| Cohere | ❌ | - | - | - | - | Not supported |\n| AI21 | ❌ | - | - | - | - | Not supported |\n\nStream Types:\n\n- **Basic Stream**: Simple text streaming\n- **Partial JSON Stream**: Progressive JSON object construction during streaming\n- **Function Stream**: Streaming function/tool calls and their results\n\n<br />\n\n**OpenAI-Compatible Hosting Providers:**\n\nThese providers use the OpenAI SDK format, so they work directly with the OpenAI client configuration:\n\n| Provider | How to Use | Available Models |\n|----------|------------|------------------|\n| Together | Use OpenAI client with Together base URL | Mixtral, Llama, OpenChat, Yi, others |\n| Anyscale | Use OpenAI client with Anyscale base URL | Mistral, Llama, others |\n| Perplexity | Use OpenAI client with Perplexity base URL | pplx-* models |\n| Replicate | Use OpenAI client with Replicate base URL | Various open models |\n\n## Installation\n\n```bash\n# Base installation\nnpm install llm-polyglot openai\n\n# Provider-specific SDKs (as needed)\nnpm install @anthropic-ai/sdk    # For Anthropic\nnpm install @google/generative-ai # For Google/Gemini\n```\n\n## Basic Usage\n\n```typescript\nimport { createLLMClient } from \"llm-polyglot\";\n\n// Initialize provider-specific client\nconst client = createLLMClient({\n  provider: \"anthropic\" // or \"google\", \"openai\", etc.\n});\n\n// Use consistent OpenAI-style interface\nconst completion = await client.chat.completions.create({\n  model: \"claude-3-opus-20240229\",\n  messages: [{ role: \"user\", content: \"Hello!\" }],\n  max_tokens: 1000\n});\n```\n\nOpenAI client options can stay at the top level. Use `clientOptions` when an OpenAI 6 option\ncollides with llm-polyglot's `provider` selector, including the SDK's third-party provider option:\n\n```typescript\nconst client = createLLMClient({\n  provider: \"openai\",\n  clientOptions: {\n    apiKey: async () => getRotatedApiKey(),\n    logLevel: \"off\"\n  }\n});\n```\n\n## Provider-Specific Features\n\n### Anthropic\n\nThe llm-polyglot library provides support for Anthropic's API, including standard chat completions, streaming chat completions, and function calling. Both input paramaters and responses match exactly those of the OpenAI SDK - for more detailed documentation please see the OpenAI docs: [https://platform.openai.com/docs/api-reference](https://platform.openai.com/docs/api-reference)\n\nThe anthropic sdk is required when using the anthropic provider - we only use the types provided by the sdk.\n\n```bash\n  bun add @anthropic-ai/sdk\n```\n\n```typescript\nconst client = createLLMClient({ provider: \"anthropic\" });\n\n// Standard completion\nconst response = await client.chat.completions.create({\n  model: \"claude-3-opus-20240229\",\n  messages: [{ role: \"user\", content: \"Hello!\" }]\n});\n\n// Streaming\nconst stream = await client.chat.completions.create({\n  model: \"claude-3-opus-20240229\",\n  messages: [{ role: \"user\", content: \"Hello!\" }],\n  stream: true\n});\n\nfor await (const chunk of stream) {\n  process.stdout.write(chunk.choices[0]?.delta?.content ?? \"\");\n}\n\n// Tool/Function calling\nconst result = await client.chat.completions.create({\n  model: \"claude-3-opus-20240229\",\n  messages: [{ role: \"user\", content: \"Analyze this data\" }],\n  tools: [{\n    type: \"function\",\n    function: {\n      name: \"analyze\",\n      parameters: {\n        type: \"object\",\n        properties: {\n          sentiment: { type: \"string\" }\n        }\n      }\n    }\n  }]\n});\n```\n\n### Google (Gemini)\n\nThe llm-polyglot library provides support for Google's Gemini API including:\n\n- Standard chat completions with OpenAI-compatible interface\n- Streaming chat completions with delta updates\n- Function/tool calling with automatic schema conversion\n- Context caching for token optimization (requires paid API key)\n- Grounding support with Google Search integration\n- Safety settings and model generation config\n- Session management for stateful conversations\n- Automatic response transformation with source attribution\n\nThe Google generative-ai sdk is required when using the google provider:\n\n```bash\n  bun add @google/generative-ai\n```\n\nTo use any of the above functionality, the schema matches OpenAI's format since we translate the OpenAI params spec into Gemini's model spec.\n\n#### Basic Usage\n\n```typescript\nconst client = createLLMClient({ provider: \"google\" });\n\n// Standard completion\nconst completion = await client.chat.completions.create({\n  model: \"gemini-1.5-flash-latest\",\n  messages: [{ role: \"user\", content: \"Hello!\" }],\n  max_tokens: 1000\n});\n\n// With grounding (Google Search)\nconst groundedCompletion = await client.chat.completions.create({\n  model: \"gemini-1.5-flash-latest\",\n  messages: [{ role: \"user\", content: \"What are the latest AI developments?\" }],\n  groundingThreshold: 0.7,\n  max_tokens: 1000\n});\n\n// With safety settings\nconst safeCompletion = await client.chat.completions.create({\n  model: \"gemini-1.5-flash-latest\",\n  messages: [{ role: \"user\", content: \"Tell me a story\" }],\n  additionalProperties: {\n    safetySettings: [{\n      category: \"HARM_CATEGORY_HARASSMENT\",\n      threshold: \"BLOCK_MEDIUM_AND_ABOVE\"\n    }]\n  }\n});\n\n// With session management\nconst sessionCompletion = await client.chat.completions.create({\n  model: \"gemini-1.5-flash-latest\",\n  messages: [{ role: \"user\", content: \"Remember this: I'm Alice\" }],\n  additionalProperties: {\n    sessionId: \"user-123\"\n  }\n});\n```\n\n#### Context Caching\n\n[Context Caching](https://ai.google.dev/gemini-api/docs/caching) is a feature specific to Gemini that helps cut down on duplicate token usage by allowing you to create a cache with a TTL:\n\n```typescript\n// Create a cache\nconst cache = await client.cacheManager.create({\n  model: \"gemini-1.5-flash-8b\",\n  messages: [{ role: \"user\", content: \"Context to cache\" }],\n  ttlSeconds: 3600 // Cache for 1 hour\n});\n\n// Use the cached context\nconst completion = await client.chat.completions.create({\n  model: \"gemini-1.5-flash-8b\",\n  messages: [{ role: \"user\", content: \"Follow-up question\" }],\n  additionalProperties: {\n    cacheName: cache.name\n  }\n});\n```\n\n#### Function/Tool Calling\n\n```typescript\nconst completion = await client.chat.completions.create({\n  model: \"gemini-1.5-flash-latest\",\n  messages: [{ role: \"user\", content: \"Analyze this data\" }],\n  tools: [{\n    type: \"function\",\n    function: {\n      name: \"analyze\",\n      parameters: {\n        type: \"object\",\n        properties: {\n          sentiment: { type: \"string\" }\n        }\n      }\n    }\n  }],\n  tool_choice: {\n    type: \"function\",\n    function: { name: \"analyze\" }\n  }\n});\n```\n\n## Error Handling\n\n```\n","readmeFilename":"README.md"}